packages feed

Agda 2.2.8 → 2.2.10

raw patch · 169 files changed

+8483/−5697 lines, 169 filesdep +epicdep +haskell-src-extsdep −Cabaldep −haskell-srcdep ~QuickCheckdep ~basedep ~haskelinePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: epic, haskell-src-exts

Dependencies removed: Cabal, haskell-src

Dependency ranges changed: QuickCheck, base, haskeline, mtl, syb

API changes (from Hackage documentation)

- Agda.Auto.NarrowingSearch: instance (Trav a blk) => Trav (MM a blk) blk
- Agda.Auto.SearchControl: instance (Trav a blk) => Trav [a] blk
- Agda.Interaction.GhciTop: includeDirectories :: Interaction -> Maybe [FilePath]
- Agda.Interaction.GhciTop: instance (LowerMeta a) => LowerMeta (Arg a)
- Agda.Interaction.GhciTop: instance (LowerMeta a) => LowerMeta (Named name a)
- Agda.Interaction.GhciTop: instance (LowerMeta a) => LowerMeta [a]
- Agda.Interaction.GhciTop: instance (Pretty a) => Pretty (Lisp a)
- Agda.Interaction.GhciTop: instance (Pretty a) => Show (Lisp a)
- Agda.Interaction.MakeCase: prettySplitError :: SplitError -> TCM Doc
- Agda.Syntax.Abstract: instance (Data e) => Data (Pattern' e)
- Agda.Syntax.Abstract: instance (KillRange e) => KillRange (Pattern' e)
- Agda.Syntax.Abstract: instance (Show e) => Show (Pattern' e)
- Agda.Syntax.Common: instance (Data e) => Data (Arg e)
- Agda.Syntax.Common: instance (Eq a) => Eq (Arg a)
- Agda.Syntax.Common: instance (HasRange a) => HasRange (Arg a)
- Agda.Syntax.Common: instance (HasRange a) => HasRange (Named name a)
- Agda.Syntax.Common: instance (KillRange a) => KillRange (Arg a)
- Agda.Syntax.Common: instance (KillRange a) => KillRange (Named name a)
- Agda.Syntax.Common: instance (Ord e) => Ord (Arg e)
- Agda.Syntax.Common: instance (Show a) => Show (Arg a)
- Agda.Syntax.Common: instance (Show a) => Show (Named String a)
- Agda.Syntax.Common: instance (Sized a) => Sized (Arg a)
- Agda.Syntax.Common: instance (Sized a) => Sized (Named name a)
- Agda.Syntax.Concrete.Pretty: instance (Pretty e) => Pretty (Arg e)
- Agda.Syntax.Concrete.Pretty: instance (Pretty e) => Pretty (Named String e)
- Agda.Syntax.Internal: instance (Data a) => Data (Abs a)
- Agda.Syntax.Internal: instance (Data a) => Data (Tele a)
- Agda.Syntax.Internal: instance (Data t) => Data (Blocked t)
- Agda.Syntax.Internal: instance (Eq a) => Eq (Abs a)
- Agda.Syntax.Internal: instance (Eq a) => Eq (Tele a)
- Agda.Syntax.Internal: instance (Eq t) => Eq (Blocked t)
- Agda.Syntax.Internal: instance (KillRange a) => KillRange (Abs a)
- Agda.Syntax.Internal: instance (KillRange a) => KillRange (Blocked a)
- Agda.Syntax.Internal: instance (KillRange a) => KillRange (Tele a)
- Agda.Syntax.Internal: instance (Ord a) => Ord (Abs a)
- Agda.Syntax.Internal: instance (Ord a) => Ord (Tele a)
- Agda.Syntax.Internal: instance (Ord t) => Ord (Blocked t)
- Agda.Syntax.Internal: instance (Show a) => Show (Abs a)
- Agda.Syntax.Internal: instance (Show a) => Show (Tele a)
- Agda.Syntax.Internal: instance (Show t) => Show (Blocked t)
- Agda.Syntax.Internal: instance (Sized a) => Sized (Abs a)
- Agda.Syntax.Internal.Generic: instance (TermLike a) => TermLike (Abs a)
- Agda.Syntax.Internal.Generic: instance (TermLike a) => TermLike (Arg a)
- Agda.Syntax.Internal.Generic: instance (TermLike a) => TermLike [a]
- Agda.Syntax.Position: instance (HasRange a) => HasRange (Maybe a)
- Agda.Syntax.Position: instance (HasRange a) => HasRange [a]
- Agda.Syntax.Position: instance (KillRange a) => KillRange (Maybe a)
- Agda.Syntax.Position: instance (KillRange a) => KillRange [a]
- Agda.Syntax.Strict: instance (Strict a) => Strict (Abs a)
- Agda.Syntax.Strict: instance (Strict a) => Strict (Arg a)
- Agda.Syntax.Strict: instance (Strict a) => Strict [a]
- Agda.Syntax.Translation.AbstractToConcrete: instance [overlap ok] (ToConcrete a c) => ToConcrete (Arg a) (Arg c)
- Agda.Syntax.Translation.AbstractToConcrete: instance [overlap ok] (ToConcrete a c) => ToConcrete (Named name a) (Named name c)
- Agda.Syntax.Translation.AbstractToConcrete: instance [overlap ok] (ToConcrete a c) => ToConcrete [a] [c]
- Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] (ToAbstract c a) => ToAbstract (Arg c) (Arg a)
- Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] (ToAbstract c a) => ToAbstract (Maybe c) (Maybe a)
- Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] (ToAbstract c a) => ToAbstract (Named name c) (Named name a)
- Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] (ToAbstract c a) => ToAbstract (Pattern' c) (Pattern' a)
- Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] (ToAbstract c a) => ToAbstract [c] [a]
- Agda.Syntax.Translation.InternalToAbstract: instance (DotVars a) => DotVars (Arg a)
- Agda.Syntax.Translation.InternalToAbstract: instance (DotVars a) => DotVars (Named s a)
- Agda.Syntax.Translation.InternalToAbstract: instance (DotVars a) => DotVars [a]
- Agda.Syntax.Translation.InternalToAbstract: instance (Reify i a) => Reify (Abs i) (Name, a)
- Agda.Syntax.Translation.InternalToAbstract: instance (Reify i a) => Reify (Arg i) (Arg a)
- Agda.Syntax.Translation.InternalToAbstract: instance (Reify i a) => Reify [i] [a]
- Agda.Termination.CallGraph: instance (Eq meta) => Eq (CallGraph meta)
- Agda.Termination.CallGraph: instance (Show meta) => Pretty (CallGraph meta)
- Agda.Termination.CallGraph: instance (Show meta) => Show (CallGraph meta)
- Agda.Termination.Matrix: instance (CoArbitrary i) => CoArbitrary (MIx i)
- Agda.Termination.Matrix: instance (CoArbitrary i) => CoArbitrary (Size i)
- Agda.Termination.Matrix: instance (Eq i) => Eq (MIx i)
- Agda.Termination.Matrix: instance (Eq i) => Eq (Size i)
- Agda.Termination.Matrix: instance (Ix i) => Ix (MIx i)
- Agda.Termination.Matrix: instance (Ord i) => Ord (MIx i)
- Agda.Termination.Matrix: instance (Show i) => Show (MIx i)
- Agda.Termination.Matrix: instance (Show i) => Show (Size i)
- Agda.Termination.SparseMatrix: instance (CoArbitrary i) => CoArbitrary (MIx i)
- Agda.Termination.SparseMatrix: instance (CoArbitrary i) => CoArbitrary (Size i)
- Agda.Termination.SparseMatrix: instance (Eq i) => Eq (MIx i)
- Agda.Termination.SparseMatrix: instance (Eq i) => Eq (Size i)
- Agda.Termination.SparseMatrix: instance (Ix i) => Ix (MIx i)
- Agda.Termination.SparseMatrix: instance (Ord i) => Ord (MIx i)
- Agda.Termination.SparseMatrix: instance (Ord i) => Ord (Size i)
- Agda.Termination.SparseMatrix: instance (Show i) => Show (MIx i)
- Agda.Termination.SparseMatrix: instance (Show i) => Show (Size i)
- Agda.TypeChecking.Abstract: instance (AbstractTerm a) => AbstractTerm (Arg a)
- Agda.TypeChecking.Abstract: instance (AbstractTerm a) => AbstractTerm [a]
- Agda.TypeChecking.CompiledClause: instance (Data c) => Data (Case c)
- Agda.TypeChecking.CompiledClause: instance (Monoid m) => Monoid (Case m)
- Agda.TypeChecking.CompiledClause: instance (Pretty a) => Pretty (Case a)
- Agda.TypeChecking.CompiledClause: instance (Pretty a) => Show (Case a)
- Agda.TypeChecking.Coverage.Match: instance (Monoid a) => Monoid (Match a)
- Agda.TypeChecking.DisplayForm: instance (Match a) => Match (Arg a)
- Agda.TypeChecking.DisplayForm: instance (Match a) => Match [a]
- Agda.TypeChecking.Free: instance (Free a) => Free (Abs a)
- Agda.TypeChecking.Free: instance (Free a) => Free (Arg a)
- Agda.TypeChecking.Free: instance (Free a) => Free (Tele a)
- Agda.TypeChecking.Free: instance (Free a) => Free [a]
- Agda.TypeChecking.MetaVars.Occurs: instance (Occurs a) => Occurs (Abs a)
- Agda.TypeChecking.MetaVars.Occurs: instance (Occurs a) => Occurs (Arg a)
- Agda.TypeChecking.MetaVars.Occurs: instance (Occurs a) => Occurs [a]
- Agda.TypeChecking.Monad.Base: instance (Data a) => Data (Closure a)
- Agda.TypeChecking.Monad.Base: instance (Data a) => Data (Open a)
- Agda.TypeChecking.Monad.Base: instance (Data pf) => Data (Builtin pf)
- Agda.TypeChecking.Monad.Base: instance (HasFresh i FreshThings) => HasFresh i TCState
- Agda.TypeChecking.Monad.Base: instance (HasRange a) => HasRange (Closure a)
- Agda.TypeChecking.Monad.Base: instance (MonadIO m) => Applicative (TCMT m)
- Agda.TypeChecking.Monad.Base: instance (MonadIO m) => Functor (TCMT m)
- Agda.TypeChecking.Monad.Base: instance (MonadIO m) => Monad (TCMT m)
- Agda.TypeChecking.Monad.Base: instance (MonadIO m) => MonadIO (TCMT m)
- Agda.TypeChecking.Monad.Base: instance (MonadIO m) => MonadReader TCEnv (TCMT m)
- Agda.TypeChecking.Monad.Base: instance (MonadIO m) => MonadState TCState (TCMT m)
- Agda.TypeChecking.Monad.Base: instance (MonadIO m) => MonadTCM (TCMT m)
- Agda.TypeChecking.Monad.Base: instance (Show a) => Show (Closure a)
- Agda.TypeChecking.Monad.Base: instance (Show a) => Show (Open a)
- Agda.TypeChecking.Monad.Base: instance (Show pf) => Show (Builtin pf)
- Agda.TypeChecking.Monad.Exception: instance (Functor f) => Functor (ExceptionT err f)
- Agda.TypeChecking.Polarity: instance (HasPolarity a) => HasPolarity (Abs a)
- Agda.TypeChecking.Polarity: instance (HasPolarity a) => HasPolarity (Arg a)
- Agda.TypeChecking.Polarity: instance (HasPolarity a) => HasPolarity [a]
- Agda.TypeChecking.Positivity: instance (ComputeOccurrences a) => ComputeOccurrences (Abs a)
- Agda.TypeChecking.Positivity: instance (ComputeOccurrences a) => ComputeOccurrences (Arg a)
- Agda.TypeChecking.Positivity: instance (ComputeOccurrences a) => ComputeOccurrences (Tele a)
- Agda.TypeChecking.Positivity: instance (ComputeOccurrences a) => ComputeOccurrences [a]
- Agda.TypeChecking.Pretty: instance (PrettyTCM a) => PrettyTCM (Blocked a)
- Agda.TypeChecking.Pretty: instance (PrettyTCM a) => PrettyTCM (Closure a)
- Agda.TypeChecking.Pretty: instance (PrettyTCM a) => PrettyTCM [a]
- Agda.TypeChecking.Primitive: abstractFromType :: (MonadTCM tcm) => tcm Type -> tcm PrimitiveImpl
- Agda.TypeChecking.Primitive: abstractPrim :: (MonadTCM tcm, PrimType a) => a -> tcm PrimitiveImpl
- Agda.TypeChecking.Primitive: instance (PrimTerm a) => PrimTerm (IO a)
- Agda.TypeChecking.Primitive: instance (PrimTerm a) => PrimTerm [a]
- Agda.TypeChecking.Primitive: instance (PrimTerm a) => PrimType a
- Agda.TypeChecking.Reduce: instance (Instantiate a) => Instantiate (Blocked a)
- Agda.TypeChecking.Reduce: instance (Instantiate a) => Instantiate (Closure a)
- Agda.TypeChecking.Reduce: instance (Instantiate t) => Instantiate (Abs t)
- Agda.TypeChecking.Reduce: instance (Instantiate t) => Instantiate (Arg t)
- Agda.TypeChecking.Reduce: instance (Instantiate t) => Instantiate [t]
- Agda.TypeChecking.Reduce: instance (InstantiateFull a) => InstantiateFull (Builtin a)
- Agda.TypeChecking.Reduce: instance (InstantiateFull a) => InstantiateFull (Case a)
- Agda.TypeChecking.Reduce: instance (InstantiateFull a) => InstantiateFull (Closure a)
- Agda.TypeChecking.Reduce: instance (InstantiateFull a) => InstantiateFull (Maybe a)
- Agda.TypeChecking.Reduce: instance (InstantiateFull a) => InstantiateFull (Open a)
- Agda.TypeChecking.Reduce: instance (InstantiateFull a) => InstantiateFull (Tele a)
- Agda.TypeChecking.Reduce: instance (InstantiateFull t) => InstantiateFull (Abs t)
- Agda.TypeChecking.Reduce: instance (InstantiateFull t) => InstantiateFull (Arg t)
- Agda.TypeChecking.Reduce: instance (InstantiateFull t) => InstantiateFull [t]
- Agda.TypeChecking.Reduce: instance (Normalise a) => Normalise (Closure a)
- Agda.TypeChecking.Reduce: instance (Normalise a) => Normalise (Maybe a)
- Agda.TypeChecking.Reduce: instance (Normalise a) => Normalise (Tele a)
- Agda.TypeChecking.Reduce: instance (Normalise t) => Normalise (Abs t)
- Agda.TypeChecking.Reduce: instance (Normalise t) => Normalise (Arg t)
- Agda.TypeChecking.Reduce: instance (Normalise t) => Normalise [t]
- Agda.TypeChecking.Reduce: instance (Reduce a) => Reduce (Closure a)
- Agda.TypeChecking.Reduce: instance (Reduce t) => Reduce (Abs t)
- Agda.TypeChecking.Reduce: instance (Reduce t) => Reduce (Arg t)
- Agda.TypeChecking.Reduce: instance (Reduce t) => Reduce [t]
- Agda.TypeChecking.Rules.LHS.Problem: instance (Monoid p) => Monoid (Problem' p)
- Agda.TypeChecking.Serialise: instance [incoherent] (EmbPrj a) => EmbPrj (Abs a)
- Agda.TypeChecking.Serialise: instance [incoherent] (EmbPrj a) => EmbPrj (Arg a)
- Agda.TypeChecking.Serialise: instance [incoherent] (EmbPrj a) => EmbPrj (Builtin a)
- Agda.TypeChecking.Serialise: instance [incoherent] (EmbPrj a) => EmbPrj (Case a)
- Agda.TypeChecking.Serialise: instance [incoherent] (EmbPrj a) => EmbPrj (Maybe a)
- Agda.TypeChecking.Serialise: instance [incoherent] (EmbPrj a) => EmbPrj (Open a)
- Agda.TypeChecking.Serialise: instance [incoherent] (EmbPrj a) => EmbPrj [a]
- Agda.TypeChecking.Substitute: instance (Abstract a) => Abstract (Case a)
- Agda.TypeChecking.Substitute: instance (Abstract t) => Abstract (Maybe t)
- Agda.TypeChecking.Substitute: instance (Abstract t) => Abstract [t]
- Agda.TypeChecking.Substitute: instance (Abstract v) => Abstract (Map k v)
- Agda.TypeChecking.Substitute: instance (Apply a) => Apply (Case a)
- Agda.TypeChecking.Substitute: instance (Apply t) => Apply (Blocked t)
- Agda.TypeChecking.Substitute: instance (Apply t) => Apply (Maybe t)
- Agda.TypeChecking.Substitute: instance (Apply t) => Apply [t]
- Agda.TypeChecking.Substitute: instance (Apply v) => Apply (Map k v)
- Agda.TypeChecking.Substitute: instance (Raise a) => Raise (Tele a)
- Agda.TypeChecking.Substitute: instance (Raise t) => Raise (Abs t)
- Agda.TypeChecking.Substitute: instance (Raise t) => Raise (Arg t)
- Agda.TypeChecking.Substitute: instance (Raise t) => Raise (Blocked t)
- Agda.TypeChecking.Substitute: instance (Raise t) => Raise (Maybe t)
- Agda.TypeChecking.Substitute: instance (Raise t) => Raise [t]
- Agda.TypeChecking.Substitute: instance (Raise v) => Raise (Map k v)
- Agda.TypeChecking.Substitute: instance (Subst a) => Apply (Tele a)
- Agda.TypeChecking.Substitute: instance (Subst a) => Subst (Abs a)
- Agda.TypeChecking.Substitute: instance (Subst a) => Subst (Arg a)
- Agda.TypeChecking.Substitute: instance (Subst a) => Subst (Maybe a)
- Agda.TypeChecking.Substitute: instance (Subst a) => Subst (Tele a)
- Agda.TypeChecking.Substitute: instance (Subst a) => Subst [a]
- Agda.TypeChecking.Substitute: instance (Subst t) => Subst (Blocked t)
- Agda.TypeChecking.Test.Generators: instance (GenC a) => GenC (Abs a)
- Agda.TypeChecking.Test.Generators: instance (GenC a) => GenC (Arg a)
- Agda.TypeChecking.Test.Generators: instance (GenC a) => GenC (SizedList a)
- Agda.TypeChecking.Test.Generators: instance (GenC a) => GenC [a]
- Agda.TypeChecking.Test.Generators: instance (KillVar a) => KillVar (Abs a)
- Agda.TypeChecking.Test.Generators: instance (KillVar a) => KillVar (Arg a)
- Agda.TypeChecking.Test.Generators: instance (KillVar a) => KillVar [a]
- Agda.TypeChecking.Test.Generators: instance (ShrinkC a b) => ShrinkC (Abs a) (Abs b)
- Agda.TypeChecking.Test.Generators: instance (ShrinkC a b) => ShrinkC (Arg a) (Arg b)
- Agda.TypeChecking.Test.Generators: instance (ShrinkC a b) => ShrinkC (Blocked a) (Blocked b)
- Agda.TypeChecking.Test.Generators: instance (ShrinkC a b) => ShrinkC (NoType a) b
- Agda.TypeChecking.Test.Generators: instance (ShrinkC a b) => ShrinkC (YesType a) b
- Agda.TypeChecking.Test.Generators: instance (ShrinkC a b) => ShrinkC [a] [b]
- Agda.Utils.Monad: instance (Error e, Monad m) => Applicative (ErrorT e m)
- Agda.Utils.Monad: instance (Monad m) => Applicative (ReaderT env m)
- Agda.Utils.Monad: instance (Monad m) => Applicative (StateT s m)
- Agda.Utils.Monad: instance (Monoid o, Monad m) => Applicative (WriterT o m)
- Agda.Utils.Monad: instance Applicative (Reader env)
- Agda.Utils.Monad: instance Applicative (State s)
- Agda.Utils.SemiRing: instance (SemiRing a) => SemiRing (Maybe a)
+ Agda.Auto.NarrowingSearch: instance Trav a blk => Trav (MM a blk) blk
+ Agda.Auto.SearchControl: instance Trav a blk => Trav [a] blk
+ Agda.Compiler.Epic.AuxAST: App :: Var -> [Expr] -> Expr
+ Agda.Compiler.Epic.AuxAST: BrInt :: Int -> Expr -> Branch
+ Agda.Compiler.Epic.AuxAST: Branch :: Tag -> QName -> [Var] -> Expr -> Branch
+ Agda.Compiler.Epic.AuxAST: Case :: Expr -> [Branch] -> Expr
+ Agda.Compiler.Epic.AuxAST: Con :: Tag -> QName -> [Expr] -> Expr
+ Agda.Compiler.Epic.AuxAST: Default :: Expr -> Branch
+ Agda.Compiler.Epic.AuxAST: EpicFun :: Var -> Comment -> String -> Fun
+ Agda.Compiler.Epic.AuxAST: Fun :: Inline -> Var -> Comment -> [Var] -> Expr -> Fun
+ Agda.Compiler.Epic.AuxAST: IMPOSSIBLE :: Expr
+ Agda.Compiler.Epic.AuxAST: If :: Expr -> Expr -> Expr -> Expr
+ Agda.Compiler.Epic.AuxAST: LChar :: Char -> Lit
+ Agda.Compiler.Epic.AuxAST: LFloat :: Double -> Lit
+ Agda.Compiler.Epic.AuxAST: LInt :: Integer -> Lit
+ Agda.Compiler.Epic.AuxAST: LString :: String -> Lit
+ Agda.Compiler.Epic.AuxAST: Lam :: Var -> Expr -> Expr
+ Agda.Compiler.Epic.AuxAST: Lazy :: Expr -> Expr
+ Agda.Compiler.Epic.AuxAST: Let :: Var -> Expr -> Expr -> Expr
+ Agda.Compiler.Epic.AuxAST: Lit :: Lit -> Expr
+ Agda.Compiler.Epic.AuxAST: UNIT :: Expr
+ Agda.Compiler.Epic.AuxAST: Var :: Var -> Expr
+ Agda.Compiler.Epic.AuxAST: apps :: Var -> [Expr] -> Expr
+ Agda.Compiler.Epic.AuxAST: brExpr :: Branch -> Expr
+ Agda.Compiler.Epic.AuxAST: brInt :: Branch -> Int
+ Agda.Compiler.Epic.AuxAST: brName :: Branch -> QName
+ Agda.Compiler.Epic.AuxAST: brTag :: Branch -> Tag
+ Agda.Compiler.Epic.AuxAST: brVars :: Branch -> [Var]
+ Agda.Compiler.Epic.AuxAST: data Branch
+ Agda.Compiler.Epic.AuxAST: data Expr
+ Agda.Compiler.Epic.AuxAST: data Fun
+ Agda.Compiler.Epic.AuxAST: data Lit
+ Agda.Compiler.Epic.AuxAST: funArgs :: Fun -> [Var]
+ Agda.Compiler.Epic.AuxAST: funComment :: Fun -> Comment
+ Agda.Compiler.Epic.AuxAST: funEpicCode :: Fun -> String
+ Agda.Compiler.Epic.AuxAST: funExpr :: Fun -> Expr
+ Agda.Compiler.Epic.AuxAST: funInline :: Fun -> Inline
+ Agda.Compiler.Epic.AuxAST: funName :: Fun -> Var
+ Agda.Compiler.Epic.AuxAST: fv :: Expr -> [Var]
+ Agda.Compiler.Epic.AuxAST: instance Eq Branch
+ Agda.Compiler.Epic.AuxAST: instance Eq Expr
+ Agda.Compiler.Epic.AuxAST: instance Eq Fun
+ Agda.Compiler.Epic.AuxAST: instance Eq Lit
+ Agda.Compiler.Epic.AuxAST: instance Ord Branch
+ Agda.Compiler.Epic.AuxAST: instance Ord Expr
+ Agda.Compiler.Epic.AuxAST: instance Ord Fun
+ Agda.Compiler.Epic.AuxAST: instance Ord Lit
+ Agda.Compiler.Epic.AuxAST: instance Show Branch
+ Agda.Compiler.Epic.AuxAST: instance Show Expr
+ Agda.Compiler.Epic.AuxAST: instance Show Fun
+ Agda.Compiler.Epic.AuxAST: instance Show Lit
+ Agda.Compiler.Epic.AuxAST: pairwiseFilter :: [Bool] -> [a] -> [a]
+ Agda.Compiler.Epic.AuxAST: subst :: Var -> Var -> Expr -> Expr
+ Agda.Compiler.Epic.AuxAST: substBranch :: Var -> Var -> Branch -> Branch
+ Agda.Compiler.Epic.AuxAST: type Comment = String
+ Agda.Compiler.Epic.AuxAST: type Inline = Bool
+ Agda.Compiler.Epic.AuxAST: type Tag = Int
+ Agda.Compiler.Epic.AuxAST: type Var = String
+ Agda.Compiler.Epic.CompileState: CompileState :: Map QName Tag -> [Var] -> Set Var -> Map QName Bool -> Map QName Int -> Maybe QName -> Map QName IrrFilter -> CompileState
+ Agda.Compiler.Epic.CompileState: addDataDecl :: Monad m => [QName] -> Compile m ()
+ Agda.Compiler.Epic.CompileState: addDefName :: Monad m => QName -> Compile m ()
+ Agda.Compiler.Epic.CompileState: conPars :: CompileState -> Map QName Int
+ Agda.Compiler.Epic.CompileState: constructorArity :: (MonadTCM tcm, Num a) => QName -> tcm a
+ Agda.Compiler.Epic.CompileState: data CompileState
+ Agda.Compiler.Epic.CompileState: dataDecls :: CompileState -> Map QName Tag
+ Agda.Compiler.Epic.CompileState: defDelayed :: CompileState -> Map QName Bool
+ Agda.Compiler.Epic.CompileState: definitions :: CompileState -> Set Var
+ Agda.Compiler.Epic.CompileState: epicError :: MonadTCM m => String -> Compile m a
+ Agda.Compiler.Epic.CompileState: getConPar :: MonadTCM m => QName -> Compile m Int
+ Agda.Compiler.Epic.CompileState: getConstrTag :: Monad m => QName -> Compile m Tag
+ Agda.Compiler.Epic.CompileState: getDelayed :: MonadTCM m => QName -> Compile m Bool
+ Agda.Compiler.Epic.CompileState: getIrrFilter :: Monad m => QName -> Compile m IrrFilter
+ Agda.Compiler.Epic.CompileState: getMain :: MonadTCM m => Compile m Var
+ Agda.Compiler.Epic.CompileState: initCompileState :: CompileState
+ Agda.Compiler.Epic.CompileState: instance Show CompileState
+ Agda.Compiler.Epic.CompileState: irrFilters :: CompileState -> Map QName IrrFilter
+ Agda.Compiler.Epic.CompileState: mainName :: CompileState -> Maybe QName
+ Agda.Compiler.Epic.CompileState: nameSupply :: CompileState -> [Var]
+ Agda.Compiler.Epic.CompileState: newName :: Monad m => Compile m Var
+ Agda.Compiler.Epic.CompileState: putConPar :: Monad m => QName -> Int -> Compile m ()
+ Agda.Compiler.Epic.CompileState: putDelayed :: Monad m => QName -> Bool -> Compile m ()
+ Agda.Compiler.Epic.CompileState: putIrrFilter :: Monad m => QName -> IrrFilter -> Compile m ()
+ Agda.Compiler.Epic.CompileState: putMain :: Monad m => QName -> Compile m ()
+ Agda.Compiler.Epic.CompileState: replaceAt :: Int -> [a] -> [a] -> [a]
+ Agda.Compiler.Epic.CompileState: topBindings :: Monad m => Compile m (Set Var)
+ Agda.Compiler.Epic.CompileState: type Compile = StateT CompileState
+ Agda.Compiler.Epic.CompileState: type IrrFilter = [Bool]
+ Agda.Compiler.Epic.CompileState: unqname :: QName -> Var
+ Agda.Compiler.Epic.Compiler: compilerMain :: Interface -> TCM ()
+ Agda.Compiler.Epic.ConstructorIrrelevancy: constrIrr :: MonadTCM m => [Fun] -> Compile m [Fun]
+ Agda.Compiler.Epic.ConstructorIrrelevancy: irrBranch :: MonadTCM m => Branch -> Compile m Branch
+ Agda.Compiler.Epic.ConstructorIrrelevancy: irrExpr :: MonadTCM m => Expr -> Compile m Expr
+ Agda.Compiler.Epic.ConstructorIrrelevancy: irrFilter :: Type -> IrrFilter
+ Agda.Compiler.Epic.ConstructorIrrelevancy: irrFun :: MonadTCM m => Fun -> Compile m Fun
+ Agda.Compiler.Epic.Epic: prettyEpicFun :: Fun -> String
+ Agda.Compiler.Epic.Erasure: (&&-) :: Relevancy -> Relevancy -> Relevancy
+ Agda.Compiler.Epic.Erasure: DontKnow :: Relevancy
+ Agda.Compiler.Epic.Erasure: ErasureState :: Map Var [Relevancy] -> Map Var Fun -> ErasureState
+ Agda.Compiler.Epic.Erasure: Irr :: Relevancy
+ Agda.Compiler.Epic.Erasure: Rel :: Relevancy
+ Agda.Compiler.Epic.Erasure: data ErasureState
+ Agda.Compiler.Epic.Erasure: data Relevancy
+ Agda.Compiler.Epic.Erasure: erasure :: MonadTCM m => [Fun] -> Compile m [Fun]
+ Agda.Compiler.Epic.Erasure: funs :: ErasureState -> Map Var Fun
+ Agda.Compiler.Epic.Erasure: initiate :: Monad m => Fun -> Erasure m ()
+ Agda.Compiler.Epic.Erasure: instance Eq Relevancy
+ Agda.Compiler.Epic.Erasure: instance Ord Relevancy
+ Agda.Compiler.Epic.Erasure: instance Show Relevancy
+ Agda.Compiler.Epic.Erasure: isIrr :: Relevancy -> Bool
+ Agda.Compiler.Epic.Erasure: isRel :: Relevancy -> Bool
+ Agda.Compiler.Epic.Erasure: relevancies :: ErasureState -> Map Var [Relevancy]
+ Agda.Compiler.Epic.Erasure: relevant :: (Functor m, Monad m) => Var -> Expr -> Erasure m Relevancy
+ Agda.Compiler.Epic.Erasure: step :: (Monad m, Functor m) => Erasure m (Map Var [Relevancy])
+ Agda.Compiler.Epic.Erasure: type Erasure = StateT ErasureState
+ Agda.Compiler.Epic.Forcing: FoldState :: CompiledClauses -> (CompiledClauses -> CompiledClauses) -> [Maybe Term] -> Telescope -> Nat -> FoldState
+ Agda.Compiler.Epic.Forcing: clauseToFix :: FoldState -> CompiledClauses
+ Agda.Compiler.Epic.Forcing: clausesAbove :: FoldState -> CompiledClauses -> CompiledClauses
+ Agda.Compiler.Epic.Forcing: constrType :: MonadTCM m => QName -> Compile m Type
+ Agda.Compiler.Epic.Forcing: data FoldState
+ Agda.Compiler.Epic.Forcing: dataParameters :: MonadTCM m => QName -> Compile m Nat
+ Agda.Compiler.Epic.Forcing: findPosition :: Nat -> [Maybe Term] -> (Nat, Term)
+ Agda.Compiler.Epic.Forcing: foldM' :: Monad m => a -> [b] -> (a -> b -> m a) -> m a
+ Agda.Compiler.Epic.Forcing: insertTele :: MonadTCM m => Int -> Maybe Type -> Term -> Telescope -> Compile m (Telescope, (Type, Type))
+ Agda.Compiler.Epic.Forcing: instance Show FoldState
+ Agda.Compiler.Epic.Forcing: isIn :: MonadTCM m => Nat -> CompiledClauses -> Compile m Bool
+ Agda.Compiler.Epic.Forcing: isInCase :: MonadTCM m => Nat -> (Nat, Case CompiledClauses) -> Compile m Bool
+ Agda.Compiler.Epic.Forcing: isInTerm :: Nat -> Term -> Bool
+ Agda.Compiler.Epic.Forcing: lift2 :: (MonadTrans t, Monad (t1 m), MonadTrans t1, Monad m) => m a -> t (t1 m) a
+ Agda.Compiler.Epic.Forcing: modifyM :: MonadState a m => (a -> m a) -> m ()
+ Agda.Compiler.Epic.Forcing: raiseFromCC :: Nat -> Nat -> CompiledClauses -> CompiledClauses
+ Agda.Compiler.Epic.Forcing: remForced :: MonadTCM m => CompiledClauses -> Telescope -> Compile m CompiledClauses
+ Agda.Compiler.Epic.Forcing: removeForced :: MonadTCM m => CompiledClauses -> Type -> Compile m CompiledClauses
+ Agda.Compiler.Epic.Forcing: replaceForced :: MonadTCM m => (Nat, Telescope) -> [Nat] -> (CompiledClauses, [Maybe Term]) -> Compile m CompiledClauses
+ Agda.Compiler.Epic.Forcing: substCC :: MonadTCM m => [Nat] -> CompiledClauses -> StateT FoldState (Compile m) CompiledClauses
+ Agda.Compiler.Epic.Forcing: substCCBody :: Nat -> Term -> CompiledClauses -> CompiledClauses
+ Agda.Compiler.Epic.Forcing: substsCCBody :: [Term] -> CompiledClauses -> CompiledClauses
+ Agda.Compiler.Epic.Forcing: telePos :: FoldState -> Nat
+ Agda.Compiler.Epic.Forcing: theTelescope :: FoldState -> Telescope
+ Agda.Compiler.Epic.Forcing: unification :: FoldState -> [Maybe Term]
+ Agda.Compiler.Epic.Forcing: unifyI :: MonadTCM m => Telescope -> [Nat] -> Type -> Args -> Args -> Compile m [Maybe Term]
+ Agda.Compiler.Epic.FromAgda: compileClauses :: MonadTCM m => QName -> Int -> CompiledClauses -> Compile m Fun
+ Agda.Compiler.Epic.FromAgda: fromAgda :: MonadTCM m => Maybe Term -> [(QName, Definition)] -> Compile m [Fun]
+ Agda.Compiler.Epic.FromAgda: reverseCCBody :: CompiledClauses -> CompiledClauses
+ Agda.Compiler.Epic.FromAgda: substLit :: MonadTCM m => Literal -> Compile m Lit
+ Agda.Compiler.Epic.FromAgda: substTerm :: MonadTCM m => [Var] -> Term -> Compile m Expr
+ Agda.Compiler.Epic.FromAgda: translateDefn :: MonadTCM m => Maybe Term -> (QName, Definition) -> Compile m (Maybe Fun)
+ Agda.Compiler.Epic.LambdaLift: lambdaLift :: MonadTCM m => [Fun] -> Compile m [Fun]
+ Agda.Compiler.Epic.LambdaLift: lambdaLiftExpr :: MonadTCM m => Expr -> LL (Compile m) Expr
+ Agda.Compiler.Epic.LambdaLift: lambdaLiftFun :: MonadTCM m => Fun -> LL (Compile m) Fun
+ Agda.Compiler.Epic.LambdaLift: type LL = WriterT [Fun]
+ Agda.Compiler.Epic.NatDetection: argIsDef :: Type -> QName -> Bool
+ Agda.Compiler.Epic.NatDetection: getNatish :: MonadTCM m => Compile m [(IrrFilter, [QName])]
+ Agda.Compiler.Epic.NatDetection: isRec :: Int -> Type -> QName -> Bool
+ Agda.Compiler.Epic.NatDetection: nrRel :: IrrFilter -> Integer
+ Agda.Compiler.Epic.Primitive: PrimTF :: Map QName Var -> (Expr -> [Branch] -> Expr) -> PrimTransform
+ Agda.Compiler.Epic.Primitive: boolPrimTF :: [QName] -> PrimTransform
+ Agda.Compiler.Epic.Primitive: data PrimTransform
+ Agda.Compiler.Epic.Primitive: getBuiltins :: MonadTCM m => Compile m [PrimTransform]
+ Agda.Compiler.Epic.Primitive: mapCon :: PrimTransform -> Map QName Var
+ Agda.Compiler.Epic.Primitive: natPrimTF :: IrrFilter -> [QName] -> PrimTransform
+ Agda.Compiler.Epic.Primitive: primExpr :: MonadTCM m => [PrimTransform] -> Expr -> Compile m Expr
+ Agda.Compiler.Epic.Primitive: primFun :: MonadTCM m => [PrimTransform] -> Fun -> Compile m Fun
+ Agda.Compiler.Epic.Primitive: primLists :: MonadTCM m => Compile m [Fun]
+ Agda.Compiler.Epic.Primitive: primNatCaseZD :: Expr -> Expr -> Expr -> Expr
+ Agda.Compiler.Epic.Primitive: primNatCaseZS :: Expr -> Expr -> Var -> Expr -> Expr
+ Agda.Compiler.Epic.Primitive: primitivise :: MonadTCM m => [Fun] -> Compile m [Fun]
+ Agda.Compiler.Epic.Primitive: translateCase :: PrimTransform -> Expr -> [Branch] -> Expr
+ Agda.Compiler.MAlonzo.Compiler: outFile_ :: TCM FilePath
+ Agda.Compiler.MAlonzo.Compiler: rteModule :: Module
+ Agda.Compiler.MAlonzo.Compiler: term' :: Arg Term -> ReaderT Nat TCM Exp
+ Agda.Compiler.MAlonzo.Misc: mazRTE :: ModuleName
+ Agda.Interaction.GhciTop: Dependent :: Independence
+ Agda.Interaction.GhciTop: Epic :: Backend
+ Agda.Interaction.GhciTop: Independent :: (Maybe [FilePath]) -> Independence
+ Agda.Interaction.GhciTop: MAlonzo :: Backend
+ Agda.Interaction.GhciTop: data Backend
+ Agda.Interaction.GhciTop: data Independence
+ Agda.Interaction.GhciTop: independence :: Interaction -> Independence
+ Agda.Interaction.GhciTop: instance LowerMeta a => LowerMeta (Arg a)
+ Agda.Interaction.GhciTop: instance LowerMeta a => LowerMeta (Named name a)
+ Agda.Interaction.GhciTop: instance LowerMeta a => LowerMeta [a]
+ Agda.Interaction.GhciTop: instance Pretty a => Pretty (Lisp a)
+ Agda.Interaction.GhciTop: instance Pretty a => Show (Lisp a)
+ Agda.Interaction.Options: optEpicCompile :: CommandLineOptions -> Bool
+ Agda.Interaction.Options: optEpicFlags :: CommandLineOptions -> [String]
+ Agda.Interaction.Options: optIrrelevantProjections :: PragmaOptions -> Bool
+ Agda.Interaction.Options: optWithoutK :: PragmaOptions -> Bool
+ Agda.Syntax.Abstract: CompiledEpicPragma :: QName -> String -> Pragma
+ Agda.Syntax.Abstract: instance Data e => Data (Pattern' e)
+ Agda.Syntax.Abstract: instance KillRange Relevance
+ Agda.Syntax.Abstract: instance KillRange e => KillRange (Pattern' e)
+ Agda.Syntax.Abstract: instance Show e => Show (Pattern' e)
+ Agda.Syntax.Common: instance Data e => Data (Arg e)
+ Agda.Syntax.Common: instance Eq a => Eq (Arg a)
+ Agda.Syntax.Common: instance HasRange a => HasRange (Arg a)
+ Agda.Syntax.Common: instance HasRange a => HasRange (Named name a)
+ Agda.Syntax.Common: instance KillRange a => KillRange (Arg a)
+ Agda.Syntax.Common: instance KillRange a => KillRange (Named name a)
+ Agda.Syntax.Common: instance Ord e => Ord (Arg e)
+ Agda.Syntax.Common: instance Show a => Show (Arg a)
+ Agda.Syntax.Common: instance Show a => Show (Named String a)
+ Agda.Syntax.Common: instance Sized a => Sized (Arg a)
+ Agda.Syntax.Common: instance Sized a => Sized (Named name a)
+ Agda.Syntax.Common: irrelevant :: Bool -> Relevance
+ Agda.Syntax.Concrete: CompiledEpicPragma :: !Range -> QName -> String -> Pragma
+ Agda.Syntax.Concrete.Pretty: instance Pretty e => Pretty (Arg e)
+ Agda.Syntax.Concrete.Pretty: instance Pretty e => Pretty (Named String e)
+ Agda.Syntax.Internal: instance Data a => Data (Abs a)
+ Agda.Syntax.Internal: instance Data a => Data (Tele a)
+ Agda.Syntax.Internal: instance Data t => Data (Blocked t)
+ Agda.Syntax.Internal: instance Eq a => Eq (Abs a)
+ Agda.Syntax.Internal: instance Eq a => Eq (Tele a)
+ Agda.Syntax.Internal: instance Eq t => Eq (Blocked t)
+ Agda.Syntax.Internal: instance KillRange a => KillRange (Abs a)
+ Agda.Syntax.Internal: instance KillRange a => KillRange (Blocked a)
+ Agda.Syntax.Internal: instance KillRange a => KillRange (Tele a)
+ Agda.Syntax.Internal: instance Ord a => Ord (Abs a)
+ Agda.Syntax.Internal: instance Ord a => Ord (Tele a)
+ Agda.Syntax.Internal: instance Ord t => Ord (Blocked t)
+ Agda.Syntax.Internal: instance Show a => Show (Abs a)
+ Agda.Syntax.Internal: instance Show a => Show (Tele a)
+ Agda.Syntax.Internal: instance Show t => Show (Blocked t)
+ Agda.Syntax.Internal: instance Sized a => Sized (Abs a)
+ Agda.Syntax.Internal.Generic: instance TermLike a => TermLike (Abs a)
+ Agda.Syntax.Internal.Generic: instance TermLike a => TermLike (Arg a)
+ Agda.Syntax.Internal.Generic: instance TermLike a => TermLike [a]
+ Agda.Syntax.Parser.Tokens: KwCOMPILED_EPIC :: Keyword
+ Agda.Syntax.Position: beginningOfFile :: Range -> Range
+ Agda.Syntax.Position: instance HasRange a => HasRange (Maybe a)
+ Agda.Syntax.Position: instance HasRange a => HasRange [a]
+ Agda.Syntax.Position: instance KillRange a => KillRange (Maybe a)
+ Agda.Syntax.Position: instance KillRange a => KillRange [a]
+ Agda.Syntax.Strict: instance Strict a => Strict (Abs a)
+ Agda.Syntax.Strict: instance Strict a => Strict (Arg a)
+ Agda.Syntax.Strict: instance Strict a => Strict [a]
+ Agda.Syntax.Translation.AbstractToConcrete: instance [overlap ok] ToConcrete a c => ToConcrete (Arg a) (Arg c)
+ Agda.Syntax.Translation.AbstractToConcrete: instance [overlap ok] ToConcrete a c => ToConcrete (Named name a) (Named name c)
+ Agda.Syntax.Translation.AbstractToConcrete: instance [overlap ok] ToConcrete a c => ToConcrete [a] [c]
+ Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] ToAbstract c a => ToAbstract (Arg c) (Arg a)
+ Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] ToAbstract c a => ToAbstract (Maybe c) (Maybe a)
+ Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] ToAbstract c a => ToAbstract (Named name c) (Named name a)
+ Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] ToAbstract c a => ToAbstract (Pattern' c) (Pattern' a)
+ Agda.Syntax.Translation.ConcreteToAbstract: instance [overlap ok] ToAbstract c a => ToAbstract [c] [a]
+ Agda.Syntax.Translation.InternalToAbstract: instance DotVars a => DotVars (Arg a)
+ Agda.Syntax.Translation.InternalToAbstract: instance DotVars a => DotVars (Named s a)
+ Agda.Syntax.Translation.InternalToAbstract: instance DotVars a => DotVars [a]
+ Agda.Syntax.Translation.InternalToAbstract: instance Reify i a => Reify (Abs i) (Name, a)
+ Agda.Syntax.Translation.InternalToAbstract: instance Reify i a => Reify (Arg i) (Arg a)
+ Agda.Syntax.Translation.InternalToAbstract: instance Reify i a => Reify [i] [a]
+ Agda.Termination.CallGraph: instance Eq meta => Eq (CallGraph meta)
+ Agda.Termination.CallGraph: instance Show meta => Pretty (CallGraph meta)
+ Agda.Termination.CallGraph: instance Show meta => Show (CallGraph meta)
+ Agda.Termination.Matrix: instance CoArbitrary i => CoArbitrary (MIx i)
+ Agda.Termination.Matrix: instance CoArbitrary i => CoArbitrary (Size i)
+ Agda.Termination.Matrix: instance Eq i => Eq (MIx i)
+ Agda.Termination.Matrix: instance Eq i => Eq (Size i)
+ Agda.Termination.Matrix: instance Ix i => Ix (MIx i)
+ Agda.Termination.Matrix: instance Ord i => Ord (MIx i)
+ Agda.Termination.Matrix: instance Show i => Show (MIx i)
+ Agda.Termination.Matrix: instance Show i => Show (Size i)
+ Agda.Termination.SparseMatrix: instance CoArbitrary i => CoArbitrary (MIx i)
+ Agda.Termination.SparseMatrix: instance CoArbitrary i => CoArbitrary (Size i)
+ Agda.Termination.SparseMatrix: instance Eq i => Eq (MIx i)
+ Agda.Termination.SparseMatrix: instance Eq i => Eq (Size i)
+ Agda.Termination.SparseMatrix: instance Ix i => Ix (MIx i)
+ Agda.Termination.SparseMatrix: instance Ord i => Ord (MIx i)
+ Agda.Termination.SparseMatrix: instance Ord i => Ord (Size i)
+ Agda.Termination.SparseMatrix: instance Show i => Show (MIx i)
+ Agda.Termination.SparseMatrix: instance Show i => Show (Size i)
+ Agda.TypeChecking.Abstract: instance AbstractTerm a => AbstractTerm (Arg a)
+ Agda.TypeChecking.Abstract: instance AbstractTerm a => AbstractTerm [a]
+ Agda.TypeChecking.CompiledClause: instance Data c => Data (Case c)
+ Agda.TypeChecking.CompiledClause: instance Monoid m => Monoid (Case m)
+ Agda.TypeChecking.CompiledClause: instance Pretty a => Pretty (Case a)
+ Agda.TypeChecking.CompiledClause: instance Pretty a => Show (Case a)
+ Agda.TypeChecking.Coverage: CoinductiveDatatype :: Type -> SplitError
+ Agda.TypeChecking.Coverage: instance PrettyTCM SplitError
+ Agda.TypeChecking.Coverage.Match: instance Monoid a => Monoid (Match a)
+ Agda.TypeChecking.DisplayForm: instance Match a => Match (Arg a)
+ Agda.TypeChecking.DisplayForm: instance Match a => Match [a]
+ Agda.TypeChecking.Free: instance Free a => Free (Abs a)
+ Agda.TypeChecking.Free: instance Free a => Free (Arg a)
+ Agda.TypeChecking.Free: instance Free a => Free (Tele a)
+ Agda.TypeChecking.Free: instance Free a => Free [a]
+ Agda.TypeChecking.MetaVars: etaExpandMetaSafe :: MonadTCM tcm => MetaId -> tcm ()
+ Agda.TypeChecking.MetaVars: unblockedTester :: MonadTCM tcm => Type -> tcm Bool
+ Agda.TypeChecking.MetaVars.Occurs: instance Occurs a => Occurs (Abs a)
+ Agda.TypeChecking.MetaVars.Occurs: instance Occurs a => Occurs (Arg a)
+ Agda.TypeChecking.MetaVars.Occurs: instance Occurs a => Occurs [a]
+ Agda.TypeChecking.MetaVars.Occurs: instance Show OccursCtx
+ Agda.TypeChecking.Monad.Base: DefinitionIsIrrelevant :: QName -> TypeError
+ Agda.TypeChecking.Monad.Base: IndexFreeInParameter :: Nat -> [Arg Term] -> TypeError
+ Agda.TypeChecking.Monad.Base: IndexVariablesNotDistinct :: [Arg Term] -> TypeError
+ Agda.TypeChecking.Monad.Base: IndicesNotConstructorApplications :: [Arg Term] -> TypeError
+ Agda.TypeChecking.Monad.Base: MaybeRed :: IsReduced -> a -> MaybeReduced a
+ Agda.TypeChecking.Monad.Base: NotReduced :: IsReduced
+ Agda.TypeChecking.Monad.Base: Reduced :: (Blocked ()) -> IsReduced
+ Agda.TypeChecking.Monad.Base: axEpDef :: Defn -> Maybe EpicCode
+ Agda.TypeChecking.Monad.Base: data IsReduced
+ Agda.TypeChecking.Monad.Base: data MaybeReduced a
+ Agda.TypeChecking.Monad.Base: defRelevance :: Definition -> Relevance
+ Agda.TypeChecking.Monad.Base: envIrrelevant :: TCEnv -> Bool
+ Agda.TypeChecking.Monad.Base: funProjection :: Defn -> Maybe Int
+ Agda.TypeChecking.Monad.Base: ignoreReduced :: MaybeReduced a -> a
+ Agda.TypeChecking.Monad.Base: instance Data a => Data (Closure a)
+ Agda.TypeChecking.Monad.Base: instance Data a => Data (Open a)
+ Agda.TypeChecking.Monad.Base: instance Data pf => Data (Builtin pf)
+ Agda.TypeChecking.Monad.Base: instance Functor MaybeReduced
+ Agda.TypeChecking.Monad.Base: instance HasFresh i FreshThings => HasFresh i TCState
+ Agda.TypeChecking.Monad.Base: instance HasRange a => HasRange (Closure a)
+ Agda.TypeChecking.Monad.Base: instance MonadIO m => Applicative (TCMT m)
+ Agda.TypeChecking.Monad.Base: instance MonadIO m => Functor (TCMT m)
+ Agda.TypeChecking.Monad.Base: instance MonadIO m => Monad (TCMT m)
+ Agda.TypeChecking.Monad.Base: instance MonadIO m => MonadIO (TCMT m)
+ Agda.TypeChecking.Monad.Base: instance MonadIO m => MonadReader TCEnv (TCMT m)
+ Agda.TypeChecking.Monad.Base: instance MonadIO m => MonadState TCState (TCMT m)
+ Agda.TypeChecking.Monad.Base: instance MonadIO m => MonadTCM (TCMT m)
+ Agda.TypeChecking.Monad.Base: instance Show a => Show (Closure a)
+ Agda.TypeChecking.Monad.Base: instance Show a => Show (Open a)
+ Agda.TypeChecking.Monad.Base: instance Show pf => Show (Builtin pf)
+ Agda.TypeChecking.Monad.Base: isReduced :: MaybeReduced a -> IsReduced
+ Agda.TypeChecking.Monad.Base: notReduced :: a -> MaybeReduced a
+ Agda.TypeChecking.Monad.Base: primCompiled :: Defn -> Maybe CompiledClauses
+ Agda.TypeChecking.Monad.Base: reduced :: Blocked a -> MaybeReduced a
+ Agda.TypeChecking.Monad.Base: type EpicCode = String
+ Agda.TypeChecking.Monad.Base: type MaybeReducedArgs = [MaybeReduced (Arg Term)]
+ Agda.TypeChecking.Monad.Exception: instance Functor f => Functor (ExceptionT err f)
+ Agda.TypeChecking.Monad.Signature: addEpicCode :: MonadTCM tcm => QName -> EpicCode -> tcm ()
+ Agda.TypeChecking.Monad.Signature: isProjection :: MonadTCM tcm => QName -> tcm (Maybe Int)
+ Agda.TypeChecking.Monad.Signature: relOfConst :: MonadTCM tcm => QName -> tcm Relevance
+ Agda.TypeChecking.Polarity: instance HasPolarity a => HasPolarity (Abs a)
+ Agda.TypeChecking.Polarity: instance HasPolarity a => HasPolarity (Arg a)
+ Agda.TypeChecking.Polarity: instance HasPolarity a => HasPolarity [a]
+ Agda.TypeChecking.Positivity: instance ComputeOccurrences a => ComputeOccurrences (Abs a)
+ Agda.TypeChecking.Positivity: instance ComputeOccurrences a => ComputeOccurrences (Arg a)
+ Agda.TypeChecking.Positivity: instance ComputeOccurrences a => ComputeOccurrences (Tele a)
+ Agda.TypeChecking.Positivity: instance ComputeOccurrences a => ComputeOccurrences [a]
+ Agda.TypeChecking.Pretty: instance PrettyTCM NamedClause
+ Agda.TypeChecking.Pretty: instance PrettyTCM Relevance
+ Agda.TypeChecking.Pretty: instance PrettyTCM a => PrettyTCM (Blocked a)
+ Agda.TypeChecking.Pretty: instance PrettyTCM a => PrettyTCM (Closure a)
+ Agda.TypeChecking.Pretty: instance PrettyTCM a => PrettyTCM [a]
+ Agda.TypeChecking.Primitive: instance PrimTerm a => PrimTerm (IO a)
+ Agda.TypeChecking.Primitive: instance PrimTerm a => PrimTerm [a]
+ Agda.TypeChecking.Primitive: instance PrimTerm a => PrimType a
+ Agda.TypeChecking.Records: isRecordConstructor :: MonadTCM tcm => QName -> tcm Bool
+ Agda.TypeChecking.Reduce: instance Instantiate a => Instantiate (Blocked a)
+ Agda.TypeChecking.Reduce: instance Instantiate a => Instantiate (Closure a)
+ Agda.TypeChecking.Reduce: instance Instantiate t => Instantiate (Abs t)
+ Agda.TypeChecking.Reduce: instance Instantiate t => Instantiate (Arg t)
+ Agda.TypeChecking.Reduce: instance Instantiate t => Instantiate [t]
+ Agda.TypeChecking.Reduce: instance InstantiateFull a => InstantiateFull (Builtin a)
+ Agda.TypeChecking.Reduce: instance InstantiateFull a => InstantiateFull (Case a)
+ Agda.TypeChecking.Reduce: instance InstantiateFull a => InstantiateFull (Closure a)
+ Agda.TypeChecking.Reduce: instance InstantiateFull a => InstantiateFull (Maybe a)
+ Agda.TypeChecking.Reduce: instance InstantiateFull a => InstantiateFull (Open a)
+ Agda.TypeChecking.Reduce: instance InstantiateFull a => InstantiateFull (Tele a)
+ Agda.TypeChecking.Reduce: instance InstantiateFull t => InstantiateFull (Abs t)
+ Agda.TypeChecking.Reduce: instance InstantiateFull t => InstantiateFull (Arg t)
+ Agda.TypeChecking.Reduce: instance InstantiateFull t => InstantiateFull [t]
+ Agda.TypeChecking.Reduce: instance Normalise a => Normalise (Closure a)
+ Agda.TypeChecking.Reduce: instance Normalise a => Normalise (Maybe a)
+ Agda.TypeChecking.Reduce: instance Normalise a => Normalise (Tele a)
+ Agda.TypeChecking.Reduce: instance Normalise t => Normalise (Abs t)
+ Agda.TypeChecking.Reduce: instance Normalise t => Normalise (Arg t)
+ Agda.TypeChecking.Reduce: instance Normalise t => Normalise [t]
+ Agda.TypeChecking.Reduce: instance Reduce a => Reduce (Closure a)
+ Agda.TypeChecking.Reduce: instance Reduce t => Reduce (Abs t)
+ Agda.TypeChecking.Reduce: instance Reduce t => Reduce (Arg t)
+ Agda.TypeChecking.Reduce: instance Reduce t => Reduce [t]
+ Agda.TypeChecking.Rules.LHS.Problem: instance Monoid p => Monoid (Problem' p)
+ Agda.TypeChecking.Rules.LHS.Split: wellFormedIndices :: MonadTCM tcm => [Arg Term] -> [Arg Term] -> tcm ()
+ Agda.TypeChecking.Rules.Term: checkArguments' :: ExpandHidden -> Range -> [NamedArg Expr] -> Type -> Type -> Expr -> (Args -> Type -> Constraints -> TCM Term) -> TCM Term
+ Agda.TypeChecking.Rules.Term: forcePi :: MonadTCM tcm => Hiding -> String -> Type -> tcm (Type, Constraints)
+ Agda.TypeChecking.Serialise: instance [incoherent] EmbPrj a => EmbPrj (Abs a)
+ Agda.TypeChecking.Serialise: instance [incoherent] EmbPrj a => EmbPrj (Arg a)
+ Agda.TypeChecking.Serialise: instance [incoherent] EmbPrj a => EmbPrj (Builtin a)
+ Agda.TypeChecking.Serialise: instance [incoherent] EmbPrj a => EmbPrj (Case a)
+ Agda.TypeChecking.Serialise: instance [incoherent] EmbPrj a => EmbPrj (Maybe a)
+ Agda.TypeChecking.Serialise: instance [incoherent] EmbPrj a => EmbPrj (Open a)
+ Agda.TypeChecking.Serialise: instance [incoherent] EmbPrj a => EmbPrj [a]
+ Agda.TypeChecking.Substitute: instance Abstract a => Abstract (Case a)
+ Agda.TypeChecking.Substitute: instance Abstract t => Abstract (Maybe t)
+ Agda.TypeChecking.Substitute: instance Abstract t => Abstract [t]
+ Agda.TypeChecking.Substitute: instance Abstract v => Abstract (Map k v)
+ Agda.TypeChecking.Substitute: instance Apply a => Apply (Case a)
+ Agda.TypeChecking.Substitute: instance Apply t => Apply (Blocked t)
+ Agda.TypeChecking.Substitute: instance Apply t => Apply (Maybe t)
+ Agda.TypeChecking.Substitute: instance Apply t => Apply [t]
+ Agda.TypeChecking.Substitute: instance Apply v => Apply (Map k v)
+ Agda.TypeChecking.Substitute: instance Raise a => Raise (Tele a)
+ Agda.TypeChecking.Substitute: instance Raise t => Raise (Abs t)
+ Agda.TypeChecking.Substitute: instance Raise t => Raise (Arg t)
+ Agda.TypeChecking.Substitute: instance Raise t => Raise (Blocked t)
+ Agda.TypeChecking.Substitute: instance Raise t => Raise (Maybe t)
+ Agda.TypeChecking.Substitute: instance Raise t => Raise [t]
+ Agda.TypeChecking.Substitute: instance Raise v => Raise (Map k v)
+ Agda.TypeChecking.Substitute: instance Subst a => Apply (Tele a)
+ Agda.TypeChecking.Substitute: instance Subst a => Subst (Abs a)
+ Agda.TypeChecking.Substitute: instance Subst a => Subst (Arg a)
+ Agda.TypeChecking.Substitute: instance Subst a => Subst (Maybe a)
+ Agda.TypeChecking.Substitute: instance Subst a => Subst (Tele a)
+ Agda.TypeChecking.Substitute: instance Subst a => Subst [a]
+ Agda.TypeChecking.Substitute: instance Subst t => Subst (Blocked t)
+ Agda.TypeChecking.Telescope: telViewUpTo :: MonadTCM tcm => Int -> Type -> tcm TelView
+ Agda.TypeChecking.Test.Generators: instance GenC a => GenC (Abs a)
+ Agda.TypeChecking.Test.Generators: instance GenC a => GenC (Arg a)
+ Agda.TypeChecking.Test.Generators: instance GenC a => GenC (SizedList a)
+ Agda.TypeChecking.Test.Generators: instance GenC a => GenC [a]
+ Agda.TypeChecking.Test.Generators: instance KillVar a => KillVar (Abs a)
+ Agda.TypeChecking.Test.Generators: instance KillVar a => KillVar (Arg a)
+ Agda.TypeChecking.Test.Generators: instance KillVar a => KillVar [a]
+ Agda.TypeChecking.Test.Generators: instance ShrinkC a b => ShrinkC (Abs a) (Abs b)
+ Agda.TypeChecking.Test.Generators: instance ShrinkC a b => ShrinkC (Arg a) (Arg b)
+ Agda.TypeChecking.Test.Generators: instance ShrinkC a b => ShrinkC (Blocked a) (Blocked b)
+ Agda.TypeChecking.Test.Generators: instance ShrinkC a b => ShrinkC (NoType a) b
+ Agda.TypeChecking.Test.Generators: instance ShrinkC a b => ShrinkC (YesType a) b
+ Agda.TypeChecking.Test.Generators: instance ShrinkC a b => ShrinkC [a] [b]
+ Agda.Utils.IO.Locale: stdoutFlush :: IO ()
+ Agda.Utils.List: fastDistinct :: Ord a => [a] -> Bool
+ Agda.Utils.List: prop_distinct_fastDistinct :: [Integer] -> Bool
+ Agda.Utils.SemiRing: instance SemiRing a => SemiRing (Maybe a)
+ Agda.Utils.TestHelpers: three :: Gen a -> Gen (a, a, a)
+ Agda.Utils.TestHelpers: two :: Gen a -> Gen (a, a)
- Agda.Auto.Convert: norm :: (Normalise t) => t -> TCM t
+ Agda.Auto.Convert: norm :: Normalise t => t -> TCM t
- Agda.Auto.NarrowingSearch: mmbpcase :: MetaEnv (MB a blk) -> (forall b. (Refinable b blk) => MM b blk -> MetaEnv (PB blk)) -> (a -> MetaEnv (PB blk)) -> MetaEnv (PB blk)
+ Agda.Auto.NarrowingSearch: mmbpcase :: MetaEnv (MB a blk) -> (forall b. Refinable b blk => MM b blk -> MetaEnv (PB blk)) -> (a -> MetaEnv (PB blk)) -> MetaEnv (PB blk)
- Agda.Auto.NarrowingSearch: mmcase :: (Refinable a blk) => MM a blk -> (a -> MetaEnv (MB b blk)) -> MetaEnv (MB b blk)
+ Agda.Auto.NarrowingSearch: mmcase :: Refinable a blk => MM a blk -> (a -> MetaEnv (MB b blk)) -> MetaEnv (MB b blk)
- Agda.Auto.NarrowingSearch: mmmcase :: (Refinable a blk) => MM a blk -> MetaEnv (MB b blk) -> (a -> MetaEnv (MB b blk)) -> MetaEnv (MB b blk)
+ Agda.Auto.NarrowingSearch: mmmcase :: Refinable a blk => MM a blk -> MetaEnv (MB b blk) -> (a -> MetaEnv (MB b blk)) -> MetaEnv (MB b blk)
- Agda.Auto.NarrowingSearch: mmpcase :: (Refinable a blk) => BlkInfo blk -> MM a blk -> (a -> MetaEnv (PB blk)) -> MetaEnv (PB blk)
+ Agda.Auto.NarrowingSearch: mmpcase :: Refinable a blk => BlkInfo blk -> MM a blk -> (a -> MetaEnv (PB blk)) -> MetaEnv (PB blk)
- Agda.Auto.NarrowingSearch: refinements :: (Refinable a blk) => blk -> [blk] -> Metavar a blk -> IO [(Int, RefCreateEnv blk a)]
+ Agda.Auto.NarrowingSearch: refinements :: Refinable a blk => blk -> [blk] -> Metavar a blk -> IO [(Int, RefCreateEnv blk a)]
- Agda.Auto.NarrowingSearch: traverse :: (Trav a blk, Monad m) => (forall b. (Trav b blk) => MM b blk -> m ()) -> a -> m ()
+ Agda.Auto.NarrowingSearch: traverse :: (Trav a blk, Monad m) => (forall b. Trav b blk => MM b blk -> m ()) -> a -> m ()
- Agda.Compiler.HaskellTypes: getHsType :: (MonadTCM tcm) => QName -> tcm HaskellType
+ Agda.Compiler.HaskellTypes: getHsType :: MonadTCM tcm => QName -> tcm HaskellType
- Agda.Compiler.HaskellTypes: getHsVar :: (MonadTCM tcm) => Nat -> tcm HaskellCode
+ Agda.Compiler.HaskellTypes: getHsVar :: MonadTCM tcm => Nat -> tcm HaskellCode
- Agda.Compiler.HaskellTypes: haskellKind :: (MonadTCM tcm) => Type -> tcm HaskellKind
+ Agda.Compiler.HaskellTypes: haskellKind :: MonadTCM tcm => Type -> tcm HaskellKind
- Agda.Compiler.HaskellTypes: haskellType :: (MonadTCM tcm) => Type -> tcm HaskellType
+ Agda.Compiler.HaskellTypes: haskellType :: MonadTCM tcm => Type -> tcm HaskellType
- Agda.Compiler.HaskellTypes: notAHaskellKind :: (MonadTCM tcm) => Type -> tcm a
+ Agda.Compiler.HaskellTypes: notAHaskellKind :: MonadTCM tcm => Type -> tcm a
- Agda.Compiler.HaskellTypes: notAHaskellType :: (MonadTCM tcm) => Type -> tcm a
+ Agda.Compiler.HaskellTypes: notAHaskellType :: MonadTCM tcm => Type -> tcm a
- Agda.Compiler.MAlonzo.Compiler: argpatts :: [Arg Pattern] -> [HsPat] -> TCM [HsPat]
+ Agda.Compiler.MAlonzo.Compiler: argpatts :: [Arg Pattern] -> [Pat] -> TCM [Pat]
- Agda.Compiler.MAlonzo.Compiler: cdecl :: QName -> Nat -> HsConDecl
+ Agda.Compiler.MAlonzo.Compiler: cdecl :: QName -> Nat -> ConDecl
- Agda.Compiler.MAlonzo.Compiler: checkConstructorType :: QName -> TCM [HsDecl]
+ Agda.Compiler.MAlonzo.Compiler: checkConstructorType :: QName -> TCM [Decl]
- Agda.Compiler.MAlonzo.Compiler: checkCover :: QName -> HaskellType -> Nat -> [QName] -> TCM [HsDecl]
+ Agda.Compiler.MAlonzo.Compiler: checkCover :: QName -> HaskellType -> Nat -> [QName] -> TCM [Decl]
- Agda.Compiler.MAlonzo.Compiler: clause :: QName -> (Nat, Bool, Clause) -> TCM HsDecl
+ Agda.Compiler.MAlonzo.Compiler: clause :: QName -> (Nat, Bool, Clause) -> TCM Decl
- Agda.Compiler.MAlonzo.Compiler: clausebody :: ClauseBody -> TCM HsExp
+ Agda.Compiler.MAlonzo.Compiler: clausebody :: ClauseBody -> TCM Exp
- Agda.Compiler.MAlonzo.Compiler: condecl :: QName -> TCM (Nat, HsConDecl)
+ Agda.Compiler.MAlonzo.Compiler: condecl :: QName -> TCM (Nat, ConDecl)
- Agda.Compiler.MAlonzo.Compiler: constructorArity :: (MonadTCM tcm) => QName -> tcm Nat
+ Agda.Compiler.MAlonzo.Compiler: constructorArity :: MonadTCM tcm => QName -> tcm Nat
- Agda.Compiler.MAlonzo.Compiler: definition :: Maybe CoinductionKit -> Definition -> TCM [HsDecl]
+ Agda.Compiler.MAlonzo.Compiler: definition :: Maybe CoinductionKit -> Definition -> TCM [Decl]
- Agda.Compiler.MAlonzo.Compiler: definitions :: Definitions -> TCM [HsDecl]
+ Agda.Compiler.MAlonzo.Compiler: definitions :: Definitions -> TCM [Decl]
- Agda.Compiler.MAlonzo.Compiler: hsCast :: HsExp -> HsExp
+ Agda.Compiler.MAlonzo.Compiler: hsCast :: Exp -> Exp
- Agda.Compiler.MAlonzo.Compiler: hslit :: Literal -> HsLiteral
+ Agda.Compiler.MAlonzo.Compiler: hslit :: Literal -> Literal
- Agda.Compiler.MAlonzo.Compiler: imports :: TCM [HsImportDecl]
+ Agda.Compiler.MAlonzo.Compiler: imports :: TCM [ImportDecl]
- Agda.Compiler.MAlonzo.Compiler: infodecl :: QName -> HsDecl
+ Agda.Compiler.MAlonzo.Compiler: infodecl :: QName -> Decl
- Agda.Compiler.MAlonzo.Compiler: literal :: Literal -> TCM HsExp
+ Agda.Compiler.MAlonzo.Compiler: literal :: Literal -> TCM Exp
- Agda.Compiler.MAlonzo.Compiler: outFile :: TCM FilePath
+ Agda.Compiler.MAlonzo.Compiler: outFile :: ModuleName -> TCM FilePath
- Agda.Compiler.MAlonzo.Compiler: term :: Term -> ReaderT Nat TCM HsExp
+ Agda.Compiler.MAlonzo.Compiler: term :: Term -> ReaderT Nat TCM Exp
- Agda.Compiler.MAlonzo.Compiler: tvaldecl :: QName -> Induction -> Nat -> Nat -> [HsConDecl] -> Maybe Clause -> [HsDecl]
+ Agda.Compiler.MAlonzo.Compiler: tvaldecl :: QName -> Induction -> Nat -> Nat -> [ConDecl] -> Maybe Clause -> [Decl]
- Agda.Compiler.MAlonzo.Compiler: writeModule :: HsModule -> TCM ()
+ Agda.Compiler.MAlonzo.Compiler: writeModule :: Module -> TCM ()
- Agda.Compiler.MAlonzo.Encode: encodeModuleName :: Module -> Module
+ Agda.Compiler.MAlonzo.Encode: encodeModuleName :: ModuleName -> ModuleName
- Agda.Compiler.MAlonzo.Misc: bltQual :: String -> String -> TCM HsQName
+ Agda.Compiler.MAlonzo.Misc: bltQual :: String -> String -> TCM QName
- Agda.Compiler.MAlonzo.Misc: conhqn :: QName -> TCM HsQName
+ Agda.Compiler.MAlonzo.Misc: conhqn :: QName -> TCM QName
- Agda.Compiler.MAlonzo.Misc: curHsMod :: TCM Module
+ Agda.Compiler.MAlonzo.Misc: curHsMod :: TCM ModuleName
- Agda.Compiler.MAlonzo.Misc: fakeD :: HsName -> String -> HsDecl
+ Agda.Compiler.MAlonzo.Misc: fakeD :: Name -> String -> Decl
- Agda.Compiler.MAlonzo.Misc: fakeDQ :: QName -> String -> HsDecl
+ Agda.Compiler.MAlonzo.Misc: fakeDQ :: QName -> String -> Decl
- Agda.Compiler.MAlonzo.Misc: fakeDS :: String -> String -> HsDecl
+ Agda.Compiler.MAlonzo.Misc: fakeDS :: String -> String -> Decl
- Agda.Compiler.MAlonzo.Misc: fakeExp :: String -> HsExp
+ Agda.Compiler.MAlonzo.Misc: fakeExp :: String -> Exp
- Agda.Compiler.MAlonzo.Misc: fakeType :: String -> HsQualType
+ Agda.Compiler.MAlonzo.Misc: fakeType :: String -> Type
- Agda.Compiler.MAlonzo.Misc: gshow' :: (Data a) => a -> String
+ Agda.Compiler.MAlonzo.Misc: gshow' :: Data a => a -> String
- Agda.Compiler.MAlonzo.Misc: hsVarUQ :: HsName -> HsExp
+ Agda.Compiler.MAlonzo.Misc: hsVarUQ :: Name -> Exp
- Agda.Compiler.MAlonzo.Misc: ihname :: String -> Nat -> HsName
+ Agda.Compiler.MAlonzo.Misc: ihname :: String -> Nat -> Name
- Agda.Compiler.MAlonzo.Misc: mazMod :: ModuleName -> Module
+ Agda.Compiler.MAlonzo.Misc: mazMod :: ModuleName -> ModuleName
- Agda.Compiler.MAlonzo.Misc: tlmodOf :: ModuleName -> TCM Module
+ Agda.Compiler.MAlonzo.Misc: tlmodOf :: ModuleName -> TCM ModuleName
- Agda.Compiler.MAlonzo.Misc: unqhname :: String -> QName -> HsName
+ Agda.Compiler.MAlonzo.Misc: unqhname :: String -> QName -> Name
- Agda.Compiler.MAlonzo.Misc: xhqn :: String -> QName -> TCM HsQName
+ Agda.Compiler.MAlonzo.Misc: xhqn :: String -> QName -> TCM QName
- Agda.Compiler.MAlonzo.Misc: xqual :: QName -> HsName -> TCM HsQName
+ Agda.Compiler.MAlonzo.Misc: xqual :: QName -> Name -> TCM QName
- Agda.Compiler.MAlonzo.Primitives: declsForPrim :: TCM [HsDecl]
+ Agda.Compiler.MAlonzo.Primitives: declsForPrim :: TCM [Decl]
- Agda.Compiler.MAlonzo.Primitives: importsForPrim :: TCM [Module]
+ Agda.Compiler.MAlonzo.Primitives: importsForPrim :: TCM [ModuleName]
- Agda.Compiler.MAlonzo.Primitives: primBody :: String -> TCM HsExp
+ Agda.Compiler.MAlonzo.Primitives: primBody :: String -> TCM Exp
- Agda.Interaction.GhciTop: Interaction :: Maybe [FilePath] -> TCM (Maybe ModuleName) -> Interaction
+ Agda.Interaction.GhciTop: Interaction :: Independence -> TCM (Maybe ModuleName) -> Interaction
- Agda.Interaction.GhciTop: cmd_compile :: FilePath -> [FilePath] -> Interaction
+ Agda.Interaction.GhciTop: cmd_compile :: Backend -> FilePath -> [FilePath] -> Interaction
- Agda.Interaction.GhciTop: cmd_write_highlighting_info :: [FilePath] -> FilePath -> FilePath -> Interaction
+ Agda.Interaction.GhciTop: cmd_write_highlighting_info :: FilePath -> FilePath -> Interaction
- Agda.Interaction.GhciTop: lowerMeta :: (LowerMeta a) => a -> a
+ Agda.Interaction.GhciTop: lowerMeta :: LowerMeta a => a -> a
- Agda.Interaction.Options: Options :: String -> Maybe FilePath -> Either [FilePath] [AbsolutePath] -> Bool -> Bool -> Bool -> Bool -> Bool -> Maybe FilePath -> Bool -> Bool -> FilePath -> Maybe FilePath -> Bool -> Bool -> [String] -> PragmaOptions -> CommandLineOptions
+ Agda.Interaction.Options: Options :: String -> Maybe FilePath -> Either [FilePath] [AbsolutePath] -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Maybe FilePath -> Bool -> Bool -> FilePath -> Maybe FilePath -> Bool -> Bool -> [String] -> PragmaOptions -> [String] -> CommandLineOptions
- Agda.Interaction.Options: PragmaOptions :: Bool -> Verbosity -> Bool -> Bool -> Bool -> Bool -> Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> PragmaOptions
+ Agda.Interaction.Options: PragmaOptions :: Bool -> Verbosity -> Bool -> Bool -> Bool -> Bool -> Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> PragmaOptions
- Agda.Syntax.Abstract: Axiom :: DefInfo -> QName -> Expr -> Declaration
+ Agda.Syntax.Abstract: Axiom :: DefInfo -> Relevance -> QName -> Expr -> Declaration
- Agda.Syntax.Abstract: LetBind :: LetInfo -> Name -> Expr -> Expr -> LetBinding
+ Agda.Syntax.Abstract: LetBind :: LetInfo -> Relevance -> Name -> Expr -> Expr -> LetBinding
- Agda.Syntax.Concrete: TypeSig :: Name -> Expr -> Declaration
+ Agda.Syntax.Concrete: TypeSig :: Relevance -> Name -> Expr -> Declaration
- Agda.Syntax.Concrete.Definitions: Axiom :: Range -> Fixity' -> Access -> IsAbstract -> Name -> Expr -> NiceDeclaration
+ Agda.Syntax.Concrete.Definitions: Axiom :: Range -> Fixity' -> Access -> IsAbstract -> Relevance -> Name -> Expr -> NiceDeclaration
- Agda.Syntax.Concrete.Operators: paren :: (Monad m) => (Name -> m Fixity) -> Expr -> m (Precedence -> Expr)
+ Agda.Syntax.Concrete.Operators: paren :: Monad m => (Name -> m Fixity) -> Expr -> m (Precedence -> Expr)
- Agda.Syntax.Concrete.Operators.Parser: appP :: (IsExpr e) => ReadP e e -> ReadP e e -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: appP :: IsExpr e => ReadP e e -> ReadP e e -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: atomP :: (IsExpr e) => (Name -> Bool) -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: atomP :: IsExpr e => (Name -> Bool) -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: binop :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e (e -> e -> ReadP a e)
+ Agda.Syntax.Concrete.Operators.Parser: binop :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e (e -> e -> ReadP a e)
- Agda.Syntax.Concrete.Operators.Parser: class (HasRange e) => IsExpr e
+ Agda.Syntax.Concrete.Operators.Parser: class HasRange e => IsExpr e
- Agda.Syntax.Concrete.Operators.Parser: exprView :: (IsExpr e) => e -> ExprView e
+ Agda.Syntax.Concrete.Operators.Parser: exprView :: IsExpr e => e -> ExprView e
- Agda.Syntax.Concrete.Operators.Parser: infixP :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: infixP :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: infixlP :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: infixlP :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: infixrP :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: infixrP :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: nonfixP :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: nonfixP :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: opP :: (IsExpr e) => ReadP e e -> NewNotation -> ReadP e (NewNotation, Range, [e])
+ Agda.Syntax.Concrete.Operators.Parser: opP :: IsExpr e => ReadP e e -> NewNotation -> ReadP e (NewNotation, Range, [e])
- Agda.Syntax.Concrete.Operators.Parser: partP :: (IsExpr e) => String -> ReadP e (Range, NamePart)
+ Agda.Syntax.Concrete.Operators.Parser: partP :: IsExpr e => String -> ReadP e (Range, NamePart)
- Agda.Syntax.Concrete.Operators.Parser: postfixP :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: postfixP :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: postop :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e (e -> ReadP a e)
+ Agda.Syntax.Concrete.Operators.Parser: postop :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e (e -> ReadP a e)
- Agda.Syntax.Concrete.Operators.Parser: prefixP :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
+ Agda.Syntax.Concrete.Operators.Parser: prefixP :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e e -> ReadP e e
- Agda.Syntax.Concrete.Operators.Parser: preop :: (IsExpr e) => ReadP e (NewNotation, Range, [e]) -> ReadP e (e -> ReadP a e)
+ Agda.Syntax.Concrete.Operators.Parser: preop :: IsExpr e => ReadP e (NewNotation, Range, [e]) -> ReadP e (e -> ReadP a e)
- Agda.Syntax.Concrete.Operators.Parser: rebuild :: (IsExpr e) => NewNotation -> Range -> [e] -> ReadP a e
+ Agda.Syntax.Concrete.Operators.Parser: rebuild :: IsExpr e => NewNotation -> Range -> [e] -> ReadP a e
- Agda.Syntax.Concrete.Operators.Parser: unExprView :: (IsExpr e) => ExprView e -> e
+ Agda.Syntax.Concrete.Operators.Parser: unExprView :: IsExpr e => ExprView e -> e
- Agda.Syntax.Concrete.Pretty: pHidden :: (Pretty a) => Hiding -> a -> Doc
+ Agda.Syntax.Concrete.Pretty: pHidden :: Pretty a => Hiding -> a -> Doc
- Agda.Syntax.Concrete.Pretty: pRelevance :: (Pretty a) => Relevance -> a -> Doc
+ Agda.Syntax.Concrete.Pretty: pRelevance :: Pretty a => Relevance -> a -> Doc
- Agda.Syntax.Internal.Generic: traverseTerm :: (TermLike a) => (Term -> Term) -> a -> a
+ Agda.Syntax.Internal.Generic: traverseTerm :: TermLike a => (Term -> Term) -> a -> a
- Agda.Syntax.Parser: parse :: (Strict a) => Parser a -> String -> IO a
+ Agda.Syntax.Parser: parse :: Strict a => Parser a -> String -> IO a
- Agda.Syntax.Parser: parseFile' :: (Strict a) => Parser a -> AbsolutePath -> IO a
+ Agda.Syntax.Parser: parseFile' :: Strict a => Parser a -> AbsolutePath -> IO a
- Agda.Syntax.Parser: parseLiterate :: (Strict a) => Parser a -> String -> IO a
+ Agda.Syntax.Parser: parseLiterate :: Strict a => Parser a -> String -> IO a
- Agda.Syntax.Parser: parsePosString :: (Strict a) => Parser a -> Position -> String -> IO a
+ Agda.Syntax.Parser: parsePosString :: Strict a => Parser a -> Position -> String -> IO a
- Agda.Syntax.Parser.LexActions: literal :: (Read a) => (Range -> a -> Literal) -> LexAction Token
+ Agda.Syntax.Parser.LexActions: literal :: Read a => (Range -> a -> Literal) -> LexAction Token
- Agda.Syntax.Position: class (HasRange t) => SetRange t
+ Agda.Syntax.Position: class HasRange t => SetRange t
- Agda.Syntax.Position: getRange :: (HasRange t) => t -> Range
+ Agda.Syntax.Position: getRange :: HasRange t => t -> Range
- Agda.Syntax.Position: killRange :: (KillRange a) => a -> a
+ Agda.Syntax.Position: killRange :: KillRange a => a -> a
- Agda.Syntax.Position: killRange1 :: (KillRange a) => (a -> t) -> a -> t
+ Agda.Syntax.Position: killRange1 :: KillRange a => (a -> t) -> a -> t
- Agda.Syntax.Position: killRange2 :: (KillRange a, KillRange a1) => (a -> a1 -> t) -> a -> a1 -> t
+ Agda.Syntax.Position: killRange2 :: (KillRange a1, KillRange a) => (a1 -> a -> t) -> a1 -> a -> t
- Agda.Syntax.Position: killRange3 :: (KillRange a, KillRange a1, KillRange a2) => (a -> a1 -> a2 -> t) -> a -> a1 -> a2 -> t
+ Agda.Syntax.Position: killRange3 :: (KillRange a2, KillRange a1, KillRange a) => (a2 -> a1 -> a -> t) -> a2 -> a1 -> a -> t
- Agda.Syntax.Position: killRange4 :: (KillRange a, KillRange a1, KillRange a2, KillRange a3) => (a -> a1 -> a2 -> a3 -> t) -> a -> a1 -> a2 -> a3 -> t
+ Agda.Syntax.Position: killRange4 :: (KillRange a3, KillRange a1, KillRange a2, KillRange a) => (a3 -> a2 -> a1 -> a -> t) -> a3 -> a2 -> a1 -> a -> t
- Agda.Syntax.Position: killRange5 :: (KillRange a, KillRange a1, KillRange a2, KillRange a3, KillRange a4) => (a -> a1 -> a2 -> a3 -> a4 -> t) -> a -> a1 -> a2 -> a3 -> a4 -> t
+ Agda.Syntax.Position: killRange5 :: (KillRange a4, KillRange a2, KillRange a3, KillRange a1, KillRange a) => (a4 -> a3 -> a2 -> a1 -> a -> t) -> a4 -> a3 -> a2 -> a1 -> a -> t
- Agda.Syntax.Position: killRange6 :: (KillRange a, KillRange a1, KillRange a2, KillRange a3, KillRange a4, KillRange a5) => (a -> a1 -> a2 -> a3 -> a4 -> a5 -> t) -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> t
+ Agda.Syntax.Position: killRange6 :: (KillRange a5, KillRange a1, KillRange a2, KillRange a4, KillRange a3, KillRange a) => (a5 -> a4 -> a3 -> a2 -> a1 -> a -> t) -> a5 -> a4 -> a3 -> a2 -> a1 -> a -> t
- Agda.Syntax.Position: killRange7 :: (KillRange a, KillRange a1, KillRange a2, KillRange a3, KillRange a4, KillRange a5, KillRange a6) => (a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> t) -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> t
+ Agda.Syntax.Position: killRange7 :: (KillRange a6, KillRange a3, KillRange a2, KillRange a5, KillRange a1, KillRange a4, KillRange a) => (a6 -> a5 -> a4 -> a3 -> a2 -> a1 -> a -> t) -> a6 -> a5 -> a4 -> a3 -> a2 -> a1 -> a -> t
- Agda.Syntax.Position: setRange :: (SetRange t) => Range -> t -> t
+ Agda.Syntax.Position: setRange :: SetRange t => Range -> t -> t
- Agda.Syntax.Scope.Base: allNamesInScope :: (InScope a) => Scope -> ThingsInScope a
+ Agda.Syntax.Scope.Base: allNamesInScope :: InScope a => Scope -> ThingsInScope a
- Agda.Syntax.Scope.Base: class (Eq a) => InScope a
+ Agda.Syntax.Scope.Base: class Eq a => InScope a
- Agda.Syntax.Scope.Base: exportedNamesInScope :: (InScope a) => Scope -> ThingsInScope a
+ Agda.Syntax.Scope.Base: exportedNamesInScope :: InScope a => Scope -> ThingsInScope a
- Agda.Syntax.Scope.Base: inNameSpace :: (InScope a) => NameSpace -> ThingsInScope a
+ Agda.Syntax.Scope.Base: inNameSpace :: InScope a => NameSpace -> ThingsInScope a
- Agda.Syntax.Scope.Base: inScopeTag :: (InScope a) => InScopeTag a
+ Agda.Syntax.Scope.Base: inScopeTag :: InScope a => InScopeTag a
- Agda.Syntax.Scope.Base: mapNameSpaceM :: (Monad m) => (NamesInScope -> m NamesInScope) -> (ModulesInScope -> m ModulesInScope) -> NameSpace -> m NameSpace
+ Agda.Syntax.Scope.Base: mapNameSpaceM :: Monad m => (NamesInScope -> m NamesInScope) -> (ModulesInScope -> m ModulesInScope) -> NameSpace -> m NameSpace
- Agda.Syntax.Scope.Base: mapScopeM :: (Monad m) => (NameSpaceId -> NamesInScope -> m NamesInScope) -> (NameSpaceId -> ModulesInScope -> m ModulesInScope) -> Scope -> m Scope
+ Agda.Syntax.Scope.Base: mapScopeM :: Monad m => (NameSpaceId -> NamesInScope -> m NamesInScope) -> (NameSpaceId -> ModulesInScope -> m ModulesInScope) -> Scope -> m Scope
- Agda.Syntax.Scope.Base: mapScopeM_ :: (Monad m) => (NamesInScope -> m NamesInScope) -> (ModulesInScope -> m ModulesInScope) -> Scope -> m Scope
+ Agda.Syntax.Scope.Base: mapScopeM_ :: Monad m => (NamesInScope -> m NamesInScope) -> (ModulesInScope -> m ModulesInScope) -> Scope -> m Scope
- Agda.Syntax.Scope.Base: mergeNames :: (InScope a) => ThingsInScope a -> ThingsInScope a -> ThingsInScope a
+ Agda.Syntax.Scope.Base: mergeNames :: InScope a => ThingsInScope a -> ThingsInScope a -> ThingsInScope a
- Agda.Syntax.Scope.Base: namesInScope :: (InScope a) => [Scope -> NameSpace] -> Scope -> ThingsInScope a
+ Agda.Syntax.Scope.Base: namesInScope :: InScope a => [Scope -> NameSpace] -> Scope -> ThingsInScope a
- Agda.Syntax.Scope.Base: scopeLookup :: (InScope a) => QName -> ScopeInfo -> [a]
+ Agda.Syntax.Scope.Base: scopeLookup :: InScope a => QName -> ScopeInfo -> [a]
- Agda.Syntax.Strict: ($!!) :: (Strict a) => (a -> b) -> a -> b
+ Agda.Syntax.Strict: ($!!) :: Strict a => (a -> b) -> a -> b
- Agda.Syntax.Strict: force :: (Strict a) => a -> Int
+ Agda.Syntax.Strict: force :: Strict a => a -> Int
- Agda.Syntax.Strict: strict :: (Strict a) => a -> a
+ Agda.Syntax.Strict: strict :: Strict a => a -> a
- Agda.Syntax.Translation.AbstractToConcrete: abstractToConcrete :: (ToConcrete a c) => Env -> a -> c
+ Agda.Syntax.Translation.AbstractToConcrete: abstractToConcrete :: ToConcrete a c => Env -> a -> c
- Agda.Syntax.Translation.AbstractToConcrete: bindToConcrete :: (ToConcrete a c) => a -> (c -> AbsToCon b) -> AbsToCon b
+ Agda.Syntax.Translation.AbstractToConcrete: bindToConcrete :: ToConcrete a c => a -> (c -> AbsToCon b) -> AbsToCon b
- Agda.Syntax.Translation.AbstractToConcrete: runAbsToCon :: (MonadTCM tcm) => AbsToCon a -> tcm a
+ Agda.Syntax.Translation.AbstractToConcrete: runAbsToCon :: MonadTCM tcm => AbsToCon a -> tcm a
- Agda.Syntax.Translation.AbstractToConcrete: toConcrete :: (ToConcrete a c) => a -> AbsToCon c
+ Agda.Syntax.Translation.AbstractToConcrete: toConcrete :: ToConcrete a c => a -> AbsToCon c
- Agda.Syntax.Translation.AbstractToConcrete: toConcreteCtx :: (ToConcrete a c) => Precedence -> a -> AbsToCon c
+ Agda.Syntax.Translation.AbstractToConcrete: toConcreteCtx :: ToConcrete a c => Precedence -> a -> AbsToCon c
- Agda.Syntax.Translation.ConcreteToAbstract: concreteToAbstract :: (ToAbstract c a) => ScopeInfo -> c -> ScopeM a
+ Agda.Syntax.Translation.ConcreteToAbstract: concreteToAbstract :: ToAbstract c a => ScopeInfo -> c -> ScopeM a
- Agda.Syntax.Translation.ConcreteToAbstract: concreteToAbstract_ :: (ToAbstract c a) => c -> ScopeM a
+ Agda.Syntax.Translation.ConcreteToAbstract: concreteToAbstract_ :: ToAbstract c a => c -> ScopeM a
- Agda.Syntax.Translation.ConcreteToAbstract: localToAbstract :: (ToAbstract c a) => c -> (a -> ScopeM b) -> ScopeM b
+ Agda.Syntax.Translation.ConcreteToAbstract: localToAbstract :: ToAbstract c a => c -> (a -> ScopeM b) -> ScopeM b
- Agda.Syntax.Translation.ConcreteToAbstract: toAbstract :: (ToAbstract concrete abstract) => concrete -> ScopeM abstract
+ Agda.Syntax.Translation.ConcreteToAbstract: toAbstract :: ToAbstract concrete abstract => concrete -> ScopeM abstract
- Agda.Syntax.Translation.InternalToAbstract: apps :: (MonadTCM tcm) => (Expr, [Arg Expr]) -> tcm Expr
+ Agda.Syntax.Translation.InternalToAbstract: apps :: MonadTCM tcm => (Expr, [Arg Expr]) -> tcm Expr
- Agda.Syntax.Translation.InternalToAbstract: dotVars :: (DotVars a) => a -> Set Name
+ Agda.Syntax.Translation.InternalToAbstract: dotVars :: DotVars a => a -> Set Name
- Agda.Syntax.Translation.InternalToAbstract: reifyApp :: (MonadTCM tcm) => Expr -> [Arg Term] -> tcm Expr
+ Agda.Syntax.Translation.InternalToAbstract: reifyApp :: MonadTCM tcm => Expr -> [Arg Term] -> tcm Expr
- Agda.Syntax.Translation.InternalToAbstract: reifyDisplayForm :: (MonadTCM tcm) => QName -> Args -> tcm Expr -> tcm Expr
+ Agda.Syntax.Translation.InternalToAbstract: reifyDisplayForm :: MonadTCM tcm => QName -> Args -> tcm Expr -> tcm Expr
- Agda.Syntax.Translation.InternalToAbstract: reifyPatterns :: (MonadTCM tcm) => Telescope -> Permutation -> [Arg Pattern] -> tcm [NamedArg Pattern]
+ Agda.Syntax.Translation.InternalToAbstract: reifyPatterns :: MonadTCM tcm => Telescope -> Permutation -> [Arg Pattern] -> tcm [NamedArg Pattern]
- Agda.Syntax.Translation.InternalToAbstract: stripImplicits :: (MonadTCM tcm) => [NamedArg Pattern] -> [Pattern] -> tcm ([NamedArg Pattern], [Pattern])
+ Agda.Syntax.Translation.InternalToAbstract: stripImplicits :: MonadTCM tcm => [NamedArg Pattern] -> [Pattern] -> tcm ([NamedArg Pattern], [Pattern])
- Agda.Termination.CallGraph: complete :: (?cutoff :: Int) => (Monoid meta) => CallGraph meta -> CallGraph meta
+ Agda.Termination.CallGraph: complete :: (?cutoff :: Int) => Monoid meta => CallGraph meta -> CallGraph meta
- Agda.Termination.CallGraph: fromList :: (Monoid meta) => [(Call, meta)] -> CallGraph meta
+ Agda.Termination.CallGraph: fromList :: Monoid meta => [(Call, meta)] -> CallGraph meta
- Agda.Termination.CallGraph: insert :: (Monoid meta) => Call -> meta -> CallGraph meta -> CallGraph meta
+ Agda.Termination.CallGraph: insert :: Monoid meta => Call -> meta -> CallGraph meta -> CallGraph meta
- Agda.Termination.CallGraph: prettyBehaviour :: (Show meta) => CallGraph meta -> Doc
+ Agda.Termination.CallGraph: prettyBehaviour :: Show meta => CallGraph meta -> Doc
- Agda.Termination.CallGraph: union :: (Monoid meta) => CallGraph meta -> CallGraph meta -> CallGraph meta
+ Agda.Termination.CallGraph: union :: Monoid meta => CallGraph meta -> CallGraph meta -> CallGraph meta
- Agda.Termination.Lexicographic: recBehaviourInvariant :: (Eq call) => RecBehaviour arg call -> Bool
+ Agda.Termination.Lexicographic: recBehaviourInvariant :: Eq call => RecBehaviour arg call -> Bool
- Agda.Termination.Matrix: size :: (Ix i) => Matrix i b -> Size i
+ Agda.Termination.Matrix: size :: Ix i => Matrix i b -> Size i
- Agda.Termination.Matrix: square :: (Ix i) => Matrix i b -> Bool
+ Agda.Termination.Matrix: square :: Ix i => Matrix i b -> Bool
- Agda.Termination.Semiring: class (Eq a) => HasZero a
+ Agda.Termination.Semiring: class Eq a => HasZero a
- Agda.Termination.Semiring: multiply :: (SemiRing a) => a -> a -> a
+ Agda.Termination.Semiring: multiply :: SemiRing a => a -> a -> a
- Agda.Termination.Semiring: zeroElement :: (HasZero a) => a
+ Agda.Termination.Semiring: zeroElement :: HasZero a => a
- Agda.Termination.SparseMatrix: add :: (Ord i) => (a -> a -> a) -> Matrix i a -> Matrix i a -> Matrix i a
+ Agda.Termination.SparseMatrix: add :: Ord i => (a -> a -> a) -> Matrix i a -> Matrix i a -> Matrix i a
- Agda.Termination.SparseMatrix: intersectWith :: (Ord i) => (a -> a -> a) -> Matrix i a -> Matrix i a -> Matrix i a
+ Agda.Termination.SparseMatrix: intersectWith :: Ord i => (a -> a -> a) -> Matrix i a -> Matrix i a -> Matrix i a
- Agda.Termination.SparseMatrix: square :: (Ix i) => Matrix i b -> Bool
+ Agda.Termination.SparseMatrix: square :: Ix i => Matrix i b -> Bool
- Agda.Termination.SparseMatrix: transpose :: (Ord i) => Matrix i b -> Matrix i b
+ Agda.Termination.SparseMatrix: transpose :: Ord i => Matrix i b -> Matrix i b
- Agda.TypeChecking.Abstract: abstractTerm :: (AbstractTerm a) => Term -> a -> a
+ Agda.TypeChecking.Abstract: abstractTerm :: AbstractTerm a => Term -> a -> a
- Agda.TypeChecking.CompiledClause.Match: match :: CompiledClauses -> Args -> (Args -> Args) -> Stack -> TCM (Reduced (Blocked Args) Term)
+ Agda.TypeChecking.CompiledClause.Match: match :: CompiledClauses -> MaybeReducedArgs -> (Args -> Args) -> Stack -> TCM (Reduced (Blocked Args) Term)
- Agda.TypeChecking.CompiledClause.Match: matchCompiled :: CompiledClauses -> Args -> TCM (Reduced (Blocked Args) Term)
+ Agda.TypeChecking.CompiledClause.Match: matchCompiled :: CompiledClauses -> MaybeReducedArgs -> TCM (Reduced (Blocked Args) Term)
- Agda.TypeChecking.CompiledClause.Match: type Stack = [(CompiledClauses, Args, Args -> Args)]
+ Agda.TypeChecking.CompiledClause.Match: type Stack = [(CompiledClauses, MaybeReducedArgs, Args -> Args)]
- Agda.TypeChecking.Constraints: addNewConstraints :: (MonadTCM tcm) => Constraints -> tcm ()
+ Agda.TypeChecking.Constraints: addNewConstraints :: MonadTCM tcm => Constraints -> tcm ()
- Agda.TypeChecking.Constraints: catchConstraint :: (MonadTCM tcm) => Constraint -> TCM Constraints -> tcm Constraints
+ Agda.TypeChecking.Constraints: catchConstraint :: MonadTCM tcm => Constraint -> TCM Constraints -> tcm Constraints
- Agda.TypeChecking.Constraints: guardConstraint :: (MonadTCM tcm) => tcm Constraints -> Constraint -> tcm Constraints
+ Agda.TypeChecking.Constraints: guardConstraint :: MonadTCM tcm => tcm Constraints -> Constraint -> tcm Constraints
- Agda.TypeChecking.Constraints: noConstraints :: (MonadTCM tcm) => tcm Constraints -> tcm ()
+ Agda.TypeChecking.Constraints: noConstraints :: MonadTCM tcm => tcm Constraints -> tcm ()
- Agda.TypeChecking.Constraints: solveConstraint :: (MonadTCM tcm) => Constraint -> tcm Constraints
+ Agda.TypeChecking.Constraints: solveConstraint :: MonadTCM tcm => Constraint -> tcm Constraints
- Agda.TypeChecking.Constraints: solveConstraints :: (MonadTCM tcm) => Constraints -> tcm Constraints
+ Agda.TypeChecking.Constraints: solveConstraints :: MonadTCM tcm => Constraints -> tcm Constraints
- Agda.TypeChecking.Constraints: wakeupConstraints :: (MonadTCM tcm) => tcm ()
+ Agda.TypeChecking.Constraints: wakeupConstraints :: MonadTCM tcm => tcm ()
- Agda.TypeChecking.Conversion: compareArgs :: (MonadTCM tcm) => [Polarity] -> Type -> Args -> Args -> tcm Constraints
+ Agda.TypeChecking.Conversion: compareArgs :: MonadTCM tcm => [Polarity] -> Type -> Args -> Args -> tcm Constraints
- Agda.TypeChecking.Conversion: compareAtom :: (MonadTCM tcm) => Comparison -> Type -> Term -> Term -> tcm Constraints
+ Agda.TypeChecking.Conversion: compareAtom :: MonadTCM tcm => Comparison -> Type -> Term -> Term -> tcm Constraints
- Agda.TypeChecking.Conversion: compareSort :: (MonadTCM tcm) => Comparison -> Sort -> Sort -> tcm Constraints
+ Agda.TypeChecking.Conversion: compareSort :: MonadTCM tcm => Comparison -> Sort -> Sort -> tcm Constraints
- Agda.TypeChecking.Conversion: compareTel :: (MonadTCM tcm) => Comparison -> Telescope -> Telescope -> tcm Constraints
+ Agda.TypeChecking.Conversion: compareTel :: MonadTCM tcm => Comparison -> Telescope -> Telescope -> tcm Constraints
- Agda.TypeChecking.Conversion: compareTerm :: (MonadTCM tcm) => Comparison -> Type -> Term -> Term -> tcm Constraints
+ Agda.TypeChecking.Conversion: compareTerm :: MonadTCM tcm => Comparison -> Type -> Term -> Term -> tcm Constraints
- Agda.TypeChecking.Conversion: compareType :: (MonadTCM tcm) => Comparison -> Type -> Type -> tcm Constraints
+ Agda.TypeChecking.Conversion: compareType :: MonadTCM tcm => Comparison -> Type -> Type -> tcm Constraints
- Agda.TypeChecking.Conversion: equalArgs :: (MonadTCM tcm) => Type -> Args -> Args -> tcm Constraints
+ Agda.TypeChecking.Conversion: equalArgs :: MonadTCM tcm => Type -> Args -> Args -> tcm Constraints
- Agda.TypeChecking.Conversion: equalAtom :: (MonadTCM tcm) => Type -> Term -> Term -> tcm Constraints
+ Agda.TypeChecking.Conversion: equalAtom :: MonadTCM tcm => Type -> Term -> Term -> tcm Constraints
- Agda.TypeChecking.Conversion: equalLevel :: (MonadTCM tcm) => Term -> Term -> tcm Constraints
+ Agda.TypeChecking.Conversion: equalLevel :: MonadTCM tcm => Term -> Term -> tcm Constraints
- Agda.TypeChecking.Conversion: equalSort :: (MonadTCM tcm) => Sort -> Sort -> tcm Constraints
+ Agda.TypeChecking.Conversion: equalSort :: MonadTCM tcm => Sort -> Sort -> tcm Constraints
- Agda.TypeChecking.Conversion: equalTerm :: (MonadTCM tcm) => Type -> Term -> Term -> tcm Constraints
+ Agda.TypeChecking.Conversion: equalTerm :: MonadTCM tcm => Type -> Term -> Term -> tcm Constraints
- Agda.TypeChecking.Conversion: equalType :: (MonadTCM tcm) => Type -> Type -> tcm Constraints
+ Agda.TypeChecking.Conversion: equalType :: MonadTCM tcm => Type -> Type -> tcm Constraints
- Agda.TypeChecking.Conversion: leqLevel :: (MonadTCM tcm) => Term -> Term -> tcm Constraints
+ Agda.TypeChecking.Conversion: leqLevel :: MonadTCM tcm => Term -> Term -> tcm Constraints
- Agda.TypeChecking.Conversion: leqSort :: (MonadTCM tcm) => Sort -> Sort -> tcm Constraints
+ Agda.TypeChecking.Conversion: leqSort :: MonadTCM tcm => Sort -> Sort -> tcm Constraints
- Agda.TypeChecking.Conversion: leqType :: (MonadTCM tcm) => Type -> Type -> tcm Constraints
+ Agda.TypeChecking.Conversion: leqType :: MonadTCM tcm => Type -> Type -> tcm Constraints
- Agda.TypeChecking.Coverage: cover :: (MonadTCM tcm) => [Clause] -> SplitClause -> tcm (Set Nat, [[Arg Pattern]])
+ Agda.TypeChecking.Coverage: cover :: MonadTCM tcm => [Clause] -> SplitClause -> tcm (Set Nat, [[Arg Pattern]])
- Agda.TypeChecking.Coverage: isDatatype :: (MonadTCM tcm, MonadException SplitError tcm) => Arg Type -> tcm (QName, [Arg Term], [Arg Term], [QName])
+ Agda.TypeChecking.Coverage: isDatatype :: (MonadTCM tcm, MonadException SplitError tcm) => Induction -> Arg Type -> tcm (QName, [Arg Term], [Arg Term], [QName])
- Agda.TypeChecking.Coverage: split :: (MonadTCM tcm) => Telescope -> Permutation -> [Arg Pattern] -> Nat -> tcm (Either SplitError Covering)
+ Agda.TypeChecking.Coverage: split :: MonadTCM tcm => Induction -> Telescope -> Permutation -> [Arg Pattern] -> Nat -> tcm (Either SplitError Covering)
- Agda.TypeChecking.Coverage: split' :: (MonadTCM tcm) => Telescope -> Permutation -> [Arg Pattern] -> Nat -> tcm (Either SplitError (Either SplitClause Covering))
+ Agda.TypeChecking.Coverage: split' :: MonadTCM tcm => Induction -> Telescope -> Permutation -> [Arg Pattern] -> Nat -> tcm (Either SplitError (Either SplitClause Covering))
- Agda.TypeChecking.Datatypes: getConstructorData :: (MonadTCM tcm) => QName -> tcm QName
+ Agda.TypeChecking.Datatypes: getConstructorData :: MonadTCM tcm => QName -> tcm QName
- Agda.TypeChecking.Datatypes: getDatatypeInfo :: (MonadTCM tcm) => Type -> tcm (Maybe DatatypeInfo)
+ Agda.TypeChecking.Datatypes: getDatatypeInfo :: MonadTCM tcm => Type -> tcm (Maybe DatatypeInfo)
- Agda.TypeChecking.Datatypes: isDatatype :: (MonadTCM tcm) => QName -> tcm Bool
+ Agda.TypeChecking.Datatypes: isDatatype :: MonadTCM tcm => QName -> tcm Bool
- Agda.TypeChecking.DisplayForm: match :: (Match a) => Nat -> a -> a -> Maybe [Term]
+ Agda.TypeChecking.DisplayForm: match :: Match a => Nat -> a -> a -> Maybe [Term]
- Agda.TypeChecking.Empty: isEmptyType :: (MonadTCM tcm) => Type -> tcm ()
+ Agda.TypeChecking.Empty: isEmptyType :: MonadTCM tcm => Type -> tcm ()
- Agda.TypeChecking.Empty: isEmptyTypeC :: (MonadTCM tcm) => Type -> tcm Constraints
+ Agda.TypeChecking.Empty: isEmptyTypeC :: MonadTCM tcm => Type -> tcm Constraints
- Agda.TypeChecking.Errors: prettyError :: (MonadTCM tcm) => TCErr -> tcm String
+ Agda.TypeChecking.Errors: prettyError :: MonadTCM tcm => TCErr -> tcm String
- Agda.TypeChecking.EtaContract: etaOnce :: (MonadTCM tcm) => Term -> tcm Term
+ Agda.TypeChecking.EtaContract: etaOnce :: MonadTCM tcm => Term -> tcm Term
- Agda.TypeChecking.Free: freeIn :: (Free a) => Nat -> a -> Bool
+ Agda.TypeChecking.Free: freeIn :: Free a => Nat -> a -> Bool
- Agda.TypeChecking.Free: freeInIgnoringSorts :: (Free a) => Nat -> a -> Bool
+ Agda.TypeChecking.Free: freeInIgnoringSorts :: Free a => Nat -> a -> Bool
- Agda.TypeChecking.Free: freeVars :: (Free a) => a -> FreeVars
+ Agda.TypeChecking.Free: freeVars :: Free a => a -> FreeVars
- Agda.TypeChecking.Level: builtinLevelKit :: (MonadTCM tcm) => tcm (Maybe LevelKit)
+ Agda.TypeChecking.Level: builtinLevelKit :: MonadTCM tcm => tcm (Maybe LevelKit)
- Agda.TypeChecking.Level: levelSucFunction :: (MonadTCM tcm) => tcm (Term -> Term)
+ Agda.TypeChecking.Level: levelSucFunction :: MonadTCM tcm => tcm (Term -> Term)
- Agda.TypeChecking.Level: levelView :: (MonadTCM tcm) => Term -> tcm LevelView
+ Agda.TypeChecking.Level: levelView :: MonadTCM tcm => Term -> tcm LevelView
- Agda.TypeChecking.Level: maybePrimCon :: (MonadTCM tcm) => TCM Term -> tcm (Maybe QName)
+ Agda.TypeChecking.Level: maybePrimCon :: MonadTCM tcm => TCM Term -> tcm (Maybe QName)
- Agda.TypeChecking.Level: maybePrimDef :: (MonadTCM tcm) => TCM Term -> tcm (Maybe QName)
+ Agda.TypeChecking.Level: maybePrimDef :: MonadTCM tcm => TCM Term -> tcm (Maybe QName)
- Agda.TypeChecking.Level: unLevelView :: (MonadTCM tcm) => LevelView -> tcm Term
+ Agda.TypeChecking.Level: unLevelView :: MonadTCM tcm => LevelView -> tcm Term
- Agda.TypeChecking.MetaVars: (=:=) :: (MonadTCM tcm) => MetaId -> Term -> tcm ()
+ Agda.TypeChecking.MetaVars: (=:=) :: MonadTCM tcm => MetaId -> Term -> tcm ()
- Agda.TypeChecking.MetaVars: abortAssign :: (MonadTCM tcm) => tcm a
+ Agda.TypeChecking.MetaVars: abortAssign :: MonadTCM tcm => tcm a
- Agda.TypeChecking.MetaVars: assignS :: (MonadTCM tcm) => MetaId -> Args -> Sort -> tcm Constraints
+ Agda.TypeChecking.MetaVars: assignS :: MonadTCM tcm => MetaId -> Args -> Sort -> tcm Constraints
- Agda.TypeChecking.MetaVars: assignSort :: (MonadTCM tcm) => MetaId -> Sort -> tcm ()
+ Agda.TypeChecking.MetaVars: assignSort :: MonadTCM tcm => MetaId -> Sort -> tcm ()
- Agda.TypeChecking.MetaVars: assignTerm :: (MonadTCM tcm) => MetaId -> Term -> tcm ()
+ Agda.TypeChecking.MetaVars: assignTerm :: MonadTCM tcm => MetaId -> Term -> tcm ()
- Agda.TypeChecking.MetaVars: assignV :: (MonadTCM tcm) => Type -> MetaId -> Args -> Term -> tcm Constraints
+ Agda.TypeChecking.MetaVars: assignV :: MonadTCM tcm => Type -> MetaId -> Args -> Term -> tcm Constraints
- Agda.TypeChecking.MetaVars: blockTerm :: (MonadTCM tcm) => Type -> Term -> tcm Constraints -> tcm Term
+ Agda.TypeChecking.MetaVars: blockTerm :: MonadTCM tcm => Type -> Term -> tcm Constraints -> tcm Term
- Agda.TypeChecking.MetaVars: checkArgs :: (MonadTCM tcm) => MetaId -> Args -> FVs -> tcm [Arg Nat]
+ Agda.TypeChecking.MetaVars: checkArgs :: MonadTCM tcm => MetaId -> Args -> FVs -> tcm [Arg Nat]
- Agda.TypeChecking.MetaVars: etaExpandListeners :: (MonadTCM tcm) => MetaId -> tcm ()
+ Agda.TypeChecking.MetaVars: etaExpandListeners :: MonadTCM tcm => MetaId -> tcm ()
- Agda.TypeChecking.MetaVars: etaExpandMeta :: (MonadTCM tcm) => [MetaKind] -> MetaId -> tcm ()
+ Agda.TypeChecking.MetaVars: etaExpandMeta :: MonadTCM tcm => [MetaKind] -> MetaId -> tcm ()
- Agda.TypeChecking.MetaVars: findIdx :: (Eq a) => [a] -> a -> Maybe Int
+ Agda.TypeChecking.MetaVars: findIdx :: Eq a => [a] -> a -> Maybe Int
- Agda.TypeChecking.MetaVars: handleAbort :: (MonadTCM tcm) => TCM a -> TCM a -> tcm a
+ Agda.TypeChecking.MetaVars: handleAbort :: MonadTCM tcm => TCM a -> TCM a -> tcm a
- Agda.TypeChecking.MetaVars: isBlockedTerm :: (MonadTCM tcm) => MetaId -> tcm Bool
+ Agda.TypeChecking.MetaVars: isBlockedTerm :: MonadTCM tcm => MetaId -> tcm Bool
- Agda.TypeChecking.MetaVars: isEtaExpandable :: (MonadTCM tcm) => MetaId -> tcm Bool
+ Agda.TypeChecking.MetaVars: isEtaExpandable :: MonadTCM tcm => MetaId -> tcm Bool
- Agda.TypeChecking.MetaVars: metaVariable :: (HasMeta t) => MetaId -> Args -> t
+ Agda.TypeChecking.MetaVars: metaVariable :: HasMeta t => MetaId -> Args -> t
- Agda.TypeChecking.MetaVars: newArgsMeta :: (MonadTCM tcm) => Type -> tcm Args
+ Agda.TypeChecking.MetaVars: newArgsMeta :: MonadTCM tcm => Type -> tcm Args
- Agda.TypeChecking.MetaVars: newArgsMetaCtx :: (MonadTCM tcm) => Type -> Telescope -> Args -> tcm Args
+ Agda.TypeChecking.MetaVars: newArgsMetaCtx :: MonadTCM tcm => Type -> Telescope -> Args -> tcm Args
- Agda.TypeChecking.MetaVars: newQuestionMark :: (MonadTCM tcm) => Type -> tcm Term
+ Agda.TypeChecking.MetaVars: newQuestionMark :: MonadTCM tcm => Type -> tcm Term
- Agda.TypeChecking.MetaVars: newRecordMeta :: (MonadTCM tcm) => QName -> Args -> tcm Term
+ Agda.TypeChecking.MetaVars: newRecordMeta :: MonadTCM tcm => QName -> Args -> tcm Term
- Agda.TypeChecking.MetaVars: newRecordMetaCtx :: (MonadTCM tcm) => QName -> Args -> Telescope -> Args -> tcm Term
+ Agda.TypeChecking.MetaVars: newRecordMetaCtx :: MonadTCM tcm => QName -> Args -> Telescope -> Args -> tcm Term
- Agda.TypeChecking.MetaVars: newSortMeta :: (MonadTCM tcm) => tcm Sort
+ Agda.TypeChecking.MetaVars: newSortMeta :: MonadTCM tcm => tcm Sort
- Agda.TypeChecking.MetaVars: newSortMetaCtx :: (MonadTCM tcm) => Args -> tcm Sort
+ Agda.TypeChecking.MetaVars: newSortMetaCtx :: MonadTCM tcm => Args -> tcm Sort
- Agda.TypeChecking.MetaVars: newTelMeta :: (MonadTCM tcm) => Telescope -> tcm Args
+ Agda.TypeChecking.MetaVars: newTelMeta :: MonadTCM tcm => Telescope -> tcm Args
- Agda.TypeChecking.MetaVars: newTypeMeta :: (MonadTCM tcm) => Sort -> tcm Type
+ Agda.TypeChecking.MetaVars: newTypeMeta :: MonadTCM tcm => Sort -> tcm Type
- Agda.TypeChecking.MetaVars: newTypeMeta_ :: (MonadTCM tcm) => tcm Type
+ Agda.TypeChecking.MetaVars: newTypeMeta_ :: MonadTCM tcm => tcm Type
- Agda.TypeChecking.MetaVars: newValueMeta :: (MonadTCM tcm) => Type -> tcm Term
+ Agda.TypeChecking.MetaVars: newValueMeta :: MonadTCM tcm => Type -> tcm Term
- Agda.TypeChecking.MetaVars: newValueMeta' :: (MonadTCM tcm) => Type -> tcm Term
+ Agda.TypeChecking.MetaVars: newValueMeta' :: MonadTCM tcm => Type -> tcm Term
- Agda.TypeChecking.MetaVars: newValueMetaCtx :: (MonadTCM tcm) => Type -> Args -> tcm Term
+ Agda.TypeChecking.MetaVars: newValueMetaCtx :: MonadTCM tcm => Type -> Args -> tcm Term
- Agda.TypeChecking.MetaVars: newValueMetaCtx' :: (MonadTCM tcm) => Type -> Args -> tcm Term
+ Agda.TypeChecking.MetaVars: newValueMetaCtx' :: MonadTCM tcm => Type -> Args -> tcm Term
- Agda.TypeChecking.MetaVars: postponeTypeCheckingProblem :: (MonadTCM tcm) => Expr -> Type -> TCM Bool -> tcm Term
+ Agda.TypeChecking.MetaVars: postponeTypeCheckingProblem :: MonadTCM tcm => Expr -> Type -> TCM Bool -> tcm Term
- Agda.TypeChecking.MetaVars: postponeTypeCheckingProblem_ :: (MonadTCM tcm) => Expr -> Type -> tcm Term
+ Agda.TypeChecking.MetaVars: postponeTypeCheckingProblem_ :: MonadTCM tcm => Expr -> Type -> tcm Term
- Agda.TypeChecking.MetaVars: validParameters :: (Monad m) => Args -> FVs -> m [Arg Nat]
+ Agda.TypeChecking.MetaVars: validParameters :: Monad m => Args -> FVs -> m [Arg Nat]
- Agda.TypeChecking.MetaVars.Occurs: occurs :: (Occurs t) => OccursCtx -> MetaId -> [Nat] -> t -> TCM t
+ Agda.TypeChecking.MetaVars.Occurs: occurs :: Occurs t => OccursCtx -> MetaId -> [Nat] -> t -> TCM t
- Agda.TypeChecking.MetaVars.Occurs: occursCheck :: (MonadTCM tcm) => MetaId -> [Nat] -> Term -> tcm Term
+ Agda.TypeChecking.MetaVars.Occurs: occursCheck :: MonadTCM tcm => MetaId -> [Nat] -> Term -> tcm Term
- Agda.TypeChecking.Monad.Base: Axiom :: Maybe HaskellRepresentation -> Defn
+ Agda.TypeChecking.Monad.Base: Axiom :: Maybe HaskellRepresentation -> Maybe EpicCode -> Defn
- Agda.TypeChecking.Monad.Base: Defn :: QName -> Type -> [Open DisplayForm] -> MutualId -> Defn -> Definition
+ Agda.TypeChecking.Monad.Base: Defn :: Relevance -> QName -> Type -> [Open DisplayForm] -> MutualId -> Defn -> Definition
- Agda.TypeChecking.Monad.Base: Function :: [Clauses] -> CompiledClauses -> FunctionInverse -> [Polarity] -> [Occurrence] -> IsAbstract -> Delayed -> Defn
+ Agda.TypeChecking.Monad.Base: Function :: [Clauses] -> CompiledClauses -> FunctionInverse -> [Polarity] -> [Occurrence] -> IsAbstract -> Delayed -> Maybe Int -> Defn
- Agda.TypeChecking.Monad.Base: PrimFun :: QName -> Arity -> (forall tcm. (MonadTCM tcm) => [Arg Term] -> tcm (Reduced [Arg Term] Term)) -> PrimFun
+ Agda.TypeChecking.Monad.Base: PrimFun :: QName -> Arity -> (forall tcm. MonadTCM tcm => [Arg Term] -> tcm (Reduced MaybeReducedArgs Term)) -> PrimFun
- Agda.TypeChecking.Monad.Base: Primitive :: IsAbstract -> String -> Maybe [Clauses] -> Defn
+ Agda.TypeChecking.Monad.Base: Primitive :: IsAbstract -> String -> Maybe [Clauses] -> Maybe CompiledClauses -> Defn
- Agda.TypeChecking.Monad.Base: TCEnv :: Context -> LetBindings -> ModuleName -> [(ModuleName, Nat)] -> [TopLevelModuleName] -> Maybe MutualId -> AbstractMode -> Bool -> Bool -> Bool -> Bool -> Range -> Maybe (Closure Call) -> TCEnv
+ Agda.TypeChecking.Monad.Base: TCEnv :: Context -> LetBindings -> ModuleName -> [(ModuleName, Nat)] -> [TopLevelModuleName] -> Maybe MutualId -> AbstractMode -> Bool -> Bool -> Bool -> Bool -> Bool -> Range -> Maybe (Closure Call) -> TCEnv
- Agda.TypeChecking.Monad.Base: buildClosure :: (MonadTCM tcm) => a -> tcm (Closure a)
+ Agda.TypeChecking.Monad.Base: buildClosure :: MonadTCM tcm => a -> tcm (Closure a)
- Agda.TypeChecking.Monad.Base: internalError :: (MonadTCM tcm) => String -> tcm a
+ Agda.TypeChecking.Monad.Base: internalError :: MonadTCM tcm => String -> tcm a
- Agda.TypeChecking.Monad.Base: liftTCM :: (MonadTCM tcm) => TCM a -> tcm a
+ Agda.TypeChecking.Monad.Base: liftTCM :: MonadTCM tcm => TCM a -> tcm a
- Agda.TypeChecking.Monad.Base: patternViolation :: (MonadTCM tcm) => tcm a
+ Agda.TypeChecking.Monad.Base: patternViolation :: MonadTCM tcm => tcm a
- Agda.TypeChecking.Monad.Base: primFunImplementation :: PrimFun -> forall tcm. (MonadTCM tcm) => [Arg Term] -> tcm (Reduced [Arg Term] Term)
+ Agda.TypeChecking.Monad.Base: primFunImplementation :: PrimFun -> forall tcm. MonadTCM tcm => [Arg Term] -> tcm (Reduced MaybeReducedArgs Term)
- Agda.TypeChecking.Monad.Base: pureTCM :: (Monad m) => (TCState -> TCEnv -> a) -> TCMT m a
+ Agda.TypeChecking.Monad.Base: pureTCM :: Monad m => (TCState -> TCEnv -> a) -> TCMT m a
- Agda.TypeChecking.Monad.Base: runTCM' :: (Monad m) => TCMT m a -> m a
+ Agda.TypeChecking.Monad.Base: runTCM' :: Monad m => TCMT m a -> m a
- Agda.TypeChecking.Monad.Base: typeError :: (MonadTCM tcm) => TypeError -> tcm a
+ Agda.TypeChecking.Monad.Base: typeError :: MonadTCM tcm => TypeError -> tcm a
- Agda.TypeChecking.Monad.Builtin: bindBuiltinName :: (MonadTCM tcm) => String -> Term -> tcm ()
+ Agda.TypeChecking.Monad.Builtin: bindBuiltinName :: MonadTCM tcm => String -> Term -> tcm ()
- Agda.TypeChecking.Monad.Builtin: bindPrimitive :: (MonadTCM tcm) => String -> PrimFun -> tcm ()
+ Agda.TypeChecking.Monad.Builtin: bindPrimitive :: MonadTCM tcm => String -> PrimFun -> tcm ()
- Agda.TypeChecking.Monad.Builtin: getBuiltin :: (MonadTCM tcm) => String -> tcm Term
+ Agda.TypeChecking.Monad.Builtin: getBuiltin :: MonadTCM tcm => String -> tcm Term
- Agda.TypeChecking.Monad.Builtin: getBuiltin' :: (MonadTCM tcm) => String -> tcm (Maybe Term)
+ Agda.TypeChecking.Monad.Builtin: getBuiltin' :: MonadTCM tcm => String -> tcm (Maybe Term)
- Agda.TypeChecking.Monad.Builtin: getBuiltinThings :: (MonadTCM tcm) => tcm (BuiltinThings PrimFun)
+ Agda.TypeChecking.Monad.Builtin: getBuiltinThings :: MonadTCM tcm => tcm (BuiltinThings PrimFun)
- Agda.TypeChecking.Monad.Builtin: getPrimitive :: (MonadTCM tcm) => String -> tcm PrimFun
+ Agda.TypeChecking.Monad.Builtin: getPrimitive :: MonadTCM tcm => String -> tcm PrimFun
- Agda.TypeChecking.Monad.Builtin: primAgdaTerm :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTerm :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primAgdaTermCon :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTermCon :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primAgdaTermDef :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTermDef :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primAgdaTermLam :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTermLam :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primAgdaTermPi :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTermPi :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primAgdaTermSort :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTermSort :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primAgdaTermUnsupported :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTermUnsupported :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primAgdaTermVar :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primAgdaTermVar :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primArg :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primArg :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primArgArg :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primArgArg :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primBool :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primBool :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primChar :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primChar :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primCons :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primCons :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primEquality :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primEquality :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primFalse :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primFalse :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primFlat :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primFlat :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primFloat :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primFloat :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primIO :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primIO :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primInf :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primInf :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primInteger :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primInteger :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primLevel :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primLevel :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primLevelMax :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primLevelMax :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primLevelSuc :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primLevelSuc :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primLevelZero :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primLevelZero :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primList :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primList :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNat :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNat :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNatDivSucAux :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNatDivSucAux :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNatEquality :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNatEquality :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNatLess :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNatLess :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNatMinus :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNatMinus :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNatModSucAux :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNatModSucAux :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNatPlus :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNatPlus :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNatTimes :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNatTimes :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primNil :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primNil :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primQName :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primQName :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primRefl :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primRefl :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primSharp :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primSharp :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primSize :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primSize :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primSizeInf :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primSizeInf :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primSizeSuc :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primSizeSuc :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primString :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primString :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primSuc :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primSuc :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primTrue :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primTrue :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: primZero :: (MonadTCM tcm) => tcm Term
+ Agda.TypeChecking.Monad.Builtin: primZero :: MonadTCM tcm => tcm Term
- Agda.TypeChecking.Monad.Builtin: setBuiltinThings :: (MonadTCM tcm) => BuiltinThings PrimFun -> tcm ()
+ Agda.TypeChecking.Monad.Builtin: setBuiltinThings :: MonadTCM tcm => BuiltinThings PrimFun -> tcm ()
- Agda.TypeChecking.Monad.Closure: enterClosure :: (MonadTCM tcm) => Closure a -> (a -> tcm b) -> tcm b
+ Agda.TypeChecking.Monad.Closure: enterClosure :: MonadTCM tcm => Closure a -> (a -> tcm b) -> tcm b
- Agda.TypeChecking.Monad.Constraints: addConstraints :: (MonadTCM tcm) => Constraints -> tcm ()
+ Agda.TypeChecking.Monad.Constraints: addConstraints :: MonadTCM tcm => Constraints -> tcm ()
- Agda.TypeChecking.Monad.Constraints: buildConstraint :: (MonadTCM tcm) => Constraint -> tcm Constraints
+ Agda.TypeChecking.Monad.Constraints: buildConstraint :: MonadTCM tcm => Constraint -> tcm Constraints
- Agda.TypeChecking.Monad.Constraints: getConstraints :: (MonadTCM tcm) => tcm Constraints
+ Agda.TypeChecking.Monad.Constraints: getConstraints :: MonadTCM tcm => tcm Constraints
- Agda.TypeChecking.Monad.Constraints: lookupConstraint :: (MonadTCM tcm) => Int -> tcm ConstraintClosure
+ Agda.TypeChecking.Monad.Constraints: lookupConstraint :: MonadTCM tcm => Int -> tcm ConstraintClosure
- Agda.TypeChecking.Monad.Constraints: takeConstraints :: (MonadTCM tcm) => tcm Constraints
+ Agda.TypeChecking.Monad.Constraints: takeConstraints :: MonadTCM tcm => tcm Constraints
- Agda.TypeChecking.Monad.Constraints: withConstraint :: (MonadTCM tcm) => (Constraint -> tcm a) -> ConstraintClosure -> tcm a
+ Agda.TypeChecking.Monad.Constraints: withConstraint :: MonadTCM tcm => (Constraint -> tcm a) -> ConstraintClosure -> tcm a
- Agda.TypeChecking.Monad.Context: addCtx :: (MonadTCM tcm) => Name -> Arg Type -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: addCtx :: MonadTCM tcm => Name -> Arg Type -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Context: addCtxTel :: (MonadTCM tcm) => Telescope -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: addCtxTel :: MonadTCM tcm => Telescope -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Context: addCtxs :: (MonadTCM tcm) => [Name] -> Arg Type -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: addCtxs :: MonadTCM tcm => [Name] -> Arg Type -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Context: addLetBinding :: (MonadTCM tcm) => Name -> Term -> Type -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: addLetBinding :: MonadTCM tcm => Relevance -> Name -> Term -> Type -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Context: applyRelevanceToContext :: (MonadTCM tcm) => Relevance -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: applyRelevanceToContext :: MonadTCM tcm => Relevance -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Context: escapeContext :: (MonadTCM tcm) => Int -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: escapeContext :: MonadTCM tcm => Int -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Context: getContext :: (MonadTCM tcm) => tcm [Arg (Name, Type)]
+ Agda.TypeChecking.Monad.Context: getContext :: MonadTCM tcm => tcm [Arg (Name, Type)]
- Agda.TypeChecking.Monad.Context: getContextArgs :: (MonadTCM tcm) => tcm Args
+ Agda.TypeChecking.Monad.Context: getContextArgs :: MonadTCM tcm => tcm Args
- Agda.TypeChecking.Monad.Context: getContextId :: (MonadTCM tcm) => tcm [CtxId]
+ Agda.TypeChecking.Monad.Context: getContextId :: MonadTCM tcm => tcm [CtxId]
- Agda.TypeChecking.Monad.Context: getContextTelescope :: (MonadTCM tcm) => tcm Telescope
+ Agda.TypeChecking.Monad.Context: getContextTelescope :: MonadTCM tcm => tcm Telescope
- Agda.TypeChecking.Monad.Context: getContextTerms :: (MonadTCM tcm) => tcm [Term]
+ Agda.TypeChecking.Monad.Context: getContextTerms :: MonadTCM tcm => tcm [Term]
- Agda.TypeChecking.Monad.Context: getVarInfo :: (MonadTCM tcm) => Name -> tcm (Term, Arg Type)
+ Agda.TypeChecking.Monad.Context: getVarInfo :: MonadTCM tcm => Name -> tcm (Term, Arg Type)
- Agda.TypeChecking.Monad.Context: inContext :: (MonadTCM tcm) => [Arg (Name, Type)] -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: inContext :: MonadTCM tcm => [Arg (Name, Type)] -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Context: mkContextEntry :: (MonadTCM tcm) => Arg (Name, Type) -> tcm ContextEntry
+ Agda.TypeChecking.Monad.Context: mkContextEntry :: MonadTCM tcm => Arg (Name, Type) -> tcm ContextEntry
- Agda.TypeChecking.Monad.Context: nameOfBV :: (MonadTCM tcm) => Nat -> tcm Name
+ Agda.TypeChecking.Monad.Context: nameOfBV :: MonadTCM tcm => Nat -> tcm Name
- Agda.TypeChecking.Monad.Context: typeOfBV :: (MonadTCM tcm) => Nat -> tcm Type
+ Agda.TypeChecking.Monad.Context: typeOfBV :: MonadTCM tcm => Nat -> tcm Type
- Agda.TypeChecking.Monad.Context: typeOfBV' :: (MonadTCM tcm) => Nat -> tcm (Arg Type)
+ Agda.TypeChecking.Monad.Context: typeOfBV' :: MonadTCM tcm => Nat -> tcm (Arg Type)
- Agda.TypeChecking.Monad.Context: underAbstraction :: (MonadTCM tcm) => Arg Type -> Abs a -> (a -> tcm b) -> tcm b
+ Agda.TypeChecking.Monad.Context: underAbstraction :: MonadTCM tcm => Arg Type -> Abs a -> (a -> tcm b) -> tcm b
- Agda.TypeChecking.Monad.Context: underAbstraction_ :: (MonadTCM tcm) => Abs a -> (a -> tcm b) -> tcm b
+ Agda.TypeChecking.Monad.Context: underAbstraction_ :: MonadTCM tcm => Abs a -> (a -> tcm b) -> tcm b
- Agda.TypeChecking.Monad.Context: wakeIrrelevantVars :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Context: wakeIrrelevantVars :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Debug: debug :: (MonadIO m) => String -> m ()
+ Agda.TypeChecking.Monad.Debug: debug :: MonadIO m => String -> m ()
- Agda.TypeChecking.Monad.Env: currentModule :: (MonadTCM tcm) => tcm ModuleName
+ Agda.TypeChecking.Monad.Env: currentModule :: MonadTCM tcm => tcm ModuleName
- Agda.TypeChecking.Monad.Env: getAnonymousVariables :: (MonadTCM tcm) => ModuleName -> tcm Nat
+ Agda.TypeChecking.Monad.Env: getAnonymousVariables :: MonadTCM tcm => ModuleName -> tcm Nat
- Agda.TypeChecking.Monad.Env: getEnv :: (MonadTCM tcm) => tcm TCEnv
+ Agda.TypeChecking.Monad.Env: getEnv :: MonadTCM tcm => tcm TCEnv
- Agda.TypeChecking.Monad.Env: withAnonymousModule :: (MonadTCM tcm) => ModuleName -> Nat -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Env: withAnonymousModule :: MonadTCM tcm => ModuleName -> Nat -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Env: withCurrentModule :: (MonadTCM tcm) => ModuleName -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Env: withCurrentModule :: MonadTCM tcm => ModuleName -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Env: withEnv :: (MonadTCM tcm) => TCEnv -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Env: withEnv :: MonadTCM tcm => TCEnv -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Exception: catchException :: (MonadException err m) => m a -> (err -> m a) -> m a
+ Agda.TypeChecking.Monad.Exception: catchException :: MonadException err m => m a -> (err -> m a) -> m a
- Agda.TypeChecking.Monad.Exception: class (Error err) => MonadException err m | m -> err
+ Agda.TypeChecking.Monad.Exception: class Error err => MonadException err m | m -> err
- Agda.TypeChecking.Monad.Exception: throwException :: (MonadException err m) => err -> m a
+ Agda.TypeChecking.Monad.Exception: throwException :: MonadException err m => err -> m a
- Agda.TypeChecking.Monad.MetaVars: addInteractionPoint :: (MonadTCM tcm) => InteractionId -> MetaId -> tcm ()
+ Agda.TypeChecking.Monad.MetaVars: addInteractionPoint :: MonadTCM tcm => InteractionId -> MetaId -> tcm ()
- Agda.TypeChecking.Monad.MetaVars: clearMetaListeners :: (MonadTCM tcm) => MetaId -> tcm ()
+ Agda.TypeChecking.Monad.MetaVars: clearMetaListeners :: MonadTCM tcm => MetaId -> tcm ()
- Agda.TypeChecking.Monad.MetaVars: createMetaInfo :: (MonadTCM tcm) => tcm MetaInfo
+ Agda.TypeChecking.Monad.MetaVars: createMetaInfo :: MonadTCM tcm => tcm MetaInfo
- Agda.TypeChecking.Monad.MetaVars: getInstantiatedMetas :: (MonadTCM tcm) => tcm [MetaId]
+ Agda.TypeChecking.Monad.MetaVars: getInstantiatedMetas :: MonadTCM tcm => tcm [MetaId]
- Agda.TypeChecking.Monad.MetaVars: getInteractionMetas :: (MonadTCM tcm) => tcm [MetaId]
+ Agda.TypeChecking.Monad.MetaVars: getInteractionMetas :: MonadTCM tcm => tcm [MetaId]
- Agda.TypeChecking.Monad.MetaVars: getInteractionPoints :: (MonadTCM tcm) => tcm [InteractionId]
+ Agda.TypeChecking.Monad.MetaVars: getInteractionPoints :: MonadTCM tcm => tcm [InteractionId]
- Agda.TypeChecking.Monad.MetaVars: getInteractionRange :: (MonadTCM tcm) => InteractionId -> tcm Range
+ Agda.TypeChecking.Monad.MetaVars: getInteractionRange :: MonadTCM tcm => InteractionId -> tcm Range
- Agda.TypeChecking.Monad.MetaVars: getInteractionScope :: (MonadTCM tcm) => InteractionId -> tcm ScopeInfo
+ Agda.TypeChecking.Monad.MetaVars: getInteractionScope :: MonadTCM tcm => InteractionId -> tcm ScopeInfo
- Agda.TypeChecking.Monad.MetaVars: getMetaListeners :: (MonadTCM tcm) => MetaId -> tcm [MetaId]
+ Agda.TypeChecking.Monad.MetaVars: getMetaListeners :: MonadTCM tcm => MetaId -> tcm [MetaId]
- Agda.TypeChecking.Monad.MetaVars: getMetaPriority :: (MonadTCM tcm) => MetaId -> tcm MetaPriority
+ Agda.TypeChecking.Monad.MetaVars: getMetaPriority :: MonadTCM tcm => MetaId -> tcm MetaPriority
- Agda.TypeChecking.Monad.MetaVars: getMetaRange :: (MonadTCM tcm) => MetaId -> tcm Range
+ Agda.TypeChecking.Monad.MetaVars: getMetaRange :: MonadTCM tcm => MetaId -> tcm Range
- Agda.TypeChecking.Monad.MetaVars: getMetaStore :: (MonadTCM tcm) => tcm MetaStore
+ Agda.TypeChecking.Monad.MetaVars: getMetaStore :: MonadTCM tcm => tcm MetaStore
- Agda.TypeChecking.Monad.MetaVars: getOpenMetas :: (MonadTCM tcm) => tcm [MetaId]
+ Agda.TypeChecking.Monad.MetaVars: getOpenMetas :: MonadTCM tcm => tcm [MetaId]
- Agda.TypeChecking.Monad.MetaVars: isInstantiatedMeta :: (MonadTCM tcm) => MetaId -> tcm Bool
+ Agda.TypeChecking.Monad.MetaVars: isInstantiatedMeta :: MonadTCM tcm => MetaId -> tcm Bool
- Agda.TypeChecking.Monad.MetaVars: isInteractionMeta :: (MonadTCM tcm) => MetaId -> tcm Bool
+ Agda.TypeChecking.Monad.MetaVars: isInteractionMeta :: MonadTCM tcm => MetaId -> tcm Bool
- Agda.TypeChecking.Monad.MetaVars: isSortMeta :: (MonadTCM tcm) => MetaId -> tcm Bool
+ Agda.TypeChecking.Monad.MetaVars: isSortMeta :: MonadTCM tcm => MetaId -> tcm Bool
- Agda.TypeChecking.Monad.MetaVars: judgementInteractionId :: (MonadTCM tcm) => InteractionId -> tcm (Judgement Type MetaId)
+ Agda.TypeChecking.Monad.MetaVars: judgementInteractionId :: MonadTCM tcm => InteractionId -> tcm (Judgement Type MetaId)
- Agda.TypeChecking.Monad.MetaVars: listenToMeta :: (MonadTCM tcm) => MetaId -> MetaId -> tcm ()
+ Agda.TypeChecking.Monad.MetaVars: listenToMeta :: MonadTCM tcm => MetaId -> MetaId -> tcm ()
- Agda.TypeChecking.Monad.MetaVars: lookupInteractionId :: (MonadTCM tcm) => InteractionId -> tcm MetaId
+ Agda.TypeChecking.Monad.MetaVars: lookupInteractionId :: MonadTCM tcm => InteractionId -> tcm MetaId
- Agda.TypeChecking.Monad.MetaVars: lookupMeta :: (MonadTCM tcm) => MetaId -> tcm MetaVariable
+ Agda.TypeChecking.Monad.MetaVars: lookupMeta :: MonadTCM tcm => MetaId -> tcm MetaVariable
- Agda.TypeChecking.Monad.MetaVars: newMeta :: (MonadTCM tcm) => MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> tcm MetaId
+ Agda.TypeChecking.Monad.MetaVars: newMeta :: MonadTCM tcm => MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> tcm MetaId
- Agda.TypeChecking.Monad.MetaVars: newMeta' :: (MonadTCM tcm) => MetaInstantiation -> MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> tcm MetaId
+ Agda.TypeChecking.Monad.MetaVars: newMeta' :: MonadTCM tcm => MetaInstantiation -> MetaInfo -> MetaPriority -> Permutation -> Judgement Type a -> tcm MetaId
- Agda.TypeChecking.Monad.MetaVars: removeInteractionPoint :: (MonadTCM tcm) => InteractionId -> tcm ()
+ Agda.TypeChecking.Monad.MetaVars: removeInteractionPoint :: MonadTCM tcm => InteractionId -> tcm ()
- Agda.TypeChecking.Monad.MetaVars: unlistenToMeta :: (MonadTCM tcm) => MetaId -> MetaId -> tcm ()
+ Agda.TypeChecking.Monad.MetaVars: unlistenToMeta :: MonadTCM tcm => MetaId -> MetaId -> tcm ()
- Agda.TypeChecking.Monad.MetaVars: updateMetaVar :: (MonadTCM tcm) => MetaId -> (MetaVariable -> MetaVariable) -> tcm ()
+ Agda.TypeChecking.Monad.MetaVars: updateMetaVar :: MonadTCM tcm => MetaId -> (MetaVariable -> MetaVariable) -> tcm ()
- Agda.TypeChecking.Monad.MetaVars: updateMetaVarRange :: (MonadTCM tcm) => MetaId -> Range -> tcm ()
+ Agda.TypeChecking.Monad.MetaVars: updateMetaVarRange :: MonadTCM tcm => MetaId -> Range -> tcm ()
- Agda.TypeChecking.Monad.MetaVars: withMetaInfo :: (MonadTCM tcm) => MetaInfo -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.MetaVars: withMetaInfo :: MonadTCM tcm => MetaInfo -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Mutual: currentMutualBlock :: (MonadTCM tcm) => tcm MutualId
+ Agda.TypeChecking.Monad.Mutual: currentMutualBlock :: MonadTCM tcm => tcm MutualId
- Agda.TypeChecking.Monad.Mutual: findMutualBlock :: (MonadTCM tcm) => QName -> tcm (Set QName)
+ Agda.TypeChecking.Monad.Mutual: findMutualBlock :: MonadTCM tcm => QName -> tcm (Set QName)
- Agda.TypeChecking.Monad.Mutual: getMutualBlocks :: (MonadTCM tcm) => tcm [Set QName]
+ Agda.TypeChecking.Monad.Mutual: getMutualBlocks :: MonadTCM tcm => tcm [Set QName]
- Agda.TypeChecking.Monad.Mutual: inMutualBlock :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Mutual: inMutualBlock :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Mutual: lookupMutualBlock :: (MonadTCM tcm) => MutualId -> tcm (Set QName)
+ Agda.TypeChecking.Monad.Mutual: lookupMutualBlock :: MonadTCM tcm => MutualId -> tcm (Set QName)
- Agda.TypeChecking.Monad.Mutual: noMutualBlock :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Mutual: noMutualBlock :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Mutual: setMutualBlock :: (MonadTCM tcm) => MutualId -> QName -> tcm ()
+ Agda.TypeChecking.Monad.Mutual: setMutualBlock :: MonadTCM tcm => MutualId -> QName -> tcm ()
- Agda.TypeChecking.Monad.Open: makeOpen :: (MonadTCM tcm) => a -> tcm (Open a)
+ Agda.TypeChecking.Monad.Open: makeOpen :: MonadTCM tcm => a -> tcm (Open a)
- Agda.TypeChecking.Monad.Options: commandLineOptions :: (MonadTCM tcm) => tcm CommandLineOptions
+ Agda.TypeChecking.Monad.Options: commandLineOptions :: MonadTCM tcm => tcm CommandLineOptions
- Agda.TypeChecking.Monad.Options: disableDisplayForms :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Options: disableDisplayForms :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Options: displayFormsEnabled :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: displayFormsEnabled :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: doEtaContractImplicit :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Options: doEtaContractImplicit :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Options: dontEtaContractImplicit :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Options: dontEtaContractImplicit :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Options: dontReifyInteractionPoints :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Options: dontReifyInteractionPoints :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Options: enableDisplayForms :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Options: enableDisplayForms :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Options: getIncludeDirs :: (MonadTCM tcm) => tcm [AbsolutePath]
+ Agda.TypeChecking.Monad.Options: getIncludeDirs :: MonadTCM tcm => tcm [AbsolutePath]
- Agda.TypeChecking.Monad.Options: getInputFile :: (MonadTCM tcm) => tcm AbsolutePath
+ Agda.TypeChecking.Monad.Options: getInputFile :: MonadTCM tcm => tcm AbsolutePath
- Agda.TypeChecking.Monad.Options: getVerbosity :: (MonadTCM tcm) => tcm (Trie String Int)
+ Agda.TypeChecking.Monad.Options: getVerbosity :: MonadTCM tcm => tcm (Trie String Int)
- Agda.TypeChecking.Monad.Options: hasInputFile :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: hasInputFile :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: hasUniversePolymorphism :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: hasUniversePolymorphism :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: hasVerbosity :: (MonadTCM tcm) => VerboseKey -> Int -> tcm Bool
+ Agda.TypeChecking.Monad.Options: hasVerbosity :: MonadTCM tcm => VerboseKey -> Int -> tcm Bool
- Agda.TypeChecking.Monad.Options: ignoreInterfaces :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: ignoreInterfaces :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: positivityCheckEnabled :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: positivityCheckEnabled :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: pragmaOptions :: (MonadTCM tcm) => tcm PragmaOptions
+ Agda.TypeChecking.Monad.Options: pragmaOptions :: MonadTCM tcm => tcm PragmaOptions
- Agda.TypeChecking.Monad.Options: proofIrrelevance :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: proofIrrelevance :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: reportS :: (MonadTCM tcm) => VerboseKey -> Int -> String -> tcm ()
+ Agda.TypeChecking.Monad.Options: reportS :: MonadTCM tcm => VerboseKey -> Int -> String -> tcm ()
- Agda.TypeChecking.Monad.Options: reportSDoc :: (MonadTCM tcm) => VerboseKey -> Int -> tcm Doc -> tcm ()
+ Agda.TypeChecking.Monad.Options: reportSDoc :: MonadTCM tcm => VerboseKey -> Int -> tcm Doc -> tcm ()
- Agda.TypeChecking.Monad.Options: reportSLn :: (MonadTCM tcm) => VerboseKey -> Int -> String -> tcm ()
+ Agda.TypeChecking.Monad.Options: reportSLn :: MonadTCM tcm => VerboseKey -> Int -> String -> tcm ()
- Agda.TypeChecking.Monad.Options: setCommandLineOptions :: (MonadTCM tcm) => CommandLineOptions -> tcm ()
+ Agda.TypeChecking.Monad.Options: setCommandLineOptions :: MonadTCM tcm => CommandLineOptions -> tcm ()
- Agda.TypeChecking.Monad.Options: setIncludeDirs :: (MonadTCM tcm) => [FilePath] -> RelativeTo -> tcm ()
+ Agda.TypeChecking.Monad.Options: setIncludeDirs :: MonadTCM tcm => [FilePath] -> RelativeTo -> tcm ()
- Agda.TypeChecking.Monad.Options: setInputFile :: (MonadTCM tcm) => FilePath -> tcm ()
+ Agda.TypeChecking.Monad.Options: setInputFile :: MonadTCM tcm => FilePath -> tcm ()
- Agda.TypeChecking.Monad.Options: setOptionsFromPragma :: (MonadTCM tcm) => OptionsPragma -> tcm ()
+ Agda.TypeChecking.Monad.Options: setOptionsFromPragma :: MonadTCM tcm => OptionsPragma -> tcm ()
- Agda.TypeChecking.Monad.Options: setPragmaOptions :: (MonadTCM tcm) => PragmaOptions -> tcm ()
+ Agda.TypeChecking.Monad.Options: setPragmaOptions :: MonadTCM tcm => PragmaOptions -> tcm ()
- Agda.TypeChecking.Monad.Options: setShowImplicitArguments :: (MonadTCM tcm) => Bool -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Options: setShowImplicitArguments :: MonadTCM tcm => Bool -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Options: shouldEtaContractImplicit :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: shouldEtaContractImplicit :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: shouldReifyInteractionPoints :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: shouldReifyInteractionPoints :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: showImplicitArguments :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: showImplicitArguments :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: typeInType :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.Monad.Options: typeInType :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.Monad.Options: verboseBracket :: (MonadTCM tcm) => VerboseKey -> Int -> String -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Options: verboseBracket :: MonadTCM tcm => VerboseKey -> Int -> String -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Options: verboseS :: (MonadTCM tcm) => VerboseKey -> Int -> tcm () -> tcm ()
+ Agda.TypeChecking.Monad.Options: verboseS :: MonadTCM tcm => VerboseKey -> Int -> tcm () -> tcm ()
- Agda.TypeChecking.Monad.Signature: addConstant :: (MonadTCM tcm) => QName -> Definition -> tcm ()
+ Agda.TypeChecking.Monad.Signature: addConstant :: MonadTCM tcm => QName -> Definition -> tcm ()
- Agda.TypeChecking.Monad.Signature: addDisplayForm :: (MonadTCM tcm) => QName -> DisplayForm -> tcm ()
+ Agda.TypeChecking.Monad.Signature: addDisplayForm :: MonadTCM tcm => QName -> DisplayForm -> tcm ()
- Agda.TypeChecking.Monad.Signature: addHaskellCode :: (MonadTCM tcm) => QName -> HaskellType -> HaskellCode -> tcm ()
+ Agda.TypeChecking.Monad.Signature: addHaskellCode :: MonadTCM tcm => QName -> HaskellType -> HaskellCode -> tcm ()
- Agda.TypeChecking.Monad.Signature: addHaskellType :: (MonadTCM tcm) => QName -> HaskellType -> tcm ()
+ Agda.TypeChecking.Monad.Signature: addHaskellType :: MonadTCM tcm => QName -> HaskellType -> tcm ()
- Agda.TypeChecking.Monad.Signature: addSection :: (MonadTCM tcm) => ModuleName -> Nat -> tcm ()
+ Agda.TypeChecking.Monad.Signature: addSection :: MonadTCM tcm => ModuleName -> Nat -> tcm ()
- Agda.TypeChecking.Monad.Signature: applySection :: (MonadTCM tcm) => ModuleName -> Telescope -> ModuleName -> Args -> Map QName QName -> Map ModuleName ModuleName -> tcm ()
+ Agda.TypeChecking.Monad.Signature: applySection :: MonadTCM tcm => ModuleName -> Telescope -> ModuleName -> Args -> Map QName QName -> Map ModuleName ModuleName -> tcm ()
- Agda.TypeChecking.Monad.Signature: canonicalName :: (MonadTCM tcm) => QName -> tcm QName
+ Agda.TypeChecking.Monad.Signature: canonicalName :: MonadTCM tcm => QName -> tcm QName
- Agda.TypeChecking.Monad.Signature: freeVarsToApply :: (MonadTCM tcm) => QName -> tcm Args
+ Agda.TypeChecking.Monad.Signature: freeVarsToApply :: MonadTCM tcm => QName -> tcm Args
- Agda.TypeChecking.Monad.Signature: getArgOccurrence :: (MonadTCM tcm) => QName -> Nat -> tcm Occurrence
+ Agda.TypeChecking.Monad.Signature: getArgOccurrence :: MonadTCM tcm => QName -> Nat -> tcm Occurrence
- Agda.TypeChecking.Monad.Signature: getConstInfo :: (MonadTCM tcm) => QName -> tcm Definition
+ Agda.TypeChecking.Monad.Signature: getConstInfo :: MonadTCM tcm => QName -> tcm Definition
- Agda.TypeChecking.Monad.Signature: getDefFreeVars :: (MonadTCM tcm) => QName -> tcm Nat
+ Agda.TypeChecking.Monad.Signature: getDefFreeVars :: MonadTCM tcm => QName -> tcm Nat
- Agda.TypeChecking.Monad.Signature: getImportedSignature :: (MonadTCM tcm) => tcm Signature
+ Agda.TypeChecking.Monad.Signature: getImportedSignature :: MonadTCM tcm => tcm Signature
- Agda.TypeChecking.Monad.Signature: getModuleFreeVars :: (MonadTCM tcm) => ModuleName -> tcm Nat
+ Agda.TypeChecking.Monad.Signature: getModuleFreeVars :: MonadTCM tcm => ModuleName -> tcm Nat
- Agda.TypeChecking.Monad.Signature: getPolarity :: (MonadTCM tcm) => QName -> tcm [Polarity]
+ Agda.TypeChecking.Monad.Signature: getPolarity :: MonadTCM tcm => QName -> tcm [Polarity]
- Agda.TypeChecking.Monad.Signature: getPolarity' :: (MonadTCM tcm) => Comparison -> QName -> tcm [Polarity]
+ Agda.TypeChecking.Monad.Signature: getPolarity' :: MonadTCM tcm => Comparison -> QName -> tcm [Polarity]
- Agda.TypeChecking.Monad.Signature: getSecFreeVars :: (MonadTCM tcm) => ModuleName -> tcm Nat
+ Agda.TypeChecking.Monad.Signature: getSecFreeVars :: MonadTCM tcm => ModuleName -> tcm Nat
- Agda.TypeChecking.Monad.Signature: getSignature :: (MonadTCM tcm) => tcm Signature
+ Agda.TypeChecking.Monad.Signature: getSignature :: MonadTCM tcm => tcm Signature
- Agda.TypeChecking.Monad.Signature: ignoreAbstractMode :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Signature: ignoreAbstractMode :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Signature: inAbstractMode :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Signature: inAbstractMode :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Signature: inConcreteMode :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.Signature: inConcreteMode :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.Signature: instantiateDef :: (MonadTCM tcm) => Definition -> tcm Definition
+ Agda.TypeChecking.Monad.Signature: instantiateDef :: MonadTCM tcm => Definition -> tcm Definition
- Agda.TypeChecking.Monad.Signature: lookupSection :: (MonadTCM tcm) => ModuleName -> tcm Telescope
+ Agda.TypeChecking.Monad.Signature: lookupSection :: MonadTCM tcm => ModuleName -> tcm Telescope
- Agda.TypeChecking.Monad.Signature: modifyImportedSignature :: (MonadTCM tcm) => (Signature -> Signature) -> tcm ()
+ Agda.TypeChecking.Monad.Signature: modifyImportedSignature :: MonadTCM tcm => (Signature -> Signature) -> tcm ()
- Agda.TypeChecking.Monad.Signature: modifySignature :: (MonadTCM tcm) => (Signature -> Signature) -> tcm ()
+ Agda.TypeChecking.Monad.Signature: modifySignature :: MonadTCM tcm => (Signature -> Signature) -> tcm ()
- Agda.TypeChecking.Monad.Signature: setArgOccurrences :: (MonadTCM tcm) => QName -> [Occurrence] -> tcm ()
+ Agda.TypeChecking.Monad.Signature: setArgOccurrences :: MonadTCM tcm => QName -> [Occurrence] -> tcm ()
- Agda.TypeChecking.Monad.Signature: setImportedSignature :: (MonadTCM tcm) => Signature -> tcm ()
+ Agda.TypeChecking.Monad.Signature: setImportedSignature :: MonadTCM tcm => Signature -> tcm ()
- Agda.TypeChecking.Monad.Signature: setPolarity :: (MonadTCM tcm) => QName -> [Polarity] -> tcm ()
+ Agda.TypeChecking.Monad.Signature: setPolarity :: MonadTCM tcm => QName -> [Polarity] -> tcm ()
- Agda.TypeChecking.Monad.Signature: setSignature :: (MonadTCM tcm) => Signature -> tcm ()
+ Agda.TypeChecking.Monad.Signature: setSignature :: MonadTCM tcm => Signature -> tcm ()
- Agda.TypeChecking.Monad.Signature: sortOfConst :: (MonadTCM tcm) => QName -> tcm Sort
+ Agda.TypeChecking.Monad.Signature: sortOfConst :: MonadTCM tcm => QName -> tcm Sort
- Agda.TypeChecking.Monad.Signature: treatAbstractly :: (MonadTCM tcm) => QName -> tcm Bool
+ Agda.TypeChecking.Monad.Signature: treatAbstractly :: MonadTCM tcm => QName -> tcm Bool
- Agda.TypeChecking.Monad.Signature: typeOfConst :: (MonadTCM tcm) => QName -> tcm Type
+ Agda.TypeChecking.Monad.Signature: typeOfConst :: MonadTCM tcm => QName -> tcm Type
- Agda.TypeChecking.Monad.Signature: whatInduction :: (MonadTCM tcm) => QName -> tcm Induction
+ Agda.TypeChecking.Monad.Signature: whatInduction :: MonadTCM tcm => QName -> tcm Induction
- Agda.TypeChecking.Monad.Signature: withSignature :: (MonadTCM tcm) => Signature -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Signature: withSignature :: MonadTCM tcm => Signature -> tcm a -> tcm a
- Agda.TypeChecking.Monad.SizedTypes: isSizeType :: (MonadTCM tcm) => Type -> tcm Bool
+ Agda.TypeChecking.Monad.SizedTypes: isSizeType :: MonadTCM tcm => Type -> tcm Bool
- Agda.TypeChecking.Monad.SizedTypes: sizeSuc :: (MonadTCM tcm) => tcm (Maybe QName)
+ Agda.TypeChecking.Monad.SizedTypes: sizeSuc :: MonadTCM tcm => tcm (Maybe QName)
- Agda.TypeChecking.Monad.SizedTypes: sizeType :: (MonadTCM tcm) => tcm Type
+ Agda.TypeChecking.Monad.SizedTypes: sizeType :: MonadTCM tcm => tcm Type
- Agda.TypeChecking.Monad.SizedTypes: sizeView :: (MonadTCM tcm) => Term -> tcm SizeView
+ Agda.TypeChecking.Monad.SizedTypes: sizeView :: MonadTCM tcm => Term -> tcm SizeView
- Agda.TypeChecking.Monad.SizedTypes: unSizeView :: (MonadTCM tcm) => SizeView -> tcm Term
+ Agda.TypeChecking.Monad.SizedTypes: unSizeView :: MonadTCM tcm => SizeView -> tcm Term
- Agda.TypeChecking.Monad.State: addHaskellImport :: (MonadTCM tcm) => String -> tcm ()
+ Agda.TypeChecking.Monad.State: addHaskellImport :: MonadTCM tcm => String -> tcm ()
- Agda.TypeChecking.Monad.State: getHaskellImports :: (MonadTCM tcm) => tcm (Set String)
+ Agda.TypeChecking.Monad.State: getHaskellImports :: MonadTCM tcm => tcm (Set String)
- Agda.TypeChecking.Monad.State: getScope :: (MonadTCM tcm) => tcm ScopeInfo
+ Agda.TypeChecking.Monad.State: getScope :: MonadTCM tcm => tcm ScopeInfo
- Agda.TypeChecking.Monad.State: localScope :: (MonadTCM tcm) => tcm a -> tcm a
+ Agda.TypeChecking.Monad.State: localScope :: MonadTCM tcm => tcm a -> tcm a
- Agda.TypeChecking.Monad.State: modifyScope :: (MonadTCM tcm) => (ScopeInfo -> ScopeInfo) -> tcm ()
+ Agda.TypeChecking.Monad.State: modifyScope :: MonadTCM tcm => (ScopeInfo -> ScopeInfo) -> tcm ()
- Agda.TypeChecking.Monad.State: resetState :: (MonadTCM tcm) => tcm ()
+ Agda.TypeChecking.Monad.State: resetState :: MonadTCM tcm => tcm ()
- Agda.TypeChecking.Monad.State: setScope :: (MonadTCM tcm) => ScopeInfo -> tcm ()
+ Agda.TypeChecking.Monad.State: setScope :: MonadTCM tcm => ScopeInfo -> tcm ()
- Agda.TypeChecking.Monad.State: setTopLevelModule :: (MonadTCM tcm) => QName -> tcm ()
+ Agda.TypeChecking.Monad.State: setTopLevelModule :: MonadTCM tcm => QName -> tcm ()
- Agda.TypeChecking.Monad.State: withScope :: (MonadTCM tcm) => ScopeInfo -> tcm a -> tcm (a, ScopeInfo)
+ Agda.TypeChecking.Monad.State: withScope :: MonadTCM tcm => ScopeInfo -> tcm a -> tcm (a, ScopeInfo)
- Agda.TypeChecking.Monad.State: withScope_ :: (MonadTCM tcm) => ScopeInfo -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.State: withScope_ :: MonadTCM tcm => ScopeInfo -> tcm a -> tcm a
- Agda.TypeChecking.Monad.State: withTopLevelModule :: (MonadTCM tcm) => QName -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.State: withTopLevelModule :: MonadTCM tcm => QName -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Trace: getCurrentRange :: (MonadTCM tcm) => tcm Range
+ Agda.TypeChecking.Monad.Trace: getCurrentRange :: MonadTCM tcm => tcm Range
- Agda.TypeChecking.Monad.Trace: setCurrentRange :: (MonadTCM tcm) => Range -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Trace: setCurrentRange :: MonadTCM tcm => Range -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Trace: traceCall :: (MonadTCM tcm) => (Maybe r -> Call) -> tcm a -> tcm a
+ Agda.TypeChecking.Monad.Trace: traceCall :: MonadTCM tcm => (Maybe r -> Call) -> tcm a -> tcm a
- Agda.TypeChecking.Monad.Trace: traceCallCPS :: (MonadTCM tcm) => (Maybe r -> Call) -> (r -> tcm a) -> ((r -> tcm a) -> tcm b) -> tcm b
+ Agda.TypeChecking.Monad.Trace: traceCallCPS :: MonadTCM tcm => (Maybe r -> Call) -> (r -> tcm a) -> ((r -> tcm a) -> tcm b) -> tcm b
- Agda.TypeChecking.Monad.Trace: traceCallCPS_ :: (MonadTCM tcm) => (Maybe () -> Call) -> tcm a -> (tcm a -> tcm b) -> tcm b
+ Agda.TypeChecking.Monad.Trace: traceCallCPS_ :: MonadTCM tcm => (Maybe () -> Call) -> tcm a -> (tcm a -> tcm b) -> tcm b
- Agda.TypeChecking.Monad.Trace: traceCall_ :: (MonadTCM tcm) => (Maybe () -> Call) -> tcm r -> tcm r
+ Agda.TypeChecking.Monad.Trace: traceCall_ :: MonadTCM tcm => (Maybe () -> Call) -> tcm r -> tcm r
- Agda.TypeChecking.Patterns.Match: matchPattern :: (MonadTCM tcm) => Arg Pattern -> Arg Term -> tcm (Match, Arg Term)
+ Agda.TypeChecking.Patterns.Match: matchPattern :: MonadTCM tcm => Arg Pattern -> Arg Term -> tcm (Match, Arg Term)
- Agda.TypeChecking.Patterns.Match: matchPatterns :: (MonadTCM tcm) => [Arg Pattern] -> [Arg Term] -> tcm (Match, [Arg Term])
+ Agda.TypeChecking.Patterns.Match: matchPatterns :: MonadTCM tcm => [Arg Pattern] -> [Arg Term] -> tcm (Match, [Arg Term])
- Agda.TypeChecking.Polarity: polarities :: (HasPolarity a) => Nat -> a -> TCM [Polarity]
+ Agda.TypeChecking.Polarity: polarities :: HasPolarity a => Nat -> a -> TCM [Polarity]
- Agda.TypeChecking.Polarity: polarity :: (HasPolarity a) => Nat -> a -> TCM Polarity
+ Agda.TypeChecking.Polarity: polarity :: HasPolarity a => Nat -> a -> TCM Polarity
- Agda.TypeChecking.Positivity: occurrences :: (ComputeOccurrences a) => [Maybe Item] -> a -> Occurrences
+ Agda.TypeChecking.Positivity: occurrences :: ComputeOccurrences a => [Maybe Item] -> a -> Occurrences
- Agda.TypeChecking.Pretty: comma :: (MonadTCM tcm) => tcm Doc
+ Agda.TypeChecking.Pretty: comma :: MonadTCM tcm => tcm Doc
- Agda.TypeChecking.Pretty: empty :: (MonadTCM tcm) => tcm Doc
+ Agda.TypeChecking.Pretty: empty :: MonadTCM tcm => tcm Doc
- Agda.TypeChecking.Primitive: (-->) :: (MonadTCM tcm) => tcm Type -> tcm Type -> tcm Type
+ Agda.TypeChecking.Primitive: (-->) :: MonadTCM tcm => tcm Type -> tcm Type -> tcm Type
- Agda.TypeChecking.Primitive: (<#>) :: (MonadTCM tcm) => tcm Term -> tcm Term -> tcm Term
+ Agda.TypeChecking.Primitive: (<#>) :: MonadTCM tcm => tcm Term -> tcm Term -> tcm Term
- Agda.TypeChecking.Primitive: (<@>) :: (MonadTCM tcm) => tcm Term -> tcm Term -> tcm Term
+ Agda.TypeChecking.Primitive: (<@>) :: MonadTCM tcm => tcm Term -> tcm Term -> tcm Term
- Agda.TypeChecking.Primitive: buildList :: (MonadTCM tcm) => tcm ([Term] -> Term)
+ Agda.TypeChecking.Primitive: buildList :: MonadTCM tcm => tcm ([Term] -> Term)
- Agda.TypeChecking.Primitive: constructorForm :: (MonadTCM tcm) => Term -> tcm Term
+ Agda.TypeChecking.Primitive: constructorForm :: MonadTCM tcm => Term -> tcm Term
- Agda.TypeChecking.Primitive: el :: (MonadTCM tcm) => tcm Term -> tcm Type
+ Agda.TypeChecking.Primitive: el :: MonadTCM tcm => tcm Term -> tcm Type
- Agda.TypeChecking.Primitive: fromLiteral :: (MonadTCM tcm) => (Literal -> Maybe a) -> tcm (FromTermFunction a)
+ Agda.TypeChecking.Primitive: fromLiteral :: MonadTCM tcm => (Literal -> Maybe a) -> tcm (FromTermFunction a)
- Agda.TypeChecking.Primitive: fromReducedTerm :: (MonadTCM tcm) => (Term -> Maybe a) -> tcm (FromTermFunction a)
+ Agda.TypeChecking.Primitive: fromReducedTerm :: MonadTCM tcm => (Term -> Maybe a) -> tcm (FromTermFunction a)
- Agda.TypeChecking.Primitive: gApply :: (MonadTCM tcm) => Hiding -> tcm Term -> tcm Term -> tcm Term
+ Agda.TypeChecking.Primitive: gApply :: MonadTCM tcm => Hiding -> tcm Term -> tcm Term -> tcm Term
- Agda.TypeChecking.Primitive: gpi :: (MonadTCM tcm) => Hiding -> Relevance -> String -> tcm Type -> tcm Type -> tcm Type
+ Agda.TypeChecking.Primitive: gpi :: MonadTCM tcm => Hiding -> Relevance -> String -> tcm Type -> tcm Type -> tcm Type
- Agda.TypeChecking.Primitive: hPi :: (MonadTCM tcm) => String -> tcm Type -> tcm Type -> tcm Type
+ Agda.TypeChecking.Primitive: hPi :: MonadTCM tcm => String -> tcm Type -> tcm Type -> tcm Type
- Agda.TypeChecking.Primitive: io :: (MonadTCM tcm) => tcm Term -> tcm Term
+ Agda.TypeChecking.Primitive: io :: MonadTCM tcm => tcm Term -> tcm Term
- Agda.TypeChecking.Primitive: list :: (MonadTCM tcm) => tcm Term -> tcm Term
+ Agda.TypeChecking.Primitive: list :: MonadTCM tcm => tcm Term -> tcm Term
- Agda.TypeChecking.Primitive: lookupPrimitiveFunction :: (MonadTCM tcm) => String -> tcm PrimitiveImpl
+ Agda.TypeChecking.Primitive: lookupPrimitiveFunction :: MonadTCM tcm => String -> tcm PrimitiveImpl
- Agda.TypeChecking.Primitive: nPi :: (MonadTCM tcm) => String -> tcm Type -> tcm Type -> tcm Type
+ Agda.TypeChecking.Primitive: nPi :: MonadTCM tcm => String -> tcm Type -> tcm Type -> tcm Type
- Agda.TypeChecking.Primitive: primTrustMe :: (MonadTCM tcm) => tcm PrimitiveImpl
+ Agda.TypeChecking.Primitive: primTrustMe :: MonadTCM tcm => tcm PrimitiveImpl
- Agda.TypeChecking.Primitive: rebindPrimitive :: (MonadTCM tcm) => String -> tcm PrimFun
+ Agda.TypeChecking.Primitive: rebindPrimitive :: MonadTCM tcm => String -> tcm PrimFun
- Agda.TypeChecking.Primitive: redBind :: (MonadTCM tcm) => tcm (Reduced a a') -> (a -> b) -> (a' -> tcm (Reduced b b')) -> tcm (Reduced b b')
+ Agda.TypeChecking.Primitive: redBind :: MonadTCM tcm => tcm (Reduced a a') -> (a -> b) -> (a' -> tcm (Reduced b b')) -> tcm (Reduced b b')
- Agda.TypeChecking.Primitive: redReturn :: (MonadTCM tcm) => a -> tcm (Reduced a' a)
+ Agda.TypeChecking.Primitive: redReturn :: MonadTCM tcm => a -> tcm (Reduced a' a)
- Agda.TypeChecking.Primitive: tset :: (MonadTCM tcm) => tcm Type
+ Agda.TypeChecking.Primitive: tset :: MonadTCM tcm => tcm Type
- Agda.TypeChecking.Primitive: type FromTermFunction a = Arg Term -> TCM (Reduced (Arg Term) a)
+ Agda.TypeChecking.Primitive: type FromTermFunction a = Arg Term -> TCM (Reduced (MaybeReduced (Arg Term)) a)
- Agda.TypeChecking.Primitive: var :: (MonadTCM tcm) => Integer -> tcm Term
+ Agda.TypeChecking.Primitive: var :: MonadTCM tcm => Integer -> tcm Term
- Agda.TypeChecking.RecordPatterns: translateRecordPatterns :: (MonadTCM tcm) => Clause -> tcm Clauses
+ Agda.TypeChecking.RecordPatterns: translateRecordPatterns :: MonadTCM tcm => Clause -> tcm Clauses
- Agda.TypeChecking.Records: etaContractRecord :: (MonadTCM tcm) => QName -> QName -> Args -> tcm Term
+ Agda.TypeChecking.Records: etaContractRecord :: MonadTCM tcm => QName -> QName -> Args -> tcm Term
- Agda.TypeChecking.Records: etaExpandRecord :: (MonadTCM tcm) => QName -> Args -> Term -> tcm (Telescope, Args)
+ Agda.TypeChecking.Records: etaExpandRecord :: MonadTCM tcm => QName -> Args -> Term -> tcm (Telescope, Args)
- Agda.TypeChecking.Records: getRecordConstructor :: (MonadTCM tcm) => QName -> tcm QName
+ Agda.TypeChecking.Records: getRecordConstructor :: MonadTCM tcm => QName -> tcm QName
- Agda.TypeChecking.Records: getRecordConstructorType :: (MonadTCM tcm) => QName -> tcm Type
+ Agda.TypeChecking.Records: getRecordConstructorType :: MonadTCM tcm => QName -> tcm Type
- Agda.TypeChecking.Records: getRecordDef :: (MonadTCM tcm) => QName -> tcm Defn
+ Agda.TypeChecking.Records: getRecordDef :: MonadTCM tcm => QName -> tcm Defn
- Agda.TypeChecking.Records: getRecordFieldNames :: (MonadTCM tcm) => QName -> tcm [Arg Name]
+ Agda.TypeChecking.Records: getRecordFieldNames :: MonadTCM tcm => QName -> tcm [Arg Name]
- Agda.TypeChecking.Records: getRecordFieldTypes :: (MonadTCM tcm) => QName -> tcm Telescope
+ Agda.TypeChecking.Records: getRecordFieldTypes :: MonadTCM tcm => QName -> tcm Telescope
- Agda.TypeChecking.Records: isEtaRecord :: (MonadTCM tcm) => QName -> tcm Bool
+ Agda.TypeChecking.Records: isEtaRecord :: MonadTCM tcm => QName -> tcm Bool
- Agda.TypeChecking.Records: isGeneratedRecordConstructor :: (MonadTCM tcm) => QName -> tcm Bool
+ Agda.TypeChecking.Records: isGeneratedRecordConstructor :: MonadTCM tcm => QName -> tcm Bool
- Agda.TypeChecking.Records: isRecord :: (MonadTCM tcm) => QName -> tcm Bool
+ Agda.TypeChecking.Records: isRecord :: MonadTCM tcm => QName -> tcm Bool
- Agda.TypeChecking.Records: isSingletonRecord :: (MonadTCM tcm) => QName -> Args -> tcm (Either MetaId Bool)
+ Agda.TypeChecking.Records: isSingletonRecord :: MonadTCM tcm => QName -> Args -> tcm (Either MetaId Bool)
- Agda.TypeChecking.Records: orderFields :: (MonadTCM tcm) => QName -> a -> [Name] -> [(Name, a)] -> tcm [a]
+ Agda.TypeChecking.Records: orderFields :: MonadTCM tcm => QName -> a -> [Name] -> [(Name, a)] -> tcm [a]
- Agda.TypeChecking.Reduce: telViewM :: (MonadTCM tcm) => Type -> tcm TelView
+ Agda.TypeChecking.Reduce: telViewM :: MonadTCM tcm => Type -> tcm TelView
- Agda.TypeChecking.Reduce: traceFun :: (MonadTCM tcm) => String -> tcm a -> tcm a
+ Agda.TypeChecking.Reduce: traceFun :: MonadTCM tcm => String -> tcm a -> tcm a
- Agda.TypeChecking.Reduce: unfoldDefinition :: (MonadTCM tcm) => Bool -> (Term -> tcm (Blocked Term)) -> Term -> QName -> Args -> tcm (Blocked Term)
+ Agda.TypeChecking.Reduce: unfoldDefinition :: MonadTCM tcm => Bool -> (Term -> tcm (Blocked Term)) -> Term -> QName -> Args -> tcm (Blocked Term)
- Agda.TypeChecking.Rules.Data: forceData :: (MonadTCM tcm) => QName -> Type -> tcm Type
+ Agda.TypeChecking.Rules.Data: forceData :: MonadTCM tcm => QName -> Type -> tcm Type
- Agda.TypeChecking.Rules.Data: isCoinductive :: (MonadTCM tcm) => Type -> tcm (Maybe Bool)
+ Agda.TypeChecking.Rules.Data: isCoinductive :: MonadTCM tcm => Type -> tcm (Maybe Bool)
- Agda.TypeChecking.Rules.Decl: checkAxiom :: DefInfo -> QName -> Expr -> TCM ()
+ Agda.TypeChecking.Rules.Decl: checkAxiom :: DefInfo -> Relevance -> QName -> Expr -> TCM ()
- Agda.TypeChecking.Rules.Def: actualConstructor :: (MonadTCM tcm) => QName -> tcm QName
+ Agda.TypeChecking.Rules.Def: actualConstructor :: MonadTCM tcm => QName -> tcm QName
- Agda.TypeChecking.Rules.LHS: noPatternMatchingOnCodata :: (MonadTCM tcm) => [Arg Pattern] -> tcm ()
+ Agda.TypeChecking.Rules.LHS: noPatternMatchingOnCodata :: MonadTCM tcm => [Arg Pattern] -> tcm ()
- Agda.TypeChecking.Rules.LHS.Instantiate: instantiateTel :: (MonadTCM tcm) => Substitution -> Telescope -> tcm (Telescope, Permutation, [Term], [Type])
+ Agda.TypeChecking.Rules.LHS.Instantiate: instantiateTel :: MonadTCM tcm => Substitution -> Telescope -> tcm (Telescope, Permutation, [Term], [Type])
- Agda.TypeChecking.Rules.LHS.Unify: dataOrRecordType :: (MonadTCM tcm) => QName -> Type -> tcm Type
+ Agda.TypeChecking.Rules.LHS.Unify: dataOrRecordType :: MonadTCM tcm => QName -> Type -> tcm Type
- Agda.TypeChecking.Rules.LHS.Unify: unifyIndices :: (MonadTCM tcm) => FlexibleVars -> Type -> [Arg Term] -> [Arg Term] -> tcm UnificationResult
+ Agda.TypeChecking.Rules.LHS.Unify: unifyIndices :: MonadTCM tcm => FlexibleVars -> Type -> [Arg Term] -> [Arg Term] -> tcm UnificationResult
- Agda.TypeChecking.Rules.LHS.Unify: unifyIndices_ :: (MonadTCM tcm) => FlexibleVars -> Type -> [Arg Term] -> [Arg Term] -> tcm Substitution
+ Agda.TypeChecking.Rules.LHS.Unify: unifyIndices_ :: MonadTCM tcm => FlexibleVars -> Type -> [Arg Term] -> [Arg Term] -> tcm Substitution
- Agda.TypeChecking.Rules.Term: reduceCon :: (MonadTCM tcm) => QName -> tcm QName
+ Agda.TypeChecking.Rules.Term: reduceCon :: MonadTCM tcm => QName -> tcm QName
- Agda.TypeChecking.Rules.Term: traceCallE :: (Error e) => (Maybe r -> Call) -> ErrorT e TCM r -> ErrorT e TCM r
+ Agda.TypeChecking.Rules.Term: traceCallE :: Error e => (Maybe r -> Call) -> ErrorT e TCM r -> ErrorT e TCM r
- Agda.TypeChecking.Serialise: class (Typeable a) => EmbPrj a
+ Agda.TypeChecking.Serialise: class Typeable a => EmbPrj a
- Agda.TypeChecking.Serialise: decode :: (EmbPrj a) => ByteString -> TCM (Maybe a)
+ Agda.TypeChecking.Serialise: decode :: EmbPrj a => ByteString -> TCM (Maybe a)
- Agda.TypeChecking.Serialise: decodeFile :: (EmbPrj a) => FilePath -> TCM (Maybe a)
+ Agda.TypeChecking.Serialise: decodeFile :: EmbPrj a => FilePath -> TCM (Maybe a)
- Agda.TypeChecking.Serialise: encode :: (EmbPrj a) => a -> TCM ByteString
+ Agda.TypeChecking.Serialise: encode :: EmbPrj a => a -> TCM ByteString
- Agda.TypeChecking.Serialise: encodeFile :: (EmbPrj a) => FilePath -> a -> TCM ()
+ Agda.TypeChecking.Serialise: encodeFile :: EmbPrj a => FilePath -> a -> TCM ()
- Agda.TypeChecking.SizedTypes: compareSizes :: (MonadTCM tcm) => Comparison -> Term -> Term -> tcm Constraints
+ Agda.TypeChecking.SizedTypes: compareSizes :: MonadTCM tcm => Comparison -> Term -> Term -> tcm Constraints
- Agda.TypeChecking.SizedTypes: computeSizeConstraint :: (MonadTCM tcm) => ConstraintClosure -> tcm (Maybe SizeConstraint)
+ Agda.TypeChecking.SizedTypes: computeSizeConstraint :: MonadTCM tcm => ConstraintClosure -> tcm (Maybe SizeConstraint)
- Agda.TypeChecking.SizedTypes: getSizeConstraints :: (MonadTCM tcm) => tcm [SizeConstraint]
+ Agda.TypeChecking.SizedTypes: getSizeConstraints :: MonadTCM tcm => tcm [SizeConstraint]
- Agda.TypeChecking.SizedTypes: getSizeMetas :: (MonadTCM tcm) => tcm [(MetaId, Int)]
+ Agda.TypeChecking.SizedTypes: getSizeMetas :: MonadTCM tcm => tcm [(MetaId, Int)]
- Agda.TypeChecking.SizedTypes: haveSizedTypes :: (MonadTCM tcm) => tcm Bool
+ Agda.TypeChecking.SizedTypes: haveSizedTypes :: MonadTCM tcm => tcm Bool
- Agda.TypeChecking.SizedTypes: sizeExpr :: (MonadTCM tcm) => Term -> tcm (SizeExpr, Int)
+ Agda.TypeChecking.SizedTypes: sizeExpr :: MonadTCM tcm => Term -> tcm (SizeExpr, Int)
- Agda.TypeChecking.SizedTypes: solveSizeConstraints :: (MonadTCM tcm) => tcm ()
+ Agda.TypeChecking.SizedTypes: solveSizeConstraints :: MonadTCM tcm => tcm ()
- Agda.TypeChecking.SizedTypes: trivial :: (MonadTCM tcm) => Term -> Term -> tcm Bool
+ Agda.TypeChecking.SizedTypes: trivial :: MonadTCM tcm => Term -> Term -> tcm Bool
- Agda.TypeChecking.Substitute: absApp :: (Subst t) => Abs t -> Term -> t
+ Agda.TypeChecking.Substitute: absApp :: Subst t => Abs t -> Term -> t
- Agda.TypeChecking.Substitute: abstract :: (Abstract t) => Telescope -> t -> t
+ Agda.TypeChecking.Substitute: abstract :: Abstract t => Telescope -> t -> t
- Agda.TypeChecking.Substitute: abstractArgs :: (Abstract a) => Args -> a -> a
+ Agda.TypeChecking.Substitute: abstractArgs :: Abstract a => Args -> a -> a
- Agda.TypeChecking.Substitute: apply :: (Apply t) => t -> Args -> t
+ Agda.TypeChecking.Substitute: apply :: Apply t => t -> Args -> t
- Agda.TypeChecking.Substitute: raise :: (Raise t) => Nat -> t -> t
+ Agda.TypeChecking.Substitute: raise :: Raise t => Nat -> t -> t
- Agda.TypeChecking.Substitute: raiseFrom :: (Raise t) => Nat -> Nat -> t -> t
+ Agda.TypeChecking.Substitute: raiseFrom :: Raise t => Nat -> Nat -> t -> t
- Agda.TypeChecking.Substitute: subst :: (Subst t) => Term -> t -> t
+ Agda.TypeChecking.Substitute: subst :: Subst t => Term -> t -> t
- Agda.TypeChecking.Substitute: substUnder :: (Subst t) => Nat -> Term -> t -> t
+ Agda.TypeChecking.Substitute: substUnder :: Subst t => Nat -> Term -> t -> t
- Agda.TypeChecking.Substitute: substs :: (Subst t) => Substitution -> t -> t
+ Agda.TypeChecking.Substitute: substs :: Subst t => Substitution -> t -> t
- Agda.TypeChecking.Telescope: piApplyM :: (MonadTCM tcm) => Type -> Args -> tcm Type
+ Agda.TypeChecking.Telescope: piApplyM :: MonadTCM tcm => Type -> Args -> tcm Type
- Agda.TypeChecking.Telescope: rename :: (Subst t) => Permutation -> t -> t
+ Agda.TypeChecking.Telescope: rename :: Subst t => Permutation -> t -> t
- Agda.TypeChecking.Telescope: telView :: (MonadTCM tcm) => Type -> tcm TelView
+ Agda.TypeChecking.Telescope: telView :: MonadTCM tcm => Type -> tcm TelView
- Agda.TypeChecking.Test.Generators: genC :: (GenC a) => TermConfiguration -> Gen a
+ Agda.TypeChecking.Test.Generators: genC :: GenC a => TermConfiguration -> Gen a
- Agda.TypeChecking.Test.Generators: isWellScoped :: (Free a) => TermConfiguration -> a -> Bool
+ Agda.TypeChecking.Test.Generators: isWellScoped :: Free a => TermConfiguration -> a -> Bool
- Agda.TypeChecking.Test.Generators: killAbs :: (KillVar a) => Abs a -> a
+ Agda.TypeChecking.Test.Generators: killAbs :: KillVar a => Abs a -> a
- Agda.TypeChecking.Test.Generators: killVar :: (KillVar a) => Nat -> a -> a
+ Agda.TypeChecking.Test.Generators: killVar :: KillVar a => Nat -> a -> a
- Agda.TypeChecking.Test.Generators: noShrink :: (ShrinkC a b) => a -> b
+ Agda.TypeChecking.Test.Generators: noShrink :: ShrinkC a b => a -> b
- Agda.TypeChecking.Test.Generators: shrinkC :: (ShrinkC a b) => TermConfiguration -> a -> [b]
+ Agda.TypeChecking.Test.Generators: shrinkC :: ShrinkC a b => TermConfiguration -> a -> [b]
- Agda.TypeChecking.UniversePolymorphism: compareLevel :: (MonadTCM tcm) => Comparison -> Term -> Term -> tcm Constraints
+ Agda.TypeChecking.UniversePolymorphism: compareLevel :: MonadTCM tcm => Comparison -> Term -> Term -> tcm Constraints
- Agda.TypeChecking.UniversePolymorphism: mlevel :: (MonadTCM tcm) => tcm (Maybe Term)
+ Agda.TypeChecking.UniversePolymorphism: mlevel :: MonadTCM tcm => tcm (Maybe Term)
- Agda.Utils.Fresh: nextFresh :: (HasFresh i a) => a -> (i, a)
+ Agda.Utils.Fresh: nextFresh :: HasFresh i a => a -> (i, a)
- Agda.Utils.Function: iterate' :: (Integral i) => i -> (a -> a) -> a -> a
+ Agda.Utils.Function: iterate' :: Integral i => i -> (a -> a) -> a -> a
- Agda.Utils.Generics: everywhereButM' :: (Monad m) => GenericQ Bool -> GenericM m -> GenericM m
+ Agda.Utils.Generics: everywhereButM' :: Monad m => GenericQ Bool -> GenericM m -> GenericM m
- Agda.Utils.Graph: edges :: (Ord n) => Graph n e -> [(n, n, e)]
+ Agda.Utils.Graph: edges :: Ord n => Graph n e -> [(n, n, e)]
- Agda.Utils.Graph: lookup :: (Ord n) => n -> n -> Graph n e -> Maybe e
+ Agda.Utils.Graph: lookup :: Ord n => n -> n -> Graph n e -> Maybe e
- Agda.Utils.Graph: neighbours :: (Ord n) => n -> Graph n e -> [(n, e)]
+ Agda.Utils.Graph: neighbours :: Ord n => n -> Graph n e -> [(n, e)]
- Agda.Utils.Graph: nodes :: (Ord n) => Graph n e -> Set n
+ Agda.Utils.Graph: nodes :: Ord n => Graph n e -> Set n
- Agda.Utils.IO.Locale: print :: (Show a) => a -> IO ()
+ Agda.Utils.IO.Locale: print :: Show a => a -> IO ()
- Agda.Utils.List: allEqual :: (Eq a) => [a] -> Bool
+ Agda.Utils.List: allEqual :: Eq a => [a] -> Bool
- Agda.Utils.List: distinct :: (Eq a) => [a] -> Bool
+ Agda.Utils.List: distinct :: Eq a => [a] -> Bool
- Agda.Utils.List: extractNthElement :: (Integral i) => i -> [a] -> (a, [a])
+ Agda.Utils.List: extractNthElement :: Integral i => i -> [a] -> (a, [a])
- Agda.Utils.List: extractNthElement' :: (Integral i) => i -> [a] -> ([a], a, [a])
+ Agda.Utils.List: extractNthElement' :: Integral i => i -> [a] -> ([a], a, [a])
- Agda.Utils.List: groupOn :: (Ord b) => (a -> b) -> [a] -> [[a]]
+ Agda.Utils.List: groupOn :: Ord b => (a -> b) -> [a] -> [[a]]
- Agda.Utils.List: maybePrefixMatch :: (Eq a) => Prefix a -> [a] -> Maybe (Suffix a)
+ Agda.Utils.List: maybePrefixMatch :: Eq a => Prefix a -> [a] -> Maybe (Suffix a)
- Agda.Utils.Map: filterKeys :: (Ord k) => (k -> Bool) -> Map k a -> Map k a
+ Agda.Utils.Map: filterKeys :: Ord k => (k -> Bool) -> Map k a -> Map k a
- Agda.Utils.Maybe: fromMaybeM :: (Monad m) => m a -> m (Maybe a) -> m a
+ Agda.Utils.Maybe: fromMaybeM :: Monad m => m a -> m (Maybe a) -> m a
- Agda.Utils.Monad: (<$>) :: (Functor f) => (a -> b) -> f a -> f b
+ Agda.Utils.Monad: (<$>) :: Functor f => (a -> b) -> f a -> f b
- Agda.Utils.Monad: (<*>) :: (Applicative f) => forall a b. f (a -> b) -> f a -> f b
+ Agda.Utils.Monad: (<*>) :: Applicative f => forall a b. f (a -> b) -> f a -> f b
- Agda.Utils.Monad: (<.>) :: (Monad m) => (b -> m c) -> (a -> m b) -> a -> m c
+ Agda.Utils.Monad: (<.>) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
- Agda.Utils.Monad: concatMapM :: (Applicative m) => (a -> m [b]) -> [a] -> m [b]
+ Agda.Utils.Monad: concatMapM :: Applicative m => (a -> m [b]) -> [a] -> m [b]
- Agda.Utils.Monad: forceM :: (Monad m) => [a] -> m ()
+ Agda.Utils.Monad: forceM :: Monad m => [a] -> m ()
- Agda.Utils.Monad: forgetM :: (Applicative m) => m a -> m ()
+ Agda.Utils.Monad: forgetM :: Applicative m => m a -> m ()
- Agda.Utils.Monad: ifM :: (Monad m) => m Bool -> m a -> m a -> m a
+ Agda.Utils.Monad: ifM :: Monad m => m Bool -> m a -> m a -> m a
- Agda.Utils.Monad: liftEither :: (MonadError e m) => Either e a -> m a
+ Agda.Utils.Monad: liftEither :: MonadError e m => Either e a -> m a
- Agda.Utils.Monad: mapMaybeM :: (Applicative m) => (a -> m b) -> Maybe a -> m (Maybe b)
+ Agda.Utils.Monad: mapMaybeM :: Applicative m => (a -> m b) -> Maybe a -> m (Maybe b)
- Agda.Utils.Monad: readM :: (Monad m, Read a) => String -> m a
+ Agda.Utils.Monad: readM :: (Error e, MonadError e m, Read a) => String -> m a
- Agda.Utils.Monad: unlessM :: (Monad m) => m Bool -> m () -> m ()
+ Agda.Utils.Monad: unlessM :: Monad m => m Bool -> m () -> m ()
- Agda.Utils.Monad: whenM :: (Monad m) => m Bool -> m () -> m ()
+ Agda.Utils.Monad: whenM :: Monad m => m Bool -> m () -> m ()
- Agda.Utils.Monad: zipWithM' :: (Monad m) => (a -> b -> m c) -> [a] -> [b] -> m [c]
+ Agda.Utils.Monad: zipWithM' :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c]
- Agda.Utils.Pointer: alloc :: (MonadIO io) => a -> io (Ptr a)
+ Agda.Utils.Pointer: alloc :: MonadIO io => a -> io (Ptr a)
- Agda.Utils.Pointer: deref :: (MonadIO io) => Ptr a -> io a
+ Agda.Utils.Pointer: deref :: MonadIO io => Ptr a -> io a
- Agda.Utils.Pointer: store :: (MonadIO io) => Ptr a -> a -> io ()
+ Agda.Utils.Pointer: store :: MonadIO io => Ptr a -> a -> io ()
- Agda.Utils.Pointer: updatePtr :: (MonadIO io) => Ptr a -> (a -> io a) -> io a
+ Agda.Utils.Pointer: updatePtr :: MonadIO io => Ptr a -> (a -> io a) -> io a
- Agda.Utils.Pretty: pretty :: (Pretty a) => a -> Doc
+ Agda.Utils.Pretty: pretty :: Pretty a => a -> Doc
- Agda.Utils.Pretty: prettyPrec :: (Pretty a) => Int -> a -> Doc
+ Agda.Utils.Pretty: prettyPrec :: Pretty a => Int -> a -> Doc
- Agda.Utils.QuickCheck: quickCheck' :: (Testable prop) => prop -> IO Bool
+ Agda.Utils.QuickCheck: quickCheck' :: Testable prop => prop -> IO Bool
- Agda.Utils.QuickCheck: quickCheckWith' :: (Testable prop) => Args -> prop -> IO Bool
+ Agda.Utils.QuickCheck: quickCheckWith' :: Testable prop => Args -> prop -> IO Bool
- Agda.Utils.ReadP: char :: (Eq t) => t -> ReadP t t
+ Agda.Utils.ReadP: char :: Eq t => t -> ReadP t t
- Agda.Utils.ReadP: string :: (Eq t) => [t] -> ReadP t [t]
+ Agda.Utils.ReadP: string :: Eq t => [t] -> ReadP t [t]
- Agda.Utils.SemiRing: oplus :: (SemiRing a) => a -> a -> a
+ Agda.Utils.SemiRing: oplus :: SemiRing a => a -> a -> a
- Agda.Utils.SemiRing: otimes :: (SemiRing a) => a -> a -> a
+ Agda.Utils.SemiRing: otimes :: SemiRing a => a -> a -> a
- Agda.Utils.String: indent :: (Integral i) => i -> String -> String
+ Agda.Utils.String: indent :: Integral i => i -> String -> String
- Agda.Utils.String: showIndex :: (Integral i) => i -> String
+ Agda.Utils.String: showIndex :: Integral i => i -> String
- Agda.Utils.TestHelpers: natural :: (Integral i) => Gen i
+ Agda.Utils.TestHelpers: natural :: Integral i => Gen i
- Agda.Utils.TestHelpers: positive :: (Integral i) => Gen i
+ Agda.Utils.TestHelpers: positive :: Integral i => Gen i
- Agda.Utils.Trie: insert :: (Ord k) => [k] -> v -> Trie k v -> Trie k v
+ Agda.Utils.Trie: insert :: Ord k => [k] -> v -> Trie k v -> Trie k v
- Agda.Utils.Trie: lookupPath :: (Ord k) => [k] -> Trie k v -> [v]
+ Agda.Utils.Trie: lookupPath :: Ord k => [k] -> Trie k v -> [v]
- Agda.Utils.Trie: union :: (Ord k) => Trie k v -> Trie k v -> Trie k v
+ Agda.Utils.Trie: union :: Ord k => Trie k v -> Trie k v -> Trie k v
- Agda.Utils.Warshall: edges :: (Ord n) => AdjList n e -> [(n, n, e)]
+ Agda.Utils.Warshall: edges :: Ord n => AdjList n e -> [(n, n, e)]
- Agda.Utils.Warshall: genGraph :: (Ord node) => Float -> Gen edge -> [node] -> Gen (AdjList node edge)
+ Agda.Utils.Warshall: genGraph :: Ord node => Float -> Gen edge -> [node] -> Gen (AdjList node edge)
- Agda.Utils.Warshall: lookupEdge :: (Ord n) => n -> n -> AdjList n e -> Maybe e
+ Agda.Utils.Warshall: lookupEdge :: Ord n => n -> n -> AdjList n e -> Maybe e
- Agda.Utils.Warshall: warshall :: (SemiRing a) => Matrix a -> Matrix a
+ Agda.Utils.Warshall: warshall :: SemiRing a => Matrix a -> Matrix a

Files

Agda.cabal view
@@ -1,5 +1,5 @@ name:            Agda-version:         2.2.8+version:         2.2.10 cabal-version:   >= 1.8 && < 2 build-type:      Simple license:         OtherLicense@@ -34,13 +34,16 @@   Note also that this library does not follow the package versioning   policy, because the library is only intended to be used by the Emacs   mode and the Agda-executable package.-tested-with:        GHC == 6.12.1, GHC == 6.12.3+tested-with:        GHC == 6.12.1, GHC == 6.12.3, GHC == 7.0.1 extra-source-files: src/full/Agda/undefined.h                     README                     doc/release-notes/*.txt data-dir:           src/data data-files:         Agda.css                     emacs-mode/*.el+                    EpicInclude/AgdaPrelude.e+                    EpicInclude/stdagda.c+                    EpicInclude/stdagda.h  source-repository head   type:     darcs@@ -49,7 +52,7 @@ source-repository this   type:     darcs   location: http://code.haskell.org/Agda/-  tag:      2.2.8+  tag:      2.2.10  flag use-locale   description:@@ -57,16 +60,24 @@     of the IO going to/from stdin and stdout. (Note that source files     must always be encoded using UTF8.) +flag epic+  default: False+  manual:  True+  description:+    Install the Epic compiler.+ library   hs-source-dirs:   src/full   if flag(use-locale)-    build-depends:  base == 4.2.*+    build-depends:  base >= 4.2 && < 4.4   else     build-depends:  base == 4.1.*,                     utf8-string == 0.3.*-  build-depends:    mtl >= 1.1 && < 2,-                    QuickCheck >= 2.1.0.2 && < 2.2,-                    haskell-src >= 1.0.1.1 && < 2,+  if flag(epic)+    build-depends:  epic >= 0.1.7 && < 0.2+  build-depends:    mtl == 2.0.*,+                    QuickCheck >= 2.3 && < 2.5,+                    haskell-src-exts >= 1.9.6 && < 1.10,                     containers >= 0.1.0 && < 1,                     pretty >= 1 && < 2,                     directory >= 1.0 && < 1.2,@@ -77,17 +88,28 @@                     zlib >= 0.4.0.1 && < 1,                     filepath >= 1.1 && < 2,                     process >= 1.0.1.0 && < 2,-                    haskeline >= 0.3 && < 0.7,+                    haskeline >= 0.6.3.2 && < 0.7,                     xhtml == 3000.2.*,-                    syb == 0.1.*,-                    Cabal >= 1.8.0.2 && < 1.9+                    syb >= 0.1 && < 0.3   build-tools:      happy >= 1.15 && < 2,                     alex >= 2.0.1 && < 3   extensions:       CPP   exposed-modules:  Agda.Main+                    Agda.ImpossibleTest                     Agda.Interaction.BasicOps                     Agda.Interaction.GhciTop                     Agda.Compiler.HaskellTypes+                    Agda.Compiler.Epic.AuxAST+                    Agda.Compiler.Epic.Compiler+                    Agda.Compiler.Epic.CompileState+                    Agda.Compiler.Epic.ConstructorIrrelevancy+                    Agda.Compiler.Epic.Erasure+                    Agda.Compiler.Epic.Epic+                    Agda.Compiler.Epic.Forcing+                    Agda.Compiler.Epic.FromAgda+                    Agda.Compiler.Epic.LambdaLift+                    Agda.Compiler.Epic.NatDetection+                    Agda.Compiler.Epic.Primitive                     Agda.Compiler.MAlonzo.Compiler                     Agda.Compiler.MAlonzo.Encode                     Agda.Compiler.MAlonzo.Misc@@ -285,7 +307,7 @@   main-is:          Main.hs   other-modules:    Paths_Agda   if flag(use-locale)-    build-depends:  base == 4.2.*+    build-depends:  base >= 4.2 && < 4.4   else     build-depends:  base == 4.1.*,                     utf8-string == 0.3.*
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2005-2010 Ulf Norell, Nils Anders Danielsson, Catarina+Copyright (c) 2005-2011 Ulf Norell, Nils Anders Danielsson, Catarina Coquand, Makoto Takeyama, Andreas Abel, Karl Mehltretter, Marcin Benke, Darin Morrison. 
README view
@@ -7,6 +7,7 @@ * Installing Agda * Configuring the Emacs mode * Prerequisites+* Installing the Epic backend's dependencies * Installing a suitable version of Emacs under Windows  ------------------------------------------------------------------------@@ -131,6 +132,55 @@   apt-get install zlib1g-dev libncurses5-dev  as root to get the correct files installed.++------------------------------------------------------------------------+Installing the Epic backend's dependencies+------------------------------------------------------------------------++The Epic backend is experimental and requires that the Epic program is+installed. You can install this program by giving the epic flag to+cabal:++* When installing from Hackage:++    cabal update+    cabal install Agda -fepic+    cabal install Agda-executable+    agda-mode setup++* When installing using a source tar ball, following the instructions+  in 2a) above:++    cabal update+    cabal install -fepic+    agda-mode setup+    cd src/main+    cabal install++* When installing using a source tar ball, following the instructions+  in 2b) above:++    make CABAL_OPTIONS="--global -fepic" install++  (The Makefile specifies CABAL_OPTIONS=--global by default; feel free+  to omit --global.)++You can also install Epic directly:++  cabal install epic++Note that Epic depends on other software:++  The Boehm garbage collector:+    http://www.hpl.hp.com/personal/Hans_Boehm/gc/+  The GNU Multiple Precision Arithmetic Library:+    http://gmplib.org/+  GCC, the GNU Compiler Collection:+    http://gcc.gnu.org/++For more information about Epic:++  http://www.cs.st-andrews.ac.uk/~eb/epic.php  ------------------------------------------------------------------------ Installing a suitable version of Emacs under Windows
dist/build/Agda/Syntax/Parser/Lexer.hs view
@@ -1,6 +1,7 @@ {-# OPTIONS -fglasgow-exts -cpp #-} {-# LINE 1 "src/full/Agda/Syntax/Parser/Lexer.x" #-} +{-# OPTIONS_GHC -fno-warn-deprecated-flags #-} {-| The lexer is generated by Alex (<http://www.haskell.org/alex>) and is an     adaptation of GHC's lexer. The main lexing function 'lexer' is called by     the "Agda.Syntax.Parser.Parser" to get the next token from the input.@@ -48,19 +49,19 @@ import GlaExts #endif alex_base :: AlexAddr-alex_base = AlexA# "\xf7\xff\xff\xff\x6c\x00\x00\x00\xc8\x00\x00\x00\x3c\x01\x00\x00\x40\x01\x00\x00\x44\x01\x00\x00\x4b\x01\x00\x00\x70\x00\x00\x00\x73\x00\x00\x00\x76\x00\x00\x00\x7a\x00\x00\x00\x7d\x00\x00\x00\x94\x00\x00\x00\xa3\xff\xff\xff\x81\x00\x00\x00\x82\x00\x00\x00\x68\x01\x00\x00\xa1\xff\xff\xff\x48\x01\x00\x00\xa0\xff\xff\xff\x49\x01\x00\x00\x9f\xff\xff\xff\x4f\x01\x00\x00\x9b\xff\xff\xff\x50\x01\x00\x00\x8f\xff\xff\xff\x51\x01\x00\x00\xa8\xff\xff\xff\x53\x01\x00\x00\x9d\xff\xff\xff\x54\x01\x00\x00\xa9\xff\xff\xff\x55\x01\x00\x00\xaa\xff\xff\xff\x57\x01\x00\x00\x91\xff\xff\xff\x58\x01\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\xff\xff\xff\xa6\xff\xff\xff\xb1\xff\xff\xff\x16\x00\x00\x00\xb3\xff\xff\xff\x23\x00\x00\x00\x30\x00\x00\x00\x32\x00\x00\x00\x18\x00\x00\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x75\x00\x00\x00\xa0\x00\x00\x00\xb0\x00\x00\x00\xa6\x00\x00\x00\xb8\x00\x00\x00\x6f\x01\x00\x00\x75\x01\x00\x00\x9a\x01\x00\x00\xbe\x01\x00\x00\xc4\x01\x00\x00\xcd\x01\x00\x00\xd6\x01\x00\x00\xdc\x01\x00\x00\xf4\x01\x00\x00\xf9\x01\x00\x00\xfe\x01\x00\x00\x06\x02\x00\x00\x16\x02\x00\x00\x22\x02\x00\x00\x28\x02\x00\x00\x2e\x02\x00\x00\x34\x02\x00\x00\x40\x02\x00\x00\x4c\x02\x00\x00\x52\x02\x00\x00\x5a\x02\x00\x00\x74\x02\x00\x00\x7a\x02\x00\x00\x7f\x02\x00\x00\x9b\x02\x00\x00\xa1\x02\x00\x00\xa6\x02\x00\x00\xab\x02\x00\x00\xc3\x02\x00\x00\xc8\x02\x00\x00\xcd\x02\x00\x00\xd2\x02\x00\x00\xfc\x02\x00\x00\x01\x03\x00\x00\x07\x03\x00\x00\x0c\x03\x00\x00\x24\x03\x00\x00\x29\x03\x00\x00\x2e\x03\x00\x00\x33\x03\x00\x00\x4c\x03\x00\x00\x54\x03\x00\x00\x59\x03\x00\x00\x5e\x03\x00\x00\x64\x03\x00\x00\x7c\x03\x00\x00\x81\x03\x00\x00\x86\x03\x00\x00\x8b\x03\x00\x00\xa3\x03\x00\x00\xa8\x03\x00\x00\xad\x03\x00\x00\xb2\x03\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x9c\x00\x00\x00\xd4\x03\x00\x00\x9d\x00\x00\x00\x45\x04\x00\x00\xb6\x04\x00\x00\x27\x05\x00\x00\x98\x05\x00\x00\x09\x06\x00\x00\x65\x06\x00\x00\x88\x00\x00\x00\xc1\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x07\x00\x00\x79\x07\x00\x00\xd5\x07\x00\x00\x31\x08\x00\x00\x8d\x08\x00\x00\xe9\x08\x00\x00\x45\x09\x00\x00\xa1\x09\x00\x00\xfd\x09\x00\x00\x59\x0a\x00\x00\xb5\x0a\x00\x00\x11\x0b\x00\x00\x6d\x0b\x00\x00\xc9\x0b\x00\x00\x25\x0c\x00\x00\x81\x0c\x00\x00\xdd\x0c\x00\x00\x39\x0d\x00\x00\x95\x0d\x00\x00\xf1\x0d\x00\x00\x4d\x0e\x00\x00\xa9\x0e\x00\x00\x05\x0f\x00\x00\x61\x0f\x00\x00\xbd\x0f\x00\x00\x19\x10\x00\x00\x75\x10\x00\x00\xd1\x10\x00\x00\x2d\x11\x00\x00\x89\x11\x00\x00\xe5\x11\x00\x00\x41\x12\x00\x00\x9d\x12\x00\x00\xf9\x12\x00\x00\x55\x13\x00\x00\xb1\x13\x00\x00\x0d\x14\x00\x00\x69\x14\x00\x00\xc5\x14\x00\x00\x21\x15\x00\x00\x7d\x15\x00\x00\xd9\x15\x00\x00\x35\x16\x00\x00\x91\x16\x00\x00\xed\x16\x00\x00\x49\x17\x00\x00\xa5\x17\x00\x00\x01\x18\x00\x00\x5d\x18\x00\x00\xb9\x18\x00\x00\x15\x19\x00\x00\x71\x19\x00\x00\xcd\x19\x00\x00\x29\x1a\x00\x00\x85\x1a\x00\x00\xe1\x1a\x00\x00\x3d\x1b\x00\x00\x99\x1b\x00\x00\xf5\x1b\x00\x00\x51\x1c\x00\x00\xad\x1c\x00\x00\x09\x1d\x00\x00\x65\x1d\x00\x00\xc1\x1d\x00\x00\x1d\x1e\x00\x00\x79\x1e\x00\x00\xd5\x1e\x00\x00\x31\x1f\x00\x00\x8d\x1f\x00\x00\xe9\x1f\x00\x00\x45\x20\x00\x00\xa1\x20\x00\x00\xfd\x20\x00\x00\x59\x21\x00\x00\xb5\x21\x00\x00\x11\x22\x00\x00\x6d\x22\x00\x00\xc9\x22\x00\x00\x25\x23\x00\x00\x81\x23\x00\x00\xdd\x23\x00\x00\x39\x24\x00\x00\x95\x24\x00\x00\xf1\x24\x00\x00\x4d\x25\x00\x00\xa9\x25\x00\x00\x05\x26\x00\x00\x61\x26\x00\x00\xbd\x26\x00\x00\x19\x27\x00\x00\x75\x27\x00\x00\xd1\x27\x00\x00\x2d\x28\x00\x00\x89\x28\x00\x00\xe5\x28\x00\x00\x41\x29\x00\x00\x9d\x29\x00\x00\xf9\x29\x00\x00\x55\x2a\x00\x00\xb1\x2a\x00\x00\x0d\x2b\x00\x00\x69\x2b\x00\x00\xc5\x2b\x00\x00\x21\x2c\x00\x00\x7d\x2c\x00\x00\xd9\x2c\x00\x00\x35\x2d\x00\x00\x91\x2d\x00\x00\xed\x2d\x00\x00\x49\x2e\x00\x00\xa5\x2e\x00\x00\x01\x2f\x00\x00\x5d\x2f\x00\x00\xb9\x2f\x00\x00\x15\x30\x00\x00\x71\x30\x00\x00\xcd\x30\x00\x00\x29\x31\x00\x00\x85\x31\x00\x00\xe1\x31\x00\x00\x3d\x32\x00\x00\x99\x32\x00\x00\xf5\x32\x00\x00\x51\x33\x00\x00\xad\x33\x00\x00\x09\x34\x00\x00\x65\x34\x00\x00\xc1\x34\x00\x00\x1d\x35\x00\x00\x79\x35\x00\x00\xd5\x35\x00\x00\x31\x36\x00\x00\x8d\x36\x00\x00\xe9\x36\x00\x00\x45\x37\x00\x00\xa1\x37\x00\x00\xfd\x37\x00\x00\x59\x38\x00\x00\xb5\x38\x00\x00\x11\x39\x00\x00\x6d\x39\x00\x00\xc9\x39\x00\x00\x25\x3a\x00\x00\x81\x3a\x00\x00\xdd\x3a\x00\x00\x39\x3b\x00\x00\x95\x3b\x00\x00\xf1\x3b\x00\x00\x4d\x3c\x00\x00\xa9\x3c\x00\x00\x00\x00\x00\x00\x3f\x00\x00\x00\x05\x3d\x00\x00\x61\x3d\x00\x00\xbd\x3d\x00\x00\x19\x3e\x00\x00\x75\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\xd1\x3e\x00\x00\x2d\x3f\x00\x00\x89\x3f\x00\x00\xe5\x3f\x00\x00\x41\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9d\x40\x00\x00\xf9\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x41\x00\x00\xb1\x41\x00\x00\x0d\x42\x00\x00\x69\x42\x00\x00\xc5\x42\x00\x00\x21\x43\x00\x00\x7d\x43\x00\x00\xd9\x43\x00\x00\x35\x44\x00\x00\x91\x44\x00\x00\xed\x44\x00\x00\x49\x45\x00\x00\xa5\x45\x00\x00\x01\x46\x00\x00\x5d\x46\x00\x00\xb9\x46\x00\x00\x15\x47\x00\x00\x71\x47\x00\x00\xcd\x47\x00\x00\x29\x48\x00\x00\x85\x48\x00\x00\xe1\x48\x00\x00\x3d\x49\x00\x00\x99\x49\x00\x00\xf5\x49\x00\x00\x51\x4a\x00\x00\xad\x4a\x00\x00\x09\x4b\x00\x00\x65\x4b\x00\x00\xc1\x4b\x00\x00\x1d\x4c\x00\x00\x79\x4c\x00\x00\xd5\x4c\x00\x00\x31\x4d\x00\x00\x8d\x4d\x00\x00"#+alex_base = AlexA# "\xf7\xff\xff\xff\x6c\x00\x00\x00\xc8\x00\x00\x00\x3c\x01\x00\x00\x40\x01\x00\x00\x44\x01\x00\x00\x4b\x01\x00\x00\x70\x00\x00\x00\x74\x00\x00\x00\x78\x00\x00\x00\x7c\x00\x00\x00\x7d\x00\x00\x00\x81\x00\x00\x00\x48\x01\x00\x00\x49\x01\x00\x00\x4f\x01\x00\x00\x50\x01\x00\x00\x53\x01\x00\x00\x51\x01\x00\x00\x54\x01\x00\x00\x55\x01\x00\x00\x57\x01\x00\x00\xfb\xff\xff\xff\x00\x00\x00\x00\xfc\xff\xff\xff\xfd\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\xff\xff\xff\x9b\xff\xff\xff\xa6\xff\xff\xff\x90\xff\xff\xff\xa9\xff\xff\xff\x9e\xff\xff\xff\xaa\xff\xff\xff\xab\xff\xff\xff\x92\xff\xff\xff\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x00\x00\xee\xff\xff\xff\x9a\x00\x00\x00\xa0\x00\x00\x00\xa6\x00\x00\x00\xab\x00\x00\x00\xb8\x00\x00\x00\x69\x01\x00\x00\x6f\x01\x00\x00\x75\x01\x00\x00\x7b\x01\x00\x00\x99\x01\x00\x00\x9e\x01\x00\x00\xcc\x01\x00\x00\xd1\x01\x00\x00\xde\x01\x00\x00\xe9\x01\x00\x00\xee\x01\x00\x00\xf6\x01\x00\x00\xfb\x01\x00\x00\x07\x02\x00\x00\x13\x02\x00\x00\x1f\x02\x00\x00\x24\x02\x00\x00\x3c\x02\x00\x00\x48\x02\x00\x00\x4d\x02\x00\x00\x59\x02\x00\x00\x65\x02\x00\x00\x6b\x02\x00\x00\x71\x02\x00\x00\x77\x02\x00\x00\x83\x02\x00\x00\x90\x02\x00\x00\x95\x02\x00\x00\xad\x02\x00\x00\xb4\x02\x00\x00\xbc\x02\x00\x00\xce\x02\x00\x00\xd4\x02\x00\x00\xdc\x02\x00\x00\xe6\x02\x00\x00\xee\x02\x00\x00\xf4\x02\x00\x00\xfe\x02\x00\x00\x0d\x03\x00\x00\x16\x03\x00\x00\x1b\x03\x00\x00\x33\x03\x00\x00\x38\x03\x00\x00\x43\x03\x00\x00\x55\x03\x00\x00\x5d\x03\x00\x00\x66\x03\x00\x00\x6e\x03\x00\x00\x75\x03\x00\x00\x80\x03\x00\x00\x86\x03\x00\x00\x8e\x03\x00\x00\x98\x03\x00\x00\x9e\x03\x00\x00\xb0\x03\x00\x00\xb6\x03\x00\x00\x00\x00\x00\x00\xe5\xff\xff\xff\x09\x00\x00\x00\xcd\x03\x00\x00\x0a\x00\x00\x00\x3e\x04\x00\x00\xaf\x04\x00\x00\x20\x05\x00\x00\x91\x05\x00\x00\x02\x06\x00\x00\x5e\x06\x00\x00\xe8\xff\xff\xff\xba\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x07\x00\x00\x72\x07\x00\x00\xce\x07\x00\x00\x2a\x08\x00\x00\x86\x08\x00\x00\xe2\x08\x00\x00\x3e\x09\x00\x00\x9a\x09\x00\x00\xf6\x09\x00\x00\x52\x0a\x00\x00\xae\x0a\x00\x00\x0a\x0b\x00\x00\x66\x0b\x00\x00\xc2\x0b\x00\x00\x1e\x0c\x00\x00\x7a\x0c\x00\x00\xd6\x0c\x00\x00\x32\x0d\x00\x00\x8e\x0d\x00\x00\xea\x0d\x00\x00\x46\x0e\x00\x00\xa2\x0e\x00\x00\xfe\x0e\x00\x00\x5a\x0f\x00\x00\xb6\x0f\x00\x00\x12\x10\x00\x00\x6e\x10\x00\x00\xca\x10\x00\x00\x26\x11\x00\x00\x82\x11\x00\x00\xde\x11\x00\x00\x3a\x12\x00\x00\x96\x12\x00\x00\xf2\x12\x00\x00\x4e\x13\x00\x00\xaa\x13\x00\x00\x06\x14\x00\x00\x62\x14\x00\x00\xbe\x14\x00\x00\x1a\x15\x00\x00\x76\x15\x00\x00\xd2\x15\x00\x00\x2e\x16\x00\x00\x8a\x16\x00\x00\xe6\x16\x00\x00\x42\x17\x00\x00\x9e\x17\x00\x00\xfa\x17\x00\x00\x56\x18\x00\x00\xb2\x18\x00\x00\x0e\x19\x00\x00\x6a\x19\x00\x00\xc6\x19\x00\x00\x22\x1a\x00\x00\x7e\x1a\x00\x00\xda\x1a\x00\x00\x36\x1b\x00\x00\x92\x1b\x00\x00\xee\x1b\x00\x00\x4a\x1c\x00\x00\xa6\x1c\x00\x00\x02\x1d\x00\x00\x5e\x1d\x00\x00\xba\x1d\x00\x00\x16\x1e\x00\x00\x72\x1e\x00\x00\xce\x1e\x00\x00\x2a\x1f\x00\x00\x86\x1f\x00\x00\xe2\x1f\x00\x00\x3e\x20\x00\x00\x9a\x20\x00\x00\xf6\x20\x00\x00\x52\x21\x00\x00\xae\x21\x00\x00\x0a\x22\x00\x00\x66\x22\x00\x00\xc2\x22\x00\x00\x1e\x23\x00\x00\x7a\x23\x00\x00\xd6\x23\x00\x00\x32\x24\x00\x00\x8e\x24\x00\x00\xea\x24\x00\x00\x46\x25\x00\x00\xa2\x25\x00\x00\xfe\x25\x00\x00\x5a\x26\x00\x00\xb6\x26\x00\x00\x12\x27\x00\x00\x6e\x27\x00\x00\xca\x27\x00\x00\x26\x28\x00\x00\x82\x28\x00\x00\xde\x28\x00\x00\x3a\x29\x00\x00\x96\x29\x00\x00\xf2\x29\x00\x00\x4e\x2a\x00\x00\xaa\x2a\x00\x00\x06\x2b\x00\x00\x62\x2b\x00\x00\xbe\x2b\x00\x00\x1a\x2c\x00\x00\x76\x2c\x00\x00\xd2\x2c\x00\x00\x2e\x2d\x00\x00\x8a\x2d\x00\x00\xe6\x2d\x00\x00\x42\x2e\x00\x00\x9e\x2e\x00\x00\xfa\x2e\x00\x00\x56\x2f\x00\x00\xb2\x2f\x00\x00\x0e\x30\x00\x00\x6a\x30\x00\x00\xc6\x30\x00\x00\x22\x31\x00\x00\x7e\x31\x00\x00\xda\x31\x00\x00\x36\x32\x00\x00\x92\x32\x00\x00\xee\x32\x00\x00\x4a\x33\x00\x00\xa6\x33\x00\x00\x02\x34\x00\x00\x5e\x34\x00\x00\xba\x34\x00\x00\x16\x35\x00\x00\x72\x35\x00\x00\xce\x35\x00\x00\x2a\x36\x00\x00\x86\x36\x00\x00\xe2\x36\x00\x00\x3e\x37\x00\x00\x9a\x37\x00\x00\xf6\x37\x00\x00\x52\x38\x00\x00\xae\x38\x00\x00\x0a\x39\x00\x00\x66\x39\x00\x00\xc2\x39\x00\x00\x1e\x3a\x00\x00\x7a\x3a\x00\x00\xd6\x3a\x00\x00\x32\x3b\x00\x00\x8e\x3b\x00\x00\xea\x3b\x00\x00\x46\x3c\x00\x00\xa2\x3c\x00\x00\x00\x00\x00\x00\xa7\xff\xff\xff\xfe\x3c\x00\x00\x5a\x3d\x00\x00\xb6\x3d\x00\x00\x12\x3e\x00\x00\x6e\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\xca\x3e\x00\x00\x26\x3f\x00\x00\x82\x3f\x00\x00\xde\x3f\x00\x00\x3a\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x40\x00\x00\xf2\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x41\x00\x00\xaa\x41\x00\x00\x06\x42\x00\x00\x62\x42\x00\x00\xbe\x42\x00\x00\x1a\x43\x00\x00\x76\x43\x00\x00\xd2\x43\x00\x00\x2e\x44\x00\x00\x8a\x44\x00\x00\xe6\x44\x00\x00\x42\x45\x00\x00\x9e\x45\x00\x00\xfa\x45\x00\x00\x56\x46\x00\x00\xb2\x46\x00\x00\x0e\x47\x00\x00\x6a\x47\x00\x00\xc6\x47\x00\x00\x22\x48\x00\x00\x7e\x48\x00\x00\xda\x48\x00\x00\x36\x49\x00\x00\x92\x49\x00\x00\xee\x49\x00\x00\x4a\x4a\x00\x00\xa6\x4a\x00\x00\x02\x4b\x00\x00\x5e\x4b\x00\x00\xba\x4b\x00\x00\x16\x4c\x00\x00\x72\x4c\x00\x00\xce\x4c\x00\x00\x2a\x4d\x00\x00\x86\x4d\x00\x00"#  alex_table :: AlexAddr-alex_table = AlexA# "\x00\x00\x80\x00\x35\x00\x35\x00\x35\x00\x11\x00\x13\x00\x15\x00\x17\x00\x19\x00\x1b\x00\x1d\x00\x1f\x00\x21\x00\x09\x00\x23\x00\x26\x00\xff\xff\x29\x00\x2d\x00\x2e\x00\x2f\x00\x31\x00\x35\x00\x4f\x01\x31\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x30\x01\x2a\x01\x2b\x01\x4f\x01\x4f\x01\x4f\x01\x7f\x00\x22\x01\x4f\x01\x32\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x25\x01\x24\x01\x4f\x01\x26\x01\x4f\x01\x28\x01\x2e\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\xef\x00\x4f\x01\x4f\x01\xeb\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x2d\x01\x4f\x01\x4f\x01\x27\x01\x4f\x01\xe4\x00\x4f\x01\xc5\x00\xbf\x00\x4f\x01\x91\x00\x4f\x01\x12\x01\x87\x00\x4f\x01\x4f\x01\x85\x00\xbb\x00\x4f\x01\xb0\x00\xa4\x00\x01\x01\x9b\x00\x07\x01\x4f\x01\x0c\x01\x4f\x01\x8c\x00\x4f\x01\x4f\x01\x4f\x01\x38\x00\x29\x01\x2f\x01\x4f\x01\x81\x00\x35\x00\x35\x00\x35\x00\x2a\x00\x10\x00\x10\x00\x10\x00\x0f\x00\x0f\x00\x0f\x00\x0b\x00\x0b\x00\x0b\x00\xff\xff\x0c\x00\x0c\x00\x0c\x00\x0b\x00\x0b\x00\x0b\x00\xff\xff\x35\x00\x0f\x00\x0f\x00\x0f\x00\x10\x00\x30\x00\x32\x00\x0f\x00\x33\x00\x2b\x00\x0b\x00\x34\x00\x37\x00\x7e\x00\x0c\x00\x73\x00\x20\x01\x0b\x00\xff\xff\x0c\x00\x0c\x00\x0c\x00\x0f\x00\x35\x00\x35\x00\x35\x00\xff\xff\xff\xff\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x19\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x75\x00\x00\x00\x23\x01\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x21\x01\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x2c\x00\x3a\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0d\x00\xff\xff\x00\x00\x80\x00\x35\x00\x35\x00\x35\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x74\x00\x35\x00\x4f\x01\x31\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x30\x01\x2a\x01\x2b\x01\x4f\x01\x4f\x01\x4f\x01\x7f\x00\x22\x01\x4f\x01\x32\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x33\x01\x25\x01\x24\x01\x4f\x01\x26\x01\x4f\x01\x28\x01\x2e\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\xef\x00\x4f\x01\x4f\x01\xeb\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x2d\x01\x4f\x01\x4f\x01\x27\x01\x4f\x01\xe4\x00\x4f\x01\xc5\x00\xbf\x00\x4f\x01\x91\x00\x4f\x01\x12\x01\x87\x00\x4f\x01\x4f\x01\x85\x00\xbb\x00\x4f\x01\xb0\x00\xa4\x00\x01\x01\x9b\x00\x07\x01\x4f\x01\x0c\x01\x4f\x01\x8c\x00\x4f\x01\x4f\x01\x4f\x01\x38\x00\x29\x01\x2f\x01\x4f\x01\x35\x00\x35\x00\x35\x00\x80\x00\x35\x00\x35\x00\x35\x00\x82\x00\x35\x00\x35\x00\x35\x00\xff\xff\xff\xff\xff\xff\x36\x00\x36\x00\x36\x00\x36\x00\xff\xff\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x36\x00\x00\x00\x7e\x00\x3e\x00\x00\x00\x00\x00\x7e\x00\xff\xff\x10\x00\x10\x00\x10\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x4f\x00\xff\xff\x6c\x00\x00\x00\x00\x00\x00\x00\x60\x00\xff\xff\x00\x00\x6f\x00\x00\x00\x00\x00\x41\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x1a\x01\x00\x00\x1e\x00\x74\x00\x18\x00\x22\x00\xff\xff\x74\x00\x24\x00\x00\x00\x1a\x00\x74\x00\x00\x00\x00\x00\x00\x00\x20\x00\x0e\x00\x00\x00\x3b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x42\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x44\x00\x00\x00\x43\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x45\x00\xff\xff\x00\x00\x00\x00\x00\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4a\x00\x00\x00\x00\x00\x00\x00\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\xff\xff\x00\x00\x00\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x52\x00\x53\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\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\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x55\x00\x54\x00\xff\xff\x00\x00\x56\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x58\x00\x00\x00\x59\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x57\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x5e\x00\x00\x00\x00\x00\x00\x00\x5d\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\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\x5b\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x62\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\x00\x00\x63\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x64\x00\x66\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x5f\x00\x00\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\x00\x00\x00\x00\x69\x00\xff\xff\x68\x00\x00\x00\x67\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x65\x00\x6a\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\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x6b\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6e\x00\x00\x00\x00\x00\x79\x00\x71\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x7b\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\xff\xff\x79\x00\x00\x00\x79\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\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x7b\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\xff\xff\x79\x00\x00\x00\x79\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\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x7b\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x00\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\x79\x00\xff\xff\x79\x00\x00\x00\x79\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\x7a\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7b\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\xff\xff\x7a\x00\x00\x00\x7a\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\x78\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x00\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x7c\x00\x78\x00\x78\x00\x7d\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\xff\xff\x78\x00\x00\x00\x78\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\x78\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x78\x00\x78\x00\x78\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x7a\x00\x78\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x7a\x00\x00\x00\x7a\x00\x50\x01\x7a\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x76\x00\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x2c\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x83\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x84\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd5\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb5\x00\x86\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x88\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x89\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x8a\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x8b\x00\x94\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x8d\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x8e\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x8f\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x90\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf4\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x92\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x93\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x95\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x96\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x97\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x98\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc9\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x18\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x99\x00\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x9a\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x9c\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x9d\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x9e\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x9f\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa0\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa1\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa2\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa3\x00\x50\x01\x50\x01\xac\x00\x50\x01\x50\x01\x1f\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa5\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa6\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa8\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xa9\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xaa\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe8\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xab\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xad\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xae\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xaf\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb1\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb2\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb3\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb4\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb6\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb8\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xb9\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xba\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xdc\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xbc\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xbd\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xbe\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc0\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc1\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc2\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc3\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd2\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc4\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc6\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xc8\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xca\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xcb\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xcc\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xcd\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xce\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xcf\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd0\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd1\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd6\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd3\x00\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd4\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd8\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xd9\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xda\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xdb\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xdd\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xde\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xdf\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe0\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe1\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe2\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe3\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe5\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe6\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\xf5\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xe9\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xea\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xec\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xed\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xee\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf0\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf1\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf2\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf3\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf8\x00\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\xf6\x00\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\xf7\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xf9\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xfa\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xfb\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xfc\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xfd\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xfe\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\xff\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x02\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x03\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x04\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x05\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x06\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x08\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x09\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x0a\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x0b\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x0d\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x0e\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x0f\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x10\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x11\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x13\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x14\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x15\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x16\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x17\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x1b\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x1c\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x1d\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x1e\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x51\x01\x50\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x50\x01\x51\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x4f\x01\x50\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x01\x50\x01\x4f\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x47\x01\x50\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x4c\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x4c\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x39\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x47\x01\x50\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x4c\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x4c\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x47\x01\x50\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x4c\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x4c\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x47\x01\x50\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x4e\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x47\x01\x50\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x4d\x01\x50\x01\x4d\x01\x47\x01\x50\x01\x35\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x36\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x47\x01\x50\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x38\x01\x38\x01\x38\x01\x38\x01\x37\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x49\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x49\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x48\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x49\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x49\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x3c\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x49\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x49\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x4a\x01\x50\x01\x4a\x01\x52\x01\x50\x01\x3e\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x4b\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x3f\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x40\x01\x40\x01\x40\x01\x40\x01\x3d\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x4b\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x4e\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x4f\x01\x50\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x3a\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x53\x01\x4f\x01\x4f\x01\x54\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x50\x01\x4f\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x40\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x4a\x01\x50\x01\x4a\x01\x52\x01\x50\x01\x41\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x41\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x42\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x43\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x4d\x01\x50\x01\x4d\x01\x52\x01\x50\x01\x44\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x44\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x52\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x50\x01\x00\x00\x50\x01\x51\x01\x50\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x52\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x4f\x01\x51\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x53\x01\x4f\x01\x4f\x01\x54\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x01\x4f\x01\x4f\x01\x4f\x01\x00\x00\x4f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x01\x51\x01\x4f\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x51\x01\x00\x00\x51\x01\x00\x00\x51\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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"#+alex_table = AlexA# "\x00\x00\x75\x00\x26\x00\x26\x00\x26\x00\x17\x00\xff\xff\x1a\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x1c\x00\x25\x00\x28\x00\x68\x00\xff\xff\xff\xff\x6a\x00\x0e\x01\x26\x00\x44\x01\x26\x01\x44\x01\x44\x01\x44\x01\x44\x01\x25\x01\x1f\x01\x20\x01\x44\x01\x44\x01\x44\x01\x74\x00\x17\x01\x44\x01\x27\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x1a\x01\x19\x01\x44\x01\x1b\x01\x44\x01\x1d\x01\x23\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\xe4\x00\x44\x01\x44\x01\xe0\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x22\x01\x44\x01\x44\x01\x1c\x01\x44\x01\xd9\x00\x44\x01\xba\x00\xb4\x00\x44\x01\x86\x00\x44\x01\x07\x01\x7c\x00\x44\x01\x44\x01\x7a\x00\xb0\x00\x44\x01\xa5\x00\x99\x00\xf6\x00\x90\x00\xfc\x00\x44\x01\x01\x01\x44\x01\x81\x00\x44\x01\x44\x01\x44\x01\x29\x00\x1e\x01\x24\x01\x44\x01\x76\x00\x26\x00\x26\x00\x26\x00\x1b\x00\x0b\x00\x0b\x00\x0b\x00\xff\xff\x09\x00\x09\x00\x09\x00\xff\xff\x09\x00\x09\x00\x09\x00\xff\xff\xff\xff\x0b\x00\x0b\x00\x0b\x00\xff\xff\x26\x00\x26\x00\x26\x00\x26\x00\x0b\x00\x18\x01\x15\x01\x16\x01\x09\x00\x00\x00\x00\x00\x00\x00\x09\x00\x73\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x1d\x00\x2b\x00\x00\x00\xff\xff\x0a\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x26\x00\x26\x00\x26\x00\x00\x00\x00\x00\xff\xff\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x0d\x00\x69\x00\x26\x00\x44\x01\x26\x01\x44\x01\x44\x01\x44\x01\x44\x01\x25\x01\x1f\x01\x20\x01\x44\x01\x44\x01\x44\x01\x74\x00\x17\x01\x44\x01\x27\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x28\x01\x1a\x01\x19\x01\x44\x01\x1b\x01\x44\x01\x1d\x01\x23\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\xe4\x00\x44\x01\x44\x01\xe0\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x22\x01\x44\x01\x44\x01\x1c\x01\x44\x01\xd9\x00\x44\x01\xba\x00\xb4\x00\x44\x01\x86\x00\x44\x01\x07\x01\x7c\x00\x44\x01\x44\x01\x7a\x00\xb0\x00\x44\x01\xa5\x00\x99\x00\xf6\x00\x90\x00\xfc\x00\x44\x01\x01\x01\x44\x01\x81\x00\x44\x01\x44\x01\x44\x01\x29\x00\x1e\x01\x24\x01\x44\x01\x26\x00\x26\x00\x26\x00\x75\x00\x26\x00\x26\x00\x26\x00\x77\x00\x26\x00\x26\x00\x26\x00\xff\xff\xff\xff\xff\xff\x27\x00\x27\x00\x27\x00\x27\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x27\x00\x00\x00\x73\x00\x2f\x00\x00\x00\x00\x00\x73\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x39\x00\x40\x00\xff\xff\x61\x00\x00\x00\x00\x00\x00\x00\x55\x00\xff\xff\x00\x00\x64\x00\x00\x00\x00\x00\x32\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x0f\x01\x00\x00\x12\x00\x69\x00\x14\x00\xff\xff\x15\x00\x69\x00\x00\x00\x10\x00\xff\xff\x69\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x2e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x37\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\xff\xff\x00\x00\x00\x00\x3c\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x42\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x44\x00\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\x51\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x4a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x4d\x00\x00\x00\xff\xff\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x3f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x4e\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x52\x00\xff\xff\x00\x00\x53\x00\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x57\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x59\x00\x5b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\xff\xff\x54\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x5d\x00\x5e\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\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x5f\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x62\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x00\x00\x00\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x63\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x70\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\xff\xff\x6e\x00\x00\x00\x6e\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\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x70\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\xff\xff\x6e\x00\x00\x00\x6e\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\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x70\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x00\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\x6e\x00\xff\xff\x6e\x00\x00\x00\x6e\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\x6f\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x70\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\xff\xff\x6f\x00\x00\x00\x6f\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\x6d\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x71\x00\x6d\x00\x6d\x00\x72\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\xff\xff\x6d\x00\x00\x00\x6d\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\x6d\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6d\x00\x6d\x00\x6d\x00\x00\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6f\x00\x6d\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x6f\x00\x00\x00\x6f\x00\x45\x01\x6f\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x6b\x00\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x21\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x78\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x79\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xca\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xaa\x00\x7b\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x7d\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x7e\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x7f\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x80\x00\x89\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x82\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x83\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x84\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x85\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe9\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x87\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x88\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x8a\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x8b\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x8c\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x8d\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xbe\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x0d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x8e\x00\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x8f\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x91\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x92\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x93\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x94\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x95\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x96\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x97\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x98\x00\x45\x01\x45\x01\xa1\x00\x45\x01\x45\x01\x14\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x9a\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x9b\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x9c\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x9d\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x9e\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x9f\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xdd\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa0\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa2\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa3\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa4\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa6\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa7\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa8\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xa9\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xab\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xac\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xad\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xae\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xaf\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd1\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb1\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb2\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb3\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb5\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb6\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb7\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb8\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc7\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xb9\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xbb\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xbc\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xbd\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xbf\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc0\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc1\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc2\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc3\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc4\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc5\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc6\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xcb\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xcc\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc8\x00\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xc9\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xcd\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xce\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xcf\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd0\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd2\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd3\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd4\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd5\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd6\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd7\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xd8\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xda\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xdb\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xdc\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\xea\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xde\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xdf\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe1\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe2\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe3\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe5\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe6\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe7\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xe8\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xed\x00\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\xeb\x00\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\xec\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xee\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xef\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf0\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf1\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf2\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf3\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf4\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf5\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf7\x00\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf8\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xf9\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xfa\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xfb\x00\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xfd\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xfe\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\xff\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x02\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x03\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x04\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x05\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x06\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x08\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x09\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x0a\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x0b\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x0c\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x10\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x11\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x12\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x13\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x46\x01\x45\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x45\x01\x46\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x44\x01\x45\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\x45\x01\x44\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3c\x01\x45\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x41\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x41\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x2e\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3c\x01\x45\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x41\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x41\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3c\x01\x45\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x29\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x41\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x41\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3c\x01\x45\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x43\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3c\x01\x45\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x42\x01\x45\x01\x42\x01\x3c\x01\x45\x01\x2a\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x2b\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3c\x01\x45\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2c\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x2d\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3e\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x3e\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x3d\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3e\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x3e\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x31\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x3e\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x3e\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x3f\x01\x45\x01\x3f\x01\x47\x01\x45\x01\x33\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x40\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x34\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x35\x01\x35\x01\x35\x01\x35\x01\x32\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x40\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x43\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x44\x01\x45\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x00\x00\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x2f\x01\x30\x01\x30\x01\x30\x01\x30\x01\x30\x01\x30\x01\x30\x01\x30\x01\x30\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x48\x01\x44\x01\x44\x01\x49\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x45\x01\x44\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x35\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x3f\x01\x45\x01\x3f\x01\x47\x01\x45\x01\x36\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x36\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x37\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x38\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x42\x01\x45\x01\x42\x01\x47\x01\x45\x01\x39\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x39\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x3a\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x3b\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x47\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x45\x01\x00\x00\x45\x01\x46\x01\x45\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x47\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x44\x01\x46\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x00\x00\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x48\x01\x44\x01\x44\x01\x49\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\x44\x01\x44\x01\x44\x01\x00\x00\x44\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x44\x01\x46\x01\x44\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x46\x01\x00\x00\x46\x01\x00\x00\x46\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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"#  alex_check :: AlexAddr-alex_check = AlexA# "\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x62\x00\x65\x00\x67\x00\x69\x00\x6e\x00\x7b\x00\x63\x00\x6f\x00\x64\x00\x7d\x00\x65\x00\x0a\x00\x0a\x00\x0a\x00\x65\x00\x6e\x00\x64\x00\x63\x00\x20\x00\x21\x00\x22\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\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\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\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0b\x00\x0c\x00\x0d\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x20\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x7b\x00\x6f\x00\x20\x00\x64\x00\x7d\x00\x20\x00\x65\x00\x23\x00\x2d\x00\x20\x00\x2d\x00\x21\x00\x20\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x2d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x6f\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x2d\x00\xff\xff\x2e\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x2e\x00\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\x5c\x00\x23\x00\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\x5c\x00\x20\x00\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\xff\xff\xff\xff\xff\xff\x7b\x00\x20\x00\x21\x00\x22\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\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\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\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x0a\x00\x20\x00\x0a\x00\x0a\x00\x0a\x00\x20\x00\x0a\x00\x0a\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x20\x00\xff\xff\x2d\x00\x23\x00\xff\xff\xff\xff\x2d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x42\x00\x43\x00\x20\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x20\x00\xff\xff\x4c\x00\xff\xff\xff\xff\x4f\x00\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x63\x00\x7b\x00\x69\x00\x64\x00\x20\x00\x7b\x00\x65\x00\xff\xff\x6e\x00\x7b\x00\xff\xff\xff\xff\xff\xff\x6f\x00\x5c\x00\xff\xff\x7b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x7b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x50\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\x49\x00\xff\xff\x54\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x4f\x00\x20\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x53\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x49\x00\xff\xff\xff\xff\xff\xff\x55\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\x4c\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\x20\x00\xff\xff\xff\xff\xff\xff\x54\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x4e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x4f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x50\x00\x49\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x45\x00\x4c\x00\x20\x00\xff\xff\x44\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x44\x00\xff\xff\x41\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x54\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x54\x00\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x50\x00\xff\xff\xff\xff\xff\xff\x59\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x45\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x4d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x50\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x4f\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x52\x00\x53\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x54\x00\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x42\x00\x20\x00\x49\x00\xff\xff\x53\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x45\x00\x4c\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x41\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\x54\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\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\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\x21\x00\x4e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\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\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\x60\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\x60\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\xff\xff\x7e\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\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\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\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\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\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"#+alex_check = AlexA# "\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x0a\x00\x65\x00\x6e\x00\x64\x00\x7b\x00\x63\x00\x6f\x00\x64\x00\x7d\x00\x65\x00\x23\x00\x2d\x00\x0a\x00\x0a\x00\x2d\x00\x6f\x00\x20\x00\x21\x00\x22\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\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\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\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x20\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x2e\x00\x21\x00\x2e\x00\x20\x00\xff\xff\xff\xff\xff\xff\x20\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x20\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\x5c\x00\x23\x00\xff\xff\x20\x00\x5c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x62\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x65\x00\x7b\x00\x20\x00\x21\x00\x22\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\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\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\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0a\x00\x0a\x00\x0a\x00\x20\x00\x0a\x00\x0a\x00\x0a\x00\x20\x00\x0a\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x20\x00\xff\xff\x2d\x00\x23\x00\xff\xff\xff\xff\x2d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\xff\xff\xff\xff\x42\x00\x43\x00\x20\x00\x45\x00\xff\xff\xff\xff\xff\xff\x49\x00\x20\x00\xff\xff\x4c\x00\xff\xff\xff\xff\x4f\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x67\x00\xff\xff\xff\xff\x69\x00\xff\xff\x74\x00\xff\xff\x63\x00\x7b\x00\x64\x00\x20\x00\x65\x00\x7b\x00\xff\xff\x6e\x00\x20\x00\x7b\x00\x6f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x7b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\xff\xff\x54\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\xff\xff\x7d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x4f\x00\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x4e\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x53\x00\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x55\x00\x20\x00\xff\xff\xff\xff\x4c\x00\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x54\x00\x49\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x4f\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\xff\xff\xff\xff\x4d\x00\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\x20\x00\x50\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\x4c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x44\x00\x45\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x41\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x54\x00\xff\xff\x20\x00\xff\xff\xff\xff\x5f\x00\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x41\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x54\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x50\x00\x59\x00\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\x20\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x50\x00\x20\x00\xff\xff\x49\x00\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\xff\xff\x4f\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x52\x00\x53\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x20\x00\x54\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\x20\x00\x53\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x49\x00\x42\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x4c\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x20\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\x54\x00\xff\xff\x20\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x49\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4e\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x45\x00\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x0a\x00\x7c\x00\xff\xff\x7e\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\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0a\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\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\x60\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\x60\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x21\x00\x7e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\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\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\x7c\x00\xff\xff\x7e\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\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\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\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\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\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"#  alex_deflt :: AlexAddr-alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\x27\x00\xff\xff\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\x27\x00\xff\xff\xff\xff\x27\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\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\x72\x00\xff\xff\xff\xff\x77\x00\x77\x00\x77\x00\x77\x00\x77\x00\x77\x00\x77\x00\x77\x00\x77\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\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\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\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\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\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\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\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\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\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"#+alex_deflt = AlexA# "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\xff\xff\xff\xff\x18\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\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\x67\x00\xff\xff\xff\xff\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x6c\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\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\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\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\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\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\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\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\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\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"# -alex_accept = listArray (0::Int,340) [[],[(AlexAccPred  (alex_action_25) ( not' eof ))],[],[(AlexAcc (alex_action_28))],[],[(AlexAcc (alex_action_27))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40))],[],[(AlexAccPred  (alex_action_0) (alexRightContext 37))],[(AlexAccPred  (alex_action_0) (alexRightContext 37)),(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_0) (alexRightContext 37))],[(AlexAccPred  (alex_action_0) (alexRightContext 37)),(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccSkip)],[(AlexAccPred  (alex_action_1) (alexRightContext 40)),(AlexAcc (alex_action_2))],[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccPred  (alex_action_4) ( inState code ))],[],[],[],[],[],[],[],[],[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_76))],[(AlexAccPred  (alex_action_20) ( not' (followedBy '#') ))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_9))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_10))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_11))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_12))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_14))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_13))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_15))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_16))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_17))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_18))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_19))],[(AlexAccPred  (alex_action_20) ( not' (followedBy '#') ))],[],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_82))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_82))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_82))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_82))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_21) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_23))],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_29))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_30))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_31))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_32))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_33))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_34))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_35))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_36))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_37))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_38))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_44))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_50))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_51))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_52))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_53))],[(AlexAcc (alex_action_53))],[(AlexAcc (alex_action_53))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_54))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_55))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_56))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_57))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_58))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_59))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_60))],[],[(AlexAcc (alex_action_61))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_62))],[(AlexAcc (alex_action_63))],[(AlexAcc (alex_action_64))],[],[(AlexAcc (alex_action_65))],[(AlexAcc (alex_action_66))],[(AlexAcc (alex_action_67))],[(AlexAcc (alex_action_68))],[(AlexAcc (alex_action_69))],[(AlexAcc (alex_action_70))],[(AlexAcc (alex_action_71))],[(AlexAcc (alex_action_72))],[(AlexAcc (alex_action_73))],[(AlexAcc (alex_action_74))],[(AlexAcc (alex_action_75))],[(AlexAcc (alex_action_77))],[(AlexAcc (alex_action_78))],[(AlexAcc (alex_action_79))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[],[],[]]-{-# LINE 191 "src/full/Agda/Syntax/Parser/Lexer.x" #-}+alex_accept = listArray (0::Int,329) [[],[(AlexAccPred  (alex_action_26) ( not' eof ))],[],[(AlexAcc (alex_action_29))],[],[(AlexAcc (alex_action_28))],[],[(AlexAccPred  (alex_action_1) (alexRightContext 25))],[(AlexAccPred  (alex_action_0) (alexRightContext 22)),(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_0) (alexRightContext 22)),(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[],[(AlexAccSkip)],[(AlexAccPred  (alex_action_1) (alexRightContext 25)),(AlexAcc (alex_action_2))],[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAccPred  (alex_action_4) ( inState code ))],[],[],[],[],[],[],[],[],[],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_7))],[(AlexAcc (alex_action_77))],[(AlexAccPred  (alex_action_21) ( not' (followedBy '#') ))],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_9))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_10))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_11))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_12))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_14))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_13))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_15))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_16))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_17))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_18))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_19))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAcc (alex_action_20))],[(AlexAccPred  (alex_action_21) ( not' (followedBy '#') ))],[],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_83))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_83))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_83))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof )),(AlexAcc (alex_action_83))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[(AlexAccPred  (alex_action_22) ( keepComments .&&. (followedBy '\n' .||. eof) )),(AlexAccSkipPred  ( followedBy '\n' .||. eof ))],[],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_24))],[(AlexAccSkip)],[(AlexAccSkip)],[(AlexAcc (alex_action_30))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_31))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_32))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_33))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_34))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_35))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_36))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_37))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_38))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_39))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_40))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_41))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_42))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_43))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_44))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_45))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_46))],[(AlexAcc (alex_action_47))],[(AlexAcc (alex_action_48))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_49))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_50))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_51))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_52))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_53))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_54))],[(AlexAcc (alex_action_54))],[(AlexAcc (alex_action_54))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_55))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_56))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_57))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_58))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_59))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_60))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_61))],[],[(AlexAcc (alex_action_62))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_63))],[(AlexAcc (alex_action_64))],[(AlexAcc (alex_action_65))],[],[(AlexAcc (alex_action_66))],[(AlexAcc (alex_action_67))],[(AlexAcc (alex_action_68))],[(AlexAcc (alex_action_69))],[(AlexAcc (alex_action_70))],[(AlexAcc (alex_action_71))],[(AlexAcc (alex_action_72))],[(AlexAcc (alex_action_73))],[(AlexAcc (alex_action_74))],[(AlexAcc (alex_action_75))],[(AlexAcc (alex_action_76))],[(AlexAcc (alex_action_78))],[(AlexAcc (alex_action_79))],[(AlexAcc (alex_action_80))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_81))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[(AlexAcc (alex_action_82))],[],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[(AlexAcc (alex_action_83))],[],[],[]]+{-# LINE 193 "src/full/Agda/Syntax/Parser/Lexer.x" #-}   -- | This is the initial state for parsing a literate file. Code blocks@@ -156,71 +157,72 @@ alex_action_12 =  keyword KwCOMPILED_DATA  alex_action_13 =  keyword KwCOMPILED_TYPE  alex_action_14 =  keyword KwCOMPILED -alex_action_15 =  keyword KwIMPORT -alex_action_16 =  keyword KwIMPOSSIBLE -alex_action_17 =  keyword KwETA -alex_action_18 =  keyword KwLINE -alex_action_19 =  withInterval $ TokString -alex_action_20 =  nestedComment -alex_action_21 =  withInterval TokComment -alex_action_23 =  begin bol_ -alex_action_25 =  offsideRule -alex_action_27 =  endWith newLayoutContext -alex_action_28 =  emptyLayout -alex_action_29 =  keyword KwLet -alex_action_30 =  keyword KwIn -alex_action_31 =  keyword KwWhere -alex_action_32 =  keyword KwField -alex_action_33 =  keyword KwWith -alex_action_34 =  keyword KwRewrite -alex_action_35 =  keyword KwPostulate -alex_action_36 =  keyword KwPrimitive -alex_action_37 =  keyword KwOpen -alex_action_38 =  keyword KwImport -alex_action_39 =  keyword KwModule -alex_action_40 =  keyword KwData -alex_action_41 =  keyword KwCoData -alex_action_42 =  keyword KwRecord -alex_action_43 =  keyword KwConstructor -alex_action_44 =  keyword KwInfix -alex_action_45 =  keyword KwInfixL -alex_action_46 =  keyword KwInfixR -alex_action_47 =  keyword KwMutual -alex_action_48 =  keyword KwAbstract -alex_action_49 =  keyword KwPrivate -alex_action_50 =  keyword KwSet -alex_action_51 =  keyword KwProp -alex_action_52 =  keyword KwForall -alex_action_53 =  withInterval' (read . drop 3) TokSetN -alex_action_54 =  keyword KwQuoteGoal -alex_action_55 =  keyword KwQuote -alex_action_56 =  keyword KwSyntax -alex_action_57 =  keyword KwUsing -alex_action_58 =  keyword KwHiding -alex_action_59 =  keyword KwRenaming -alex_action_60 =  endWith $ keyword KwTo -alex_action_61 =  keyword KwPublic -alex_action_62 =  hole -alex_action_63 =  symbol SymEllipsis -alex_action_64 =  symbol SymDot -alex_action_65 =  symbol SymSemi -alex_action_66 =  symbol SymColon -alex_action_67 =  symbol SymEqual -alex_action_68 =  symbol SymUnderscore -alex_action_69 =  symbol SymQuestionMark -alex_action_70 =  symbol SymBar -alex_action_71 =  symbol SymOpenParen -alex_action_72 =  symbol SymCloseParen -alex_action_73 =  symbol SymArrow -alex_action_74 =  symbol SymLambda -alex_action_75 =  symbol SymAs -alex_action_76 =  symbol SymOpenBrace -alex_action_77 =  symbol SymCloseBrace -alex_action_78 =  litChar -alex_action_79 =  litString -alex_action_80 =  literal LitInt -alex_action_81 =  literal LitFloat -alex_action_82 =  identifier +alex_action_15 =  keyword KwCOMPILED_EPIC +alex_action_16 =  keyword KwIMPORT +alex_action_17 =  keyword KwIMPOSSIBLE +alex_action_18 =  keyword KwETA +alex_action_19 =  keyword KwLINE +alex_action_20 =  withInterval $ TokString +alex_action_21 =  nestedComment +alex_action_22 =  withInterval TokComment +alex_action_24 =  begin bol_ +alex_action_26 =  offsideRule +alex_action_28 =  endWith newLayoutContext +alex_action_29 =  emptyLayout +alex_action_30 =  keyword KwLet +alex_action_31 =  keyword KwIn +alex_action_32 =  keyword KwWhere +alex_action_33 =  keyword KwField +alex_action_34 =  keyword KwWith +alex_action_35 =  keyword KwRewrite +alex_action_36 =  keyword KwPostulate +alex_action_37 =  keyword KwPrimitive +alex_action_38 =  keyword KwOpen +alex_action_39 =  keyword KwImport +alex_action_40 =  keyword KwModule +alex_action_41 =  keyword KwData +alex_action_42 =  keyword KwCoData +alex_action_43 =  keyword KwRecord +alex_action_44 =  keyword KwConstructor +alex_action_45 =  keyword KwInfix +alex_action_46 =  keyword KwInfixL +alex_action_47 =  keyword KwInfixR +alex_action_48 =  keyword KwMutual +alex_action_49 =  keyword KwAbstract +alex_action_50 =  keyword KwPrivate +alex_action_51 =  keyword KwSet +alex_action_52 =  keyword KwProp +alex_action_53 =  keyword KwForall +alex_action_54 =  withInterval' (read . drop 3) TokSetN +alex_action_55 =  keyword KwQuoteGoal +alex_action_56 =  keyword KwQuote +alex_action_57 =  keyword KwSyntax +alex_action_58 =  keyword KwUsing +alex_action_59 =  keyword KwHiding +alex_action_60 =  keyword KwRenaming +alex_action_61 =  endWith $ keyword KwTo +alex_action_62 =  keyword KwPublic +alex_action_63 =  hole +alex_action_64 =  symbol SymEllipsis +alex_action_65 =  symbol SymDot +alex_action_66 =  symbol SymSemi +alex_action_67 =  symbol SymColon +alex_action_68 =  symbol SymEqual +alex_action_69 =  symbol SymUnderscore +alex_action_70 =  symbol SymQuestionMark +alex_action_71 =  symbol SymBar +alex_action_72 =  symbol SymOpenParen +alex_action_73 =  symbol SymCloseParen +alex_action_74 =  symbol SymArrow +alex_action_75 =  symbol SymLambda +alex_action_76 =  symbol SymAs +alex_action_77 =  symbol SymOpenBrace +alex_action_78 =  symbol SymCloseBrace +alex_action_79 =  litChar +alex_action_80 =  litString +alex_action_81 =  literal LitInt +alex_action_82 =  literal LitFloat +alex_action_83 =  identifier  {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} {-# LINE 1 "<built-in>" #-}@@ -235,9 +237,9 @@ -- ----------------------------------------------------------------------------- -- INTERNALS and main scanner engine -{-# LINE 35 "templates/GenericTemplate.hs" #-}+{-# LINE 37 "templates/GenericTemplate.hs" #-} -{-# LINE 45 "templates/GenericTemplate.hs" #-}+{-# LINE 47 "templates/GenericTemplate.hs" #-}   data AlexAddr = AlexA# Addr#@@ -322,17 +324,17 @@  				   AlexError input' -	(AlexLastSkip input len, _) ->+	(AlexLastSkip input'' len, _) ->   -		AlexSkip input len+		AlexSkip input'' len -	(AlexLastAcc k input len, _) ->+	(AlexLastAcc k input''' len, _) ->   -		AlexToken input len k+		AlexToken input''' len k   -- Push the input through the DFA, remembering the most recent accepting@@ -351,12 +353,12 @@   	let-		base   = alexIndexInt32OffAddr alex_base s-		(I# (ord_c)) = ord c-		offset = (base +# ord_c)-		check  = alexIndexInt16OffAddr alex_check offset+		!(base) = alexIndexInt32OffAddr alex_base s+		!((I# (ord_c))) = ord c+		!(offset) = (base +# ord_c)+		!(check)  = alexIndexInt16OffAddr alex_check offset 		-		new_s = if (offset >=# 0#) && (check ==# ord_c)+		!(new_s) = if (offset >=# 0#) && (check ==# ord_c) 			  then alexIndexInt16OffAddr alex_table offset 			  else alexIndexInt16OffAddr alex_deflt s 	in@@ -371,11 +373,11 @@ 	check_accs [] = last_acc 	check_accs (AlexAcc a : _) = AlexLastAcc a input (I# (len)) 	check_accs (AlexAccSkip : _)  = AlexLastSkip  input (I# (len))-	check_accs (AlexAccPred a pred : rest)-	   | pred user orig_input (I# (len)) input+	check_accs (AlexAccPred a predx : rest)+	   | predx user orig_input (I# (len)) input 	   = AlexLastAcc a input (I# (len))-	check_accs (AlexAccSkipPred pred : rest)-	   | pred user orig_input (I# (len)) input+	check_accs (AlexAccSkipPred predx : rest)+	   | predx user orig_input (I# (len)) input 	   = AlexLastSkip input (I# (len)) 	check_accs (_ : rest) = check_accs rest 
dist/build/Agda/Syntax/Parser/Parser.hs view
@@ -1,4106 +1,4207 @@-{-# OPTIONS -fglasgow-exts -cpp #-}-{-# OPTIONS -fno-warn-incomplete-patterns #-}-{-| The parser is generated by Happy (<http://www.haskell.org/happy>).--}-module Agda.Syntax.Parser.Parser (-      moduleParser-    , exprParser-    , tokensParser-    , tests-    ) where--import Control.Arrow-import Control.Monad-import Control.Monad.State-import Data.Char-import Data.List-import Data.Maybe-import qualified Data.Traversable as T--import Agda.Syntax.Position hiding (tests)-import Agda.Syntax.Parser.Monad-import Agda.Syntax.Parser.Lexer-import Agda.Syntax.Parser.Tokens-import Agda.Syntax.Concrete-import Agda.Syntax.Concrete.Name-import Agda.Syntax.Concrete.Pretty-import Agda.Syntax.Common-import Agda.Syntax.Fixity-import Agda.Syntax.Notation-import Agda.Syntax.Literal--import Agda.Utils.Monad-import Agda.Utils.QuickCheck-import Agda.Utils.TestHelpers-#if __GLASGOW_HASKELL__ >= 503-import Data.Array-#else-import Array-#endif-#if __GLASGOW_HASKELL__ >= 503-import GHC.Exts-#else-import GlaExts-#endif---- parser produced by Happy Version 1.17--newtype HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63 = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = GHC.Exts.Any-#else-type HappyAny = forall a . a-#endif-happyIn6 :: ([Token]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn6 x = unsafeCoerce# x-{-# INLINE happyIn6 #-}-happyOut6 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Token])-happyOut6 x = unsafeCoerce# x-{-# INLINE happyOut6 #-}-happyIn7 :: ([Token]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn7 x = unsafeCoerce# x-{-# INLINE happyIn7 #-}-happyOut7 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Token])-happyOut7 x = unsafeCoerce# x-{-# INLINE happyOut7 #-}-happyIn8 :: (Token) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn8 x = unsafeCoerce# x-{-# INLINE happyIn8 #-}-happyOut8 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Token)-happyOut8 x = unsafeCoerce# x-{-# INLINE happyOut8 #-}-happyIn9 :: (()) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn9 x = unsafeCoerce# x-{-# INLINE happyIn9 #-}-happyOut9 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (())-happyOut9 x = unsafeCoerce# x-{-# INLINE happyOut9 #-}-happyIn10 :: (([Pragma], [Declaration])) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn10 x = unsafeCoerce# x-{-# INLINE happyIn10 #-}-happyOut10 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (([Pragma], [Declaration]))-happyOut10 x = unsafeCoerce# x-{-# INLINE happyOut10 #-}-happyIn11 :: t11 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn11 x = unsafeCoerce# x-{-# INLINE happyIn11 #-}-happyOut11 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t11-happyOut11 x = unsafeCoerce# x-{-# INLINE happyOut11 #-}-happyIn12 :: t12 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn12 x = unsafeCoerce# x-{-# INLINE happyIn12 #-}-happyOut12 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t12-happyOut12 x = unsafeCoerce# x-{-# INLINE happyOut12 #-}-happyIn13 :: t13 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn13 x = unsafeCoerce# x-{-# INLINE happyIn13 #-}-happyOut13 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t13-happyOut13 x = unsafeCoerce# x-{-# INLINE happyOut13 #-}-happyIn14 :: (()) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn14 x = unsafeCoerce# x-{-# INLINE happyIn14 #-}-happyOut14 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (())-happyOut14 x = unsafeCoerce# x-{-# INLINE happyOut14 #-}-happyIn15 :: (Integer) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn15 x = unsafeCoerce# x-{-# INLINE happyIn15 #-}-happyOut15 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Integer)-happyOut15 x = unsafeCoerce# x-{-# INLINE happyOut15 #-}-happyIn16 :: (Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn16 x = unsafeCoerce# x-{-# INLINE happyIn16 #-}-happyOut16 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Name)-happyOut16 x = unsafeCoerce# x-{-# INLINE happyOut16 #-}-happyIn17 :: ([Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn17 x = unsafeCoerce# x-{-# INLINE happyIn17 #-}-happyOut17 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Name])-happyOut17 x = unsafeCoerce# x-{-# INLINE happyOut17 #-}-happyIn18 :: (Arg Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn18 x = unsafeCoerce# x-{-# INLINE happyIn18 #-}-happyOut18 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Arg Name)-happyOut18 x = unsafeCoerce# x-{-# INLINE happyOut18 #-}-happyIn19 :: ([Arg Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn19 x = unsafeCoerce# x-{-# INLINE happyIn19 #-}-happyOut19 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg Name])-happyOut19 x = unsafeCoerce# x-{-# INLINE happyOut19 #-}-happyIn20 :: ([Arg Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn20 x = unsafeCoerce# x-{-# INLINE happyIn20 #-}-happyOut20 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg Name])-happyOut20 x = unsafeCoerce# x-{-# INLINE happyOut20 #-}-happyIn21 :: (QName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn21 x = unsafeCoerce# x-{-# INLINE happyIn21 #-}-happyOut21 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (QName)-happyOut21 x = unsafeCoerce# x-{-# INLINE happyOut21 #-}-happyIn22 :: (QName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn22 x = unsafeCoerce# x-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (QName)-happyOut22 x = unsafeCoerce# x-{-# INLINE happyOut22 #-}-happyIn23 :: (Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn23 x = unsafeCoerce# x-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Name)-happyOut23 x = unsafeCoerce# x-{-# INLINE happyOut23 #-}-happyIn24 :: ([Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn24 x = unsafeCoerce# x-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Name])-happyOut24 x = unsafeCoerce# x-{-# INLINE happyOut24 #-}-happyIn25 :: ([Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn25 x = unsafeCoerce# x-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Name])-happyOut25 x = unsafeCoerce# x-{-# INLINE happyOut25 #-}-happyIn26 :: ([String]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn26 x = unsafeCoerce# x-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([String])-happyOut26 x = unsafeCoerce# x-{-# INLINE happyOut26 #-}-happyIn27 :: (QName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn27 x = unsafeCoerce# x-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (QName)-happyOut27 x = unsafeCoerce# x-{-# INLINE happyOut27 #-}-happyIn28 :: (Expr) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn28 x = unsafeCoerce# x-{-# INLINE happyIn28 #-}-happyOut28 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Expr)-happyOut28 x = unsafeCoerce# x-{-# INLINE happyOut28 #-}-happyIn29 :: t29 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn29 x = unsafeCoerce# x-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t29-happyOut29 x = unsafeCoerce# x-{-# INLINE happyOut29 #-}-happyIn30 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn30 x = unsafeCoerce# x-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])-happyOut30 x = unsafeCoerce# x-{-# INLINE happyOut30 #-}-happyIn31 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn31 x = unsafeCoerce# x-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])-happyOut31 x = unsafeCoerce# x-{-# INLINE happyOut31 #-}-happyIn32 :: t32 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn32 x = unsafeCoerce# x-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t32-happyOut32 x = unsafeCoerce# x-{-# INLINE happyOut32 #-}-happyIn33 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn33 x = unsafeCoerce# x-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])-happyOut33 x = unsafeCoerce# x-{-# INLINE happyOut33 #-}-happyIn34 :: t34 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn34 x = unsafeCoerce# x-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t34-happyOut34 x = unsafeCoerce# x-{-# INLINE happyOut34 #-}-happyIn35 :: ([(Name, Expr)]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn35 x = unsafeCoerce# x-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([(Name, Expr)])-happyOut35 x = unsafeCoerce# x-{-# INLINE happyOut35 #-}-happyIn36 :: ([(Name, Expr)]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn36 x = unsafeCoerce# x-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([(Name, Expr)])-happyOut36 x = unsafeCoerce# x-{-# INLINE happyOut36 #-}-happyIn37 :: ((Name, Expr)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn37 x = unsafeCoerce# x-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((Name, Expr))-happyOut37 x = unsafeCoerce# x-{-# INLINE happyOut37 #-}-happyIn38 :: t38 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn38 x = unsafeCoerce# x-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t38-happyOut38 x = unsafeCoerce# x-{-# INLINE happyOut38 #-}-happyIn39 :: t39 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn39 x = unsafeCoerce# x-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t39-happyOut39 x = unsafeCoerce# x-{-# INLINE happyOut39 #-}-happyIn40 :: ([TypedBindings]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn40 x = unsafeCoerce# x-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypedBindings])-happyOut40 x = unsafeCoerce# x-{-# INLINE happyOut40 #-}-happyIn41 :: (TypedBindings) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn41 x = unsafeCoerce# x-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (TypedBindings)-happyOut41 x = unsafeCoerce# x-{-# INLINE happyOut41 #-}-happyIn42 :: ([TypedBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn42 x = unsafeCoerce# x-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypedBinding])-happyOut42 x = unsafeCoerce# x-{-# INLINE happyOut42 #-}-happyIn43 :: ([TypedBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn43 x = unsafeCoerce# x-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypedBinding])-happyOut43 x = unsafeCoerce# x-{-# INLINE happyOut43 #-}-happyIn44 :: (TypedBinding) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn44 x = unsafeCoerce# x-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (TypedBinding)-happyOut44 x = unsafeCoerce# x-{-# INLINE happyOut44 #-}-happyIn45 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn45 x = unsafeCoerce# x-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])-happyOut45 x = unsafeCoerce# x-{-# INLINE happyOut45 #-}-happyIn46 :: (([LamBinding], Hiding)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn46 x = unsafeCoerce# x-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (([LamBinding], Hiding))-happyOut46 x = unsafeCoerce# x-{-# INLINE happyOut46 #-}-happyIn47 :: ([Either Hiding LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn47 x = unsafeCoerce# x-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Either Hiding LamBinding])-happyOut47 x = unsafeCoerce# x-{-# INLINE happyOut47 #-}-happyIn48 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn48 x = unsafeCoerce# x-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])-happyOut48 x = unsafeCoerce# x-{-# INLINE happyOut48 #-}-happyIn49 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn49 x = unsafeCoerce# x-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])-happyOut49 x = unsafeCoerce# x-{-# INLINE happyOut49 #-}-happyIn50 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn50 x = unsafeCoerce# x-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])-happyOut50 x = unsafeCoerce# x-{-# INLINE happyOut50 #-}-happyIn51 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn51 x = unsafeCoerce# x-{-# INLINE happyIn51 #-}-happyOut51 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])-happyOut51 x = unsafeCoerce# x-{-# INLINE happyOut51 #-}-happyIn52 :: ((Maybe AsName, ImportDirective)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn52 x = unsafeCoerce# x-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((Maybe AsName, ImportDirective))-happyOut52 x = unsafeCoerce# x-{-# INLINE happyOut52 #-}-happyIn53 :: (ImportDirective) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn53 x = unsafeCoerce# x-{-# INLINE happyIn53 #-}-happyOut53 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportDirective)-happyOut53 x = unsafeCoerce# x-{-# INLINE happyOut53 #-}-happyIn54 :: (ImportDirective) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn54 x = unsafeCoerce# x-{-# INLINE happyIn54 #-}-happyOut54 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportDirective)-happyOut54 x = unsafeCoerce# x-{-# INLINE happyOut54 #-}-happyIn55 :: (ImportDirective) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn55 x = unsafeCoerce# x-{-# INLINE happyIn55 #-}-happyOut55 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportDirective)-happyOut55 x = unsafeCoerce# x-{-# INLINE happyOut55 #-}-happyIn56 :: ((UsingOrHiding , Range)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn56 x = unsafeCoerce# x-{-# INLINE happyIn56 #-}-happyOut56 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((UsingOrHiding , Range))-happyOut56 x = unsafeCoerce# x-{-# INLINE happyOut56 #-}-happyIn57 :: (([Renaming] , Range)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn57 x = unsafeCoerce# x-{-# INLINE happyIn57 #-}-happyOut57 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (([Renaming] , Range))-happyOut57 x = unsafeCoerce# x-{-# INLINE happyOut57 #-}-happyIn58 :: ([Renaming]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn58 x = unsafeCoerce# x-{-# INLINE happyIn58 #-}-happyOut58 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Renaming])-happyOut58 x = unsafeCoerce# x-{-# INLINE happyOut58 #-}-happyIn59 :: (Renaming) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn59 x = unsafeCoerce# x-{-# INLINE happyIn59 #-}-happyOut59 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Renaming)-happyOut59 x = unsafeCoerce# x-{-# INLINE happyOut59 #-}-happyIn60 :: (ImportedName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn60 x = unsafeCoerce# x-{-# INLINE happyIn60 #-}-happyOut60 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportedName)-happyOut60 x = unsafeCoerce# x-{-# INLINE happyOut60 #-}-happyIn61 :: (ImportedName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn61 x = unsafeCoerce# x-{-# INLINE happyIn61 #-}-happyOut61 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportedName)-happyOut61 x = unsafeCoerce# x-{-# INLINE happyOut61 #-}-happyIn62 :: ([ImportedName]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn62 x = unsafeCoerce# x-{-# INLINE happyIn62 #-}-happyOut62 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([ImportedName])-happyOut62 x = unsafeCoerce# x-{-# INLINE happyOut62 #-}-happyIn63 :: t63 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn63 x = unsafeCoerce# x-{-# INLINE happyIn63 #-}-happyOut63 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t63-happyOut63 x = unsafeCoerce# x-{-# INLINE happyOut63 #-}-happyIn64 :: (LHS) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn64 x = unsafeCoerce# x-{-# INLINE happyIn64 #-}-happyOut64 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (LHS)-happyOut64 x = unsafeCoerce# x-{-# INLINE happyOut64 #-}-happyIn65 :: ([Pattern]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn65 x = unsafeCoerce# x-{-# INLINE happyIn65 #-}-happyOut65 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Pattern])-happyOut65 x = unsafeCoerce# x-{-# INLINE happyOut65 #-}-happyIn66 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn66 x = unsafeCoerce# x-{-# INLINE happyIn66 #-}-happyOut66 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])-happyOut66 x = unsafeCoerce# x-{-# INLINE happyOut66 #-}-happyIn67 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn67 x = unsafeCoerce# x-{-# INLINE happyIn67 #-}-happyOut67 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])-happyOut67 x = unsafeCoerce# x-{-# INLINE happyOut67 #-}-happyIn68 :: (WhereClause) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn68 x = unsafeCoerce# x-{-# INLINE happyIn68 #-}-happyOut68 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (WhereClause)-happyOut68 x = unsafeCoerce# x-{-# INLINE happyOut68 #-}-happyIn69 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn69 x = unsafeCoerce# x-{-# INLINE happyIn69 #-}-happyOut69 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])-happyOut69 x = unsafeCoerce# x-{-# INLINE happyOut69 #-}-happyIn70 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn70 x = unsafeCoerce# x-{-# INLINE happyIn70 #-}-happyOut70 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut70 x = unsafeCoerce# x-{-# INLINE happyOut70 #-}-happyIn71 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn71 x = unsafeCoerce# x-{-# INLINE happyIn71 #-}-happyOut71 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])-happyOut71 x = unsafeCoerce# x-{-# INLINE happyOut71 #-}-happyIn72 :: ([Arg Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn72 x = unsafeCoerce# x-{-# INLINE happyIn72 #-}-happyOut72 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg Declaration])-happyOut72 x = unsafeCoerce# x-{-# INLINE happyOut72 #-}-happyIn73 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn73 x = unsafeCoerce# x-{-# INLINE happyIn73 #-}-happyOut73 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut73 x = unsafeCoerce# x-{-# INLINE happyOut73 #-}-happyIn74 :: (RHS) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn74 x = unsafeCoerce# x-{-# INLINE happyIn74 #-}-happyOut74 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (RHS)-happyOut74 x = unsafeCoerce# x-{-# INLINE happyOut74 #-}-happyIn75 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn75 x = unsafeCoerce# x-{-# INLINE happyIn75 #-}-happyOut75 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut75 x = unsafeCoerce# x-{-# INLINE happyOut75 #-}-happyIn76 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn76 x = unsafeCoerce# x-{-# INLINE happyIn76 #-}-happyOut76 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut76 x = unsafeCoerce# x-{-# INLINE happyOut76 #-}-happyIn77 :: (Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn77 x = unsafeCoerce# x-{-# INLINE happyIn77 #-}-happyOut77 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Name)-happyOut77 x = unsafeCoerce# x-{-# INLINE happyOut77 #-}-happyIn78 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn78 x = unsafeCoerce# x-{-# INLINE happyIn78 #-}-happyOut78 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut78 x = unsafeCoerce# x-{-# INLINE happyOut78 #-}-happyIn79 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn79 x = unsafeCoerce# x-{-# INLINE happyIn79 #-}-happyOut79 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])-happyOut79 x = unsafeCoerce# x-{-# INLINE happyOut79 #-}-happyIn80 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn80 x = unsafeCoerce# x-{-# INLINE happyIn80 #-}-happyOut80 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut80 x = unsafeCoerce# x-{-# INLINE happyOut80 #-}-happyIn81 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn81 x = unsafeCoerce# x-{-# INLINE happyIn81 #-}-happyOut81 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut81 x = unsafeCoerce# x-{-# INLINE happyOut81 #-}-happyIn82 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn82 x = unsafeCoerce# x-{-# INLINE happyIn82 #-}-happyOut82 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut82 x = unsafeCoerce# x-{-# INLINE happyOut82 #-}-happyIn83 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn83 x = unsafeCoerce# x-{-# INLINE happyIn83 #-}-happyOut83 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut83 x = unsafeCoerce# x-{-# INLINE happyOut83 #-}-happyIn84 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn84 x = unsafeCoerce# x-{-# INLINE happyIn84 #-}-happyOut84 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut84 x = unsafeCoerce# x-{-# INLINE happyOut84 #-}-happyIn85 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn85 x = unsafeCoerce# x-{-# INLINE happyIn85 #-}-happyOut85 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut85 x = unsafeCoerce# x-{-# INLINE happyOut85 #-}-happyIn86 :: ([String]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn86 x = unsafeCoerce# x-{-# INLINE happyIn86 #-}-happyOut86 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([String])-happyOut86 x = unsafeCoerce# x-{-# INLINE happyOut86 #-}-happyIn87 :: ([HoleName]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn87 x = unsafeCoerce# x-{-# INLINE happyIn87 #-}-happyOut87 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([HoleName])-happyOut87 x = unsafeCoerce# x-{-# INLINE happyOut87 #-}-happyIn88 :: (HoleName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn88 x = unsafeCoerce# x-{-# INLINE happyIn88 #-}-happyOut88 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (HoleName)-happyOut88 x = unsafeCoerce# x-{-# INLINE happyOut88 #-}-happyIn89 :: (String) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn89 x = unsafeCoerce# x-{-# INLINE happyIn89 #-}-happyOut89 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (String)-happyOut89 x = unsafeCoerce# x-{-# INLINE happyOut89 #-}-happyIn90 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn90 x = unsafeCoerce# x-{-# INLINE happyIn90 #-}-happyOut90 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut90 x = unsafeCoerce# x-{-# INLINE happyOut90 #-}-happyIn91 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn91 x = unsafeCoerce# x-{-# INLINE happyIn91 #-}-happyOut91 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])-happyOut91 x = unsafeCoerce# x-{-# INLINE happyOut91 #-}-happyIn92 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn92 x = unsafeCoerce# x-{-# INLINE happyIn92 #-}-happyOut92 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut92 x = unsafeCoerce# x-{-# INLINE happyOut92 #-}-happyIn93 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn93 x = unsafeCoerce# x-{-# INLINE happyIn93 #-}-happyOut93 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut93 x = unsafeCoerce# x-{-# INLINE happyOut93 #-}-happyIn94 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn94 x = unsafeCoerce# x-{-# INLINE happyIn94 #-}-happyOut94 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut94 x = unsafeCoerce# x-{-# INLINE happyOut94 #-}-happyIn95 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn95 x = unsafeCoerce# x-{-# INLINE happyIn95 #-}-happyOut95 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])-happyOut95 x = unsafeCoerce# x-{-# INLINE happyOut95 #-}-happyIn96 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn96 x = unsafeCoerce# x-{-# INLINE happyIn96 #-}-happyOut96 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut96 x = unsafeCoerce# x-{-# INLINE happyOut96 #-}-happyIn97 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn97 x = unsafeCoerce# x-{-# INLINE happyIn97 #-}-happyOut97 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)-happyOut97 x = unsafeCoerce# x-{-# INLINE happyOut97 #-}-happyIn98 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn98 x = unsafeCoerce# x-{-# INLINE happyIn98 #-}-happyOut98 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut98 x = unsafeCoerce# x-{-# INLINE happyOut98 #-}-happyIn99 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn99 x = unsafeCoerce# x-{-# INLINE happyIn99 #-}-happyOut99 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut99 x = unsafeCoerce# x-{-# INLINE happyOut99 #-}-happyIn100 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn100 x = unsafeCoerce# x-{-# INLINE happyIn100 #-}-happyOut100 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut100 x = unsafeCoerce# x-{-# INLINE happyOut100 #-}-happyIn101 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn101 x = unsafeCoerce# x-{-# INLINE happyIn101 #-}-happyOut101 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut101 x = unsafeCoerce# x-{-# INLINE happyOut101 #-}-happyIn102 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn102 x = unsafeCoerce# x-{-# INLINE happyIn102 #-}-happyOut102 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut102 x = unsafeCoerce# x-{-# INLINE happyOut102 #-}-happyIn103 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn103 x = unsafeCoerce# x-{-# INLINE happyIn103 #-}-happyOut103 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut103 x = unsafeCoerce# x-{-# INLINE happyOut103 #-}-happyIn104 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn104 x = unsafeCoerce# x-{-# INLINE happyIn104 #-}-happyOut104 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut104 x = unsafeCoerce# x-{-# INLINE happyOut104 #-}-happyIn105 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn105 x = unsafeCoerce# x-{-# INLINE happyIn105 #-}-happyOut105 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut105 x = unsafeCoerce# x-{-# INLINE happyOut105 #-}-happyIn106 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn106 x = unsafeCoerce# x-{-# INLINE happyIn106 #-}-happyOut106 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut106 x = unsafeCoerce# x-{-# INLINE happyOut106 #-}-happyIn107 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn107 x = unsafeCoerce# x-{-# INLINE happyIn107 #-}-happyOut107 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)-happyOut107 x = unsafeCoerce# x-{-# INLINE happyOut107 #-}-happyIn108 :: ([TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn108 x = unsafeCoerce# x-{-# INLINE happyIn108 #-}-happyOut108 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypeSignature])-happyOut108 x = unsafeCoerce# x-{-# INLINE happyOut108 #-}-happyIn109 :: ([TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn109 x = unsafeCoerce# x-{-# INLINE happyIn109 #-}-happyOut109 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypeSignature])-happyOut109 x = unsafeCoerce# x-{-# INLINE happyOut109 #-}-happyIn110 :: ([Arg TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn110 x = unsafeCoerce# x-{-# INLINE happyIn110 #-}-happyOut110 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg TypeSignature])-happyOut110 x = unsafeCoerce# x-{-# INLINE happyOut110 #-}-happyIn111 :: ([Arg TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn111 x = unsafeCoerce# x-{-# INLINE happyIn111 #-}-happyOut111 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg TypeSignature])-happyOut111 x = unsafeCoerce# x-{-# INLINE happyOut111 #-}-happyIn112 :: ([Constructor]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn112 x = unsafeCoerce# x-{-# INLINE happyIn112 #-}-happyOut112 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Constructor])-happyOut112 x = unsafeCoerce# x-{-# INLINE happyOut112 #-}-happyIn113 :: ((Maybe Name, [Declaration])) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn113 x = unsafeCoerce# x-{-# INLINE happyIn113 #-}-happyOut113 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((Maybe Name, [Declaration]))-happyOut113 x = unsafeCoerce# x-{-# INLINE happyOut113 #-}-happyIn114 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn114 x = unsafeCoerce# x-{-# INLINE happyIn114 #-}-happyOut114 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])-happyOut114 x = unsafeCoerce# x-{-# INLINE happyOut114 #-}-happyIn115 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn115 x = unsafeCoerce# x-{-# INLINE happyIn115 #-}-happyOut115 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])-happyOut115 x = unsafeCoerce# x-{-# INLINE happyOut115 #-}-happyIn116 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyIn116 x = unsafeCoerce# x-{-# INLINE happyIn116 #-}-happyOut116 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])-happyOut116 x = unsafeCoerce# x-{-# INLINE happyOut116 #-}-happyInTok :: Token -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)-happyInTok x = unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> Token-happyOutTok x = unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\x00\x00\xac\x03\x17\x04\x00\x00\x24\x02\xb5\x00\xfc\x03\x0b\x04\x00\x00\x0b\x04\x03\x04\x00\x00\xf3\x03\x00\x00\x00\x00\x00\x00\x00\x00\x56\x01\x1e\x03\xac\x03\xf8\x03\x00\x00\xfd\xff\x00\x04\xfb\x03\x00\x00\x00\x00\x30\x01\xef\x03\x00\x00\x00\x00\xf0\x03\x00\x00\x00\x00\xea\x00\xfb\x02\xda\x02\x00\x00\x00\x00\x00\x00\xea\x03\xee\xff\xf7\x03\xf2\x03\xf6\x03\xee\x03\xf1\x03\x00\x00\xec\x03\xeb\x03\x00\x00\x00\x00\x00\x00\xea\x00\xac\x03\x00\x00\xe9\x03\xea\x00\x00\x00\x8b\x03\x68\x03\x00\x00\xb1\x02\x90\x02\x19\x04\x88\x00\x47\x03\xe7\x03\x88\x00\xcf\x03\xcf\x03\xd7\x03\xda\x03\x0f\x04\x00\x00\xcf\x03\x00\x00\x00\x00\x00\x00\x00\x00\x47\x03\xcf\x03\xf0\x03\x00\x00\x00\x00\xe4\x03\xe4\x03\x00\x00\xe4\x03\x00\x00\xfa\xff\x70\x02\x70\x02\xe6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x03\x00\x00\x00\x00\x88\x00\xac\x00\xf0\x03\x70\x02\x00\x00\xb4\x01\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x03\x00\x00\x00\x00\xcf\x03\x47\x03\xd5\x03\xce\x03\xc3\x03\x00\x00\xcd\x03\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x03\x00\x00\x00\x00\x47\x03\x47\x03\xc0\x03\x00\x00\xcb\x03\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x03\x00\x00\x47\x03\x67\x02\x85\x02\x00\x00\xac\x00\xf0\x03\x06\x01\x00\x00\x00\x00\x00\x00\x00\x00\xdd\x03\x00\x00\xb7\x03\xb1\x03\xaf\x03\x1b\x03\xa4\x03\x88\x00\xdc\x03\x88\x00\x9d\x03\x99\x03\x00\x00\x00\x00\x00\x00\xb0\x03\x00\x00\x06\x01\x00\x00\xc8\x03\x2a\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xae\x03\x00\x00\xa8\x00\xd1\x03\xa1\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x03\xa5\x03\xc5\x00\x92\x03\x92\x03\x92\x03\x22\x01\xa3\x03\x87\x03\x87\x03\x87\x03\x97\x03\x97\x03\x97\x03\x86\x03\x8f\x03\x93\x06\x00\x00\x00\x00\x47\x03\x00\x00\x00\x00\x7e\x03\x78\x03\x7c\x03\x77\x03\x77\x03\x77\x03\x77\x03\xb2\x03\xf0\x03\x96\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x95\x00\x95\x00\x7b\x03\x00\x00\x88\x00\x88\x00\x88\x00\x88\x00\x70\x03\x7a\x03\x00\x00\x00\x00\x29\x00\x47\x03\xad\x03\x47\x03\x47\x03\x67\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x03\x74\x03\x00\x00\x6e\x03\x72\x03\x64\x03\x6d\x03\x75\x03\x91\x03\x00\x00\x00\x00\x65\x03\x00\x00\x00\x00\x71\x03\x58\x03\x58\x03\x88\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x03\x00\x00\x00\x00\x6c\x03\x54\x03\x69\x03\x88\x00\x28\x00\x63\x03\x5f\x03\x5e\x03\x61\x03\x95\x00\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\x00\x00\x55\x03\x00\x00\x4c\x03\xf0\x03\x6f\x03\x44\x03\x00\x00\x3d\x03\x3b\x03\x46\x03\x00\x00\x42\x03\x3a\x03\x38\x03\x00\x00\x00\x00\x36\x03\x34\x03\x33\x03\x00\x00\x00\x00\x31\x03\x00\x00\x31\x03\x00\x00\xde\x00\x85\x02\x47\x03\x47\x03\x47\x03\x43\x03\x47\x03\x3c\x03\x2b\x03\x85\x02\x67\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x01\x00\x00\x3e\x03\x21\x00\x3e\x03\x27\x03\x37\x03\x00\x00\x47\x03\x06\x01\x00\x00\x62\x03\x5d\x03\x5a\x03\x21\x00\x32\x03\x00\x00\xde\x00\x2c\x03\x00\x00\xec\x00\xe8\xff\x1a\x03\x00\x00\x20\x03\x00\x00\x19\x03\x00\x00\x00\x00\x00\x00\x16\x03\x00\x00\xe8\xff\x14\x03\x09\x03\x00\x00\x09\x03\x47\x03\x00\x00\xde\x00\x00\x00\x13\x03\x13\x03\x13\x03\x00\x00\x06\x01\x47\x03\x00\x00\xf5\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x02\x00\x00\x00\x00\x00\x00\xe5\x02\x00\x00\x00\x00\x00\x00\xfd\x02\xde\x00\x00\x00\xf9\x02\x00\x00\x00\x00\xde\x00\xf4\x02\xf4\x02\x1b\x00\x9d\x01\x85\x02\x00\x00\x21\x00\x00\x00\x85\x02\xd9\x02\x00\x00\x00\x00\x21\x00\xe8\x02\x00\x00\x85\x02\x00\x00\x21\x00\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x74\x02\x8f\x06\x0f\x00\xf2\x02\x0e\x03\x79\x01\x00\x00\x07\x03\x00\x00\x06\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x01\x7a\x06\x00\x00\x00\x00\xc3\x01\x0e\x00\x00\x00\x00\x00\x00\x00\xc1\x01\xe6\x02\x00\x00\x00\x00\xb6\x00\x00\x00\x00\x00\x31\x01\x78\x04\x5d\x04\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\x93\x02\x65\x06\x00\x00\x00\x00\x4b\x01\x00\x00\xb5\x04\xa1\x04\x00\x00\x50\x06\x3b\x06\x00\x00\x0b\x03\x26\x06\x00\x00\xfe\x02\x93\x04\xfa\x03\x34\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x11\x06\xd8\x03\x23\x00\x00\x00\x00\x00\x2d\x00\x2c\x00\x00\x00\x06\x00\x00\x00\xf0\x02\x7a\x02\x62\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x02\x00\x00\x00\x00\xcc\x02\xb8\x04\x33\x00\x07\x02\x00\x00\xef\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x01\xfc\x05\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x04\x00\x00\x00\x00\xd2\x05\xbd\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\xa8\x05\x37\x01\x84\x02\x00\x00\x11\x03\x32\x00\xf6\x04\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x02\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x02\xdc\x02\xc1\x02\x00\x00\x92\x02\x00\x00\xc8\x02\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\xe1\x04\x00\x00\xd8\x00\x93\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x02\xd2\x02\x00\x00\x00\x00\x8b\x02\x9b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x1c\x00\xf4\x01\xbc\x02\xbb\x02\xaa\x02\x9c\x02\x19\x00\x98\x02\x96\x02\x91\x02\x0d\x00\x0c\x00\x0b\x00\x8d\x02\x57\x02\x00\x00\x00\x00\x00\x00\x23\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x02\x73\x02\x71\x02\x0e\x02\xde\x01\xc5\x02\x18\x02\x00\x00\x00\x00\x00\x00\xb6\x01\x00\x00\xb0\x01\x0e\x01\x00\x00\x00\x00\x69\x02\xe3\x01\x5b\x01\x33\x01\x0f\x02\x00\x00\x00\x00\x00\x00\xd6\x01\x93\x05\xd0\x01\x7e\x05\x69\x05\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\xf6\x01\x00\x00\x00\x00\x00\x00\xe7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xc2\x01\x89\x01\xd3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x0a\x00\x87\x01\x17\x00\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x36\x00\x00\x00\x00\x00\x00\x00\x6c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4f\x01\x9f\x02\x3f\x01\x65\x01\x00\x00\x00\x00\x50\x01\x00\x00\x00\x00\x00\x00\x48\x01\x00\x00\x00\x00\x00\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x04\x01\x00\x00\x3b\x00\x00\x00\x27\x00\x04\x02\x3f\x05\x2a\x05\x15\x05\x05\x00\x00\x05\x00\x00\x90\x00\xfe\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x09\x00\x23\x01\x12\x01\xb8\x00\x00\x00\x00\x00\xeb\x04\xcc\x04\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\xf2\x00\x00\x00\x12\x02\x00\x00\x00\x00\xdf\x00\x40\x03\x87\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x00\x00\xf1\x02\x00\x00\x9a\x00\x00\x00\x3a\x00\xd6\x04\x00\x00\x18\x00\x00\x00\x03\x00\x16\x00\x15\x00\x00\x00\x78\x01\xbc\x04\x00\x00\x4b\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\xce\x01\x00\x00\x00\x00\x00\x00\x00\x00\x61\x01\xff\xff\x04\x00\x1f\x00\x4a\x00\xdc\x01\x00\x00\x61\x00\x00\x00\x63\x01\x52\x00\x00\x00\x00\x00\x47\x00\xfe\xff\x00\x00\xe7\x00\x00\x00\x10\x00\x00\x00\x00\x00"#--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\xfa\xff\x00\x00\xb6\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xb6\xff\xb3\xff\xb6\xff\x9d\xff\x83\xff\x00\x00\x90\xff\x8f\xff\x8d\xff\x8c\xff\x00\x00\x87\xff\x00\x00\x00\x00\x6d\xff\x6b\xff\xb6\xff\x00\x00\x7f\xff\x7e\xff\x00\x00\x00\x00\x7d\xff\x7c\xff\x00\x00\x80\xff\x81\xff\x00\x00\x00\x00\x00\x00\xab\xff\x9e\xff\x82\xff\x00\x00\x9d\xff\x00\x00\x00\x00\x8d\xff\x00\x00\x68\xff\x78\xff\x00\x00\x00\x00\x77\xff\x9b\xff\x52\xff\x5d\xff\x00\x00\x89\xff\x61\xff\x5e\xff\x9a\xff\x00\x00\x00\x00\x75\xff\x00\x00\x00\x00\x00\x00\x56\xff\x00\x00\x00\x00\x57\xff\x00\x00\x00\x00\x73\xff\x00\x00\x00\x00\x6c\xff\x00\x00\x6e\xff\x93\xff\x8b\xff\x84\xff\x00\x00\x00\x00\x00\x00\xb5\xff\xb4\xff\xb6\xff\xb6\xff\xfa\xfe\xb6\xff\xf5\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf2\xff\xf1\xff\xf0\xff\xef\xff\xee\xff\xed\xff\xec\xff\xeb\xff\xea\xff\xe9\xff\xe8\xff\xe7\xff\xe6\xff\xe5\xff\xe4\xff\xe3\xff\xe2\xff\xe1\xff\xe0\xff\xdf\xff\xde\xff\xdd\xff\xdc\xff\xdb\xff\xda\xff\xd9\xff\xd5\xff\xd4\xff\xd8\xff\xd7\xff\xd6\xff\xd3\xff\xd2\xff\xd1\xff\xd0\xff\xcf\xff\xce\xff\xcd\xff\xcc\xff\xcb\xff\xca\xff\xc9\xff\xc8\xff\xc7\xff\xc6\xff\xc5\xff\xc4\xff\xc3\xff\xc2\xff\xc1\xff\xc0\xff\xbf\xff\xbe\xff\xbd\xff\xbc\xff\xbb\xff\xba\xff\xb9\xff\xb8\xff\xb7\xff\x96\xff\x9d\xff\x9c\xff\x53\xff\x48\xff\x01\xff\x00\x00\xb2\xff\x00\x00\xf9\xfe\xf8\xfe\x76\xff\x8e\xff\x00\x00\x91\xff\x97\xff\x87\xff\x00\x00\xb6\xff\x00\x00\x00\x00\x72\xff\x71\xff\x00\x00\x59\xff\x5a\xff\x92\xff\x58\xff\x00\x00\x5b\xff\x5c\xff\x60\xff\x62\xff\x8a\xff\x5f\xff\x6a\xff\x79\xff\x00\x00\x69\xff\x7b\xff\x00\x00\x00\x00\x00\x00\x63\xff\x64\xff\x66\xff\x67\xff\x86\xff\x51\xff\x00\x00\x74\xff\x00\x00\x00\x00\xb6\xff\x88\xff\x48\xff\x01\xff\x48\xff\xfd\xfe\x50\xff\x4e\xff\x4c\xff\x49\xff\x4a\xff\x00\x00\x00\x00\x00\x00\x48\xff\x00\x00\x53\xff\x00\x00\x53\xff\x00\x00\x96\xff\x95\xff\xed\xfe\x55\xff\xb6\xff\x54\xff\x48\xff\x4d\xff\xad\xff\x00\x00\x3d\xff\x4b\xff\x02\xff\x00\xff\xfc\xfe\x00\x00\xb6\xff\xaf\xff\x9d\xff\x33\xff\x18\xff\xd5\xfe\x2e\xff\x2c\xff\x2b\xff\x2a\xff\x29\xff\x2d\xff\x28\xff\x27\xff\x26\xff\x25\xff\x24\xff\x1e\xff\x23\xff\x21\xff\x22\xff\x20\xff\x1f\xff\xf6\xfe\xf4\xfe\xf3\xfe\xf1\xfe\xf2\xfe\xee\xfe\xf0\xfe\xef\xfe\xb6\xff\xb6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\xff\x00\x00\x00\x00\x00\x00\xb6\xff\xb6\xff\xb6\xff\x00\x00\x37\xff\x00\x00\x6f\xff\x70\xff\x00\x00\x7a\xff\x65\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\xff\x00\x00\x00\x00\x0d\xff\x0e\xff\x0f\xff\x00\x00\xac\xff\x00\x00\x00\x00\x00\x00\x10\xff\x53\xff\x53\xff\x53\xff\x53\xff\x00\x00\x00\x00\x0b\xff\x0c\xff\x31\xff\x00\x00\x35\xff\x00\x00\x00\x00\x00\x00\xd9\xfe\xb0\xff\xb1\xff\xae\xff\x3f\xff\x3b\xff\x00\x00\x3c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x43\xff\x00\x00\xad\xff\x4f\xff\x00\x00\xd7\xfe\xf7\xfe\xb6\xff\x00\x00\x00\x00\xad\xff\x45\xff\x41\xff\x46\xff\x3e\xff\x47\xff\x00\x00\xd6\xfe\x1d\xff\x32\xff\x39\xff\x00\x00\x19\xff\x1a\xff\xb6\xff\x00\x00\xb6\xff\x53\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb6\xff\x98\xff\x13\xff\x12\xff\x11\xff\x00\x00\x07\xff\x05\xff\x00\x00\x03\xff\x37\xff\x85\xff\x35\xff\x96\xff\x94\xff\x00\x00\x96\xff\x00\x00\xe6\xfe\x00\x00\x00\x00\x00\x00\xe7\xfe\xe8\xfe\x00\x00\x96\xff\x00\x00\x38\xff\x36\xff\x00\x00\x06\xff\x00\x00\x99\xff\x00\x00\xb6\xff\x00\x00\x00\x00\x00\x00\xb6\xff\x00\x00\x00\x00\x00\x00\xb6\xff\x00\x00\x30\xff\x34\xff\x3a\xff\x44\xff\x42\xff\x40\xff\x00\x00\xd8\xfe\xb6\xff\x00\x00\xb6\xff\xa9\xff\x00\x00\xe3\xfe\x00\x00\x48\xff\xfb\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xb6\xff\xa7\xff\xa3\xff\x00\x00\xe0\xfe\x00\x00\x00\x00\x0a\xff\x09\xff\x00\x00\xea\xfe\x00\x00\xeb\xfe\xec\xfe\xe9\xfe\x00\x00\x08\xff\xa5\xff\x00\x00\x00\x00\xa8\xff\x00\x00\x00\x00\xa4\xff\x00\x00\xe2\xfe\xb6\xff\xb6\xff\xb6\xff\xff\xfe\x48\xff\x00\x00\xaa\xff\x00\x00\xe5\xfe\x2f\xff\xe4\xfe\x1c\xff\xfe\xfe\x00\x00\xde\xfe\x17\xff\x16\xff\x00\x00\x15\xff\xe1\xfe\x1b\xff\x00\x00\xa1\xff\xa6\xff\x00\x00\x04\xff\xa2\xff\x9f\xff\xb6\xff\xb6\xff\x00\x00\x00\x00\xb6\xff\xa0\xff\x00\x00\xdd\xfe\xb6\xff\x00\x00\xdf\xfe\x14\xff\x00\x00\xb6\xff\xda\xfe\xb6\xff\xdc\xfe\x00\x00\xdb\xfe"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x03\x00\x03\x00\x09\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x05\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x04\x00\x05\x00\x2d\x00\x06\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x03\x00\x0a\x00\x30\x00\x03\x00\x03\x00\x00\x00\x0a\x00\x35\x00\x0c\x00\x06\x00\x0e\x00\x30\x00\x40\x00\x0a\x00\x0b\x00\x03\x00\x03\x00\x0a\x00\x37\x00\x03\x00\x03\x00\x0a\x00\x0f\x00\x0c\x00\x37\x00\x0e\x00\x39\x00\x40\x00\x0f\x00\x0f\x00\x40\x00\x41\x00\x0a\x00\x0a\x00\x0a\x00\x1c\x00\x0a\x00\x0f\x00\x0f\x00\x54\x00\x0a\x00\x0b\x00\x57\x00\x11\x00\x12\x00\x5a\x00\x37\x00\x38\x00\x39\x00\x06\x00\x1c\x00\x1c\x00\x06\x00\x1d\x00\x1e\x00\x1f\x00\x0a\x00\x0a\x00\x0b\x00\x3c\x00\x30\x00\x0f\x00\x42\x00\x40\x00\x0a\x00\x3c\x00\x3d\x00\x59\x00\x41\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x06\x00\x59\x00\x42\x00\x40\x00\x67\x00\x6e\x00\x6e\x00\x6b\x00\x6e\x00\x6e\x00\x6c\x00\x6d\x00\x6c\x00\x6d\x00\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x6c\x00\x66\x00\x66\x00\x69\x00\x67\x00\x6a\x00\x6a\x00\x68\x00\x66\x00\x66\x00\x3a\x00\x59\x00\x59\x00\x55\x00\x55\x00\x3f\x00\x40\x00\x50\x00\x41\x00\x43\x00\x53\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0a\x00\x0b\x00\x0a\x00\x0a\x00\x54\x00\x06\x00\x56\x00\x57\x00\x58\x00\x0a\x00\x0a\x00\x5b\x00\x53\x00\x5d\x00\x0f\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x0a\x00\x0b\x00\x0c\x00\x31\x00\x0e\x00\x0a\x00\x2f\x00\x08\x00\x09\x00\x37\x00\x0a\x00\x39\x00\x0a\x00\x0b\x00\x0f\x00\x0f\x00\x31\x00\x3a\x00\x40\x00\x37\x00\x37\x00\x39\x00\x39\x00\x37\x00\x09\x00\x1e\x00\x1f\x00\x41\x00\x1c\x00\x3a\x00\x0f\x00\x40\x00\x40\x00\x2f\x00\x3f\x00\x40\x00\x53\x00\x08\x00\x43\x00\x35\x00\x45\x00\x46\x00\x08\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0a\x00\x03\x00\x06\x00\x40\x00\x54\x00\x07\x00\x56\x00\x57\x00\x58\x00\x0a\x00\x3e\x00\x5b\x00\x03\x00\x5d\x00\x0f\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x40\x00\x41\x00\x34\x00\x35\x00\x36\x00\x0a\x00\x2d\x00\x34\x00\x35\x00\x36\x00\x0f\x00\x0a\x00\x0b\x00\x0c\x00\x13\x00\x0e\x00\x03\x00\x0a\x00\x39\x00\x0a\x00\x19\x00\x1a\x00\x31\x00\x1c\x00\x11\x00\x40\x00\x11\x00\x12\x00\x37\x00\x3a\x00\x39\x00\x24\x00\x39\x00\x26\x00\x3f\x00\x40\x00\x06\x00\x40\x00\x43\x00\x40\x00\x45\x00\x46\x00\x23\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x2d\x00\x14\x00\x0a\x00\x54\x00\x0a\x00\x56\x00\x57\x00\x58\x00\x0a\x00\x11\x00\x5b\x00\x11\x00\x5d\x00\x0f\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x23\x00\x0a\x00\x23\x00\x53\x00\x27\x00\x28\x00\x29\x00\x39\x00\x11\x00\x15\x00\x2d\x00\x2c\x00\x2d\x00\x31\x00\x40\x00\x0a\x00\x14\x00\x0a\x00\x03\x00\x37\x00\x0f\x00\x39\x00\x07\x00\x0a\x00\x11\x00\x0c\x00\x23\x00\x0e\x00\x40\x00\x3a\x00\x19\x00\x1a\x00\x29\x00\x1c\x00\x3f\x00\x40\x00\x2d\x00\x14\x00\x43\x00\x3c\x00\x45\x00\x46\x00\x23\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x2d\x00\x33\x00\x3b\x00\x54\x00\x36\x00\x56\x00\x57\x00\x58\x00\x0a\x00\x0a\x00\x5b\x00\x0a\x00\x5d\x00\x0f\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x01\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x0a\x00\x1e\x00\x08\x00\x09\x00\x52\x00\x53\x00\x0a\x00\x11\x00\x12\x00\x0f\x00\x27\x00\x28\x00\x29\x00\x11\x00\x12\x00\x2c\x00\x2d\x00\x0a\x00\x0a\x00\x54\x00\x31\x00\x32\x00\x57\x00\x34\x00\x11\x00\x5a\x00\x37\x00\x5c\x00\x39\x00\x5e\x00\x0a\x00\x3c\x00\x0c\x00\x3e\x00\x0e\x00\x40\x00\x41\x00\x03\x00\x43\x00\x00\x00\x01\x00\x07\x00\x23\x00\x22\x00\x23\x00\x06\x00\x07\x00\x08\x00\x09\x00\x2a\x00\x2b\x00\x0a\x00\x2d\x00\x08\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x11\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x0a\x00\x1e\x00\x0a\x00\x03\x00\x0a\x00\x0f\x00\x10\x00\x07\x00\x23\x00\x03\x00\x27\x00\x28\x00\x29\x00\x07\x00\x3c\x00\x2c\x00\x2d\x00\x2c\x00\x2d\x00\x0a\x00\x31\x00\x32\x00\x3e\x00\x34\x00\x0f\x00\x10\x00\x37\x00\x0a\x00\x39\x00\x3d\x00\x0a\x00\x3c\x00\x0c\x00\x3e\x00\x0e\x00\x40\x00\x41\x00\x15\x00\x43\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\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\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\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x01\x00\x51\x00\x52\x00\x53\x00\x0a\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0f\x00\x10\x00\x0a\x00\x00\x00\x01\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x11\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x0a\x00\x1e\x00\x15\x00\x03\x00\x15\x00\x0f\x00\x10\x00\x07\x00\x23\x00\x15\x00\x27\x00\x28\x00\x29\x00\x01\x00\x3b\x00\x2c\x00\x2d\x00\x2c\x00\x2d\x00\x0a\x00\x31\x00\x32\x00\x09\x00\x34\x00\x0a\x00\x0a\x00\x37\x00\x09\x00\x39\x00\x09\x00\x12\x00\x11\x00\x11\x00\x3e\x00\x0a\x00\x40\x00\x41\x00\x0a\x00\x43\x00\x1b\x00\x1c\x00\x1d\x00\x0f\x00\x2a\x00\x40\x00\x41\x00\x01\x00\x2e\x00\x0a\x00\x23\x00\x23\x00\x27\x00\x28\x00\x29\x00\x1b\x00\x1c\x00\x29\x00\x2d\x00\x2c\x00\x2d\x00\x2d\x00\x31\x00\x32\x00\x12\x00\x34\x00\x0a\x00\x0a\x00\x37\x00\x3d\x00\x39\x00\x3a\x00\x0a\x00\x1b\x00\x1c\x00\x1d\x00\x0a\x00\x40\x00\x41\x00\x11\x00\x43\x00\x0f\x00\x03\x00\x0a\x00\x06\x00\x27\x00\x28\x00\x29\x00\x01\x00\x14\x00\x11\x00\x2d\x00\x44\x00\x1b\x00\x1c\x00\x31\x00\x32\x00\x23\x00\x34\x00\x0a\x00\x33\x00\x37\x00\x38\x00\x39\x00\x14\x00\x12\x00\x2c\x00\x2d\x00\x23\x00\x0a\x00\x40\x00\x41\x00\x01\x00\x43\x00\x1b\x00\x1c\x00\x1d\x00\x2c\x00\x2d\x00\x0a\x00\x0a\x00\x01\x00\x0c\x00\x0d\x00\x0f\x00\x10\x00\x27\x00\x28\x00\x29\x00\x31\x00\x32\x00\x33\x00\x2d\x00\x0a\x00\x03\x00\x03\x00\x31\x00\x32\x00\x12\x00\x34\x00\x11\x00\x02\x00\x37\x00\x2a\x00\x39\x00\x3a\x00\x0a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x40\x00\x41\x00\x11\x00\x43\x00\x2a\x00\x01\x00\x3b\x00\x23\x00\x27\x00\x28\x00\x29\x00\x0a\x00\x0b\x00\x0c\x00\x2d\x00\x2b\x00\x3b\x00\x2d\x00\x31\x00\x32\x00\x23\x00\x34\x00\x12\x00\x38\x00\x37\x00\x38\x00\x39\x00\x40\x00\x2b\x00\x3a\x00\x2d\x00\x1b\x00\x1c\x00\x40\x00\x41\x00\x2a\x00\x43\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x27\x00\x28\x00\x29\x00\x01\x00\x40\x00\x0a\x00\x2d\x00\x0c\x00\x0d\x00\x3a\x00\x31\x00\x32\x00\x33\x00\x34\x00\x33\x00\x36\x00\x37\x00\x40\x00\x39\x00\x3f\x00\x12\x00\x40\x00\x2f\x00\x2a\x00\x03\x00\x40\x00\x41\x00\x03\x00\x43\x00\x1b\x00\x1c\x00\x1d\x00\x03\x00\x2f\x00\x40\x00\x2a\x00\x01\x00\x03\x00\x40\x00\x30\x00\x2a\x00\x27\x00\x28\x00\x29\x00\x40\x00\x3f\x00\x04\x00\x2d\x00\x3f\x00\x42\x00\x3f\x00\x31\x00\x32\x00\x12\x00\x34\x00\x42\x00\x42\x00\x37\x00\x42\x00\x39\x00\x3f\x00\x36\x00\x1b\x00\x1c\x00\x3f\x00\x42\x00\x40\x00\x41\x00\x34\x00\x43\x00\x2a\x00\x01\x00\x2f\x00\x2f\x00\x27\x00\x28\x00\x29\x00\x2f\x00\x2a\x00\x40\x00\x2d\x00\x2a\x00\x0f\x00\x40\x00\x31\x00\x32\x00\x2a\x00\x34\x00\x12\x00\x0d\x00\x37\x00\x3b\x00\x39\x00\x3a\x00\x2e\x00\x40\x00\x38\x00\x1b\x00\x1c\x00\x40\x00\x41\x00\x38\x00\x43\x00\x38\x00\x01\x00\x40\x00\x2e\x00\x40\x00\x04\x00\x27\x00\x28\x00\x29\x00\x3b\x00\x3b\x00\x05\x00\x2d\x00\x42\x00\x42\x00\x3f\x00\x31\x00\x32\x00\x12\x00\x34\x00\x42\x00\x2a\x00\x37\x00\x38\x00\x39\x00\x36\x00\x40\x00\x1b\x00\x1c\x00\x1d\x00\x43\x00\x40\x00\x41\x00\x2a\x00\x43\x00\x2a\x00\x01\x00\x30\x00\x40\x00\x27\x00\x28\x00\x29\x00\x05\x00\x0f\x00\x2a\x00\x2d\x00\x2a\x00\x42\x00\x3f\x00\x31\x00\x32\x00\x03\x00\x34\x00\x12\x00\x0a\x00\x37\x00\x40\x00\x39\x00\x37\x00\x0f\x00\x37\x00\x0c\x00\x1b\x00\x1c\x00\x40\x00\x41\x00\x37\x00\x43\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x40\x00\x27\x00\x28\x00\x29\x00\x2e\x00\x3a\x00\x2e\x00\x2d\x00\x3a\x00\x30\x00\x2a\x00\x31\x00\x32\x00\x12\x00\x34\x00\x0a\x00\x1f\x00\x37\x00\x42\x00\x39\x00\x0f\x00\x36\x00\x1b\x00\x1c\x00\x13\x00\x2a\x00\x40\x00\x41\x00\x02\x00\x43\x00\x19\x00\x1a\x00\x3b\x00\x1c\x00\x40\x00\x28\x00\x29\x00\x33\x00\x02\x00\x33\x00\x2d\x00\x24\x00\x2e\x00\x26\x00\x31\x00\x32\x00\x38\x00\x38\x00\x2f\x00\x2f\x00\x37\x00\x3a\x00\x39\x00\x2a\x00\x33\x00\x3a\x00\x0a\x00\x44\x00\x40\x00\x40\x00\x41\x00\x0f\x00\x43\x00\x39\x00\x2a\x00\x13\x00\x44\x00\x35\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x44\x00\x2a\x00\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x0a\x00\x26\x00\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x0a\x00\x26\x00\xff\xff\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0a\x00\x19\x00\x1a\x00\xff\xff\x1c\x00\x0f\x00\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\x24\x00\xff\xff\x26\x00\x19\x00\x1a\x00\xff\xff\x1c\x00\xff\xff\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x24\x00\x0a\x00\x26\x00\x13\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x19\x00\x1a\x00\xff\xff\x1c\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x24\x00\xff\xff\x26\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\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\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\xd6\x00\xf7\x01\xa9\x00\xaf\x01\xd6\x00\xe9\x01\xf6\x01\x61\x01\x05\x00\x61\x01\xa9\x00\x48\x00\x48\x00\x48\x00\x48\x00\x48\x00\x48\x00\x05\x00\x06\x00\x07\x00\xd2\x01\x06\x02\x9e\x01\xe5\x01\xe5\x01\xa6\x01\x53\x01\x41\x01\x55\x01\xcc\x00\x48\x01\x48\x01\x53\x01\xbf\x01\x53\x00\xc0\x01\xfe\x01\xc1\x01\x9d\x01\x26\x00\xb4\x01\xb5\x01\xa4\x01\x76\x01\x0a\x00\x86\x01\xaa\x00\xaa\x00\xbf\x01\x0b\x00\xc0\x01\x46\x00\xc1\x01\x4c\x00\x87\x01\x77\x01\x5a\x01\x26\x00\x27\x00\x0a\x00\x0a\x00\xb5\x00\xad\x00\x33\x00\x0b\x00\x0b\x00\x55\x00\xb4\x01\xed\x01\x56\x00\x7e\x01\x9d\x01\x57\x00\x56\x01\x57\x01\x58\x01\x04\x02\xda\x00\xda\x00\xfb\x01\xb6\x00\xb7\x00\xb8\x00\xfd\x00\xb4\x01\xb5\x01\x54\x01\xa5\x01\x0b\x00\xeb\x01\x26\x00\xff\x01\x54\x01\x55\x01\x08\x00\xb6\x01\xfe\x00\x0e\x00\x0f\x00\x10\x00\xaf\x00\x12\x00\x02\x02\x08\x00\xc2\x01\x26\x00\xa7\x01\x03\x02\xf8\x01\xea\x01\xd7\x00\xd7\x00\x62\x01\xb9\x01\x62\x01\x63\x01\xe1\x01\xa9\x01\x3a\x01\x3b\x01\x3c\x01\x49\x00\xe6\x01\xe6\x01\x9f\x01\xa7\x01\xe7\x01\xe8\x01\x42\x01\x49\x01\x4a\x01\xff\x00\xab\x00\xac\x00\xf8\x00\xdb\x00\x00\x01\x01\x01\xc5\x01\xe2\x01\x02\x01\xc6\x01\x03\x01\x04\x01\xfc\x01\x05\x01\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\xb4\x01\xb5\x01\x55\x01\x55\x01\x0d\x01\xb0\x01\x0e\x01\x0f\x01\x10\x01\xfd\x00\xd2\x01\x11\x01\xf0\x01\x12\x01\x0b\x00\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\xfe\x00\x0e\x00\x0f\x00\x10\x00\xaf\x00\x12\x00\xe3\x00\xe4\x00\xe5\x00\x3b\x00\xe6\x00\xb5\x00\xcb\x00\x5b\x00\x5c\x00\x46\x00\x0a\x00\x47\x00\xb4\x01\xde\x01\x5d\x00\x0b\x00\x3b\x00\xd3\x00\x26\x00\x56\x01\x56\x01\xab\x01\x5a\x01\x86\x01\xa9\x00\x2c\x01\xb8\x00\xb6\x01\x3d\x00\xff\x00\x48\x01\x26\x00\x87\x01\x50\x01\x00\x01\x01\x01\xce\x01\x5b\x01\x02\x01\x53\x00\x03\x01\x04\x01\x5b\x01\x05\x01\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\xd2\x01\x05\x02\xd7\x01\xe7\x00\x0d\x01\xfb\x00\x0e\x01\x0f\x01\x10\x01\xfd\x00\x5e\x00\x11\x01\xd6\x01\x12\x01\x0b\x00\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\xfe\x00\x0e\x00\x0f\x00\x10\x00\xaf\x00\x12\x00\x26\x00\x27\x00\xac\x01\x5d\x01\x5e\x01\x0a\x00\xc4\x01\x5c\x01\x5d\x01\x5e\x01\x0b\x00\xe3\x00\xe4\x00\xe5\x00\x2a\x00\xe6\x00\xdf\x01\x33\x00\xc5\x01\x33\x00\xb1\x00\x10\x00\x3b\x00\xb2\x00\x34\x00\x26\x00\x7e\x01\x7f\x01\x3c\x00\xff\x00\x3d\x00\x2d\x00\xd4\x01\x2e\x00\x6e\x01\x01\x01\xe0\x01\x26\x00\x02\x01\x26\x00\x03\x01\x04\x01\xe7\x00\x05\x01\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\xa5\x01\xe9\x00\xc9\x01\x33\x00\x0d\x01\x33\x00\x0e\x01\x0f\x01\x10\x01\xfd\x00\x34\x00\x11\x01\x34\x00\x12\x01\x0b\x00\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\xfe\x00\x0e\x00\x0f\x00\x10\x00\xaf\x00\x12\x00\x35\x00\x33\x00\xe7\x00\xc7\x01\x36\x00\x37\x00\x38\x00\x48\x00\x34\x00\x92\x01\x39\x00\x79\x01\xe9\x00\x3b\x00\x26\x00\x0a\x00\x95\x01\x33\x00\x00\x02\x46\x00\x0b\x00\x47\x00\x01\x02\xbf\x01\x34\x00\xc0\x01\x35\x00\xf9\x01\x26\x00\xff\x00\x4e\x00\x10\x00\xc1\x00\xb2\x00\x00\x01\x01\x01\x39\x00\x97\x01\x02\x01\x98\x01\x03\x01\x04\x01\xe7\x00\x05\x01\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\x7a\x01\xe9\x00\x51\x00\x99\x01\x0d\x01\x52\x00\x0e\x01\x0f\x01\x10\x01\x0a\x00\xa8\x01\x11\x01\xad\x01\x12\x01\x0b\x00\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x53\x01\x18\x00\x4e\x00\x10\x00\x4f\x00\x12\x00\x1b\x01\x1c\x01\x1d\x01\x5c\x00\xe4\x01\xde\x00\xdf\x00\xe0\x00\xe1\x00\x1e\x01\x1f\x01\x20\x01\x21\x01\xfe\x01\x22\x01\x23\x01\x24\x01\x25\x01\x26\x01\x27\x01\x28\x01\x1a\x00\x1b\x00\x33\x00\x29\x01\x5b\x00\x5c\x00\x9b\x01\x84\x01\x33\x00\x7e\x01\x80\x01\x5d\x00\x1d\x00\x1e\x00\x1f\x00\x7e\x01\x81\x01\x2a\x01\x20\x00\x33\x00\xae\x01\x55\x00\x21\x00\x22\x00\x56\x00\x23\x00\x34\x00\x57\x00\x3f\x00\x58\x00\x40\x00\x59\x00\xbf\x01\x54\x01\xc0\x01\x2b\x01\xf2\x01\x26\x00\x27\x00\xfa\x01\x28\x00\x53\x01\x18\x00\xfb\x00\x41\x00\x4a\x00\x16\x00\x1b\x01\x1c\x01\x1d\x01\x5c\x00\x42\x00\x43\x00\x33\x00\x44\x00\x65\x01\x1e\x01\x1f\x01\x20\x01\x21\x01\x34\x00\x22\x01\x23\x01\x24\x01\x25\x01\x26\x01\x27\x01\x28\x01\x1a\x00\x1b\x00\xa3\x00\x29\x01\x69\x01\xb2\x01\x6b\x01\xa4\x00\xa7\x00\xb3\x01\xe7\x00\xbd\x01\x1d\x00\x1e\x00\x1f\x00\xbe\x01\x71\x01\x2a\x01\x20\x00\x7b\x01\xe9\x00\xa3\x00\x21\x00\x22\x00\x74\x01\x23\x00\xa4\x00\xd9\x00\x3f\x00\x78\x01\x40\x00\x89\x01\xbf\x01\x54\x01\xc0\x01\x2b\x01\xd5\x01\x26\x00\x27\x00\x8a\x01\x28\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\x18\x00\x82\x01\x83\x01\x84\x01\xa3\x00\x1b\x01\x1c\x01\x1d\x01\x5c\x00\xa4\x00\xa5\x00\x33\x00\x28\x00\x04\x00\x1e\x01\x1f\x01\x20\x01\x21\x01\x34\x00\x22\x01\x23\x01\x24\x01\x25\x01\x26\x01\x27\x01\x28\x01\x1a\x00\x1b\x00\xa3\x00\x29\x01\x8c\x01\xfa\x00\x8d\x01\xa4\x00\xa6\x00\xfb\x00\xe7\x00\x8e\x01\x1d\x00\x1e\x00\x1f\x00\x18\x00\x37\x01\x2a\x01\x20\x00\x7c\x01\xe9\x00\x39\x01\x21\x00\x22\x00\x3d\x01\x23\x00\x33\x00\x33\x00\x3f\x00\x3f\x01\x40\x00\x40\x01\x19\x00\x34\x00\x34\x00\x2b\x01\x43\x01\x26\x00\x27\x00\x0a\x00\x28\x00\x1a\x00\x1b\x00\x1c\x00\x0b\x00\x0a\x00\x26\x00\x27\x00\x18\x00\xfd\x00\x44\x01\xe7\x00\x35\x00\x1d\x00\x1e\x00\x1f\x00\x4f\x00\x88\x01\xc4\x00\x20\x00\xee\x00\xe9\x00\x39\x00\x21\x00\x22\x00\x19\x00\x23\x00\x45\x01\x46\x01\x24\x00\x4d\x01\x25\x00\x30\x00\x33\x00\x1a\x00\x1b\x00\x1c\x00\x0a\x00\x26\x00\x27\x00\x34\x00\x28\x00\x0b\x00\x50\x01\x33\x00\x51\x01\x1d\x00\x1e\x00\x1f\x00\x18\x00\xec\x00\x34\x00\x20\x00\x4b\x01\x87\x01\x88\x01\x21\x00\x22\x00\xe7\x00\x23\x00\xf1\x00\xf6\x00\x24\x00\x33\x00\x25\x00\xea\x00\x19\x00\xf0\x00\xe9\x00\xe7\x00\x40\x00\x26\x00\x27\x00\x04\x00\x28\x00\x1a\x00\x1b\x00\x1c\x00\xe8\x00\xe9\x00\xa3\x00\xbf\x01\x18\x00\xcf\x01\xef\x01\xa4\x00\xa7\x00\x1d\x00\x1e\x00\x1f\x00\xf2\x00\xe0\x00\xe1\x00\x20\x00\x33\x00\x53\x00\x54\x00\x21\x00\x22\x00\x19\x00\x23\x00\x34\x00\x5e\x00\x24\x00\x0a\x00\x25\x00\x30\x00\x33\x00\x1a\x00\x1b\x00\x1c\x00\x26\x00\x26\x00\x27\x00\x34\x00\x28\x00\x0a\x00\x18\x00\xf5\x01\x41\x00\x1d\x00\x1e\x00\x1f\x00\xe3\x00\xe4\x00\xe5\x00\x20\x00\xba\x00\xf6\x01\x44\x00\x21\x00\x22\x00\x41\x00\x23\x00\x19\x00\xf2\x01\x24\x00\x33\x00\x25\x00\x26\x00\xbd\x00\xf4\x01\x44\x00\x1a\x00\x1b\x00\x26\x00\x27\x00\x0a\x00\x28\x00\xf9\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\x1d\x00\x1e\x00\x1f\x00\x18\x00\x26\x00\xbf\x01\x20\x00\xcf\x01\xd0\x01\xef\x01\x21\x00\x22\x00\x85\xff\x23\x00\xce\x01\x85\xff\x3f\x00\x87\x01\x40\x00\xcd\x01\x19\x00\x87\x01\xd5\x01\x0a\x00\xd9\x01\x26\x00\x27\x00\xda\x01\x28\x00\x1a\x00\x1b\x00\x1c\x00\xdb\x01\xde\x01\x26\x00\x0a\x00\x18\x00\xb2\x01\x26\x00\xb8\x01\x0a\x00\x1d\x00\x1e\x00\x1f\x00\x87\x01\xc9\x01\x73\x01\x20\x00\xcb\x01\xec\x00\xcc\x01\x21\x00\x22\x00\x19\x00\x23\x00\x8c\x01\xec\x00\x24\x00\x97\x01\x25\x00\x94\x01\x39\x01\x1a\x00\x1b\x00\x95\x01\xec\x00\x26\x00\x27\x00\x9b\x01\x28\x00\x0a\x00\x18\x00\xa1\x01\xa2\x01\x1d\x00\x1e\x00\x1f\x00\xa3\x01\x0a\x00\x26\x00\x20\x00\x0a\x00\x60\x01\x26\x00\x21\x00\x22\x00\x0a\x00\x23\x00\x19\x00\x67\x01\x3f\x00\x65\x01\x40\x00\xc0\x00\x68\x01\x26\x00\x69\x01\x1a\x00\x1b\x00\x26\x00\x27\x00\x6b\x01\x28\x00\x6d\x01\x18\x00\x26\x00\x6e\x01\x26\x00\x73\x01\x1d\x00\x1e\x00\x1f\x00\x78\x01\x7e\x01\x4f\x01\x20\x00\x8c\x01\x91\x01\x90\x01\x21\x00\x22\x00\x19\x00\x23\x00\x92\x01\x0a\x00\x3f\x00\xc1\x00\x40\x00\x39\x01\x26\x00\x1a\x00\x1b\x00\x1c\x00\x3f\x01\x26\x00\x27\x00\x0a\x00\x28\x00\x0a\x00\x18\x00\x4d\x01\x26\x00\x1d\x00\x1e\x00\x1f\x00\x4f\x01\x60\x01\x0a\x00\x20\x00\x0a\x00\xec\x00\xee\x00\x21\x00\x22\x00\xf0\x00\x23\x00\x19\x00\x0a\x00\x24\x00\x26\x00\x25\x00\xf4\x00\x0b\x00\xf5\x00\xe5\x00\x1a\x00\x1b\x00\x26\x00\x27\x00\xf6\x00\x28\x00\xae\x00\x0f\x00\x10\x00\xaf\x00\x12\x00\x26\x00\x1d\x00\x1e\x00\x1f\x00\x2e\x01\x2f\x01\xd4\x00\x20\x00\xd5\x00\xd6\x00\x0a\x00\x21\x00\x22\x00\x19\x00\x23\x00\x0a\x00\xa3\x00\x3f\x00\xec\x00\x40\x00\x0b\x00\x52\x00\x1a\x00\x1b\x00\xb9\x00\x0a\x00\x26\x00\x27\x00\xb4\x00\x28\x00\xb1\x00\x10\x00\xb5\x00\xb2\x00\x26\x00\x1e\x00\x1f\x00\xbc\x00\xbf\x00\xc3\x00\x20\x00\x2d\x00\xc8\x00\x2e\x00\x21\x00\x22\x00\xc6\x00\xc7\x00\x97\xff\xcb\x00\x3f\x00\xc9\x00\x40\x00\x0a\x00\x4d\x00\xca\x00\x0a\x00\xff\xff\x26\x00\x26\x00\x27\x00\x0b\x00\x28\x00\x48\x00\x0a\x00\x2a\x00\xff\xff\x53\x00\xce\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\xff\xff\x0a\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\xcf\x00\x2f\x01\x2e\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\xce\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\xcf\x00\xd0\x00\x2e\x00\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x2d\x00\x0a\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x30\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x31\x00\x0a\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\xb1\x00\x10\x00\x00\x00\xb2\x00\x0b\x00\x00\x00\x00\x00\x00\x00\xb9\x00\x00\x00\x00\x00\x31\x00\x00\x00\x2e\x00\xb1\x00\x10\x00\x00\x00\xb2\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x2d\x00\x0a\x00\x2e\x00\x2a\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\xb1\x00\x10\x00\x00\x00\xb2\x00\xe3\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x31\x00\x00\x00\x2e\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xec\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\xdb\x01\xde\x00\xdf\x00\xe0\x00\xe1\x00\x00\x00\xdc\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x60\x01\xde\x00\xdf\x00\xe0\x00\xe1\x00\x00\x00\xb8\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\xf7\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\x00\x00\xba\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x29\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x31\x01\x32\x01\x33\x01\x34\x01\x35\x01\x36\x01\x37\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyReduceArr = array (3, 298) [-	(3 , happyReduce_3),-	(4 , happyReduce_4),-	(5 , happyReduce_5),-	(6 , happyReduce_6),-	(7 , happyReduce_7),-	(8 , happyReduce_8),-	(9 , happyReduce_9),-	(10 , happyReduce_10),-	(11 , happyReduce_11),-	(12 , happyReduce_12),-	(13 , happyReduce_13),-	(14 , happyReduce_14),-	(15 , happyReduce_15),-	(16 , happyReduce_16),-	(17 , happyReduce_17),-	(18 , happyReduce_18),-	(19 , happyReduce_19),-	(20 , happyReduce_20),-	(21 , happyReduce_21),-	(22 , happyReduce_22),-	(23 , happyReduce_23),-	(24 , happyReduce_24),-	(25 , happyReduce_25),-	(26 , happyReduce_26),-	(27 , happyReduce_27),-	(28 , happyReduce_28),-	(29 , happyReduce_29),-	(30 , happyReduce_30),-	(31 , happyReduce_31),-	(32 , happyReduce_32),-	(33 , happyReduce_33),-	(34 , happyReduce_34),-	(35 , happyReduce_35),-	(36 , happyReduce_36),-	(37 , happyReduce_37),-	(38 , happyReduce_38),-	(39 , happyReduce_39),-	(40 , happyReduce_40),-	(41 , happyReduce_41),-	(42 , happyReduce_42),-	(43 , happyReduce_43),-	(44 , happyReduce_44),-	(45 , happyReduce_45),-	(46 , happyReduce_46),-	(47 , happyReduce_47),-	(48 , happyReduce_48),-	(49 , happyReduce_49),-	(50 , happyReduce_50),-	(51 , happyReduce_51),-	(52 , happyReduce_52),-	(53 , happyReduce_53),-	(54 , happyReduce_54),-	(55 , happyReduce_55),-	(56 , happyReduce_56),-	(57 , happyReduce_57),-	(58 , happyReduce_58),-	(59 , happyReduce_59),-	(60 , happyReduce_60),-	(61 , happyReduce_61),-	(62 , happyReduce_62),-	(63 , happyReduce_63),-	(64 , happyReduce_64),-	(65 , happyReduce_65),-	(66 , happyReduce_66),-	(67 , happyReduce_67),-	(68 , happyReduce_68),-	(69 , happyReduce_69),-	(70 , happyReduce_70),-	(71 , happyReduce_71),-	(72 , happyReduce_72),-	(73 , happyReduce_73),-	(74 , happyReduce_74),-	(75 , happyReduce_75),-	(76 , happyReduce_76),-	(77 , happyReduce_77),-	(78 , happyReduce_78),-	(79 , happyReduce_79),-	(80 , happyReduce_80),-	(81 , happyReduce_81),-	(82 , happyReduce_82),-	(83 , happyReduce_83),-	(84 , happyReduce_84),-	(85 , happyReduce_85),-	(86 , happyReduce_86),-	(87 , happyReduce_87),-	(88 , happyReduce_88),-	(89 , happyReduce_89),-	(90 , happyReduce_90),-	(91 , happyReduce_91),-	(92 , happyReduce_92),-	(93 , happyReduce_93),-	(94 , happyReduce_94),-	(95 , happyReduce_95),-	(96 , happyReduce_96),-	(97 , happyReduce_97),-	(98 , happyReduce_98),-	(99 , happyReduce_99),-	(100 , happyReduce_100),-	(101 , happyReduce_101),-	(102 , happyReduce_102),-	(103 , happyReduce_103),-	(104 , happyReduce_104),-	(105 , happyReduce_105),-	(106 , happyReduce_106),-	(107 , happyReduce_107),-	(108 , happyReduce_108),-	(109 , happyReduce_109),-	(110 , happyReduce_110),-	(111 , happyReduce_111),-	(112 , happyReduce_112),-	(113 , happyReduce_113),-	(114 , happyReduce_114),-	(115 , happyReduce_115),-	(116 , happyReduce_116),-	(117 , happyReduce_117),-	(118 , happyReduce_118),-	(119 , happyReduce_119),-	(120 , happyReduce_120),-	(121 , happyReduce_121),-	(122 , happyReduce_122),-	(123 , happyReduce_123),-	(124 , happyReduce_124),-	(125 , happyReduce_125),-	(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),-	(164 , happyReduce_164),-	(165 , happyReduce_165),-	(166 , happyReduce_166),-	(167 , happyReduce_167),-	(168 , happyReduce_168),-	(169 , happyReduce_169),-	(170 , happyReduce_170),-	(171 , happyReduce_171),-	(172 , happyReduce_172),-	(173 , happyReduce_173),-	(174 , happyReduce_174),-	(175 , happyReduce_175),-	(176 , happyReduce_176),-	(177 , happyReduce_177),-	(178 , happyReduce_178),-	(179 , happyReduce_179),-	(180 , happyReduce_180),-	(181 , happyReduce_181),-	(182 , happyReduce_182),-	(183 , happyReduce_183),-	(184 , happyReduce_184),-	(185 , happyReduce_185),-	(186 , happyReduce_186),-	(187 , happyReduce_187),-	(188 , happyReduce_188),-	(189 , happyReduce_189),-	(190 , happyReduce_190),-	(191 , happyReduce_191),-	(192 , happyReduce_192),-	(193 , happyReduce_193),-	(194 , happyReduce_194),-	(195 , happyReduce_195),-	(196 , happyReduce_196),-	(197 , happyReduce_197),-	(198 , happyReduce_198),-	(199 , happyReduce_199),-	(200 , happyReduce_200),-	(201 , happyReduce_201),-	(202 , happyReduce_202),-	(203 , happyReduce_203),-	(204 , happyReduce_204),-	(205 , happyReduce_205),-	(206 , happyReduce_206),-	(207 , happyReduce_207),-	(208 , happyReduce_208),-	(209 , happyReduce_209),-	(210 , happyReduce_210),-	(211 , happyReduce_211),-	(212 , happyReduce_212),-	(213 , happyReduce_213),-	(214 , happyReduce_214),-	(215 , happyReduce_215),-	(216 , happyReduce_216),-	(217 , happyReduce_217),-	(218 , happyReduce_218),-	(219 , happyReduce_219),-	(220 , happyReduce_220),-	(221 , happyReduce_221),-	(222 , happyReduce_222),-	(223 , happyReduce_223),-	(224 , happyReduce_224),-	(225 , happyReduce_225),-	(226 , happyReduce_226),-	(227 , happyReduce_227),-	(228 , happyReduce_228),-	(229 , happyReduce_229),-	(230 , happyReduce_230),-	(231 , happyReduce_231),-	(232 , happyReduce_232),-	(233 , happyReduce_233),-	(234 , happyReduce_234),-	(235 , happyReduce_235),-	(236 , happyReduce_236),-	(237 , happyReduce_237),-	(238 , happyReduce_238),-	(239 , happyReduce_239),-	(240 , happyReduce_240),-	(241 , happyReduce_241),-	(242 , happyReduce_242),-	(243 , happyReduce_243),-	(244 , happyReduce_244),-	(245 , happyReduce_245),-	(246 , happyReduce_246),-	(247 , happyReduce_247),-	(248 , happyReduce_248),-	(249 , happyReduce_249),-	(250 , happyReduce_250),-	(251 , happyReduce_251),-	(252 , happyReduce_252),-	(253 , happyReduce_253),-	(254 , happyReduce_254),-	(255 , happyReduce_255),-	(256 , happyReduce_256),-	(257 , happyReduce_257),-	(258 , happyReduce_258),-	(259 , happyReduce_259),-	(260 , happyReduce_260),-	(261 , happyReduce_261),-	(262 , happyReduce_262),-	(263 , happyReduce_263),-	(264 , happyReduce_264),-	(265 , happyReduce_265),-	(266 , happyReduce_266),-	(267 , happyReduce_267),-	(268 , happyReduce_268),-	(269 , happyReduce_269),-	(270 , happyReduce_270),-	(271 , happyReduce_271),-	(272 , happyReduce_272),-	(273 , happyReduce_273),-	(274 , happyReduce_274),-	(275 , happyReduce_275),-	(276 , happyReduce_276),-	(277 , happyReduce_277),-	(278 , happyReduce_278),-	(279 , happyReduce_279),-	(280 , happyReduce_280),-	(281 , happyReduce_281),-	(282 , happyReduce_282),-	(283 , happyReduce_283),-	(284 , happyReduce_284),-	(285 , happyReduce_285),-	(286 , happyReduce_286),-	(287 , happyReduce_287),-	(288 , happyReduce_288),-	(289 , happyReduce_289),-	(290 , happyReduce_290),-	(291 , happyReduce_291),-	(292 , happyReduce_292),-	(293 , happyReduce_293),-	(294 , happyReduce_294),-	(295 , happyReduce_295),-	(296 , happyReduce_296),-	(297 , happyReduce_297),-	(298 , happyReduce_298)-	]--happy_n_terms = 69 :: Int-happy_n_nonterms = 111 :: Int--happyReduce_3 = happySpecReduce_1  0# happyReduction_3-happyReduction_3 happy_x_1-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> -	happyIn6-		 (reverse happy_var_1-	)}--happyReduce_4 = happySpecReduce_2  1# happyReduction_4-happyReduction_4 happy_x_2-	happy_x_1-	 =  case happyOut7 happy_x_1 of { happy_var_1 -> -	case happyOut8 happy_x_2 of { happy_var_2 -> -	happyIn7-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_5 = happySpecReduce_0  1# happyReduction_5-happyReduction_5  =  happyIn7-		 ([]-	)--happyReduce_6 = happySpecReduce_1  2# happyReduction_6-happyReduction_6 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwLet happy_var_1) -> -	happyIn8-		 (TokKeyword KwLet happy_var_1-	)}--happyReduce_7 = happySpecReduce_1  2# happyReduction_7-happyReduction_7 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwIn happy_var_1) -> -	happyIn8-		 (TokKeyword KwIn happy_var_1-	)}--happyReduce_8 = happySpecReduce_1  2# happyReduction_8-happyReduction_8 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwWhere happy_var_1) -> -	happyIn8-		 (TokKeyword KwWhere happy_var_1-	)}--happyReduce_9 = happySpecReduce_1  2# happyReduction_9-happyReduction_9 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwWith happy_var_1) -> -	happyIn8-		 (TokKeyword KwWith happy_var_1-	)}--happyReduce_10 = happySpecReduce_1  2# happyReduction_10-happyReduction_10 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwRewrite happy_var_1) -> -	happyIn8-		 (TokKeyword KwRewrite happy_var_1-	)}--happyReduce_11 = happySpecReduce_1  2# happyReduction_11-happyReduction_11 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPostulate happy_var_1) -> -	happyIn8-		 (TokKeyword KwPostulate happy_var_1-	)}--happyReduce_12 = happySpecReduce_1  2# happyReduction_12-happyReduction_12 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrimitive happy_var_1) -> -	happyIn8-		 (TokKeyword KwPrimitive happy_var_1-	)}--happyReduce_13 = happySpecReduce_1  2# happyReduction_13-happyReduction_13 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> -	happyIn8-		 (TokKeyword KwOpen happy_var_1-	)}--happyReduce_14 = happySpecReduce_1  2# happyReduction_14-happyReduction_14 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwImport happy_var_1) -> -	happyIn8-		 (TokKeyword KwImport happy_var_1-	)}--happyReduce_15 = happySpecReduce_1  2# happyReduction_15-happyReduction_15 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwUsing happy_var_1) -> -	happyIn8-		 (TokKeyword KwUsing happy_var_1-	)}--happyReduce_16 = happySpecReduce_1  2# happyReduction_16-happyReduction_16 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwHiding happy_var_1) -> -	happyIn8-		 (TokKeyword KwHiding happy_var_1-	)}--happyReduce_17 = happySpecReduce_1  2# happyReduction_17-happyReduction_17 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwRenaming happy_var_1) -> -	happyIn8-		 (TokKeyword KwRenaming happy_var_1-	)}--happyReduce_18 = happySpecReduce_1  2# happyReduction_18-happyReduction_18 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwTo happy_var_1) -> -	happyIn8-		 (TokKeyword KwTo happy_var_1-	)}--happyReduce_19 = happySpecReduce_1  2# happyReduction_19-happyReduction_19 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPublic happy_var_1) -> -	happyIn8-		 (TokKeyword KwPublic happy_var_1-	)}--happyReduce_20 = happySpecReduce_1  2# happyReduction_20-happyReduction_20 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> -	happyIn8-		 (TokKeyword KwModule happy_var_1-	)}--happyReduce_21 = happySpecReduce_1  2# happyReduction_21-happyReduction_21 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwData happy_var_1) -> -	happyIn8-		 (TokKeyword KwData happy_var_1-	)}--happyReduce_22 = happySpecReduce_1  2# happyReduction_22-happyReduction_22 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCoData happy_var_1) -> -	happyIn8-		 (TokKeyword KwCoData happy_var_1-	)}--happyReduce_23 = happySpecReduce_1  2# happyReduction_23-happyReduction_23 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwRecord happy_var_1) -> -	happyIn8-		 (TokKeyword KwRecord happy_var_1-	)}--happyReduce_24 = happySpecReduce_1  2# happyReduction_24-happyReduction_24 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwConstructor happy_var_1) -> -	happyIn8-		 (TokKeyword KwConstructor happy_var_1-	)}--happyReduce_25 = happySpecReduce_1  2# happyReduction_25-happyReduction_25 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwField happy_var_1) -> -	happyIn8-		 (TokKeyword KwField happy_var_1-	)}--happyReduce_26 = happySpecReduce_1  2# happyReduction_26-happyReduction_26 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfix happy_var_1) -> -	happyIn8-		 (TokKeyword KwInfix happy_var_1-	)}--happyReduce_27 = happySpecReduce_1  2# happyReduction_27-happyReduction_27 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixL happy_var_1) -> -	happyIn8-		 (TokKeyword KwInfixL happy_var_1-	)}--happyReduce_28 = happySpecReduce_1  2# happyReduction_28-happyReduction_28 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixR happy_var_1) -> -	happyIn8-		 (TokKeyword KwInfixR happy_var_1-	)}--happyReduce_29 = happySpecReduce_1  2# happyReduction_29-happyReduction_29 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwMutual happy_var_1) -> -	happyIn8-		 (TokKeyword KwMutual happy_var_1-	)}--happyReduce_30 = happySpecReduce_1  2# happyReduction_30-happyReduction_30 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwAbstract happy_var_1) -> -	happyIn8-		 (TokKeyword KwAbstract happy_var_1-	)}--happyReduce_31 = happySpecReduce_1  2# happyReduction_31-happyReduction_31 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrivate happy_var_1) -> -	happyIn8-		 (TokKeyword KwPrivate happy_var_1-	)}--happyReduce_32 = happySpecReduce_1  2# happyReduction_32-happyReduction_32 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwProp happy_var_1) -> -	happyIn8-		 (TokKeyword KwProp happy_var_1-	)}--happyReduce_33 = happySpecReduce_1  2# happyReduction_33-happyReduction_33 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwSet happy_var_1) -> -	happyIn8-		 (TokKeyword KwSet happy_var_1-	)}--happyReduce_34 = happySpecReduce_1  2# happyReduction_34-happyReduction_34 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwForall happy_var_1) -> -	happyIn8-		 (TokKeyword KwForall happy_var_1-	)}--happyReduce_35 = happySpecReduce_1  2# happyReduction_35-happyReduction_35 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwSyntax happy_var_1) -> -	happyIn8-		 (TokKeyword KwSyntax happy_var_1-	)}--happyReduce_36 = happySpecReduce_1  2# happyReduction_36-happyReduction_36 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwOPTIONS happy_var_1) -> -	happyIn8-		 (TokKeyword KwOPTIONS happy_var_1-	)}--happyReduce_37 = happySpecReduce_1  2# happyReduction_37-happyReduction_37 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwBUILTIN happy_var_1) -> -	happyIn8-		 (TokKeyword KwBUILTIN happy_var_1-	)}--happyReduce_38 = happySpecReduce_1  2# happyReduction_38-happyReduction_38 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwIMPORT happy_var_1) -> -	happyIn8-		 (TokKeyword KwIMPORT happy_var_1-	)}--happyReduce_39 = happySpecReduce_1  2# happyReduction_39-happyReduction_39 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCOMPILED happy_var_1) -> -	happyIn8-		 (TokKeyword KwCOMPILED happy_var_1-	)}--happyReduce_40 = happySpecReduce_1  2# happyReduction_40-happyReduction_40 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCOMPILED_DATA happy_var_1) -> -	happyIn8-		 (TokKeyword KwCOMPILED_DATA happy_var_1-	)}--happyReduce_41 = happySpecReduce_1  2# happyReduction_41-happyReduction_41 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCOMPILED_TYPE happy_var_1) -> -	happyIn8-		 (TokKeyword KwCOMPILED_TYPE happy_var_1-	)}--happyReduce_42 = happySpecReduce_1  2# happyReduction_42-happyReduction_42 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwIMPOSSIBLE happy_var_1) -> -	happyIn8-		 (TokKeyword KwIMPOSSIBLE happy_var_1-	)}--happyReduce_43 = happySpecReduce_1  2# happyReduction_43-happyReduction_43 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwETA happy_var_1) -> -	happyIn8-		 (TokKeyword KwETA happy_var_1-	)}--happyReduce_44 = happySpecReduce_1  2# happyReduction_44-happyReduction_44 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwQuoteGoal happy_var_1) -> -	happyIn8-		 (TokKeyword KwQuoteGoal happy_var_1-	)}--happyReduce_45 = happySpecReduce_1  2# happyReduction_45-happyReduction_45 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwQuote happy_var_1) -> -	happyIn8-		 (TokKeyword KwQuote happy_var_1-	)}--happyReduce_46 = happySpecReduce_1  2# happyReduction_46-happyReduction_46 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSetN happy_var_1) -> -	happyIn8-		 (TokSetN happy_var_1-	)}--happyReduce_47 = happySpecReduce_1  2# happyReduction_47-happyReduction_47 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokTeX happy_var_1) -> -	happyIn8-		 (TokTeX happy_var_1-	)}--happyReduce_48 = happySpecReduce_1  2# happyReduction_48-happyReduction_48 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokComment happy_var_1) -> -	happyIn8-		 (TokComment happy_var_1-	)}--happyReduce_49 = happySpecReduce_1  2# happyReduction_49-happyReduction_49 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymEllipsis happy_var_1) -> -	happyIn8-		 (TokSymbol SymEllipsis happy_var_1-	)}--happyReduce_50 = happySpecReduce_1  2# happyReduction_50-happyReduction_50 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymDot happy_var_1) -> -	happyIn8-		 (TokSymbol SymDot happy_var_1-	)}--happyReduce_51 = happySpecReduce_1  2# happyReduction_51-happyReduction_51 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymSemi happy_var_1) -> -	happyIn8-		 (TokSymbol SymSemi happy_var_1-	)}--happyReduce_52 = happySpecReduce_1  2# happyReduction_52-happyReduction_52 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymColon happy_var_1) -> -	happyIn8-		 (TokSymbol SymColon happy_var_1-	)}--happyReduce_53 = happySpecReduce_1  2# happyReduction_53-happyReduction_53 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymEqual happy_var_1) -> -	happyIn8-		 (TokSymbol SymEqual happy_var_1-	)}--happyReduce_54 = happySpecReduce_1  2# happyReduction_54-happyReduction_54 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymUnderscore happy_var_1) -> -	happyIn8-		 (TokSymbol SymUnderscore happy_var_1-	)}--happyReduce_55 = happySpecReduce_1  2# happyReduction_55-happyReduction_55 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymQuestionMark happy_var_1) -> -	happyIn8-		 (TokSymbol SymQuestionMark happy_var_1-	)}--happyReduce_56 = happySpecReduce_1  2# happyReduction_56-happyReduction_56 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymArrow happy_var_1) -> -	happyIn8-		 (TokSymbol SymArrow happy_var_1-	)}--happyReduce_57 = happySpecReduce_1  2# happyReduction_57-happyReduction_57 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymLambda happy_var_1) -> -	happyIn8-		 (TokSymbol SymLambda happy_var_1-	)}--happyReduce_58 = happySpecReduce_1  2# happyReduction_58-happyReduction_58 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymAs happy_var_1) -> -	happyIn8-		 (TokSymbol SymAs happy_var_1-	)}--happyReduce_59 = happySpecReduce_1  2# happyReduction_59-happyReduction_59 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymBar happy_var_1) -> -	happyIn8-		 (TokSymbol SymBar happy_var_1-	)}--happyReduce_60 = happySpecReduce_1  2# happyReduction_60-happyReduction_60 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> -	happyIn8-		 (TokSymbol SymOpenParen happy_var_1-	)}--happyReduce_61 = happySpecReduce_1  2# happyReduction_61-happyReduction_61 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymCloseParen happy_var_1) -> -	happyIn8-		 (TokSymbol SymCloseParen happy_var_1-	)}--happyReduce_62 = happySpecReduce_1  2# happyReduction_62-happyReduction_62 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> -	happyIn8-		 (TokSymbol SymOpenBrace happy_var_1-	)}--happyReduce_63 = happySpecReduce_1  2# happyReduction_63-happyReduction_63 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymCloseBrace happy_var_1) -> -	happyIn8-		 (TokSymbol SymCloseBrace happy_var_1-	)}--happyReduce_64 = happySpecReduce_1  2# happyReduction_64-happyReduction_64 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenVirtualBrace happy_var_1) -> -	happyIn8-		 (TokSymbol SymOpenVirtualBrace happy_var_1-	)}--happyReduce_65 = happySpecReduce_1  2# happyReduction_65-happyReduction_65 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymCloseVirtualBrace happy_var_1) -> -	happyIn8-		 (TokSymbol SymCloseVirtualBrace happy_var_1-	)}--happyReduce_66 = happySpecReduce_1  2# happyReduction_66-happyReduction_66 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymVirtualSemi happy_var_1) -> -	happyIn8-		 (TokSymbol SymVirtualSemi happy_var_1-	)}--happyReduce_67 = happySpecReduce_1  2# happyReduction_67-happyReduction_67 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	happyIn8-		 (TokSymbol SymOpenPragma happy_var_1-	)}--happyReduce_68 = happySpecReduce_1  2# happyReduction_68-happyReduction_68 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymClosePragma happy_var_1) -> -	happyIn8-		 (TokSymbol SymClosePragma happy_var_1-	)}--happyReduce_69 = happySpecReduce_1  2# happyReduction_69-happyReduction_69 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokId happy_var_1) -> -	happyIn8-		 (TokId happy_var_1-	)}--happyReduce_70 = happySpecReduce_1  2# happyReduction_70-happyReduction_70 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokQId happy_var_1) -> -	happyIn8-		 (TokQId happy_var_1-	)}--happyReduce_71 = happySpecReduce_1  2# happyReduction_71-happyReduction_71 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokString happy_var_1) -> -	happyIn8-		 (TokString happy_var_1-	)}--happyReduce_72 = happySpecReduce_1  2# happyReduction_72-happyReduction_72 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokLiteral happy_var_1) -> -	happyIn8-		 (TokLiteral happy_var_1-	)}--happyReduce_73 = happySpecReduce_0  3# happyReduction_73-happyReduction_73  =  happyIn9-		 (()-	)--happyReduce_74 = happySpecReduce_2  3# happyReduction_74-happyReduction_74 happy_x_2-	happy_x_1-	 =  happyIn9-		 (()-	)--happyReduce_75 = happySpecReduce_2  4# happyReduction_75-happyReduction_75 happy_x_2-	happy_x_1-	 =  case happyOut11 happy_x_1 of { happy_var_1 -> -	happyIn10-		 (happy_var_1-	)}--happyReduce_76 = happySpecReduce_1  5# happyReduction_76-happyReduction_76 happy_x_1-	 =  case happyOut95 happy_x_1 of { happy_var_1 -> -	happyIn11-		 (([], happy_var_1)-	)}--happyReduce_77 = happySpecReduce_3  5# happyReduction_77-happyReduction_77 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut98 happy_x_2 of { happy_var_2 -> -	case happyOut11 happy_x_3 of { happy_var_3 -> -	happyIn11-		 (let (ps,m) = happy_var_3 in (happy_var_2 : ps, m)-	)}}--happyReduce_78 = happySpecReduce_1  6# happyReduction_78-happyReduction_78 happy_x_1-	 =  happyIn12-		 (()-	)--happyReduce_79 = happyMonadReduce 1# 6# happyReduction_79-happyReduction_79 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (( popContext)-	) (\r -> happyReturn (happyIn12 r))--happyReduce_80 = happySpecReduce_1  7# happyReduction_80-happyReduction_80 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymSemi happy_var_1) -> -	happyIn13-		 (happy_var_1-	)}--happyReduce_81 = happySpecReduce_2  7# happyReduction_81-happyReduction_81 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_2 of { (TokSymbol SymVirtualSemi happy_var_2) -> -	happyIn13-		 (happy_var_2-	)}--happyReduce_82 = happyMonadReduce 0# 8# happyReduction_82-happyReduction_82 (happyRest) tk-	 = happyThen (( pushLexState imp_dir)-	) (\r -> happyReturn (happyIn14 r))--happyReduce_83 = happyMonadReduce 1# 9# happyReduction_83-happyReduction_83 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOutTok happy_x_1 of { (TokLiteral happy_var_1) -> -	( case happy_var_1 of {-		     LitInt _ n	-> return $ fromIntegral n;-		     _		-> fail $ "Expected integer"-		   })}-	) (\r -> happyReturn (happyIn15 r))--happyReduce_84 = happyMonadReduce 1# 10# happyReduction_84-happyReduction_84 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOutTok happy_x_1 of { (TokId happy_var_1) -> -	( mkName happy_var_1)}-	) (\r -> happyReturn (happyIn16 r))--happyReduce_85 = happySpecReduce_2  11# happyReduction_85-happyReduction_85 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	case happyOut17 happy_x_2 of { happy_var_2 -> -	happyIn17-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_86 = happySpecReduce_1  11# happyReduction_86-happyReduction_86 happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	happyIn17-		 ([happy_var_1]-	)}--happyReduce_87 = happySpecReduce_2  12# happyReduction_87-happyReduction_87 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> -	happyIn18-		 (Arg NotHidden Irrelevant happy_var_2-	)}--happyReduce_88 = happySpecReduce_1  12# happyReduction_88-happyReduction_88 happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	happyIn18-		 (defaultArg happy_var_1-	)}--happyReduce_89 = happySpecReduce_2  13# happyReduction_89-happyReduction_89 happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut19 happy_x_2 of { happy_var_2 -> -	happyIn19-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_90 = happySpecReduce_1  13# happyReduction_90-happyReduction_90 happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	happyIn19-		 ([happy_var_1]-	)}--happyReduce_91 = happySpecReduce_2  14# happyReduction_91-happyReduction_91 happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut20 happy_x_2 of { happy_var_2 -> -	happyIn20-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_92 = happySpecReduce_1  14# happyReduction_92-happyReduction_92 happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	happyIn20-		 ([happy_var_1]-	)}--happyReduce_93 = happyReduce 4# 14# happyReduction_93-happyReduction_93 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut19 happy_x_2 of { happy_var_2 -> -	case happyOut20 happy_x_4 of { happy_var_4 -> -	happyIn20-		 (map hide happy_var_2 ++ happy_var_4-	) `HappyStk` happyRest}}--happyReduce_94 = happySpecReduce_3  14# happyReduction_94-happyReduction_94 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut19 happy_x_2 of { happy_var_2 -> -	happyIn20-		 (map hide happy_var_2-	)}--happyReduce_95 = happyReduce 5# 14# happyReduction_95-happyReduction_95 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut17 happy_x_3 of { happy_var_3 -> -	case happyOut20 happy_x_5 of { happy_var_5 -> -	happyIn20-		 (map (Arg Hidden Irrelevant) happy_var_3 ++ happy_var_5-	) `HappyStk` happyRest}}--happyReduce_96 = happyReduce 4# 14# happyReduction_96-happyReduction_96 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut17 happy_x_3 of { happy_var_3 -> -	happyIn20-		 (map (Arg Hidden Irrelevant) happy_var_3-	) `HappyStk` happyRest}--happyReduce_97 = happyMonadReduce 1# 15# happyReduction_97-happyReduction_97 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOutTok happy_x_1 of { (TokQId happy_var_1) -> -	( mkQName happy_var_1)}-	) (\r -> happyReturn (happyIn21 r))--happyReduce_98 = happySpecReduce_1  15# happyReduction_98-happyReduction_98 happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	happyIn21-		 (QName happy_var_1-	)}--happyReduce_99 = happySpecReduce_1  16# happyReduction_99-happyReduction_99 happy_x_1-	 =  case happyOut21 happy_x_1 of { happy_var_1 -> -	happyIn22-		 (happy_var_1-	)}--happyReduce_100 = happySpecReduce_1  17# happyReduction_100-happyReduction_100 happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	happyIn23-		 (happy_var_1-	)}--happyReduce_101 = happySpecReduce_1  17# happyReduction_101-happyReduction_101 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymUnderscore happy_var_1) -> -	happyIn23-		 (Name (getRange happy_var_1) [Hole]-	)}--happyReduce_102 = happySpecReduce_2  18# happyReduction_102-happyReduction_102 happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { happy_var_1 -> -	case happyOut24 happy_x_2 of { happy_var_2 -> -	happyIn24-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_103 = happySpecReduce_1  18# happyReduction_103-happyReduction_103 happy_x_1-	 =  case happyOut23 happy_x_1 of { happy_var_1 -> -	happyIn24-		 ([happy_var_1]-	)}--happyReduce_104 = happyMonadReduce 1# 19# happyReduction_104-happyReduction_104 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut31 happy_x_1 of { happy_var_1 -> -	(-    let getName (Ident (QName x)) = Just x-	getName (Underscore r _)  = Just (Name r [Hole])-	getName _		  = Nothing-    in-    case partition isJust $ map getName happy_var_1 of-	(good, []) -> return $ map fromJust good-	_	   -> fail $ "expected sequence of bound identifiers")}-	) (\r -> happyReturn (happyIn25 r))--happyReduce_105 = happySpecReduce_0  20# happyReduction_105-happyReduction_105  =  happyIn26-		 ([]-	)--happyReduce_106 = happySpecReduce_2  20# happyReduction_106-happyReduction_106 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokString happy_var_1) -> -	case happyOut26 happy_x_2 of { happy_var_2 -> -	happyIn26-		 (snd happy_var_1 : happy_var_2-	)}}--happyReduce_107 = happyMonadReduce 1# 21# happyReduction_107-happyReduction_107 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOutTok happy_x_1 of { (TokString happy_var_1) -> -	( fmap QName (mkName happy_var_1))}-	) (\r -> happyReturn (happyIn27 r))--happyReduce_108 = happySpecReduce_2  22# happyReduction_108-happyReduction_108 happy_x_2-	happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn28-		 (Pi happy_var_1 happy_var_2-	)}}--happyReduce_109 = happySpecReduce_3  22# happyReduction_109-happyReduction_109 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut48 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn28-		 (forallPi happy_var_2 happy_var_3-	)}}--happyReduce_110 = happySpecReduce_3  22# happyReduction_110-happyReduction_110 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn28-		 (Fun (fuseRange happy_var_1 happy_var_3) (RawApp (getRange happy_var_1) happy_var_1) happy_var_3-	)}}--happyReduce_111 = happySpecReduce_1  22# happyReduction_111-happyReduction_111 happy_x_1-	 =  case happyOut29 happy_x_1 of { happy_var_1 -> -	happyIn28-		 (happy_var_1-	)}--happyReduce_112 = happyMonadReduce 1# 23# happyReduction_112-happyReduction_112 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut30 happy_x_1 of { happy_var_1 -> -	( case happy_var_1 of-		      { [e]    -> return e-		      ; e : es -> return $ WithApp (fuseRange e es) e es-		      ; []     -> fail "impossible: empty with expressions"-		      })}-	) (\r -> happyReturn (happyIn29 r))--happyReduce_113 = happySpecReduce_3  24# happyReduction_113-happyReduction_113 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	case happyOut30 happy_x_3 of { happy_var_3 -> -	happyIn30-		 (RawApp (getRange happy_var_1) happy_var_1 :  happy_var_3-	)}}--happyReduce_114 = happySpecReduce_1  24# happyReduction_114-happyReduction_114 happy_x_1-	 =  case happyOut31 happy_x_1 of { happy_var_1 -> -	happyIn30-		 ([RawApp (getRange happy_var_1) happy_var_1]-	)}--happyReduce_115 = happySpecReduce_1  25# happyReduction_115-happyReduction_115 happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	happyIn31-		 ([happy_var_1]-	)}--happyReduce_116 = happySpecReduce_2  25# happyReduction_116-happyReduction_116 happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	case happyOut31 happy_x_2 of { happy_var_2 -> -	happyIn31-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_117 = happySpecReduce_3  26# happyReduction_117-happyReduction_117 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymLambda happy_var_1) -> -	case happyOut45 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn32-		 (Lam (fuseRange happy_var_1 happy_var_3) happy_var_2 happy_var_3-	)}}}--happyReduce_118 = happySpecReduce_2  26# happyReduction_118-happyReduction_118 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymLambda happy_var_1) -> -	case happyOut46 happy_x_2 of { happy_var_2 -> -	happyIn32-		 (let (bs, h) = happy_var_2; r = fuseRange happy_var_1 bs in-                                     if null bs then AbsurdLam r h else-                                     Lam r bs (AbsurdLam r h)-	)}}--happyReduce_119 = happyReduce 4# 26# happyReduction_119-happyReduction_119 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwLet happy_var_1) -> -	case happyOut114 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_4 of { happy_var_4 -> -	happyIn32-		 (Let (fuseRange happy_var_1 happy_var_4) happy_var_2 happy_var_4-	) `HappyStk` happyRest}}}--happyReduce_120 = happySpecReduce_1  26# happyReduction_120-happyReduction_120 happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	happyIn32-		 (happy_var_1-	)}--happyReduce_121 = happyReduce 4# 26# happyReduction_121-happyReduction_121 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwQuoteGoal happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_4 of { happy_var_4 -> -	happyIn32-		 (QuoteGoal (getRange (happy_var_1,happy_var_4)) happy_var_2 happy_var_4-	) `HappyStk` happyRest}}}--happyReduce_122 = happySpecReduce_1  27# happyReduction_122-happyReduction_122 happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	happyIn33-		 ([happy_var_1]-	)}--happyReduce_123 = happySpecReduce_2  27# happyReduction_123-happyReduction_123 happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	case happyOut33 happy_x_2 of { happy_var_2 -> -	happyIn33-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_124 = happySpecReduce_1  28# happyReduction_124-happyReduction_124 happy_x_1-	 =  case happyOut21 happy_x_1 of { happy_var_1 -> -	happyIn34-		 (Ident happy_var_1-	)}--happyReduce_125 = happySpecReduce_1  28# happyReduction_125-happyReduction_125 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokLiteral happy_var_1) -> -	happyIn34-		 (Lit happy_var_1-	)}--happyReduce_126 = happySpecReduce_1  28# happyReduction_126-happyReduction_126 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymQuestionMark happy_var_1) -> -	happyIn34-		 (QuestionMark (getRange happy_var_1) Nothing-	)}--happyReduce_127 = happySpecReduce_1  28# happyReduction_127-happyReduction_127 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymUnderscore happy_var_1) -> -	happyIn34-		 (Underscore (getRange happy_var_1) Nothing-	)}--happyReduce_128 = happySpecReduce_1  28# happyReduction_128-happyReduction_128 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwProp happy_var_1) -> -	happyIn34-		 (Prop (getRange happy_var_1)-	)}--happyReduce_129 = happySpecReduce_1  28# happyReduction_129-happyReduction_129 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwSet happy_var_1) -> -	happyIn34-		 (Set (getRange happy_var_1)-	)}--happyReduce_130 = happySpecReduce_1  28# happyReduction_130-happyReduction_130 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwQuote happy_var_1) -> -	happyIn34-		 (Quote (getRange happy_var_1)-	)}--happyReduce_131 = happySpecReduce_1  28# happyReduction_131-happyReduction_131 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSetN happy_var_1) -> -	happyIn34-		 (SetN (getRange (fst happy_var_1)) (snd happy_var_1)-	)}--happyReduce_132 = happySpecReduce_3  28# happyReduction_132-happyReduction_132 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (TokSymbol SymCloseBrace happy_var_3) -> -	happyIn34-		 (HiddenArg (fuseRange happy_var_1 happy_var_3) (unnamed happy_var_2)-	)}}}--happyReduce_133 = happyReduce 5# 28# happyReduction_133-happyReduction_133 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (TokSymbol SymCloseBrace happy_var_5) -> -	happyIn34-		 (HiddenArg (fuseRange happy_var_1 happy_var_5) (named (show happy_var_2) happy_var_4)-	) `HappyStk` happyRest}}}}--happyReduce_134 = happySpecReduce_3  28# happyReduction_134-happyReduction_134 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (TokSymbol SymCloseParen happy_var_3) -> -	happyIn34-		 (Paren (fuseRange happy_var_1 happy_var_3) happy_var_2-	)}}}--happyReduce_135 = happySpecReduce_2  28# happyReduction_135-happyReduction_135 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> -	case happyOutTok happy_x_2 of { (TokSymbol SymCloseBrace happy_var_2) -> -	happyIn34-		 (let r = fuseRange happy_var_1 happy_var_2 in HiddenArg r $ unnamed $ Absurd r-	)}}--happyReduce_136 = happySpecReduce_2  28# happyReduction_136-happyReduction_136 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> -	case happyOutTok happy_x_2 of { (TokSymbol SymCloseParen happy_var_2) -> -	happyIn34-		 (Absurd (fuseRange happy_var_1 happy_var_2)-	)}}--happyReduce_137 = happySpecReduce_3  28# happyReduction_137-happyReduction_137 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	case happyOut34 happy_x_3 of { happy_var_3 -> -	happyIn34-		 (As (fuseRange happy_var_1 happy_var_3) happy_var_1 happy_var_3-	)}}--happyReduce_138 = happySpecReduce_2  28# happyReduction_138-happyReduction_138 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymDot happy_var_1) -> -	case happyOut34 happy_x_2 of { happy_var_2 -> -	happyIn34-		 (Dot (fuseRange happy_var_1 happy_var_2) happy_var_2-	)}}--happyReduce_139 = happyReduce 4# 28# happyReduction_139-happyReduction_139 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwRecord happy_var_1) -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokSymbol SymCloseBrace happy_var_4) -> -	happyIn34-		 (Rec (getRange (happy_var_1,happy_var_4)) happy_var_3-	) `HappyStk` happyRest}}}--happyReduce_140 = happySpecReduce_0  29# happyReduction_140-happyReduction_140  =  happyIn35-		 ([]-	)--happyReduce_141 = happySpecReduce_1  29# happyReduction_141-happyReduction_141 happy_x_1-	 =  case happyOut36 happy_x_1 of { happy_var_1 -> -	happyIn35-		 (happy_var_1-	)}--happyReduce_142 = happySpecReduce_1  30# happyReduction_142-happyReduction_142 happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	happyIn36-		 ([happy_var_1]-	)}--happyReduce_143 = happySpecReduce_3  30# happyReduction_143-happyReduction_143 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	case happyOut36 happy_x_3 of { happy_var_3 -> -	happyIn36-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_144 = happySpecReduce_3  31# happyReduction_144-happyReduction_144 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn37-		 ((happy_var_1, happy_var_3)-	)}}--happyReduce_145 = happySpecReduce_2  32# happyReduction_145-happyReduction_145 happy_x_2-	happy_x_1-	 =  case happyOut39 happy_x_1 of { happy_var_1 -> -	happyIn38-		 (happy_var_1-	)}--happyReduce_146 = happySpecReduce_1  33# happyReduction_146-happyReduction_146 happy_x_1-	 =  case happyOut40 happy_x_1 of { happy_var_1 -> -	happyIn39-		 ({-TeleBind-} happy_var_1-	)}--happyReduce_147 = happySpecReduce_2  34# happyReduction_147-happyReduction_147 happy_x_2-	happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	case happyOut40 happy_x_2 of { happy_var_2 -> -	happyIn40-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_148 = happySpecReduce_1  34# happyReduction_148-happyReduction_148 happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	happyIn40-		 ([happy_var_1]-	)}--happyReduce_149 = happySpecReduce_3  35# happyReduction_149-happyReduction_149 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> -	case happyOut42 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (TokSymbol SymCloseParen happy_var_3) -> -	happyIn41-		 (TypedBindings (fuseRange happy_var_1 happy_var_3) (Arg NotHidden Relevant happy_var_2)-	)}}}--happyReduce_150 = happySpecReduce_3  35# happyReduction_150-happyReduction_150 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> -	case happyOut42 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (TokSymbol SymCloseBrace happy_var_3) -> -	happyIn41-		 (TypedBindings (fuseRange happy_var_1 happy_var_3) (Arg Hidden    Relevant happy_var_2)-	)}}}--happyReduce_151 = happySpecReduce_1  36# happyReduction_151-happyReduction_151 happy_x_1-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> -	happyIn42-		 ([happy_var_1]-	)}--happyReduce_152 = happySpecReduce_3  36# happyReduction_152-happyReduction_152 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut44 happy_x_1 of { happy_var_1 -> -	case happyOut43 happy_x_3 of { happy_var_3 -> -	happyIn42-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_153 = happySpecReduce_1  37# happyReduction_153-happyReduction_153 happy_x_1-	 =  case happyOut42 happy_x_1 of { happy_var_1 -> -	happyIn43-		 (happy_var_1-	)}--happyReduce_154 = happySpecReduce_3  37# happyReduction_154-happyReduction_154 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut43 happy_x_3 of { happy_var_3 -> -	happyIn43-		 (TNoBind happy_var_1 : happy_var_3-	)}}--happyReduce_155 = happySpecReduce_1  37# happyReduction_155-happyReduction_155 happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	happyIn43-		 ([TNoBind happy_var_1]-	)}--happyReduce_156 = happySpecReduce_3  38# happyReduction_156-happyReduction_156 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut25 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn44-		 (TBind (fuseRange happy_var_1 happy_var_3) (map mkBoundName_ happy_var_1) happy_var_3-	)}}--happyReduce_157 = happyMonadReduce 2# 39# happyReduction_157-happyReduction_157 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut47 happy_x_1 of { happy_var_1 -> -	(-      case last happy_var_1 of-        Left _  -> parseError "Absurd lambda cannot have a body."-        _       -> return [ b | Right b <- happy_var_1 ])}-	) (\r -> happyReturn (happyIn45 r))--happyReduce_158 = happyMonadReduce 1# 40# happyReduction_158-happyReduction_158 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut47 happy_x_1 of { happy_var_1 -> -	(-    case last happy_var_1 of-      Right _ -> parseError "Missing body for lambda"-      Left h  -> return ([ b | Right b <- init happy_var_1], h))}-	) (\r -> happyReturn (happyIn46 r))--happyReduce_159 = happySpecReduce_2  41# happyReduction_159-happyReduction_159 happy_x_2-	happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	case happyOut47 happy_x_2 of { happy_var_2 -> -	happyIn47-		 (map Right happy_var_1 ++ happy_var_2-	)}}--happyReduce_160 = happySpecReduce_2  41# happyReduction_160-happyReduction_160 happy_x_2-	happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	case happyOut47 happy_x_2 of { happy_var_2 -> -	happyIn47-		 (Right (DomainFull happy_var_1) : happy_var_2-	)}}--happyReduce_161 = happySpecReduce_1  41# happyReduction_161-happyReduction_161 happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	happyIn47-		 (map Right happy_var_1-	)}--happyReduce_162 = happySpecReduce_1  41# happyReduction_162-happyReduction_162 happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	happyIn47-		 ([Right $ DomainFull happy_var_1]-	)}--happyReduce_163 = happySpecReduce_2  41# happyReduction_163-happyReduction_163 happy_x_2-	happy_x_1-	 =  happyIn47-		 ([Left NotHidden]-	)--happyReduce_164 = happySpecReduce_2  41# happyReduction_164-happyReduction_164 happy_x_2-	happy_x_1-	 =  happyIn47-		 ([Left Hidden]-	)--happyReduce_165 = happySpecReduce_2  42# happyReduction_165-happyReduction_165 happy_x_2-	happy_x_1-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> -	happyIn48-		 (happy_var_1-	)}--happyReduce_166 = happySpecReduce_2  43# happyReduction_166-happyReduction_166 happy_x_2-	happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	case happyOut49 happy_x_2 of { happy_var_2 -> -	happyIn49-		 (happy_var_1 ++ happy_var_2-	)}}--happyReduce_167 = happySpecReduce_2  43# happyReduction_167-happyReduction_167 happy_x_2-	happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	case happyOut49 happy_x_2 of { happy_var_2 -> -	happyIn49-		 (DomainFull happy_var_1 : happy_var_2-	)}}--happyReduce_168 = happySpecReduce_1  43# happyReduction_168-happyReduction_168 happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	happyIn49-		 (happy_var_1-	)}--happyReduce_169 = happySpecReduce_1  43# happyReduction_169-happyReduction_169 happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	happyIn49-		 ([DomainFull happy_var_1]-	)}--happyReduce_170 = happySpecReduce_2  44# happyReduction_170-happyReduction_170 happy_x_2-	happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	case happyOut50 happy_x_2 of { happy_var_2 -> -	happyIn50-		 (happy_var_1 ++ happy_var_2-	)}}--happyReduce_171 = happySpecReduce_2  44# happyReduction_171-happyReduction_171 happy_x_2-	happy_x_1-	 =  case happyOut41 happy_x_1 of { happy_var_1 -> -	case happyOut50 happy_x_2 of { happy_var_2 -> -	happyIn50-		 (DomainFull happy_var_1 : happy_var_2-	)}}--happyReduce_172 = happySpecReduce_0  44# happyReduction_172-happyReduction_172  =  happyIn50-		 ([]-	)--happyReduce_173 = happySpecReduce_1  45# happyReduction_173-happyReduction_173 happy_x_1-	 =  case happyOut23 happy_x_1 of { happy_var_1 -> -	happyIn51-		 ([DomainFree NotHidden $ mkBoundName_ happy_var_1]-	)}--happyReduce_174 = happySpecReduce_3  45# happyReduction_174-happyReduction_174 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut25 happy_x_2 of { happy_var_2 -> -	happyIn51-		 (map (DomainFree Hidden . mkBoundName_) happy_var_2-	)}--happyReduce_175 = happySpecReduce_1  46# happyReduction_175-happyReduction_175 happy_x_1-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> -	happyIn52-		 ((Nothing, happy_var_1)-	)}--happyReduce_176 = happyMonadReduce 3# 46# happyReduction_176-happyReduction_176 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOutTok happy_x_1 of { (TokId happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut53 happy_x_3 of { happy_var_3 -> -	( isName "as" happy_var_1 >>-                               return (Just (AsName happy_var_2 (getRange (fst happy_var_1))), happy_var_3))}}}-	) (\r -> happyReturn (happyIn52 r))--happyReduce_177 = happyMonadReduce 1# 47# happyReduction_177-happyReduction_177 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut54 happy_x_1 of { happy_var_1 -> -	( verifyImportDirective happy_var_1)}-	) (\r -> happyReturn (happyIn53 r))--happyReduce_178 = happySpecReduce_2  48# happyReduction_178-happyReduction_178 happy_x_2-	happy_x_1-	 =  case happyOut55 happy_x_2 of { happy_var_2 -> -	happyIn54-		 (happy_var_2 { publicOpen = True }-	)}--happyReduce_179 = happySpecReduce_1  48# happyReduction_179-happyReduction_179 happy_x_1-	 =  case happyOut55 happy_x_1 of { happy_var_1 -> -	happyIn54-		 (happy_var_1-	)}--happyReduce_180 = happySpecReduce_2  49# happyReduction_180-happyReduction_180 happy_x_2-	happy_x_1-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> -	case happyOut57 happy_x_2 of { happy_var_2 -> -	happyIn55-		 (ImportDirective (fuseRange (snd happy_var_1) (snd happy_var_2)) (fst happy_var_1) (fst happy_var_2) False-	)}}--happyReduce_181 = happySpecReduce_1  49# happyReduction_181-happyReduction_181 happy_x_1-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> -	happyIn55-		 (ImportDirective (getRange (snd happy_var_1)) (Hiding []) (fst happy_var_1) False-	)}--happyReduce_182 = happySpecReduce_1  49# happyReduction_182-happyReduction_182 happy_x_1-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> -	happyIn55-		 (ImportDirective (getRange (snd happy_var_1)) (fst happy_var_1) [] False-	)}--happyReduce_183 = happySpecReduce_0  49# happyReduction_183-happyReduction_183  =  happyIn55-		 (ImportDirective noRange (Hiding []) [] False-	)--happyReduce_184 = happyReduce 4# 50# happyReduction_184-happyReduction_184 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwUsing happy_var_1) -> -	case happyOut62 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokSymbol SymCloseParen happy_var_4) -> -	happyIn56-		 ((Using happy_var_3 , fuseRange happy_var_1 happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_185 = happyReduce 4# 50# happyReduction_185-happyReduction_185 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwHiding happy_var_1) -> -	case happyOut63 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokSymbol SymCloseParen happy_var_4) -> -	happyIn56-		 ((Hiding happy_var_3 , fuseRange happy_var_1 happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_186 = happyReduce 4# 51# happyReduction_186-happyReduction_186 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwRenaming happy_var_1) -> -	case happyOut58 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokSymbol SymCloseParen happy_var_4) -> -	happyIn57-		 ((happy_var_3 , fuseRange happy_var_1 happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_187 = happySpecReduce_3  52# happyReduction_187-happyReduction_187 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	case happyOut58 happy_x_3 of { happy_var_3 -> -	happyIn58-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_188 = happySpecReduce_1  52# happyReduction_188-happyReduction_188 happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	happyIn58-		 ([happy_var_1]-	)}--happyReduce_189 = happySpecReduce_3  53# happyReduction_189-happyReduction_189 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (TokKeyword KwTo happy_var_2) -> -	case happyOut16 happy_x_3 of { happy_var_3 -> -	happyIn59-		 (Renaming happy_var_1 happy_var_3 (getRange happy_var_2)-	)}}}--happyReduce_190 = happySpecReduce_2  54# happyReduction_190-happyReduction_190 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> -	happyIn60-		 (ImportedName happy_var_2-	)}--happyReduce_191 = happySpecReduce_3  54# happyReduction_191-happyReduction_191 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_3 of { happy_var_3 -> -	happyIn60-		 (ImportedModule happy_var_3-	)}--happyReduce_192 = happySpecReduce_1  55# happyReduction_192-happyReduction_192 happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	happyIn61-		 (ImportedName happy_var_1-	)}--happyReduce_193 = happySpecReduce_2  55# happyReduction_193-happyReduction_193 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> -	happyIn61-		 (ImportedModule happy_var_2-	)}--happyReduce_194 = happySpecReduce_0  56# happyReduction_194-happyReduction_194  =  happyIn62-		 ([]-	)--happyReduce_195 = happySpecReduce_1  56# happyReduction_195-happyReduction_195 happy_x_1-	 =  case happyOut63 happy_x_1 of { happy_var_1 -> -	happyIn62-		 (happy_var_1-	)}--happyReduce_196 = happySpecReduce_1  57# happyReduction_196-happyReduction_196 happy_x_1-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> -	happyIn63-		 ([happy_var_1]-	)}--happyReduce_197 = happySpecReduce_3  57# happyReduction_197-happyReduction_197 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut61 happy_x_1 of { happy_var_1 -> -	case happyOut63 happy_x_3 of { happy_var_3 -> -	happyIn63-		 (happy_var_1 : happy_var_3-	)}}--happyReduce_198 = happyMonadReduce 3# 58# happyReduction_198-happyReduction_198 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut29 happy_x_1 of { happy_var_1 -> -	case happyOut67 happy_x_2 of { happy_var_2 -> -	case happyOut66 happy_x_3 of { happy_var_3 -> -	( exprToLHS happy_var_1 >>= \p -> return (p happy_var_2 happy_var_3))}}}-	) (\r -> happyReturn (happyIn64 r))--happyReduce_199 = happyReduce 4# 58# happyReduction_199-happyReduction_199 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymEllipsis happy_var_1) -> -	case happyOut65 happy_x_2 of { happy_var_2 -> -	case happyOut67 happy_x_3 of { happy_var_3 -> -	case happyOut66 happy_x_4 of { happy_var_4 -> -	happyIn64-		 (Ellipsis (fuseRange happy_var_1 happy_var_3) happy_var_2 happy_var_3 happy_var_4-	) `HappyStk` happyRest}}}}--happyReduce_200 = happySpecReduce_0  59# happyReduction_200-happyReduction_200  =  happyIn65-		 ([]-	)--happyReduce_201 = happyMonadReduce 3# 59# happyReduction_201-happyReduction_201 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut33 happy_x_2 of { happy_var_2 -> -	case happyOut65 happy_x_3 of { happy_var_3 -> -	( exprToPattern (RawApp (getRange happy_var_2) happy_var_2) >>= \p ->-		   return (p : happy_var_3))}}-	) (\r -> happyReturn (happyIn65 r))--happyReduce_202 = happySpecReduce_0  60# happyReduction_202-happyReduction_202  =  happyIn66-		 ([]-	)--happyReduce_203 = happySpecReduce_2  60# happyReduction_203-happyReduction_203 happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn66-		 (case happy_var_2 of { WithApp _ e es -> e : es; e -> [e] }-	)}--happyReduce_204 = happySpecReduce_0  61# happyReduction_204-happyReduction_204  =  happyIn67-		 ([]-	)--happyReduce_205 = happySpecReduce_2  61# happyReduction_205-happyReduction_205 happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn67-		 (case happy_var_2 of { WithApp _ e es -> e : es; e -> [e] }-	)}--happyReduce_206 = happySpecReduce_0  62# happyReduction_206-happyReduction_206  =  happyIn68-		 (NoWhere-	)--happyReduce_207 = happySpecReduce_2  62# happyReduction_207-happyReduction_207 happy_x_2-	happy_x_1-	 =  case happyOut114 happy_x_2 of { happy_var_2 -> -	happyIn68-		 (AnyWhere happy_var_2-	)}--happyReduce_208 = happyReduce 4# 62# happyReduction_208-happyReduction_208 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut114 happy_x_4 of { happy_var_4 -> -	happyIn68-		 (SomeWhere happy_var_2 happy_var_4-	) `HappyStk` happyRest}}--happyReduce_209 = happySpecReduce_1  63# happyReduction_209-happyReduction_209 happy_x_1-	 =  case happyOut70 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_210 = happySpecReduce_1  63# happyReduction_210-happyReduction_210 happy_x_1-	 =  case happyOut79 happy_x_1 of { happy_var_1 -> -	happyIn69-		 (happy_var_1-	)}--happyReduce_211 = happySpecReduce_1  63# happyReduction_211-happyReduction_211 happy_x_1-	 =  case happyOut73 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_212 = happySpecReduce_1  63# happyReduction_212-happyReduction_212 happy_x_1-	 =  case happyOut75 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_213 = happySpecReduce_1  63# happyReduction_213-happyReduction_213 happy_x_1-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_214 = happySpecReduce_1  63# happyReduction_214-happyReduction_214 happy_x_1-	 =  case happyOut78 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_215 = happySpecReduce_1  63# happyReduction_215-happyReduction_215 happy_x_1-	 =  case happyOut80 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_216 = happySpecReduce_1  63# happyReduction_216-happyReduction_216 happy_x_1-	 =  case happyOut81 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_217 = happySpecReduce_1  63# happyReduction_217-happyReduction_217 happy_x_1-	 =  case happyOut82 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_218 = happySpecReduce_1  63# happyReduction_218-happyReduction_218 happy_x_1-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_219 = happySpecReduce_1  63# happyReduction_219-happyReduction_219 happy_x_1-	 =  case happyOut84 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_220 = happySpecReduce_1  63# happyReduction_220-happyReduction_220 happy_x_1-	 =  case happyOut90 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_221 = happySpecReduce_1  63# happyReduction_221-happyReduction_221 happy_x_1-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_222 = happySpecReduce_1  63# happyReduction_222-happyReduction_222 happy_x_1-	 =  case happyOut92 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_223 = happySpecReduce_1  63# happyReduction_223-happyReduction_223 happy_x_1-	 =  case happyOut94 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_224 = happySpecReduce_1  63# happyReduction_224-happyReduction_224 happy_x_1-	 =  case happyOut97 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_225 = happySpecReduce_1  63# happyReduction_225-happyReduction_225 happy_x_1-	 =  case happyOut85 happy_x_1 of { happy_var_1 -> -	happyIn69-		 ([happy_var_1]-	)}--happyReduce_226 = happySpecReduce_3  64# happyReduction_226-happyReduction_226 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn70-		 (TypeSig happy_var_1 happy_var_3-	)}}--happyReduce_227 = happySpecReduce_3  65# happyReduction_227-happyReduction_227 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut17 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn71-		 (map (flip TypeSig happy_var_3) happy_var_1-	)}}--happyReduce_228 = happySpecReduce_3  66# happyReduction_228-happyReduction_228 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn72-		 (map (fmap (flip TypeSig happy_var_3)) happy_var_1-	)}}--happyReduce_229 = happySpecReduce_3  67# happyReduction_229-happyReduction_229 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut64 happy_x_1 of { happy_var_1 -> -	case happyOut74 happy_x_2 of { happy_var_2 -> -	case happyOut68 happy_x_3 of { happy_var_3 -> -	happyIn73-		 (FunClause happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_230 = happySpecReduce_2  68# happyReduction_230-happyReduction_230 happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_2 of { happy_var_2 -> -	happyIn74-		 (RHS happy_var_2-	)}--happyReduce_231 = happySpecReduce_0  68# happyReduction_231-happyReduction_231  =  happyIn74-		 (AbsurdRHS-	)--happyReduce_232 = happyReduce 7# 69# happyReduction_232-happyReduction_232 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwData happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut50 happy_x_3 of { happy_var_3 -> -	case happyOut28 happy_x_5 of { happy_var_5 -> -	case happyOutTok happy_x_6 of { (TokKeyword KwWhere happy_var_6) -> -	case happyOut112 happy_x_7 of { happy_var_7 -> -	happyIn75-		 (Data (getRange (happy_var_1, happy_var_6, happy_var_7)) Inductive happy_var_2 (map addType happy_var_3) happy_var_5 happy_var_7-	) `HappyStk` happyRest}}}}}}--happyReduce_233 = happyReduce 7# 69# happyReduction_233-happyReduction_233 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwCoData happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut50 happy_x_3 of { happy_var_3 -> -	case happyOut28 happy_x_5 of { happy_var_5 -> -	case happyOutTok happy_x_6 of { (TokKeyword KwWhere happy_var_6) -> -	case happyOut112 happy_x_7 of { happy_var_7 -> -	happyIn75-		 (Data (getRange (happy_var_1, happy_var_6, happy_var_7)) CoInductive happy_var_2 (map addType happy_var_3) happy_var_5 happy_var_7-	) `HappyStk` happyRest}}}}}}--happyReduce_234 = happyReduce 7# 70# happyReduction_234-happyReduction_234 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwRecord happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut50 happy_x_3 of { happy_var_3 -> -	case happyOut28 happy_x_5 of { happy_var_5 -> -	case happyOutTok happy_x_6 of { (TokKeyword KwWhere happy_var_6) -> -	case happyOut113 happy_x_7 of { happy_var_7 -> -	happyIn76-		 (Record (getRange (happy_var_1, happy_var_6, happy_var_7)) happy_var_2 (fst happy_var_7) (map addType happy_var_3) happy_var_5 (snd happy_var_7)-	) `HappyStk` happyRest}}}}}}--happyReduce_235 = happySpecReduce_2  71# happyReduction_235-happyReduction_235 happy_x_2-	happy_x_1-	 =  case happyOut16 happy_x_2 of { happy_var_2 -> -	happyIn77-		 (happy_var_2-	)}--happyReduce_236 = happySpecReduce_3  72# happyReduction_236-happyReduction_236 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfix happy_var_1) -> -	case happyOut15 happy_x_2 of { happy_var_2 -> -	case happyOut24 happy_x_3 of { happy_var_3 -> -	happyIn78-		 (Infix (NonAssoc (fuseRange happy_var_1 happy_var_3) happy_var_2) happy_var_3-	)}}}--happyReduce_237 = happySpecReduce_3  72# happyReduction_237-happyReduction_237 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixL happy_var_1) -> -	case happyOut15 happy_x_2 of { happy_var_2 -> -	case happyOut24 happy_x_3 of { happy_var_3 -> -	happyIn78-		 (Infix (LeftAssoc (fuseRange happy_var_1 happy_var_3) happy_var_2) happy_var_3-	)}}}--happyReduce_238 = happySpecReduce_3  72# happyReduction_238-happyReduction_238 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixR happy_var_1) -> -	case happyOut15 happy_x_2 of { happy_var_2 -> -	case happyOut24 happy_x_3 of { happy_var_3 -> -	happyIn78-		 (Infix (RightAssoc (fuseRange happy_var_1 happy_var_3) happy_var_2) happy_var_3-	)}}}--happyReduce_239 = happySpecReduce_2  73# happyReduction_239-happyReduction_239 happy_x_2-	happy_x_1-	 =  case happyOut110 happy_x_2 of { happy_var_2 -> -	happyIn79-		 (let toField (Arg h rel (TypeSig x t)) = Field x (Arg h rel t) in map toField happy_var_2-	)}--happyReduce_240 = happySpecReduce_2  74# happyReduction_240-happyReduction_240 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwMutual happy_var_1) -> -	case happyOut114 happy_x_2 of { happy_var_2 -> -	happyIn80-		 (Mutual (fuseRange happy_var_1 happy_var_2) happy_var_2-	)}}--happyReduce_241 = happySpecReduce_2  75# happyReduction_241-happyReduction_241 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwAbstract happy_var_1) -> -	case happyOut114 happy_x_2 of { happy_var_2 -> -	happyIn81-		 (Abstract (fuseRange happy_var_1 happy_var_2) happy_var_2-	)}}--happyReduce_242 = happySpecReduce_2  76# happyReduction_242-happyReduction_242 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrivate happy_var_1) -> -	case happyOut114 happy_x_2 of { happy_var_2 -> -	happyIn82-		 (Private (fuseRange happy_var_1 happy_var_2) happy_var_2-	)}}--happyReduce_243 = happySpecReduce_2  77# happyReduction_243-happyReduction_243 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPostulate happy_var_1) -> -	case happyOut108 happy_x_2 of { happy_var_2 -> -	happyIn83-		 (Postulate (fuseRange happy_var_1 happy_var_2) happy_var_2-	)}}--happyReduce_244 = happySpecReduce_2  78# happyReduction_244-happyReduction_244 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrimitive happy_var_1) -> -	case happyOut108 happy_x_2 of { happy_var_2 -> -	happyIn84-		 (Primitive (fuseRange happy_var_1 happy_var_2) happy_var_2-	)}}--happyReduce_245 = happyMonadReduce 5# 79# happyReduction_245-happyReduction_245 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut87 happy_x_3 of { happy_var_3 -> -	case happyOut86 happy_x_5 of { happy_var_5 -> -	(-  case happy_var_2 of -    Name _ [_] -> case mkNotation happy_var_3 happy_var_5 of-      Left err -> parseError $ "malformed syntax declaration: " ++ err-      Right n -> return $ Syntax happy_var_2 n-    _ -> parseError "syntax declarations are allowed only for simple names (without holes)")}}}-	) (\r -> happyReturn (happyIn85 r))--happyReduce_246 = happySpecReduce_1  80# happyReduction_246-happyReduction_246 happy_x_1-	 =  case happyOut89 happy_x_1 of { happy_var_1 -> -	happyIn86-		 ([happy_var_1]-	)}--happyReduce_247 = happySpecReduce_2  80# happyReduction_247-happyReduction_247 happy_x_2-	happy_x_1-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> -	case happyOut89 happy_x_2 of { happy_var_2 -> -	happyIn86-		 (happy_var_1 ++ [happy_var_2]-	)}}--happyReduce_248 = happySpecReduce_1  81# happyReduction_248-happyReduction_248 happy_x_1-	 =  case happyOut88 happy_x_1 of { happy_var_1 -> -	happyIn87-		 ([happy_var_1]-	)}--happyReduce_249 = happySpecReduce_2  81# happyReduction_249-happyReduction_249 happy_x_2-	happy_x_1-	 =  case happyOut87 happy_x_1 of { happy_var_1 -> -	case happyOut88 happy_x_2 of { happy_var_2 -> -	happyIn87-		 (happy_var_1 ++ [happy_var_2]-	)}}--happyReduce_250 = happySpecReduce_1  82# happyReduction_250-happyReduction_250 happy_x_1-	 =  case happyOut89 happy_x_1 of { happy_var_1 -> -	happyIn88-		 (ExprHole happy_var_1-	)}--happyReduce_251 = happyReduce 6# 82# happyReduction_251-happyReduction_251 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut89 happy_x_3 of { happy_var_3 -> -	case happyOut89 happy_x_5 of { happy_var_5 -> -	happyIn88-		 (LambdaHole happy_var_3 happy_var_5-	) `HappyStk` happyRest}}--happyReduce_252 = happySpecReduce_1  83# happyReduction_252-happyReduction_252 happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokId happy_var_1) -> -	happyIn89-		 (snd happy_var_1-	)}--happyReduce_253 = happyReduce 4# 84# happyReduction_253-happyReduction_253 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> -	case happyOut22 happy_x_2 of { happy_var_2 -> -	case happyOut91 happy_x_3 of { happy_var_3 -> -	case happyOut53 happy_x_4 of { happy_var_4 -> -	happyIn90-		 (let-    { m   = happy_var_2-    ; es  = happy_var_3-    ; dir = happy_var_4-    ; r   = getRange (happy_var_1, m, es, dir)-    } in-    case es of-    { []  -> Open r m dir-    ; _   -> Private r [ ModuleMacro r (noName $ beginningOf $ getRange happy_var_2) []-                           (RawApp (fuseRange m es) (Ident m : es)) DoOpen dir-                       ]-    }-	) `HappyStk` happyRest}}}}--happyReduce_254 = happySpecReduce_0  85# happyReduction_254-happyReduction_254  =  happyIn91-		 ([]-	)--happyReduce_255 = happySpecReduce_2  85# happyReduction_255-happyReduction_255 happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	case happyOut91 happy_x_2 of { happy_var_2 -> -	happyIn91-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_256 = happyReduce 6# 86# happyReduction_256-happyReduction_256 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut50 happy_x_3 of { happy_var_3 -> -	case happyOut28 happy_x_5 of { happy_var_5 -> -	case happyOut53 happy_x_6 of { happy_var_6 -> -	happyIn92-		 (ModuleMacro (getRange (happy_var_1, happy_var_5, happy_var_6)) happy_var_2 (map addType happy_var_3) happy_var_5 DontOpen happy_var_6-	) `HappyStk` happyRest}}}}}--happyReduce_257 = happyReduce 7# 86# happyReduction_257-happyReduction_257 (happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> -	case happyOut16 happy_x_3 of { happy_var_3 -> -	case happyOut50 happy_x_4 of { happy_var_4 -> -	case happyOut28 happy_x_6 of { happy_var_6 -> -	case happyOut53 happy_x_7 of { happy_var_7 -> -	happyIn92-		 (ModuleMacro (getRange (happy_var_1, happy_var_6, happy_var_7)) happy_var_3 (map addType happy_var_4) happy_var_6 DoOpen happy_var_7-	) `HappyStk` happyRest}}}}}--happyReduce_258 = happySpecReduce_3  87# happyReduction_258-happyReduction_258 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokKeyword KwImport happy_var_1) -> -	case happyOut22 happy_x_2 of { happy_var_2 -> -	case happyOut52 happy_x_3 of { happy_var_3 -> -	happyIn93-		 (Import (getRange (happy_var_1,happy_var_2,snd happy_var_3)) happy_var_2 (fst happy_var_3) DontOpen (snd happy_var_3)-	)}}}--happyReduce_259 = happyReduce 4# 87# happyReduction_259-happyReduction_259 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> -	case happyOut22 happy_x_3 of { happy_var_3 -> -	case happyOut52 happy_x_4 of { happy_var_4 -> -	happyIn93-		 (Import (getRange (happy_var_1,happy_var_3,snd happy_var_4)) happy_var_3 (fst happy_var_4) DoOpen (snd happy_var_4)-	) `HappyStk` happyRest}}}--happyReduce_260 = happyReduce 5# 88# happyReduction_260-happyReduction_260 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> -	case happyOut16 happy_x_2 of { happy_var_2 -> -	case happyOut50 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokKeyword KwWhere happy_var_4) -> -	case happyOut115 happy_x_5 of { happy_var_5 -> -	happyIn94-		 (Module (getRange (happy_var_1,happy_var_4,happy_var_5)) (QName happy_var_2) (map addType happy_var_3) happy_var_5-	) `HappyStk` happyRest}}}}}--happyReduce_261 = happySpecReduce_2  89# happyReduction_261-happyReduction_261 happy_x_2-	happy_x_1-	 =  case happyOut96 happy_x_2 of { happy_var_2 -> -	happyIn95-		 ([happy_var_2]-	)}--happyReduce_262 = happySpecReduce_3  89# happyReduction_262-happyReduction_262 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut93 happy_x_2 of { happy_var_2 -> -	case happyOut95 happy_x_3 of { happy_var_3 -> -	happyIn95-		 (happy_var_2 : happy_var_3-	)}}--happyReduce_263 = happySpecReduce_3  89# happyReduction_263-happyReduction_263 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut90 happy_x_2 of { happy_var_2 -> -	case happyOut95 happy_x_3 of { happy_var_3 -> -	happyIn95-		 (happy_var_2 : happy_var_3-	)}}--happyReduce_264 = happyReduce 5# 90# happyReduction_264-happyReduction_264 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> -	case happyOut22 happy_x_2 of { happy_var_2 -> -	case happyOut50 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokKeyword KwWhere happy_var_4) -> -	case happyOut115 happy_x_5 of { happy_var_5 -> -	happyIn96-		 (Module (getRange (happy_var_1,happy_var_4,happy_var_5)) happy_var_2 (map addType happy_var_3) happy_var_5-	) `HappyStk` happyRest}}}}}--happyReduce_265 = happySpecReduce_1  91# happyReduction_265-happyReduction_265 happy_x_1-	 =  case happyOut99 happy_x_1 of { happy_var_1 -> -	happyIn97-		 (Pragma happy_var_1-	)}--happyReduce_266 = happySpecReduce_1  92# happyReduction_266-happyReduction_266 happy_x_1-	 =  case happyOut100 happy_x_1 of { happy_var_1 -> -	happyIn98-		 (happy_var_1-	)}--happyReduce_267 = happySpecReduce_1  93# happyReduction_267-happyReduction_267 happy_x_1-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (happy_var_1-	)}--happyReduce_268 = happySpecReduce_1  93# happyReduction_268-happyReduction_268 happy_x_1-	 =  case happyOut102 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (happy_var_1-	)}--happyReduce_269 = happySpecReduce_1  93# happyReduction_269-happyReduction_269 happy_x_1-	 =  case happyOut104 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (happy_var_1-	)}--happyReduce_270 = happySpecReduce_1  93# happyReduction_270-happyReduction_270 happy_x_1-	 =  case happyOut103 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (happy_var_1-	)}--happyReduce_271 = happySpecReduce_1  93# happyReduction_271-happyReduction_271 happy_x_1-	 =  case happyOut106 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (happy_var_1-	)}--happyReduce_272 = happySpecReduce_1  93# happyReduction_272-happyReduction_272 happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (happy_var_1-	)}--happyReduce_273 = happySpecReduce_1  93# happyReduction_273-happyReduction_273 happy_x_1-	 =  case happyOut105 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (happy_var_1-	)}--happyReduce_274 = happyReduce 4# 94# happyReduction_274-happyReduction_274 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOut26 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokSymbol SymClosePragma happy_var_4) -> -	happyIn100-		 (OptionsPragma (fuseRange happy_var_1 happy_var_4) happy_var_3-	) `HappyStk` happyRest}}}--happyReduce_275 = happyReduce 5# 95# happyReduction_275-happyReduction_275 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOutTok happy_x_3 of { (TokString happy_var_3) -> -	case happyOut27 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (TokSymbol SymClosePragma happy_var_5) -> -	happyIn101-		 (BuiltinPragma (fuseRange happy_var_1 happy_var_5) (snd happy_var_3) (Ident happy_var_4)-	) `HappyStk` happyRest}}}}--happyReduce_276 = happyReduce 5# 96# happyReduction_276-happyReduction_276 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	case happyOut26 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (TokSymbol SymClosePragma happy_var_5) -> -	happyIn102-		 (CompiledPragma (fuseRange happy_var_1 happy_var_5) happy_var_3 (unwords happy_var_4)-	) `HappyStk` happyRest}}}}--happyReduce_277 = happyReduce 5# 97# happyReduction_277-happyReduction_277 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	case happyOut26 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (TokSymbol SymClosePragma happy_var_5) -> -	happyIn103-		 (CompiledTypePragma (fuseRange happy_var_1 happy_var_5) happy_var_3 (unwords happy_var_4)-	) `HappyStk` happyRest}}}}--happyReduce_278 = happyReduce 6# 98# happyReduction_278-happyReduction_278 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokString happy_var_4) -> -	case happyOut26 happy_x_5 of { happy_var_5 -> -	case happyOutTok happy_x_6 of { (TokSymbol SymClosePragma happy_var_6) -> -	happyIn104-		 (CompiledDataPragma (fuseRange happy_var_1 happy_var_6) happy_var_3 (snd happy_var_4) happy_var_5-	) `HappyStk` happyRest}}}}}--happyReduce_279 = happyReduce 4# 99# happyReduction_279-happyReduction_279 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (TokSymbol SymClosePragma happy_var_4) -> -	happyIn105-		 (EtaPragma (fuseRange happy_var_1 happy_var_4) happy_var_3-	) `HappyStk` happyRest}}}--happyReduce_280 = happyMonadReduce 4# 100# happyReduction_280-happyReduction_280 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen (case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOutTok happy_x_3 of { (TokString happy_var_3) -> -	case happyOutTok happy_x_4 of { (TokSymbol SymClosePragma happy_var_4) -> -	( let s = snd happy_var_3 in-       if validHaskellModuleName s-       then return $ ImportPragma (fuseRange happy_var_1 happy_var_4) s-       else parseError $ "Malformed module name: " ++ s ++ ".")}}}-	) (\r -> happyReturn (happyIn106 r))--happyReduce_281 = happySpecReduce_3  101# happyReduction_281-happyReduction_281 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> -	case happyOutTok happy_x_3 of { (TokSymbol SymClosePragma happy_var_3) -> -	happyIn107-		 (ImpossiblePragma (fuseRange happy_var_1 happy_var_3)-	)}}--happyReduce_282 = happyReduce 5# 102# happyReduction_282-happyReduction_282 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut109 happy_x_3 of { happy_var_3 -> -	happyIn108-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_283 = happyReduce 4# 103# happyReduction_283-happyReduction_283 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut109 happy_x_1 of { happy_var_1 -> -	case happyOut71 happy_x_4 of { happy_var_4 -> -	happyIn109-		 (reverse happy_var_4 ++ happy_var_1-	) `HappyStk` happyRest}}--happyReduce_284 = happySpecReduce_2  103# happyReduction_284-happyReduction_284 happy_x_2-	happy_x_1-	 =  case happyOut71 happy_x_2 of { happy_var_2 -> -	happyIn109-		 (reverse happy_var_2-	)}--happyReduce_285 = happyReduce 5# 104# happyReduction_285-happyReduction_285 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut111 happy_x_3 of { happy_var_3 -> -	happyIn110-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_286 = happyReduce 4# 105# happyReduction_286-happyReduction_286 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut111 happy_x_1 of { happy_var_1 -> -	case happyOut72 happy_x_4 of { happy_var_4 -> -	happyIn111-		 (reverse happy_var_4 ++ happy_var_1-	) `HappyStk` happyRest}}--happyReduce_287 = happySpecReduce_2  105# happyReduction_287-happyReduction_287 happy_x_2-	happy_x_1-	 =  case happyOut72 happy_x_2 of { happy_var_2 -> -	happyIn111-		 (reverse happy_var_2-	)}--happyReduce_288 = happyReduce 4# 106# happyReduction_288-happyReduction_288 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = happyIn112-		 ([]-	) `HappyStk` happyRest--happyReduce_289 = happySpecReduce_1  106# happyReduction_289-happyReduction_289 happy_x_1-	 =  case happyOut108 happy_x_1 of { happy_var_1 -> -	happyIn112-		 (happy_var_1-	)}--happyReduce_290 = happyReduce 4# 107# happyReduction_290-happyReduction_290 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = happyIn113-		 ((Nothing, [])-	) `HappyStk` happyRest--happyReduce_291 = happyReduce 6# 107# happyReduction_291-happyReduction_291 (happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut77 happy_x_4 of { happy_var_4 -> -	happyIn113-		 ((Just happy_var_4, [])-	) `HappyStk` happyRest}--happyReduce_292 = happyReduce 8# 107# happyReduction_292-happyReduction_292 (happy_x_8 `HappyStk`-	happy_x_7 `HappyStk`-	happy_x_6 `HappyStk`-	happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut77 happy_x_4 of { happy_var_4 -> -	case happyOut116 happy_x_6 of { happy_var_6 -> -	happyIn113-		 ((Just happy_var_4, reverse happy_var_6)-	) `HappyStk` happyRest}}--happyReduce_293 = happyReduce 5# 107# happyReduction_293-happyReduction_293 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut116 happy_x_3 of { happy_var_3 -> -	happyIn113-		 ((Nothing, reverse happy_var_3)-	) `HappyStk` happyRest}--happyReduce_294 = happyReduce 5# 108# happyReduction_294-happyReduction_294 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut116 happy_x_3 of { happy_var_3 -> -	happyIn114-		 (reverse happy_var_3-	) `HappyStk` happyRest}--happyReduce_295 = happyReduce 4# 109# happyReduction_295-happyReduction_295 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = happyIn115-		 ([]-	) `HappyStk` happyRest--happyReduce_296 = happySpecReduce_1  109# happyReduction_296-happyReduction_296 happy_x_1-	 =  case happyOut114 happy_x_1 of { happy_var_1 -> -	happyIn115-		 (happy_var_1-	)}--happyReduce_297 = happyReduce 4# 110# happyReduction_297-happyReduction_297 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut116 happy_x_1 of { happy_var_1 -> -	case happyOut69 happy_x_4 of { happy_var_4 -> -	happyIn116-		 (reverse happy_var_4 ++ happy_var_1-	) `HappyStk` happyRest}}--happyReduce_298 = happySpecReduce_2  110# happyReduction_298-happyReduction_298 happy_x_2-	happy_x_1-	 =  case happyOut69 happy_x_2 of { happy_var_2 -> -	happyIn116-		 (reverse happy_var_2-	)}--happyNewToken action sts stk-	= lexer(\tk -> -	let cont i = happyDoAction i tk action sts stk in-	case tk of {-	TokEOF -> happyDoAction 68# tk action sts stk;-	TokKeyword KwLet happy_dollar_dollar -> cont 1#;-	TokKeyword KwIn happy_dollar_dollar -> cont 2#;-	TokKeyword KwWhere happy_dollar_dollar -> cont 3#;-	TokKeyword KwWith happy_dollar_dollar -> cont 4#;-	TokKeyword KwRewrite happy_dollar_dollar -> cont 5#;-	TokKeyword KwPostulate happy_dollar_dollar -> cont 6#;-	TokKeyword KwPrimitive happy_dollar_dollar -> cont 7#;-	TokKeyword KwOpen happy_dollar_dollar -> cont 8#;-	TokKeyword KwImport happy_dollar_dollar -> cont 9#;-	TokKeyword KwUsing happy_dollar_dollar -> cont 10#;-	TokKeyword KwHiding happy_dollar_dollar -> cont 11#;-	TokKeyword KwRenaming happy_dollar_dollar -> cont 12#;-	TokKeyword KwTo happy_dollar_dollar -> cont 13#;-	TokKeyword KwPublic happy_dollar_dollar -> cont 14#;-	TokKeyword KwModule happy_dollar_dollar -> cont 15#;-	TokKeyword KwData happy_dollar_dollar -> cont 16#;-	TokKeyword KwCoData happy_dollar_dollar -> cont 17#;-	TokKeyword KwRecord happy_dollar_dollar -> cont 18#;-	TokKeyword KwConstructor happy_dollar_dollar -> cont 19#;-	TokKeyword KwField happy_dollar_dollar -> cont 20#;-	TokKeyword KwInfix happy_dollar_dollar -> cont 21#;-	TokKeyword KwInfixL happy_dollar_dollar -> cont 22#;-	TokKeyword KwInfixR happy_dollar_dollar -> cont 23#;-	TokKeyword KwMutual happy_dollar_dollar -> cont 24#;-	TokKeyword KwAbstract happy_dollar_dollar -> cont 25#;-	TokKeyword KwPrivate happy_dollar_dollar -> cont 26#;-	TokKeyword KwProp happy_dollar_dollar -> cont 27#;-	TokKeyword KwSet happy_dollar_dollar -> cont 28#;-	TokKeyword KwForall happy_dollar_dollar -> cont 29#;-	TokKeyword KwSyntax happy_dollar_dollar -> cont 30#;-	TokKeyword KwOPTIONS happy_dollar_dollar -> cont 31#;-	TokKeyword KwBUILTIN happy_dollar_dollar -> cont 32#;-	TokKeyword KwIMPORT happy_dollar_dollar -> cont 33#;-	TokKeyword KwIMPOSSIBLE happy_dollar_dollar -> cont 34#;-	TokKeyword KwETA happy_dollar_dollar -> cont 35#;-	TokKeyword KwCOMPILED happy_dollar_dollar -> cont 36#;-	TokKeyword KwCOMPILED_DATA happy_dollar_dollar -> cont 37#;-	TokKeyword KwCOMPILED_TYPE happy_dollar_dollar -> cont 38#;-	TokKeyword KwQuoteGoal happy_dollar_dollar -> cont 39#;-	TokKeyword KwQuote happy_dollar_dollar -> cont 40#;-	TokSetN happy_dollar_dollar -> cont 41#;-	TokTeX happy_dollar_dollar -> cont 42#;-	TokComment happy_dollar_dollar -> cont 43#;-	TokSymbol SymEllipsis happy_dollar_dollar -> cont 44#;-	TokSymbol SymDot happy_dollar_dollar -> cont 45#;-	TokSymbol SymSemi happy_dollar_dollar -> cont 46#;-	TokSymbol SymColon happy_dollar_dollar -> cont 47#;-	TokSymbol SymEqual happy_dollar_dollar -> cont 48#;-	TokSymbol SymUnderscore happy_dollar_dollar -> cont 49#;-	TokSymbol SymQuestionMark happy_dollar_dollar -> cont 50#;-	TokSymbol SymArrow happy_dollar_dollar -> cont 51#;-	TokSymbol SymLambda happy_dollar_dollar -> cont 52#;-	TokSymbol SymAs happy_dollar_dollar -> cont 53#;-	TokSymbol SymBar happy_dollar_dollar -> cont 54#;-	TokSymbol SymOpenParen happy_dollar_dollar -> cont 55#;-	TokSymbol SymCloseParen happy_dollar_dollar -> cont 56#;-	TokSymbol SymOpenBrace happy_dollar_dollar -> cont 57#;-	TokSymbol SymCloseBrace happy_dollar_dollar -> cont 58#;-	TokSymbol SymOpenVirtualBrace happy_dollar_dollar -> cont 59#;-	TokSymbol SymCloseVirtualBrace happy_dollar_dollar -> cont 60#;-	TokSymbol SymVirtualSemi happy_dollar_dollar -> cont 61#;-	TokSymbol SymOpenPragma happy_dollar_dollar -> cont 62#;-	TokSymbol SymClosePragma happy_dollar_dollar -> cont 63#;-	TokId happy_dollar_dollar -> cont 64#;-	TokQId happy_dollar_dollar -> cont 65#;-	TokString happy_dollar_dollar -> cont 66#;-	TokLiteral happy_dollar_dollar -> cont 67#;-	_ -> happyError' tk-	})--happyError_ tk = happyError' tk--happyThen :: () => Parser a -> (a -> Parser b) -> Parser b-happyThen = (>>=)-happyReturn :: () => a -> Parser a-happyReturn = (return)-happyThen1 = happyThen-happyReturn1 :: () => a -> Parser a-happyReturn1 = happyReturn-happyError' :: () => Token -> Parser a-happyError' tk = (\token -> happyError) tk--tokensParser = happySomeParser where-  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))--exprParser = happySomeParser where-  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut28 x))--moduleParser = happySomeParser where-  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut10 x))--happySeq = happyDontSeq---{---------------------------------------------------------------------------    Parsers- --------------------------------------------------------------------------}---- | Parse the token stream. Used by the TeX compiler.-tokensParser :: Parser [Token]---- | Parse an expression. Could be used in interactions.-exprParser :: Parser Expr---- | Parse a module.-moduleParser :: Parser Module---{---------------------------------------------------------------------------    Happy stuff- --------------------------------------------------------------------------}---- | Required by Happy.-happyError :: Parser a-happyError = parseError "Parse error"---{---------------------------------------------------------------------------    Utility functions- --------------------------------------------------------------------------}---- | Create a name from a string.--mkName :: (Interval, String) -> Parser Name-mkName (i, s) = do-    let xs = parts s-    mapM_ isValidId xs-    unless (alternating xs) $ fail $ "a name cannot contain two consecutive underscores"-    return $ Name (getRange i) xs-    where-        parts :: String -> [NamePart]-        parts ""        = []-        parts ('_' : s) = Hole : parts s-        parts s         = Id x : parts s'-          where (x, s') = break (== '_') s--	isValidId Hole   = return ()-	isValidId (Id x) = case parse defaultParseFlags [0] (lexer return) x of-	    ParseOk _ (TokId _) -> return ()-	    _			-> fail $ "in the name " ++ s ++ ", the part " ++ x ++ " is not valid"--	-- we know that there are no two Ids in a row-	alternating (Hole : Hole : _) = False-	alternating (_ : xs)	      = alternating xs-	alternating []		      = True---- | Create a qualified name from a list of strings-mkQName :: [(Interval, String)] -> Parser QName-mkQName ss = do-    xs <- mapM mkName ss-    return $ foldr Qual (QName $ last xs) (init xs)---- | Match a particular name.-isName :: String -> (Interval, String) -> Parser ()-isName s (_,s')-    | s == s'	= return ()-    | otherwise	= fail $ "expected " ++ s ++ ", found " ++ s'---- | Build a forall pi (forall x y z -> ...)-forallPi :: [LamBinding] -> Expr -> Expr-forallPi bs e = Pi (map addType bs) e---- | Converts lambda bindings to typed bindings.-addType :: LamBinding -> TypedBindings-addType (DomainFull b)	 = b-addType (DomainFree h x) = TypedBindings r $ Arg h Relevant [TBind r [x] $ Underscore r Nothing]-  where r = getRange x---- | Check that an import directive doesn't contain repeated names-verifyImportDirective :: ImportDirective -> Parser ImportDirective-verifyImportDirective i =-    case filter ((>1) . length)-	 $ group-	 $ sort xs-    of-	[]  -> return i-	yss -> let Just pos = rStart $ getRange $ head $ concat yss in-               parseErrorAt pos $-		"repeated name" ++ s ++ " in import directive: " ++-		concat (intersperse ", " $ map (show . head) yss)-	    where-		s = case yss of-			[_] -> ""-			_   -> "s"-    where-	xs = names (usingOrHiding i) ++ map renFrom (renaming i)-	names (Using xs)    = xs-	names (Hiding xs)   = xs---- | Breaks up a string into substrings. Returns every maximal--- subsequence of zero or more characters distinct from @'.'@.------ > splitOnDots ""         == [""]--- > splitOnDots "foo.bar"  == ["foo", "bar"]--- > splitOnDots ".foo.bar" == ["", "foo", "bar"]--- > splitOnDots "foo.bar." == ["foo", "bar", ""]--- > splitOnDots "foo..bar" == ["foo", "", "bar"]-splitOnDots :: String -> [String]-splitOnDots ""        = [""]-splitOnDots ('.' : s) = [] : splitOnDots s-splitOnDots (c   : s) = case splitOnDots s of-  p : ps -> (c : p) : ps--prop_splitOnDots = and-  [ splitOnDots ""         == [""]-  , splitOnDots "foo.bar"  == ["foo", "bar"]-  , splitOnDots ".foo.bar" == ["", "foo", "bar"]-  , splitOnDots "foo.bar." == ["foo", "bar", ""]-  , splitOnDots "foo..bar" == ["foo", "", "bar"]-  ]---- | Returns 'True' iff the name is a valid Haskell (hierarchical)--- module name.-validHaskellModuleName :: String -> Bool-validHaskellModuleName = all ok . splitOnDots-  where-  -- Checks if a dot-less module name is well-formed.-  ok :: String -> Bool-  ok []      = False-  ok (c : s) =-    isUpper c &&-    all (\c -> isLower c || c == '_' ||-               isUpper c ||-               generalCategory c == DecimalNumber ||-               c == '\'')-        s--{---------------------------------------------------------------------------    Patterns- --------------------------------------------------------------------------}---- | Turn an expression into a left hand side.-exprToLHS :: Expr -> Parser ([Expr] -> [Expr] -> LHS)-exprToLHS e = case e of-  WithApp r e es -> LHS <$> exprToPattern e <*> mapM exprToPattern es-  _		 -> LHS <$> exprToPattern e <*> return []---- | Turn an expression into a pattern. Fails if the expression is not a---   valid pattern.-exprToPattern :: Expr -> Parser Pattern-exprToPattern e =-    case e of-	Ident x			-> return $ IdentP x-	App _ e1 e2		-> AppP <$> exprToPattern e1-					<*> T.mapM (T.mapM exprToPattern) e2-	Paren r e		-> ParenP r-					<$> exprToPattern e-	Underscore r _		-> return $ WildP r-	Absurd r		-> return $ AbsurdP r-	As r x e		-> AsP r x <$> exprToPattern e-	Dot r (HiddenArg _ e)	-> return $ HiddenP r $ fmap (DotP r) e-	Dot r e			-> return $ DotP r e-	Lit l			-> return $ LitP l-	HiddenArg r e		-> HiddenP r <$> T.mapM exprToPattern e-	RawApp r es		-> RawAppP r <$> mapM exprToPattern es-	OpApp r x es		-> OpAppP r x <$> mapM exprToPattern es-	_			->-          let Just pos = rStart $ getRange e in-          parseErrorAt pos $ "Not a valid pattern: " ++ show e--{---------------------------------------------------------------------------    Tests- --------------------------------------------------------------------------}---- | Test suite.-tests :: IO Bool-tests = runTests "Agda.Syntax.Parser.Parser"-  [ quickCheck' prop_splitOnDots-  ]-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp --{-# LINE 28 "templates/GenericTemplate.hs" #-}---data Happy_IntList = HappyCons Int# Happy_IntList------{-# LINE 49 "templates/GenericTemplate.hs" #-}--{-# LINE 59 "templates/GenericTemplate.hs" #-}--{-# LINE 68 "templates/GenericTemplate.hs" #-}--infixr 9 `HappyStk`-data HappyStk a = HappyStk a (HappyStk a)---------------------------------------------------------------------------------- starting the parse--happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll---------------------------------------------------------------------------------- Accepting the parse---- If the current token is 0#, it means we've just accepted a partial--- parse (a %partial parser).  We must ignore the saved token on the top of--- the stack in this case.-happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =-	happyReturn1 ans-happyAccept j tk st sts (HappyStk ans _) = -	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)---------------------------------------------------------------------------------- Arrays only: do the next action----happyDoAction i tk st-	= {- nothing -}---	  case action of-		0#		  -> {- nothing -}-				     happyFail i tk st-		-1# 	  -> {- nothing -}-				     happyAccept i tk st-		n | (n <# (0# :: Int#)) -> {- nothing -}--				     (happyReduceArr ! rule) i tk st-				     where rule = (I# ((negateInt# ((n +# (1# :: Int#))))))-		n		  -> {- nothing -}---				     happyShift new_state i tk st-				     where new_state = (n -# (1# :: Int#))-   where off    = indexShortOffAddr happyActOffsets st-	 off_i  = (off +# i)-	 check  = if (off_i >=# (0# :: Int#))-			then (indexShortOffAddr happyCheck off_i ==#  i)-			else False- 	 action | check     = indexShortOffAddr happyTable off_i-		| otherwise = indexShortOffAddr happyDefActions st--{-# LINE 127 "templates/GenericTemplate.hs" #-}---indexShortOffAddr (HappyA# arr) off =-#if __GLASGOW_HASKELL__ > 500-	narrow16Int# i-#elif __GLASGOW_HASKELL__ == 500-	intToInt16# i-#else-	(i `iShiftL#` 16#) `iShiftRA#` 16#-#endif-  where-#if __GLASGOW_HASKELL__ >= 503-	i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)-#else-	i = word2Int# ((high `shiftL#` 8#) `or#` low)-#endif-	high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-	low  = int2Word# (ord# (indexCharOffAddr# arr off'))-	off' = off *# 2#------data HappyAddr = HappyA# Addr#------------------------------------------------------------------------------------- HappyState data type (not arrays)--{-# LINE 170 "templates/GenericTemplate.hs" #-}---------------------------------------------------------------------------------- Shifting a token--happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =-     let i = (case unsafeCoerce# x of { (I# (i)) -> i }) in---     trace "shifting the error token" $-     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)--happyShift new_state i tk st sts stk =-     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)---- happyReduce is specialised for the common cases.--happySpecReduce_0 i fn 0# tk st sts stk-     = happyFail 0# tk st sts stk-happySpecReduce_0 nt fn j tk st@((action)) sts stk-     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)--happySpecReduce_1 i fn 0# tk st sts stk-     = happyFail 0# tk st sts stk-happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')-     = let r = fn v1 in-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_2 i fn 0# tk st sts stk-     = happyFail 0# tk st sts stk-happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')-     = let r = fn v1 v2 in-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happySpecReduce_3 i fn 0# tk st sts stk-     = happyFail 0# tk st sts stk-happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')-     = let r = fn v1 v2 v3 in-       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))--happyReduce k i fn 0# tk st sts stk-     = happyFail 0# tk st sts stk-happyReduce k nt fn j tk st sts stk-     = case happyDrop (k -# (1# :: Int#)) sts of-	 sts1@((HappyCons (st1@(action)) (_))) ->-        	let r = fn stk in  -- it doesn't hurt to always seq here...-       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)--happyMonadReduce k nt fn 0# tk st sts stk-     = 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))-             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))-             drop_stk = happyDropStk k stk--             off    = indexShortOffAddr happyGotoOffsets st1-             off_i  = (off +# nt)-             new_state = indexShortOffAddr happyTable off_i-----happyDrop 0# l = l-happyDrop n (HappyCons (_) (t)) = happyDrop (n -# (1# :: Int#)) t--happyDropStk 0# l = l-happyDropStk n (x `HappyStk` xs) = happyDropStk (n -# (1#::Int#)) xs---------------------------------------------------------------------------------- Moving to a new state after a reduction---happyGoto nt j tk st = -   {- nothing -}-   happyDoAction j tk new_state-   where off    = indexShortOffAddr happyGotoOffsets st-	 off_i  = (off +# nt)- 	 new_state = indexShortOffAddr happyTable off_i------------------------------------------------------------------------------------- Error recovery (0# is the error token)---- parse error if we are in recovery and we fail again-happyFail  0# tk old_st _ stk =---	trace "failing" $ -    	happyError_ tk--{-  We don't need state discarding for our restricted implementation of-    "error".  In fact, it can cause some bogus parses, so I've disabled it-    for now --SDM---- discard a state-happyFail  0# tk old_st (HappyCons ((action)) (sts)) -						(saved_tok `HappyStk` _ `HappyStk` stk) =---	trace ("discarding state, depth " ++ show (length stk))  $-	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))--}---- Enter error recovery: generate an error token,---                       save the old token and carry on.-happyFail  i tk (action) sts stk =---      trace "entering error recovery" $-	happyDoAction 0# tk action sts ( (unsafeCoerce# (I# (i))) `HappyStk` stk)---- Internal happy errors:--notHappyAtAll = error "Internal Happy error\n"---------------------------------------------------------------------------------- Hack to get the typechecker to accept our action functions---happyTcHack :: Int# -> a -> a+{-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}+{-# OPTIONS -fglasgow-exts -cpp #-}+{-# OPTIONS_GHC -fno-warn-incomplete-patterns+                -fno-warn-deprecated-flags #-}+{-| The parser is generated by Happy (<http://www.haskell.org/happy>).+-}+module Agda.Syntax.Parser.Parser (+      moduleParser+    , exprParser+    , tokensParser+    , tests+    ) where++import Control.Arrow+import Control.Monad+import Control.Monad.State+import Data.Char+import Data.List+import Data.Maybe+import qualified Data.Traversable as T++import Agda.Syntax.Position hiding (tests)+import Agda.Syntax.Parser.Monad+import Agda.Syntax.Parser.Lexer+import Agda.Syntax.Parser.Tokens+import Agda.Syntax.Concrete+import Agda.Syntax.Concrete.Name+import Agda.Syntax.Concrete.Pretty+import Agda.Syntax.Common+import Agda.Syntax.Fixity+import Agda.Syntax.Notation+import Agda.Syntax.Literal++import Agda.Utils.Monad+import Agda.Utils.QuickCheck+import Agda.Utils.TestHelpers+import qualified Data.Array as Happy_Data_Array+import qualified GHC.Exts as Happy_GHC_Exts++-- parser produced by Happy Version 1.18.5++newtype HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63 = HappyAbsSyn HappyAny+#if __GLASGOW_HASKELL__ >= 607+type HappyAny = Happy_GHC_Exts.Any+#else+type HappyAny = forall a . a+#endif+happyIn6 :: ([Token]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn6 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn6 #-}+happyOut6 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Token])+happyOut6 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut6 #-}+happyIn7 :: ([Token]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn7 #-}+happyOut7 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Token])+happyOut7 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut7 #-}+happyIn8 :: (Token) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn8 #-}+happyOut8 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Token)+happyOut8 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut8 #-}+happyIn9 :: (()) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn9 #-}+happyOut9 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (())+happyOut9 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut9 #-}+happyIn10 :: (([Pragma], [Declaration])) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn10 #-}+happyOut10 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (([Pragma], [Declaration]))+happyOut10 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut10 #-}+happyIn11 :: t11 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn11 #-}+happyOut11 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t11+happyOut11 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut11 #-}+happyIn12 :: t12 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn12 #-}+happyOut12 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t12+happyOut12 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut12 #-}+happyIn13 :: t13 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn13 #-}+happyOut13 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t13+happyOut13 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut13 #-}+happyIn14 :: (()) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn14 #-}+happyOut14 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (())+happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut14 #-}+happyIn15 :: (Integer) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn15 #-}+happyOut15 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Integer)+happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut15 #-}+happyIn16 :: (Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn16 #-}+happyOut16 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Name)+happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut16 #-}+happyIn17 :: ([Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn17 #-}+happyOut17 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Name])+happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut17 #-}+happyIn18 :: (Arg Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn18 #-}+happyOut18 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Arg Name)+happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut18 #-}+happyIn19 :: ([Arg Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn19 #-}+happyOut19 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg Name])+happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut19 #-}+happyIn20 :: ([Arg Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn20 #-}+happyOut20 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg Name])+happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut20 #-}+happyIn21 :: (QName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn21 #-}+happyOut21 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (QName)+happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut21 #-}+happyIn22 :: (QName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (QName)+happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: (Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Name)+happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyIn24 :: ([Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn24 #-}+happyOut24 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Name])+happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut24 #-}+happyIn25 :: ([Name]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn25 #-}+happyOut25 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Name])+happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut25 #-}+happyIn26 :: ([String]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn26 #-}+happyOut26 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([String])+happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut26 #-}+happyIn27 :: (QName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn27 #-}+happyOut27 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (QName)+happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut27 #-}+happyIn28 :: (Expr) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn28 #-}+happyOut28 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Expr)+happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut28 #-}+happyIn29 :: t29 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t29+happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut29 #-}+happyIn30 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])+happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut30 #-}+happyIn31 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])+happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut31 #-}+happyIn32 :: t32 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t32+happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut32 #-}+happyIn33 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn33 #-}+happyOut33 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])+happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut33 #-}+happyIn34 :: t34 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t34+happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut34 #-}+happyIn35 :: ([(Name, Expr)]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([(Name, Expr)])+happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut35 #-}+happyIn36 :: ([(Name, Expr)]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn36 #-}+happyOut36 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([(Name, Expr)])+happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut36 #-}+happyIn37 :: ((Name, Expr)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((Name, Expr))+happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut37 #-}+happyIn38 :: t38 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn38 #-}+happyOut38 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t38+happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut38 #-}+happyIn39 :: t39 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t39+happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut39 #-}+happyIn40 :: ([TypedBindings]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypedBindings])+happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut40 #-}+happyIn41 :: (TypedBindings) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (TypedBindings)+happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut41 #-}+happyIn42 :: ([TypedBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypedBinding])+happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut42 #-}+happyIn43 :: ([TypedBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypedBinding])+happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut43 #-}+happyIn44 :: (TypedBinding) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (TypedBinding)+happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut44 #-}+happyIn45 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])+happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut45 #-}+happyIn46 :: (([LamBinding], Hiding)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (([LamBinding], Hiding))+happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut46 #-}+happyIn47 :: ([Either Hiding LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Either Hiding LamBinding])+happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut47 #-}+happyIn48 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])+happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut48 #-}+happyIn49 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])+happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut49 #-}+happyIn50 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])+happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut50 #-}+happyIn51 :: ([LamBinding]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([LamBinding])+happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut51 #-}+happyIn52 :: ((Maybe AsName, ImportDirective)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((Maybe AsName, ImportDirective))+happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut52 #-}+happyIn53 :: (ImportDirective) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportDirective)+happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut53 #-}+happyIn54 :: (ImportDirective) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportDirective)+happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut54 #-}+happyIn55 :: (ImportDirective) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportDirective)+happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut55 #-}+happyIn56 :: ((UsingOrHiding , Range)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn56 #-}+happyOut56 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((UsingOrHiding , Range))+happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut56 #-}+happyIn57 :: (([Renaming] , Range)) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn57 #-}+happyOut57 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (([Renaming] , Range))+happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut57 #-}+happyIn58 :: ([Renaming]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn58 #-}+happyOut58 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Renaming])+happyOut58 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut58 #-}+happyIn59 :: (Renaming) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn59 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn59 #-}+happyOut59 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Renaming)+happyOut59 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut59 #-}+happyIn60 :: (ImportedName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn60 #-}+happyOut60 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportedName)+happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut60 #-}+happyIn61 :: (ImportedName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn61 #-}+happyOut61 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (ImportedName)+happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut61 #-}+happyIn62 :: ([ImportedName]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn62 #-}+happyOut62 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([ImportedName])+happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut62 #-}+happyIn63 :: t63 -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn63 #-}+happyOut63 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> t63+happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut63 #-}+happyIn64 :: (LHS) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn64 #-}+happyOut64 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (LHS)+happyOut64 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut64 #-}+happyIn65 :: ([Pattern]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn65 #-}+happyOut65 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Pattern])+happyOut65 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut65 #-}+happyIn66 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn66 #-}+happyOut66 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])+happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut66 #-}+happyIn67 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn67 #-}+happyOut67 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])+happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut67 #-}+happyIn68 :: (WhereClause) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn68 #-}+happyOut68 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (WhereClause)+happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut68 #-}+happyIn69 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn69 #-}+happyOut69 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut69 #-}+happyIn70 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn70 #-}+happyOut70 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut70 #-}+happyIn71 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn71 #-}+happyOut71 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut71 #-}+happyIn72 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn72 #-}+happyOut72 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut72 #-}+happyIn73 :: ([Arg Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn73 #-}+happyOut73 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg Declaration])+happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut73 #-}+happyIn74 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn74 #-}+happyOut74 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut74 #-}+happyIn75 :: (RHS) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn75 #-}+happyOut75 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (RHS)+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut75 #-}+happyIn76 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn76 #-}+happyOut76 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut76 #-}+happyIn77 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn77 #-}+happyOut77 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut77 #-}+happyIn78 :: (Name) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn78 #-}+happyOut78 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Name)+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut78 #-}+happyIn79 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn79 #-}+happyOut79 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut79 #-}+happyIn80 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn80 #-}+happyOut80 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut80 #-}+happyIn81 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn81 #-}+happyOut81 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut81 #-}+happyIn82 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn82 #-}+happyOut82 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut82 #-}+happyIn83 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn83 #-}+happyOut83 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut83 #-}+happyIn84 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn84 #-}+happyOut84 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut84 #-}+happyIn85 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn85 #-}+happyOut85 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut85 #-}+happyIn86 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn86 #-}+happyOut86 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut86 #-}+happyIn87 :: ([String]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn87 #-}+happyOut87 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([String])+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut87 #-}+happyIn88 :: ([HoleName]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn88 #-}+happyOut88 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([HoleName])+happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut88 #-}+happyIn89 :: (HoleName) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn89 #-}+happyOut89 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (HoleName)+happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut89 #-}+happyIn90 :: (String) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn90 #-}+happyOut90 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (String)+happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut90 #-}+happyIn91 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn91 #-}+happyOut91 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut91 #-}+happyIn92 :: ([Expr]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn92 #-}+happyOut92 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Expr])+happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut92 #-}+happyIn93 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn93 #-}+happyOut93 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut93 #-}+happyIn94 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn94 #-}+happyOut94 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut94 #-}+happyIn95 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn95 #-}+happyOut95 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut95 #-}+happyIn96 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn96 #-}+happyOut96 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut96 #-}+happyIn97 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn97 #-}+happyOut97 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut97 #-}+happyIn98 :: (Declaration) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn98 #-}+happyOut98 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Declaration)+happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut98 #-}+happyIn99 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn99 #-}+happyOut99 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut99 #-}+happyIn100 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn100 #-}+happyOut100 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut100 #-}+happyIn101 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn101 #-}+happyOut101 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut101 #-}+happyIn102 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn102 #-}+happyOut102 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut102 #-}+happyIn103 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn103 #-}+happyOut103 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut103 #-}+happyIn104 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn104 #-}+happyOut104 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut104 #-}+happyIn105 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn105 #-}+happyOut105 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut105 #-}+happyIn106 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn106 #-}+happyOut106 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut106 #-}+happyIn107 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn107 #-}+happyOut107 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut107 #-}+happyIn108 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn108 #-}+happyOut108 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut108 #-}+happyIn109 :: (Pragma) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn109 #-}+happyOut109 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Pragma)+happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut109 #-}+happyIn110 :: ([TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn110 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn110 #-}+happyOut110 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypeSignature])+happyOut110 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut110 #-}+happyIn111 :: ([TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn111 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn111 #-}+happyOut111 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypeSignature])+happyOut111 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut111 #-}+happyIn112 :: ([TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn112 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn112 #-}+happyOut112 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypeSignature])+happyOut112 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut112 #-}+happyIn113 :: ([TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn113 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn113 #-}+happyOut113 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([TypeSignature])+happyOut113 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut113 #-}+happyIn114 :: ([Arg TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn114 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn114 #-}+happyOut114 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg TypeSignature])+happyOut114 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut114 #-}+happyIn115 :: ([Arg TypeSignature]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn115 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn115 #-}+happyOut115 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Arg TypeSignature])+happyOut115 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut115 #-}+happyIn116 :: ([Constructor]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn116 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn116 #-}+happyOut116 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Constructor])+happyOut116 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut116 #-}+happyIn117 :: ((Maybe Name, [Declaration])) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn117 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn117 #-}+happyOut117 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ((Maybe Name, [Declaration]))+happyOut117 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut117 #-}+happyIn118 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn118 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn118 #-}+happyOut118 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut118 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut118 #-}+happyIn119 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn119 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn119 #-}+happyOut119 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut119 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut119 #-}+happyIn120 :: ([Declaration]) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyIn120 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyIn120 #-}+happyOut120 :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> ([Declaration])+happyOut120 x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOut120 #-}+happyInTok :: (Token) -> (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63)+happyInTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn t11 t12 t13 t29 t32 t34 t38 t39 t63) -> (Token)+happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\x00\x00\xaf\x03\xe9\x04\x00\x00\x5d\x02\xaf\x00\xd7\x04\xe7\x04\x00\x00\xe7\x04\xdd\x04\x00\x00\xcc\x04\x00\x00\x00\x00\x00\x00\x00\x00\x48\x01\x31\x03\xaf\x03\xdc\x04\x00\x00\x91\x01\xe4\x04\xce\x04\x00\x00\x00\x00\x42\x04\xc6\x04\x00\x00\x00\x00\x08\x01\x00\x00\x00\x00\xc3\x03\x0f\x03\xed\x02\x00\x00\x00\x00\x00\x00\x99\x04\x7b\x01\xcf\x04\xb8\x04\xc2\x04\xaf\x04\xae\x04\x00\x00\x90\x04\x8f\x04\x00\x00\x00\x00\x00\x00\xc3\x03\xaf\x03\x00\x00\x84\x04\xc3\x03\x00\x00\x85\x03\x70\x03\x00\x00\xcb\x02\xa7\x00\xb7\x04\xfb\x02\x5b\x03\x83\x04\xfb\x02\xc4\x03\xc4\x03\x75\x04\x73\x04\xa3\x04\x00\x00\xc4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x03\xc4\x03\x08\x01\x00\x00\x00\x00\x77\x04\x77\x04\x00\x00\x77\x04\x00\x00\xfa\xff\xf9\x02\xf9\x02\x82\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x04\x00\x00\x00\x00\xfb\x02\x96\x00\x08\x01\xf9\x02\x00\x00\x3c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x61\x04\x00\x00\x00\x00\xc4\x03\x5b\x03\x6c\x04\x6d\x04\x5b\x04\x00\x00\x66\x04\xe8\xff\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x03\x00\x00\x00\x00\x5b\x03\x5b\x03\x58\x04\x00\x00\x62\x04\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x04\x00\x00\x5b\x03\xa1\x02\xf9\xff\x00\x00\x96\x00\x08\x01\xd0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x04\x00\x00\x53\x04\x50\x04\x4f\x04\x0e\x03\x45\x04\xfb\x02\x7c\x04\xfb\x02\x3e\x04\x35\x04\x00\x00\x00\x00\x00\x00\x52\x04\x00\x00\xd0\x03\x00\x00\x67\x04\x52\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x4e\x04\x00\x00\xc5\x01\x70\x04\x3b\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x04\x40\x04\xc9\x00\x29\x04\x29\x04\x29\x04\x86\x01\x37\x04\x1d\x04\x1d\x04\x1d\x04\x34\x04\x34\x04\x34\x04\x10\x04\x26\x04\x08\x01\x7d\x06\x00\x00\x00\x00\x5b\x03\x00\x00\x00\x00\x1b\x04\x18\x04\x1a\x04\x16\x04\x16\x04\x16\x04\x16\x04\x16\x04\xfd\x00\x4b\x04\x08\x01\x8d\x00\x00\x00\x00\x00\x00\x00\xc3\x00\x00\x00\xc3\x00\xc3\x00\x0b\x04\x00\x00\xfb\x02\xfb\x02\xfb\x02\xfb\x02\x0e\x04\x0a\x04\x00\x00\x08\x04\x00\x00\x4a\x00\x5b\x03\x3f\x04\x5b\x03\x5b\x03\xa1\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x04\x06\x04\x00\x00\x01\x04\x05\x04\xfc\x03\xfb\x03\x04\x04\x25\x04\x00\x00\x00\x00\xee\x03\x00\x00\x00\x00\xfe\x03\xe6\x03\xe6\x03\x17\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x03\x00\x00\x00\x00\xfa\x03\xe2\x03\xf5\x03\xf5\x03\xfb\x02\x10\x00\xf2\x03\xf1\x03\xe7\x03\xeb\x03\xc3\x00\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x00\x00\xe0\x03\x00\x00\xd6\x03\x08\x01\xff\x03\x5b\x03\xbe\x03\x00\x00\xbe\x03\xbd\x03\xb5\x03\xb4\x03\x00\x00\xab\x03\xac\x03\xaa\x03\x00\x00\x00\x00\xa8\x03\xa0\x03\xa6\x03\xa5\x03\x00\x00\x00\x00\x00\x00\x83\x03\x00\x00\x83\x03\x00\x00\xfe\x00\xf9\xff\x5b\x03\x5b\x03\x5b\x03\x97\x03\x5b\x03\x8f\x03\x7b\x03\xf9\xff\x0f\x00\xf9\xff\xb8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x02\x00\x00\x8e\x03\x1d\x00\x8e\x03\x00\x00\x0f\x00\x86\x03\x00\x00\x74\x03\x1d\x00\x81\x03\x68\x03\x77\x03\x00\x00\x5b\x03\xd0\x03\x00\x00\xa3\x03\xa1\x03\x98\x03\x1d\x00\x6b\x03\xfe\x00\x64\x03\x00\x00\x2a\x01\x0f\x00\x4e\x03\x00\x00\x5e\x03\x00\x00\x00\x00\x51\x03\x00\x00\x00\x00\x00\x00\x49\x03\x00\x00\x4d\x03\x00\x00\x39\x03\x5b\x03\x00\x00\xfe\x00\x00\x00\x5c\x03\x5c\x03\x5c\x03\x00\x00\xd0\x03\x5b\x03\x00\x00\x2d\x03\x00\x00\x5b\x03\x00\x00\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x03\x00\x00\x00\x00\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x2c\x03\xfe\x00\x28\x03\x00\x00\x00\x00\xfe\x00\x3f\x03\x3f\x03\x12\x00\xd4\x01\xf9\xff\x00\x00\x1d\x00\x00\x00\xf9\xff\x1d\x03\x00\x00\x00\x00\x1d\x00\x32\x03\x00\x00\xf9\xff\x00\x00\x1d\x00\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\xef\x02\x79\x06\x11\x00\x56\x03\x52\x03\xf5\x01\x00\x00\x4f\x03\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9\x03\x64\x06\x00\x00\x00\x00\x8b\x02\x0e\x00\x00\x00\x00\x00\x00\x00\x6d\x01\x3b\x03\x00\x00\x00\x00\x0f\x01\x00\x00\x00\x00\x1f\x00\x4d\x04\x32\x04\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\x1b\x02\x4f\x06\x00\x00\x00\x00\xe7\x01\x00\x00\x8a\x04\x76\x04\x00\x00\x3a\x06\x25\x06\x00\x00\x13\x03\x10\x06\x00\x00\x2c\x02\x68\x04\x3c\x03\x2c\x00\x00\x00\x00\x00\x00\x00\xf8\x02\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x05\x65\x03\xd4\x00\x00\x00\x00\x00\x30\x00\x08\x00\x00\x00\x2f\x00\x00\x00\xb6\x02\x30\x02\x14\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x03\x00\x00\x00\x00\xce\x02\xa2\x04\x36\x00\xcf\x01\x00\x00\x9f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x03\xe6\x05\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x04\x00\x00\x00\x00\xbc\x05\xa7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x32\x01\x00\x00\x92\x05\x6c\x01\xa8\x02\x00\x00\x8d\x04\x35\x00\xcb\x04\x00\x00\x00\x00\x00\x00\x00\x00\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x02\x35\x03\x9b\x02\x00\x00\xfa\x01\x00\x00\x15\x03\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\xb6\x04\x00\x00\xfa\x00\xd6\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2a\x03\x23\x03\x00\x00\x00\x00\xd6\x02\xde\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x19\x00\x06\x00\x37\x01\x04\x03\xfc\x02\xf7\x02\xf2\x02\x16\x00\xe9\x02\xdb\x02\xd8\x02\x0d\x00\x0c\x00\x0b\x00\xcd\x02\x9a\x02\xb1\x00\x00\x00\x00\x00\x00\x00\xf8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x02\xad\x02\x9f\x02\x91\x02\x47\x02\x00\x00\x18\x02\x6e\x01\x7e\x02\x00\x00\x00\x00\x00\x00\x83\x01\x00\x00\x70\x01\x57\x01\x00\x00\x00\x00\xef\x01\xb5\x01\x82\x01\x6f\x01\x2f\x02\x00\x00\x00\x00\x00\x00\x00\x00\xfd\x01\x7d\x05\xdb\x01\x68\x05\x53\x05\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x02\x00\x00\x03\x02\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\xfb\x01\xec\x01\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x05\x00\x00\x00\x00\x0a\x00\xe9\x01\x04\x00\x1e\x00\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\xdb\x00\x00\x00\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x00\x00\xa5\x01\x44\x01\x81\x01\x29\x05\xa0\x01\x00\x00\x90\x01\x00\x00\x85\x01\x00\x00\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x00\x00\x93\x00\x00\x00\x21\x00\x42\x02\x14\x05\xff\x04\xea\x04\x05\x00\xd5\x04\x00\x00\xb2\x00\x35\x02\x84\x00\xfc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x00\x00\x09\x00\x50\x01\x40\x01\x00\x00\x6f\x03\x00\x00\x00\x00\x12\x01\x00\x01\xf5\x00\xcc\x01\x00\x00\x00\x00\xc0\x04\x9e\x03\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\xd0\x00\xd0\x02\x00\x00\x00\x00\xb7\x00\xb7\x02\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\xff\x00\x00\x00\x00\x00\x00\x4c\x00\xab\x04\x00\x00\x20\x00\x00\x00\x03\x00\x18\x00\x17\x00\x00\x00\xba\x02\x91\x04\x00\x00\x15\x00\x00\x00\x87\x01\x00\x00\x2b\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\x2b\x01\x00\x00\x00\x00\x00\x00\x9f\x00\xff\xff\x1b\x00\x1c\x00\x4e\x00\xbb\x01\x00\x00\x66\x00\x00\x00\x88\x01\x44\x00\x00\x00\x00\x00\x3d\x00\xfe\xff\x00\x00\x37\x00\x00\x00\x33\x00\x00\x00\x00\x00"#++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\xfa\xff\x00\x00\xb5\xff\x00\x00\xfc\xff\x00\x00\x00\x00\xb5\xff\xb2\xff\xb5\xff\x9c\xff\x82\xff\x00\x00\x8f\xff\x8e\xff\x8c\xff\x8b\xff\x00\x00\x86\xff\x00\x00\x00\x00\x6c\xff\x6a\xff\xb5\xff\x00\x00\x7e\xff\x7d\xff\x00\x00\x00\x00\x7c\xff\x7b\xff\x00\x00\x7f\xff\x80\xff\x00\x00\x00\x00\x00\x00\xaa\xff\x9d\xff\x81\xff\x00\x00\x9c\xff\x00\x00\x00\x00\x8c\xff\x00\x00\x67\xff\x77\xff\x00\x00\x00\x00\x76\xff\x9a\xff\x51\xff\x5c\xff\x00\x00\x88\xff\x60\xff\x5d\xff\x99\xff\x00\x00\x00\x00\x74\xff\x00\x00\x00\x00\x00\x00\x55\xff\x00\x00\x00\x00\x56\xff\x00\x00\x00\x00\x72\xff\x00\x00\x00\x00\x6b\xff\x00\x00\x6d\xff\x92\xff\x8a\xff\x83\xff\x00\x00\x00\x00\x00\x00\xb4\xff\xb3\xff\xb5\xff\xb5\xff\xf7\xfe\xb5\xff\xf2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xf9\xff\xf8\xff\xf7\xff\xf6\xff\xf5\xff\xf4\xff\xf3\xff\xf2\xff\xf1\xff\xf0\xff\xef\xff\xee\xff\xed\xff\xec\xff\xeb\xff\xea\xff\xe9\xff\xe8\xff\xe7\xff\xe6\xff\xe5\xff\xe4\xff\xe3\xff\xe2\xff\xe1\xff\xe0\xff\xdf\xff\xde\xff\xdd\xff\xdc\xff\xdb\xff\xda\xff\xd9\xff\xd4\xff\xd3\xff\xd8\xff\xd7\xff\xd6\xff\xd5\xff\xd2\xff\xd1\xff\xd0\xff\xcf\xff\xce\xff\xcd\xff\xcc\xff\xcb\xff\xca\xff\xc9\xff\xc8\xff\xc7\xff\xc6\xff\xc5\xff\xc4\xff\xc3\xff\xc2\xff\xc1\xff\xc0\xff\xbf\xff\xbe\xff\xbd\xff\xbc\xff\xbb\xff\xba\xff\xb9\xff\xb8\xff\xb7\xff\xb6\xff\x95\xff\x9c\xff\x9b\xff\x52\xff\x47\xff\xfe\xfe\x00\x00\xb1\xff\x00\x00\xf6\xfe\xf5\xfe\x75\xff\x8d\xff\x00\x00\x90\xff\x96\xff\x86\xff\x00\x00\xb5\xff\x00\x00\x00\x00\x71\xff\x70\xff\x00\x00\x58\xff\x59\xff\x91\xff\x57\xff\x00\x00\x5a\xff\x5b\xff\x5f\xff\x61\xff\x89\xff\x5e\xff\x69\xff\x78\xff\x00\x00\x68\xff\x7a\xff\x00\x00\x00\x00\x00\x00\x62\xff\x63\xff\x65\xff\x66\xff\x85\xff\x50\xff\x00\x00\x73\xff\x00\x00\x00\x00\xb5\xff\x87\xff\x47\xff\xfe\xfe\x47\xff\xfa\xfe\x4f\xff\x4d\xff\x4b\xff\x48\xff\x49\xff\x00\x00\x00\x00\x00\x00\x47\xff\x00\x00\x52\xff\x00\x00\x52\xff\x00\x00\x95\xff\x94\xff\xe9\xfe\x54\xff\xb5\xff\x53\xff\x47\xff\x4c\xff\xac\xff\x00\x00\x3c\xff\x4a\xff\xff\xfe\xfd\xfe\xf9\xfe\x00\x00\xb5\xff\xae\xff\x9c\xff\x32\xff\x15\xff\xcd\xfe\x2d\xff\x2b\xff\x2a\xff\x29\xff\x28\xff\x2c\xff\x27\xff\x26\xff\x25\xff\x24\xff\x23\xff\x1d\xff\x22\xff\x20\xff\x21\xff\x1f\xff\x1e\xff\xf3\xfe\xf1\xfe\xf0\xfe\xee\xfe\xef\xfe\xed\xfe\xea\xfe\xec\xfe\xeb\xfe\xb5\xff\xb5\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\x00\x00\x00\x00\xb5\xff\xb5\xff\xb5\xff\x00\x00\x36\xff\x00\x00\x00\x00\x6e\xff\x6f\xff\x00\x00\x79\xff\x64\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\xff\x32\xff\x00\x00\x00\x00\x0a\xff\x0b\xff\x0c\xff\x00\x00\xab\xff\x00\x00\x00\x00\x00\x00\x0d\xff\x52\xff\x52\xff\x52\xff\x52\xff\x00\x00\x00\x00\x08\xff\x00\x00\x09\xff\x30\xff\x00\x00\x34\xff\x00\x00\x00\x00\x00\x00\xd1\xfe\xaf\xff\xb0\xff\xad\xff\x3e\xff\x3a\xff\x00\x00\x3b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x42\xff\x00\x00\xac\xff\x4e\xff\x00\x00\xcf\xfe\xf4\xfe\xb5\xff\x00\x00\x00\x00\xac\xff\x44\xff\x40\xff\x45\xff\x3d\xff\x46\xff\x00\x00\xce\xfe\x1a\xff\x31\xff\x38\xff\x00\x00\x16\xff\x17\xff\xb5\xff\x00\x00\xb5\xff\xb5\xff\x52\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\x97\xff\x10\xff\x0f\xff\x0e\xff\x00\x00\x04\xff\x02\xff\x00\x00\x00\xff\x36\xff\x84\xff\x34\xff\x00\x00\x95\xff\x93\xff\x95\xff\x00\x00\x95\xff\x00\x00\xe1\xfe\x00\x00\x00\x00\x00\x00\xe2\xfe\xe3\xfe\x00\x00\x95\xff\x00\x00\x00\x00\x1b\xff\x37\xff\x35\xff\x00\x00\x03\xff\x00\x00\x98\xff\x00\x00\xb5\xff\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\x00\x00\x00\x00\xb5\xff\x00\x00\xb5\xff\x00\x00\x2f\xff\x33\xff\x39\xff\x43\xff\x41\xff\x3f\xff\x00\x00\xd0\xfe\xb5\xff\x00\x00\xb5\xff\xa6\xff\xa4\xff\x00\x00\xdb\xfe\x00\x00\x00\x00\xb5\xff\xa8\xff\x00\x00\xde\xfe\x00\x00\x47\xff\xf8\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xb5\xff\xa2\xff\x00\x00\xd8\xfe\x00\x00\x00\x00\x07\xff\x06\xff\x00\x00\xe4\xfe\xe6\xfe\x00\x00\xe7\xfe\xe8\xfe\xe5\xfe\x00\x00\x05\xff\x00\x00\xa7\xff\x00\x00\x00\x00\xa3\xff\x00\x00\xda\xfe\xb5\xff\xb5\xff\xb5\xff\xfc\xfe\x47\xff\x00\x00\xa9\xff\x00\x00\xe0\xfe\x00\x00\xa5\xff\x00\x00\xdd\xfe\x2e\xff\xdc\xfe\x19\xff\xdf\xfe\x1c\xff\xfb\xfe\x00\x00\xd6\xfe\x14\xff\x13\xff\x00\x00\x12\xff\xd9\xfe\x18\xff\x00\x00\xa0\xff\x00\x00\x01\xff\xa1\xff\x9e\xff\xb5\xff\xb5\xff\x00\x00\x00\x00\xb5\xff\x9f\xff\x00\x00\xd5\xfe\xb5\xff\x00\x00\xd7\xfe\x11\xff\x00\x00\xb5\xff\xd2\xfe\xb5\xff\xd4\xfe\x00\x00\xd3\xfe"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x03\x00\x03\x00\x09\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x03\x00\x03\x00\x04\x00\x05\x00\x03\x00\x30\x00\x03\x00\x03\x00\x03\x00\x03\x00\x00\x00\x03\x00\x0a\x00\x0b\x00\x03\x00\x06\x00\x3b\x00\x2b\x00\x54\x00\x0a\x00\x0b\x00\x2f\x00\x0a\x00\x0a\x00\x0a\x00\x0c\x00\x0c\x00\x0e\x00\x0e\x00\x11\x00\x0a\x00\x03\x00\x03\x00\x05\x00\x0a\x00\x0a\x00\x0c\x00\x0d\x00\x06\x00\x03\x00\x41\x00\x42\x00\x2e\x00\x07\x00\x0a\x00\x0a\x00\x31\x00\x23\x00\x06\x00\x0f\x00\x0f\x00\x27\x00\x28\x00\x29\x00\x1d\x00\x1e\x00\x1f\x00\x2d\x00\x03\x00\x0a\x00\x3d\x00\x41\x00\x1c\x00\x1c\x00\x41\x00\x06\x00\x40\x00\x0a\x00\x0b\x00\x0a\x00\x0f\x00\x3d\x00\x3e\x00\x40\x00\x0f\x00\x37\x00\x38\x00\x39\x00\x0f\x00\x5a\x00\x43\x00\x43\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x5a\x00\x06\x00\x42\x00\x68\x00\x6b\x00\x72\x00\x72\x00\x6f\x00\x72\x00\x72\x00\x70\x00\x71\x00\x70\x00\x71\x00\x70\x00\x70\x00\x70\x00\x70\x00\x70\x00\x70\x00\x68\x00\x68\x00\x6d\x00\x6c\x00\x6a\x00\x69\x00\x6e\x00\x6e\x00\x69\x00\x3a\x00\x5a\x00\x5a\x00\x56\x00\x56\x00\x3f\x00\x0a\x00\x41\x00\x0c\x00\x0d\x00\x44\x00\x41\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x54\x00\x0a\x00\x0b\x00\x0c\x00\x55\x00\x0e\x00\x57\x00\x58\x00\x59\x00\x01\x00\x0a\x00\x5c\x00\x0c\x00\x5e\x00\x0e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x06\x00\x08\x00\x09\x00\x12\x00\x0a\x00\x0a\x00\x0a\x00\x0b\x00\x0f\x00\x0f\x00\x0f\x00\x0a\x00\x1b\x00\x1c\x00\x1d\x00\x38\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1c\x00\x41\x00\x28\x00\x29\x00\x2a\x00\x09\x00\x03\x00\x0a\x00\x2e\x00\x31\x00\x41\x00\x0f\x00\x32\x00\x33\x00\x06\x00\x35\x00\x38\x00\x0a\x00\x38\x00\x0a\x00\x3a\x00\x3b\x00\x0f\x00\x51\x00\x0a\x00\x41\x00\x54\x00\x41\x00\x42\x00\x3a\x00\x44\x00\x11\x00\x12\x00\x3f\x00\x3f\x00\x1c\x00\x41\x00\x40\x00\x08\x00\x44\x00\x32\x00\x46\x00\x47\x00\x03\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x37\x00\x08\x00\x39\x00\x41\x00\x55\x00\x06\x00\x57\x00\x58\x00\x59\x00\x41\x00\x42\x00\x5c\x00\x37\x00\x5e\x00\x39\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x0a\x00\x0a\x00\x12\x00\x0a\x00\x0a\x00\x0f\x00\x0f\x00\x34\x00\x35\x00\x36\x00\x11\x00\x1b\x00\x1c\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1c\x00\x2e\x00\x30\x00\x34\x00\x35\x00\x36\x00\x29\x00\x2a\x00\x36\x00\x23\x00\x0a\x00\x2e\x00\x0c\x00\x3a\x00\x0e\x00\x32\x00\x33\x00\x0a\x00\x2c\x00\x2d\x00\x41\x00\x38\x00\x0a\x00\x3a\x00\x03\x00\x08\x00\x09\x00\x0f\x00\x10\x00\x3a\x00\x41\x00\x42\x00\x0f\x00\x44\x00\x3f\x00\x0a\x00\x41\x00\x1e\x00\x1f\x00\x44\x00\x0f\x00\x46\x00\x47\x00\x06\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1b\x00\x1c\x00\x0a\x00\x14\x00\x55\x00\x3a\x00\x57\x00\x58\x00\x59\x00\x11\x00\x12\x00\x5c\x00\x41\x00\x5e\x00\x54\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0a\x00\x0f\x00\x34\x00\x0f\x00\x11\x00\x37\x00\x11\x00\x11\x00\x12\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1b\x00\x1c\x00\x03\x00\x0a\x00\x0a\x00\x15\x00\x07\x00\x23\x00\x0a\x00\x23\x00\x11\x00\x11\x00\x12\x00\x0f\x00\x2a\x00\x2b\x00\x14\x00\x2d\x00\x2c\x00\x2d\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x14\x00\x23\x00\x3a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3f\x00\x31\x00\x41\x00\x2c\x00\x2d\x00\x44\x00\x36\x00\x46\x00\x47\x00\x14\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x3c\x00\x03\x00\x0a\x00\x3a\x00\x55\x00\x07\x00\x57\x00\x58\x00\x59\x00\x11\x00\x41\x00\x5c\x00\x38\x00\x5e\x00\x3a\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x00\x00\x01\x00\x0a\x00\x0b\x00\x23\x00\x0a\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0f\x00\x10\x00\x3b\x00\x2c\x00\x2d\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x0a\x00\x1e\x00\x0a\x00\x55\x00\x30\x00\x0a\x00\x58\x00\x11\x00\x0a\x00\x5b\x00\x36\x00\x28\x00\x29\x00\x2a\x00\x03\x00\x11\x00\x2d\x00\x2e\x00\x07\x00\x0a\x00\x0a\x00\x32\x00\x33\x00\x08\x00\x35\x00\x23\x00\x11\x00\x38\x00\x0a\x00\x3a\x00\x0a\x00\x29\x00\x3d\x00\x23\x00\x3f\x00\x2d\x00\x41\x00\x42\x00\x3c\x00\x44\x00\x00\x00\x01\x00\x2c\x00\x2d\x00\x23\x00\x0a\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0f\x00\x10\x00\x0a\x00\x2c\x00\x2d\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x11\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x0a\x00\x1e\x00\x03\x00\x0a\x00\x0a\x00\x3e\x00\x07\x00\x11\x00\x23\x00\x0f\x00\x10\x00\x28\x00\x29\x00\x2a\x00\x29\x00\x03\x00\x2d\x00\x2e\x00\x2d\x00\x07\x00\x55\x00\x32\x00\x33\x00\x58\x00\x35\x00\x23\x00\x5b\x00\x38\x00\x5d\x00\x3a\x00\x5f\x00\x3d\x00\x3d\x00\x2b\x00\x3f\x00\x2d\x00\x41\x00\x42\x00\x15\x00\x44\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\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\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\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x01\x00\x53\x00\x54\x00\x0a\x00\x15\x00\x06\x00\x07\x00\x08\x00\x09\x00\x03\x00\x11\x00\x22\x00\x23\x00\x07\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x15\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x23\x00\x1e\x00\x0a\x00\x0a\x00\x15\x00\x0c\x00\x0d\x00\x0f\x00\x10\x00\x2c\x00\x2d\x00\x28\x00\x29\x00\x2a\x00\x01\x00\x15\x00\x2d\x00\x2e\x00\x52\x00\x53\x00\x54\x00\x32\x00\x33\x00\x3b\x00\x35\x00\x0a\x00\x0a\x00\x38\x00\x0a\x00\x3a\x00\x0c\x00\x12\x00\x0e\x00\x11\x00\x3f\x00\x09\x00\x41\x00\x42\x00\x09\x00\x44\x00\x1b\x00\x1c\x00\x1d\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x01\x00\x00\x00\x01\x00\x23\x00\x09\x00\x28\x00\x29\x00\x2a\x00\x31\x00\x32\x00\x33\x00\x2e\x00\x2c\x00\x2d\x00\x0a\x00\x32\x00\x33\x00\x12\x00\x35\x00\x0a\x00\x0a\x00\x38\x00\x39\x00\x3a\x00\x0a\x00\x0f\x00\x1b\x00\x1c\x00\x1d\x00\x13\x00\x41\x00\x42\x00\x0a\x00\x44\x00\x01\x00\x19\x00\x1a\x00\x3d\x00\x1c\x00\x28\x00\x29\x00\x2a\x00\x0a\x00\x0b\x00\x0c\x00\x2e\x00\x24\x00\x0a\x00\x26\x00\x32\x00\x33\x00\x12\x00\x35\x00\x45\x00\x11\x00\x38\x00\x03\x00\x3a\x00\x3b\x00\x14\x00\x1b\x00\x1c\x00\x1d\x00\x32\x00\x41\x00\x42\x00\x06\x00\x44\x00\x01\x00\x38\x00\x33\x00\x3a\x00\x23\x00\x28\x00\x29\x00\x2a\x00\x41\x00\x42\x00\x41\x00\x2e\x00\x2b\x00\x0a\x00\x2d\x00\x32\x00\x33\x00\x12\x00\x35\x00\x0a\x00\x0a\x00\x38\x00\x39\x00\x3a\x00\x14\x00\x0f\x00\x1b\x00\x1c\x00\x03\x00\x13\x00\x41\x00\x42\x00\x03\x00\x44\x00\x02\x00\x19\x00\x1a\x00\x01\x00\x1c\x00\x28\x00\x29\x00\x2a\x00\x01\x00\x2b\x00\x41\x00\x2e\x00\x24\x00\x39\x00\x26\x00\x32\x00\x33\x00\x34\x00\x35\x00\x3b\x00\x37\x00\x38\x00\x2b\x00\x3a\x00\x3c\x00\x12\x00\x41\x00\x0a\x00\x3c\x00\x01\x00\x41\x00\x42\x00\x0f\x00\x44\x00\x1b\x00\x1c\x00\x1d\x00\x0a\x00\x41\x00\x0c\x00\x0d\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x12\x00\x28\x00\x29\x00\x2a\x00\x01\x00\x2b\x00\x3b\x00\x2e\x00\x41\x00\x1b\x00\x1c\x00\x32\x00\x33\x00\x41\x00\x35\x00\x40\x00\x34\x00\x38\x00\x30\x00\x3a\x00\x2b\x00\x12\x00\x28\x00\x29\x00\x2a\x00\x03\x00\x41\x00\x42\x00\x2e\x00\x44\x00\x1b\x00\x1c\x00\x32\x00\x33\x00\x03\x00\x35\x00\x03\x00\x30\x00\x38\x00\x41\x00\x3a\x00\x3b\x00\x2b\x00\x28\x00\x29\x00\x2a\x00\x01\x00\x41\x00\x42\x00\x2e\x00\x44\x00\x41\x00\x30\x00\x32\x00\x33\x00\x2b\x00\x35\x00\x03\x00\x41\x00\x38\x00\x39\x00\x3a\x00\x31\x00\x12\x00\x2b\x00\x0a\x00\x41\x00\x01\x00\x41\x00\x42\x00\x0f\x00\x44\x00\x1b\x00\x1c\x00\x1d\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x12\x00\x28\x00\x29\x00\x2a\x00\x0a\x00\x0b\x00\x0c\x00\x2e\x00\x0e\x00\x1b\x00\x1c\x00\x32\x00\x33\x00\x43\x00\x35\x00\x40\x00\x40\x00\x38\x00\x40\x00\x3a\x00\x40\x00\x40\x00\x28\x00\x29\x00\x2a\x00\x43\x00\x41\x00\x42\x00\x2e\x00\x44\x00\x40\x00\x32\x00\x32\x00\x33\x00\x43\x00\x35\x00\x0a\x00\x38\x00\x38\x00\x3a\x00\x3a\x00\x0f\x00\x43\x00\x43\x00\x0a\x00\x04\x00\x41\x00\x41\x00\x42\x00\x0f\x00\x44\x00\x19\x00\x1a\x00\x13\x00\x1c\x00\x37\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x35\x00\x2b\x00\x30\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0a\x00\x2b\x00\x30\x00\x30\x00\x41\x00\x0f\x00\x2b\x00\x0f\x00\x41\x00\x13\x00\x2b\x00\x3c\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x0d\x00\x2f\x00\x39\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0a\x00\x41\x00\x39\x00\x39\x00\x2f\x00\x0f\x00\x41\x00\x04\x00\x3c\x00\x13\x00\x3c\x00\x3c\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x41\x00\x05\x00\x41\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x0a\x00\x26\x00\x43\x00\x40\x00\x43\x00\x0f\x00\x37\x00\x43\x00\x2b\x00\x13\x00\x44\x00\x2b\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x41\x00\x2b\x00\x31\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x0a\x00\x26\x00\x32\x00\x05\x00\x0f\x00\x0f\x00\x43\x00\x2b\x00\x38\x00\x13\x00\x3a\x00\x2b\x00\x40\x00\x03\x00\x0a\x00\x19\x00\x1a\x00\x41\x00\x1c\x00\x0f\x00\x41\x00\x38\x00\x38\x00\x13\x00\x0c\x00\x38\x00\x24\x00\x41\x00\x26\x00\x19\x00\x1a\x00\x2f\x00\x1c\x00\x3b\x00\x0a\x00\x2f\x00\x3b\x00\x2b\x00\x37\x00\x0f\x00\x24\x00\x0a\x00\x26\x00\x13\x00\x31\x00\x43\x00\x0f\x00\x1f\x00\x2b\x00\x19\x00\x1a\x00\x02\x00\x1c\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x24\x00\x3c\x00\x26\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0a\x00\x41\x00\x34\x00\x34\x00\x02\x00\x0f\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x39\x00\x39\x00\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2f\x00\x45\x00\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x3b\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x30\x00\x3b\x00\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x30\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x41\x00\x3a\x00\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\x2b\x00\x34\x00\x45\x00\x2b\x00\x36\x00\x2b\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x45\x00\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\x0a\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x20\x00\x21\x00\x22\x00\x23\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\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\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\xd7\x00\x0e\x02\xaa\x00\xbc\x01\xd7\x00\x01\x02\xb3\x01\x67\x01\x4d\x01\x67\x01\xab\x00\x48\x00\x48\x00\x48\x00\x48\x00\x48\x00\x48\x00\x59\x01\xaf\x01\x05\x00\x06\x00\x07\x00\xa9\x01\xcc\x00\x46\x01\xfd\x01\xfd\x01\x4f\x01\x59\x01\x0d\x02\xc8\x01\xc9\x01\xb1\x01\x15\x02\xd4\x00\x0a\x00\x07\x02\xc8\x01\xc9\x01\xfe\x00\x33\x00\xc1\x01\xc1\x01\xd3\x01\xd3\x01\xd4\x01\xd4\x01\x34\x00\x5b\x01\x05\x00\xab\x00\xaa\x00\xc1\x01\xb6\x00\xc2\x01\xc3\x01\x1d\x02\x1c\x02\x26\x00\x27\x00\xc6\x01\xfc\x00\x0a\x00\x0a\x00\xb0\x01\x35\x00\x1b\x02\x0b\x00\x0b\x00\x36\x00\x37\x00\x38\x00\xb7\x00\xb8\x00\xb9\x00\x39\x00\x7c\x01\x16\x02\x5a\x01\x26\x00\xdb\x00\xdb\x00\x26\x00\x12\x02\xfa\x01\xc8\x01\x05\x02\xfe\x00\x7d\x01\x5a\x01\x5b\x01\xca\x01\x0b\x00\x5c\x01\x5d\x01\x5e\x01\x60\x01\xac\x00\x03\x02\xd5\x01\xff\x00\x0e\x00\x0f\x00\x10\x00\xb0\x00\x12\x00\x08\x00\x19\x02\xf8\x01\x4e\x01\xb4\x01\x1a\x02\x0f\x02\x02\x02\xd8\x00\xd8\x00\x68\x01\xcd\x01\x68\x01\x69\x01\xf7\x01\xb6\x01\x3f\x01\x40\x01\x41\x01\x49\x00\xfe\x01\xfe\x01\xaa\x01\x47\x01\x50\x01\xb2\x01\xff\x01\x00\x02\xb2\x01\x00\x01\x08\x00\xad\x00\xf9\x00\xdc\x00\x01\x01\xc1\x01\x02\x01\xc2\x01\xc3\x01\x03\x01\x26\x00\x04\x01\x05\x01\x13\x02\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\x0d\x01\xe2\x01\xe4\x00\xe5\x00\xe6\x00\x0e\x01\xe7\x00\x0f\x01\x10\x01\x11\x01\x18\x00\xc1\x01\x12\x01\xd3\x01\x13\x01\x10\x02\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x1a\x01\x1b\x01\xbd\x01\x5b\x00\x5c\x00\x19\x00\xfe\x00\x3b\x01\xc8\x01\xc9\x01\x5d\x00\x0b\x00\x0b\x00\xe4\x01\x1a\x00\x1b\x00\x1c\x00\x8d\x01\xc4\x01\xff\x00\x0e\x00\x0f\x00\x10\x00\xb0\x00\x12\x00\x3d\x00\x8e\x01\x1d\x00\x1e\x00\x1f\x00\xaa\x00\xe8\x01\x5b\x01\x20\x00\xa8\x01\xe8\x00\x4d\x01\x21\x00\x22\x00\xe9\x01\x23\x00\x8d\x01\x0a\x00\x24\x00\x5b\x01\x25\x00\x30\x00\x0b\x00\xd8\x01\x33\x00\x8e\x01\xd9\x01\x26\x00\x27\x00\x00\x01\x28\x00\x85\x01\xa8\x01\x5e\x00\x01\x01\xae\x00\x02\x01\xca\x01\x61\x01\x03\x01\x3b\x00\x04\x01\x05\x01\xf1\x01\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\x0d\x01\x5c\x01\x61\x01\xb8\x01\x26\x00\x0e\x01\xf2\x01\x0f\x01\x10\x01\x11\x01\x26\x00\x27\x00\x12\x01\x5c\x01\x13\x01\x60\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x1a\x01\x1b\x01\xfe\x00\x0a\x00\x19\x00\x33\x00\xe4\x01\x0b\x00\x0b\x00\xb9\x01\x63\x01\x64\x01\x34\x00\x1a\x00\x1b\x00\xff\x00\x0e\x00\x0f\x00\x10\x00\xb0\x00\x12\x00\x3d\x00\xd7\x01\x92\x01\x62\x01\x63\x01\x64\x01\x1e\x00\x1f\x00\x53\x00\xe8\x00\xc1\x01\x20\x00\xd3\x01\xd8\x01\x09\x02\x21\x00\x22\x00\xb6\x00\xb0\x01\xea\x00\x26\x00\x3f\x00\xa4\x00\x40\x00\xf5\x01\x5b\x00\x5c\x00\xa5\x00\xa8\x00\x00\x01\x26\x00\x27\x00\x5d\x00\x28\x00\x74\x01\x0a\x00\x02\x01\x2f\x01\xb9\x00\x03\x01\x0b\x00\x04\x01\x05\x01\xf6\x01\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\x0d\x01\x4f\x00\x8f\x01\x33\x00\xdd\x01\x0e\x01\xe6\x01\x0f\x01\x10\x01\x11\x01\x85\x01\x86\x01\x12\x01\x26\x00\x13\x01\xda\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x1a\x01\x1b\x01\xfe\x00\x33\x00\x0a\x00\x33\x00\x33\x00\x0b\x00\x51\x00\x0b\x00\x34\x00\x52\x00\x34\x00\x85\x01\x87\x01\xff\x00\x0e\x00\x0f\x00\x10\x00\xb0\x00\x12\x00\x8e\x01\x8f\x01\x17\x02\x33\x00\x33\x00\x9b\x01\x18\x02\x41\x00\x0a\x00\xe8\x00\x34\x00\x85\x01\x88\x01\x0b\x00\x42\x00\x43\x00\x9e\x01\x44\x00\x80\x01\xea\x00\xf9\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\xa0\x01\xe8\x00\x00\x01\x13\x00\x14\x00\x15\x00\x16\x00\x01\x01\xcd\x00\x02\x01\x81\x01\xea\x00\x03\x01\x53\x00\x04\x01\x05\x01\xa1\x01\x06\x01\x07\x01\x08\x01\x09\x01\x0a\x01\x0b\x01\x0c\x01\x0d\x01\xa3\x01\x11\x02\x33\x00\x48\x00\x0e\x01\xfc\x00\x0f\x01\x10\x01\x11\x01\x34\x00\x26\x00\x12\x01\x46\x00\x13\x01\x4c\x00\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x1a\x01\x1b\x01\x59\x01\x18\x00\xc8\x01\xf0\x01\xe8\x00\xa4\x00\x1d\x01\x1e\x01\x1f\x01\x5c\x00\xa5\x00\xda\x00\xa4\x01\x82\x01\xea\x00\x20\x01\x21\x01\x22\x01\x23\x01\x15\x02\x24\x01\x25\x01\x26\x01\x27\x01\x28\x01\x29\x01\x2a\x01\x1a\x00\x1b\x00\x33\x00\x2b\x01\xb5\x01\x55\x00\x56\x01\xba\x01\x56\x00\x34\x00\x33\x00\x57\x00\x53\x00\x1d\x00\x1e\x00\x1f\x00\xbf\x01\x34\x00\x2c\x01\x2d\x01\xc0\x01\x33\x00\xbb\x01\x21\x00\x22\x00\x6b\x01\x23\x00\x35\x00\x34\x00\x3f\x00\x6f\x01\x40\x00\x71\x01\xc2\x00\x5a\x01\xe8\x00\x2e\x01\x39\x00\x26\x00\x27\x00\x77\x01\x28\x00\x59\x01\x18\x00\x83\x01\xea\x00\xe8\x00\xa4\x00\x1d\x01\x1e\x01\x1f\x01\x5c\x00\xa5\x00\xa6\x00\x33\x00\xef\x00\xea\x00\x20\x01\x21\x01\x22\x01\x23\x01\x34\x00\x24\x01\x25\x01\x26\x01\x27\x01\x28\x01\x29\x01\x2a\x01\x1a\x00\x1b\x00\x33\x00\x2b\x01\xc6\x01\x7f\x01\xa4\x00\x7a\x01\xc7\x01\x34\x00\x35\x00\xa5\x00\xa7\x00\x1d\x00\x1e\x00\x1f\x00\xc5\x00\xd1\x01\x2c\x01\x2d\x01\x39\x00\xd2\x01\x55\x00\x21\x00\x22\x00\x56\x00\x23\x00\x41\x00\x57\x00\x3f\x00\x58\x00\x40\x00\x59\x00\x90\x01\x5a\x01\xbb\x00\x2e\x01\x44\x00\x26\x00\x27\x00\x92\x01\x28\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\x18\x00\xa6\x01\x8b\x01\x33\x00\x94\x01\x1d\x01\x1e\x01\x1f\x01\x5c\x00\xfb\x00\x34\x00\x4a\x00\x16\x00\xfc\x00\x20\x01\x21\x01\x22\x01\x23\x01\x95\x01\x24\x01\x25\x01\x26\x01\x27\x01\x28\x01\x29\x01\x2a\x01\x1a\x00\x1b\x00\xe8\x00\x2b\x01\xa4\x00\xc1\x01\x96\x01\xc2\x01\xe3\x01\xa5\x00\xa8\x00\xf1\x00\xea\x00\x1d\x00\x1e\x00\x1f\x00\x18\x00\x97\x01\x2c\x01\x2d\x01\x89\x01\x8a\x01\x8b\x01\x21\x00\x22\x00\x3c\x01\x23\x00\x3e\x01\x33\x00\x3f\x00\xc1\x01\x40\x00\xd3\x01\x19\x00\xe7\x01\x34\x00\x2e\x01\x42\x01\x26\x00\x27\x00\x44\x01\x28\x00\x1a\x00\x1b\x00\x1c\x00\xfc\x01\xdf\x00\xe0\x00\xe1\x00\xe2\x00\x18\x00\x28\x00\x04\x00\xe8\x00\x45\x01\x1d\x00\x1e\x00\x1f\x00\xf3\x00\xe1\x00\xe2\x00\x20\x00\xe9\x00\xea\x00\x48\x01\x21\x00\x22\x00\x19\x00\x23\x00\x49\x01\x0a\x00\x24\x00\x33\x00\x25\x00\x4a\x01\x0b\x00\x1a\x00\x1b\x00\x1c\x00\x2a\x00\x26\x00\x27\x00\x4b\x01\x28\x00\x18\x00\xb2\x00\x10\x00\x53\x01\xb3\x00\x1d\x00\x1e\x00\x1f\x00\xe4\x00\xe5\x00\xe6\x00\x20\x00\x2d\x00\x33\x00\x2e\x00\x21\x00\x22\x00\x19\x00\x23\x00\x51\x01\x34\x00\x24\x00\x56\x01\x25\x00\x30\x00\xed\x00\x1a\x00\x1b\x00\x1c\x00\x3b\x00\x26\x00\x27\x00\x57\x01\x28\x00\x18\x00\x46\x00\xf7\x00\x47\x00\x41\x00\x1d\x00\x1e\x00\x1f\x00\x26\x00\x27\x00\x26\x00\x20\x00\xbe\x00\xf2\x00\x44\x00\x21\x00\x22\x00\x19\x00\x23\x00\x40\x00\x0a\x00\x24\x00\x33\x00\x25\x00\xeb\x00\x0b\x00\x1a\x00\x1b\x00\x53\x00\xba\x00\x26\x00\x27\x00\x54\x00\x28\x00\x5e\x00\xb2\x00\x10\x00\x04\x00\xb3\x00\x1d\x00\x1e\x00\x1f\x00\x18\x00\x0a\x00\x26\x00\x20\x00\x2d\x00\x09\x02\x2e\x00\x21\x00\x22\x00\x84\xff\x23\x00\x0b\x02\x84\xff\x3f\x00\x0a\x00\x40\x00\x0c\x02\x19\x00\x26\x00\x0a\x00\x0d\x02\x18\x00\x26\x00\x27\x00\x0b\x00\x28\x00\x1a\x00\x1b\x00\x1c\x00\xc1\x01\x26\x00\xc2\x01\xf4\x01\xaf\x00\x0f\x00\x10\x00\xb0\x00\x12\x00\x19\x00\x1d\x00\x1e\x00\x1f\x00\x18\x00\x0a\x00\x07\x02\x20\x00\x8e\x01\x1a\x00\x1b\x00\x21\x00\x22\x00\x8e\x01\x23\x00\xe1\x01\xe2\x01\x24\x00\xe7\x01\x25\x00\x0a\x00\x19\x00\x1d\x00\x1e\x00\x1f\x00\xeb\x01\x26\x00\x27\x00\x20\x00\x28\x00\x1a\x00\x1b\x00\x21\x00\x22\x00\xec\x01\x23\x00\xed\x01\xf0\x01\x3f\x00\x26\x00\x40\x00\xc1\x00\x0a\x00\x1d\x00\x1e\x00\x1f\x00\x18\x00\x26\x00\x27\x00\x20\x00\x28\x00\x26\x00\xf4\x01\x21\x00\x22\x00\x0a\x00\x23\x00\xbf\x01\x26\x00\x3f\x00\xc2\x00\x40\x00\xcc\x01\x19\x00\x0a\x00\x0a\x00\x8e\x01\x18\x00\x26\x00\x27\x00\x0b\x00\x28\x00\x1a\x00\x1b\x00\x1c\x00\xed\x01\xdf\x00\xe0\x00\xe1\x00\xe2\x00\x4e\x00\x10\x00\x4f\x00\x12\x00\x19\x00\x1d\x00\x1e\x00\x1f\x00\xe4\x00\xe5\x00\xe6\x00\x20\x00\xe7\x00\x1a\x00\x1b\x00\x21\x00\x22\x00\xed\x00\x23\x00\xdc\x01\xdd\x01\x24\x00\xdf\x01\x25\x00\xe0\x01\x9d\x01\x1d\x00\x1e\x00\x1f\x00\x94\x01\x26\x00\x27\x00\x20\x00\x28\x00\x9e\x01\x3b\x00\x21\x00\x22\x00\xed\x00\x23\x00\x0a\x00\x3c\x00\x3f\x00\x3d\x00\x40\x00\x0b\x00\xa0\x01\xed\x00\x0a\x00\x79\x01\x26\x00\x26\x00\x27\x00\x0b\x00\x28\x00\x4e\x00\x10\x00\x2a\x00\xb3\x00\x3e\x01\xcf\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\xa6\x01\x0a\x00\xac\x01\x13\x00\x14\x00\x15\x00\x16\x00\xd0\x00\x32\x01\x2e\x00\x0a\x00\x0a\x00\xad\x01\xae\x01\x26\x00\x0b\x00\x0a\x00\x66\x01\x26\x00\x2a\x00\x0a\x00\x6b\x01\xcf\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\x6d\x01\x6e\x01\x6f\x01\x13\x00\x14\x00\x15\x00\x16\x00\xd0\x00\xd1\x00\x2e\x00\x29\x00\x26\x00\x71\x01\x73\x01\x74\x01\x0b\x00\x26\x00\x79\x01\x7e\x01\x2a\x00\x7f\x01\x85\x01\x2b\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\x26\x00\x55\x01\x26\x00\x13\x00\x14\x00\x15\x00\x16\x00\x2d\x00\x0a\x00\x2e\x00\x94\x01\x99\x01\x9a\x01\x0b\x00\x3e\x01\x9b\x01\x0a\x00\x2a\x00\x44\x01\x0a\x00\x30\x00\x0d\x00\x0e\x00\x2c\x00\x10\x00\x11\x00\x12\x00\x26\x00\x0a\x00\x53\x01\x13\x00\x14\x00\x15\x00\x16\x00\x31\x00\x0a\x00\x2e\x00\x3b\x00\x55\x01\x66\x01\x0b\x00\xed\x00\x0a\x00\x46\x00\x2a\x00\x47\x00\x0a\x00\xef\x00\xf1\x00\x0a\x00\xb2\x00\x10\x00\x26\x00\xb3\x00\x0b\x00\x26\x00\xf5\x00\xf6\x00\xba\x00\xe6\x00\xf7\x00\x31\x00\x26\x00\x2e\x00\xb2\x00\x10\x00\x31\x01\xb3\x00\x32\x01\x0a\x00\xd5\x00\xd6\x00\x0a\x00\x52\x00\x0b\x00\x2d\x00\x0a\x00\x2e\x00\x2a\x00\xd7\x00\xed\x00\x0b\x00\xa4\x00\x0a\x00\xb2\x00\x10\x00\xb5\x00\xb3\x00\xfb\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x31\x00\xb6\x00\x2e\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0a\x00\x26\x00\xbd\x00\xc4\x00\xc0\x00\x0b\x00\xfa\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\x04\x02\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\xc7\x00\xc8\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xee\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\xc9\x00\xff\xff\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x66\x01\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xca\x00\xcc\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x96\xff\xcb\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\xf8\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xcc\x00\xce\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x26\x00\x48\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x0a\x00\x4d\x00\xff\xff\x0a\x00\x53\x00\x0a\x00\xcf\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\xff\xff\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa2\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x29\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2b\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x0a\x00\x13\x00\x14\x00\x15\x00\x16\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x34\x01\x35\x01\x36\x01\x37\x01\x38\x01\x39\x01\x3a\x01\x3b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyReduceArr = Happy_Data_Array.array (3, 306) [+	(3 , happyReduce_3),+	(4 , happyReduce_4),+	(5 , happyReduce_5),+	(6 , happyReduce_6),+	(7 , happyReduce_7),+	(8 , happyReduce_8),+	(9 , happyReduce_9),+	(10 , happyReduce_10),+	(11 , happyReduce_11),+	(12 , happyReduce_12),+	(13 , happyReduce_13),+	(14 , happyReduce_14),+	(15 , happyReduce_15),+	(16 , happyReduce_16),+	(17 , happyReduce_17),+	(18 , happyReduce_18),+	(19 , happyReduce_19),+	(20 , happyReduce_20),+	(21 , happyReduce_21),+	(22 , happyReduce_22),+	(23 , happyReduce_23),+	(24 , happyReduce_24),+	(25 , happyReduce_25),+	(26 , happyReduce_26),+	(27 , happyReduce_27),+	(28 , happyReduce_28),+	(29 , happyReduce_29),+	(30 , happyReduce_30),+	(31 , happyReduce_31),+	(32 , happyReduce_32),+	(33 , happyReduce_33),+	(34 , happyReduce_34),+	(35 , happyReduce_35),+	(36 , happyReduce_36),+	(37 , happyReduce_37),+	(38 , happyReduce_38),+	(39 , happyReduce_39),+	(40 , happyReduce_40),+	(41 , happyReduce_41),+	(42 , happyReduce_42),+	(43 , happyReduce_43),+	(44 , happyReduce_44),+	(45 , happyReduce_45),+	(46 , happyReduce_46),+	(47 , happyReduce_47),+	(48 , happyReduce_48),+	(49 , happyReduce_49),+	(50 , happyReduce_50),+	(51 , happyReduce_51),+	(52 , happyReduce_52),+	(53 , happyReduce_53),+	(54 , happyReduce_54),+	(55 , happyReduce_55),+	(56 , happyReduce_56),+	(57 , happyReduce_57),+	(58 , happyReduce_58),+	(59 , happyReduce_59),+	(60 , happyReduce_60),+	(61 , happyReduce_61),+	(62 , happyReduce_62),+	(63 , happyReduce_63),+	(64 , happyReduce_64),+	(65 , happyReduce_65),+	(66 , happyReduce_66),+	(67 , happyReduce_67),+	(68 , happyReduce_68),+	(69 , happyReduce_69),+	(70 , happyReduce_70),+	(71 , happyReduce_71),+	(72 , happyReduce_72),+	(73 , happyReduce_73),+	(74 , happyReduce_74),+	(75 , happyReduce_75),+	(76 , happyReduce_76),+	(77 , happyReduce_77),+	(78 , happyReduce_78),+	(79 , happyReduce_79),+	(80 , happyReduce_80),+	(81 , happyReduce_81),+	(82 , happyReduce_82),+	(83 , happyReduce_83),+	(84 , happyReduce_84),+	(85 , happyReduce_85),+	(86 , happyReduce_86),+	(87 , happyReduce_87),+	(88 , happyReduce_88),+	(89 , happyReduce_89),+	(90 , happyReduce_90),+	(91 , happyReduce_91),+	(92 , happyReduce_92),+	(93 , happyReduce_93),+	(94 , happyReduce_94),+	(95 , happyReduce_95),+	(96 , happyReduce_96),+	(97 , happyReduce_97),+	(98 , happyReduce_98),+	(99 , happyReduce_99),+	(100 , happyReduce_100),+	(101 , happyReduce_101),+	(102 , happyReduce_102),+	(103 , happyReduce_103),+	(104 , happyReduce_104),+	(105 , happyReduce_105),+	(106 , happyReduce_106),+	(107 , happyReduce_107),+	(108 , happyReduce_108),+	(109 , happyReduce_109),+	(110 , happyReduce_110),+	(111 , happyReduce_111),+	(112 , happyReduce_112),+	(113 , happyReduce_113),+	(114 , happyReduce_114),+	(115 , happyReduce_115),+	(116 , happyReduce_116),+	(117 , happyReduce_117),+	(118 , happyReduce_118),+	(119 , happyReduce_119),+	(120 , happyReduce_120),+	(121 , happyReduce_121),+	(122 , happyReduce_122),+	(123 , happyReduce_123),+	(124 , happyReduce_124),+	(125 , happyReduce_125),+	(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),+	(164 , happyReduce_164),+	(165 , happyReduce_165),+	(166 , happyReduce_166),+	(167 , happyReduce_167),+	(168 , happyReduce_168),+	(169 , happyReduce_169),+	(170 , happyReduce_170),+	(171 , happyReduce_171),+	(172 , happyReduce_172),+	(173 , happyReduce_173),+	(174 , happyReduce_174),+	(175 , happyReduce_175),+	(176 , happyReduce_176),+	(177 , happyReduce_177),+	(178 , happyReduce_178),+	(179 , happyReduce_179),+	(180 , happyReduce_180),+	(181 , happyReduce_181),+	(182 , happyReduce_182),+	(183 , happyReduce_183),+	(184 , happyReduce_184),+	(185 , happyReduce_185),+	(186 , happyReduce_186),+	(187 , happyReduce_187),+	(188 , happyReduce_188),+	(189 , happyReduce_189),+	(190 , happyReduce_190),+	(191 , happyReduce_191),+	(192 , happyReduce_192),+	(193 , happyReduce_193),+	(194 , happyReduce_194),+	(195 , happyReduce_195),+	(196 , happyReduce_196),+	(197 , happyReduce_197),+	(198 , happyReduce_198),+	(199 , happyReduce_199),+	(200 , happyReduce_200),+	(201 , happyReduce_201),+	(202 , happyReduce_202),+	(203 , happyReduce_203),+	(204 , happyReduce_204),+	(205 , happyReduce_205),+	(206 , happyReduce_206),+	(207 , happyReduce_207),+	(208 , happyReduce_208),+	(209 , happyReduce_209),+	(210 , happyReduce_210),+	(211 , happyReduce_211),+	(212 , happyReduce_212),+	(213 , happyReduce_213),+	(214 , happyReduce_214),+	(215 , happyReduce_215),+	(216 , happyReduce_216),+	(217 , happyReduce_217),+	(218 , happyReduce_218),+	(219 , happyReduce_219),+	(220 , happyReduce_220),+	(221 , happyReduce_221),+	(222 , happyReduce_222),+	(223 , happyReduce_223),+	(224 , happyReduce_224),+	(225 , happyReduce_225),+	(226 , happyReduce_226),+	(227 , happyReduce_227),+	(228 , happyReduce_228),+	(229 , happyReduce_229),+	(230 , happyReduce_230),+	(231 , happyReduce_231),+	(232 , happyReduce_232),+	(233 , happyReduce_233),+	(234 , happyReduce_234),+	(235 , happyReduce_235),+	(236 , happyReduce_236),+	(237 , happyReduce_237),+	(238 , happyReduce_238),+	(239 , happyReduce_239),+	(240 , happyReduce_240),+	(241 , happyReduce_241),+	(242 , happyReduce_242),+	(243 , happyReduce_243),+	(244 , happyReduce_244),+	(245 , happyReduce_245),+	(246 , happyReduce_246),+	(247 , happyReduce_247),+	(248 , happyReduce_248),+	(249 , happyReduce_249),+	(250 , happyReduce_250),+	(251 , happyReduce_251),+	(252 , happyReduce_252),+	(253 , happyReduce_253),+	(254 , happyReduce_254),+	(255 , happyReduce_255),+	(256 , happyReduce_256),+	(257 , happyReduce_257),+	(258 , happyReduce_258),+	(259 , happyReduce_259),+	(260 , happyReduce_260),+	(261 , happyReduce_261),+	(262 , happyReduce_262),+	(263 , happyReduce_263),+	(264 , happyReduce_264),+	(265 , happyReduce_265),+	(266 , happyReduce_266),+	(267 , happyReduce_267),+	(268 , happyReduce_268),+	(269 , happyReduce_269),+	(270 , happyReduce_270),+	(271 , happyReduce_271),+	(272 , happyReduce_272),+	(273 , happyReduce_273),+	(274 , happyReduce_274),+	(275 , happyReduce_275),+	(276 , happyReduce_276),+	(277 , happyReduce_277),+	(278 , happyReduce_278),+	(279 , happyReduce_279),+	(280 , happyReduce_280),+	(281 , happyReduce_281),+	(282 , happyReduce_282),+	(283 , happyReduce_283),+	(284 , happyReduce_284),+	(285 , happyReduce_285),+	(286 , happyReduce_286),+	(287 , happyReduce_287),+	(288 , happyReduce_288),+	(289 , happyReduce_289),+	(290 , happyReduce_290),+	(291 , happyReduce_291),+	(292 , happyReduce_292),+	(293 , happyReduce_293),+	(294 , happyReduce_294),+	(295 , happyReduce_295),+	(296 , happyReduce_296),+	(297 , happyReduce_297),+	(298 , happyReduce_298),+	(299 , happyReduce_299),+	(300 , happyReduce_300),+	(301 , happyReduce_301),+	(302 , happyReduce_302),+	(303 , happyReduce_303),+	(304 , happyReduce_304),+	(305 , happyReduce_305),+	(306 , happyReduce_306)+	]++happy_n_terms = 70 :: Int+happy_n_nonterms = 115 :: Int++happyReduce_3 = happySpecReduce_1  0# happyReduction_3+happyReduction_3 happy_x_1+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> +	happyIn6+		 (reverse happy_var_1+	)}++happyReduce_4 = happySpecReduce_2  1# happyReduction_4+happyReduction_4 happy_x_2+	happy_x_1+	 =  case happyOut7 happy_x_1 of { happy_var_1 -> +	case happyOut8 happy_x_2 of { happy_var_2 -> +	happyIn7+		 (happy_var_2 : happy_var_1+	)}}++happyReduce_5 = happySpecReduce_0  1# happyReduction_5+happyReduction_5  =  happyIn7+		 ([]+	)++happyReduce_6 = happySpecReduce_1  2# happyReduction_6+happyReduction_6 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwLet happy_var_1) -> +	happyIn8+		 (TokKeyword KwLet happy_var_1+	)}++happyReduce_7 = happySpecReduce_1  2# happyReduction_7+happyReduction_7 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwIn happy_var_1) -> +	happyIn8+		 (TokKeyword KwIn happy_var_1+	)}++happyReduce_8 = happySpecReduce_1  2# happyReduction_8+happyReduction_8 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwWhere happy_var_1) -> +	happyIn8+		 (TokKeyword KwWhere happy_var_1+	)}++happyReduce_9 = happySpecReduce_1  2# happyReduction_9+happyReduction_9 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwWith happy_var_1) -> +	happyIn8+		 (TokKeyword KwWith happy_var_1+	)}++happyReduce_10 = happySpecReduce_1  2# happyReduction_10+happyReduction_10 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwRewrite happy_var_1) -> +	happyIn8+		 (TokKeyword KwRewrite happy_var_1+	)}++happyReduce_11 = happySpecReduce_1  2# happyReduction_11+happyReduction_11 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPostulate happy_var_1) -> +	happyIn8+		 (TokKeyword KwPostulate happy_var_1+	)}++happyReduce_12 = happySpecReduce_1  2# happyReduction_12+happyReduction_12 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrimitive happy_var_1) -> +	happyIn8+		 (TokKeyword KwPrimitive happy_var_1+	)}++happyReduce_13 = happySpecReduce_1  2# happyReduction_13+happyReduction_13 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> +	happyIn8+		 (TokKeyword KwOpen happy_var_1+	)}++happyReduce_14 = happySpecReduce_1  2# happyReduction_14+happyReduction_14 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwImport happy_var_1) -> +	happyIn8+		 (TokKeyword KwImport happy_var_1+	)}++happyReduce_15 = happySpecReduce_1  2# happyReduction_15+happyReduction_15 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwUsing happy_var_1) -> +	happyIn8+		 (TokKeyword KwUsing happy_var_1+	)}++happyReduce_16 = happySpecReduce_1  2# happyReduction_16+happyReduction_16 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwHiding happy_var_1) -> +	happyIn8+		 (TokKeyword KwHiding happy_var_1+	)}++happyReduce_17 = happySpecReduce_1  2# happyReduction_17+happyReduction_17 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwRenaming happy_var_1) -> +	happyIn8+		 (TokKeyword KwRenaming happy_var_1+	)}++happyReduce_18 = happySpecReduce_1  2# happyReduction_18+happyReduction_18 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwTo happy_var_1) -> +	happyIn8+		 (TokKeyword KwTo happy_var_1+	)}++happyReduce_19 = happySpecReduce_1  2# happyReduction_19+happyReduction_19 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPublic happy_var_1) -> +	happyIn8+		 (TokKeyword KwPublic happy_var_1+	)}++happyReduce_20 = happySpecReduce_1  2# happyReduction_20+happyReduction_20 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> +	happyIn8+		 (TokKeyword KwModule happy_var_1+	)}++happyReduce_21 = happySpecReduce_1  2# happyReduction_21+happyReduction_21 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwData happy_var_1) -> +	happyIn8+		 (TokKeyword KwData happy_var_1+	)}++happyReduce_22 = happySpecReduce_1  2# happyReduction_22+happyReduction_22 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCoData happy_var_1) -> +	happyIn8+		 (TokKeyword KwCoData happy_var_1+	)}++happyReduce_23 = happySpecReduce_1  2# happyReduction_23+happyReduction_23 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwRecord happy_var_1) -> +	happyIn8+		 (TokKeyword KwRecord happy_var_1+	)}++happyReduce_24 = happySpecReduce_1  2# happyReduction_24+happyReduction_24 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwConstructor happy_var_1) -> +	happyIn8+		 (TokKeyword KwConstructor happy_var_1+	)}++happyReduce_25 = happySpecReduce_1  2# happyReduction_25+happyReduction_25 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwField happy_var_1) -> +	happyIn8+		 (TokKeyword KwField happy_var_1+	)}++happyReduce_26 = happySpecReduce_1  2# happyReduction_26+happyReduction_26 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfix happy_var_1) -> +	happyIn8+		 (TokKeyword KwInfix happy_var_1+	)}++happyReduce_27 = happySpecReduce_1  2# happyReduction_27+happyReduction_27 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixL happy_var_1) -> +	happyIn8+		 (TokKeyword KwInfixL happy_var_1+	)}++happyReduce_28 = happySpecReduce_1  2# happyReduction_28+happyReduction_28 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixR happy_var_1) -> +	happyIn8+		 (TokKeyword KwInfixR happy_var_1+	)}++happyReduce_29 = happySpecReduce_1  2# happyReduction_29+happyReduction_29 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwMutual happy_var_1) -> +	happyIn8+		 (TokKeyword KwMutual happy_var_1+	)}++happyReduce_30 = happySpecReduce_1  2# happyReduction_30+happyReduction_30 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwAbstract happy_var_1) -> +	happyIn8+		 (TokKeyword KwAbstract happy_var_1+	)}++happyReduce_31 = happySpecReduce_1  2# happyReduction_31+happyReduction_31 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrivate happy_var_1) -> +	happyIn8+		 (TokKeyword KwPrivate happy_var_1+	)}++happyReduce_32 = happySpecReduce_1  2# happyReduction_32+happyReduction_32 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwProp happy_var_1) -> +	happyIn8+		 (TokKeyword KwProp happy_var_1+	)}++happyReduce_33 = happySpecReduce_1  2# happyReduction_33+happyReduction_33 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwSet happy_var_1) -> +	happyIn8+		 (TokKeyword KwSet happy_var_1+	)}++happyReduce_34 = happySpecReduce_1  2# happyReduction_34+happyReduction_34 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwForall happy_var_1) -> +	happyIn8+		 (TokKeyword KwForall happy_var_1+	)}++happyReduce_35 = happySpecReduce_1  2# happyReduction_35+happyReduction_35 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwSyntax happy_var_1) -> +	happyIn8+		 (TokKeyword KwSyntax happy_var_1+	)}++happyReduce_36 = happySpecReduce_1  2# happyReduction_36+happyReduction_36 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwOPTIONS happy_var_1) -> +	happyIn8+		 (TokKeyword KwOPTIONS happy_var_1+	)}++happyReduce_37 = happySpecReduce_1  2# happyReduction_37+happyReduction_37 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwBUILTIN happy_var_1) -> +	happyIn8+		 (TokKeyword KwBUILTIN happy_var_1+	)}++happyReduce_38 = happySpecReduce_1  2# happyReduction_38+happyReduction_38 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwIMPORT happy_var_1) -> +	happyIn8+		 (TokKeyword KwIMPORT happy_var_1+	)}++happyReduce_39 = happySpecReduce_1  2# happyReduction_39+happyReduction_39 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCOMPILED happy_var_1) -> +	happyIn8+		 (TokKeyword KwCOMPILED happy_var_1+	)}++happyReduce_40 = happySpecReduce_1  2# happyReduction_40+happyReduction_40 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCOMPILED_DATA happy_var_1) -> +	happyIn8+		 (TokKeyword KwCOMPILED_DATA happy_var_1+	)}++happyReduce_41 = happySpecReduce_1  2# happyReduction_41+happyReduction_41 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCOMPILED_TYPE happy_var_1) -> +	happyIn8+		 (TokKeyword KwCOMPILED_TYPE happy_var_1+	)}++happyReduce_42 = happySpecReduce_1  2# happyReduction_42+happyReduction_42 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwCOMPILED_EPIC happy_var_1) -> +	happyIn8+		 (TokKeyword KwCOMPILED_EPIC happy_var_1+	)}++happyReduce_43 = happySpecReduce_1  2# happyReduction_43+happyReduction_43 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwIMPOSSIBLE happy_var_1) -> +	happyIn8+		 (TokKeyword KwIMPOSSIBLE happy_var_1+	)}++happyReduce_44 = happySpecReduce_1  2# happyReduction_44+happyReduction_44 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwETA happy_var_1) -> +	happyIn8+		 (TokKeyword KwETA happy_var_1+	)}++happyReduce_45 = happySpecReduce_1  2# happyReduction_45+happyReduction_45 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwQuoteGoal happy_var_1) -> +	happyIn8+		 (TokKeyword KwQuoteGoal happy_var_1+	)}++happyReduce_46 = happySpecReduce_1  2# happyReduction_46+happyReduction_46 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwQuote happy_var_1) -> +	happyIn8+		 (TokKeyword KwQuote happy_var_1+	)}++happyReduce_47 = happySpecReduce_1  2# happyReduction_47+happyReduction_47 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSetN happy_var_1) -> +	happyIn8+		 (TokSetN happy_var_1+	)}++happyReduce_48 = happySpecReduce_1  2# happyReduction_48+happyReduction_48 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokTeX happy_var_1) -> +	happyIn8+		 (TokTeX happy_var_1+	)}++happyReduce_49 = happySpecReduce_1  2# happyReduction_49+happyReduction_49 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokComment happy_var_1) -> +	happyIn8+		 (TokComment happy_var_1+	)}++happyReduce_50 = happySpecReduce_1  2# happyReduction_50+happyReduction_50 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymEllipsis happy_var_1) -> +	happyIn8+		 (TokSymbol SymEllipsis happy_var_1+	)}++happyReduce_51 = happySpecReduce_1  2# happyReduction_51+happyReduction_51 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymDot happy_var_1) -> +	happyIn8+		 (TokSymbol SymDot happy_var_1+	)}++happyReduce_52 = happySpecReduce_1  2# happyReduction_52+happyReduction_52 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymSemi happy_var_1) -> +	happyIn8+		 (TokSymbol SymSemi happy_var_1+	)}++happyReduce_53 = happySpecReduce_1  2# happyReduction_53+happyReduction_53 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymColon happy_var_1) -> +	happyIn8+		 (TokSymbol SymColon happy_var_1+	)}++happyReduce_54 = happySpecReduce_1  2# happyReduction_54+happyReduction_54 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymEqual happy_var_1) -> +	happyIn8+		 (TokSymbol SymEqual happy_var_1+	)}++happyReduce_55 = happySpecReduce_1  2# happyReduction_55+happyReduction_55 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymUnderscore happy_var_1) -> +	happyIn8+		 (TokSymbol SymUnderscore happy_var_1+	)}++happyReduce_56 = happySpecReduce_1  2# happyReduction_56+happyReduction_56 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymQuestionMark happy_var_1) -> +	happyIn8+		 (TokSymbol SymQuestionMark happy_var_1+	)}++happyReduce_57 = happySpecReduce_1  2# happyReduction_57+happyReduction_57 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymArrow happy_var_1) -> +	happyIn8+		 (TokSymbol SymArrow happy_var_1+	)}++happyReduce_58 = happySpecReduce_1  2# happyReduction_58+happyReduction_58 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymLambda happy_var_1) -> +	happyIn8+		 (TokSymbol SymLambda happy_var_1+	)}++happyReduce_59 = happySpecReduce_1  2# happyReduction_59+happyReduction_59 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymAs happy_var_1) -> +	happyIn8+		 (TokSymbol SymAs happy_var_1+	)}++happyReduce_60 = happySpecReduce_1  2# happyReduction_60+happyReduction_60 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymBar happy_var_1) -> +	happyIn8+		 (TokSymbol SymBar happy_var_1+	)}++happyReduce_61 = happySpecReduce_1  2# happyReduction_61+happyReduction_61 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> +	happyIn8+		 (TokSymbol SymOpenParen happy_var_1+	)}++happyReduce_62 = happySpecReduce_1  2# happyReduction_62+happyReduction_62 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymCloseParen happy_var_1) -> +	happyIn8+		 (TokSymbol SymCloseParen happy_var_1+	)}++happyReduce_63 = happySpecReduce_1  2# happyReduction_63+happyReduction_63 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> +	happyIn8+		 (TokSymbol SymOpenBrace happy_var_1+	)}++happyReduce_64 = happySpecReduce_1  2# happyReduction_64+happyReduction_64 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymCloseBrace happy_var_1) -> +	happyIn8+		 (TokSymbol SymCloseBrace happy_var_1+	)}++happyReduce_65 = happySpecReduce_1  2# happyReduction_65+happyReduction_65 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenVirtualBrace happy_var_1) -> +	happyIn8+		 (TokSymbol SymOpenVirtualBrace happy_var_1+	)}++happyReduce_66 = happySpecReduce_1  2# happyReduction_66+happyReduction_66 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymCloseVirtualBrace happy_var_1) -> +	happyIn8+		 (TokSymbol SymCloseVirtualBrace happy_var_1+	)}++happyReduce_67 = happySpecReduce_1  2# happyReduction_67+happyReduction_67 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymVirtualSemi happy_var_1) -> +	happyIn8+		 (TokSymbol SymVirtualSemi happy_var_1+	)}++happyReduce_68 = happySpecReduce_1  2# happyReduction_68+happyReduction_68 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	happyIn8+		 (TokSymbol SymOpenPragma happy_var_1+	)}++happyReduce_69 = happySpecReduce_1  2# happyReduction_69+happyReduction_69 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymClosePragma happy_var_1) -> +	happyIn8+		 (TokSymbol SymClosePragma happy_var_1+	)}++happyReduce_70 = happySpecReduce_1  2# happyReduction_70+happyReduction_70 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokId happy_var_1) -> +	happyIn8+		 (TokId happy_var_1+	)}++happyReduce_71 = happySpecReduce_1  2# happyReduction_71+happyReduction_71 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokQId happy_var_1) -> +	happyIn8+		 (TokQId happy_var_1+	)}++happyReduce_72 = happySpecReduce_1  2# happyReduction_72+happyReduction_72 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokString happy_var_1) -> +	happyIn8+		 (TokString happy_var_1+	)}++happyReduce_73 = happySpecReduce_1  2# happyReduction_73+happyReduction_73 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokLiteral happy_var_1) -> +	happyIn8+		 (TokLiteral happy_var_1+	)}++happyReduce_74 = happySpecReduce_0  3# happyReduction_74+happyReduction_74  =  happyIn9+		 (()+	)++happyReduce_75 = happySpecReduce_2  3# happyReduction_75+happyReduction_75 happy_x_2+	happy_x_1+	 =  happyIn9+		 (()+	)++happyReduce_76 = happySpecReduce_2  4# happyReduction_76+happyReduction_76 happy_x_2+	happy_x_1+	 =  case happyOut11 happy_x_1 of { happy_var_1 -> +	happyIn10+		 (happy_var_1+	)}++happyReduce_77 = happySpecReduce_1  5# happyReduction_77+happyReduction_77 happy_x_1+	 =  case happyOut96 happy_x_1 of { happy_var_1 -> +	happyIn11+		 (([], happy_var_1)+	)}++happyReduce_78 = happySpecReduce_3  5# happyReduction_78+happyReduction_78 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut99 happy_x_2 of { happy_var_2 -> +	case happyOut11 happy_x_3 of { happy_var_3 -> +	happyIn11+		 (let (ps,m) = happy_var_3 in (happy_var_2 : ps, m)+	)}}++happyReduce_79 = happySpecReduce_1  6# happyReduction_79+happyReduction_79 happy_x_1+	 =  happyIn12+		 (()+	)++happyReduce_80 = happyMonadReduce 1# 6# happyReduction_80+happyReduction_80 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (( popContext)+	) (\r -> happyReturn (happyIn12 r))++happyReduce_81 = happySpecReduce_1  7# happyReduction_81+happyReduction_81 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymSemi happy_var_1) -> +	happyIn13+		 (happy_var_1+	)}++happyReduce_82 = happySpecReduce_2  7# happyReduction_82+happyReduction_82 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_2 of { (TokSymbol SymVirtualSemi happy_var_2) -> +	happyIn13+		 (happy_var_2+	)}++happyReduce_83 = happyMonadReduce 0# 8# happyReduction_83+happyReduction_83 (happyRest) tk+	 = happyThen (( pushLexState imp_dir)+	) (\r -> happyReturn (happyIn14 r))++happyReduce_84 = happyMonadReduce 1# 9# happyReduction_84+happyReduction_84 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOutTok happy_x_1 of { (TokLiteral happy_var_1) -> +	( case happy_var_1 of {+		     LitInt _ n	-> return $ fromIntegral n;+		     _		-> fail $ "Expected integer"+		   })}+	) (\r -> happyReturn (happyIn15 r))++happyReduce_85 = happyMonadReduce 1# 10# happyReduction_85+happyReduction_85 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOutTok happy_x_1 of { (TokId happy_var_1) -> +	( mkName happy_var_1)}+	) (\r -> happyReturn (happyIn16 r))++happyReduce_86 = happySpecReduce_2  11# happyReduction_86+happyReduction_86 happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	case happyOut17 happy_x_2 of { happy_var_2 -> +	happyIn17+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_87 = happySpecReduce_1  11# happyReduction_87+happyReduction_87 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn17+		 ([happy_var_1]+	)}++happyReduce_88 = happySpecReduce_2  12# happyReduction_88+happyReduction_88 happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> +	happyIn18+		 (Arg NotHidden Irrelevant happy_var_2+	)}++happyReduce_89 = happySpecReduce_1  12# happyReduction_89+happyReduction_89 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn18+		 (defaultArg happy_var_1+	)}++happyReduce_90 = happySpecReduce_2  13# happyReduction_90+happyReduction_90 happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	case happyOut19 happy_x_2 of { happy_var_2 -> +	happyIn19+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_91 = happySpecReduce_1  13# happyReduction_91+happyReduction_91 happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	happyIn19+		 ([happy_var_1]+	)}++happyReduce_92 = happySpecReduce_2  14# happyReduction_92+happyReduction_92 happy_x_2+	happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	case happyOut20 happy_x_2 of { happy_var_2 -> +	happyIn20+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_93 = happySpecReduce_1  14# happyReduction_93+happyReduction_93 happy_x_1+	 =  case happyOut18 happy_x_1 of { happy_var_1 -> +	happyIn20+		 ([happy_var_1]+	)}++happyReduce_94 = happyReduce 4# 14# happyReduction_94+happyReduction_94 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut19 happy_x_2 of { happy_var_2 -> +	case happyOut20 happy_x_4 of { happy_var_4 -> +	happyIn20+		 (map hide happy_var_2 ++ happy_var_4+	) `HappyStk` happyRest}}++happyReduce_95 = happySpecReduce_3  14# happyReduction_95+happyReduction_95 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut19 happy_x_2 of { happy_var_2 -> +	happyIn20+		 (map hide happy_var_2+	)}++happyReduce_96 = happyReduce 5# 14# happyReduction_96+happyReduction_96 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut17 happy_x_3 of { happy_var_3 -> +	case happyOut20 happy_x_5 of { happy_var_5 -> +	happyIn20+		 (map (Arg Hidden Irrelevant) happy_var_3 ++ happy_var_5+	) `HappyStk` happyRest}}++happyReduce_97 = happyReduce 4# 14# happyReduction_97+happyReduction_97 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut17 happy_x_3 of { happy_var_3 -> +	happyIn20+		 (map (Arg Hidden Irrelevant) happy_var_3+	) `HappyStk` happyRest}++happyReduce_98 = happyMonadReduce 1# 15# happyReduction_98+happyReduction_98 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOutTok happy_x_1 of { (TokQId happy_var_1) -> +	( mkQName happy_var_1)}+	) (\r -> happyReturn (happyIn21 r))++happyReduce_99 = happySpecReduce_1  15# happyReduction_99+happyReduction_99 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn21+		 (QName happy_var_1+	)}++happyReduce_100 = happySpecReduce_1  16# happyReduction_100+happyReduction_100 happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	happyIn22+		 (happy_var_1+	)}++happyReduce_101 = happySpecReduce_1  17# happyReduction_101+happyReduction_101 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn23+		 (happy_var_1+	)}++happyReduce_102 = happySpecReduce_1  17# happyReduction_102+happyReduction_102 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymUnderscore happy_var_1) -> +	happyIn23+		 (Name (getRange happy_var_1) [Hole]+	)}++happyReduce_103 = happySpecReduce_2  18# happyReduction_103+happyReduction_103 happy_x_2+	happy_x_1+	 =  case happyOut23 happy_x_1 of { happy_var_1 -> +	case happyOut24 happy_x_2 of { happy_var_2 -> +	happyIn24+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_104 = happySpecReduce_1  18# happyReduction_104+happyReduction_104 happy_x_1+	 =  case happyOut23 happy_x_1 of { happy_var_1 -> +	happyIn24+		 ([happy_var_1]+	)}++happyReduce_105 = happyMonadReduce 1# 19# happyReduction_105+happyReduction_105 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut31 happy_x_1 of { happy_var_1 -> +	(+    let getName (Ident (QName x)) = Just x+	getName (Underscore r _)  = Just (Name r [Hole])+	getName _		  = Nothing+    in+    case partition isJust $ map getName happy_var_1 of+	(good, []) -> return $ map fromJust good+	_	   -> fail $ "expected sequence of bound identifiers")}+	) (\r -> happyReturn (happyIn25 r))++happyReduce_106 = happySpecReduce_0  20# happyReduction_106+happyReduction_106  =  happyIn26+		 ([]+	)++happyReduce_107 = happySpecReduce_2  20# happyReduction_107+happyReduction_107 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokString happy_var_1) -> +	case happyOut26 happy_x_2 of { happy_var_2 -> +	happyIn26+		 (snd happy_var_1 : happy_var_2+	)}}++happyReduce_108 = happyMonadReduce 1# 21# happyReduction_108+happyReduction_108 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOutTok happy_x_1 of { (TokString happy_var_1) -> +	( fmap QName (mkName happy_var_1))}+	) (\r -> happyReturn (happyIn27 r))++happyReduce_109 = happySpecReduce_2  22# happyReduction_109+happyReduction_109 happy_x_2+	happy_x_1+	 =  case happyOut38 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn28+		 (Pi happy_var_1 happy_var_2+	)}}++happyReduce_110 = happySpecReduce_3  22# happyReduction_110+happyReduction_110 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut48 happy_x_2 of { happy_var_2 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn28+		 (forallPi happy_var_2 happy_var_3+	)}}++happyReduce_111 = happySpecReduce_3  22# happyReduction_111+happyReduction_111 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn28+		 (Fun (fuseRange happy_var_1 happy_var_3) (RawApp (getRange happy_var_1) happy_var_1) happy_var_3+	)}}++happyReduce_112 = happySpecReduce_1  22# happyReduction_112+happyReduction_112 happy_x_1+	 =  case happyOut29 happy_x_1 of { happy_var_1 -> +	happyIn28+		 (happy_var_1+	)}++happyReduce_113 = happyMonadReduce 1# 23# happyReduction_113+happyReduction_113 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut30 happy_x_1 of { happy_var_1 -> +	( case happy_var_1 of+		      { [e]    -> return e+		      ; e : es -> return $ WithApp (fuseRange e es) e es+		      ; []     -> fail "impossible: empty with expressions"+		      })}+	) (\r -> happyReturn (happyIn29 r))++happyReduce_114 = happySpecReduce_3  24# happyReduction_114+happyReduction_114 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut33 happy_x_1 of { happy_var_1 -> +	case happyOut30 happy_x_3 of { happy_var_3 -> +	happyIn30+		 (RawApp (getRange happy_var_1) happy_var_1 :  happy_var_3+	)}}++happyReduce_115 = happySpecReduce_1  24# happyReduction_115+happyReduction_115 happy_x_1+	 =  case happyOut31 happy_x_1 of { happy_var_1 -> +	happyIn30+		 ([RawApp (getRange happy_var_1) happy_var_1]+	)}++happyReduce_116 = happySpecReduce_1  25# happyReduction_116+happyReduction_116 happy_x_1+	 =  case happyOut32 happy_x_1 of { happy_var_1 -> +	happyIn31+		 ([happy_var_1]+	)}++happyReduce_117 = happySpecReduce_2  25# happyReduction_117+happyReduction_117 happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut31 happy_x_2 of { happy_var_2 -> +	happyIn31+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_118 = happySpecReduce_3  26# happyReduction_118+happyReduction_118 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymLambda happy_var_1) -> +	case happyOut45 happy_x_2 of { happy_var_2 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn32+		 (Lam (fuseRange happy_var_1 happy_var_3) happy_var_2 happy_var_3+	)}}}++happyReduce_119 = happySpecReduce_2  26# happyReduction_119+happyReduction_119 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymLambda happy_var_1) -> +	case happyOut46 happy_x_2 of { happy_var_2 -> +	happyIn32+		 (let (bs, h) = happy_var_2; r = fuseRange happy_var_1 bs in+                                     if null bs then AbsurdLam r h else+                                     Lam r bs (AbsurdLam r h)+	)}}++happyReduce_120 = happyReduce 4# 26# happyReduction_120+happyReduction_120 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwLet happy_var_1) -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	case happyOut28 happy_x_4 of { happy_var_4 -> +	happyIn32+		 (Let (fuseRange happy_var_1 happy_var_4) happy_var_2 happy_var_4+	) `HappyStk` happyRest}}}++happyReduce_121 = happySpecReduce_1  26# happyReduction_121+happyReduction_121 happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	happyIn32+		 (happy_var_1+	)}++happyReduce_122 = happyReduce 4# 26# happyReduction_122+happyReduction_122 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwQuoteGoal happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut28 happy_x_4 of { happy_var_4 -> +	happyIn32+		 (QuoteGoal (getRange (happy_var_1,happy_var_4)) happy_var_2 happy_var_4+	) `HappyStk` happyRest}}}++happyReduce_123 = happySpecReduce_1  27# happyReduction_123+happyReduction_123 happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	happyIn33+		 ([happy_var_1]+	)}++happyReduce_124 = happySpecReduce_2  27# happyReduction_124+happyReduction_124 happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut33 happy_x_2 of { happy_var_2 -> +	happyIn33+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_125 = happySpecReduce_1  28# happyReduction_125+happyReduction_125 happy_x_1+	 =  case happyOut21 happy_x_1 of { happy_var_1 -> +	happyIn34+		 (Ident happy_var_1+	)}++happyReduce_126 = happySpecReduce_1  28# happyReduction_126+happyReduction_126 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokLiteral happy_var_1) -> +	happyIn34+		 (Lit happy_var_1+	)}++happyReduce_127 = happySpecReduce_1  28# happyReduction_127+happyReduction_127 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymQuestionMark happy_var_1) -> +	happyIn34+		 (QuestionMark (getRange happy_var_1) Nothing+	)}++happyReduce_128 = happySpecReduce_1  28# happyReduction_128+happyReduction_128 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymUnderscore happy_var_1) -> +	happyIn34+		 (Underscore (getRange happy_var_1) Nothing+	)}++happyReduce_129 = happySpecReduce_1  28# happyReduction_129+happyReduction_129 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwProp happy_var_1) -> +	happyIn34+		 (Prop (getRange happy_var_1)+	)}++happyReduce_130 = happySpecReduce_1  28# happyReduction_130+happyReduction_130 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwSet happy_var_1) -> +	happyIn34+		 (Set (getRange happy_var_1)+	)}++happyReduce_131 = happySpecReduce_1  28# happyReduction_131+happyReduction_131 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwQuote happy_var_1) -> +	happyIn34+		 (Quote (getRange happy_var_1)+	)}++happyReduce_132 = happySpecReduce_1  28# happyReduction_132+happyReduction_132 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSetN happy_var_1) -> +	happyIn34+		 (SetN (getRange (fst happy_var_1)) (snd happy_var_1)+	)}++happyReduce_133 = happySpecReduce_3  28# happyReduction_133+happyReduction_133 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> +	case happyOut28 happy_x_2 of { happy_var_2 -> +	case happyOutTok happy_x_3 of { (TokSymbol SymCloseBrace happy_var_3) -> +	happyIn34+		 (HiddenArg (fuseRange happy_var_1 happy_var_3) (unnamed happy_var_2)+	)}}}++happyReduce_134 = happyReduce 5# 28# happyReduction_134+happyReduction_134 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut28 happy_x_4 of { happy_var_4 -> +	case happyOutTok happy_x_5 of { (TokSymbol SymCloseBrace happy_var_5) -> +	happyIn34+		 (HiddenArg (fuseRange happy_var_1 happy_var_5) (named (show happy_var_2) happy_var_4)+	) `HappyStk` happyRest}}}}++happyReduce_135 = happySpecReduce_3  28# happyReduction_135+happyReduction_135 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> +	case happyOut28 happy_x_2 of { happy_var_2 -> +	case happyOutTok happy_x_3 of { (TokSymbol SymCloseParen happy_var_3) -> +	happyIn34+		 (Paren (fuseRange happy_var_1 happy_var_3) happy_var_2+	)}}}++happyReduce_136 = happySpecReduce_2  28# happyReduction_136+happyReduction_136 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> +	case happyOutTok happy_x_2 of { (TokSymbol SymCloseBrace happy_var_2) -> +	happyIn34+		 (let r = fuseRange happy_var_1 happy_var_2 in HiddenArg r $ unnamed $ Absurd r+	)}}++happyReduce_137 = happySpecReduce_2  28# happyReduction_137+happyReduction_137 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> +	case happyOutTok happy_x_2 of { (TokSymbol SymCloseParen happy_var_2) -> +	happyIn34+		 (Absurd (fuseRange happy_var_1 happy_var_2)+	)}}++happyReduce_138 = happySpecReduce_3  28# happyReduction_138+happyReduction_138 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	case happyOut34 happy_x_3 of { happy_var_3 -> +	happyIn34+		 (As (fuseRange happy_var_1 happy_var_3) happy_var_1 happy_var_3+	)}}++happyReduce_139 = happySpecReduce_2  28# happyReduction_139+happyReduction_139 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymDot happy_var_1) -> +	case happyOut34 happy_x_2 of { happy_var_2 -> +	happyIn34+		 (Dot (fuseRange happy_var_1 happy_var_2) happy_var_2+	)}}++happyReduce_140 = happyReduce 4# 28# happyReduction_140+happyReduction_140 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwRecord happy_var_1) -> +	case happyOut35 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokSymbol SymCloseBrace happy_var_4) -> +	happyIn34+		 (Rec (getRange (happy_var_1,happy_var_4)) happy_var_3+	) `HappyStk` happyRest}}}++happyReduce_141 = happySpecReduce_0  29# happyReduction_141+happyReduction_141  =  happyIn35+		 ([]+	)++happyReduce_142 = happySpecReduce_1  29# happyReduction_142+happyReduction_142 happy_x_1+	 =  case happyOut36 happy_x_1 of { happy_var_1 -> +	happyIn35+		 (happy_var_1+	)}++happyReduce_143 = happySpecReduce_1  30# happyReduction_143+happyReduction_143 happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	happyIn36+		 ([happy_var_1]+	)}++happyReduce_144 = happySpecReduce_3  30# happyReduction_144+happyReduction_144 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut37 happy_x_1 of { happy_var_1 -> +	case happyOut36 happy_x_3 of { happy_var_3 -> +	happyIn36+		 (happy_var_1 : happy_var_3+	)}}++happyReduce_145 = happySpecReduce_3  31# happyReduction_145+happyReduction_145 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn37+		 ((happy_var_1, happy_var_3)+	)}}++happyReduce_146 = happySpecReduce_2  32# happyReduction_146+happyReduction_146 happy_x_2+	happy_x_1+	 =  case happyOut39 happy_x_1 of { happy_var_1 -> +	happyIn38+		 (happy_var_1+	)}++happyReduce_147 = happySpecReduce_1  33# happyReduction_147+happyReduction_147 happy_x_1+	 =  case happyOut40 happy_x_1 of { happy_var_1 -> +	happyIn39+		 ({-TeleBind-} happy_var_1+	)}++happyReduce_148 = happySpecReduce_2  34# happyReduction_148+happyReduction_148 happy_x_2+	happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	case happyOut40 happy_x_2 of { happy_var_2 -> +	happyIn40+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_149 = happySpecReduce_1  34# happyReduction_149+happyReduction_149 happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	happyIn40+		 ([happy_var_1]+	)}++happyReduce_150 = happySpecReduce_3  35# happyReduction_150+happyReduction_150 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenParen happy_var_1) -> +	case happyOut42 happy_x_2 of { happy_var_2 -> +	case happyOutTok happy_x_3 of { (TokSymbol SymCloseParen happy_var_3) -> +	happyIn41+		 (TypedBindings (fuseRange happy_var_1 happy_var_3) (Arg NotHidden Relevant happy_var_2)+	)}}}++happyReduce_151 = happySpecReduce_3  35# happyReduction_151+happyReduction_151 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenBrace happy_var_1) -> +	case happyOut42 happy_x_2 of { happy_var_2 -> +	case happyOutTok happy_x_3 of { (TokSymbol SymCloseBrace happy_var_3) -> +	happyIn41+		 (TypedBindings (fuseRange happy_var_1 happy_var_3) (Arg Hidden    Relevant happy_var_2)+	)}}}++happyReduce_152 = happySpecReduce_1  36# happyReduction_152+happyReduction_152 happy_x_1+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> +	happyIn42+		 ([happy_var_1]+	)}++happyReduce_153 = happySpecReduce_3  36# happyReduction_153+happyReduction_153 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut44 happy_x_1 of { happy_var_1 -> +	case happyOut43 happy_x_3 of { happy_var_3 -> +	happyIn42+		 (happy_var_1 : happy_var_3+	)}}++happyReduce_154 = happySpecReduce_1  37# happyReduction_154+happyReduction_154 happy_x_1+	 =  case happyOut42 happy_x_1 of { happy_var_1 -> +	happyIn43+		 (happy_var_1+	)}++happyReduce_155 = happySpecReduce_3  37# happyReduction_155+happyReduction_155 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut28 happy_x_1 of { happy_var_1 -> +	case happyOut43 happy_x_3 of { happy_var_3 -> +	happyIn43+		 (TNoBind happy_var_1 : happy_var_3+	)}}++happyReduce_156 = happySpecReduce_1  37# happyReduction_156+happyReduction_156 happy_x_1+	 =  case happyOut28 happy_x_1 of { happy_var_1 -> +	happyIn43+		 ([TNoBind happy_var_1]+	)}++happyReduce_157 = happySpecReduce_3  38# happyReduction_157+happyReduction_157 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut25 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn44+		 (TBind (fuseRange happy_var_1 happy_var_3) (map mkBoundName_ happy_var_1) happy_var_3+	)}}++happyReduce_158 = happyMonadReduce 2# 39# happyReduction_158+happyReduction_158 (happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut47 happy_x_1 of { happy_var_1 -> +	(+      case last happy_var_1 of+        Left _  -> parseError "Absurd lambda cannot have a body."+        _       -> return [ b | Right b <- happy_var_1 ])}+	) (\r -> happyReturn (happyIn45 r))++happyReduce_159 = happyMonadReduce 1# 40# happyReduction_159+happyReduction_159 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut47 happy_x_1 of { happy_var_1 -> +	(+    case last happy_var_1 of+      Right _ -> parseError "Missing body for lambda"+      Left h  -> return ([ b | Right b <- init happy_var_1], h))}+	) (\r -> happyReturn (happyIn46 r))++happyReduce_160 = happySpecReduce_2  41# happyReduction_160+happyReduction_160 happy_x_2+	happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_2 of { happy_var_2 -> +	happyIn47+		 (map Right happy_var_1 ++ happy_var_2+	)}}++happyReduce_161 = happySpecReduce_2  41# happyReduction_161+happyReduction_161 happy_x_2+	happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	case happyOut47 happy_x_2 of { happy_var_2 -> +	happyIn47+		 (Right (DomainFull happy_var_1) : happy_var_2+	)}}++happyReduce_162 = happySpecReduce_1  41# happyReduction_162+happyReduction_162 happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	happyIn47+		 (map Right happy_var_1+	)}++happyReduce_163 = happySpecReduce_1  41# happyReduction_163+happyReduction_163 happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	happyIn47+		 ([Right $ DomainFull happy_var_1]+	)}++happyReduce_164 = happySpecReduce_2  41# happyReduction_164+happyReduction_164 happy_x_2+	happy_x_1+	 =  happyIn47+		 ([Left NotHidden]+	)++happyReduce_165 = happySpecReduce_2  41# happyReduction_165+happyReduction_165 happy_x_2+	happy_x_1+	 =  happyIn47+		 ([Left Hidden]+	)++happyReduce_166 = happySpecReduce_2  42# happyReduction_166+happyReduction_166 happy_x_2+	happy_x_1+	 =  case happyOut49 happy_x_1 of { happy_var_1 -> +	happyIn48+		 (happy_var_1+	)}++happyReduce_167 = happySpecReduce_2  43# happyReduction_167+happyReduction_167 happy_x_2+	happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_2 of { happy_var_2 -> +	happyIn49+		 (happy_var_1 ++ happy_var_2+	)}}++happyReduce_168 = happySpecReduce_2  43# happyReduction_168+happyReduction_168 happy_x_2+	happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	case happyOut49 happy_x_2 of { happy_var_2 -> +	happyIn49+		 (DomainFull happy_var_1 : happy_var_2+	)}}++happyReduce_169 = happySpecReduce_1  43# happyReduction_169+happyReduction_169 happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	happyIn49+		 (happy_var_1+	)}++happyReduce_170 = happySpecReduce_1  43# happyReduction_170+happyReduction_170 happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	happyIn49+		 ([DomainFull happy_var_1]+	)}++happyReduce_171 = happySpecReduce_2  44# happyReduction_171+happyReduction_171 happy_x_2+	happy_x_1+	 =  case happyOut51 happy_x_1 of { happy_var_1 -> +	case happyOut50 happy_x_2 of { happy_var_2 -> +	happyIn50+		 (happy_var_1 ++ happy_var_2+	)}}++happyReduce_172 = happySpecReduce_2  44# happyReduction_172+happyReduction_172 happy_x_2+	happy_x_1+	 =  case happyOut41 happy_x_1 of { happy_var_1 -> +	case happyOut50 happy_x_2 of { happy_var_2 -> +	happyIn50+		 (DomainFull happy_var_1 : happy_var_2+	)}}++happyReduce_173 = happySpecReduce_0  44# happyReduction_173+happyReduction_173  =  happyIn50+		 ([]+	)++happyReduce_174 = happySpecReduce_1  45# happyReduction_174+happyReduction_174 happy_x_1+	 =  case happyOut23 happy_x_1 of { happy_var_1 -> +	happyIn51+		 ([DomainFree NotHidden $ mkBoundName_ happy_var_1]+	)}++happyReduce_175 = happySpecReduce_3  45# happyReduction_175+happyReduction_175 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut25 happy_x_2 of { happy_var_2 -> +	happyIn51+		 (map (DomainFree Hidden . mkBoundName_) happy_var_2+	)}++happyReduce_176 = happySpecReduce_1  46# happyReduction_176+happyReduction_176 happy_x_1+	 =  case happyOut53 happy_x_1 of { happy_var_1 -> +	happyIn52+		 ((Nothing, happy_var_1)+	)}++happyReduce_177 = happyMonadReduce 3# 46# happyReduction_177+happyReduction_177 (happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOutTok happy_x_1 of { (TokId happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut53 happy_x_3 of { happy_var_3 -> +	( isName "as" happy_var_1 >>+                               return (Just (AsName happy_var_2 (getRange (fst happy_var_1))), happy_var_3))}}}+	) (\r -> happyReturn (happyIn52 r))++happyReduce_178 = happyMonadReduce 1# 47# happyReduction_178+happyReduction_178 (happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut54 happy_x_1 of { happy_var_1 -> +	( verifyImportDirective happy_var_1)}+	) (\r -> happyReturn (happyIn53 r))++happyReduce_179 = happySpecReduce_2  48# happyReduction_179+happyReduction_179 happy_x_2+	happy_x_1+	 =  case happyOut55 happy_x_2 of { happy_var_2 -> +	happyIn54+		 (happy_var_2 { publicOpen = True }+	)}++happyReduce_180 = happySpecReduce_1  48# happyReduction_180+happyReduction_180 happy_x_1+	 =  case happyOut55 happy_x_1 of { happy_var_1 -> +	happyIn54+		 (happy_var_1+	)}++happyReduce_181 = happySpecReduce_2  49# happyReduction_181+happyReduction_181 happy_x_2+	happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	case happyOut57 happy_x_2 of { happy_var_2 -> +	happyIn55+		 (ImportDirective (fuseRange (snd happy_var_1) (snd happy_var_2)) (fst happy_var_1) (fst happy_var_2) False+	)}}++happyReduce_182 = happySpecReduce_1  49# happyReduction_182+happyReduction_182 happy_x_1+	 =  case happyOut57 happy_x_1 of { happy_var_1 -> +	happyIn55+		 (ImportDirective (getRange (snd happy_var_1)) (Hiding []) (fst happy_var_1) False+	)}++happyReduce_183 = happySpecReduce_1  49# happyReduction_183+happyReduction_183 happy_x_1+	 =  case happyOut56 happy_x_1 of { happy_var_1 -> +	happyIn55+		 (ImportDirective (getRange (snd happy_var_1)) (fst happy_var_1) [] False+	)}++happyReduce_184 = happySpecReduce_0  49# happyReduction_184+happyReduction_184  =  happyIn55+		 (ImportDirective noRange (Hiding []) [] False+	)++happyReduce_185 = happyReduce 4# 50# happyReduction_185+happyReduction_185 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwUsing happy_var_1) -> +	case happyOut62 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokSymbol SymCloseParen happy_var_4) -> +	happyIn56+		 ((Using happy_var_3 , fuseRange happy_var_1 happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_186 = happyReduce 4# 50# happyReduction_186+happyReduction_186 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwHiding happy_var_1) -> +	case happyOut63 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokSymbol SymCloseParen happy_var_4) -> +	happyIn56+		 ((Hiding happy_var_3 , fuseRange happy_var_1 happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_187 = happyReduce 4# 51# happyReduction_187+happyReduction_187 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwRenaming happy_var_1) -> +	case happyOut58 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokSymbol SymCloseParen happy_var_4) -> +	happyIn57+		 ((happy_var_3 , fuseRange happy_var_1 happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_188 = happySpecReduce_3  52# happyReduction_188+happyReduction_188 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	case happyOut58 happy_x_3 of { happy_var_3 -> +	happyIn58+		 (happy_var_1 : happy_var_3+	)}}++happyReduce_189 = happySpecReduce_1  52# happyReduction_189+happyReduction_189 happy_x_1+	 =  case happyOut59 happy_x_1 of { happy_var_1 -> +	happyIn58+		 ([happy_var_1]+	)}++happyReduce_190 = happySpecReduce_3  53# happyReduction_190+happyReduction_190 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut60 happy_x_1 of { happy_var_1 -> +	case happyOutTok happy_x_2 of { (TokKeyword KwTo happy_var_2) -> +	case happyOut16 happy_x_3 of { happy_var_3 -> +	happyIn59+		 (Renaming happy_var_1 happy_var_3 (getRange happy_var_2)+	)}}}++happyReduce_191 = happySpecReduce_2  54# happyReduction_191+happyReduction_191 happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> +	happyIn60+		 (ImportedName happy_var_2+	)}++happyReduce_192 = happySpecReduce_3  54# happyReduction_192+happyReduction_192 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_3 of { happy_var_3 -> +	happyIn60+		 (ImportedModule happy_var_3+	)}++happyReduce_193 = happySpecReduce_1  55# happyReduction_193+happyReduction_193 happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	happyIn61+		 (ImportedName happy_var_1+	)}++happyReduce_194 = happySpecReduce_2  55# happyReduction_194+happyReduction_194 happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> +	happyIn61+		 (ImportedModule happy_var_2+	)}++happyReduce_195 = happySpecReduce_0  56# happyReduction_195+happyReduction_195  =  happyIn62+		 ([]+	)++happyReduce_196 = happySpecReduce_1  56# happyReduction_196+happyReduction_196 happy_x_1+	 =  case happyOut63 happy_x_1 of { happy_var_1 -> +	happyIn62+		 (happy_var_1+	)}++happyReduce_197 = happySpecReduce_1  57# happyReduction_197+happyReduction_197 happy_x_1+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> +	happyIn63+		 ([happy_var_1]+	)}++happyReduce_198 = happySpecReduce_3  57# happyReduction_198+happyReduction_198 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut61 happy_x_1 of { happy_var_1 -> +	case happyOut63 happy_x_3 of { happy_var_3 -> +	happyIn63+		 (happy_var_1 : happy_var_3+	)}}++happyReduce_199 = happyMonadReduce 3# 58# happyReduction_199+happyReduction_199 (happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut29 happy_x_1 of { happy_var_1 -> +	case happyOut67 happy_x_2 of { happy_var_2 -> +	case happyOut66 happy_x_3 of { happy_var_3 -> +	( exprToLHS happy_var_1 >>= \p -> return (p happy_var_2 happy_var_3))}}}+	) (\r -> happyReturn (happyIn64 r))++happyReduce_200 = happyReduce 4# 58# happyReduction_200+happyReduction_200 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymEllipsis happy_var_1) -> +	case happyOut65 happy_x_2 of { happy_var_2 -> +	case happyOut67 happy_x_3 of { happy_var_3 -> +	case happyOut66 happy_x_4 of { happy_var_4 -> +	happyIn64+		 (Ellipsis (fuseRange happy_var_1 happy_var_3) happy_var_2 happy_var_3 happy_var_4+	) `HappyStk` happyRest}}}}++happyReduce_201 = happySpecReduce_0  59# happyReduction_201+happyReduction_201  =  happyIn65+		 ([]+	)++happyReduce_202 = happyMonadReduce 3# 59# happyReduction_202+happyReduction_202 (happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut33 happy_x_2 of { happy_var_2 -> +	case happyOut65 happy_x_3 of { happy_var_3 -> +	( exprToPattern (RawApp (getRange happy_var_2) happy_var_2) >>= \p ->+		   return (p : happy_var_3))}}+	) (\r -> happyReturn (happyIn65 r))++happyReduce_203 = happySpecReduce_0  60# happyReduction_203+happyReduction_203  =  happyIn66+		 ([]+	)++happyReduce_204 = happySpecReduce_2  60# happyReduction_204+happyReduction_204 happy_x_2+	happy_x_1+	 =  case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn66+		 (case happy_var_2 of { WithApp _ e es -> e : es; e -> [e] }+	)}++happyReduce_205 = happySpecReduce_0  61# happyReduction_205+happyReduction_205  =  happyIn67+		 ([]+	)++happyReduce_206 = happySpecReduce_2  61# happyReduction_206+happyReduction_206 happy_x_2+	happy_x_1+	 =  case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn67+		 (case happy_var_2 of { WithApp _ e es -> e : es; e -> [e] }+	)}++happyReduce_207 = happySpecReduce_0  62# happyReduction_207+happyReduction_207  =  happyIn68+		 (NoWhere+	)++happyReduce_208 = happySpecReduce_2  62# happyReduction_208+happyReduction_208 happy_x_2+	happy_x_1+	 =  case happyOut118 happy_x_2 of { happy_var_2 -> +	happyIn68+		 (AnyWhere happy_var_2+	)}++happyReduce_209 = happyReduce 4# 62# happyReduction_209+happyReduction_209 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut118 happy_x_4 of { happy_var_4 -> +	happyIn68+		 (SomeWhere happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_210 = happySpecReduce_1  63# happyReduction_210+happyReduction_210 happy_x_1+	 =  case happyOut71 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_211 = happySpecReduce_1  63# happyReduction_211+happyReduction_211 happy_x_1+	 =  case happyOut80 happy_x_1 of { happy_var_1 -> +	happyIn69+		 (happy_var_1+	)}++happyReduce_212 = happySpecReduce_1  63# happyReduction_212+happyReduction_212 happy_x_1+	 =  case happyOut74 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_213 = happySpecReduce_1  63# happyReduction_213+happyReduction_213 happy_x_1+	 =  case happyOut76 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_214 = happySpecReduce_1  63# happyReduction_214+happyReduction_214 happy_x_1+	 =  case happyOut77 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_215 = happySpecReduce_1  63# happyReduction_215+happyReduction_215 happy_x_1+	 =  case happyOut79 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_216 = happySpecReduce_1  63# happyReduction_216+happyReduction_216 happy_x_1+	 =  case happyOut81 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_217 = happySpecReduce_1  63# happyReduction_217+happyReduction_217 happy_x_1+	 =  case happyOut82 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_218 = happySpecReduce_1  63# happyReduction_218+happyReduction_218 happy_x_1+	 =  case happyOut83 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_219 = happySpecReduce_1  63# happyReduction_219+happyReduction_219 happy_x_1+	 =  case happyOut84 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_220 = happySpecReduce_1  63# happyReduction_220+happyReduction_220 happy_x_1+	 =  case happyOut85 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_221 = happySpecReduce_1  63# happyReduction_221+happyReduction_221 happy_x_1+	 =  case happyOut91 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_222 = happySpecReduce_1  63# happyReduction_222+happyReduction_222 happy_x_1+	 =  case happyOut94 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_223 = happySpecReduce_1  63# happyReduction_223+happyReduction_223 happy_x_1+	 =  case happyOut93 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_224 = happySpecReduce_1  63# happyReduction_224+happyReduction_224 happy_x_1+	 =  case happyOut95 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_225 = happySpecReduce_1  63# happyReduction_225+happyReduction_225 happy_x_1+	 =  case happyOut98 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_226 = happySpecReduce_1  63# happyReduction_226+happyReduction_226 happy_x_1+	 =  case happyOut86 happy_x_1 of { happy_var_1 -> +	happyIn69+		 ([happy_var_1]+	)}++happyReduce_227 = happySpecReduce_3  64# happyReduction_227+happyReduction_227 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut17 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn70+		 (map (flip (TypeSig Relevant) happy_var_3) happy_var_1+	)}}++happyReduce_228 = happyReduce 4# 65# happyReduction_228+happyReduction_228 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut28 happy_x_4 of { happy_var_4 -> +	happyIn71+		 (TypeSig Irrelevant happy_var_2 happy_var_4+	) `HappyStk` happyRest}}++happyReduce_229 = happySpecReduce_3  65# happyReduction_229+happyReduction_229 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn71+		 (TypeSig Relevant happy_var_1 happy_var_3+	)}}++happyReduce_230 = happySpecReduce_3  66# happyReduction_230+happyReduction_230 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut19 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn72+		 (map (\ (Arg _ rel x) -> TypeSig rel x happy_var_3) happy_var_1+	)}}++happyReduce_231 = happySpecReduce_3  67# happyReduction_231+happyReduction_231 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut20 happy_x_1 of { happy_var_1 -> +	case happyOut28 happy_x_3 of { happy_var_3 -> +	happyIn73+		 (map (fmap (flip (TypeSig Relevant) happy_var_3)) happy_var_1+	)}}++happyReduce_232 = happySpecReduce_3  68# happyReduction_232+happyReduction_232 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut64 happy_x_1 of { happy_var_1 -> +	case happyOut75 happy_x_2 of { happy_var_2 -> +	case happyOut68 happy_x_3 of { happy_var_3 -> +	happyIn74+		 (FunClause happy_var_1 happy_var_2 happy_var_3+	)}}}++happyReduce_233 = happySpecReduce_2  69# happyReduction_233+happyReduction_233 happy_x_2+	happy_x_1+	 =  case happyOut28 happy_x_2 of { happy_var_2 -> +	happyIn75+		 (RHS happy_var_2+	)}++happyReduce_234 = happySpecReduce_0  69# happyReduction_234+happyReduction_234  =  happyIn75+		 (AbsurdRHS+	)++happyReduce_235 = happyReduce 7# 70# happyReduction_235+happyReduction_235 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwData happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut50 happy_x_3 of { happy_var_3 -> +	case happyOut28 happy_x_5 of { happy_var_5 -> +	case happyOutTok happy_x_6 of { (TokKeyword KwWhere happy_var_6) -> +	case happyOut116 happy_x_7 of { happy_var_7 -> +	happyIn76+		 (Data (getRange (happy_var_1, happy_var_6, happy_var_7)) Inductive happy_var_2 (map addType happy_var_3) happy_var_5 happy_var_7+	) `HappyStk` happyRest}}}}}}++happyReduce_236 = happyReduce 7# 70# happyReduction_236+happyReduction_236 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwCoData happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut50 happy_x_3 of { happy_var_3 -> +	case happyOut28 happy_x_5 of { happy_var_5 -> +	case happyOutTok happy_x_6 of { (TokKeyword KwWhere happy_var_6) -> +	case happyOut116 happy_x_7 of { happy_var_7 -> +	happyIn76+		 (Data (getRange (happy_var_1, happy_var_6, happy_var_7)) CoInductive happy_var_2 (map addType happy_var_3) happy_var_5 happy_var_7+	) `HappyStk` happyRest}}}}}}++happyReduce_237 = happyReduce 7# 71# happyReduction_237+happyReduction_237 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwRecord happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut50 happy_x_3 of { happy_var_3 -> +	case happyOut28 happy_x_5 of { happy_var_5 -> +	case happyOutTok happy_x_6 of { (TokKeyword KwWhere happy_var_6) -> +	case happyOut117 happy_x_7 of { happy_var_7 -> +	happyIn77+		 (Record (getRange (happy_var_1, happy_var_6, happy_var_7)) happy_var_2 (fst happy_var_7) (map addType happy_var_3) happy_var_5 (snd happy_var_7)+	) `HappyStk` happyRest}}}}}}++happyReduce_238 = happySpecReduce_2  72# happyReduction_238+happyReduction_238 happy_x_2+	happy_x_1+	 =  case happyOut16 happy_x_2 of { happy_var_2 -> +	happyIn78+		 (happy_var_2+	)}++happyReduce_239 = happySpecReduce_3  73# happyReduction_239+happyReduction_239 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfix happy_var_1) -> +	case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut24 happy_x_3 of { happy_var_3 -> +	happyIn79+		 (Infix (NonAssoc (fuseRange happy_var_1 happy_var_3) happy_var_2) happy_var_3+	)}}}++happyReduce_240 = happySpecReduce_3  73# happyReduction_240+happyReduction_240 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixL happy_var_1) -> +	case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut24 happy_x_3 of { happy_var_3 -> +	happyIn79+		 (Infix (LeftAssoc (fuseRange happy_var_1 happy_var_3) happy_var_2) happy_var_3+	)}}}++happyReduce_241 = happySpecReduce_3  73# happyReduction_241+happyReduction_241 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwInfixR happy_var_1) -> +	case happyOut15 happy_x_2 of { happy_var_2 -> +	case happyOut24 happy_x_3 of { happy_var_3 -> +	happyIn79+		 (Infix (RightAssoc (fuseRange happy_var_1 happy_var_3) happy_var_2) happy_var_3+	)}}}++happyReduce_242 = happySpecReduce_2  74# happyReduction_242+happyReduction_242 happy_x_2+	happy_x_1+	 =  case happyOut114 happy_x_2 of { happy_var_2 -> +	happyIn80+		 (let toField (Arg h rel (TypeSig _ x t)) = Field x (Arg h rel t) in map toField happy_var_2+	)}++happyReduce_243 = happySpecReduce_2  75# happyReduction_243+happyReduction_243 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwMutual happy_var_1) -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	happyIn81+		 (Mutual (fuseRange happy_var_1 happy_var_2) happy_var_2+	)}}++happyReduce_244 = happySpecReduce_2  76# happyReduction_244+happyReduction_244 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwAbstract happy_var_1) -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	happyIn82+		 (Abstract (fuseRange happy_var_1 happy_var_2) happy_var_2+	)}}++happyReduce_245 = happySpecReduce_2  77# happyReduction_245+happyReduction_245 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrivate happy_var_1) -> +	case happyOut118 happy_x_2 of { happy_var_2 -> +	happyIn83+		 (Private (fuseRange happy_var_1 happy_var_2) happy_var_2+	)}}++happyReduce_246 = happySpecReduce_2  78# happyReduction_246+happyReduction_246 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPostulate happy_var_1) -> +	case happyOut112 happy_x_2 of { happy_var_2 -> +	happyIn84+		 (Postulate (fuseRange happy_var_1 happy_var_2) happy_var_2+	)}}++happyReduce_247 = happySpecReduce_2  79# happyReduction_247+happyReduction_247 happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwPrimitive happy_var_1) -> +	case happyOut110 happy_x_2 of { happy_var_2 -> +	happyIn85+		 (Primitive (fuseRange happy_var_1 happy_var_2) happy_var_2+	)}}++happyReduce_248 = happyMonadReduce 5# 80# happyReduction_248+happyReduction_248 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut88 happy_x_3 of { happy_var_3 -> +	case happyOut87 happy_x_5 of { happy_var_5 -> +	(+  case happy_var_2 of+    Name _ [_] -> case mkNotation happy_var_3 happy_var_5 of+      Left err -> parseError $ "malformed syntax declaration: " ++ err+      Right n -> return $ Syntax happy_var_2 n+    _ -> parseError "syntax declarations are allowed only for simple names (without holes)")}}}+	) (\r -> happyReturn (happyIn86 r))++happyReduce_249 = happySpecReduce_1  81# happyReduction_249+happyReduction_249 happy_x_1+	 =  case happyOut90 happy_x_1 of { happy_var_1 -> +	happyIn87+		 ([happy_var_1]+	)}++happyReduce_250 = happySpecReduce_2  81# happyReduction_250+happyReduction_250 happy_x_2+	happy_x_1+	 =  case happyOut87 happy_x_1 of { happy_var_1 -> +	case happyOut90 happy_x_2 of { happy_var_2 -> +	happyIn87+		 (happy_var_1 ++ [happy_var_2]+	)}}++happyReduce_251 = happySpecReduce_1  82# happyReduction_251+happyReduction_251 happy_x_1+	 =  case happyOut89 happy_x_1 of { happy_var_1 -> +	happyIn88+		 ([happy_var_1]+	)}++happyReduce_252 = happySpecReduce_2  82# happyReduction_252+happyReduction_252 happy_x_2+	happy_x_1+	 =  case happyOut88 happy_x_1 of { happy_var_1 -> +	case happyOut89 happy_x_2 of { happy_var_2 -> +	happyIn88+		 (happy_var_1 ++ [happy_var_2]+	)}}++happyReduce_253 = happySpecReduce_1  83# happyReduction_253+happyReduction_253 happy_x_1+	 =  case happyOut90 happy_x_1 of { happy_var_1 -> +	happyIn89+		 (ExprHole happy_var_1+	)}++happyReduce_254 = happyReduce 6# 83# happyReduction_254+happyReduction_254 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut90 happy_x_3 of { happy_var_3 -> +	case happyOut90 happy_x_5 of { happy_var_5 -> +	happyIn89+		 (LambdaHole happy_var_3 happy_var_5+	) `HappyStk` happyRest}}++happyReduce_255 = happySpecReduce_1  84# happyReduction_255+happyReduction_255 happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokId happy_var_1) -> +	happyIn90+		 (snd happy_var_1+	)}++happyReduce_256 = happyReduce 4# 85# happyReduction_256+happyReduction_256 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> +	case happyOut22 happy_x_2 of { happy_var_2 -> +	case happyOut92 happy_x_3 of { happy_var_3 -> +	case happyOut53 happy_x_4 of { happy_var_4 -> +	happyIn91+		 (let+    { m   = happy_var_2+    ; es  = happy_var_3+    ; dir = happy_var_4+    ; r   = getRange (happy_var_1, m, es, dir)+    } in+    case es of+    { []  -> Open r m dir+    ; _   -> Private r [ ModuleMacro r (noName $ beginningOf $ getRange happy_var_2) []+                           (RawApp (fuseRange m es) (Ident m : es)) DoOpen dir+                       ]+    }+	) `HappyStk` happyRest}}}}++happyReduce_257 = happySpecReduce_0  86# happyReduction_257+happyReduction_257  =  happyIn92+		 ([]+	)++happyReduce_258 = happySpecReduce_2  86# happyReduction_258+happyReduction_258 happy_x_2+	happy_x_1+	 =  case happyOut34 happy_x_1 of { happy_var_1 -> +	case happyOut92 happy_x_2 of { happy_var_2 -> +	happyIn92+		 (happy_var_1 : happy_var_2+	)}}++happyReduce_259 = happyReduce 6# 87# happyReduction_259+happyReduction_259 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut50 happy_x_3 of { happy_var_3 -> +	case happyOut28 happy_x_5 of { happy_var_5 -> +	case happyOut53 happy_x_6 of { happy_var_6 -> +	happyIn93+		 (ModuleMacro (getRange (happy_var_1, happy_var_5, happy_var_6)) happy_var_2 (map addType happy_var_3) happy_var_5 DontOpen happy_var_6+	) `HappyStk` happyRest}}}}}++happyReduce_260 = happyReduce 7# 87# happyReduction_260+happyReduction_260 (happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> +	case happyOut16 happy_x_3 of { happy_var_3 -> +	case happyOut50 happy_x_4 of { happy_var_4 -> +	case happyOut28 happy_x_6 of { happy_var_6 -> +	case happyOut53 happy_x_7 of { happy_var_7 -> +	happyIn93+		 (ModuleMacro (getRange (happy_var_1, happy_var_6, happy_var_7)) happy_var_3 (map addType happy_var_4) happy_var_6 DoOpen happy_var_7+	) `HappyStk` happyRest}}}}}++happyReduce_261 = happySpecReduce_3  88# happyReduction_261+happyReduction_261 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokKeyword KwImport happy_var_1) -> +	case happyOut22 happy_x_2 of { happy_var_2 -> +	case happyOut52 happy_x_3 of { happy_var_3 -> +	happyIn94+		 (Import (getRange (happy_var_1,happy_var_2,snd happy_var_3)) happy_var_2 (fst happy_var_3) DontOpen (snd happy_var_3)+	)}}}++happyReduce_262 = happyReduce 4# 88# happyReduction_262+happyReduction_262 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwOpen happy_var_1) -> +	case happyOut22 happy_x_3 of { happy_var_3 -> +	case happyOut52 happy_x_4 of { happy_var_4 -> +	happyIn94+		 (Import (getRange (happy_var_1,happy_var_3,snd happy_var_4)) happy_var_3 (fst happy_var_4) DoOpen (snd happy_var_4)+	) `HappyStk` happyRest}}}++happyReduce_263 = happyReduce 5# 89# happyReduction_263+happyReduction_263 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> +	case happyOut16 happy_x_2 of { happy_var_2 -> +	case happyOut50 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokKeyword KwWhere happy_var_4) -> +	case happyOut119 happy_x_5 of { happy_var_5 -> +	happyIn95+		 (Module (getRange (happy_var_1,happy_var_4,happy_var_5)) (QName happy_var_2) (map addType happy_var_3) happy_var_5+	) `HappyStk` happyRest}}}}}++happyReduce_264 = happySpecReduce_2  90# happyReduction_264+happyReduction_264 happy_x_2+	happy_x_1+	 =  case happyOut97 happy_x_2 of { happy_var_2 -> +	happyIn96+		 ([happy_var_2]+	)}++happyReduce_265 = happySpecReduce_3  90# happyReduction_265+happyReduction_265 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut94 happy_x_2 of { happy_var_2 -> +	case happyOut96 happy_x_3 of { happy_var_3 -> +	happyIn96+		 (happy_var_2 : happy_var_3+	)}}++happyReduce_266 = happySpecReduce_3  90# happyReduction_266+happyReduction_266 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOut91 happy_x_2 of { happy_var_2 -> +	case happyOut96 happy_x_3 of { happy_var_3 -> +	happyIn96+		 (happy_var_2 : happy_var_3+	)}}++happyReduce_267 = happyReduce 5# 91# happyReduction_267+happyReduction_267 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokKeyword KwModule happy_var_1) -> +	case happyOut22 happy_x_2 of { happy_var_2 -> +	case happyOut50 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokKeyword KwWhere happy_var_4) -> +	case happyOut119 happy_x_5 of { happy_var_5 -> +	happyIn97+		 (Module (getRange (happy_var_1,happy_var_4,happy_var_5)) happy_var_2 (map addType happy_var_3) happy_var_5+	) `HappyStk` happyRest}}}}}++happyReduce_268 = happySpecReduce_1  92# happyReduction_268+happyReduction_268 happy_x_1+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> +	happyIn98+		 (Pragma happy_var_1+	)}++happyReduce_269 = happySpecReduce_1  93# happyReduction_269+happyReduction_269 happy_x_1+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> +	happyIn99+		 (happy_var_1+	)}++happyReduce_270 = happySpecReduce_1  94# happyReduction_270+happyReduction_270 happy_x_1+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_271 = happySpecReduce_1  94# happyReduction_271+happyReduction_271 happy_x_1+	 =  case happyOut103 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_272 = happySpecReduce_1  94# happyReduction_272+happyReduction_272 happy_x_1+	 =  case happyOut105 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_273 = happySpecReduce_1  94# happyReduction_273+happyReduction_273 happy_x_1+	 =  case happyOut104 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_274 = happySpecReduce_1  94# happyReduction_274+happyReduction_274 happy_x_1+	 =  case happyOut106 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_275 = happySpecReduce_1  94# happyReduction_275+happyReduction_275 happy_x_1+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_276 = happySpecReduce_1  94# happyReduction_276+happyReduction_276 happy_x_1+	 =  case happyOut109 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_277 = happySpecReduce_1  94# happyReduction_277+happyReduction_277 happy_x_1+	 =  case happyOut107 happy_x_1 of { happy_var_1 -> +	happyIn100+		 (happy_var_1+	)}++happyReduce_278 = happyReduce 4# 95# happyReduction_278+happyReduction_278 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOut26 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokSymbol SymClosePragma happy_var_4) -> +	happyIn101+		 (OptionsPragma (fuseRange happy_var_1 happy_var_4) happy_var_3+	) `HappyStk` happyRest}}}++happyReduce_279 = happyReduce 5# 96# happyReduction_279+happyReduction_279 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOutTok happy_x_3 of { (TokString happy_var_3) -> +	case happyOut27 happy_x_4 of { happy_var_4 -> +	case happyOutTok happy_x_5 of { (TokSymbol SymClosePragma happy_var_5) -> +	happyIn102+		 (BuiltinPragma (fuseRange happy_var_1 happy_var_5) (snd happy_var_3) (Ident happy_var_4)+	) `HappyStk` happyRest}}}}++happyReduce_280 = happyReduce 5# 97# happyReduction_280+happyReduction_280 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOut27 happy_x_3 of { happy_var_3 -> +	case happyOut26 happy_x_4 of { happy_var_4 -> +	case happyOutTok happy_x_5 of { (TokSymbol SymClosePragma happy_var_5) -> +	happyIn103+		 (CompiledPragma (fuseRange happy_var_1 happy_var_5) happy_var_3 (unwords happy_var_4)+	) `HappyStk` happyRest}}}}++happyReduce_281 = happyReduce 5# 98# happyReduction_281+happyReduction_281 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOut27 happy_x_3 of { happy_var_3 -> +	case happyOut26 happy_x_4 of { happy_var_4 -> +	case happyOutTok happy_x_5 of { (TokSymbol SymClosePragma happy_var_5) -> +	happyIn104+		 (CompiledTypePragma (fuseRange happy_var_1 happy_var_5) happy_var_3 (unwords happy_var_4)+	) `HappyStk` happyRest}}}}++happyReduce_282 = happyReduce 6# 99# happyReduction_282+happyReduction_282 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOut27 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokString happy_var_4) -> +	case happyOut26 happy_x_5 of { happy_var_5 -> +	case happyOutTok happy_x_6 of { (TokSymbol SymClosePragma happy_var_6) -> +	happyIn105+		 (CompiledDataPragma (fuseRange happy_var_1 happy_var_6) happy_var_3 (snd happy_var_4) happy_var_5+	) `HappyStk` happyRest}}}}}++happyReduce_283 = happyReduce 5# 100# happyReduction_283+happyReduction_283 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOut27 happy_x_3 of { happy_var_3 -> +	case happyOut26 happy_x_4 of { happy_var_4 -> +	case happyOutTok happy_x_5 of { (TokSymbol SymClosePragma happy_var_5) -> +	happyIn106+		 (CompiledEpicPragma (fuseRange happy_var_1 happy_var_5) happy_var_3 (unwords happy_var_4)+	) `HappyStk` happyRest}}}}++happyReduce_284 = happyReduce 4# 101# happyReduction_284+happyReduction_284 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOut27 happy_x_3 of { happy_var_3 -> +	case happyOutTok happy_x_4 of { (TokSymbol SymClosePragma happy_var_4) -> +	happyIn107+		 (EtaPragma (fuseRange happy_var_1 happy_var_4) happy_var_3+	) `HappyStk` happyRest}}}++happyReduce_285 = happyMonadReduce 4# 102# happyReduction_285+happyReduction_285 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest) tk+	 = happyThen (case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOutTok happy_x_3 of { (TokString happy_var_3) -> +	case happyOutTok happy_x_4 of { (TokSymbol SymClosePragma happy_var_4) -> +	( let s = snd happy_var_3 in+       if validHaskellModuleName s+       then return $ ImportPragma (fuseRange happy_var_1 happy_var_4) s+       else parseError $ "Malformed module name: " ++ s ++ ".")}}}+	) (\r -> happyReturn (happyIn108 r))++happyReduce_286 = happySpecReduce_3  103# happyReduction_286+happyReduction_286 happy_x_3+	happy_x_2+	happy_x_1+	 =  case happyOutTok happy_x_1 of { (TokSymbol SymOpenPragma happy_var_1) -> +	case happyOutTok happy_x_3 of { (TokSymbol SymClosePragma happy_var_3) -> +	happyIn109+		 (ImpossiblePragma (fuseRange happy_var_1 happy_var_3)+	)}}++happyReduce_287 = happyReduce 5# 104# happyReduction_287+happyReduction_287 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut111 happy_x_3 of { happy_var_3 -> +	happyIn110+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_288 = happyReduce 4# 105# happyReduction_288+happyReduction_288 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut111 happy_x_1 of { happy_var_1 -> +	case happyOut70 happy_x_4 of { happy_var_4 -> +	happyIn111+		 (reverse happy_var_4 ++ happy_var_1+	) `HappyStk` happyRest}}++happyReduce_289 = happySpecReduce_2  105# happyReduction_289+happyReduction_289 happy_x_2+	happy_x_1+	 =  case happyOut70 happy_x_2 of { happy_var_2 -> +	happyIn111+		 (reverse happy_var_2+	)}++happyReduce_290 = happyReduce 5# 106# happyReduction_290+happyReduction_290 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut113 happy_x_3 of { happy_var_3 -> +	happyIn112+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_291 = happyReduce 4# 107# happyReduction_291+happyReduction_291 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut113 happy_x_1 of { happy_var_1 -> +	case happyOut72 happy_x_4 of { happy_var_4 -> +	happyIn113+		 (reverse happy_var_4 ++ happy_var_1+	) `HappyStk` happyRest}}++happyReduce_292 = happySpecReduce_2  107# happyReduction_292+happyReduction_292 happy_x_2+	happy_x_1+	 =  case happyOut72 happy_x_2 of { happy_var_2 -> +	happyIn113+		 (reverse happy_var_2+	)}++happyReduce_293 = happyReduce 5# 108# happyReduction_293+happyReduction_293 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut115 happy_x_3 of { happy_var_3 -> +	happyIn114+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_294 = happyReduce 4# 109# happyReduction_294+happyReduction_294 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut115 happy_x_1 of { happy_var_1 -> +	case happyOut73 happy_x_4 of { happy_var_4 -> +	happyIn115+		 (reverse happy_var_4 ++ happy_var_1+	) `HappyStk` happyRest}}++happyReduce_295 = happySpecReduce_2  109# happyReduction_295+happyReduction_295 happy_x_2+	happy_x_1+	 =  case happyOut73 happy_x_2 of { happy_var_2 -> +	happyIn115+		 (reverse happy_var_2+	)}++happyReduce_296 = happyReduce 4# 110# happyReduction_296+happyReduction_296 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = happyIn116+		 ([]+	) `HappyStk` happyRest++happyReduce_297 = happySpecReduce_1  110# happyReduction_297+happyReduction_297 happy_x_1+	 =  case happyOut110 happy_x_1 of { happy_var_1 -> +	happyIn116+		 (happy_var_1+	)}++happyReduce_298 = happyReduce 4# 111# happyReduction_298+happyReduction_298 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = happyIn117+		 ((Nothing, [])+	) `HappyStk` happyRest++happyReduce_299 = happyReduce 6# 111# happyReduction_299+happyReduction_299 (happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut78 happy_x_4 of { happy_var_4 -> +	happyIn117+		 ((Just happy_var_4, [])+	) `HappyStk` happyRest}++happyReduce_300 = happyReduce 8# 111# happyReduction_300+happyReduction_300 (happy_x_8 `HappyStk`+	happy_x_7 `HappyStk`+	happy_x_6 `HappyStk`+	happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut78 happy_x_4 of { happy_var_4 -> +	case happyOut120 happy_x_6 of { happy_var_6 -> +	happyIn117+		 ((Just happy_var_4, reverse happy_var_6)+	) `HappyStk` happyRest}}++happyReduce_301 = happyReduce 5# 111# happyReduction_301+happyReduction_301 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut120 happy_x_3 of { happy_var_3 -> +	happyIn117+		 ((Nothing, reverse happy_var_3)+	) `HappyStk` happyRest}++happyReduce_302 = happyReduce 5# 112# happyReduction_302+happyReduction_302 (happy_x_5 `HappyStk`+	happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut120 happy_x_3 of { happy_var_3 -> +	happyIn118+		 (reverse happy_var_3+	) `HappyStk` happyRest}++happyReduce_303 = happyReduce 4# 113# happyReduction_303+happyReduction_303 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = happyIn119+		 ([]+	) `HappyStk` happyRest++happyReduce_304 = happySpecReduce_1  113# happyReduction_304+happyReduction_304 happy_x_1+	 =  case happyOut118 happy_x_1 of { happy_var_1 -> +	happyIn119+		 (happy_var_1+	)}++happyReduce_305 = happyReduce 4# 114# happyReduction_305+happyReduction_305 (happy_x_4 `HappyStk`+	happy_x_3 `HappyStk`+	happy_x_2 `HappyStk`+	happy_x_1 `HappyStk`+	happyRest)+	 = case happyOut120 happy_x_1 of { happy_var_1 -> +	case happyOut69 happy_x_4 of { happy_var_4 -> +	happyIn120+		 (reverse happy_var_4 ++ happy_var_1+	) `HappyStk` happyRest}}++happyReduce_306 = happySpecReduce_2  114# happyReduction_306+happyReduction_306 happy_x_2+	happy_x_1+	 =  case happyOut69 happy_x_2 of { happy_var_2 -> +	happyIn120+		 (reverse happy_var_2+	)}++happyNewToken action sts stk+	= lexer(\tk -> +	let cont i = happyDoAction i tk action sts stk in+	case tk of {+	TokEOF -> happyDoAction 69# tk action sts stk;+	TokKeyword KwLet happy_dollar_dollar -> cont 1#;+	TokKeyword KwIn happy_dollar_dollar -> cont 2#;+	TokKeyword KwWhere happy_dollar_dollar -> cont 3#;+	TokKeyword KwWith happy_dollar_dollar -> cont 4#;+	TokKeyword KwRewrite happy_dollar_dollar -> cont 5#;+	TokKeyword KwPostulate happy_dollar_dollar -> cont 6#;+	TokKeyword KwPrimitive happy_dollar_dollar -> cont 7#;+	TokKeyword KwOpen happy_dollar_dollar -> cont 8#;+	TokKeyword KwImport happy_dollar_dollar -> cont 9#;+	TokKeyword KwUsing happy_dollar_dollar -> cont 10#;+	TokKeyword KwHiding happy_dollar_dollar -> cont 11#;+	TokKeyword KwRenaming happy_dollar_dollar -> cont 12#;+	TokKeyword KwTo happy_dollar_dollar -> cont 13#;+	TokKeyword KwPublic happy_dollar_dollar -> cont 14#;+	TokKeyword KwModule happy_dollar_dollar -> cont 15#;+	TokKeyword KwData happy_dollar_dollar -> cont 16#;+	TokKeyword KwCoData happy_dollar_dollar -> cont 17#;+	TokKeyword KwRecord happy_dollar_dollar -> cont 18#;+	TokKeyword KwConstructor happy_dollar_dollar -> cont 19#;+	TokKeyword KwField happy_dollar_dollar -> cont 20#;+	TokKeyword KwInfix happy_dollar_dollar -> cont 21#;+	TokKeyword KwInfixL happy_dollar_dollar -> cont 22#;+	TokKeyword KwInfixR happy_dollar_dollar -> cont 23#;+	TokKeyword KwMutual happy_dollar_dollar -> cont 24#;+	TokKeyword KwAbstract happy_dollar_dollar -> cont 25#;+	TokKeyword KwPrivate happy_dollar_dollar -> cont 26#;+	TokKeyword KwProp happy_dollar_dollar -> cont 27#;+	TokKeyword KwSet happy_dollar_dollar -> cont 28#;+	TokKeyword KwForall happy_dollar_dollar -> cont 29#;+	TokKeyword KwSyntax happy_dollar_dollar -> cont 30#;+	TokKeyword KwOPTIONS happy_dollar_dollar -> cont 31#;+	TokKeyword KwBUILTIN happy_dollar_dollar -> cont 32#;+	TokKeyword KwIMPORT happy_dollar_dollar -> cont 33#;+	TokKeyword KwIMPOSSIBLE happy_dollar_dollar -> cont 34#;+	TokKeyword KwETA happy_dollar_dollar -> cont 35#;+	TokKeyword KwCOMPILED happy_dollar_dollar -> cont 36#;+	TokKeyword KwCOMPILED_DATA happy_dollar_dollar -> cont 37#;+	TokKeyword KwCOMPILED_TYPE happy_dollar_dollar -> cont 38#;+	TokKeyword KwCOMPILED_EPIC happy_dollar_dollar -> cont 39#;+	TokKeyword KwQuoteGoal happy_dollar_dollar -> cont 40#;+	TokKeyword KwQuote happy_dollar_dollar -> cont 41#;+	TokSetN happy_dollar_dollar -> cont 42#;+	TokTeX happy_dollar_dollar -> cont 43#;+	TokComment happy_dollar_dollar -> cont 44#;+	TokSymbol SymEllipsis happy_dollar_dollar -> cont 45#;+	TokSymbol SymDot happy_dollar_dollar -> cont 46#;+	TokSymbol SymSemi happy_dollar_dollar -> cont 47#;+	TokSymbol SymColon happy_dollar_dollar -> cont 48#;+	TokSymbol SymEqual happy_dollar_dollar -> cont 49#;+	TokSymbol SymUnderscore happy_dollar_dollar -> cont 50#;+	TokSymbol SymQuestionMark happy_dollar_dollar -> cont 51#;+	TokSymbol SymArrow happy_dollar_dollar -> cont 52#;+	TokSymbol SymLambda happy_dollar_dollar -> cont 53#;+	TokSymbol SymAs happy_dollar_dollar -> cont 54#;+	TokSymbol SymBar happy_dollar_dollar -> cont 55#;+	TokSymbol SymOpenParen happy_dollar_dollar -> cont 56#;+	TokSymbol SymCloseParen happy_dollar_dollar -> cont 57#;+	TokSymbol SymOpenBrace happy_dollar_dollar -> cont 58#;+	TokSymbol SymCloseBrace happy_dollar_dollar -> cont 59#;+	TokSymbol SymOpenVirtualBrace happy_dollar_dollar -> cont 60#;+	TokSymbol SymCloseVirtualBrace happy_dollar_dollar -> cont 61#;+	TokSymbol SymVirtualSemi happy_dollar_dollar -> cont 62#;+	TokSymbol SymOpenPragma happy_dollar_dollar -> cont 63#;+	TokSymbol SymClosePragma happy_dollar_dollar -> cont 64#;+	TokId happy_dollar_dollar -> cont 65#;+	TokQId happy_dollar_dollar -> cont 66#;+	TokString happy_dollar_dollar -> cont 67#;+	TokLiteral happy_dollar_dollar -> cont 68#;+	_ -> happyError' tk+	})++happyError_ tk = happyError' tk++happyThen :: () => Parser a -> (a -> Parser b) -> Parser b+happyThen = (>>=)+happyReturn :: () => a -> Parser a+happyReturn = (return)+happyThen1 = happyThen+happyReturn1 :: () => a -> Parser a+happyReturn1 = happyReturn+happyError' :: () => (Token) -> Parser a+happyError' tk = (\token -> happyError) tk++tokensParser = happySomeParser where+  happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut6 x))++exprParser = happySomeParser where+  happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut28 x))++moduleParser = happySomeParser where+  happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut10 x))++happySeq = happyDontSeq+++{--------------------------------------------------------------------------+    Parsers+ --------------------------------------------------------------------------}++-- | Parse the token stream. Used by the TeX compiler.+tokensParser :: Parser [Token]++-- | Parse an expression. Could be used in interactions.+exprParser :: Parser Expr++-- | Parse a module.+moduleParser :: Parser Module+++{--------------------------------------------------------------------------+    Happy stuff+ --------------------------------------------------------------------------}++-- | Required by Happy.+happyError :: Parser a+happyError = parseError "Parse error"+++{--------------------------------------------------------------------------+    Utility functions+ --------------------------------------------------------------------------}++-- | Create a name from a string.++mkName :: (Interval, String) -> Parser Name+mkName (i, s) = do+    let xs = parts s+    mapM_ isValidId xs+    unless (alternating xs) $ fail $ "a name cannot contain two consecutive underscores"+    return $ Name (getRange i) xs+    where+        parts :: String -> [NamePart]+        parts ""        = []+        parts ('_' : s) = Hole : parts s+        parts s         = Id x : parts s'+          where (x, s') = break (== '_') s++	isValidId Hole   = return ()+	isValidId (Id x) = case parse defaultParseFlags [0] (lexer return) x of+	    ParseOk _ (TokId _) -> return ()+	    _			-> fail $ "in the name " ++ s ++ ", the part " ++ x ++ " is not valid"++	-- we know that there are no two Ids in a row+	alternating (Hole : Hole : _) = False+	alternating (_ : xs)	      = alternating xs+	alternating []		      = True++-- | Create a qualified name from a list of strings+mkQName :: [(Interval, String)] -> Parser QName+mkQName ss = do+    xs <- mapM mkName ss+    return $ foldr Qual (QName $ last xs) (init xs)++-- | Match a particular name.+isName :: String -> (Interval, String) -> Parser ()+isName s (_,s')+    | s == s'	= return ()+    | otherwise	= fail $ "expected " ++ s ++ ", found " ++ s'++-- | Build a forall pi (forall x y z -> ...)+forallPi :: [LamBinding] -> Expr -> Expr+forallPi bs e = Pi (map addType bs) e++-- | Converts lambda bindings to typed bindings.+addType :: LamBinding -> TypedBindings+addType (DomainFull b)	 = b+addType (DomainFree h x) = TypedBindings r $ Arg h Relevant [TBind r [x] $ Underscore r Nothing]+  where r = getRange x++-- | Check that an import directive doesn't contain repeated names+verifyImportDirective :: ImportDirective -> Parser ImportDirective+verifyImportDirective i =+    case filter ((>1) . length)+	 $ group+	 $ sort xs+    of+	[]  -> return i+	yss -> let Just pos = rStart $ getRange $ head $ concat yss in+               parseErrorAt pos $+		"repeated name" ++ s ++ " in import directive: " +++		concat (intersperse ", " $ map (show . head) yss)+	    where+		s = case yss of+			[_] -> ""+			_   -> "s"+    where+	xs = names (usingOrHiding i) ++ map renFrom (renaming i)+	names (Using xs)    = xs+	names (Hiding xs)   = xs++-- | Breaks up a string into substrings. Returns every maximal+-- subsequence of zero or more characters distinct from @'.'@.+--+-- > splitOnDots ""         == [""]+-- > splitOnDots "foo.bar"  == ["foo", "bar"]+-- > splitOnDots ".foo.bar" == ["", "foo", "bar"]+-- > splitOnDots "foo.bar." == ["foo", "bar", ""]+-- > splitOnDots "foo..bar" == ["foo", "", "bar"]+splitOnDots :: String -> [String]+splitOnDots ""        = [""]+splitOnDots ('.' : s) = [] : splitOnDots s+splitOnDots (c   : s) = case splitOnDots s of+  p : ps -> (c : p) : ps++prop_splitOnDots = and+  [ splitOnDots ""         == [""]+  , splitOnDots "foo.bar"  == ["foo", "bar"]+  , splitOnDots ".foo.bar" == ["", "foo", "bar"]+  , splitOnDots "foo.bar." == ["foo", "bar", ""]+  , splitOnDots "foo..bar" == ["foo", "", "bar"]+  ]++-- | Returns 'True' iff the name is a valid Haskell (hierarchical)+-- module name.+validHaskellModuleName :: String -> Bool+validHaskellModuleName = all ok . splitOnDots+  where+  -- Checks if a dot-less module name is well-formed.+  ok :: String -> Bool+  ok []      = False+  ok (c : s) =+    isUpper c &&+    all (\c -> isLower c || c == '_' ||+               isUpper c ||+               generalCategory c == DecimalNumber ||+               c == '\'')+        s++{--------------------------------------------------------------------------+    Patterns+ --------------------------------------------------------------------------}++-- | Turn an expression into a left hand side.+exprToLHS :: Expr -> Parser ([Expr] -> [Expr] -> LHS)+exprToLHS e = case e of+  WithApp r e es -> LHS <$> exprToPattern e <*> mapM exprToPattern es+  _		 -> LHS <$> exprToPattern e <*> return []++-- | Turn an expression into a pattern. Fails if the expression is not a+--   valid pattern.+exprToPattern :: Expr -> Parser Pattern+exprToPattern e =+    case e of+	Ident x			-> return $ IdentP x+	App _ e1 e2		-> AppP <$> exprToPattern e1+					<*> T.mapM (T.mapM exprToPattern) e2+	Paren r e		-> ParenP r+					<$> exprToPattern e+	Underscore r _		-> return $ WildP r+	Absurd r		-> return $ AbsurdP r+	As r x e		-> AsP r x <$> exprToPattern e+	Dot r (HiddenArg _ e)	-> return $ HiddenP r $ fmap (DotP r) e+	Dot r e			-> return $ DotP r e+	Lit l			-> return $ LitP l+	HiddenArg r e		-> HiddenP r <$> T.mapM exprToPattern e+	RawApp r es		-> RawAppP r <$> mapM exprToPattern es+	OpApp r x es		-> OpAppP r x <$> mapM exprToPattern es+	_			->+          let Just pos = rStart $ getRange e in+          parseErrorAt pos $ "Not a valid pattern: " ++ show e++{--------------------------------------------------------------------------+    Tests+ --------------------------------------------------------------------------}++-- | Test suite.+tests :: IO Bool+tests = runTests "Agda.Syntax.Parser.Parser"+  [ quickCheck' prop_splitOnDots+  ]+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "<built-in>" #-}+{-# LINE 1 "<command-line>" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+-- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp ++{-# LINE 30 "templates/GenericTemplate.hs" #-}+++data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList++++++{-# LINE 51 "templates/GenericTemplate.hs" #-}++{-# LINE 61 "templates/GenericTemplate.hs" #-}++{-# LINE 70 "templates/GenericTemplate.hs" #-}++infixr 9 `HappyStk`+data HappyStk a = HappyStk a (HappyStk a)++-----------------------------------------------------------------------------+-- starting the parse++happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll++-----------------------------------------------------------------------------+-- Accepting the parse++-- If the current token is 0#, it means we've just accepted a partial+-- parse (a %partial parser).  We must ignore the saved token on the top of+-- the stack in this case.+happyAccept 0# tk st sts (_ `HappyStk` ans `HappyStk` _) =+	happyReturn1 ans+happyAccept j tk st sts (HappyStk ans _) = +	(happyTcHack j (happyTcHack st)) (happyReturn1 ans)++-----------------------------------------------------------------------------+-- Arrays only: do the next action++++happyDoAction i tk st+	= {- nothing -}+++	  case action of+		0#		  -> {- nothing -}+				     happyFail i tk st+		-1# 	  -> {- nothing -}+				     happyAccept i tk st+		n | (n Happy_GHC_Exts.<# (0# :: Happy_GHC_Exts.Int#)) -> {- nothing -}++				     (happyReduceArr Happy_Data_Array.! rule) i tk st+				     where rule = (Happy_GHC_Exts.I# ((Happy_GHC_Exts.negateInt# ((n Happy_GHC_Exts.+# (1# :: Happy_GHC_Exts.Int#))))))+		n		  -> {- nothing -}+++				     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)+	 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++{-# LINE 130 "templates/GenericTemplate.hs" #-}+++indexShortOffAddr (HappyA# arr) off =+	Happy_GHC_Exts.narrow16Int# i+  where+	!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#++++++data HappyAddr = HappyA# Happy_GHC_Exts.Addr#+++++-----------------------------------------------------------------------------+-- HappyState data type (not arrays)++{-# 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+--     trace "shifting the error token" $+     happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)++happyShift new_state i tk st sts stk =+     happyNewToken new_state (HappyCons (st) (sts)) ((happyInTok (tk))`HappyStk`stk)++-- happyReduce is specialised for the common cases.++happySpecReduce_0 i fn 0# tk st sts stk+     = happyFail 0# tk st sts stk+happySpecReduce_0 nt fn j tk st@((action)) sts stk+     = happyGoto nt j tk st (HappyCons (st) (sts)) (fn `HappyStk` stk)++happySpecReduce_1 i fn 0# tk st sts stk+     = happyFail 0# tk st sts stk+happySpecReduce_1 nt fn j tk _ sts@((HappyCons (st@(action)) (_))) (v1`HappyStk`stk')+     = let r = fn v1 in+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))++happySpecReduce_2 i fn 0# tk st sts stk+     = happyFail 0# tk st sts stk+happySpecReduce_2 nt fn j tk _ (HappyCons (_) (sts@((HappyCons (st@(action)) (_))))) (v1`HappyStk`v2`HappyStk`stk')+     = let r = fn v1 v2 in+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))++happySpecReduce_3 i fn 0# tk st sts stk+     = happyFail 0# tk st sts stk+happySpecReduce_3 nt fn j tk _ (HappyCons (_) ((HappyCons (_) (sts@((HappyCons (st@(action)) (_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')+     = let r = fn v1 v2 v3 in+       happySeq r (happyGoto nt j tk st sts (r `HappyStk` stk'))++happyReduce k i fn 0# tk st sts stk+     = happyFail 0# tk st sts stk+happyReduce k nt fn j tk st sts stk+     = case happyDrop (k Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) sts of+	 sts1@((HappyCons (st1@(action)) (_))) ->+        	let r = fn stk in  -- it doesn't hurt to always seq here...+       		happyDoSeq r (happyGoto nt j tk st1 sts1 r)++happyMonadReduce k nt fn 0# tk st sts stk+     = 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))+             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))+             drop_stk = happyDropStk k stk++             !(off) = indexShortOffAddr happyGotoOffsets st1+             !(off_i) = (off Happy_GHC_Exts.+# nt)+             !(new_state) = indexShortOffAddr happyTable off_i+++++happyDrop 0# l = l+happyDrop n (HappyCons (_) (t)) = happyDrop (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#)) t++happyDropStk 0# l = l+happyDropStk n (x `HappyStk` xs) = happyDropStk (n Happy_GHC_Exts.-# (1#::Happy_GHC_Exts.Int#)) xs++-----------------------------------------------------------------------------+-- Moving to a new state after a reduction+++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+++++-----------------------------------------------------------------------------+-- Error recovery (0# is the error token)++-- parse error if we are in recovery and we fail again+happyFail  0# tk old_st _ stk =+--	trace "failing" $ +    	happyError_ tk++{-  We don't need state discarding for our restricted implementation of+    "error".  In fact, it can cause some bogus parses, so I've disabled it+    for now --SDM++-- discard a state+happyFail  0# tk old_st (HappyCons ((action)) (sts)) +						(saved_tok `HappyStk` _ `HappyStk` stk) =+--	trace ("discarding state, depth " ++ show (length stk))  $+	happyDoAction 0# tk action sts ((saved_tok`HappyStk`stk))+-}++-- Enter error recovery: generate an error token,+--                       save the old token and carry on.+happyFail  i tk (action) sts stk =+--      trace "entering error recovery" $+	happyDoAction 0# tk action sts ( (Happy_GHC_Exts.unsafeCoerce# (Happy_GHC_Exts.I# (i))) `HappyStk` stk)++-- Internal happy errors:++notHappyAtAll = error "Internal Happy error\n"++-----------------------------------------------------------------------------+-- Hack to get the typechecker to accept our action functions+++happyTcHack :: Happy_GHC_Exts.Int# -> a -> a happyTcHack x y = y {-# INLINE happyTcHack #-} 
+ doc/release-notes/2-2-10.txt view
@@ -0,0 +1,214 @@+------------------------------------------------------------------------+-- Release notes for Agda 2 version 2.2.10+------------------------------------------------------------------------++Important changes since 2.2.8:++Language+--------++* New flag: --without-K.++  This flag makes pattern matching more restricted. If the flag is+  activated, then Agda only accepts certain case-splits. If the type+  of the variable to be split is D pars ixs, where D is a data (or+  record) type, pars stands for the parameters, and ixs the indices,+  then the following requirements must be satisfied:++  * The indices ixs must be applications of constructors to distinct+    variables.++  * These variables must not be free in pars.++  The intended purpose of --without-K is to enable experiments with a+  propositional equality without the K rule. Let us define+  propositional equality as follows:++    data _≡_ {A : Set} : A → A → Set where+      refl : ∀ x → x ≡ x++  Then the obvious implementation of the J rule is accepted:++    J : {A : Set} (P : {x y : A} → x ≡ y → Set) →+        (∀ x → P (refl x)) →+        ∀ {x y} (x≡y : x ≡ y) → P x≡y+    J P p (refl x) = p x++  The same applies to Christine Paulin-Mohring's version of the J rule:++    J′ : {A : Set} {x : A} (P : {y : A} → x ≡ y → Set) →+         P (refl x) →+         ∀ {y} (x≡y : x ≡ y) → P x≡y+    J′ P p (refl x) = p++  On the other hand, the obvious implementation of the K rule is not+  accepted:++    K : {A : Set} (P : {x : A} → x ≡ x → Set) →+        (∀ x → P (refl x)) →+        ∀ {x} (x≡x : x ≡ x) → P x≡x+    K P p (refl x) = p x++  However, we have /not/ proved that activation of --without-K ensures+  that the K rule cannot be proved in some other way.++* Irrelevant declarations.++  Postulates and functions can be marked as irrelevant by prefixing+  the name with a dot when the name is declared. Example:++    postulate+      .irrelevant : {A : Set} → .A → A++  Irrelevant names may only be used in irrelevant positions or in+  definitions of things which have been declared irrelevant.++  The axiom irrelevant above can be used to define a projection from+  an irrelevant record field:++    data Subset (A : Set) (P : A → Set) : Set where+      _#_ : (a : A) → .(P a) → Subset A P++    elem : ∀ {A P} → Subset A P → A+    elem (a # p) = a++    .certificate : ∀ {A P} (x : Subset A P) → P (elem x)+    certificate (a # p) = irrelevant p++  The right-hand side of certificate is relevant, so we cannot define++    certificate (a # p) = p++  (because p is irrelevant). However, certificate is declared to be+  irrelevant, so it can use the axiom irrelevant. Furthermore the+  first argument of the axiom is irrelevant, which means that+  irrelevant p is well-formed.++  As shown above the axiom irrelevant justifies irrelevant+  projections. Previously no projections were generated for irrelevant+  record fields, such as the field certificate in the following+  record type:++    record Subset (A : Set) (P : A → Set) : Set where+      constructor _#_+      field+        elem         : A+        .certificate : P elem++  Now projections are generated automatically for irrelevant fields+  (unless the flag --no-irrelevant-projections is used). Note that+  irrelevant projections are highly experimental.++* Termination checker recognises projections.++  Projections now preserve sizes, both in patterns and expressions.+  Example:++    record Wrap (A : Set) : Set where+      constructor wrap+      field+        unwrap : A++    open Wrap public++    data WNat : Set where+      zero : WNat+      suc  : Wrap WNat → WNat++    id : WNat → WNat+    id zero    = zero+    id (suc w) = suc (wrap (id (unwrap w)))++  In the structural ordering unwrap w ≤ w. This means that++    unwrap w ≤ w < suc w,++  and hence the recursive call to id is accepted.++  Projections also preserve guardedness.++Tools+-----++* Hyperlinks for top-level module names now point to the start of the+  module rather than to the declaration of the module name. This+  applies both to the Emacs mode and to the output of agda --html.++* Most occurrences of record field names are now highlighted as+  "fields". Previously many occurrences were highlighted as+  "functions".++* Emacs mode: It is no longer possible to change the behaviour of the+  TAB key by customising agda2-indentation.++* Epic compiler backend.++  A new compiler backend is being implemented. This backend makes use+  of Edwin Brady's language Epic+  (http://www.cs.st-andrews.ac.uk/~eb/epic.php) and its compiler. The+  backend should handle most Agda code, but is still at an+  experimental stage: more testing is needed, and some things written+  below may not be entirely true.++  The Epic compiler can be invoked from the command line using the+  flag --epic:++    agda --epic --epic-flag=<EPIC-FLAG> --compile-dir=<DIR> <FILE>.agda++  The --epic-flag flag can be given multiple times; each flag is given+  verbatim to the Epic compiler (in the given order). The resulting+  executable is named after the main module and placed in the+  directory specified by the --compile-dir flag (default: the project+  root). Intermediate files are placed in a subdirectory called Epic.++  The backend requires that there is a definition named main. This+  definition should be a value of type IO Unit, but at the moment this+  is not checked (so it is easy to produce a program which segfaults).+  Currently the backend represents actions of type IO A as functions+  from Unit to A, and main is applied to the unit value.++  The Epic compiler compiles via C, not Haskell, so the pragmas+  related to the Haskell FFI (IMPORT, COMPILED_DATA and COMPILED) are+  not used by the Epic backend. Instead there is a new pragma+  COMPILED_EPIC. This pragma is used to give Epic code for postulated+  definitions (Epic code can in turn call C code). The form of the+  pragma is {-# COMPILED_EPIC def code #-}, where def is the name of+  an Agda postulate and code is some Epic code which should include+  the function arguments, return type and function body. As an example+  the IO monad can be defined as follows:++    postulate+      IO     : Set → Set+      return : ∀ {A} → A → IO A+      _>>=_  : ∀ {A B} → IO A → (A → IO B) → IO B++    {-# COMPILED_EPIC return (u : Unit, a : Any) -> Any =+                        ioreturn(a) #-}+    {-# COMPILED_EPIC+          _>>=_ (u1 : Unit, u2 : Unit, x : Any, f : Any) -> Any =+            iobind(x,f) #-}++  Here ioreturn and iobind are Epic functions which are defined in the+  file AgdaPrelude.e which is always included.++  By default the backend will remove so-called forced constructor+  arguments (and case-splitting on forced variables will be+  rewritten). This optimisation can be disabled by using the flag+  --no-forcing.++  All data types which look like unary natural numbers after forced+  constructor arguments have been removed (i.e. types with two+  constructors, one nullary and one with a single recursive argument)+  will be represented as "BigInts". This applies to the standard Fin+  type, for instance.++  The backend supports Agda's primitive functions and the BUILTIN+  pragmas. If the BUILTIN pragmas for unary natural numbers are used,+  then some operations, like addition and multiplication, will use+  more efficient "BigInt" operations.++  If you want to make use of the Epic backend you need to install some+  dependencies, see the README.++* The Emacs mode can compile using either the MAlonzo or the Epic+  backend. The variable agda2-backend controls which backend is used.
+ src/data/EpicInclude/AgdaPrelude.e view
@@ -0,0 +1,117 @@+%include "string.h"++-- IO++%inline putStr (x:String) -> Unit =+    foreign Unit "putStr" (x:String)++putStrLn (x:String) -> Unit =+    putStr(append(x,"\n"))++readStr () -> String =+    foreign String "readStr" ()++intToStr (x:Int) -> String =+    foreign String "intToStr" (x:Int)++strToInt (x:String) -> Int =+    foreign String "strToInt" (x:String)++printInt (x:Int) -> Unit =+    foreign Unit "printInt" (x:Int)++ioreturn (a : Any, u : Unit) -> Any = a+iobind (x : Any, f : Any, u : Unit) -> Any = f (x (u), u)++-- String operations++append (x:String, y:String) -> String =+    foreign String "append" (x:String, y:String)++length (x:String) -> String =+    foreign Int "strlen" (x:String)++index (x:String, i:Int) -> Char =+    foreign Int "strIndex" (x:String, i:Int)++-- Big number arithmetic++subBig (x:BigInt, y:BigInt) -> BigInt =+   foreign BigInt "subBigInt" (x:BigInt, y:BigInt)++gtBig (x:BigInt, y:BigInt) -> Bool =+   foreign Int "gtBigInt" (x:BigInt, y:BigInt)++leBig (x:BigInt, y:BigInt) -> Bool =+   foreign Int "leBigInt" (x:BigInt, y:BigInt)++geBig (x:BigInt, y:BigInt) -> Bool =+   foreign Int "geBigInt" (x:BigInt, y:BigInt)++printBig (x:BigInt) -> Unit =+   foreign Unit "printBigInt" (x:BigInt)++bigIntToStr (x:BigInt) -> String =+    foreign String "bigIntToStr" (x:BigInt)++strToBigInt (x:String) -> Int =+    foreign String "strToBigInt" (x:String)++-- Unit++%inline primUnit() -> Unit = unit++-- Nats++primNatPlus (x:BigInt, y:BigInt) -> BigInt =+   foreign BigInt "addBigInt" (x:BigInt, y:BigInt)++primNatTimes (x:BigInt, y:BigInt) -> BigInt =+   foreign BigInt "mulBigInt" (x:BigInt, y:BigInt)++primZero() -> BigInt = 0L++primSuc (n : BigInt) -> BigInt = primNatPlus(n, 1L)++primPred(n : BigInt) -> BigInt = subBig(n, 1L)++%inline absBig (x : BigInt) -> BigInt = +  if primNatLess(x, primZero) +     then primZero+     else x++%inline primNatMinus(x : BigInt, y : BigInt) -> BigInt = absBig(subBig(x, y))++-- readInt () -> Int = foreign Int "readInt" ()++primNatEquality (x:BigInt, y:BigInt) -> Bool =+    foreign Int "eqBigInt" (x:BigInt, y:BigInt)++primNatLess (x:BigInt, y:BigInt) -> Bool =+    foreign Int "ltBigInt" (x:BigInt, y:BigInt)++-- Strings++-- Cannot call foreign "append" directly, for some reason+%inline primStringAppend (x : String, y : String) -> String = append(x, y)++primStringEquality (x : String, y : String) -> Bool =+    foreign Int "eqString" (x : String, y : String)++-- Bools++%inline primTrue  () -> Bool = true++%inline primFalse () -> Bool = false++-- Chars++printChar (x:Int) -> Unit =+    foreign Unit "printCharRep" (x:Int)++init () -> Unit =+    foreign Unit "init" ()++-- Coinduction++primSharp (u1 : Any, u2 : Any, x : Any) -> Data = Con 0 (x)
+ src/data/EpicInclude/stdagda.c view
@@ -0,0 +1,44 @@+#include "stdagda.h"+#include <stdlib.h>+#include <unistd.h>+#include <gmp.h>+#include <string.h>+#include <sys/time.h>+#include <locale.h>+//#include "closure.h"+#include "stdfuns.h"++#define _UNICODE+#define UNICODE++int eqString(char *x, char *y) {+    return strcmp(x, y) == 0;+}++void init(void) {+  setlocale(LC_CTYPE, "");+}++void printCharRep(int c) {++  wprintf(L"%lc", c);+}++int bigToInt(mpz_t* n) {+  return (int) mpz_get_si(*n);+}++mpz_t* intToBig(int n) {+  mpz_t* answer = EMALLOC(sizeof(mpz_t));+  mpz_init(*answer);+  mpz_set_si(*answer, (signed long int)n);+  return answer; +} ++VAL getArgBig(mpz_t* num) {+  return evm_getArg(bigToInt(num));+}++mpz_t* numArgsBig(void) { +  return intToBig(epic_numArgs());+}
+ src/data/EpicInclude/stdagda.h view
@@ -0,0 +1,21 @@+#ifndef _STDAGDA_H+#define _STDAGDA_H++# ifndef WIN32+#  include <pthread.h>+#  define GC_THREADS+# else+#  define GC_WIN32_THREADS+# endif++#include <gc/gc.h>+#include <gmp.h>+#include <stdio.h>+void init(void);+int eqString(char *x, char *y);+void printCharRep(int c);++char* getArgv(mpz_t* n);+mpz_t* getArgc(void);++#endif
src/data/emacs-mode/agda2-mode.el view
@@ -10,12 +10,12 @@  ;;; Code: -(defvar agda2-version "2.2.8"+(defvar agda2-version "2.2.10"   "The version of the Agda mode. Note that, by default, the same version of the underlying Haskell library is used (see `agda2-ghci-options').") -(require 'cl) ;  haskell-indent requires it anyway.+(require 'cl) (set (make-local-variable 'lisp-indent-function)      'common-lisp-indent-function) (require 'comint)@@ -25,7 +25,6 @@ (require 'agda-input) (require 'agda2-highlight) (require 'agda2-abbrevs)-(require 'haskell-indent) (require 'haskell-ghci) ;; due to a bug in haskell-mode-2.1 (setq haskell-ghci-mode-map (copy-keymap comint-mode-map))@@ -86,6 +85,13 @@   :type '(repeat directory)   :group 'agda2) +(defcustom agda2-backend+  "MAlonzo"+  "The backend which is used to compile Agda programs."+  :type '(choice (const "MAlonzo")+                 (const "Epic"))+  :group 'agda2)+ (defcustom agda2-ghci-options   (list (concat "-package Agda-" agda2-version))   "Options set in GHCi before loading `agda2-toplevel-module'.@@ -102,14 +108,6 @@   "Hooks for `agda2-mode'."   :type 'hook :group 'agda2) -(defcustom agda2-indentation-  'eri-  "*The kind of indentation used in `agda2-mode'."-  :type '(choice (const :tag "Haskell" haskell)-                 (const :tag "Extended relative" eri)-                 (const :tag "None" nil))-  :group 'agda2)- (defcustom agda2-information-window-max-height   0.35   "*The maximum height of the information window.@@ -247,10 +245,10 @@     (agda2-goal-and-context-and-inferred     ,(kbd "C-c C-.")   (local)        "Goal type, context and inferred type")     (agda2-module-contents-maybe-toplevel    ,(kbd "C-c C-o")   (local global) "Module contents")     (agda2-compute-normalised-maybe-toplevel "\C-c\C-n"         (local global) "Evaluate term to normal form")-    (agda2-indent                ,(kbd "TAB"))-    (agda2-indent-reverse        [S-iso-lefttab])-    (agda2-indent-reverse        [S-lefttab])-    (agda2-indent-reverse        [S-tab])+    (eri-indent                  ,(kbd "TAB"))+    (eri-indent-reverse          [S-iso-lefttab])+    (eri-indent-reverse          [S-lefttab])+    (eri-indent-reverse          [S-tab])     (agda2-goto-definition-mouse [mouse-2])     (agda2-goto-definition-keyboard "\M-.")     (agda2-go-back                  "\M-*")@@ -356,7 +354,6 @@      (condition-case nil          (set-frame-font agda2-fontset-name)        (error (error "Unable to change the font; change agda2-fontset-name or tweak agda2-fontset-spec-of-fontset-agda2"))))- (agda2-indent-setup)  ;; If GHCi is not running syntax highlighting does not work properly.  (unless (eq 'run (agda2-process-status))    (agda2-restart))@@ -380,7 +377,14 @@   (interactive)   (save-excursion (let ((agda2-bufname "*ghci*")                         (ignore-dot-ghci "-ignore-dot-ghci"))-                    (agda2-protect (kill-buffer agda2-bufname))+                    (agda2-protect+                      (progn+                        ;; GHCi doesn't always die when its buffer is+                        ;; killed, so GHCi is killed before the buffer+                        ;; is.+                        (set-buffer agda2-bufname)+                        (agda2-protect (comint-kill-subjob))+                        (kill-buffer agda2-bufname)))                     ;; Make sure that the user's .ghci is not read.                     ;; Users can override this by adding                     ;; "-read-dot-ghci" to@@ -455,14 +459,14 @@           (delete-file tempfile))))     response)) -(defun agda2-go (highlight &rest args)+(defun agda2-go (responses-expected highlight &rest args)   "Executes commands in GHCi. Sends the list of strings ARGS to GHCi, waits for output and-executes the responses, if any. An error is raised if no-responses are received, and otherwise the syntax highlighting-information is reloaded (unless HIGHLIGHT is nil; if HIGHLIGHT is-a string, then highlighting info is read from the corresponding-file)."+executes the responses, if any. If no responses are received, and+RESPONSES-EXPECTED is non-nil, then an error is raised; otherwise+the syntax highlighting information is reloaded (unless HIGHLIGHT+is nil; if HIGHLIGHT is a string, then highlighting info is read+from the corresponding file)."   (let* ((highlighting-temp (and highlight (not (stringp highlight))))          (highlighting (cond ((stringp highlight) highlight)                              (highlighting-temp (make-temp-file "agda2-mode")))))@@ -479,7 +483,8 @@                              "Nothing")                            "("                            (append args '(")"))))))-                (when (null responses) (agda2-raise-ghci-error))+                (when (and responses-expected (null responses))+                  (agda2-raise-ghci-error))                 (if highlight (agda2-highlight-load highlighting))                 (agda2-exec-responses responses))           (if highlighting-temp (delete-file highlighting)))))@@ -518,7 +523,7 @@                   (or ask (string-match "\\`\\s *\\'" txt)))              (setq txt (read-string (concat want ": ") nil nil txt t)))             (t (setq input-from-goal t)))-      (apply 'agda2-go nil cmd+      (apply 'agda2-go t nil cmd              (format "%d" g)              (if input-from-goal (agda2-goal-Range o) "noRange")              (agda2-string-quote txt) args))))@@ -557,15 +562,18 @@ (defun agda2-load ()   "Load current buffer."   (interactive)-  (agda2-go t "cmd_load"+  (agda2-go t t "cmd_load"             (agda2-string-quote (buffer-file-name))             (agda2-list-quote agda2-include-dirs)             ))  (defun agda2-compile ()-  "Compile the current module."+  "Compile the current module.++The variable `agda2-backend' determines which backend is used."   (interactive)-  (agda2-go t "cmd_compile"+  (agda2-go t t "cmd_compile"+            agda2-backend             (agda2-string-quote (buffer-file-name))             (agda2-list-quote agda2-include-dirs)             ))@@ -644,11 +652,11 @@  (defun agda2-show-goals()   "Show all goals." (interactive)-  (agda2-go t "cmd_metas"))+  (agda2-go t t "cmd_metas"))  (defun agda2-show-constraints()   "Show constraints." (interactive)-  (agda2-go t "cmd_constraints"))+  (agda2-go t t "cmd_constraints"))  (defun agda2-remove-annotations ()   "Removes buffer annotations (overlays and text properties)."@@ -699,7 +707,7 @@ COMMENT is used to build the function's comments. The function NAME takes a prefix argument which tells whether it should normalise types or not when running CMD (through-`agda2-go' nil; the string PROMPT is used as the goal command+`agda2-go' t nil; the string PROMPT is used as the goal command prompt)."   (let ((eval (make-symbol "eval")))     `(defun ,name (not-normalise expr)@@ -708,7 +716,7 @@ With a prefix argument the result is not explicitly normalised.")        (interactive ,(concat "P\nM" prompt ": "))        (let ((,eval (if not-normalise "Instantiated" "Normalised")))-         (agda2-go nil+         (agda2-go t nil                    (concat ,cmd " Agda.Interaction.BasicOps." ,eval " "                            (agda2-string-quote expr))))))) @@ -769,7 +777,7 @@   "Shows all the top-level names in the given module. Along with their types."   (interactive "MModule name: ")-  (agda2-go nil+  (agda2-go t nil             "cmd_show_module_contents_toplevel"             (agda2-string-quote module))) @@ -787,7 +795,7 @@ (defun agda2-solveAll ()   "Solves all goals that are already instantiated internally."   (interactive)-  (agda2-go t "cmd_solveAll"))+  (agda2-go t t "cmd_solveAll"))  (defun agda2-solveAll-action (iss)   (save-excursion@@ -814,7 +822,7 @@   (let ((cmd (concat "cmd_compute_toplevel"                      (if arg " True" " False")                      " ")))-    (agda2-go nil (concat cmd (agda2-string-quote expr)))))+    (agda2-go t nil (concat cmd (agda2-string-quote expr)))))  (defun agda2-compute-normalised-maybe-toplevel ()   "Computes the normal form of the given expression,@@ -835,9 +843,8 @@   (let ((highlighting (make-temp-file "agda2-mode")))     (unwind-protect         (progn-          (agda2-go highlighting+          (agda2-go nil highlighting                     "cmd_write_highlighting_info"-                    (agda2-list-quote agda2-include-dirs)                     (agda2-string-quote (buffer-file-name))                     (agda2-string-quote highlighting)))       (delete-file highlighting))))@@ -1060,38 +1067,6 @@   (goto-char (agda2-decl-beginning)))  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-;;;; Indentation--(defun agda2-indent ()-  "This is what happens when TAB is pressed.-Depends on the setting of `agda2-indentation'."-  (interactive)-  (cond ((eq agda2-indentation 'haskell) (haskell-indent-cycle))-        ((eq agda2-indentation 'eri) (eri-indent))))--(defun agda2-indent-reverse ()-  "This is what happens when S-TAB is pressed.-Depends on the setting of `agda2-indentation'."-  (interactive)-  (cond ((eq agda2-indentation 'eri) (eri-indent-reverse))))--(defun agda2-indent-setup ()-  "Set up and start the indentation subsystem.-Depends on the setting of `agda2-indentation'."-  (interactive)-  (cond ((eq agda2-indentation 'haskell)-         (labels ((setl (var val) (set (make-local-variable var) val)))-           (setl 'indent-line-function 'haskell-indent-cycle)-           (setl 'haskell-indent-off-side-keywords-re-                 "\\<\\(do\\|let\\|of\\|where\\|sig\\|struct\\)\\>[ \t]*"))-         (local-set-key "\177"  'backward-delete-char-untabify)-         (set (make-local-variable 'haskell-literate)-              (if (string-match "\\.lagda$" (buffer-file-name))-                  'latex))-         (setq haskell-indent-mode t)-         (run-hooks 'haskell-indent-hook))))--;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Comments and paragraphs  (defun agda2-comments-and-paragraphs-setup nil@@ -1159,10 +1134,10 @@ With prefix argument, turn on display of implicit arguments if the argument is a positive number, otherwise turn it off."   (interactive "P")-  (cond ((eq arg nil)       (agda2-go t "toggleImplicitArgs"))+  (cond ((eq arg nil)       (agda2-go t t "toggleImplicitArgs"))         ((and (numberp arg)-              (> arg 0))    (agda2-go t "showImplicitArgs" "True"))-        (t                  (agda2-go t "showImplicitArgs" "False"))))+              (> arg 0))    (agda2-go t t "showImplicitArgs" "True"))+        (t                  (agda2-go t t "showImplicitArgs" "False"))))  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;
src/data/emacs-mode/annotation.el view
@@ -1,7 +1,7 @@ ;;; annotation.el --- Functions for annotating text with faces and help bubbles  ;;; Commentary:-;; +;;  ;;; Code: (require 'cl)
src/data/emacs-mode/eri.el view
@@ -7,7 +7,7 @@ (require 'cl)  (defun eri-current-line-length nil-  "Calculates length of current line."+  "Calculate length of current line."   (- (line-end-position) (line-beginning-position)))  (defun eri-current-line-empty nil@@ -16,7 +16,8 @@          (eri-current-line-length)))  (defun eri-maximum (xs)-  "Calculate maximum element in XS.  Return nil if the list is empty."+  "Calculate maximum element in XS.+Returns nil if the list is empty."   (if xs (apply 'max xs)))  (defun eri-take (n xs)@@ -25,17 +26,18 @@  (defun eri-split (x xs)   "Return a pair of lists (XS1 . XS2).-If XS is sorted, then XS = (append XS1 XS2), and all elements in XS1 are <= X,-whereas all elements in XS2 are > X."+If XS is sorted, then XS = (append XS1 XS2), and all elements in+XS1 are <= X, whereas all elements in XS2 are > X."   (let* ((pos (or (position-if (lambda (y) (> y x)) xs) (length xs)))          (xs1 (eri-take pos xs))          (xs2 (nthcdr pos xs)))-    `(,xs1 . ,xs2)))+    (cons xs1 xs2)))  (defun eri-calculate-indentation-points-on-line (max)   "Calculate indentation points on current line.-Only points left of column number MAX are included.-If MAX is nil, then all points are included.  Return points in ascending order.+Only points left of column number MAX are included. If MAX is+nil, then all points are included. Points are returned in+ascending order.  Example (positions marked with ^ are returned): @@ -44,50 +46,63 @@                        |                        MAX"   (let ((result))-    (save-restriction-      (beginning-of-line)-      ; To make \\` work in the regexp below:-      (narrow-to-region (line-beginning-position) (line-end-position))+    (save-excursion+      (save-restriction+        (beginning-of-line)+        ; To make \\` work in the regexp below:+        (narrow-to-region (line-beginning-position) (line-end-position))+        (while+            (progn+              (let ((pos (and (search-forward-regexp+                               "\\(?:\\s-\\|\\`\\)\\(\\S-\\)" nil t)+                              (match-beginning 1))))+                (when (not (null pos))+                  (let ((pos1 (- pos (line-beginning-position))))+                    (when (or (null max) (< pos1 max))+                      (add-to-list 'result pos1))))+                (and pos+                     (< (point) (line-end-position))+                     (or (null max) (< (current-column) max))))))+        (nreverse result) ; Destructive operation.+        ))))++(defun eri-new-indentation-points ()+  "Calculate new indentation points.+Returns a singleton list containing the column number two steps+in from the indentation of the first non-empty line (white space+excluded) above the current line. If there is no such line,+then the empty list is returned."+  (let ((start (line-beginning-position)))+    (save-excursion+      ; Find a non-empty line above the current one, if any.       (while           (progn-            (let ((pos (and (search-forward-regexp-                             "\\(?:\\s-\\|\\`\\)\\(\\S-\\)" nil t)-                            (match-beginning 1))))-              (when (not (null pos))-                (let ((pos1 (- pos (line-beginning-position))))-                  (when (or (null max) (< pos1 max))-                    (add-to-list 'result pos1))))-              (and pos-                   (< (point) (line-end-position))-                   (or (null max) (< (current-column) max))))))-      (nreverse result) ; Destructive operation.-      )))--(defun eri-new-indentation-point ()-  "Calculate a new indentation point, two steps in from the-indentation of the first non-empty line above the current line.-If there is no such line 2 is returned."-  (save-excursion-    (while-        (progn-          (forward-line -1)-          (not (or (bobp)-                   (not (eri-current-line-empty))))))-    (+ 2 (current-indentation))))+            (forward-line -1)+            (not (or (bobp)+                     (not (eri-current-line-empty))))))+      (if (or (equal (point) start)+              (eri-current-line-empty))+          nil+        (list (+ 2 (current-indentation)))))))  (defun eri-calculate-indentation-points (reverse)-  "Calculate some indentation points.  Gives them in reverse order if-REVERSE is non-nil.  See `eri-indent' for a description of how-the indentation points are calculated."+  "Calculate points used to indent the current line.+The points are given in reverse order if REVERSE is non-nil. See+`eri-indent' for a description of how the indentation points are+calculated; note that the current indentation is not included in+the returned list."   ;; First find a bunch of indentations used above the current line.   (let ((points)-        (max))+        (max)+        (start (line-beginning-position)))     (save-excursion       (while           (progn             (forward-line -1)-            ; Skip lines with only white space.-            (unless (eri-current-line-empty)+            ; Skip the line we started from and lines with nothing but+            ; white space.+            (unless (or (equal (point) start)+                        (eri-current-line-empty))               (setq points                     (append                      (eri-calculate-indentation-points-on-line max)@@ -98,23 +113,25 @@             (not (or (bobp)                      (and (equal (current-indentation) 0)                           (> (eri-current-line-length) 0)))))))-    ;; Add a new indentation point. Sort the indentations.-    ;; Rearrange the points so that the next point is the one after the-    ;; current one.-    (let* ((ps (add-to-list 'points (eri-new-indentation-point)))-           (ps1 (sort ps '<)) ; Note: sort is destructive.-           (ps2 (eri-split (current-indentation)-                           (remove (current-indentation) ps1))))+    ;; Add new indentation points, but remove the current indentation.+    ;; Sort the indentations. Rearrange the points so that the next+    ;; point is the one after the current one. Reverse if necessary.+    ;;+    ;; Note: sort and nreverse are destructive.+    (let* ((ps0 (remove (current-indentation)+                        (append (eri-new-indentation-points) points)))+           (ps1 (eri-split (current-indentation) (sort ps0 '<)))+           (ps2 (append (cdr ps1) (car ps1))))       (if reverse-          (append (nreverse (car ps2)) (nreverse (cdr ps2)))-        (append (cdr ps2) (car ps2))))))+          (nreverse ps2)+        ps2))))  (defun eri-indent (&optional reverse)   "Cycle between some possible indentation points. With prefix argument REVERSE, cycle in reverse order. -Assume that a file contains the following lines of code, with point on-the line with three dots:+Assume that a file contains the following lines of code, with+point on the line with three dots:  frob = loooooooooooooooooooooooooong identifier foo = f a b@@ -126,19 +143,21 @@  ^ ^ ^ ^    ^  ^ ^ ^   ^ * ^ ^ ^ ^ -Then the ^'s and the * mark the indentation points that this function-cycles through.  The indentation points are selected as follows:+Then the ^'s and the * mark the indentation points that this+function cycles through. The indentation points are selected as+follows: -  * All lines before the current one, up to and including the first-    non-indented line (or the beginning of the buffer) are considered.+  * All lines before the current one, up to and including the+    first non-indented line (or the beginning of the buffer) are+    considered.        foo = f a b         where           f (Foo x) y = let bar = x                             baz = 3 + 5 -  * On these lines, erase all characters that stand to the right of-    some non-white space character on a lower line.+  * On these lines, erase all characters that stand to the right+    of some non-white space character on a lower line.        foo         whe@@ -153,14 +172,15 @@           f (    x  y = l   b                             b   = 3 + 5 -  * The columns of all remaining characters are indentation points.+  * The columns of all remaining characters are indentation+    points.        f w f (    x  y = l   b   = 3 + 5       ^ ^ ^ ^    ^  ^ ^ ^   ^   ^ ^ ^ ^    * A new indentation point is also added, two steps in from the-    indentation of the first non-empty line above the current line-    (or in the second column, if there is no such line).+    indentation of the first non-empty line (white space+    excluded) above the current line (if there is such a line).        f w f (    x  y = l   b   = 3 + 5       ^ ^ ^ ^    ^  ^ ^ ^   ^ * ^ ^ ^ ^"@@ -177,8 +197,8 @@  (defun eri-indent-reverse nil   "Cycle between some possible indentation points (in reverse order).-See `eri-indent' for a description of how the indentation points are-calculated."+See `eri-indent' for a description of how the indentation points+are calculated."   (interactive)   (eri-indent t)) 
src/full/Agda/Auto/Auto.hs view
@@ -15,6 +15,7 @@ import qualified System.Timeout import Data.Maybe (catMaybes) +import Agda.Utils.Permutation (permute, takeP) import Agda.TypeChecking.Monad.Base import Agda.TypeChecking.Monad.MetaVars import Agda.TypeChecking.Monad.Context@@ -320,7 +321,7 @@                  minfo = getMetaInfo mv              targettyp <- withMetaInfo minfo $ do               vs <- getContextArgs-              let targettype = tt `piApply` vs+              let targettype = tt `piApply` permute (takeP (fromIntegral $ length vs) $ mvPermutation mv) vs               normalise targettype              let tctx = length $ envContext $ clEnv minfo 
src/full/Agda/Auto/Convert.hs view
@@ -19,9 +19,9 @@ import qualified Agda.Syntax.Position as SP import qualified Agda.TypeChecking.Monad.Base as MB import Agda.TypeChecking.Monad.Signature (getConstInfo, getDefFreeVars, getImportedSignature)-import Agda.Utils.Permutation (Permutation(Perm), idP)+import Agda.Utils.Permutation (Permutation(Perm), idP, permute, takeP) import Agda.Interaction.BasicOps (rewrite, Rewrite(..))-import Agda.TypeChecking.Monad.Base (mvJudgement, getMetaInfo, ctxEntry, envContext, clEnv, Judgement(HasType))+import Agda.TypeChecking.Monad.Base (mvJudgement, mvPermutation, getMetaInfo, ctxEntry, envContext, clEnv, Judgement(HasType)) import Agda.TypeChecking.Monad.MetaVars (lookupMeta, withMetaInfo) import Agda.TypeChecking.Monad.Context (getContextArgs) import Agda.TypeChecking.Monad.Constraints (lookupConstraint, getConstraints)@@ -145,7 +145,7 @@            localVars = map (snd . C.unArg . ctxEntry) . envContext . clEnv $ minfo        (targettype, localVars) <- lift $ withMetaInfo minfo $ do         vs <- getContextArgs-        let targettype = tt `piApply` vs+        let targettype = tt `piApply` permute (takeP (fromIntegral $ length vs) $ mvPermutation mv) vs         targettype <- norm targettype         localVars <- mapM norm localVars         return (targettype, localVars)@@ -153,7 +153,7 @@        typ' <- tomyType targettype        ctx' <- mapM tomyType localVars        modify (\s -> s {sCurMeta = Nothing})-       modify (\s -> s {sMetas = (Map.adjust (\(m, Nothing, deps) -> (m, Just (typ', ctx'), deps)) mi (fst $ sMetas s), snd $ sMetas s)})+       modify (\s -> s {sMetas = (Map.adjust (\(m, _, deps) -> (m, Just (typ', ctx'), deps)) mi (fst $ sMetas s), snd $ sMetas s)})        r projfcns       Nothing -> do        nxt <- popMapS sEqs (\x y -> y {sEqs = x})@@ -162,7 +162,7 @@          let (ineq, e, i) = eqs !! eqi          e' <- tomyExp e          i' <- tomyExp i-         modify (\s -> s {sEqs = (Map.adjust (\Nothing -> Just (ineq, e', i')) eqi (fst $ sEqs s), snd $ sEqs s)})+         modify (\s -> s {sEqs = (Map.adjust (\_ -> Just (ineq, e', i')) eqi (fst $ sEqs s), snd $ sEqs s)})          r projfcns         Nothing ->          return projfcns@@ -176,7 +176,13 @@       return (projfcns' ++ icns', typs')   ) (S {sConsts = initMapS, sMetas = initMapS, sEqs = initMapS, sCurMeta = Nothing, sMainMeta = imi})  lift $ liftIO $ mapM_ categorizedecl icns'- return (icns', typs', Map.map (\(x, Just (y, z), w) -> (x, y, z, w)) (fst (sMetas s)), map (\(Just x) -> x) $ Map.elems (fst (sEqs s)), fst (sConsts s))+ return (icns', typs', Map.map flatten (fst (sMetas s)), map fromJust $ Map.elems (fst (sEqs s)), fst (sConsts s))+ where+ flatten (x, Just (y, z), w) = (x, y, z, w)+ flatten (x, Nothing, w) = __IMPOSSIBLE__++ fromJust (Just x) = x+ fromJust Nothing = __IMPOSSIBLE__  getConst :: Bool -> AN.QName -> TMode -> TOM (ConstRef O) getConst iscon name mode = do
src/full/Agda/Auto/NarrowingSearch.hs view
@@ -296,7 +296,7 @@     search depth = do      pm <- readIORef $ ctpriometa root      case pm of-      NoPrio False -> __IMPOSSIBLE__ -- nothing to refine but not done+      NoPrio False -> return $ Left False -- nothing to refine but not done, this can happen when eq constraints are passed along with main constraint in agdaplugin       NoPrio True ->        searchSubProb restprobs depth -- ?? what should depth be       PrioMeta _ m -> do
src/full/Agda/Auto/Typecheck.hs view
@@ -786,8 +786,7 @@     (s : ss, ALCons _ a args) -> mpret $ Sidecondition (f s a) (fs ss args)     ([], ALCons _ a args) -> mpret $ Sidecondition (f EqRSNone a) (fs [] args) -    ([], ALProj eas _ _ as) -> mpret $ Sidecondition (fs [] eas) (fs [] as)-    ((_:_), ALProj{}) -> __IMPOSSIBLE__+    (_, ALProj eas _ _ as) -> mpret $ Sidecondition (fs [] eas) (fs [] as) -- when eqr-hint is given manually, ss can be non-empty here       (_ : ss, ALConPar args) -> fs ss args
+ src/full/Agda/Compiler/Epic/AuxAST.hs view
@@ -0,0 +1,117 @@+-- | Intermediate abstract syntax tree used in the compiler. Pretty close to+--   Epic syntax.+module Agda.Compiler.Epic.AuxAST where++import Data.Set (Set)+import qualified Data.Set as S++import Agda.Syntax.Abstract.Name++type Var = String+type Tag = Int++type Comment  = String+type Inline   = Bool++data Fun+  = Fun+      { funInline  :: Inline+      , funName    :: Var+      , funComment :: Comment+      , funArgs    :: [Var]+      , funExpr    :: Expr+      }+  | EpicFun+      { funName     :: Var+      , funComment  :: Comment+      , funEpicCode :: String --EpicCode+      }+  deriving (Eq, Ord, Show)++data Lit+  = LInt    Integer+  | LChar   Char+  | LString String+  | LFloat  Double+  deriving (Show, Ord, Eq)++data Expr+  = Var Var+  | Lit Lit+  | Lam Var Expr+  | Con Tag QName [Expr]+  | App Var [Expr]+  | Case Expr [Branch]+  | If Expr Expr Expr+  | Let Var Expr Expr+  | Lazy Expr+  | UNIT+  | IMPOSSIBLE+  deriving (Show, Ord, Eq)++data Branch+  = Branch  {brTag  :: Tag, brName :: QName, brVars :: [Var], brExpr :: Expr}+  | BrInt   {brInt  :: Int, brExpr :: Expr}+  | Default {brExpr :: Expr}+  deriving (Show, Ord, Eq)++-- | Smart constructor for applications to avoid empty applications+apps :: Var -> [Expr] -> Expr+apps v [] = Var v+apps v as = App v as++-- | Substitution+subst :: Var  -- ^ Substitute this ...+      -> Var  -- ^ with this ...+      -> Expr -- ^ in this.+      -> Expr+subst var var' expr = case expr of+    Var v      | var == v  -> Var var'+               | otherwise -> Var v+    Lit l -> Lit l+    Lam v e    | var == v  -> Lam v e+               | otherwise -> Lam v (subst var var' e)+    Con t q es -> Con t q (map (subst var var') es)+    App v es   | var == v  -> App var' (map (subst var var') es)+               | otherwise -> App v    (map (subst var var') es)+    Case e brs -> Case (subst var var' e) (map (substBranch var var') brs)+    If a b c -> let s = subst var var'+                 in If (s a) (s b) (s c)+    Let v e e' | var == v  -> Let v (subst var var' e) e'+               | otherwise -> Let v (subst var var' e) (subst var var' e')+    Lazy e     -> Lazy (subst var var' e)+    UNIT       -> UNIT+    IMPOSSIBLE -> IMPOSSIBLE++substBranch :: Var -> Var -> Branch -> Branch+substBranch x e br = br { brExpr = subst x e (brExpr br) }++-- | Get the free variables in an expression+fv :: Expr -> [Var]+fv = S.toList . fv'+  where+    fv' :: Expr -> Set Var+    fv' expr = case expr of+      Var v    -> S.singleton v+      Lit _    -> S.empty+      Lam v e1 -> S.delete v (fv' e1)+      Con _ _ es -> S.unions (map fv' es)+      App v es -> S.insert v $ S.unions (map fv' es)+      Case e brs -> fv' e `S.union` S.unions (map fvBr brs)+      If a b c   -> S.unions (map fv' [a,b,c])+      Let v e e' -> fv' e `S.union` (S.delete v $ fv' e')+      Lazy e     -> fv' e+      UNIT       -> S.empty+      IMPOSSIBLE -> S.empty++    fvBr :: Branch -> Set Var+    fvBr b = case b of+      Branch _ _ vs e -> fv' e S.\\ S.fromList vs+      BrInt _ e       -> fv' e+      Default e       -> fv' e++-- | Filter a list using a list of Bools specifying what to keep.+pairwiseFilter :: [Bool] -> [a] -> [a]+pairwiseFilter (True :bs) (a:as) = a : pairwiseFilter bs as+pairwiseFilter (False:bs) (_:as) = pairwiseFilter bs as+pairwiseFilter _           _     = []
+ src/full/Agda/Compiler/Epic/CompileState.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE CPP #-}++-- | Contains the state monad that the compiler works in and some functions+--   for tampering with the state.+module Agda.Compiler.Epic.CompileState where++import Control.Applicative+import Control.Monad.State+import Data.Map(Map)+import qualified Data.Map as M+import Data.Maybe+import Data.Set(Set)+import qualified Data.Set as S++import Agda.Compiler.Epic.AuxAST+import Agda.Syntax.Internal+import Agda.Syntax.Common+import Agda.TypeChecking.Monad (MonadTCM, internalError, defType, theDef, getConstInfo)+import qualified Agda.TypeChecking.Monad as M+import Agda.TypeChecking.Reduce++#include "../../undefined.h"+import Agda.Utils.Impossible++type IrrFilter = [Bool]++-- | Stuff we need in our compiler+data CompileState = CompileState+    { dataDecls     :: Map QName Tag+    , nameSupply    :: [Var]+    , definitions   :: Set Var+    , defDelayed    :: Map QName Bool+    , conPars       :: Map QName Int+    , mainName      :: Maybe QName+    , irrFilters    :: Map QName IrrFilter+    } deriving Show++-- | The initial (empty) state+initCompileState :: CompileState+initCompileState = CompileState+    { dataDecls     = M.empty+    , nameSupply    = map (('h':) . show) [0 :: Integer ..]+    , definitions   = S.fromList primTopBindings+    , defDelayed    = M.empty+    , conPars       = M.empty+    , mainName      = Nothing+    , irrFilters    = M.empty+    }+  where+    -- | For the lambda-lifter not to lift known primitive functions.+    primTopBindings :: [Var]+    primTopBindings = ["primNatCaseZD", "primNatCaseZS", "primBoolCase", "primUnit", "primSharp"]++-- | Compiler monad+type Compile = StateT CompileState++epicError :: MonadTCM m => String -> Compile m a+epicError = lift . internalError++-- | Create a name which can be used in Epic code from a QName.+unqname :: QName -> Var+unqname qn = case nameId $ qnameName qn of+    NameId name modul -> 'd' : show modul+                     ++ "_" ++ show name++-- * State modifiers++getDelayed :: MonadTCM m => QName -> Compile m Bool+getDelayed q = fromMaybe False <$> gets (M.lookup q . defDelayed)++putDelayed :: Monad m => QName -> Bool -> Compile m ()+putDelayed q d = modify $ \s -> s {defDelayed = M.insert q d (defDelayed s)}++newName :: Monad m => Compile m Var+newName = do+    n:ns <- gets nameSupply+    modify $ \s -> s { nameSupply = ns}+    return n++-- | Add a data declaration by giving a list of its constructors.+--   Tags will be created and saved.+addDataDecl :: Monad m => [QName] -> Compile m ()+addDataDecl ts = modify+    $ \s -> s { dataDecls = M.union (M.fromList $ zip ts [0..]) (dataDecls s)}++getConstrTag :: Monad m => QName -> Compile m Tag+getConstrTag con = gets $ fromMaybe __IMPOSSIBLE__+                        . M.lookup con+                        . dataDecls++addDefName :: Monad m => QName -> Compile m ()+addDefName q = do+    modify $ \s -> s {definitions = S.insert (unqname q) $ definitions s }+    when ("main" == show (qnameName q)) (putMain q) -- hax++topBindings :: Monad m => Compile m (Set Var)+topBindings = gets definitions++getConPar :: MonadTCM m => QName -> Compile m Int+getConPar n = fromMaybe __IMPOSSIBLE__ <$> M.lookup n <$> gets conPars++putConPar :: Monad m => QName -> Int -> Compile m ()+putConPar n p = modify $ \s -> s { conPars = M.insert n p (conPars s) }++putMain :: Monad m => QName -> Compile m ()+putMain m = modify $ \s -> s { mainName = Just m }++getMain :: MonadTCM m => Compile m Var+getMain = maybe (epicError "Where is main? :(") (return . unqname) =<< gets mainName++getIrrFilter :: Monad m => QName -> Compile m IrrFilter+getIrrFilter q = gets $ fromMaybe __IMPOSSIBLE__+                      . M.lookup q+                      . irrFilters++putIrrFilter :: Monad m => QName -> IrrFilter -> Compile m ()+putIrrFilter n f = modify $ \s -> s {irrFilters = M.insert n f $ irrFilters s}++replaceAt :: Int -- ^ replace at+          -> [a] -- ^ to replace+          -> [a] -- ^ replace with+          -> [a] -- ^ result?+replaceAt n xs inserts = let (as, _:bs) = splitAt n xs in as ++ inserts ++ bs+++-- | Copy pasted from MAlonzo, HAHA!!!+--   Move somewhere else!+constructorArity :: (MonadTCM tcm, Num a) => QName -> tcm a+constructorArity q = do+  def <- getConstInfo q+  a <- normalise $ defType def+  case theDef def of+    M.Constructor{ M.conPars = np } -> return . fromIntegral $ arity a - np+    _ -> internalError $ "constructorArity: non constructor: " ++ show q
+ src/full/Agda/Compiler/Epic/Compiler.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE CPP #-}+-- | Epic compiler backend.+module Agda.Compiler.Epic.Compiler(compilerMain) where++import Control.Applicative+import Control.Monad+import Control.Monad.Reader+import Control.Monad.State+import qualified Data.Map as M+import Data.Maybe+import System.Directory+import System.Exit+import System.FilePath hiding (normalise)+import System.Process hiding (env)++import Paths_Agda+import Agda.Interaction.FindFile+import Agda.Interaction.Options+import qualified Agda.Syntax.Concrete.Name as CN+import Agda.Syntax.Internal hiding (Term(..))+import Agda.TypeChecking.Monad+import Agda.TypeChecking.Monad.Builtin+import Agda.Utils.FileName++import Agda.Compiler.Epic.CompileState hiding (conPars)+import qualified Agda.Compiler.Epic.ConstructorIrrelevancy as CIrr+import Agda.Compiler.Epic.Epic+import qualified Agda.Compiler.Epic.Erasure as Eras+import qualified Agda.Compiler.Epic.FromAgda as FAgda+import qualified Agda.Compiler.Epic.LambdaLift as LL+import qualified Agda.Compiler.Epic.Primitive  as Prim++#include "../../undefined.h"+import Agda.Utils.Impossible++-- | Compile an interface into an Epic/a.out program+--   /actually this is not true, we compile everything so we don't even look at+--   the Interface. This may change in the future.+compilerMain :: Interface -> TCM ()+compilerMain inter = do+    epic_exist <- liftIO $ rawSystem "ghc-pkg" ["-v0", "field", "epic", "id"]+    case epic_exist of+        ExitSuccess -> flip evalStateT initCompileState $ do+            setEpicDir inter+            initialAnalysis+            code <- compileModule =<< lift (gets stImports)+            case code of+                Nothing -> __IMPOSSIBLE__+                Just c  -> runEpic (iModuleName inter) c+        ExitFailure _ -> internalError $ unlines+           [ "Agda cannot find the Epic compiler."+           , "This can perhaps be fixed by running `cabal install epic'."+           , "See the README for more information."+           ]+++-- | Before running the compiler, we need to store some things in the state,+--   namely constructor tags, constructor irrelevancies and the delayed field+--   in functions (for coinduction).+initialAnalysis :: MonadTCM m => Compile m ()+initialAnalysis = do+  defs <- M.toList <$> lift (gets (sigDefinitions . stImports))+  forM_ defs $ \(q, def) -> do+    addDefName q+    case theDef def of+      d@(Datatype {}) -> do+        addDataDecl $ dataCons d+      Constructor {conPars = np} -> do+        putIrrFilter q . drop (fromIntegral np) . CIrr.irrFilter $ defType def+        putConPar q =<< lift (constructorArity q)+      r@(Record{}) -> do+        addDataDecl [recCon r]+      f@(Function{}) -> do+        putDelayed q $ case funDelayed f of+          Delayed -> True+          NotDelayed -> False+      _ -> return ()++-- | Perform the chain of compilation stages, from definitions to epic code+compileDefns :: MonadTCM m => [(QName, Definition)] -> Compile m (Maybe EpicCode)+compileDefns defs = do+    -- We need to handle sharp (coinduction) differently, so we get it here.+    msharp <- lift $ getBuiltin' builtinSharp+    emits   <- FAgda.fromAgda msharp defs+               >>= Prim.primitivise+               >>= irr -- CIrr.constrIrr+               >>= Eras.erasure+               >>= LL.lambdaLift+    if null emits+       then return Nothing+       else return . return . unlines . map prettyEpicFun $ emits+  where+    irr ds = do+        f <- lift $ gets (optForcing . stPersistentOptions)+        if f then CIrr.constrIrr ds+             else return ds++-- | Compile all definitions from a signature+compileModule :: MonadTCM m => Signature -> Compile m (Maybe EpicCode)+compileModule sig = do+    let defs = M.toList $ sigDefinitions sig+    compileDefns defs++-- | Change the current directory to Epic folder, create it if it doesn't already+--   exist.+setEpicDir :: Interface -> Compile (TCMT IO) ()+setEpicDir mainI = do+    let tm = toTopLevelModuleName $ iModuleName mainI+    f <- lift $ findFile tm+    compileDir' <- lift $ gets (fromMaybe (filePath $ CN.projectRoot f tm) . optCompileDir . stPersistentOptions)+    compileDir <- liftIO $ canonicalizePath compileDir'+    liftIO $ setCurrentDirectory compileDir+    liftIO $ createDirectoryIfMissing False "Epic"+    liftIO $ setCurrentDirectory $ compileDir </> "Epic"++-- | Make a program from the given Epic code.+--+-- The program is written to the file @../m@, where m is the last+-- component of the given module name.+runEpic :: MonadTCM m => ModuleName -> EpicCode -> Compile m ()+runEpic m code = do+    nam <- getMain+    epicflags <- optEpicFlags <$> lift commandLineOptions+    let code' = "include \"AgdaPrelude.e\"\n" ++ code ++ "main() -> Unit = init() ; " ++ nam ++ "(unit)"+    dataDir <- liftIO getDataDir+    curDir  <- liftIO getCurrentDirectory+    liftIO $ copyFile (dataDir </> "EpicInclude" </> "AgdaPrelude" <.> "e")+                      (curDir </> "AgdaPrelude" <.> "e")+    liftIO $ writeFile ("main" <.> "e") code'++    let outputName  = case mnameToList m of+          [] -> __IMPOSSIBLE__+          ms -> last ms+        epic        = "epic"+        epicCommand =+          [ "-keepc"+          , "-checking", "0"+          -- , "-trace"+          , "-i", dataDir </> "EpicInclude" </> "stdagda" <.> "c"+          , "main" <.> "e"+          , "-o", ".." </> show outputName+          ] ++ epicflags+    lift $ reportSLn "" 1 $+      "calling: " ++ unwords (epic : epicCommand)+    _ <- liftIO $ rawSystem epic epicCommand+    return ()
+ src/full/Agda/Compiler/Epic/ConstructorIrrelevancy.hs view
@@ -0,0 +1,67 @@+-- | Remove forced (irrelevant) arguments from constructors.+module Agda.Compiler.Epic.ConstructorIrrelevancy where++import Control.Applicative++import Agda.Compiler.Epic.AuxAST+import Agda.Compiler.Epic.CompileState++import Agda.Syntax.Common+import qualified Agda.Syntax.Internal as T+import Agda.TypeChecking.Monad.Base (MonadTCM)+++-- | Check which arguments are forced and create an IrrFilter+irrFilter :: T.Type -> IrrFilter+irrFilter (T.El _ term) = case term of+    T.Pi  arg ab  -> isRel arg : irrFilter (T.absBody ab)+    T.Fun arg typ -> isRel arg : irrFilter typ+    _ -> []+  where+    isRel :: Arg T.Type -> Bool+    isRel arg = case argRelevance arg of+      Relevant   -> True+      Irrelevant -> False+      Forced     -> False -- It can be inferred++-- | Remove irrelevant arguments from constructors and branches+constrIrr :: MonadTCM m => [Fun] -> Compile m [Fun]+constrIrr fs = mapM irrFun fs++irrFun :: MonadTCM m => Fun -> Compile m Fun+irrFun (Fun inline name comment args expr) =+    Fun inline name comment args <$> irrExpr expr+irrFun e@(EpicFun{}) = return e++-- | Remove all arguments to constructors that we don't need to store in an+--   expression.+irrExpr :: MonadTCM m => Expr -> Compile m Expr+irrExpr expr = case expr of+    Var v        -> return $ Var v+    Lit l        -> return $ Lit l+    Lam v e      -> Lam v <$> irrExpr e+    Con tag q es -> do+        -- We only need to apply the relevant arguments+        irrFilt <- getIrrFilter q+        return $ Con tag q $ pairwiseFilter irrFilt es+    App v es     -> App v <$> mapM irrExpr es+    Case e bs    -> Case <$> irrExpr e <*> mapM irrBranch bs+    Let v e e'   -> Let v <$> irrExpr e <*> irrExpr e'+    If a b c     -> If <$> irrExpr a <*> irrExpr b <*> irrExpr c+    Lazy e       -> Lazy <$> irrExpr e+    UNIT         -> return expr+    IMPOSSIBLE   -> return expr++-- | Remove all the arguments that doesn't need to be stored in the constructor+--   For the branch+irrBranch :: MonadTCM m => Branch -> Compile m Branch+irrBranch br = case br of+    Branch  tag name vars e -> do+        ir <- getIrrFilter name+        let vs = pairwiseFilter ir vars+            -- The removed arguments are substituted for unit+            subs = pairwiseFilter (map not ir) vars+            e'   = foldr (\x ex -> subst x "primUnit" ex) e subs+        Branch tag name vs <$> irrExpr e'+    BrInt i e -> BrInt i <$> irrExpr e+    Default e -> Default <$> irrExpr e
+ src/full/Agda/Compiler/Epic/Epic.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE CPP #-}++-- | Pretty-print the AuxAST to valid Epic code.+module Agda.Compiler.Epic.Epic+  ( prettyEpicFun+  ) where++import Data.Char+import Data.List++#include "../../undefined.h"+import Agda.Utils.Impossible++import Agda.Compiler.Epic.AuxAST++-- * Some auxilliary pretty-printer functions+(<+>) :: String -> String -> String+x <+> y = x ++ " " ++ y+infixr 6 <+>++($$) :: String -> String -> String+x $$ y  = x ++ "\n" ++ y+infixr 5 $$++many :: [String] -> String+many vs = paren $ intercalate ", " vs++paren :: String -> String+paren s = "(" <+> s <+> ")"++curly :: String -> String+curly s = "{-" <+> s <+> "-}"++-- * Pretty-printer+-- | Print a function to an Epic string+prettyEpicFun :: Fun -> String+prettyEpicFun (Fun inline name comment vars e) =+    "--" <+> comment $$+    (if inline then "%inline " else "") ++ name+    <+> many (map typVar vars) <+> "-> Any" <+> "=" <+> prettyEpic e+prettyEpicFun (EpicFun name comment def) =+    "--" <+> comment $$+    "%inline" <+> name <+> def++-- | Print expression to Epic expression+prettyEpic :: Expr -> String+prettyEpic expr = case expr of+    Var v -> v+    Lit l -> prettyEpicLit l+    Lam _ _ -> __IMPOSSIBLE__ -- We have lambda lifted away all λs+    Con t q args -> curly (show q) <+> paren ("Con" <+> show t <+> many (map prettyEpic args))+    If a b c -> "if" <+> prettyEpic a <+> "then" <+> prettyEpic b <+> "else" <+> prettyEpic c+    Let v e e' -> "let" <+> typVar v <+> "=" <+> prettyEpic e <+> "in" <+> prettyEpic e'+    App v es -> v <+> many (map prettyEpic es)+    Case e brs -> "case" <+> prettyEpic e <+> "of {"+               <+> intercalate "\n | " (map prettyEpicBr brs) <+> "}"+    Lazy e -> "lazy" <+> paren (prettyEpic e)+    UNIT -> "unit"+    IMPOSSIBLE -> "impossible"++prettyEpicBr :: Branch -> String+prettyEpicBr br = case br of+    Branch c q vs e ->+       curly (show q)  <+>+       "Con" <+> show c+       <+> many (map typVar vs)+       <+> "->" <+> prettyEpic e+    BrInt n e       ->  show n <+> "->" <+> prettyEpic e+    Default e       -> "Default ->" <+> prettyEpic e++prettyEpicLit :: Lit -> String+prettyEpicLit l = case l of+    LInt n    -> show n ++ "L"+    LChar c   -> show (ord c)+    LString s -> show s+    LFloat f  -> show f++typVar :: Var -> String+typVar v = v <+> ":" <+> "Any"
+ src/full/Agda/Compiler/Epic/Erasure.hs view
@@ -0,0 +1,133 @@+-- | Some arguments to functions (types in particular) will not be used in the+--   body. Wouldn't it be useful if these wasn't passed around at all?+--   Fear not, we here perform some analysis and try to remove as many of these+--   occurences as possible.+--+--   We employ the worker/wrapper transform, so if f x1 .. xn = e+--   and we notice that some is not needed we create: f' xj .. xk = e [xi := unit]+--   and f x1 .. xn = f' xj .. xk.+--   i.e we erase them in f' and replace by unit, and the original f function+--   calls the new f'. The idea is that f should be inlined and then peace on earth.+module Agda.Compiler.Epic.Erasure where++import Control.Applicative+import Control.Monad.State+import Data.Map(Map)+import qualified Data.Map as M+import Data.Maybe++import Agda.Compiler.Epic.AuxAST+import Agda.Compiler.Epic.CompileState++import Agda.TypeChecking.Monad.Base (MonadTCM)++data Relevancy+  = Irr+  | Rel+  | DontKnow+  deriving (Eq, Ord, Show)++isIrr :: Relevancy -> Bool+isIrr Irr      = True+isIrr Rel      = False+isIrr DontKnow = True++isRel :: Relevancy -> Bool+isRel = not . isIrr++-- | Irrelevancy "and"+(&&-) :: Relevancy -> Relevancy -> Relevancy+Rel      &&- _        = Rel+_        &&- Rel      = Rel+DontKnow &&- a        = a+a        &&- DontKnow = a+Irr      &&- Irr      = Irr -- If both arguments are irrelevant, then surely we+                            -- have something irrelevant.++data ErasureState = ErasureState+  { relevancies :: Map Var [Relevancy]+  , funs        :: Map Var Fun+  }++type Erasure = StateT ErasureState++-- | Try to find as many unused variables as possible+erasure :: MonadTCM m => [Fun] -> Compile m [Fun]+erasure fs = do+    rels <- flip evalStateT (ErasureState M.empty M.empty) $ do+        mapM_ initiate fs+        fu <- gets funs+        M.mapKeys (fromJust . flip M.lookup fu) <$> step+    fmap concat $ mapM (\f -> check f (M.lookup f rels)) fs+  where+    -- | Perform the worker//wrapper transform+    check :: MonadTCM m => Fun -> Maybe [Relevancy] -> Compile m [Fun]+    -- If the function is already marked as to inline we don't need to create a+    -- new function. Also If all arguments are relevant there is nothing to do.+    check f (Just rs) | any isIrr rs && not (funInline f) = do+        f' <- newName+        let args' = pairwiseFilter (map isRel rs) (funArgs f)+            subs  = pairwiseFilter (map isIrr rs) (funArgs f)+            e'    = foldr (\v e -> subst v "primUnit" e) (funExpr f) subs+        return [ Fun { funInline  = True+                     , funName    = funName f+                     , funComment = funComment f+                     , funArgs    = funArgs f+                     , funExpr    = App f' $ map Var args'+                     }+               , Fun { funInline  = False+                     , funName    = f'+                     , funComment = funComment f ++ " [ERASED]"+                     , funArgs    = args'+                     , funExpr    = e'+                     }+               ]+    check f _ = return [f]++-- | Initiate a function's relevancies (all DontKnow)+initiate :: Monad m => Fun -> Erasure m ()+initiate f@(Fun _ name _ args _) =+    modify $ \s -> s { relevancies = M.insert name (replicate (length args) DontKnow) (relevancies s)+                     , funs        = M.insert name f (funs s)+                     }+initiate (EpicFun {})            = return ()++-- | Calculate if a variable is relevant in an expression+relevant :: (Functor m, Monad m) => Var -> Expr -> Erasure m Relevancy+relevant var expr = case expr of+    Var v  | v == var  -> return Rel+           | otherwise -> return Irr+    Lit _l       -> return Irr+    Lam _ e     -> relevant var e+    Con _ _ es  -> relevants var es+    App v es | v == var  -> return Rel+             | otherwise -> do+                -- The variable is relevant if it is used in a relevant position+                mvrs <- gets (M.lookup v . relevancies)+                case mvrs of+                  Nothing  -> relevants var es+                  Just vrs -> relevants var+                            $ pairwiseFilter (map isRel vrs ++ repeat True {- Needs ETA expansion -}) es+    Case e brs  -> (&&-) <$> relevant var e  <*> relevants var (map brExpr brs)+    If a b c    -> relevants var [a,b,c]+    Let _ e1 e2 -> (&&-) <$> relevant var e1 <*> relevant var e2+    Lazy e      -> relevant var e+    UNIT        -> return Irr+    IMPOSSIBLE  -> return Irr+  where+    relevants :: (Functor m, Monad m) => Var -> [Expr] -> Erasure m Relevancy+    relevants v es = foldM (\x y -> return $ x &&- y) Irr =<< mapM (relevant v) es++-- | Try to find a fixpoint for all the functions relevancy.+step :: (Monad m, Functor m) => Erasure m (Map Var [Relevancy])+step = do+    s  <- get+    rels <- forM (M.toList (relevancies s)) $ \(v, _) -> do+               let f = fromJust $ M.lookup v (funs s)+               (,) v <$> mapM (flip relevant (funExpr f)) (funArgs f)+    let relsm = M.fromList rels+    if relevancies s == relsm+       then return relsm+       else do+           put s {relevancies = relsm}+           step
+ src/full/Agda/Compiler/Epic/Forcing.hs view
@@ -0,0 +1,398 @@+{-# LANGUAGE CPP #-}+module Agda.Compiler.Epic.Forcing where++import Control.Applicative+import Control.Arrow (first, second)+import Control.Monad+import Control.Monad.State+import Control.Monad.Trans+import Data.List+import qualified Data.Map as M+import Data.Maybe++import Agda.Syntax.Common+import Agda.Syntax.Internal+import Agda.TypeChecking.CompiledClause+import Agda.TypeChecking.Monad+import Agda.TypeChecking.Rules.LHS.Unify+import Agda.TypeChecking.Substitute+import Agda.TypeChecking.Pretty+import Agda.TypeChecking.Reduce+import Agda.TypeChecking.Telescope+import Agda.Utils.List+import Agda.Utils.Size++import Agda.Compiler.Epic.CompileState hiding (conPars)+import Agda.Compiler.Epic.AuxAST(pairwiseFilter)++#include "../../undefined.h"+import Agda.Utils.Impossible++-- | Replace the uses of forced variables in a CompiledClauses with the function+--   arguments that they correspond to.+--   Note that this works on CompiledClauses where the term's variable indexes+--   have been reversed, which means that the case variables match the variables+--   in the term.+removeForced :: MonadTCM m => CompiledClauses -> Type -> Compile m CompiledClauses+removeForced cc typ = do+  TelV tele _ <- lift $ telView typ+  remForced cc tele++-- | Returns the type of a constructor given its name+constrType :: MonadTCM m => QName -> Compile m Type+constrType q = do+    map <- lift (gets (sigDefinitions . stImports))+    return $ maybe __IMPOSSIBLE__ defType (M.lookup q map)++-- | Returns how many parameters a datatype has+dataParameters :: MonadTCM m => QName -> Compile m Nat+dataParameters name = do+    m <- lift (gets (sigDefinitions . stImports))+    return $ maybe __IMPOSSIBLE__ (defnPars . theDef) (M.lookup name m)+  where+    defnPars :: Defn -> Nat+    defnPars (Datatype {dataPars = p}) = p+    defnPars (Record   {recPars  = p}) = p+    defnPars _                         = 0 -- Not so sure about this.++-- | Is variable n used in a CompiledClause?+isIn :: MonadTCM m => Nat -> CompiledClauses -> Compile m Bool+n `isIn` Case i brs | n == fromIntegral i = return True+                    | otherwise = n `isInCase` (fromIntegral i, brs)+n `isIn` Done _ t = return $ n `isInTerm` t+n `isIn` Fail     = return $ False++isInCase :: MonadTCM m => Nat -> (Nat, Case CompiledClauses) -> Compile m Bool+n `isInCase` (i, Branches { conBranches    = cbrs+                          , litBranches    = lbrs+                          , catchAllBranch = cabr}) = do+    cbrs' <- (or <$>) $ forM (M.toList cbrs) $ \ (constr, cc) -> do+        if i < n+          then do+            par <- fromIntegral <$> getConPar constr+            (n + par - 1) `isIn` cc+          else n `isIn` cc++    lbrs' <- (or <$>) $ forM (M.toList lbrs) $ \ (_, cc) ->+        (if i < n+           then (n - 1)+           else n) `isIn` cc++    cabr' <- case cabr of+        Nothing -> return False+        Just cc -> n `isIn` cc+    return (cbrs' || lbrs' || cabr')+++isInTerm :: Nat -> Term -> Bool+n `isInTerm` term = let recs = any (isInTerm n . unArg) in case term of+   Var i as -> i == n || recs as+   Lam _ ab -> (n+1) `isInTerm` absBody ab+   Lit _    -> False+   Def _ as -> recs as+   Con _ as -> recs as+   Pi a b   -> n `isInTerm` unEl (unArg a) || (n+1) `isInTerm` unEl (absBody b)+   Fun a b  -> n `isInTerm` unEl (unArg a) || n `isInTerm` unEl b+   Sort sor -> False -- ?+   MetaV meta as -> False -- can't occur?+   DontCare -> False++{- |+insertTele i xs t tele+                  tpos+  tele := Gamma ; (i : T as) ; Delta+  n    := parameters T+  xs'  := xs `apply` (take n as)+becomes+                  tpos+  ( Gamma ; xs' ; Delta[i := t] --note that Delta still reference Gamma correctly+  , T as ^ (size xs')+  )++we raise the type since we have added xs' new bindings before Gamma, and as can+only bind to Gamma.+-}+insertTele :: MonadTCM m+            => Int        -- ^ ABS `pos` in tele+            -> Maybe Type -- ^ If Just, it is the type to insert patterns from+                          --   is nothing if we only want to delete a binding.+            -> Term       -- ^ Term to replace at pos+            -> Telescope  -- ^ The telescope `tele` where everything is at+            -> Compile m ( Telescope+                         , ( Type+                           , Type+                           )+                         )+                -- ^ Returns (resulting telescope, the type at pos in tele, the+                --   return type of the inserted type).+insertTele 0 ins term (ExtendTel t to) = do+    t' <- lift $ normalise t+    let Def st arg = unEl . unArg $ t'+    -- Apply the parameters of the type of t+    -- Because: parameters occurs in the type of constructors but are not bound by it.+    pars <- dataParameters st+    TelV ctele ctyp <- lift $ telView $ maybe (unArg t')+                            (`apply` take (fromIntegral pars) arg) ins++    () <- if length (take (fromIntegral pars) arg) == fromIntegral pars+        then return ()+        else __IMPOSSIBLE__+    -- we deal with absBody to directly since we remove t+    return ( ctele +:+  (subst term $ raiseFrom 1 (size ctele) (absBody to))+           , (raise (size ctele) $ unArg t , ctyp)+           )+  where+    -- Append the telescope, we raise since we add a new binding and all the previous+    -- bindings need to be preserved+    (+:+) :: Telescope -> Telescope -> Telescope+    EmptyTel       +:+ t2 = t2+    ExtendTel t t1 +:+ t2 = ExtendTel t t1 {absBody = absBody t1 +:+ {-raise 1-} t2 }+-- This case is impossible since we are trying to split a variable outside the tele+insertTele n ins term EmptyTel = __IMPOSSIBLE__+insertTele n ins term (ExtendTel x xs) = do+    (xs', typ) <- insertTele (n - 1) ins term (absBody xs)+    return (ExtendTel x xs {absBody = xs'} , typ)++mkCon c n = Con c [ defaultArg $ Var (fromIntegral i) [] | i <- [n - 1, n - 2 .. 0] ]++unifyI :: MonadTCM m => Telescope -> [Nat] -> Type -> Args -> Args -> Compile m [Maybe Term]+unifyI tele flex typ a1 a2 = lift $ addCtxTel tele $ unifyIndices_ flex typ a1 a2++takeTele 0 _ = EmptyTel+takeTele n (ExtendTel t ts) = ExtendTel t ts {absBody = takeTele (n-1) (absBody ts) }+takeTele _ _ = __IMPOSSIBLE__++-- | Remove forced variables cased on in the current top-level case in the CompiledClauses+remForced :: MonadTCM m+     => CompiledClauses -- ^ Remove cases on forced variables in this+     -> Telescope       -- ^ The current context we are in+     -> Compile m CompiledClauses+remForced ccOrig tele = case ccOrig of+    Case n brs -> do+        -- Get all constructor branches+        cbs <- forM (M.toList $ conBranches brs) $ \(constr, cc) -> do+            par             <- getConPar  constr+            typ             <- constrType constr+            -- Update tele with the telescope from the constructor's type+            (tele', (ntyp, ctyp))   <- insertTele n (Just typ) (mkCon constr par) tele+            ntyp <- lift $ reduce ntyp+            ctyp <- lift $ reduce ctyp+            notForced       <- getIrrFilter constr+            -- Get the variables that are forced, relative to the position after constr+            forcedVars <- filterM ((`isIn` cc) . (flip subtract (fromIntegral $ n + par - 1)))+                        $ pairwiseFilter (map not notForced)+                        $ map fromIntegral [par-1,par-2..0]+            if null forcedVars+                then (,) constr <$> remForced cc tele'+                else do+                    unif <- case (unEl ntyp, unEl ctyp) of+                        (Def st a1, Def st' a2) | st == st' -> do+                            typPars <- fromIntegral <$> dataParameters st+                            setType <- constrType st+                            {-+                                We are splitting on C xs+                                we know that C : ts -> T ss ; for some T+                                we also know from tele that we are splitting on T as+                                we want to unify ss with as, but not taking into account+                                the Data parameters to T.+                            -}+                            unifyI (takeTele (n + par) tele')+                                   (map fromIntegral [0 .. n + par]) -- Don't unify the constructor arguments+                                   (setType `apply` take typPars a1)+                                   (drop typPars a1)+                                   (drop typPars a2)+                        x -> __IMPOSSIBLE__+                    -- we calculate the new tpos from n (the old one) by adding+                    -- how many more bindings we have+                    (,) constr <$> replaceForced (fromIntegral $ n + par, tele')+                                                 forcedVars+                                                 (cc, unif)++        lbs <- forM (M.toList $ litBranches brs) $ \(lit, cc) -> do+            -- We have one less binding+            (newTele, _) <- insertTele n Nothing (Lit lit) tele+            (,) lit <$>  remForced cc newTele++        cabs <- case catchAllBranch brs of+            Nothing -> return Nothing+            Just cc -> Just <$> remForced cc tele++        return $ Case n brs { conBranches = M.fromList cbs+                            , litBranches = M.fromList lbs+                            , catchAllBranch = cabs }++    Done n t   -> return $ Done n t+    Fail       -> return Fail++data FoldState = FoldState+  { clauseToFix  :: CompiledClauses+  , clausesAbove :: CompiledClauses -> CompiledClauses+  , unification  :: [Maybe Term]+  , theTelescope :: Telescope+  , telePos      :: Nat+  } deriving Show++-- Some utility functions++foldM' :: Monad m => a -> [b] -> (a -> b -> m a) -> m a+foldM' z xs f = foldM f z xs++lift2 :: (MonadTrans t, Monad (t1 m), MonadTrans t1, Monad m) => m a -> t (t1 m) a+lift2 = lift . lift++modifyM :: (MonadState a m) => (a -> m a) -> m ()+modifyM f = get >>= f >>= put -- (>>= put) . (get >>=)++-- | replaceForced (tpos, tele) forcedVars (cc, unification)+--   For each forceVar dig out the corresponding case and continue to remForced.+replaceForced :: MonadTCM m+              => (Nat, Telescope) -> [Nat] -> (CompiledClauses, [Maybe Term])+              -> Compile m CompiledClauses+replaceForced (telPos, tele) forcedVars (cc, unif) = do+    let origSt = FoldState+                  { clauseToFix  = cc+                  , clausesAbove = id+                  , unification  = unif+                  , theTelescope = tele+                  , telePos      = telPos+                  }+    st <- flip execStateT origSt $ forM forcedVars $ \ forcedVar -> do+        unif <- gets unification+        let (caseVar, caseTerm) = findPosition forcedVar unif+        telPos <- gets telePos+        termToBranch (telPos - caseVar - 1) caseTerm forcedVar+    clausesAbove st <$> remForced (clauseToFix st) (theTelescope st)+  where+    {-+      In this function the following de Bruijn is:+        forcedVar : Relative+        caseVar : Absolute+        telePos : Absolute+    -}+    termToBranch :: MonadTCM m => Nat -> Term -> Nat -> StateT FoldState (Compile m) ()+    termToBranch caseVar caseTerm forcedVar = case caseTerm of+        Var i _ | i == forcedVar -> do+            telPos <- gets telePos+            let sub = [0..telPos - forcedVar - 2] ++ [caseVar] ++ [telPos - forcedVar..]+            modifyM $ \ st -> do+                newClauseToFix <- substCC sub (clauseToFix st)+                return st+                    { clauseToFix = newClauseToFix+                    , unification = substs (map (flip Var []) sub) (unification st)+                    }+                -- This is impossible since we have already looked and it should+                -- be the correct Var+                | otherwise -> __IMPOSSIBLE__+        Con c args -> do+            telPos <- gets telePos+            let (nextCaseVarInCon, nextCaseTerm) = findPosition forcedVar (map (Just . unArg) args)+                nextCaseVar = nextCaseVarInCon + caseVar+                newBinds    = fromIntegral $ length args - 1+                -- we have added newBinds new bindings and removed one before telePos+                nextTelePos = telPos + newBinds+            ctyp <- lift (constrType c)++            modifyM $ \ st -> do+                (newTele , _) <- lift $ insertTele (fromIntegral caseVar) (Just ctyp)+                                        (mkCon c (length args)) (theTelescope st)+                -- We have to update the unifications-list so that we don't try+                -- to dig out the same again later.+                let newUnif = raiseFrom (telPos - caseVar) newBinds $+                        replaceAt (fromIntegral $ telPos - caseVar - 1)+                                  (unification st)+                                  (reverse $ map (Just . unArg) args)+                                  -- The variables in the unification-list is+                                  -- relative so we need to reverse the args+                                  -- so they get in the right place.+                return st+                    { clauseToFix  = raiseFromCC caseVar newBinds+                                                 (substCCBody caseVar+                                                 (Con c $ map (defaultArg . flip Var [])+                                                              [caseVar .. caseVar + newBinds])+                                                 (clauseToFix st))+                    , theTelescope = newTele+                    , unification  = newUnif+                    , telePos      = nextTelePos+                    }+            st <- get+            termToBranch nextCaseVar nextCaseTerm forcedVar+            modify $ \ st -> st+                { clausesAbove = Case (fromIntegral caseVar) . conCase c . (clausesAbove st)+                }+        _ -> __IMPOSSIBLE__++-- Note: Absolute positions+raiseFromCC :: Nat -> Nat -> CompiledClauses -> CompiledClauses+raiseFromCC from add  cc = case cc of+    Case n (Branches cbr lbr cabr) -> Case (fromIntegral $ raiseN from add (fromIntegral n)) $+                                           Branches (M.map rec cbr)+                                                    (M.map rec lbr)+                                                    (fmap  rec cabr)+    Done i t -> Done (i + fromIntegral add) $ raiseFrom from add t+    Fail     -> Fail+  where+    rec = raiseFromCC from add+    raiseN :: Nat -> Nat -> Nat -> Nat+    raiseN from add n | from <= n = n + add+                      | otherwise = n++-- | Substitute with the Substitution, this will adjust with the new bindings in the+--   CompiledClauses+substCC :: MonadTCM m => [Nat] -> CompiledClauses -> StateT FoldState (Compile m) CompiledClauses+substCC ss cc = case cc of+    Done i t -> do+        return $ Done i (substs (map (flip Var []) ({-reverse $ take i -} ss)) t)+    Fail     -> return Fail+    Case n brs -> do+        {-+          In a Case split, if we should change n to m, then all the binders in+          this pattern should also change from being based on n to be based on m.+        -}+        cbs <- forM (M.toList $ conBranches brs) $ \ (c, br) -> do+            nargs <- lift2 $ constructorArity c+            let delta = (ss !! n) - fi n+                ss'   = take n ss+                      ++ [fi n + delta .. fi n + delta + nargs - 1]+                      ++ map (+ (nargs - 1)) (drop (n+1) ss)+            (,) c <$> substCC ss' br++        lbs <- forM (M.toList $ litBranches brs) $ \ (l, br) -> do+            -- We have one less binder here+            (,) l <$> substCC (replaceAt n ss []) br++        cabs <- case catchAllBranch brs of+            Nothing -> return Nothing+            Just br -> Just <$> substCC ss br++        return $ Case (fromIntegral (ss !! n))+                  Branches { conBranches    = M.fromList cbs+                           , litBranches    = M.fromList lbs+                           , catchAllBranch = cabs+                           }+  where+    fi = fromIntegral++-- | Substitute variable n for term t in the body of cc+substCCBody :: Nat -> Term -> CompiledClauses -> CompiledClauses+substCCBody n t cc = substsCCBody (vs [0..n - 1] ++ [t] ++ vs [n + 1..]) cc+  where vs = map (flip Var [])++-- | Perform a substitution in the body of cc+substsCCBody :: [Term] -> CompiledClauses -> CompiledClauses+substsCCBody ss cc = case cc of+    Case n brs -> Case n (substsCCBody ss <$> brs)+    Done i t -> Done i (substs ss t)+    Fail     -> Fail++-- | Find the location where a certain Variable index is by searching the constructors+--   aswell. i.e find a term that can be transformed into a pattern that contains the+--   same value the index. This fails if no such term is present.+findPosition :: Nat -> [Maybe Term] -> (Nat, Term)+findPosition var ts = let Just n = findIndex (maybe False pred) ts+                       in (fromIntegral n , fromJust $ ts !! n)+  where+    pred :: Term -> Bool+    pred t = case t of+      Var i _ | var == i -> True+      Con _ args         -> any (pred . unArg) args+      _                  -> False
+ src/full/Agda/Compiler/Epic/FromAgda.hs view
@@ -0,0 +1,233 @@+{-# LANGUAGE CPP #-}++-- | Convert from Agda's internal representation to our auxiliary AST.+module Agda.Compiler.Epic.FromAgda where++import Control.Applicative+import Control.Monad+import Control.Monad.State+import Data.Char+import Data.Map(Map)+import qualified Data.Map as M+import Data.Maybe++import Agda.Interaction.Options+import Agda.Syntax.Common+import Agda.Syntax.Internal hiding (Term(..))+import qualified Agda.Syntax.Internal as T+import qualified Agda.Syntax.Literal  as TL+import qualified Agda.TypeChecking.CompiledClause as CC+import Agda.TypeChecking.Monad+import qualified Agda.TypeChecking.Substitute as S++import Agda.Compiler.Epic.AuxAST+import Agda.Compiler.Epic.CompileState hiding (conPars)+import Agda.Compiler.Epic.Forcing++#include "../../undefined.h"+import Agda.Utils.Impossible++-- | Convert from Agda's internal representation to our auxiliary AST.+fromAgda :: MonadTCM m => Maybe T.Term -> [(QName, Definition)] -> Compile m [Fun]+fromAgda msharp defs = catMaybes <$> mapM (translateDefn msharp) defs++-- | Translate an Agda definition to an Epic function where applicable+translateDefn :: MonadTCM m => Maybe T.Term -> (QName, Definition) -> Compile m (Maybe Fun)+translateDefn msharp (n, defini) = let n' = unqname n in case theDef defini of+    d@(Datatype {}) -> do -- become functions returning unit+        vars <- replicateM (fromIntegral $ dataPars d + dataIxs d) newName+        return . return $ Fun True n' ("datatype: " ++ show n) vars UNIT+    f@(Function{}) -> do+        irrF <- gets irrFilters+        let len   = length . clausePats . translatedClause . head .  funClauses $ f+            toEta = fromIntegral (arity (defType defini)) - len+            ccs   = reverseCCBody $ funCompiled f+        forcing <- lift $ gets (optForcing . stPersistentOptions)+        funComp <- if forcing+                    then removeForced ccs (defType defini)+                    else return ccs+        return <$> (etaExpand toEta =<< compileClauses n len funComp)+    Constructor{} -> do -- become functions returning a constructor with their tag+        arit <- lift $ constructorArity n+        tag   <- getConstrTag n+        -- Sharp has to use the primSharp function from AgdaPrelude.e+        case msharp of+          Just (T.Def sharp []) | sharp == n -> return <$> mkFun n' "primSharp" 3+          _    -> return <$> mkCon n tag arit+    r@(Record{}) -> do+        vars <- replicateM (fromIntegral $ recPars r) newName+        return . return $ Fun True n' ("record: " ++ show n) vars UNIT+    a@(Axiom{}) -> do -- Axioms get their code from COMPILED_EPIC pragmas+        case axEpDef a of+            Nothing -> return . return $ EpicFun n' ("AXIOM_UNDEFINED: " ++ show n)+                $ "() -> Any = lazy(error \"Axiom " ++ show n ++ " used but has no computation\")"+            Just x  -> return . return $ EpicFun n' ("COMPILED_EPIC: " ++ show n) x+    p@(Primitive{}) -> do -- Primitives use primitive functions from AgdaPrelude.e of the same name.+                          -- Hopefully they are defined!+      let ar = fromIntegral $ arity $ defType defini+      return <$> mkFun n' (primName p) ar+  where+    mkFun = mkFunGen apps ("primitive: " ++)+    mkCon q tag ari = do+        let name = unqname q+        mkFunGen (flip Con q) (const $ "constructor: " ++ show q) name tag ari+    mkFunGen :: Monad m+            => (name -> [Expr] -> Expr) -- ^ combinator+            -> (name -> String)         -- ^ make comment+            -> Var                      -- ^ Name of the function+            -> name                     -- ^ Primitive function name+            -> Int                      -- ^ Arity ofthe function+            -> Compile m Fun            -- ^ Result?+    mkFunGen comb sh name primname arit = do+        vars <- replicateM arit newName+        return $ Fun True name (sh primname) vars (comb primname (map Var vars))++    etaExpand :: MonadTCM m => Int -> Fun -> Compile m Fun+    etaExpand num fun = do+        names <- replicateM num newName+        return $ fun+            { funExpr = funExpr fun @@ names+            , funArgs = funArgs fun ++ names+            }++    (@@) :: Expr -> [Var] -> Expr+    e @@ [] = e+    e @@ vs = let ts = map Var vs in case e of+      Var var -> apps var ts+      Lam var expr -> case vs of+          v:vs' -> subst var v expr @@ vs'+          []    -> __IMPOSSIBLE__+      Con tag qName es -> Con tag qName (es ++ ts)+      App var es       -> App var (es ++ ts)+      Case expr bs     -> Case expr (map (flip appBranch vs) bs)+      If ea eb ec      -> If ea (eb @@ vs) (ec @@ vs)+      Let var el e'    -> Let var el (e' @@ vs)+      Lazy e'          -> Lazy (e' @@ vs)+      Lit _lit         -> IMPOSSIBLE -- Right?+      UNIT             -> IMPOSSIBLE+      IMPOSSIBLE       -> IMPOSSIBLE++    appBranch :: Branch -> [Var] -> Branch+    appBranch b vs = b {brExpr = brExpr b @@ vs}++reverseCCBody :: CC.CompiledClauses -> CC.CompiledClauses+reverseCCBody cc = case cc of+    CC.Case n (CC.Branches cbr lbr cabr) -> CC.Case n $ CC.Branches (M.map reverseCCBody cbr)+                                                        (M.map reverseCCBody lbr)+                                                        (fmap  reverseCCBody cabr)+    CC.Done i t -> CC.Done i (S.substs (map (flip T.Var []) (reverse $ take i [0..])) t)+    CC.Fail     -> CC.Fail++-- | Translate from Agda's desugared pattern matching (CompiledClauses) to our AuxAST.+--   This is all done by magic. It uses 'substTerm' to translate the actual+--   terms when the cases have been gone through.+--   The case expressions that we get use de Bruijn indices that change after+--   each case in the following way.+--   Say we have this pattern:+--+-- > f (X x y) (Y z) = term+--+--   Initially, the variables have these indexes:+--+-- > f 0@(X x y) 1@(Y z) = term+--+--   The first case will be on @0@, and the variables bound inside the @X@+--   pattern will replace the outer index, so we get something like this:+--+-- > f 0 2@(Y z) = case 0 of X 0 1 -> term+--+--   Notice how @(Y z)@ now has index @2@.+--   Then the second pattern is desugared in the same way:+--+-- > f 0 2 = case 0 of X 0 1 -> case 2 of Y 2 -> term+--+--   This replacement is what is done using the replaceAt function.+--+--   CompiledClauses also have default branches for when all branches fail (even+--   inner branches), the catchAllBranch. Epic does not support this, so+--   we have to add the catchAllBranch to each inner case (here we are calling+--   it omniDefault). To avoid code duplication it is first bound by a let+--   expression.+compileClauses :: MonadTCM m+               => QName+               -> Int -- ^ Number of arguments in the definition+               -> CC.CompiledClauses -> Compile m Fun+compileClauses name nargs c = do+    let n' = unqname name+    vars <- replicateM nargs newName+    e    <- compileClauses' vars Nothing c+    return $ Fun False n' ("function: " ++ show name) vars e+  where+    compileClauses' :: MonadTCM m => [Var] -> Maybe Var -> CC.CompiledClauses -> Compile m Expr+    compileClauses' env omniDefault cc = case cc of+        CC.Case n nc -> case length env <= n of+           True -> __IMPOSSIBLE__+           False -> case CC.catchAllBranch nc of+            Nothing -> Case (Var (env !! n)) <$> compileCase env omniDefault n nc+            Just de -> do+                var <- newName+                def <- compileClauses' env omniDefault de+                Let var (Lazy def) . Case (Var (env !! n)) <$> compileCase env (Just var) n nc+        CC.Done _ t -> substTerm ({- reverse -} env) t+        CC.Fail     -> return IMPOSSIBLE++    compileCase :: MonadTCM m => [Var] -> Maybe Var -> Int -> CC.Case CC.CompiledClauses+                -> Compile m [Branch]+    compileCase env omniDefault casedvar nc = do+        cb <- if M.null (CC.conBranches nc)+           -- Lit branch+           then forM (M.toList (CC.litBranches nc)) $ \(l, cc) -> do+               cc' <- compileClauses' (replaceAt casedvar env []) omniDefault cc+               case l of+                   TL.LitChar _ cha -> return $ BrInt (ord cha) cc'+                   _ -> __IMPOSSIBLE__ -- TODO: Handle other literals+           -- Con branch+           else forM (M.toList (CC.conBranches nc)) $ \(b, cc) -> do+               par  <- getConPar b+               tag  <- getConstrTag b+               vars <- replicateM par newName+               cc'  <- compileClauses' (replaceAt casedvar env vars) omniDefault cc+               return $ Branch tag b vars cc'++        case omniDefault of+            Nothing -> return cb+            Just cc -> do+              return $ cb ++ [Default (Var cc)]++-- | Translate the actual Agda terms, with an environment of all the bound variables+--   from patternmatching. Agda terms are in de Bruijn so we just check the new+--   names in the position.+substTerm :: MonadTCM m => [Var] -> T.Term -> Compile m Expr+substTerm env term = case term of+    T.Var ind args -> case length env <= fromIntegral ind of+        True  -> __IMPOSSIBLE__+        False -> apps (env !! fromIntegral ind) <$> mapM (substTerm env . unArg) args+    T.Lam _ te -> do+       name <- newName+       Lam name <$> substTerm (name : env) (absBody te)+    T.Lit l -> Lit <$> substLit l+    T.Def q args -> do+      let name = unqname q+      del <- getDelayed q+      f <- apps name <$> mapM (substTerm env . unArg) args+      return $ case del of+        True  -> Lazy f+        False -> f+    T.Con q args -> do+        let con = unqname q+        apps con <$> mapM (substTerm env . unArg) args+    T.Pi _ _ -> return UNIT+    T.Fun _ _ -> return UNIT+    T.Sort _  -> return UNIT+    T.MetaV _ _ -> return UNIT+    T.DontCare  -> return UNIT++-- | Translate Agda literals to our AUX definition+substLit :: MonadTCM m => TL.Literal -> Compile m Lit+substLit lit = case lit of+  TL.LitInt    _ i -> return $ LInt i+  TL.LitLevel  _ i -> return $ LInt i+  TL.LitString _ s -> return $ LString s+  TL.LitChar   _ c -> return $ LChar c+  TL.LitFloat  _ f -> return $ LFloat f+  _ -> epicError $ "literal not supported: " ++ show lit
+ src/full/Agda/Compiler/Epic/LambdaLift.hs view
@@ -0,0 +1,60 @@+-- | Lift lambda expressions to top level definitions (Epic does not support+--   lambdas).+module Agda.Compiler.Epic.LambdaLift where++import Control.Applicative+import Control.Monad.Trans+import Control.Monad.Writer+import qualified Data.Set as S++import Agda.Compiler.Epic.AuxAST+import Agda.Compiler.Epic.CompileState++import Agda.TypeChecking.Monad.Base (MonadTCM)++-- | LL makes it possible to emit new functions when we encounter a lambda+type LL = WriterT [Fun]++-- | lambda lift all the functions+lambdaLift :: MonadTCM m => [Fun] -> Compile m [Fun]+lambdaLift fs = do+  concat <$> sequence+    [do (f', lifts) <- runWriterT (lambdaLiftFun f)+        return $ f' : lifts+    | f <- fs]++-- | λ lift a function, this is in a LL (Writer monad)+lambdaLiftFun :: MonadTCM m => Fun -> LL (Compile m) Fun+lambdaLiftFun (Fun i name c vs e) = Fun i name c vs <$> lambdaLiftExpr e+lambdaLiftFun f@(EpicFun _ _ _)   = return f++-- | λ lift an expression, put all the new definitions in the writer monad+lambdaLiftExpr :: MonadTCM m => Expr -> LL (Compile m) Expr+lambdaLiftExpr expr = case expr of+    Var _    -> return expr+    Lit _    -> return expr+    e1@(Lam _ _) -> do+      -- This is the only difficult case, get a group of lambda binders,+      -- lambda lift the body of it, and create a new supercombinator from+      -- this.+      let (vs, e2) = collectLam e1+      topBinding <- lift topBindings+      let vs' = filter (`S.notMember` topBinding) $ fv e1+      e3 <- lambdaLiftExpr e2+      name <- lift newName+      tell [Fun True name "lambda" (vs' ++ vs) e3]+      return $ apps name (map Var vs')+    Con c n es -> Con c n <$> mapM lambdaLiftExpr es+    App v es -> App v <$> mapM lambdaLiftExpr es+    Case e brs -> Case <$> lambdaLiftExpr e+                       <*> mapM (\br -> do lle <- lambdaLiftExpr $ brExpr br; return br {brExpr = lle}) brs+    If a b c   -> If <$> lambdaLiftExpr a <*> lambdaLiftExpr b <*> lambdaLiftExpr c+    Let v e e' -> Let v <$> lambdaLiftExpr e <*> lambdaLiftExpr e'+    Lazy e     -> Lazy <$> lambdaLiftExpr e+    UNIT       -> return UNIT+    IMPOSSIBLE -> return IMPOSSIBLE+  where+    -- | Collect all the variables in a group of lambdas+    collectLam :: Expr -> ([Var], Expr)+    collectLam (Lam v e) = let (vs, e') = collectLam e in (v:vs, e')+    collectLam e         = ([], e)
+ src/full/Agda/Compiler/Epic/NatDetection.hs view
@@ -0,0 +1,64 @@+-- | Detect if a datatype could be represented as a primitive integer.+--   If it has one constructor with no arguments and one with a recursive+--   argument this is true. This is done using IrrFilters which filter out+--   forced arguments, so for example Fin becomes primitive.+module Agda.Compiler.Epic.NatDetection where++import Control.Applicative+import Control.Monad+import Control.Monad.State+import Data.Function+import Data.List+import qualified Data.Map as M+import Data.Maybe++import Agda.TypeChecking.Monad+import Agda.Syntax.Internal+import Agda.Syntax.Common++import Agda.Compiler.Epic.CompileState hiding (conPars)++-- | Get a list of all the datatypes that look like nats. The [QName] is on the+--   form [zeroConstr, sucConstr]+getNatish :: MonadTCM m => Compile m [(IrrFilter,[QName])]+getNatish = do+  sig <- lift (gets (sigDefinitions . stImports))+  let defs = M.toList sig+  fmap catMaybes $ forM defs $ \(q, def) ->+    case theDef def of+      d@(Datatype {}) -> do -- A datatype ...+          case dataCons d of+              constrs | length constrs == 2 -> do -- with two constructors ...+                  z <- zip constrs <$> mapM getIrrFilter constrs+                  case sortBy (compare `on` nrRel . snd) z of+                    [(cz,fz), (cs,fs)] -> do+                      let ts = defType $ sig M.! cs+                          nr = fromIntegral $ dataPars d+                      return $ do+                       guard (nrRel fz == 0) -- where one constructor has zero arguments ...+                       guard (nrRel fs == 1) -- and the other one one argument ...+                       guard (isRec ((fromJust $ elemIndex True fs) + nr) ts q) -- which is recursive.+                       return (fs, [cz, cs]) -- It's natish!+                    _ -> return Nothing+              _       -> return Nothing+      _ -> return Nothing++-- | Count the number of relevant arguments+nrRel :: IrrFilter -> Integer+nrRel = sum . map (const 1) . filter id++-- | Check if argument n is recursive+isRec :: Int -> Type -> QName -> Bool+isRec 0 (El _ t) dat = case t of+    Fun arg _ -> argIsDef (unArg arg) dat+    Pi  arg _ -> argIsDef (unArg arg) dat+    _       -> False+isRec n (El _ t) dat = case t of+    Pi  _ ab  -> isRec (n - 1) (absBody ab) dat+    Fun _ typ -> isRec (n - 1) typ           dat+    _           -> False++argIsDef :: Type -> QName -> Bool+argIsDef (El _ t) dat = case t of+    Def q _ -> q == dat+    _       -> False
+ src/full/Agda/Compiler/Epic/Primitive.hs view
@@ -0,0 +1,201 @@+{-# LANGUAGE CPP #-}++-- | Change constructors and cases on builtins and natish datatypes to use+--   primitive data+module Agda.Compiler.Epic.Primitive where++import Control.Applicative+import Control.Monad+import Control.Monad.Trans+import Data.Map(Map)+import qualified Data.Map as M+import Data.Maybe++import Agda.Syntax.Internal(QName)+import qualified Agda.Syntax.Internal as T+import Agda.TypeChecking.Monad hiding (defName)+import Agda.TypeChecking.Monad.Builtin++import Agda.Compiler.Epic.AuxAST+import Agda.Compiler.Epic.CompileState+import Agda.Compiler.Epic.NatDetection++#include "../../undefined.h"+import Agda.Utils.Impossible++{- Stacken, Heapen -- Optimizern -}++data PrimTransform = PrimTF+  { mapCon        :: Map QName Var+  , translateCase :: Expr -> [Branch] -> Expr+  }++-- | Change constructors and cases on builtins and natish datatypes to use+--   primitive data+primitivise :: MonadTCM m => [Fun] -> Compile m [Fun]+primitivise funs = do+    ptfs   <- getBuiltins+    natish <- getNatish+    lists  <- primLists+    (++ lists) <$> mapM (primFun $ ptfs ++ map (uncurry natPrimTF) natish) funs++-- | Create primitive functions if list constructors are marked as builtins+primLists :: MonadTCM m => Compile m [Fun]+primLists = do+    mnil  <- lift $ getBuiltin' builtinNil+    mcons <- lift $ getBuiltin' builtinCons+    case (mnil, mcons) of+      (Just (T.Con nil []), Just (T.Con cons [])) -> do+          [nilT, consT] <- mapM getConstrTag [nil, cons]+          let fun s n = Fun+                   { funInline  = True+                   , funName    = "prim" ++ s+                   , funComment = "BUILTIN " ++ s+                   , funArgs    = []+                   , funExpr    = Var (unqname n)+                   }+          return [ fun "Nil" nil+                 , fun "Cons" cons+                 , Fun+                    { funInline  = False+                    , funName    = "primListElim"+                    , funComment = "Eliminator for Lists"+                    , funArgs    = ["op" , "z" , "xs"]+                    , funExpr    = Case (Var "xs")+                        [ Branch nilT nil [] $ Var "z"+                        , Branch consT cons ["y", "ys"] $+                            App "op" [ Var "y"+                                     , App "primListElim" [ Var "op"+                                                          , Var "z"+                                                          , Var "ys"+                                                          ]+                                     ]+                        ]+                    }+                 ]+      _                     -> return []+-- | Build transforms using the names of builtins+getBuiltins :: MonadTCM m => Compile m [PrimTransform]+getBuiltins =+    catMaybes <$> sequence+      [ [builtinZero, builtinSuc  ]         ~> natPrimTF [True]+       -- ? is this ok to have [True]+      , [builtinLevelZero, builtinLevelSuc] ~> natPrimTF [True]+      , [builtinTrue, builtinFalse]         ~> boolPrimTF+      ]+  where+    constrs ~> transf = do+        builtins <- lift $ mapM getBuiltin' constrs+        if all isJust builtins+           then return $ Just (transf (map (defName . fromMaybe __IMPOSSIBLE__) builtins))+           else return Nothing+    defName (T.Def q []) = q+    defName (T.Con q []) = q+    defName _            = __IMPOSSIBLE__++-- | Translation to primitive integer functions+natPrimTF :: IrrFilter -> [QName] -> PrimTransform+natPrimTF filt [zero, suc] = PrimTF+  { mapCon = M.fromList [(zero, "primZero"), (suc, "primSuc")]+  , translateCase = \ce brs -> case brs of+        -- Assuming only the first two branches are relevant when casing on Nats+        (Branch _ n vs e:Branch _ _n' vs' e':_) ->+            if n == zero+               then primNatCaseZS ce e  (head (pairwiseFilter filt vs')) e'+               else primNatCaseZS ce e' (head (pairwiseFilter filt vs )) e+        (Branch _ n vs e:Default e':_) ->+            if n == zero+               then primNatCaseZD ce e e' -- zero+               else primNatCaseZS ce e' (head (pairwiseFilter filt vs )) e -- suc+        [ Branch _ n vs e ] ->+            if n == zero+              then e+              else Let (head (pairwiseFilter filt vs)) (App "primPred" [ce]) e+        _ -> __IMPOSSIBLE__+  }+natPrimTF _ _ = __IMPOSSIBLE__++-- | Corresponds to a case for natural numbers+primNatCaseZS :: Expr -- ^ Expression that is cased on+              -> Expr -- ^ Expression for the zero branch+              -> Var  -- ^ Variable that is bound in suc branch+              -> Expr -- ^ Expression used for suc branch+              -> Expr -- ^ Result?+primNatCaseZS n zeroBr v sucBr =+    If (App "primNatEquality" [n, Var "primZero"]) zeroBr (Let v (App "primPred" [n]) sucBr)++-- | Corresponds to a case with a zero and default branch+primNatCaseZD :: Expr -- ^ Expression that is cased on+              -> Expr -- ^ Zero branch+              -> Expr -- ^ Default branch+              -> Expr -- ^ Result?+primNatCaseZD n zeroBr defBr = If (App "primNatEquality" [n, Var "primZero"]) zeroBr defBr++-- | Translation to primitive bool functions+boolPrimTF :: [QName] -> PrimTransform+boolPrimTF [true, false] = PrimTF+  { mapCon = M.fromList [(true, "primTrue"), (false, "primFalse")]+  , translateCase = \ce brs ->+    case brs of+        (Branch _ n _vs e:b':_) ->+                    (if n == true+                             then If ce e (brExpr b')+                             else If ce (brExpr b') e)+        _ -> __IMPOSSIBLE__+  }+boolPrimTF _ = __IMPOSSIBLE__++-- | Change all the primitives in the function using the PrimTransform+primFun :: MonadTCM m => [PrimTransform] -> Fun -> Compile m Fun+primFun ptfs (Fun i n c args e) =+    Fun i n c args <$> primExpr ptfs e+primFun _ e@(EpicFun {}) = return e+++-- | Change all the primitives in an expression using PrimTransform+primExpr :: MonadTCM m => [PrimTransform] -> Expr -> Compile m Expr+primExpr prim ex = case ex of+    Var{}    -> return ex+    Lit{}    -> return ex+    Lam v e1 -> Lam v <$> primExpr prim e1+    Con c n es -> case testCon prim n of+        Just pn -> do+            filt <- getIrrFilter n+            apps pn <$> mapM (primExpr prim) (pairwiseFilter filt es)+        Nothing -> Con c n <$> mapM (primExpr prim) es+    App v es   -> App v <$> mapM (primExpr prim) es+    Case e brs -> case testBranch prim brs of+       Just p  -> primExpr prim $ translateCase p e brs+       Nothing -> Case <$> primExpr prim e <*> mapM primBranch brs+    If a b c   -> If <$> primExpr prim a <*> primExpr prim b <*> primExpr prim c+    Let v e e' -> Let v <$> primExpr prim e <*> primExpr prim e'+    Lazy e     -> Lazy <$> primExpr prim e+    UNIT       -> return ex+    IMPOSSIBLE -> return ex+  where+    -- | Test if any PrimTransform have any primitive function for+    --   a constructor, gives the name of that primitive function in that+    --   case, otherwise Nothing.+    testCon :: [PrimTransform] -> QName -> Maybe Var+    testCon [] _ = Nothing+    testCon (p : ps) k = M.lookup k (mapCon p) `mplus` testCon ps k++    -- | Test if we should transform the case, based on the branches. Returns+    --   the (first) PrimTransform that is applicable.+    testBranch :: [PrimTransform] -> [Branch] -> Maybe PrimTransform+    testBranch [] _       = Nothing+    testBranch (p:ps) brs = msum (map (check p) brs) `mplus` testBranch ps brs++    -- | Check if a particular PrimTransform can be used on a particular Branch+    --   Returns the PrimTransform in that case.+    check :: PrimTransform -> Branch -> Maybe PrimTransform+    check p br = case br of+        Branch  _ n _ _ -> fmap (const p) $ M.lookup n (mapCon p)+        BrInt _ _       -> Nothing+        Default _       -> Nothing++    -- | Change all primitives in a branch+    primBranch :: MonadTCM m => Branch -> Compile m Branch+    primBranch br = do+        e' <- primExpr prim (brExpr br)+        return br {brExpr = e'}
src/full/Agda/Compiler/MAlonzo/Compiler.hs view
@@ -10,7 +10,9 @@ import Data.List as L import Data.Map as M import Data.Set as S-import Language.Haskell.Syntax+import qualified Language.Haskell.Exts.Extension as HS+import qualified Language.Haskell.Exts.Parser as HS+import qualified Language.Haskell.Exts.Syntax as HS import System.Cmd import System.Directory import System.Exit@@ -62,6 +64,7 @@      ignoreAbstractMode $ do       mapM_ (compile . miInterface) =<< (M.elems <$> getVisitedModules)+      writeModule rteModule       callGHC mainI  compile :: Interface -> TCM ()@@ -70,13 +73,13 @@   ifM uptodate noComp $ (yesComp >>) $ do     writeModule =<< decl <$> curHsMod <*> (definitions =<< curDefs) <*> imports   where-  decl mn ds imp = HsModule dummy mn Nothing imp ds-  uptodate = liftIO =<< (isNewerThan <$> outFile <*> ifile)+  decl mn ds imp = HS.Module dummy mn [] Nothing Nothing imp ds+  uptodate = liftIO =<< (isNewerThan <$> outFile_ <*> ifile)   ifile    = maybe __IMPOSSIBLE__ filePath <$>                (findInterfaceFile . toTopLevelModuleName =<< curMName)   noComp   = reportSLn "" 1 . (++ " : no compilation is needed.").show =<< curMName   yesComp  = reportSLn "" 1 . (`repl` "Compiling <<0>> in <<1>> to <<2>>") =<<-             sequence [show <$> curMName, ifile, outFile] :: TCM ()+             sequence [show <$> curMName, ifile, outFile_] :: TCM ()  -------------------------------------------------- -- imported modules@@ -84,14 +87,14 @@ --   accumulating in it what are acutally used in Misc.xqual -------------------------------------------------- -imports :: TCM [HsImportDecl]+imports :: TCM [HS.ImportDecl] imports = (++) <$> hsImps <*> imps where   hsImps = (L.map decl . S.toList .-            S.insert unsafeCoerceMod . S.map Module) <$>+            S.insert mazRTE . S.map HS.ModuleName) <$>              getHaskellImports   imps   = L.map decl . uniq <$>              ((++) <$> importsForPrim <*> (L.map mazMod <$> mnames))-  decl m = HsImportDecl dummy m True Nothing Nothing+  decl m = HS.ImportDecl dummy m True False Nothing Nothing Nothing   mnames = (++) <$> (S.elems <$> gets stImportedModules)                 <*> (iImportedModules <$> curIF)   uniq   = L.map head . group . L.sort@@ -100,7 +103,7 @@ -- Main compiling clauses -------------------------------------------------- -definitions :: Definitions -> TCM [HsDecl]+definitions :: Definitions -> TCM [HS.Decl] definitions defs = do   kit <- coinductionKit   M.fold (liftM2 (++) . (definition kit <.> instantiateFull))@@ -120,38 +123,52 @@ --   flat _ _ x = x -- @ -definition :: Maybe CoinductionKit -> Definition -> TCM [HsDecl]-definition kit (Defn q ty _ _ d) = do+definition :: Maybe CoinductionKit -> Definition -> TCM [HS.Decl]+-- ignore irrelevant definitions+definition kit (Defn Forced     _ _  _ _ _) = __IMPOSSIBLE__+definition kit (Defn Irrelevant _ _  _ _ _) = return []+definition kit (Defn Relevant   q ty _ _ d) = do   checkTypeOfMain q ty   (infodecl q :) <$> case d of      -- Special treatment of coinductive builtins.     Datatype{} | Just q == (nameOfInf <$> kit) -> do-      let inf = unqhname "T" q-          a   = ihname "a" 0-          b   = ihname "a" 1-      return [HsTypeDecl dummy inf [a, b] (HsTyVar b)]+      let infT = unqhname "T" q+          infV = unqhname "d" q+          a    = ihname "a" 0+          b    = ihname "a" 1+          vars = [a, b]+      return [ HS.TypeDecl dummy infT+                           (L.map HS.UnkindedVar vars)+                           (HS.TyVar b)+             , HS.FunBind [HS.Match dummy infV+                                    (L.map HS.PVar vars) Nothing+                                    (HS.UnGuardedRhs HS.unit_con)+                                    (HS.BDecls [])]+             ]     Constructor{} | Just q == (nameOfSharp <$> kit) -> do       let sharp = unqhname "d" q           x     = ihname "x" 0       return $-        [ HsTypeSig dummy [sharp] $ fakeType $+        [ HS.TypeSig dummy [sharp] $ fakeType $             "forall a. () -> forall b. () -> b -> b"-        , HsFunBind [HsMatch dummy sharp-                             [HsPWildCard, HsPWildCard, HsPVar x]-                             (HsUnGuardedRhs (HsVar (UnQual x)))-                             []]+        , HS.FunBind [HS.Match dummy sharp+                               [HS.PWildCard, HS.PWildCard, HS.PVar x]+                               Nothing+                               (HS.UnGuardedRhs (HS.Var (HS.UnQual x)))+                               (HS.BDecls [])]         ]     Function{} | Just q == (nameOfFlat <$> kit) -> do       let flat = unqhname "d" q           x    = ihname "x" 0       return $-        [ HsTypeSig dummy [flat] $ fakeType $+        [ HS.TypeSig dummy [flat] $ fakeType $             "forall a. () -> forall b. () -> b -> b"-        , HsFunBind [HsMatch dummy flat-                             [HsPWildCard, HsPWildCard, HsPVar x]-                             (HsUnGuardedRhs (HsVar (UnQual x)))-                             []]+        , HS.FunBind [HS.Match dummy flat+                               [HS.PWildCard, HS.PWildCard, HS.PVar x]+                               Nothing+                               (HS.UnGuardedRhs (HS.Var (HS.UnQual x)))+                               (HS.BDecls [])]         ]      Axiom{ axHsDef = Just (HsDefn ty hs) } -> return $ fbWithType ty (fakeExp hs)@@ -181,37 +198,40 @@   tag _ []       = []   tag i [cl]     = (i, True , cl): []   tag i (cl:cls) = (i, False, cl): tag (i + 1) cls-  mkwhere (HsFunBind [m0, HsMatch _     dn ps rhs [] ] : fbs@(_:_)) =-          [HsFunBind [m0, HsMatch dummy dn ps rhs fbs]]+  mkwhere (HS.FunBind [m0, HS.Match _     dn ps mt rhs (HS.BDecls [])] :+           fbs@(_:_)) =+          [HS.FunBind [m0, HS.Match dummy dn ps mt rhs (HS.BDecls fbs)]]   mkwhere fbs = fbs   fbWithType ty e =-    [ HsTypeSig dummy [unqhname "d" q] $ fakeType ty ] ++ fb e-  fb e  =[HsFunBind[HsMatch dummy (unqhname "d" q)[] (HsUnGuardedRhs $ e) []]]+    [ HS.TypeSig dummy [unqhname "d" q] $ fakeType ty ] ++ fb e+  fb e  = [HS.FunBind [HS.Match dummy (unqhname "d" q) [] Nothing+                                (HS.UnGuardedRhs $ e) (HS.BDecls [])]]   axiomErr = rtmError $ "postulate evaluated: " ++ show q -checkConstructorType :: QName -> TCM [HsDecl]+checkConstructorType :: QName -> TCM [HS.Decl] checkConstructorType q = do   Constructor{ conHsCode = Just (ty, hs) } <- theDef <$> getConstInfo q-  return [ HsTypeSig dummy [unqhname "check" q] $ fakeType ty-         , HsFunBind [HsMatch dummy (unqhname "check" q) [] (HsUnGuardedRhs $ fakeExp hs) []]+  return [ HS.TypeSig dummy [unqhname "check" q] $ fakeType ty+         , HS.FunBind [HS.Match dummy (unqhname "check" q) [] Nothing+                                (HS.UnGuardedRhs $ fakeExp hs) (HS.BDecls [])]          ] -checkCover :: QName -> HaskellType -> Nat -> [QName] -> TCM [HsDecl]+checkCover :: QName -> HaskellType -> Nat -> [QName] -> TCM [HS.Decl] checkCover q ty n cs = do   let tvs = [ "a" ++ show i | i <- [1..n] ]       makeClause c = do         a <- constructorArity c         Just (_, hsc) <- conHsCode . theDef <$> getConstInfo c-        let pat = HsPApp (UnQual $ HsIdent hsc) $ genericReplicate a HsPWildCard-        return $ HsAlt dummy pat (HsUnGuardedAlt $ HsTuple []) []+        let pat = HS.PApp (HS.UnQual $ HS.Ident hsc) $ genericReplicate a HS.PWildCard+        return $ HS.Alt dummy pat (HS.UnGuardedAlt $ HS.Tuple []) (HS.BDecls [])   cs <- mapM makeClause cs   let rhs = case cs of               [] -> fakeExp "()" -- There is no empty case statement in Haskell-              _  -> HsCase (HsVar $ UnQual $ HsIdent "x") cs+              _  -> HS.Case (HS.Var $ HS.UnQual $ HS.Ident "x") cs -  return [ HsTypeSig dummy [unqhname "cover" q] $ fakeType $ unwords (ty : tvs) ++ " -> ()"-         , HsFunBind [HsMatch dummy (unqhname "cover" q) [HsPVar $ HsIdent "x"]-            (HsUnGuardedRhs rhs) []]+  return [ HS.TypeSig dummy [unqhname "cover" q] $ fakeType $ unwords (ty : tvs) ++ " -> ()"+         , HS.FunBind [HS.Match dummy (unqhname "cover" q) [HS.PVar $ HS.Ident "x"]+                                Nothing (HS.UnGuardedRhs rhs) (HS.BDecls [])]          ]  -- | Move somewhere else!@@ -223,45 +243,49 @@     Constructor{ conPars = np } -> return $ arity a - np     _ -> fail $ "constructorArity: non constructor: " ++ show q -clause :: QName -> (Nat, Bool, Clause) -> TCM HsDecl+clause :: QName -> (Nat, Bool, Clause) -> TCM HS.Decl clause q (i, isLast, Clause{ clausePats = ps, clauseBody = b }) =-  HsFunBind . (: cont) <$> main where+  HS.FunBind . (: cont) <$> main where   main = match <$> argpatts ps (bvars b (0::Nat)) <*> clausebody b-  cont | isLast && any isCon ps = [match (L.map HsPVar cvs) failrhs]+  cont | isLast && any isCon ps = [match (L.map HS.PVar cvs) failrhs]        | isLast                 = []-       | otherwise              = [match (L.map HsPVar cvs) crhs]+       | otherwise              = [match (L.map HS.PVar cvs) crhs]   cvs  = L.map (ihname "v") [0 .. genericLength ps - 1]-  crhs = hsCast$ foldl HsApp (hsVarUQ $ dsubname q (i + 1)) (L.map hsVarUQ cvs)+  crhs = hsCast$ foldl HS.App (hsVarUQ $ dsubname q (i + 1)) (L.map hsVarUQ cvs)   failrhs = rtmError $ "incomplete pattern matching: " ++ show q-  match hps rhs = HsMatch dummy (dsubname q i) hps (HsUnGuardedRhs rhs) []+  match hps rhs = HS.Match dummy (dsubname q i) hps Nothing+                           (HS.UnGuardedRhs rhs) (HS.BDecls [])   bvars (Body _)          _ = []-  bvars (Bind (Abs _ b')) n = HsPVar (ihname "v" n) : bvars b' (n + 1)-  bvars (NoBind      b' ) n = HsPWildCard           : bvars b' n -- WHY NOT: bvars b' n  -- PRODDUCES head [] exception-  bvars NoBody            _ = repeat HsPWildCard -- ?+  bvars (Bind (Abs _ b')) n = HS.PVar (ihname "v" n) : bvars b' (n + 1)+  bvars (NoBind      b' ) n = HS.PWildCard           : bvars b' n -- WHY NOT: bvars b' n  -- PRODDUCES head [] exception+  bvars NoBody            _ = repeat HS.PWildCard -- ?    isCon (Arg _ _ ConP{}) = True   isCon _                = False  -- argpatts aps xs = hps -- xs is alist of haskell *variables* in form of patterns (because of wildcard)-argpatts :: [Arg Pattern] -> [HsPat] -> TCM [HsPat]+argpatts :: [Arg Pattern] -> [HS.Pat] -> TCM [HS.Pat] argpatts ps0 bvs = evalStateT (mapM pat' ps0) bvs   where   pat   (VarP _   ) = do v <- gets head; modify tail; return v-  pat   (DotP _   ) = pat (VarP dummy) -- WHY NOT: return HsPWildCard -- SEE ABOVE-  pat   (LitP l   ) = return $ HsPLit $ hslit l+  pat   (DotP _   ) = pat (VarP dummy) -- WHY NOT: return HS.PWildCard -- SEE ABOVE+  pat   (LitP l   ) = return $ HS.PLit $ hslit l   pat p@(ConP q _ ps) = do     -- Note that irr is applied once for every subpattern, so in the     -- worst case it is quadratic in the size of the pattern. I     -- suspect that this will not be a problem in practice, though.     irrefutable <- lift $ irr p     let tilde = if   tildesEnabled && irrefutable-                then HsPParen . HsPIrrPat+                then HS.PParen . HS.PIrrPat                 else id-    (tilde . HsPParen) <$>-      (HsPApp <$> lift (conhqn q) <*> mapM pat' ps)+    (tilde . HS.PParen) <$>+      (HS.PApp <$> lift (conhqn q) <*> mapM pat' ps) -  pat' = pat . unArg+  -- Andreas, 2010-09-29+  -- do not match against irrelevant stuff+  pat' (Arg _ Irrelevant _) = return $ HS.PWildCard+  pat' (Arg _ _          p) = pat p    tildesEnabled = False @@ -272,118 +296,157 @@   irr (LitP {})   = return False   irr (ConP q _ ps) =     (&&) <$> singleConstructorType q-         <*> (and <$> mapM (irr . unArg) ps)+         <*> (and <$> mapM irr' ps) -clausebody :: ClauseBody -> TCM HsExp+  -- | Irrelevant patterns are naturally irrefutable.+  irr' (Arg _ Irrelevant _) = return $ True+  irr' (Arg _ _          p) = irr p++clausebody :: ClauseBody -> TCM HS.Exp clausebody b0 = runReaderT (go b0) 0 where   go (Body   tm       ) = hsCast <$> term tm   go (Bind   (Abs _ b)) = local (1+) $ go b   go (NoBind b        ) = go b-  go NoBody             = return$ rtmError$ "Impossible Clause Body"+  go NoBody             = return $ rtmError $ "Impossible Clause Body" -term :: Term -> ReaderT Nat TCM HsExp+-- | Extract Agda term to Haskell expression.+--   Irrelevant arguments are extracted as @()@.+--   Types are extracted as @()@.+--   @DontCare@ outside of irrelevant arguments is extracted as @error@.+term :: Term -> ReaderT Nat TCM HS.Exp term tm0 = case tm0 of   Var   i as -> do n <- ask; apps (hsVarUQ $ ihname "v" (n - i - 1)) as-  Lam   _ at -> do n <- ask; HsLambda dummy [HsPVar $ ihname "v" n] <$>+  Lam   _ at -> do n <- ask; HS.Lambda dummy [HS.PVar $ ihname "v" n] <$>                               local (1+) (term $ absBody at)   Lit   l    -> lift $ literal l-  Def   q as -> (`apps` as) . HsVar =<< lift (xhqn "d" q)-  Con   q as -> (`apps` as) . HsCon =<< lift (conhqn q)-  Pi    _ _  -> return unit_con-  Fun   _ _  -> return unit_con-  Sort  _    -> return unit_con+  Def   q as -> (`apps` as) . HS.Var =<< lift (xhqn "d" q)+  Con   q as -> (`apps` as) . HS.Con =<< lift (conhqn q)+  Pi    _ _  -> return HS.unit_con+  Fun   _ _  -> return HS.unit_con+  Sort  _    -> return HS.unit_con   MetaV _ _  -> mazerror "hit MetaV"-  DontCare   -> return unit_con-  where apps =  foldM (\h a -> HsApp h <$> term (unArg a))+  DontCare   -> return $ rtmError $ "hit DontCare"+  where apps =  foldM (\h a -> HS.App h <$> term' a) -literal :: Literal -> TCM HsExp+-- | Irrelevant arguments are replaced by Haskells' ().+term' :: Arg Term -> ReaderT Nat TCM HS.Exp+term' (Arg _ Irrelevant _) = return HS.unit_con+term' (Arg _ _          t) = term t++literal :: Literal -> TCM HS.Exp literal l = case l of   LitInt    _ _   -> do toN <- bltQual "NATURAL" mazIntegerToNat-                        return $ HsVar toN `HsApp` typed "Integer"+                        return $ HS.Var toN `HS.App` typed "Integer"   LitFloat  _ _   -> return $ typed "Double"   _               -> return $ l'-  where l'    = HsLit $ hslit l-        typed = HsExpTypeSig dummy l' . HsQualType [] . HsTyCon . rtmQual+  where l'    = HS.Lit $ hslit l+        typed = HS.ExpTypeSig dummy l' . HS.TyCon . rtmQual -hslit :: Literal -> HsLiteral-hslit l = case l of LitInt    _ x -> HsInt    x-                    LitLevel  _ x -> HsInt    x-                    LitFloat  _ x -> HsFrac   (toRational x)-                    LitString _ x -> HsString x-                    LitChar   _ x -> HsChar   x-                    LitQName  _ x -> HsString (show x)+hslit :: Literal -> HS.Literal+hslit l = case l of LitInt    _ x -> HS.Int    x+                    LitLevel  _ x -> HS.Int    x+                    LitFloat  _ x -> HS.Frac   (toRational x)+                    LitString _ x -> HS.String x+                    LitChar   _ x -> HS.Char   x+                    LitQName  _ x -> HS.String (show x) -condecl :: QName -> TCM (Nat, HsConDecl)+condecl :: QName -> TCM (Nat, HS.ConDecl) condecl q = getConstInfo q >>= \d -> case d of-  Defn _ ty _ _ (Constructor {conPars = np}) -> do ar <- arity <$> normalise ty-                                                   return $ (ar, cdecl q (ar - np))+  Defn _ _ ty _ _ (Constructor {conPars = np}) -> do+    ar <- arity <$> normalise ty+    return $ (ar, cdecl q (ar - np))   _ -> mazerror $ "condecl:" ++ gshow' (q, d) -cdecl :: QName -> Nat -> HsConDecl-cdecl q n = HsConDecl dummy (unqhname "C" q)-            [ HsUnBangedTy $ HsTyVar $ ihname "a" i | i <- [0 .. n - 1]]+cdecl :: QName -> Nat -> HS.ConDecl+cdecl q n = HS.ConDecl (unqhname "C" q)+            [ HS.UnBangedTy $ HS.TyVar $ ihname "a" i | i <- [0 .. n - 1]]  tvaldecl :: QName          -> Induction             -- ^ Is the type inductive or coinductive?-         -> Nat -> Nat -> [HsConDecl] -> Maybe Clause -> [HsDecl]+         -> Nat -> Nat -> [HS.ConDecl] -> Maybe Clause -> [HS.Decl] tvaldecl q ind ntv npar cds cl =-  HsFunBind [HsMatch dummy vn pvs (HsUnGuardedRhs unit_con) []] :-  maybe [datatype] (const []) cl+  HS.FunBind [HS.Match dummy vn pvs Nothing+                       (HS.UnGuardedRhs HS.unit_con) (HS.BDecls [])] :+  maybe [HS.DataDecl dummy kind [] tn tvs+                     (L.map (HS.QualConDecl dummy [] []) cds) []]+        (const []) cl   where   (tn, vn) = (unqhname "T" q, unqhname "d" q)-  tvs = [          ihname "a" i | i <- [0 .. ntv  - 1]]-  pvs = [ HsPVar $ ihname "a" i | i <- [0 .. npar - 1]]+  tvs = [ HS.UnkindedVar $ ihname "a" i | i <- [0 .. ntv  - 1]]+  pvs = [ HS.PVar        $ ihname "a" i | i <- [0 .. npar - 1]]    -- Inductive data types consisting of a single constructor with a   -- single argument are translated into newtypes.-  datatype = case (ind, cds) of-    (Inductive, [c@(HsConDecl _ _ [_])]) -> newtyp c-    (Inductive, [c@(HsRecDecl _ _ [_])]) -> newtyp c-    _                                    -> datatyp--  newtyp c = HsNewTypeDecl dummy [] tn tvs c   []-  datatyp  = HsDataDecl    dummy [] tn tvs cds []+  kind = case (ind, cds) of+    (Inductive, [HS.ConDecl _ [_]]) -> HS.NewType+    (Inductive, [HS.RecDecl _ [_]]) -> HS.NewType+    _                               -> HS.DataType -infodecl :: QName -> HsDecl+infodecl :: QName -> HS.Decl infodecl q = fakeD (unqhname "name" q) $ show (show q)  -------------------------------------------------- -- Inserting unsafeCoerce -------------------------------------------------- -hsCast :: HsExp -> HsExp+hsCast :: HS.Exp -> HS.Exp {- hsCast = addcast . go where-  addcast [e@(HsVar(UnQual(HsIdent(c:ns))))] | c == 'v' && all isDigit ns = e-  addcast es = foldl HsApp mazCoerce es+  addcast [e@(HS.Var(HS.UnQual(HS.Ident(c:ns))))] | c == 'v' && all isDigit ns = e+  addcast es = foldl HS.App mazCoerce es   -- this need to be extended if you generate other kinds of exps.-  go (HsApp e1 e2    ) = go e1 ++ [hsCast e2]-  go (HsLambda _ ps e) = [ HsLambda dummy ps (hsCast e) ]+  go (HS.App e1 e2    ) = go e1 ++ [hsCast e2]+  go (HS.Lambda _ ps e) = [ HS.Lambda dummy ps (hsCast e) ]   go e = [e] -} -hsCast e = mazCoerce `HsApp` hsCast' e-hsCast' (HsApp e1 e2)     = hsCast' e1 `HsApp` (mazCoerce `HsApp` hsCast' e2)-hsCast' (HsLambda _ ps e) = HsLambda dummy ps $ hsCast' e+hsCast e = mazCoerce `HS.App` hsCast' e+hsCast' (HS.App e1 e2)     = hsCast' e1 `HS.App` (hsCoerce $ hsCast' e2)+hsCast' (HS.Lambda _ ps e) = HS.Lambda dummy ps $ hsCast' e hsCast' e = e +-- No coercion for literal integers+hsCoerce e@(HS.ExpTypeSig _ (HS.Lit (HS.Int{})) _) = e+hsCoerce e = HS.App mazCoerce e++ -------------------------------------------------- -- Writing out a haskell module -------------------------------------------------- -writeModule :: HsModule -> TCM ()-writeModule m =+writeModule :: HS.Module -> TCM ()+writeModule (HS.Module l m ps w ex imp ds) = do   -- Note that GHC assumes that sources use ASCII or UTF-8.-  liftIO . (`UTF8.writeFile` (preamble ++ prettyPrint m)) =<< outFile+  out <- outFile m+  liftIO $ UTF8.writeFile out $ prettyPrint $+    HS.Module l m (p : ps) w ex imp ds   where-  preamble = unlines $ [ "{-# LANGUAGE EmptyDataDecls"-                       , "           , ExistentialQuantification"-                       , "           , ScopedTypeVariables"-                       , "           , NoMonomorphismRestriction"-                       , "  #-}"-                       ]+  p = HS.LanguagePragma dummy $ L.map HS.Ident $+        [ "EmptyDataDecls"+        , "ExistentialQuantification"+        , "ScopedTypeVariables"+        , "NoMonomorphismRestriction"+        ] +rteModule :: HS.Module+rteModule = ok $ parse $ unlines+  [ "module " ++ prettyPrint mazRTE ++ " where"+  , "import Unsafe.Coerce"+  , ""+  , "-- Special version of coerce that plays well with rules."+  , "{-# INLINE [1] mazCoerce #-}"+  , "mazCoerce = Unsafe.Coerce.unsafeCoerce"+  , "{-# RULES \"coerce-id\" forall (x :: a) . mazCoerce x = x #-}"+  ]+  where+    parse = HS.parseWithMode+              HS.defaultParseMode{HS.extensions = [HS.ExplicitForall]}++    ok (HS.ParseOk d)   = d+    ok HS.ParseFailed{} = __IMPOSSIBLE__++ compileDir :: TCM FilePath compileDir = do   mdir <- optCompileDir <$> commandLineOptions@@ -391,10 +454,10 @@     Just dir -> return dir     Nothing  -> __IMPOSSIBLE__ -outFile' = do+outFile' m = do   mdir <- compileDir-  (fdir, fn) <- splitFileName . repldot pathSeparator .-                prettyPrint <$> curHsMod+  let (fdir, fn) = splitFileName $ repldot pathSeparator $+                   prettyPrint m   let dir = mdir </> fdir       fp  = dir </> replaceExtension fn "hs"   liftIO $ createDirectoryIfMissing True dir@@ -402,9 +465,12 @@   where   repldot c = L.map (\c' -> if c' == '.' then c else c') -outFile :: TCM FilePath-outFile = snd <$> outFile'+outFile :: HS.ModuleName -> TCM FilePath+outFile m = snd <$> outFile' m +outFile_ :: TCM FilePath+outFile_ = outFile =<< curHsMod+ callGHC :: Interface -> TCM () callGHC i = do   setInterface i@@ -414,7 +480,7 @@   let outputName = case agdaMod of         [] -> __IMPOSSIBLE__         ms -> last ms-  (mdir, fp) <- outFile'+  (mdir, fp) <- outFile' =<< curHsMod   opts       <- optGhcFlags <$> commandLineOptions    let overridableArgs =@@ -433,30 +499,26 @@       args     = overridableArgs ++ opts ++ otherArgs       compiler = "ghc" -  reportSLn "" 1 $ "calling: " ++ L.intercalate " " (compiler : args)-  (inn, out, err, p) <--    liftIO $ runInteractiveProcess compiler args Nothing Nothing+  -- Note: Some versions of GHC use stderr for progress reports. For+  -- those versions of GHC we don't print any progress information+  -- unless an error is encountered. -  liftIO $ do-    hClose inn-    -- The handles should be in text mode.-    hSetBinaryMode out False-    hSetBinaryMode err False+  reportSLn "" 1 $ "calling: " ++ L.intercalate " " (compiler : args)+  (_, _, err, p) <-+    liftIO $ createProcess (proc compiler args){ std_err = CreatePipe } -  -- GHC seems to use stderr for progress reports.-  s <- liftIO $ join <$> LocIO.hGetContents err <*> LocIO.hGetContents out-  reportSLn "" 1 s+  errors <- liftIO $ case err of+    Nothing  -> __IMPOSSIBLE__+    Just err -> do+      -- The handle should be in text mode.+      hSetBinaryMode err False+      liftIO $ LocIO.hGetContents err    exitcode <- liftIO $ do     -- Ensure that the output has been read before waiting for the     -- process.-    E.evaluate (length s)+    E.evaluate (length errors)     waitForProcess p   case exitcode of-    ExitFailure _ -> typeError (CompilationError s)+    ExitFailure _ -> typeError (CompilationError errors)     _             -> return ()--  where-  -- Note that this function returns s1 before inspecting its input.-  join s1 s2 =-    s1 ++ (if L.null s1 || last s1 == '\n' then "" else "\n") ++ s2
src/full/Agda/Compiler/MAlonzo/Compiler.hs-boot view
@@ -1,10 +1,10 @@ module Agda.Compiler.MAlonzo.Compiler where  import Control.Monad.Reader (ReaderT)-import Language.Haskell.Syntax (HsExp)+import qualified Language.Haskell.Exts.Syntax as HS  import Agda.Syntax.Common (Nat) import Agda.Syntax.Internal (Term) import Agda.TypeChecking.Monad (TCM) -term :: Term -> ReaderT Nat TCM HsExp+term :: Term -> ReaderT Nat TCM HS.Exp
src/full/Agda/Compiler/MAlonzo/Encode.hs view
@@ -10,7 +10,7 @@ import Data.Char import Data.Function import Data.List-import Language.Haskell.Syntax+import qualified Language.Haskell.Exts.Syntax as HS import Test.QuickCheck  import Agda.Compiler.MAlonzo.Misc@@ -38,14 +38,17 @@ -- Precondition: The input must not start or end with @.@, and no two -- @.@s may be adjacent. -encodeModuleName :: Module -> Module-encodeModuleName (Module s) = Module $ case splitUp s of-  p : ps | p == mazstr -> concat (p : map encNamePart ps)-  _                    -> s+encodeModuleName :: HS.ModuleName -> HS.ModuleName+encodeModuleName (HS.ModuleName s) = HS.ModuleName $ case splitUp s of+  ps | mazstr' `isPrefixOf` ps ->+       concat (mazstr' ++ map encNamePart (drop (length mazstr') ps))+  _                            -> s   where   -- splitUp ".apa.bepa." == [".","apa",".","bepa","."]   splitUp = groupBy ((&&) `on` (/= '.')) +  mazstr' = splitUp mazstr+   encNamePart "." = "."   encNamePart s   = ensureFirstCharLarge s ++ concatMap enc s @@ -65,13 +68,14 @@ -- generator could strengthen it.  prop_encodeModuleName_injective (M s1) (M s2) =-  if encodeModuleName (Module s1) == encodeModuleName (Module s2) then+  if encodeModuleName (HS.ModuleName s1) ==+     encodeModuleName (HS.ModuleName s2) then     s1 == s2    else     True  prop_encodeModuleName_OK (M s') =-  s ~= unM (encodeModuleName (Module s))+  s ~= unM (encodeModuleName (HS.ModuleName s))   where   s = mazstr ++ "." ++ s' @@ -82,11 +86,11 @@                               where (s1', s2') = span (/= '.') s'   _         ~= _          = False -  unM (Module s) = s+  unM (HS.ModuleName s) = s  prop_encodeModuleName_preserved (M m) =   shouldBePreserved m ==>-    encodeModuleName (Module m) == Module m+    encodeModuleName (HS.ModuleName m) == HS.ModuleName m   where   shouldBePreserved m =     not (m == mazstr || (mazstr ++ ".") `isPrefixOf` m)
src/full/Agda/Compiler/MAlonzo/Misc.hs view
@@ -9,7 +9,7 @@ import Data.Set as S import Data.Maybe import Data.Function-import Language.Haskell.Syntax+import qualified Language.Haskell.Exts.Syntax as HS import System.IO import System.Time @@ -57,7 +57,7 @@ curMName :: TCM ModuleName curMName = sigMName <$> curSig -curHsMod :: TCM Module+curHsMod :: TCM HS.ModuleName curHsMod = mazMod <$> curMName  curDefs :: TCM Definitions@@ -82,16 +82,16 @@ -- * Names coming from Haskell must always be used qualified. --   Exception: names from the Prelude. -ihname :: String -> Nat -> HsName-ihname s i = HsIdent $ s ++ show i+ihname :: String -> Nat -> HS.Name+ihname s i = HS.Ident $ s ++ show i -unqhname :: String -> QName -> HsName-unqhname s q | ("d", "main") == (s, show(qnameName q)) = HsIdent "main"+unqhname :: String -> QName -> HS.Name+unqhname s q | ("d", "main") == (s, show(qnameName q)) = HS.Ident "main"              | otherwise = ihname s (idnum $ nameId $ qnameName $ q)   where idnum (NameId x _) = fromIntegral x  -- the toplevel module containing the given one-tlmodOf :: ModuleName -> TCM Module+tlmodOf :: ModuleName -> TCM HS.ModuleName tlmodOf = fmap mazMod . tlmname  tlmname :: ModuleName -> TCM ModuleName@@ -102,76 +102,82 @@         getVisitedModules   return $ case ms of (m' : _) -> m'; _ -> __IMPOSSIBLE__ --- qualify HsName n by the module of QName q, if necessary;+-- qualify HS.Name n by the module of QName q, if necessary; -- accumulates the used module in stImportedModules at the same time.-xqual :: QName -> HsName -> TCM HsQName+xqual :: QName -> HS.Name -> TCM HS.QName xqual q n = do m1 <- tlmname (qnameModule q)                m2 <- curMName-               if m1 == m2 then return (UnQual n)-                  else addImport m1 >> return (Qual (mazMod m1) n)+               if m1 == m2 then return (HS.UnQual n)+                  else addImport m1 >> return (HS.Qual (mazMod m1) n) -xhqn :: String -> QName -> TCM HsQName+xhqn :: String -> QName -> TCM HS.QName xhqn s q = xqual q (unqhname s q)  -- always use the original name for a constructor even when it's redefined.-conhqn :: QName -> TCM HsQName+conhqn :: QName -> TCM HS.QName conhqn q = do     cq   <- canonicalName q     defn <- theDef <$> getConstInfo cq-    case defn of Constructor{conHsCode = Just (_, hs)} -> return $ UnQual $ HsIdent hs+    case defn of Constructor{conHsCode = Just (_, hs)} -> return $ HS.UnQual $ HS.Ident hs                  _                                     -> xhqn "C" cq  -- qualify name s by the module of builtin b-bltQual :: String -> String -> TCM HsQName-bltQual b s = do (Def q _) <- getBuiltin b; xqual q (HsIdent s)+bltQual :: String -> String -> TCM HS.QName+bltQual b s = do (Def q _) <- getBuiltin b; xqual q (HS.Ident s)  -- sub-naming for cascaded definitions for concsecutive clauses dsubname q i | i == 0    = unqhname "d"                     q              | otherwise = unqhname ("d_" ++ show i ++ "_") q -hsVarUQ :: HsName -> HsExp-hsVarUQ = HsVar . UnQual+hsVarUQ :: HS.Name -> HS.Exp+hsVarUQ = HS.Var . HS.UnQual  -------------------------------------------------- -- Hard coded module names -------------------------------------------------- -mazstr  = "MAlonzo"+mazstr  = "MAlonzo.Code" mazName = mkName_ dummy mazstr-mazMod' s = Module $ mazstr ++ "." ++ s-mazMod :: ModuleName -> Module+mazMod' s = HS.ModuleName $ mazstr ++ "." ++ s+mazMod :: ModuleName -> HS.ModuleName mazMod = mazMod' . show mazerror msg = error $ mazstr ++ ": " ++ msg-mazCoerce = HsVar $ Qual unsafeCoerceMod (HsIdent "unsafeCoerce")+-- mazCoerce = HS.Var $ HS.Qual unsafeCoerceMod (HS.Ident "unsafeCoerce")+mazCoerce = HS.Var $ HS.Qual mazRTE $ HS.Ident "mazCoerce" +mazRTE :: HS.ModuleName+mazRTE = HS.ModuleName "MAlonzo.RTE"+ -- for Runtime module: Not really used (Runtime modules has been abolished). rtmMod  = mazMod' "Runtime"-rtmQual = UnQual . HsIdent-rtmVar  = HsVar . rtmQual-rtmError s = rtmVar "error" `HsApp`-             (HsLit $ HsString $ "MAlonzo Runtime Error: " ++ s)+rtmQual = HS.UnQual . HS.Ident+rtmVar  = HS.Var . rtmQual+rtmError s = rtmVar "error" `HS.App`+             (HS.Lit $ HS.String $ "MAlonzo Runtime Error: " ++ s) -unsafeCoerceMod = Module "Unsafe.Coerce"+unsafeCoerceMod = HS.ModuleName "Unsafe.Coerce"  -------------------------------------------------- -- Sloppy ways to declare <name> = <string> -------------------------------------------------- -fakeD :: HsName -> String -> HsDecl-fakeD v s = HsFunBind [HsMatch dummy v []-                      (HsUnGuardedRhs $ hsVarUQ $ HsIdent $ s) [] ]+fakeD :: HS.Name -> String -> HS.Decl+fakeD v s = HS.FunBind [ HS.Match dummy v [] Nothing+                           (HS.UnGuardedRhs $ hsVarUQ $ HS.Ident $ s)+                           (HS.BDecls [])+                       ] -fakeDS :: String -> String -> HsDecl-fakeDS = fakeD . HsIdent+fakeDS :: String -> String -> HS.Decl+fakeDS = fakeD . HS.Ident -fakeDQ :: QName -> String -> HsDecl+fakeDQ :: QName -> String -> HS.Decl fakeDQ = fakeD . unqhname "d" -fakeType :: String -> HsQualType-fakeType = HsQualType [] . HsTyVar . HsIdent+fakeType :: String -> HS.Type+fakeType = HS.TyVar . HS.Ident -fakeExp :: String -> HsExp-fakeExp = HsVar . UnQual . HsIdent+fakeExp :: String -> HS.Exp+fakeExp = HS.Var . HS.UnQual . HS.Ident  dummy :: a dummy = error "MAlonzo : this dummy value should not have been eval'ed."@@ -198,5 +204,3 @@          `extQ` (gshow' . M.toList :: M.Map TermHead [Arg Pattern] -> String)          `extQ` (gshow' . M.toList :: M.Map String (Builtin String) -> String)          `extQ` (show :: Scope -> String)--
src/full/Agda/Compiler/MAlonzo/Pretty.hs view
@@ -5,8 +5,7 @@ module Agda.Compiler.MAlonzo.Pretty where  import Data.Generics-import qualified Language.Haskell.Pretty as Pretty-import Language.Haskell.Syntax+import qualified Language.Haskell.Exts.Pretty as Pretty  import Agda.Compiler.MAlonzo.Encode @@ -15,10 +14,4 @@  prettyPrint :: (Pretty.Pretty a, Data a) => a -> String prettyPrint = Pretty.prettyPrint .-              everywhere (mkT bracket) .               everywhere (mkT encodeModuleName)-  where-  -- Workaround for GHC bug #4284.-  bracket :: HsExp -> HsExp-  bracket e@(HsVar _) = e-  bracket e           = HsParen e
src/full/Agda/Compiler/MAlonzo/Primitives.hs view
@@ -1,240 +1,244 @@-module Agda.Compiler.MAlonzo.Primitives where
-
-import Control.Monad.Reader
-import Control.Monad.State
-import Data.Char
-import Data.List as L
-import Data.Map as M
-import Language.Haskell.Syntax
-
-import {-# SOURCE #-} Agda.Compiler.MAlonzo.Compiler (term)
-import Agda.Compiler.MAlonzo.Misc
-import Agda.Compiler.MAlonzo.Pretty
-import Agda.Syntax.Common
-import Agda.Syntax.Internal
-import Agda.TypeChecking.Monad
-import Agda.TypeChecking.Monad.Builtin
-import Agda.TypeChecking.Reduce
-import Agda.TypeChecking.Substitute
-import Agda.TypeChecking.Pretty
-import Agda.Utils.Monad
-
--- | Check that the main function has type IO a, for some a.
-checkTypeOfMain :: QName -> Type -> TCM ()
-checkTypeOfMain q ty
-  | show (qnameName q) /= "main" = return ()
-  | otherwise = do
-    Def io [] <- primIO
-    ty <- normalise ty
-    case unEl ty of
-      Def d _ | d == io -> return ()
-      _                 -> do
-        err <- fsep $
-          pwords "The type of main should be" ++
-          [prettyTCM io] ++ pwords " A, for some A. The given type is" ++ [prettyTCM ty]
-        typeError $ GenericError $ show err
-
--- Haskell modules to be imported for BUILT-INs
-importsForPrim :: TCM [Module]
-importsForPrim = xForPrim $ L.map (\(s, ms)-> (s, return (L.map Module ms))) $
-  [ "CHAR" |-> ["Data.Char"]
-  -- , "IO" |-> ["System.IO"]
-  ]
-  where (|->) = (,)
-
-
--- Declarations of helper functions for BUILT-INs
-declsForPrim :: TCM [HsDecl]
-declsForPrim = xForPrim $
-  [ "NATURAL" |-> (++) <$> natToFrom "Integer" mazNatToInteger mazIntegerToNat
-                       <*> natToFrom "Int"     mazNatToInt     mazIntToNat
-  , "LIST"   |-> forList mazListToHList mazHListToList
-  , "STRING" |-> forList mazListToString mazStringToList
-  , "BOOL"   |-> decls ["TRUE", "FALSE"]
-       mazBoolToHBool "let { f <<0>> = True; f <<1>> = False; } in f"
-       mazHBoolToBool "let { f True = <<0>>; f False = <<1>>; } in f"
-  , "CHAR"   |-> return
-                 [ fakeDS mazCharToInteger
-                   "(fromIntegral . Data.Char.ord :: Char -> Integer)"
-                 ]
-  ]
-  where
-    infix 1 |->
-    (|->) = (,)
-    forList toH toA = decls ["NIL", "CONS"]
-       toH (concat
-           ["let { f <<0>>        = [];"
-           ,"      f (<<1>> x xs) = x : f (Unsafe.Coerce.unsafeCoerce xs)"
-           ,"} in f"])
-       toA (concat
-           ["let { f []     = <<0>>;"
-           ,"      f (c:cs) = <<1>> c (Unsafe.Coerce.unsafeCoerce (f cs));"
-           ,"} in f"])
-    natToFrom hty to from = let
-        totxt   = repl ["<<0>>", "<<1>>", hty] (concat
-                       ["let { f <<0>>     = 0 :: <<2>>;"
-                       ,"      f (<<1>> x) = 1 + f (Unsafe.Coerce.unsafeCoerce x);"
-                       ,"} in f"])
-        fromtxt = repl ["<<0>>", "<<1>>", hty] (concat
-                       ["let { f x | x <= (0 :: <<2>>) = <<0>>"
-                       ,"     | True = <<1>> (Unsafe.Coerce.unsafeCoerce (f (x - 1)))"
-                       ,"} in f"])
-      in decls ["ZERO", "SUC"] to totxt from fromtxt
-    decls cs n1 b1 n2 b2 =
-      ifM (hasCompiledData cs)
-          (return $ L.map (`fakeDS` "id") [n1, n2])
-        $ do cs' <- mapM pconName cs
-             return $ zipWith (\ n -> fakeDS n . repl cs') [n1, n2] [b1, b2]
-
-mazNatToInteger  = "mazNatToInteger"
-mazIntegerToNat  = "mazIntegerToNat"
-mazNatToInt      = "mazNatToInt"
-mazIntToNat      = "mazIntToNat"
-mazCharToInteger = "mazCharToInteger"
-mazListToHList   = "mazListToHList"
-mazHListToList   = "mazHListToList"
-mazListToString  = "mazListToString"
-mazStringToList  = "mazStringToList"
-mazBoolToHBool   = "mazBoolToHBool"
-mazHBoolToBool   = "mazHBoolToBool"
-
---------------
-
-xForPrim :: [(String, TCM [a])] -> TCM [a]
-xForPrim table = do
-  qs <- keys   <$> curDefs
-  bs <- toList <$> gets stBuiltinThings
-  concat <$> sequence [ maybe (return []) id $ L.lookup s table
-                        | (s, Builtin (Def q _)) <- bs, q `elem` qs ]
-
-
--- Definition bodies for primitive functions
-primBody :: String -> TCM HsExp
-primBody s = maybe unimplemented (either (hsVarUQ . HsIdent) id <$>) $
-             L.lookup s $
-  [
-  -- Integer functions
-    "primIntegerPlus"    |-> binAsis "(+)" "Integer"
-  , "primIntegerMinus"   |-> binAsis "(-)" "Integer"
-  , "primIntegerTimes"   |-> binAsis "(*)" "Integer"
-  , "primIntegerDiv"     |-> binAsis "div" "Integer"
-  , "primIntegerMod"     |-> binAsis "mod" "Integer"
-  , "primIntegerEquality"|-> rel "(==)" "Integer"
-  , "primIntegerLess"    |-> rel "(<)"  "Integer"
-  , "primIntegerAbs"     |-> do toN <- bltQual' "NATURAL" mazIntegerToNat
-                                return $ repl [toN] $ "\\ x -> <<0>> (abs x)"
-  , "primNatToInteger"   |-> bltQual' "NATURAL" mazNatToInteger
-  , "primShowInteger"    |-> return "(show :: Integer -> String)"
-
-  -- Natural number functions
-  , "primNatPlus"     |-> binNat "(+)"
-  , "primNatMinus"    |-> binNat "(-)"
-  , "primNatTimes"    |-> binNat "(*)"
-  , "primNatDivSuc"   |-> binNat "(\\ x y -> div x (y + 1))"
-  , "primNatModSuc"   |-> binNat "(\\ x y -> mod x (y + 1))"
-  , "primNatEquality" |-> relNat "(==)"
-  , "primNatLess"     |-> relNat "(<)"
-
-  -- Floating point functions
-  , "primIntegerToFloat"    |-> return "(fromIntegral :: Integer -> Double)"
-  , "primFloatPlus"	    |-> return "((+) :: Double -> Double -> Double)"
-  , "primFloatMinus"	    |-> return "((-) :: Double -> Double -> Double)"
-  , "primFloatTimes"	    |-> return "((*) :: Double -> Double -> Double)"
-  , "primFloatDiv"	    |-> return "((/) :: Double -> Double -> Double)"
-  , "primFloatLess"         |-> rel "(<)" "Double"
-  , "primRound"	            |-> return "(round :: Double -> Integer)"
-  , "primFloor"	            |-> return "(floor :: Double -> Integer)"
-  , "primCeiling"	    |-> return "(ceiling :: Double -> Integer)"
-  , "primExp"		    |-> return "(exp :: Double -> Double)"
-  , "primLog"		    |-> return "(log :: Double -> Double)"  -- partial
-  , "primSin"		    |-> return "(sin :: Double -> Double)"
-  , "primShowFloat"	    |-> return "(show :: Double -> String)"
-  , "primRound"             |-> return "(round :: Double -> Integer)"
-
-  -- Character functions
-  , "primCharEquality"   |-> rel "(==)" "Char"
-  , "primIsLower"        |-> pred "Data.Char.isLower"
-  , "primIsDigit"        |-> pred "Data.Char.isDigit"
-  , "primIsAlpha"        |-> pred "Data.Char.isAlpha"
-  , "primIsSpace"        |-> pred "Data.Char.isSpace"
-  , "primIsAscii"        |-> pred "Data.Char.isAscii"
-  , "primIsLatin1"       |-> pred "Data.Char.isLatin1"
-  , "primIsPrint"        |-> pred "Data.Char.isPrint"
-  , "primIsHExDigit"     |-> pred "Data.Char.isHexDigit"
-  , "primToUpper"        |-> return "Data.Char.toUpper"
-  , "primToLower"        |-> return "Data.Char.toLower"
-  , "primCharToNat" |-> do toN <- bltQual' "NATURAL" mazIntToNat
-                           return $ repl [toN] $
-                            "(\\ x -> <<0>> ((fromEnum :: Char -> Int) x))"
-  , "primNatToChar" |-> do toI <- bltQual' "NATURAL" mazNatToInt
-                           return $ repl[toI] $
-                            "(\\ x -> (toEnum :: Int -> Char) (<<0>> x))"
-  , "primShowChar"  |-> return "(show :: Char -> String)"
-
-  -- String functions
-  , "primStringToList"   |-> bltQual' "STRING" mazStringToList
-  , "primStringFromList" |-> bltQual' "STRING" mazListToString
-  , "primStringAppend"   |-> binAsis "(++)" "String"
-  , "primStringEquality" |-> rel "(==)" "String"
-  , "primShowString"     |-> return "(show :: String -> String)"
-
-  -- QNames
-  , "primQNameEquality" |-> rel "(==)" "String"
-
-  -- Trust me
-  , ("primTrustMe"       , Right <$> do
-       refl <- primRefl
-       flip runReaderT 0 $
-         term $ lam "A" (lam "x" (lam "y" refl)))
-  ]
-  where
-  x |-> s = (x, Left <$> s)
-  bin blt op ty from to = do
-    from' <- bltQual' blt from
-    to'   <- bltQual' blt to
-    return $ repl [op, opty ty, from', to'] $
-               "\\ x y -> <<3>> ((<<0>> :: <<1>>) (<<2>> x) (<<2>> y))"
-  binNat op = bin "NATURAL" op "Integer" mazNatToInteger mazIntegerToNat
-  binAsis op ty = return $ repl [op, opty ty] $ "((<<0>>) :: <<1>>)"
-  rel' toTy op ty = do
-    toHB <- bltQual' "BOOL" mazHBoolToBool
-    return $ repl [op, ty, toHB, toTy] $
-      "(\\ x y -> <<2>> ((<<0>> :: <<1>> -> <<1>> -> Bool) (<<3>> x) (<<3>> y)))"
-  relNat op = do toHI <- bltQual' "NATURAL" mazNatToInteger
-                 rel' toHI op "Integer"
-  rel op ty  = rel' "" op ty
-  pred p = do toHB <- bltQual' "BOOL" mazHBoolToBool
-              return $ repl [p, toHB] $ "(\\ x -> <<1>> (<<0>> x))"
-  opty t = t ++ "->" ++ t ++ "->" ++ t
-  unimplemented = typeError $ NotImplemented s
-
-  lam x t = Lam Hidden (Abs x t)
-  var x   = Arg Hidden Relevant (Var x [])
-
-----------------------
-
-repl subs = go where
-  go ('<':'<':c:'>':'>':s) | 0 <= i && i < length subs = subs !! i ++ go s
-     where i = ord c - ord '0'
-  go (c:s) = c : go s
-  go []    = []
-
-pconName :: String -> TCM String
-pconName s = toS =<< getBuiltin s where
-  toS (Con q _)         = prettyPrint <$> conhqn q
-  toS (Lam _ (Abs _ t)) = toS t
-  toS _ = mazerror $ "pconName" ++ s
-
-hasCompiledData :: [String] -> TCM Bool
-hasCompiledData (s:_) = toB =<< getBuiltin s where
-  toB (Con q _)         = do
-    def <- getConstInfo =<< ignoreAbstractMode (canonicalName q)
-    return $ case theDef def of Constructor{conHsCode = Just _} -> True
-                                _                               -> False
-  toB (Lam _ (Abs _ t)) = toB t
-  toB _                 = return False
-hasCompiledData _    = return False
-
-
-bltQual' b s = prettyPrint <$> bltQual b s
-
+module Agda.Compiler.MAlonzo.Primitives where++import Control.Monad.Reader+import Control.Monad.State+import Data.Char+import Data.List as L+import Data.Map as M+import qualified Language.Haskell.Exts.Syntax as HS++import {-# SOURCE #-} Agda.Compiler.MAlonzo.Compiler (term)+import Agda.Compiler.MAlonzo.Misc+import Agda.Compiler.MAlonzo.Pretty+import Agda.Syntax.Common+import Agda.Syntax.Internal+import Agda.TypeChecking.Monad+import Agda.TypeChecking.Monad.Builtin+import Agda.TypeChecking.Reduce+import Agda.TypeChecking.Substitute+import Agda.TypeChecking.Pretty+import Agda.Utils.Monad++-- | Check that the main function has type IO a, for some a.+checkTypeOfMain :: QName -> Type -> TCM ()+checkTypeOfMain q ty+  | show (qnameName q) /= "main" = return ()+  | otherwise = do+    Def io [] <- primIO+    ty <- normalise ty+    case unEl ty of+      Def d _ | d == io -> return ()+      _                 -> do+        err <- fsep $+          pwords "The type of main should be" +++          [prettyTCM io] ++ pwords " A, for some A. The given type is" ++ [prettyTCM ty]+        typeError $ GenericError $ show err++-- Haskell modules to be imported for BUILT-INs+importsForPrim :: TCM [HS.ModuleName]+importsForPrim =+  xForPrim $+  L.map (\(s, ms) -> (s, return (L.map HS.ModuleName ms))) $+  [ "CHAR" |-> ["Data.Char"]+  -- , "IO" |-> ["System.IO"]+  ]+  where (|->) = (,)++-- Declarations of helper functions for BUILT-INs+declsForPrim :: TCM [HS.Decl]+declsForPrim = xForPrim $+  [ "NATURAL" |-> (++) <$> natToFrom "Integer" mazNatToInteger mazIntegerToNat+                       <*> natToFrom "Int"     mazNatToInt     mazIntToNat+  , "LIST"   |-> forList mazListToHList mazHListToList+  , "STRING" |-> forList mazListToString mazStringToList+  , "BOOL"   |-> decls ["TRUE", "FALSE"]+       mazBoolToHBool "let { f <<0>> = True; f <<1>> = False; } in f"+       mazHBoolToBool "let { f True = <<0>>; f False = <<1>>; } in f"+  , "CHAR"   |-> return+                 [ fakeDS mazCharToInteger+                   "(fromIntegral . Data.Char.ord :: Char -> Integer)"+                 ]+  ]+  where+    infix 1 |->+    (|->) = (,)+    forList toH toA = decls ["NIL", "CONS"]+       toH (concat+           ["let { f <<0>>        = [];"+           ,"      f (<<1>> x xs) = x : f (" ++ prettyPrint mazCoerce ++ " xs)"+           ,"} in f"])+       toA (concat+           ["let { f []     = <<0>>;"+           ,"      f (c:cs) = <<1>> c (" ++ prettyPrint mazCoerce ++ " (f cs));"+           ,"} in f"])+    natToFrom hty to from = let+        totxt   = repl ["<<0>>", "<<1>>", hty, to] $ concat+                  [ "\\ x -> case x of { <<0>> -> 0 :: <<2>>; "+                  , "<<1>> x -> 1 + (<<3>> (" ++ prettyPrint mazCoerce ++ " x)) }" ]+        fromtxt = repl ["<<0>>", "<<1>>", hty, from] $ concat+                  [ "\\ x -> if x <= (0 :: <<2>>) then <<0>> "+                  , "else <<1>> (" ++ prettyPrint mazCoerce ++ " (<<3>> (x - 1)))" ]+      in do+        ds <- decls ["ZERO", "SUC"] to totxt from fromtxt+        let rule name = HS.Rule name HS.AlwaysActive (Just [HS.RuleVar $ HS.Ident "x"])+            var = HS.Var . HS.UnQual . HS.Ident+            (%) = HS.App+        return $ [HS.RulePragmaDecl dummy+                  [ rule (to ++ "-" ++ from) (var to   % (var from % var "x")) (var "x")+                  , rule (from ++ "-" ++ to) (var from % (var to   % var "x")) (var "x")+                  ]] ++ ds+    decls cs n1 b1 n2 b2 =+      do cs' <- mapM pconName cs+         return $ zipWith (\ n -> fakeDS n . repl cs') [n1, n2] [b1, b2]++mazNatToInteger  = "mazNatToInteger"+mazIntegerToNat  = "mazIntegerToNat"+mazNatToInt      = "mazNatToInt"+mazIntToNat      = "mazIntToNat"+mazCharToInteger = "mazCharToInteger"+mazListToHList   = "mazListToHList"+mazHListToList   = "mazHListToList"+mazListToString  = "mazListToString"+mazStringToList  = "mazStringToList"+mazBoolToHBool   = "mazBoolToHBool"+mazHBoolToBool   = "mazHBoolToBool"++--------------++xForPrim :: [(String, TCM [a])] -> TCM [a]+xForPrim table = do+  qs <- keys   <$> curDefs+  bs <- toList <$> gets stBuiltinThings+  concat <$> sequence [ maybe (return []) id $ L.lookup s table+                        | (s, Builtin (Def q _)) <- bs, q `elem` qs ]+++-- Definition bodies for primitive functions+primBody :: String -> TCM HS.Exp+primBody s = maybe unimplemented (either (hsVarUQ . HS.Ident) id <$>) $+             L.lookup s $+  [+  -- Integer functions+    "primIntegerPlus"    |-> binAsis "(+)" "Integer"+  , "primIntegerMinus"   |-> binAsis "(-)" "Integer"+  , "primIntegerTimes"   |-> binAsis "(*)" "Integer"+  , "primIntegerDiv"     |-> binAsis "div" "Integer"+  , "primIntegerMod"     |-> binAsis "mod" "Integer"+  , "primIntegerEquality"|-> rel "(==)" "Integer"+  , "primIntegerLess"    |-> rel "(<)"  "Integer"+  , "primIntegerAbs"     |-> do toN <- bltQual' "NATURAL" mazIntegerToNat+                                return $ repl [toN] $ "\\ x -> <<0>> (abs x)"+  , "primNatToInteger"   |-> bltQual' "NATURAL" mazNatToInteger+  , "primShowInteger"    |-> return "(show :: Integer -> String)"++  -- Natural number functions+  , "primNatPlus"     |-> binNat "(+)"+  , "primNatMinus"    |-> binNat "(-)"+  , "primNatTimes"    |-> binNat "(*)"+  , "primNatDivSuc"   |-> binNat "(\\ x y -> div x (y + 1))"+  , "primNatModSuc"   |-> binNat "(\\ x y -> mod x (y + 1))"+  , "primNatEquality" |-> relNat "(==)"+  , "primNatLess"     |-> relNat "(<)"++  -- Floating point functions+  , "primIntegerToFloat"    |-> return "(fromIntegral :: Integer -> Double)"+  , "primFloatPlus"	    |-> return "((+) :: Double -> Double -> Double)"+  , "primFloatMinus"	    |-> return "((-) :: Double -> Double -> Double)"+  , "primFloatTimes"	    |-> return "((*) :: Double -> Double -> Double)"+  , "primFloatDiv"	    |-> return "((/) :: Double -> Double -> Double)"+  , "primFloatLess"         |-> rel "(<)" "Double"+  , "primRound"	            |-> return "(round :: Double -> Integer)"+  , "primFloor"	            |-> return "(floor :: Double -> Integer)"+  , "primCeiling"	    |-> return "(ceiling :: Double -> Integer)"+  , "primExp"		    |-> return "(exp :: Double -> Double)"+  , "primLog"		    |-> return "(log :: Double -> Double)"  -- partial+  , "primSin"		    |-> return "(sin :: Double -> Double)"+  , "primShowFloat"	    |-> return "(show :: Double -> String)"+  , "primRound"             |-> return "(round :: Double -> Integer)"++  -- Character functions+  , "primCharEquality"   |-> rel "(==)" "Char"+  , "primIsLower"        |-> pred "Data.Char.isLower"+  , "primIsDigit"        |-> pred "Data.Char.isDigit"+  , "primIsAlpha"        |-> pred "Data.Char.isAlpha"+  , "primIsSpace"        |-> pred "Data.Char.isSpace"+  , "primIsAscii"        |-> pred "Data.Char.isAscii"+  , "primIsLatin1"       |-> pred "Data.Char.isLatin1"+  , "primIsPrint"        |-> pred "Data.Char.isPrint"+  , "primIsHExDigit"     |-> pred "Data.Char.isHexDigit"+  , "primToUpper"        |-> return "Data.Char.toUpper"+  , "primToLower"        |-> return "Data.Char.toLower"+  , "primCharToNat" |-> do toN <- bltQual' "NATURAL" mazIntToNat+                           return $ repl [toN] $+                            "(\\ x -> <<0>> ((fromEnum :: Char -> Int) x))"+  , "primNatToChar" |-> do toI <- bltQual' "NATURAL" mazNatToInt+                           return $ repl[toI] $+                            "(\\ x -> (toEnum :: Int -> Char) (<<0>> x))"+  , "primShowChar"  |-> return "(show :: Char -> String)"++  -- String functions+  , "primStringToList"   |-> bltQual' "STRING" mazStringToList+  , "primStringFromList" |-> bltQual' "STRING" mazListToString+  , "primStringAppend"   |-> binAsis "(++)" "String"+  , "primStringEquality" |-> rel "(==)" "String"+  , "primShowString"     |-> return "(show :: String -> String)"++  -- QNames+  , "primQNameEquality" |-> rel "(==)" "String"++  -- Trust me+  , ("primTrustMe"       , Right <$> do+       refl <- primRefl+       flip runReaderT 0 $+         term $ lam "A" (lam "x" (lam "y" refl)))+  ]+  where+  x |-> s = (x, Left <$> s)+  bin blt op ty from to = do+    from' <- bltQual' blt from+    to'   <- bltQual' blt to+    return $ repl [op, opty ty, from', to'] $+               "\\ x y -> <<3>> ((<<0>> :: <<1>>) (<<2>> x) (<<2>> y))"+  binNat op = bin "NATURAL" op "Integer" mazNatToInteger mazIntegerToNat+  binAsis op ty = return $ repl [op, opty ty] $ "((<<0>>) :: <<1>>)"+  rel' toTy op ty = do+    toHB <- bltQual' "BOOL" mazHBoolToBool+    return $ repl [op, ty, toHB, toTy] $+      "(\\ x y -> <<2>> ((<<0>> :: <<1>> -> <<1>> -> Bool) (<<3>> x) (<<3>> y)))"+  relNat op = do toHI <- bltQual' "NATURAL" mazNatToInteger+                 rel' toHI op "Integer"+  rel op ty  = rel' "" op ty+  pred p = do toHB <- bltQual' "BOOL" mazHBoolToBool+              return $ repl [p, toHB] $ "(\\ x -> <<1>> (<<0>> x))"+  opty t = t ++ "->" ++ t ++ "->" ++ t+  unimplemented = typeError $ NotImplemented s++  lam x t = Lam Hidden (Abs x t)+  var x   = Arg Hidden Relevant (Var x [])++----------------------++repl subs = go where+  go ('<':'<':c:'>':'>':s) | 0 <= i && i < length subs = subs !! i ++ go s+     where i = ord c - ord '0'+  go (c:s) = c : go s+  go []    = []++pconName :: String -> TCM String+pconName s = toS =<< getBuiltin s where+  toS (Con q _)         = prettyPrint <$> conhqn q+  toS (Lam _ (Abs _ t)) = toS t+  toS _ = mazerror $ "pconName" ++ s++hasCompiledData :: [String] -> TCM Bool+hasCompiledData (s:_) = toB =<< getBuiltin s where+  toB (Con q _)         = do+    def <- getConstInfo =<< ignoreAbstractMode (canonicalName q)+    return $ case theDef def of Constructor{conHsCode = Just _} -> True+                                _                               -> False+  toB (Lam _ (Abs _ t)) = toB t+  toB _                 = return False+hasCompiledData _    = return False+++bltQual' b s = prettyPrint <$> bltQual b s
+ src/full/Agda/ImpossibleTest.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE CPP #-}+module Agda.ImpossibleTest where++import Agda.Utils.Impossible++#include "undefined.h"++impossibleTest = __IMPOSSIBLE__
src/full/Agda/Interaction/BasicOps.hs view
@@ -180,7 +180,7 @@ evalInCurrent e =     do  t <- newTypeMeta_ 	v <- checkExpr e t-	v' <- etaContract =<< normalise v+	v' <- {- etaContract =<< -} normalise v 	reify v'  @@ -197,8 +197,8 @@ --rewrite :: Rewrite -> Term -> TCM Term rewrite AsIs	     t = return t rewrite Instantiated t = return t   -- reify does instantiation-rewrite HeadNormal   t = etaContract =<< reduce t-rewrite Normalised   t = etaContract =<< normalise t+rewrite HeadNormal   t = {- etaContract =<< -} reduce t+rewrite Normalised   t = {- etaContract =<< -} normalise t   data OutputForm a b@@ -517,7 +517,7 @@       let tel  = telFromList [defaultArg ("_", t)]           perm = idP 1           pat  = [defaultArg (I.VarP "c")]-      r <- split tel perm pat 0+      r <- split CoInductive tel perm pat 0       case r of         Left err -> return []         Right cs -> mapM showTCM $ concatMap (conName . scPats) cs
src/full/Agda/Interaction/CommandLine/CommandLine.hs view
@@ -305,4 +305,3 @@     [ "<exp> Infer type of expression <exp> and evaluate it." ]     where 	explain (x,_) = ":" ++ x-
src/full/Agda/Interaction/Exceptions.hs view
@@ -20,4 +20,3 @@ failOnException h m = m `catch` handleParseException handler     where 	handler x = h (getRange x) (show x)-
src/full/Agda/Interaction/GhciTop.hs view
@@ -95,6 +95,7 @@  import Agda.Termination.TermCheck +import qualified Agda.Compiler.Epic.Compiler as Epic import qualified Agda.Compiler.MAlonzo.Compiler as MAlonzo  import qualified Agda.Auto.Auto as Auto@@ -128,22 +129,32 @@ theState :: IORef State theState = unsafePerformIO $ newIORef initState +-- | Can the command run even if the relevant file has not been loaded+-- into the state?++data Independence+  = Independent (Maybe [FilePath])+    -- ^ Yes. If the argument is @'Just' is@, then @is@ is used as the+    -- command's include directories.+  | Dependent+    -- No.+ -- | An interactive computation.  data Interaction = Interaction-  { includeDirectories :: Maybe [FilePath]-    -- ^ A command is independent iff this field is @'Just' is@; @is@-    -- is used as the command's include directories.+  { independence :: Independence+    -- ^ Is the command independent?   , command :: TCM (Maybe ModuleName)     -- ^ If a module name is returned, then syntax highlighting     -- information will be written for the given module (by 'ioTCM').   } --- | Can the command run even if the relevant file has not been loaded--- into the state?+-- ^ Is the command independent?  isIndependent :: Interaction -> Bool-isIndependent = isJust . includeDirectories+isIndependent i = case independence i of+  Independent {} -> True+  Dependent   {} -> False  -- | Run a TCM computation in the current state. Should only --   be used for debugging.@@ -202,9 +213,13 @@   r <- runTCM $ catchError (do            put st            x  <- withEnv initEnv $ do-                   case includeDirectories cmd of-                     Nothing -> ensureFileLoaded current-                     Just is -> do+                   case independence cmd of+                     Dependent             -> ensureFileLoaded current+                     Independent Nothing   ->+                       -- Make sure that the include directories have+                       -- been set.+                       setCommandLineOptions =<< commandLineOptions+                     Independent (Just is) -> do                        ex <- liftIO $ doesFileExist $ filePath current                        setIncludeDirs is $                          if ex then ProjectRoot current else CurrentDir@@ -250,7 +265,7 @@    -- If an error was encountered, display an error message and exit   -- with an error code; otherwise, inform Emacs about the buffer's-  -- goals.+  -- goals (if current matches the new current file).   let errStatus = Status { sChecked               = False                          , sShowImplicitArguments =                              optShowImplicit $ stPragmaOptions st@@ -260,9 +275,13 @@     Left e              -> displayErrorAndExit errStatus (getRange e) $                              tcErrString e     Right (Right _)     -> do-      is <- theInteractionPoints <$> liftIO (readIORef theState)-      liftIO $ LocIO.putStrLn $ response $-        L [A "agda2-goals-action", Q $ L $ List.map showNumIId is]+      f <- theCurrentFile <$> readIORef theState+      case f of+        Just (f, _) | f === current -> do+          is <- theInteractionPoints <$> liftIO (readIORef theState)+          liftIO $ LocIO.putStrLn $ response $+            L [A "agda2-goals-action", Q $ L $ List.map showNumIId is]+        _ -> return ()  -- | @cmd_load m includes@ loads the module in file @m@, using -- @includes@ as the include directories.@@ -283,7 +302,7 @@           -> ((Interface, Maybe Imp.Warnings) -> TCM ())           -> Interaction cmd_load' file includes unsolvedOK cmd =-  Interaction (Just includes) $ do+  Interaction (Independent (Just includes)) $ do     -- Forget the previous "current file" and interaction points.     liftIO $ modifyIORef theState $ \s ->       s { theInteractionPoints = []@@ -331,17 +350,23 @@      return $ Just $ iModuleName (fst ok) --- | @cmd_compile m includes@ compiles the module in file @m@, using--- @includes@ as the include directories.+-- | Available backends. -cmd_compile :: FilePath -> [FilePath] -> Interaction-cmd_compile file includes =+data Backend = MAlonzo | Epic++-- | @cmd_compile b m includes@ compiles the module in file @m@ using+-- the backend @b@, using @includes@ as the include directories.++cmd_compile :: Backend -> FilePath -> [FilePath] -> Interaction+cmd_compile b file includes =   cmd_load' file includes False (\(i, mw) ->     case mw of       Nothing -> do-        MAlonzo.compilerMain i+        case b of+          MAlonzo -> MAlonzo.compilerMain i+          Epic    -> Epic.compilerMain i         display_info "*Compilation result*"-                   "The module was successfully compiled."+                     "The module was successfully compiled."       Just w ->         display_info errorTitle $ unlines           [ "You can only compile modules without unsolved metavariables"@@ -349,7 +374,7 @@           ])  cmd_constraints :: Interaction-cmd_constraints = Interaction Nothing $ do+cmd_constraints = Interaction Dependent $ do     cs <- map show <$> B.getConstraints     display_info "*Constraints*" (unlines cs)     return Nothing@@ -357,7 +382,7 @@ -- Show unsolved metas. If there are no unsolved metas but unsolved constraints -- show those instead. cmd_metas :: Interaction-cmd_metas = Interaction Nothing $ do -- CL.showMetas []+cmd_metas = Interaction Dependent $ do -- CL.showMetas []   ims <- B.typesOfVisibleMetas B.AsIs   -- Show unsolved implicit arguments normalised.   hms <- B.typesOfHiddenMetas B.Normalised@@ -398,7 +423,8 @@ cmd_refine :: GoalCommand cmd_refine = give_gen B.refine $ \_ s -> quote . show -give_gen give_ref mk_newtxt ii rng s = Interaction Nothing $ give_gen' give_ref mk_newtxt ii rng s+give_gen give_ref mk_newtxt ii rng s = Interaction Dependent $+  give_gen' give_ref mk_newtxt ii rng s  give_gen' give_ref mk_newtxt ii rng s = do   scope     <- getInteractionScope ii@@ -417,7 +443,7 @@   replace x xs ys = concatMap (\y -> if y == x then xs else [y]) ys  cmd_intro :: GoalCommand-cmd_intro ii rng _ = Interaction Nothing $ do+cmd_intro ii rng _ = Interaction Dependent $ do   ss <- B.introTactic ii   B.withInteractionId ii $ case ss of     []    -> do@@ -439,7 +465,7 @@   (if null s then cmd_intro else cmd_refine) ii rng s  cmd_auto :: GoalCommand-cmd_auto ii rng s = Interaction Nothing $ do+cmd_auto ii rng s = Interaction Dependent $ do   (res, msg) <- Auto.auto ii rng s   case res of    Left xs -> do@@ -495,19 +521,19 @@   return $ align 10 $ shuffle $ zip ns (map (text ":" <+>) es)  cmd_context :: B.Rewrite -> GoalCommand-cmd_context norm ii _ _ = Interaction Nothing $ do+cmd_context norm ii _ _ = Interaction Dependent $ do   display_infoD "*Context*" =<< prettyContext norm False ii   return Nothing  cmd_infer :: B.Rewrite -> GoalCommand-cmd_infer norm ii rng s = Interaction Nothing $ do+cmd_infer norm ii rng s = Interaction Dependent $ do   display_infoD "*Inferred Type*"     =<< B.withInteractionId ii           (prettyATop =<< B.typeInMeta ii norm =<< B.parseExprIn ii rng s)   return Nothing  cmd_goal_type :: B.Rewrite -> GoalCommand-cmd_goal_type norm ii _ _ = Interaction Nothing $ do+cmd_goal_type norm ii _ _ = Interaction Dependent $ do   s <- B.withInteractionId ii $ prettyTypeOfMeta norm ii   display_infoD "*Current Goal*" s   return Nothing@@ -528,17 +554,18 @@ -- | Displays the current goal and context.  cmd_goal_type_context :: B.Rewrite -> GoalCommand-cmd_goal_type_context norm ii rng s = Interaction Nothing $+cmd_goal_type_context norm ii rng s = Interaction Dependent $   cmd_goal_type_context_and P.empty norm ii rng s  -- | Displays the current goal and context /and/ infers the type of an -- expression.  cmd_goal_type_context_infer :: B.Rewrite -> GoalCommand-cmd_goal_type_context_infer norm ii rng s = Interaction Nothing $ do-  typ <- B.withInteractionId ii $-           prettyATop =<< B.typeInMeta ii norm =<< B.parseExprIn ii rng s-  cmd_goal_type_context_and (text "Have:" <+> typ) norm ii rng s+cmd_goal_type_context_infer norm ii rng s =+  Interaction Dependent $ do+    typ <- B.withInteractionId ii $+             prettyATop =<< B.typeInMeta ii norm =<< B.parseExprIn ii rng s+    cmd_goal_type_context_and (text "Have:" <+> typ) norm ii rng s  -- | Shows all the top-level names in the given module, along with -- their types.@@ -560,7 +587,7 @@ -- their types. Uses the scope of the given goal.  cmd_show_module_contents :: GoalCommand-cmd_show_module_contents ii rng s = Interaction Nothing $ do+cmd_show_module_contents ii rng s = Interaction Dependent $ do   B.withInteractionId ii $ showModuleContents rng s   return Nothing @@ -568,7 +595,7 @@ -- their types. Uses the top-level scope.  cmd_show_module_contents_toplevel :: String -> Interaction-cmd_show_module_contents_toplevel s = Interaction Nothing $ do+cmd_show_module_contents_toplevel s = Interaction Dependent $ do   B.atTopLevel $ showModuleContents noRange s   return Nothing @@ -694,7 +721,7 @@ nameModifiers = "" : "'" : "''" : [show i | i <-[3..]]  cmd_make_case :: GoalCommand-cmd_make_case ii rng s = Interaction Nothing $ do+cmd_make_case ii rng s = Interaction Dependent $ do   cs <- makeCase ii rng s   B.withInteractionId ii $ do     pcs <- mapM prettyA cs@@ -707,7 +734,7 @@   where render = renderStyle (style { mode = OneLineMode })  cmd_solveAll :: Interaction-cmd_solveAll = Interaction Nothing $ do+cmd_solveAll = Interaction Dependent $ do   out <- getInsts   liftIO $ LocIO.putStrLn $ response $     Cons (A "last")@@ -777,7 +804,7 @@ instance LowerMeta SC.Declaration where   lowerMeta = go where     go d = case d of-      TypeSig n e1                  -> TypeSig n (lowerMeta e1)+      TypeSig rel n e1              -> TypeSig rel n (lowerMeta e1)       SC.Field n e1                 -> SC.Field n (lowerMeta e1)       FunClause lhs rhs whcl        -> FunClause lhs (lowerMeta rhs) (lowerMeta whcl)       Data r ind n tel e1 cs        -> Data r ind n@@ -818,7 +845,7 @@  cmd_compute :: Bool -- ^ Ignore abstract?                -> GoalCommand-cmd_compute ignore ii rng s = Interaction Nothing $ do+cmd_compute ignore ii rng s = Interaction Dependent $ do   e <- B.parseExprIn ii rng s   d <- B.withInteractionId ii $ do          let c = B.evalInCurrent e@@ -839,7 +866,7 @@   -> String      -- ^ The expression to parse.   -> Interaction-parseAndDoAtToplevel cmd title s = Interaction Nothing $ do+parseAndDoAtToplevel cmd title s = Interaction Dependent $ do   e <- liftIO $ parse exprParser s   display_info title =<<     B.atTopLevel (showA =<< cmd =<< concreteToAbstract_ e)@@ -869,18 +896,25 @@ ------------------------------------------------------------------------ -- Syntax highlighting --- | @cmd_write_highlighting_info includes source target@ writes--- syntax highlighting information for the module in @source@ into--- @target@; @includes@ is the include directories. If the module does--- not exist, or its module name is malformed or cannot be determined,--- or the module has not already been visited, or the cached info is--- out of date, then the representation of \"no highlighting--- information available\" is instead written to @target@.+-- | @cmd_write_highlighting_info source target@ writes syntax+-- highlighting information for the module in @source@ into @target@.+--+-- If the module does not exist, or its module name is malformed or+-- cannot be determined, or the module has not already been visited,+-- or the cached info is out of date, then the representation of \"no+-- highlighting information available\" is instead written to+-- @target@.+--+-- This command is used to load syntax highlighting information when a+-- new file is opened, and it would probably be annoying if jumping to+-- the definition of an identifier reset the proof state, so this+-- command tries not to do that. One result of this is that the+-- command uses the current include directories, whatever they happen+-- to be. -cmd_write_highlighting_info ::-  [FilePath] -> FilePath -> FilePath -> Interaction-cmd_write_highlighting_info includes source target =-  Interaction (Just includes) $ do+cmd_write_highlighting_info :: FilePath -> FilePath -> Interaction+cmd_write_highlighting_info source target =+  Interaction (Independent Nothing) $ do     liftIO . UTF8.writeFile target . showHighlightingInfo =<< do       ex <- liftIO $ doesFileExist source       case ex of@@ -922,7 +956,7 @@  showImplicitArgs :: Bool -- ^ Show them?                  -> Interaction-showImplicitArgs showImpl = Interaction Nothing $ do+showImplicitArgs showImpl = Interaction Dependent $ do   opts <- commandLineOptions   setCommandLineOptions $     opts { optPragmaOptions =@@ -932,7 +966,7 @@ -- | Toggle display of implicit arguments.  toggleImplicitArgs :: Interaction-toggleImplicitArgs = Interaction Nothing $ do+toggleImplicitArgs = Interaction Dependent $ do   opts <- commandLineOptions   let ps = optPragmaOptions opts   setCommandLineOptions $
src/full/Agda/Interaction/Highlighting/Generate.hs view
@@ -14,6 +14,7 @@ import Agda.Interaction.Highlighting.Range   hiding (tests) import qualified Agda.TypeChecking.Errors as E import Agda.TypeChecking.MetaVars (isBlockedTerm)+import Agda.TypeChecking.Monad.Options (reportSLn) import Agda.TypeChecking.Monad   hiding (MetaInfo, Primitive, Constructor, Record, Function, Datatype) import qualified Agda.TypeChecking.Monad as M@@ -95,7 +96,10 @@                             --   along with ranges for problematic                             --   call sites.   -> TCM HighlightingInfo-generateSyntaxInfo file mErr top termErrs =+generateSyntaxInfo file mErr top termErrs = do+  reportSLn "import.iface.create" 15  $+      "Generating syntax info for " ++ filePath file ++ ' ' : maybe "(No TCErr)" (const "(with TCErr)") mErr ++ "."+   M.withScope_ (CA.insideScope top) $ M.ignoreAbstractMode $ do     modMap <- sourceToModule     tokens <- liftIO $ Pa.parseFile' Pa.tokensParser file@@ -202,14 +206,16 @@       field m n = nameToFile modMap file m n                              (\isOp -> mempty { aspect = Just $ Name (Just Field) isOp })                              Nothing-      mod n = nameToFile modMap file []-                         (A.nameConcrete n)-                         (\isOp -> mempty { aspect = Just $ Name (Just Module) isOp })-                         (Just $ A.nameBindingSite n)       asName n = nameToFile modMap file []                             n                             (\isOp -> mempty { aspect = Just $ Name (Just Module) isOp })                             Nothing+      mod isTopLevelModule n =+        nameToFile modMap file []+                   (A.nameConcrete n)+                   (\isOp -> mempty { aspect = Just $ Name (Just Module) isOp })+                   (Just $ (if isTopLevelModule then P.beginningOfFile else id)+                             (A.nameBindingSite n))        getVarAndField :: A.Expr -> File       getVarAndField (A.Var x)    = bound x@@ -217,9 +223,9 @@       getVarAndField _            = mempty        getLet :: A.LetBinding -> File-      getLet (A.LetBind _ x _ _) = bound x-      getLet A.LetApply{}        = mempty-      getLet A.LetOpen{}         = mempty+      getLet (A.LetBind _ _ x _ _) = bound x+      getLet A.LetApply{}          = mempty+      getLet A.LetOpen{}           = mempty        getLam :: A.LamBinding -> File       getLam (A.DomainFree _ x) = bound x@@ -247,8 +253,18 @@       getFieldDecl _                   = mempty        getModuleName :: A.ModuleName -> File-      getModuleName (A.MName { A.mnameToList = xs }) =-        mconcat $ map mod xs+      getModuleName m@(A.MName { A.mnameToList = xs }) =+        mconcat $ map (mod isTopLevelModule) xs+        where+        isTopLevelModule =+          case catMaybes $+               map (join .+                    fmap P.srcFile .+                    P.rStart .+                    A.nameBindingSite) xs of+            f : _ -> Map.lookup f modMap ==+                     Just (C.toTopLevelModuleName $ A.mnameToConcrete m)+            []    -> False        getModuleInfo :: SI.ModuleInfo -> File       getModuleInfo (SI.ModuleInfo { SI.minfoAsTo   = asTo@@ -289,16 +305,17 @@     dropPostulates k         _ = k    defnToNameKind :: Defn -> NameKind-  defnToNameKind (M.Axiom {})                     = Postulate-  defnToNameKind (M.Function {})                  = Function-  defnToNameKind (M.Datatype {})                  = Datatype-  defnToNameKind (M.Record {})                    = Record-  defnToNameKind (M.Constructor { M.conInd = i }) = Constructor i-  defnToNameKind (M.Primitive {})                 = Primitive+  defnToNameKind (M.Axiom {})                               = Postulate+  defnToNameKind (M.Function { M.funProjection = Nothing }) = Function+  defnToNameKind (M.Function { M.funProjection = Just _  }) = Field+  defnToNameKind (M.Datatype {})                            = Datatype+  defnToNameKind (M.Record {})                              = Record+  defnToNameKind (M.Constructor { M.conInd = i })           = Constructor i+  defnToNameKind (M.Primitive {})                           = Primitive    getAxiomName :: A.Declaration -> A.QName-  getAxiomName (A.Axiom _ q _) = q-  getAxiomName _               = __IMPOSSIBLE__+  getAxiomName (A.Axiom _ _ q _) = q+  getAxiomName _                 = __IMPOSSIBLE__    getDef :: A.Definition -> Map A.QName NameKind   getDef (A.FunDef  _ q _)       = Map.singleton q Function@@ -309,13 +326,13 @@   getDef (A.RecDef  _ q c _ _ _) = Map.singleton q Record `union`                                    case c of                                      Nothing -> Map.empty-                                     Just (A.Axiom _ q _) ->+                                     Just (A.Axiom _ _ q _) ->                                        Map.singleton q (Constructor SC.Inductive)                                      Just _ -> __IMPOSSIBLE__   getDef (A.ScopedDef {})        = Map.empty    getDecl :: A.Declaration -> Map A.QName NameKind-  getDecl (A.Axiom _ q _)     = Map.singleton q Postulate+  getDecl (A.Axiom _ _ q _)   = Map.singleton q Postulate   getDecl (A.Field _ q _)     = Map.singleton q Field   getDecl (A.Primitive _ q _) = Map.singleton q Primitive   getDecl (A.Definition {})   = Map.empty
src/full/Agda/Interaction/Highlighting/HTML.hs view
@@ -140,8 +140,10 @@ code contents info =   mconcat $   map (\(pos, s, mi) -> annotate pos mi (stringToHtml s)) $-  map (\cs@((mi, (pos, _)) : _) ->-         (pos, map (snd . snd) cs, maybe mempty id mi)) $+  map (\cs -> case cs of+          (mi, (pos, _)) : _ ->+            (pos, map (snd . snd) cs, maybe mempty id mi)+          [] -> __IMPOSSIBLE__) $   List.groupBy ((==) `on` fst) $   map (\(pos, c) -> (Map.lookup pos infoMap, (pos, c))) $   zip [1..] contents
src/full/Agda/Interaction/Imports.hs view
@@ -68,10 +68,15 @@     reportSLn "import.iface.merge" 20 $       "  Current builtins " ++ show (Map.keys bs) ++ "\n" ++       "  New builtins     " ++ show (Map.keys bi)-    case Map.toList $ Map.intersection bs bi of-      []               -> return ()-      (b, Builtin x):_ -> typeError $ DuplicateBuiltinBinding b x x-      (_, Prim{}):_    -> __IMPOSSIBLE__+    let check b = case (b1, b2) of+            (Builtin x, Builtin y)+              | x == y    -> return ()+              | otherwise -> typeError $ DuplicateBuiltinBinding b x y+            _ -> __IMPOSSIBLE__+          where+            Just b1 = Map.lookup b bs+            Just b2 = Map.lookup b bi+    mapM_ check (map fst $ Map.toList $ Map.intersection bs bi)     addImportedThings sig bi (iHaskellImports i)     reportSLn "import.iface.merge" 20 $       "  Rebinding primitives " ++ show prim@@ -211,11 +216,12 @@     reportSLn "import.iface" 10 $ "  Check for cycle"     checkForImportCycle -    uptodate <- ifM ignoreInterfaces-		    (return False)-		    (liftIO $ filePath (toIFile file)-                                `isNewerThan`-                              filePath file)+    uptodate <- do+      ignore <- ignoreInterfaces+      cached <- isCached file -- if it's cached ignoreInterfaces has no effect+                              -- to avoid typechecking a file more than once+      newer  <- liftIO $ filePath (toIFile file) `isNewerThan` filePath file+      return $ newer && (not ignore || cached)      reportSLn "import.iface" 5 $       "  " ++ render (pretty x) ++ " is " ++@@ -245,102 +251,121 @@     return (i, wt)      where-	skip file = do-	    -- Examine the mtime of the interface file. If it is newer than the-	    -- stored version (in stDecodedModules), or if there is no stored version,-	    -- read and decode it. Otherwise use the stored version.-            let ifile = filePath $ toIFile file-	    t            <- liftIO $ getModificationTime ifile-	    mm           <- getDecodedModule x-	    (cached, mi) <- case mm of-		      Just (mi, mt) ->-			 if mt < t-			 then do dropDecodedModule x-				 reportSLn "import.iface" 5 $ "  file is newer, re-reading " ++ ifile-				 (,) False <$> readInterface ifile-			 else do reportSLn "import.iface" 5 $ "  using stored version of " ++ ifile-				 return (True, Just mi)-		      Nothing ->-			 do reportSLn "import.iface" 5 $ "  no stored version, reading " ++ ifile-			    (,) False <$> readInterface ifile+      isCached file = do+        let ifile = filePath $ toIFile file+        exist <- liftIO $ doesFileExist ifile+        if not exist+          then return False+          else do+            t  <- liftIO $ getModificationTime ifile+            mm <- getDecodedModule x+            return $ case mm of+              Just (mi, mt) | mt >= t -> True+              _                       -> False -	    -- Check that it's the right version-	    case mi of-		Nothing	-> do-		    reportSLn "import.iface" 5 $ "  bad interface, re-type checking"-		    typeCheck file-		Just i	-> do+      skip file = do+        -- Examine the mtime of the interface file. If it is newer than the+        -- stored version (in stDecodedModules), or if there is no stored version,+        -- read and decode it. Otherwise use the stored version.+        let ifile = filePath $ toIFile file+        t            <- liftIO $ getModificationTime ifile+        mm           <- getDecodedModule x+        (cached, mi) <- case mm of+          Just (mi, mt) ->+            if mt < t+            then do dropDecodedModule x+                    reportSLn "import.iface" 5 $ "  file is newer, re-reading " ++ ifile+                    (,) False <$> readInterface ifile+            else do reportSLn "import.iface" 5 $ "  using stored version of " ++ ifile+                    return (True, Just mi)+          Nothing -> do+            reportSLn "import.iface" 5 $ "  no stored version, reading " ++ ifile+            (,) False <$> readInterface ifile -		    reportSLn "import.iface" 5 $ "  imports: " ++ show (iImportedModules i)+        -- Check that it's the right version+        case mi of+          Nothing	-> do+            reportSLn "import.iface" 5 $ "  bad interface, re-type checking"+            typeCheck file+          Just i	-> do -		    ts <- map snd <$> mapM getInterface (iImportedModules i)+            reportSLn "import.iface" 5 $ "  imports: " ++ show (iImportedModules i) -		    -- If any of the imports are newer we need to retype check-		    if any (> t) ts-			then do-			    -- liftIO close	-- Close the interface file. See above.-			    typeCheck file-			else do-			    reportSLn "" 1 $-                              "Skipping " ++ render (pretty x) ++-                                " (" ++ (if cached then "cached" else ifile) ++ ")."-                            -- We set the pragma options of the skipped file here,-                            -- because if the top-level file is skipped we want the-                            -- pragmas to apply to interactive commands in the UI.-                            mapM_ setOptionsFromPragma (iPragmaOptions i)-			    return (False, (i, Right t))+            ts <- map snd <$> mapM getInterface (iImportedModules i) -	typeCheck file = do-	    -- Do the type checking.-            reportSLn "" 1 $ "Checking " ++ render (pretty x) ++ " (" ++ filePath file ++ ")."-            if includeStateChanges then do-              r <- createInterface file x+            -- If any of the imports are newer we need to retype check+            if any (> t) ts+              then do+                -- liftIO close	-- Close the interface file. See above.+                typeCheck file+              else do+                unless cached $ reportSLn "" 1 $+                  "Skipping " ++ render (pretty x) +++                    " (" ++ ifile ++ ")."+                -- We set the pragma options of the skipped file here,+                -- because if the top-level file is skipped we want the+                -- pragmas to apply to interactive commands in the UI.+                mapM_ setOptionsFromPragma (iPragmaOptions i)+                return (False, (i, Right t)) -              -- Merge the signature with the signature for imported-              -- things.-              sig <- getSignature-              addImportedThings sig Map.empty Set.empty-              setSignature emptySignature+      typeCheck file =+        let ret a = do+              reportSLn "" 1 $ "Finished " ++ render (pretty x) ++ "."+              return a+        in do+          -- Do the type checking.+          reportSLn "" 1 $ "Checking " ++ render (pretty x) ++ " (" ++ filePath file ++ ")."+          if includeStateChanges then do+            r <- createInterface file x -              return (True, r)-             else do-              ms       <- getImportPath-              mf       <- stModuleToSource <$> get-              vs       <- getVisitedModules-              ds       <- getDecodedModules-              opts     <- stPersistentOptions <$> get-              isig     <- getImportedSignature-              ibuiltin <- gets stImportedBuiltins-              -- Every interface is treated in isolation.-              r <- liftIO $ runTCM $-                     withImportPath ms $ do-                       setDecodedModules ds-                       setCommandLineOptions opts-                       modify $ \s -> s { stModuleToSource = mf }-                       setVisitedModules vs-                       addImportedThings isig ibuiltin Set.empty+            -- Merge the signature with the signature for imported+            -- things.+            sig <- getSignature+            addImportedThings sig Map.empty Set.empty+            setSignature emptySignature -                       r <- createInterface file x+            ret (True, r)+           else do+            ms       <- getImportPath+            mf       <- stModuleToSource <$> get+            vs       <- getVisitedModules+            ds       <- getDecodedModules+            opts     <- stPersistentOptions <$> get+            isig     <- getImportedSignature+            ibuiltin <- gets stImportedBuiltins+            -- Every interface is treated in isolation.+            r <- liftIO $ runTCM $+                   withImportPath ms $ do+                     setDecodedModules ds+                     setCommandLineOptions opts+                     modify $ \s -> s { stModuleToSource = mf }+                     setVisitedModules vs+                     addImportedThings isig ibuiltin Set.empty -                       mf        <- stModuleToSource <$> get-                       vs        <- getVisitedModules-                       ds        <- getDecodedModules-                       isig      <- getImportedSignature-                       ibuiltin  <- gets stImportedBuiltins-                       hsImports <- getHaskellImports-                       return (r, do-                         modify $ \s -> s { stModuleToSource = mf }-                         setVisitedModules vs-                         setDecodedModules ds+                     r <- createInterface file x -                         addImportedThings isig ibuiltin hsImports)+                     mf        <- stModuleToSource <$> get+                     ds        <- getDecodedModules+                     return (r, do+                        modify $ \s -> s { stModuleToSource = mf }+                        setDecodedModules ds+                        case r of+                          (i, Right t) -> storeDecodedModule i t+                          _            -> return ()+                        ) -              case r of-                  Left err               -> throwError err-                  Right (result, update) -> do-                    update-                    return (False, result)+            case r of+                Left err               -> throwError err+                Right (r, update) -> do+                  update+                  case r of+                    (_, Right _) -> do+                      r <- skip file+                      ret r+                    _ ->+                      ret (False, r) + readInterface :: FilePath -> TCM (Maybe Interface) readInterface file = do     -- Decode the interface file@@ -373,6 +398,8 @@  writeInterface :: FilePath -> Interface -> TCM ClockTime writeInterface file i = do+    reportSLn "import.iface.write" 5  $+      "Writing interface file " ++ file ++ "."     encodeFile file i     liftIO $ getModificationTime file   `catchError` \e -> do@@ -450,18 +477,15 @@ 	withScope_ (insideScope topLevel) $ generateVimFile $ filePath file      -- Check if there are unsolved meta-variables...+    unsolvedOK    <- optAllowUnsolved <$> pragmaOptions     unsolvedMetas <- List.nub <$> (mapM getMetaRange =<< getOpenMetas)-    unless (null unsolvedMetas) $ do-      unsolvedOK <- optAllowUnsolved <$> pragmaOptions-      unless unsolvedOK $-        typeError $ UnsolvedMetas unsolvedMetas+    unless (null unsolvedMetas || unsolvedOK) $+      typeError $ UnsolvedMetas unsolvedMetas      -- ...or unsolved constraints     unsolvedConstraints <- getConstraints-    unless (null unsolvedConstraints) $ do-      unsolvedOK <- optAllowUnsolved <$> pragmaOptions-      unless unsolvedOK $-        typeError $ UnsolvedConstraints unsolvedConstraints+    unless (null unsolvedConstraints || unsolvedOK) $+      typeError $ UnsolvedConstraints unsolvedConstraints      setScope $ outsideScope topLevel @@ -473,7 +497,8 @@      then do       -- The file was successfully type-checked (and no warnings were       -- encountered), so the interface should be written out.-      t <- writeInterface (filePath $ toIFile file) i+      let ifile = filePath $ toIFile file+      t  <- writeInterface ifile i       return (i, Right t)      else       return (i, Left $ Warnings termErrs unsolvedMetas unsolvedConstraints)
src/full/Agda/Interaction/MakeCase.hs view
@@ -34,7 +34,7 @@ #include "../undefined.h" import Agda.Utils.Impossible --- | Find the clause whose right hand side is the given meta +-- | Find the clause whose right hand side is the given meta -- BY SEARCHING THE WHOLE SIGNATURE. Returns -- the original clause, before record patterns have been translated -- away. Raises an error if there is no matching clause.@@ -42,7 +42,7 @@ -- Andreas, 2010-09-21: This looks like a SUPER UGLY HACK to me. You are -- walking through the WHOLE signature to find an information you have -- thrown away earlier.  (shutter with disgust).--- This code fails for record rhs because they have been eta-expanded, +-- This code fails for record rhs because they have been eta-expanded, -- so the MVar is gone. findClause :: MetaId -> TCM (QName, Clause) findClause m = do@@ -58,8 +58,8 @@       reportSDoc "interaction.case" 10 $ vcat $         [ text "Interaction.MakeCase.findClause fails"         , text "expected rhs to be meta var" <+> (text $ show m)-        , text "but could not find it in the signature" -        ] +        , text "but could not find it in the signature"+        ]       reportSDoc "interaction.case" 20 $ vcat $ map (text . show) (Map.elems $ sigDefinitions sig)  -- you asked for it!       typeError $ GenericError "Right hand side must be a single hole when making a case distinction."     [r] -> return r@@ -88,31 +88,10 @@   var         <- deBruijnIndex =<< parseExprIn hole rng s   z           <- splitClauseWithAbs clause var   case z of-    Left err        -> typeError . GenericError . show =<< prettySplitError err+    Left err        -> typeError . GenericError . show =<< prettyTCM err     Right (Left cl) -> (:[]) <$> makeAbsurdClause f cl     Right (Right c) -> mapM (makeAbstractClause f) c -prettySplitError :: SplitError -> TCM Doc-prettySplitError err = case err of-  NotADatatype t -> fsep $-    pwords "Cannot pattern match on non-datatype" ++ [prettyTCM t]-  IrrelevantDatatype t -> fsep $-    pwords "Cannot pattern match on datatype" ++ [prettyTCM t] ++-    pwords "since it is declared irrelevant" -  NoRecordConstructor t -> fsep $-    pwords "Cannot pattern match on record" ++ [prettyTCM t] ++-    pwords "because it has no constructor"-  CantSplit c tel cIxs gIxs flex -> addCtxTel tel $ vcat-    [ fsep $ pwords "Cannot pattern match on constructor" ++ [prettyTCM c <> text ","] ++-             pwords "since the inferred indices"-    , nest 2 $ prettyTCM cIxs-    , fsep $ pwords "cannot be unified with the expected indices"-    , nest 2 $ prettyTCM gIxs-    , fsep $ pwords "for some" ++ punctuate comma (map prettyTCM flex)-    ]-  GenericSplitError s -> fsep $-    pwords "Split failed:" ++ pwords s- makeAbsurdClause :: QName -> SplitClause -> TCM A.Clause makeAbsurdClause f (SClause tel perm ps _) = do   reportSDoc "interaction.case" 10 $ vcat@@ -142,11 +121,10 @@ deBruijnIndex :: A.Expr -> TCM Nat deBruijnIndex e = do   (v, _) <- -- Andreas, 2010-09-21 allow splitting on irrelevant (record) vars-            Context.wakeIrrelevantVars $ +            Context.wakeIrrelevantVars $               inferExpr e   case v of     Var n _ -> return n     _       -> typeError . GenericError . show =<< (fsep $                 pwords "The scrutinee of a case distinction must be a variable,"                 ++ [ prettyTCM v ] ++ pwords "isn't.")-
src/full/Agda/Interaction/Options.hs view
@@ -18,7 +18,7 @@     ) where  import Control.Monad            ( when )-import Control.Monad.Error	( MonadError(catchError) )+import Control.Monad.Error	( MonadError(..) ) import Data.List		( isSuffixOf ) import System.Console.GetOpt	(getOpt, usageInfo, ArgOrder(ReturnInOrder) 				, OptDescr(..), ArgDescr(..)@@ -61,6 +61,7 @@ 	    , optInteractive          :: Bool 	    , optRunTests             :: Bool 	    , optCompile              :: Bool+	    , optEpicCompile          :: Bool             , optCompileDir           :: Maybe FilePath               -- ^ In the absence of a path the project root is used. 	    , optGenerateVimFile      :: Bool@@ -71,6 +72,7 @@             , optForcing              :: Bool             , optGhcFlags             :: [String]             , optPragmaOptions        :: PragmaOptions+            , optEpicFlags            :: [String] 	    }     deriving Show @@ -91,6 +93,8 @@   , optInjectiveTypeConstructors :: Bool   , optGuardingTypeConstructors  :: Bool   , optUniversePolymorphism      :: Bool+  , optIrrelevantProjections     :: Bool+  , optWithoutK                  :: Bool   }   deriving Show @@ -119,6 +123,7 @@ 	    , optInteractive          = False 	    , optRunTests             = False 	    , optCompile              = False+	    , optEpicCompile          = False             , optCompileDir           = Nothing 	    , optGenerateVimFile      = False 	    , optGenerateHTML         = False@@ -128,6 +133,7 @@             , optForcing              = True             , optGhcFlags             = []             , optPragmaOptions        = defaultPragmaOptions+            , optEpicFlags            = [] 	    }  defaultPragmaOptions :: PragmaOptions@@ -135,6 +141,7 @@   { optShowImplicit              = False   , optVerbose                   = defaultVerbosity   , optProofIrrelevance          = False+  , optIrrelevantProjections     = True   , optAllowUnsolved             = False   , optDisablePositivity         = False   , optTerminationCheck          = True@@ -146,6 +153,7 @@   , optInjectiveTypeConstructors = False   , optGuardingTypeConstructors  = False   , optUniversePolymorphism      = False+  , optWithoutK                  = False   }  -- | The default output directory for HTML.@@ -168,14 +176,17 @@ checkOpts opts   | not (atMostOne [optAllowUnsolved . p, optCompile]) = Left       "Unsolved meta variables are not allowed when compiling.\n"-  | not (atMostOne [optInteractive, optCompile]) =-      Left "Choose at most one: compiler or interactive mode.\n"+  | not (atMostOne [optInteractive, optCompile, optEpicCompile]) =+      Left "Choose at most one: compiler/interactive mode.\n"   | not (atMostOne [optGenerateHTML, optInteractive]) =       Left "Choose at most one: HTML generator or interactive mode.\n"   | not (atMostOne [ optUniversePolymorphism . p                    , not . optUniverseCheck . p                    ]) =       Left "Cannot have both universe polymorphism and type in type.\n"+  | (not . null . optEpicFlags $ opts)+      && not (optEpicCompile opts) =+      Left "Cannot set Epic flags without using the Epic backend.\n"   | otherwise = Right opts   where   atMostOne bs = length (filter ($ opts) bs) <= 1@@ -186,11 +197,12 @@ inputFlag f o =     case optInputFile o of 	Nothing  -> return $ o { optInputFile = Just f }-	Just _	 -> fail "only one input file allowed"+	Just _	 -> throwError "only one input file allowed"  versionFlag                  o = return $ o { optShowVersion               = True  } helpFlag                     o = return $ o { optShowHelp                  = True  } proofIrrelevanceFlag         o = return $ o { optProofIrrelevance          = True  }+noIrrelevantProjectionsFlag  o = return $ o { optIrrelevantProjections     = False } ignoreInterfacesFlag         o = return $ o { optIgnoreInterfaces          = True  } allowUnsolvedFlag            o = return $ o { optAllowUnsolved             = True  } showImplicitFlag             o = return $ o { optShowImplicit              = True  }@@ -206,14 +218,17 @@ guardingTypeConstructorFlag  o = return $ o { optGuardingTypeConstructors  = True  } universePolymorphismFlag     o = return $ o { optUniversePolymorphism      = True  } noForcingFlag                o = return $ o { optForcing                   = False }+withoutKFlag                 o = return $ o { optWithoutK                  = True  }  interactiveFlag  o = return $ o { optInteractive    = True                                 , optPragmaOptions  = (optPragmaOptions o)                                                         { optAllowUnsolved = True } 		                } compileFlag      o = return $ o { optCompile    = True }+compileEpicFlag  o = return $ o { optEpicCompile = True} compileDirFlag f o = return $ o { optCompileDir = Just f } ghcFlag        f o = return $ o { optGhcFlags   = f : optGhcFlags o }+epicFlagsFlag  s o = return $ o { optEpicFlags  = optEpicFlags o ++ [s]}  htmlFlag      o = return $ o { optGenerateHTML = True } htmlDirFlag d o = return $ o { optHTMLDir      = d }@@ -231,18 +246,18 @@       ss  -> do         n <- readM (last ss) `catchError` \_ -> usage         return (init ss, n)-    usage = fail "argument to verbose should be on the form x.y.z:N or N"+    usage = throwError "argument to verbose should be on the form x.y.z:N or N"  terminationDepthFlag s o =     do k <- readM s `catchError` \_ -> usage        when (k < 1) $ usage -- or: turn termination checking off for 0        return $ o { optTerminationDepth = k-1 }-    where usage = fail "argument to termination-depth should be >= 1"+    where usage = throwError "argument to termination-depth should be >= 1"  integerArgument :: String -> String -> Either String Int integerArgument flag s =     readM s `catchError` \_ ->-	fail $ "option '" ++ flag ++ "' requires an integer argument"+	throwError $ "option '" ++ flag ++ "' requires an integer argument"  standardOptions :: [OptDescr (Flag CommandLineOptions)] standardOptions =@@ -251,11 +266,14 @@     , Option ['I']  ["interactive"] (NoArg interactiveFlag) 		    "start in interactive mode"     , Option ['c']  ["compile"] (NoArg compileFlag)-                    "compile program (experimental)"+                    "compile program using the MAlonzo backend (experimental)"+    , Option []     ["epic"] (NoArg compileEpicFlag) "compile program using the Epic backend"     , Option []     ["compile-dir"] (ReqArg compileDirFlag "DIR") 		    ("directory for compiler output (default: the project root)")     , Option []     ["ghc-flag"] (ReqArg ghcFlag "GHC-FLAG")-                    "give the flag GHC-FLAG to GHC when compiling"+                    "give the flag GHC-FLAG to GHC when compiling using MAlonzo"+    , Option []     ["epic-flag"] (ReqArg epicFlagsFlag "EPIC-FLAG")+                    "give the flag EPIC-FLAG to Epic when compiling using Epic"     , Option []	    ["test"] (NoArg runTestsFlag) 		    "run internal test suite"     , Option []	    ["vim"] (NoArg vimFlag)@@ -310,6 +328,10 @@                     "treat type constructors as inductive constructors when checking productivity"     , Option []     ["universe-polymorphism"] (NoArg universePolymorphismFlag)                     "enable universe polymorphism (experimental feature)"+    , Option []     ["no-irrelevant-projections"] (NoArg noIrrelevantProjectionsFlag)+                    "disable projection of irrelevant record fields"+    , Option []     ["without-K"] (NoArg withoutKFlag)+                    "disable the K rule (maybe)"     ]  -- | Used for printing usage info.@@ -322,7 +344,7 @@ parseOptions' argv opts fileArg = \defaults ->     case getOpt (ReturnInOrder fileArg) opts argv of 	(o,_,[])    -> foldl (>>=) (return defaults) o-	(_,_,errs)  -> fail $ concat errs+	(_,_,errs)  -> throwError $ concat errs  -- | Parse the standard options. parseStandardOptions :: [String] -> Either String CommandLineOptions@@ -339,7 +361,7 @@   -> Either String PragmaOptions parsePragmaOptions argv opts = do   ps <- parseOptions' argv pragmaOptions-          (\s _ -> fail $ "Bad option in pragma: " ++ s)+          (\s _ -> throwError $ "Bad option in pragma: " ++ s)           (optPragmaOptions opts)   checkOpts (opts { optPragmaOptions = ps })   return ps@@ -348,7 +370,8 @@ parsePluginOptions :: [String] -> [OptDescr (Flag opts)] -> Flag opts parsePluginOptions argv opts =   parseOptions' argv opts-    (\s _ -> fail $ "Internal error: Flag " ++ s ++ " passed to a plugin")+    (\s _ -> throwError $+               "Internal error: Flag " ++ s ++ " passed to a plugin")  -- | The usage info message. The argument is the program name (probably --   agda).
src/full/Agda/Main.hs view
@@ -48,6 +48,7 @@ import Agda.TypeChecking.SizedTypes  import Agda.Compiler.MAlonzo.Compiler as MAlonzo+import Agda.Compiler.Epic.Compiler as Epic  import Agda.Termination.TermCheck @@ -88,6 +89,7 @@     checkFile = do       i       <- optInteractive <$> liftTCM commandLineOptions       compile <- optCompile     <$> liftTCM commandLineOptions+      epic    <- optEpicCompile <$> liftTCM commandLineOptions       when i $ liftIO $ LocIO.putStr splashScreen       let failIfNoInt (Just i) = return i           -- The allowed combinations of command-line@@ -97,6 +99,7 @@           interaction :: TCM (Maybe Interface) -> TCM ()           interaction | i         = runIM . interactionLoop                       | compile   = (MAlonzo.compilerMain =<<) . (failIfNoInt =<<)+                      | epic      = (Epic.compilerMain    =<<) . (failIfNoInt =<<)                       | otherwise = (() <$)       interaction $ do         hasFile <- hasInputFile@@ -168,4 +171,3 @@   `catchImpossible` \e -> do     LocIO.putStr $ show e     exitFailure-
src/full/Agda/Packaging/Monad.hs view
@@ -31,7 +31,7 @@  instance Applicative (AgdaPkg opt) where   pure  = return-  (<*>) = ap +  (<*>) = ap  asksM :: (MonadReader r m) => (r -> m a) -> m a asksM = join . asks
src/full/Agda/Syntax/Abstract.hs view
@@ -56,7 +56,7 @@   deriving (Typeable, Data, Show)  data Declaration-	= Axiom      DefInfo QName Expr			   -- ^ postulate+	= Axiom      DefInfo Relevance QName Expr          -- ^ postulate 	| Field      DefInfo QName (Arg Expr)		   -- ^ record field 	| Primitive  DefInfo QName Expr			   -- ^ primitive function 	| Definition DeclInfo [TypeSignature] [Definition] -- ^ a bunch of mutually recursive definitions@@ -74,10 +74,11 @@             | CompiledPragma QName String             | CompiledTypePragma QName String             | CompiledDataPragma QName String [String]+            | CompiledEpicPragma QName String             | EtaPragma QName   deriving (Typeable, Data, Show) -data LetBinding = LetBind LetInfo Name Expr Expr    -- ^ LetBind info name type defn+data LetBinding = LetBind LetInfo Relevance Name Expr Expr    -- ^ LetBind info name type defn                 | LetApply ModuleInfo ModuleName [TypedBindings] ModuleName [NamedArg Expr] (Map QName QName) (Map ModuleName ModuleName)                 | LetOpen ModuleInfo ModuleName     -- ^ only for highlighting and abstractToConcrete   deriving (Typeable, Data, Show)@@ -229,7 +230,7 @@     getRange (DontCare)         = noRange  instance HasRange Declaration where-    getRange (Axiom      i _ _	       ) = getRange i+    getRange (Axiom      i _ _ _       ) = getRange i     getRange (Field      i _ _         ) = getRange i     getRange (Definition i _ _	       ) = getRange i     getRange (Section    i _ _ _       ) = getRange i@@ -270,7 +271,7 @@     getRange (RewriteRHS _ es rhs wh) = getRange (es, rhs, wh)  instance HasRange LetBinding where-    getRange (LetBind  i _ _ _       ) = getRange i+    getRange (LetBind  i _ _ _ _     ) = getRange i     getRange (LetApply i _ _ _ _ _ _ ) = getRange i     getRange (LetOpen  i _           ) = getRange i @@ -308,12 +309,16 @@   killRange (Quote i)        = killRange1 Quote i   killRange (DontCare)       = DontCare +instance KillRange Relevance where+  killRange rel = rel -- no range to kill+ instance KillRange Declaration where-  killRange (Axiom      i a b         ) = killRange3 Axiom      i a b+  killRange (Axiom      i rel a b     ) = killRange4 Axiom      i rel a b   killRange (Field      i a b         ) = killRange3 Field      i a b   killRange (Definition i a b         ) = killRange3 Definition i a b   killRange (Section    i a b c       ) = killRange4 Section    i a b c   killRange (Apply      i a b c d e f ) = killRange5 Apply      i a b c d e f+   -- the last two arguments of Apply are name maps, so nothing to kill   killRange (Import     i a           ) = killRange2 Import     i a   killRange (Primitive  i a b         ) = killRange3 Primitive  i a b   killRange (Pragma     i a           ) = Pragma (killRange i) a@@ -350,7 +355,7 @@   killRange (RewriteRHS x es rhs wh) = killRange4 RewriteRHS x es rhs wh  instance KillRange LetBinding where-  killRange (LetBind  i a b c       ) = killRange4 LetBind  i a b c+  killRange (LetBind  i rel a b c   ) = killRange5 LetBind  i rel a b c   killRange (LetApply i a b c d e f ) = killRange5 LetApply i a b c d e f   killRange (LetOpen  i x           ) = killRange2 LetOpen  i x @@ -363,7 +368,7 @@ -- include local modules and where clauses.  allNames :: Declaration -> Seq QName-allNames (Axiom     _   q _)   = Seq.singleton q+allNames (Axiom     _ _ q _)   = Seq.singleton q allNames (Field     _   q _)   = Seq.singleton q allNames (Primitive _   q _)   = Seq.singleton q allNames (Definition _ _ defs) = Fold.foldMap allNamesD defs@@ -398,5 +403,5 @@ -- Precondition: The declaration has to be an 'Axiom'.  axiomName :: Declaration -> QName-axiomName (Axiom _ q _) = q+axiomName (Axiom _ _ q _) = q axiomName _             = __IMPOSSIBLE__
src/full/Agda/Syntax/Abstract/Name.hs view
@@ -264,4 +264,3 @@  instance Sized ModuleName where   size = size . mnameToList-
src/full/Agda/Syntax/Abstract/Views.hs view
@@ -10,9 +10,10 @@ 	     | NonApplication Expr 		-- ^ TODO: if we allow beta-redexes (which we currently do) there could be one here. -data Head = HeadVar Name-	  | HeadDef QName-	  | HeadCon [QName]+-- | @Head@ of an applicative expression.+data Head = HeadVar Name     -- ^ A variable.+	  | HeadDef QName    -- ^ A defined symbol (except constructor).+	  | HeadCon [QName]  -- ^ A constructor which could belong to any of the data types in the list.  appView :: Expr -> AppView appView e =@@ -43,4 +44,3 @@     getRange (HeadVar x) = getRange x     getRange (HeadDef x) = getRange x     getRange (HeadCon x) = getRange x-
src/full/Agda/Syntax/Common.hs view
@@ -36,6 +36,11 @@ ignoreForced Relevant   = Relevant ignoreForced Irrelevant = Irrelevant +-- | @Relevance@ from @Bool@.+irrelevant :: Bool -> Relevance+irrelevant True  = Irrelevant+irrelevant False = Relevant+ instance KillRange Induction where killRange = id instance KillRange Hiding    where killRange = id 
src/full/Agda/Syntax/Concrete.hs view
@@ -122,7 +122,7 @@   -- | A telescope is a sequence of typed bindings. Bound variables are in scope---   in later types. +--   in later types. type Telescope = [TypedBindings]  {-| Left hand sides can be written in infix style. For example:@@ -210,8 +210,8 @@     which type in the intended family the constructor targets. -} data Declaration-	= TypeSig Name Expr-        | Field Name (Arg Expr)+	= TypeSig Relevance Name Expr -- ^ Axioms and functions can be irrelevant.+        | Field Name (Arg Expr) -- ^ Record field, can be hidden and/or irrelevant. 	| FunClause LHS RHS WhereClause 	| Data        !Range Induction Name [TypedBindings] Expr [Constructor] 	| Record      !Range Name (Maybe Name) [TypedBindings] Expr [Declaration]@@ -240,6 +240,7 @@             | CompiledDataPragma !Range QName String [String]             | CompiledTypePragma !Range QName String             | CompiledPragma    !Range QName String+            | CompiledEpicPragma !Range QName String             | ImportPragma      !Range String               -- ^ Invariant: The string must be a valid Haskell               -- module name.@@ -337,23 +338,23 @@   getRange (SomeWhere _ ds) = getRange ds  instance HasRange Declaration where-    getRange (TypeSig x t)		= fuseRange x t-    getRange (Field x t)              = fuseRange x t-    getRange (FunClause lhs rhs wh)	= fuseRange lhs rhs `fuseRange` wh-    getRange (Data r _ _ _ _ _)		= r-    getRange (Record r _ _ _ _ _)	= r-    getRange (Mutual r _)		= r-    getRange (Abstract r _)		= r-    getRange (Open r _ _)		= r-    getRange (ModuleMacro r _ _ _ _ _)	= r-    getRange (Import r _ _ _ _)		= r-    getRange (Private r _)		= r-    getRange (Postulate r _)		= r-    getRange (Primitive r _)		= r-    getRange (Module r _ _ _)		= r-    getRange (Infix f _)		= getRange f-    getRange (Syntax n _)          = getRange n-    getRange (Pragma p)			= getRange p+    getRange (TypeSig _ x t)	       = fuseRange x t+    getRange (Field x t)               = fuseRange x t+    getRange (FunClause lhs rhs wh)    = fuseRange lhs rhs `fuseRange` wh+    getRange (Data r _ _ _ _ _)	       = r+    getRange (Record r _ _ _ _ _)      = r+    getRange (Mutual r _)	       = r+    getRange (Abstract r _)	       = r+    getRange (Open r _ _)	       = r+    getRange (ModuleMacro r _ _ _ _ _) = r+    getRange (Import r _ _ _ _)	       = r+    getRange (Private r _)	       = r+    getRange (Postulate r _)	       = r+    getRange (Primitive r _)	       = r+    getRange (Module r _ _ _)	       = r+    getRange (Infix f _)	       = getRange f+    getRange (Syntax n _)              = getRange n+    getRange (Pragma p)		       = getRange p  instance HasRange LHS where   getRange (LHS p ps eqns ws) = fuseRange p (fuseRange ps (eqns ++ ws))@@ -369,6 +370,7 @@     getRange (CompiledDataPragma r _ _ _) = r     getRange (CompiledTypePragma r _ _)   = r     getRange (CompiledPragma r _ _)       = r+    getRange (CompiledEpicPragma r _ _)   = r     getRange (ImportPragma r _)           = r     getRange (ImpossiblePragma r)         = r     getRange (EtaPragma r _)              = r@@ -402,4 +404,3 @@     getRange (LitP l)		= getRange l     getRange (HiddenP r _)	= r     getRange (DotP r _)		= r-
src/full/Agda/Syntax/Concrete/Definitions.hs view
@@ -41,7 +41,8 @@     modifiers have been distributed to the individual declarations. -} data NiceDeclaration-	= Axiom Range Fixity' Access IsAbstract Name Expr+	= Axiom Range Fixity' Access IsAbstract Relevance Name Expr+            -- ^ Axioms and functions can be declared irrelevant.         | NiceField Range Fixity' Access IsAbstract Name (Arg Expr) 	| PrimitiveFunction Range Fixity' Access IsAbstract Name Expr 	| NiceDef Range [Declaration] [NiceTypeSignature] [NiceDefinition]@@ -98,7 +99,7 @@     getRange (DeclarationPanic _)	   = noRange  instance HasRange NiceDeclaration where-    getRange (Axiom r _ _ _ _ _)	       = r+    getRange (Axiom r _ _ _ _ _ _)	       = r     getRange (NiceField r _ _ _ _ _)	       = r     getRange (NiceDef r _ _ _)		       = r     getRange (NiceModule r _ _ _ _ _)	       = r@@ -178,7 +179,7 @@ 	-- Compute the names defined in a declaration 	declaredNames :: Declaration -> [Name] 	declaredNames d = case d of-	  TypeSig x _				       -> [x]+	  TypeSig _ x _				       -> [x]           Field x _                                    -> [x] 	  FunClause (LHS p [] _ _) _ _             | IdentP (QName x) <- noSingletonRawAppP p -> [x]@@ -205,21 +206,21 @@ 	nice _ []	 = return [] 	nice fixs (d:ds) = 	    case d of-		TypeSig x t ->+		TypeSig rel x t -> 		    -- After a type signature there should follow a bunch of 		    -- clauses. 		    case span (isFunClauseOf x) ds of 			([], _)	    -> throwError $ MissingDefinition x 			(ds0,ds1)   -> do 			  ds1 <- nice fixs ds1-			  d <- mkFunDef fixs x (Just t) ds0+			  d <- mkFunDef rel fixs x (Just t) ds0                           return $ d : ds1  		cl@(FunClause lhs@(LHS p [] _ _) _ _)                   | IdentP (QName x) <- noSingletonRawAppP p                                   -> do 		      ds <- nice fixs ds-		      d <- mkFunDef fixs x Nothing [cl]+		      d <- mkFunDef Relevant fixs x Nothing [cl] -- fun def without type signature is relevant                       return $ d : ds                 FunClause lhs _ _ -> throwError $ MissingTypeSignature lhs @@ -230,7 +231,7 @@ 			    Data r CoInductive x tel t cs -> throwError (Codata r) 			    Data r Inductive   x tel t cs -> dataOrRec DataDef niceAx r x tel t cs 			    Record r x c tel t cs         -> do-                              let c' = (\c -> niceAxiom fixs (TypeSig c t)) <$> c+                              let c' = (\c -> niceAxiom fixs (TypeSig Relevant c t)) <$> c -- constructor is always relevant                               dataOrRec (\x1 x2 x3 x4 x5 -> RecDef x1 x2 x3 x4 x5 c')                                         (const niceDeclarations) r x tel t cs 			    Mutual r ds -> do@@ -261,13 +262,13 @@ 			    Pragma p		-> return [NicePragma (getRange p) p]  			    FunClause _ _ _	-> __IMPOSSIBLE__-			    TypeSig _ _		-> __IMPOSSIBLE__+			    TypeSig{}		-> __IMPOSSIBLE__ 			  where 			    dataOrRec mkDef niceD r x tel t cs = do                               ds <- niceD fixs cs                               return $                                 [ NiceDef r [d]-                                  [ Axiom (fuseRange x t) f PublicAccess ConcreteDef+                                  [ Axiom (fuseRange x t) f PublicAccess ConcreteDef Relevant                                           x (Pi tel t)                                   ]                                   -- Setting the range to the range of t makes sense@@ -296,23 +297,23 @@ 	niceAxioms fixs ds = map (niceAxiom fixs) ds          niceAxiom :: Map.Map Name Fixity' -> TypeSignature -> NiceDeclaration-        niceAxiom fixs d@(TypeSig x t) =-            Axiom (getRange d) (fixity x fixs) PublicAccess ConcreteDef x t+        niceAxiom fixs d@(TypeSig rel x t) =+            Axiom (getRange d) (fixity x fixs) PublicAccess ConcreteDef rel x t         niceAxiom fixs d@(Field x argt) =             NiceField (getRange d) (fixity x fixs) PublicAccess ConcreteDef x argt         niceAxiom _ _ = __IMPOSSIBLE__  	toPrim :: NiceDeclaration -> NiceDeclaration-	toPrim (Axiom r f a c x t) = PrimitiveFunction r f a c x t-	toPrim _		   = __IMPOSSIBLE__+	toPrim (Axiom r f a c rel x t) = PrimitiveFunction r f a c x t+	toPrim _		       = __IMPOSSIBLE__  	-- Create a function definition.-	mkFunDef fixs x mt ds0 = do+	mkFunDef rel fixs x mt ds0 = do           cs <- mkClauses x $ expandEllipsis ds0           return $ 	    NiceDef (fuseRange x ds0)-		    (TypeSig x t : ds0)-		    [ Axiom (fuseRange x t) f PublicAccess ConcreteDef x t ]+		    (TypeSig rel x t : ds0)+		    [ Axiom (fuseRange x t) f PublicAccess ConcreteDef rel x t ] 		    [ FunDef (getRange ds0) ds0 f PublicAccess ConcreteDef x cs 		    ] 	    where@@ -400,7 +401,7 @@ 	-- Make a declaration abstract 	mkAbstract d = 	    case d of-		Axiom r f a _ x e		    -> Axiom r f a AbstractDef x e+		Axiom r f a _ rel x e		    -> Axiom r f a AbstractDef rel x e 		NiceField r f a _ x e		    -> NiceField r f a AbstractDef x e 		PrimitiveFunction r f a _ x e	    -> PrimitiveFunction r f a AbstractDef x e 		NiceDef r cs ts ds		    -> NiceDef r cs (map mkAbstract ts)@@ -427,7 +428,7 @@ 	-- Make a declaration private 	mkPrivate d = 	    case d of-		Axiom r f _ a x e		    -> Axiom r f PrivateAccess a x e+		Axiom r f _ a rel x e		    -> Axiom r f PrivateAccess a rel x e 		NiceField r f _ a x e		    -> NiceField r f PrivateAccess a x e 		PrimitiveFunction r f _ a x e	    -> PrimitiveFunction r f PrivateAccess a x e 		NiceDef r cs ts ds		    -> NiceDef r cs (map mkPrivate ts)@@ -485,13 +486,12 @@ notSoNiceDeclarations :: [NiceDeclaration] -> [Declaration] notSoNiceDeclarations = concatMap notNice   where-    notNice (Axiom _ _ _ _ x e)                   = [TypeSig x e]+    notNice (Axiom _ _ _ _ rel x e)               = [TypeSig rel x e]     notNice (NiceField _ _ _ _ x argt)            = [Field x argt]-    notNice (PrimitiveFunction r _ _ _ x e)       = [Primitive r [TypeSig x e]]+    notNice (PrimitiveFunction r _ _ _ x e)       = [Primitive r [TypeSig Relevant x e]]     notNice (NiceDef _ ds _ _)                    = ds     notNice (NiceModule r _ _ x tel ds)           = [Module r x tel ds]     notNice (NiceModuleMacro r _ _ x tel e o dir) = [ModuleMacro r x tel e o dir]     notNice (NiceOpen r x dir)                    = [Open r x dir]     notNice (NiceImport r x as o dir)             = [Import r x as o dir]     notNice (NicePragma _ p)                      = [Pragma p]-
src/full/Agda/Syntax/Concrete/Operators.hs view
@@ -87,14 +87,14 @@         where             zs = concatMap opOrNot ops -    opOrNot (x, Fixity' fx syn) = Left x +    opOrNot (x, Fixity' fx syn) = Left x                                 :  case x of                                       Name _ [_] -> []                                       _ -> [Right (x, fx, syntaxOf x)]                                 ++ case syn of                                     [] -> []                                     _ -> [Right (x, fx, syn)]-        + data UseBoundNames = UseBoundNames | DontUseBoundNames  @@ -140,10 +140,10 @@   (True,False) -> Postfix   (False,True) -> Prefix   (False,False) -> Nonfix-   + notationNames :: NewNotation -> [Name]-notationNames (_, _, ps) = [Name noRange [Id x] | IdPart x <- ps ]  +notationNames (_, _, ps) = [Name noRange [Id x] | IdPart x <- ps ]  buildParser :: forall e. IsExpr e => Range -> UseBoundNames -> ScopeM (ReadP e e) buildParser r use = do@@ -160,15 +160,15 @@                        DontUseBoundNames -> not (Set.member x conparts) || Set.member x connames         -- If string is a part of notation, it cannot be used as an identifier,         -- unless it is also used as an identifier. See issue 307.-    return $ -- traceShow ops $ +    return $ -- traceShow ops $            recursive $ \p -> -- p is a parser for an arbitrary expression         concatMap (mkP p) (order fix) -- for infix operators (with outer "holes")         ++ [ appP p ] -- parser for simple applications         ++ map (nonfixP . opP p) non -- for things with no outer "holes"         ++ [ const $ atomP isAtom ]     where-         +         level :: NewNotation -> Nat         level (_name, fixity, _syn) = fixityLevel fixity @@ -177,7 +177,7 @@         isinfixl, isinfixr, isinfix, nonfix, isprefix, ispostfix :: NewNotation -> Bool          isinfixl (_, LeftAssoc _ _, syn)  = isInfix syn-        isinfixl _                    = False +        isinfixl _                    = False          isinfixr (_, RightAssoc _ _, syn) = isInfix syn         isinfixr _                    = False@@ -209,7 +209,7 @@                 postfx  = fixP postfixP ispostfix                  fixP :: (ReadP e (NewNotation,Range,[e]) -> ReadP e e -> ReadP e e) -> (NewNotation -> Bool) -> [ReadP e e -> ReadP e e]-                fixP f g = +                fixP f g =                     case filter g ops of                         []  -> []                         ops -> [ f $ choice $ map (opP p0) ops ]@@ -384,4 +384,3 @@ mparen :: Bool -> Expr -> Expr mparen True  e = Paren (getRange e) e mparen False e = e-
src/full/Agda/Syntax/Concrete/Operators/Parser.hs view
@@ -159,7 +159,7 @@ 	restP x = return x +++ do 	    f <- binop op 	    e <- p-	    f x e +	    f x e  nonfixP op p = (do   (nsyn,r,es) <- op@@ -194,4 +194,3 @@     case exprView e of 	LocalV x | not (p x) -> pfail 	_		     -> return e-
src/full/Agda/Syntax/Concrete/Pretty.hs view
@@ -43,8 +43,8 @@ pRelevance :: Pretty a => Relevance -> a -> Doc pRelevance Forced     a = pretty a pRelevance Relevant   a = pretty a-pRelevance Irrelevant a = -  let d = pretty a +pRelevance Irrelevant a =+  let d = pretty a   in  if render d == "_" then d else text "." <> d  {- UNUSED@@ -218,12 +218,13 @@ instance Pretty Declaration where     pretty d = 	case d of-	    TypeSig x e	-> sep [ pretty x <+> text ":"-			       , nest 2 $ pretty e-			       ]-            Field x (Arg h rel e) -> +	    TypeSig rel x e ->+                sep [ pRelevance rel $ pretty x <+> text ":"+		    , nest 2 $ pretty e+		    ]+            Field x (Arg h rel e) ->                 sep [ text "field"-                    , nest 2 $ pRelevance rel $ pHidden h (TypeSig x e)+                    , nest 2 $ pRelevance rel $ pHidden h (TypeSig Relevant x e)                     ] 	    FunClause lhs rhs wh -> 		sep [ pretty lhs@@ -302,6 +303,8 @@       hsep [ text "COMPILED_TYPE", pretty x, text hs ]     pretty (CompiledDataPragma _ x hs hcs) =       hsep $ [text "COMPILED_DATA", pretty x] ++ map text (hs : hcs)+    pretty (CompiledEpicPragma _ x e) =+      hsep [ text "COMPILED_EPIC", pretty x, text e ]     pretty (ImportPragma _ i) =       hsep $ [text "IMPORT", text i]     pretty (ImpossiblePragma _) =@@ -315,7 +318,7 @@     pretty (NonAssoc _ n)   = text "infix" <+> text (show n)  instance Pretty e => Pretty (Arg e) where- -- Andreas 2010-09-21: do not print relevance in general, only in function types! + -- Andreas 2010-09-21: do not print relevance in general, only in function types!  -- Andreas 2010-09-24: and in record fields     pretty (Arg h r e) = -- pRelevance r $                          pHidden h e@@ -376,4 +379,3 @@ instance Pretty ImportedName where     pretty (ImportedName x)	= pretty x     pretty (ImportedModule x)	= text "module" <+> pretty x-
src/full/Agda/Syntax/Fixity.hs view
@@ -13,7 +13,7 @@  -- | The notation is handled as the fixity in the renamer. Hence they -- are grouped together in this type.-data Fixity' = Fixity' +data Fixity' = Fixity'     {theFixity :: Fixity,      theNotation :: Notation}   deriving (Typeable, Data, Show, Eq)@@ -38,7 +38,7 @@  defaultFixity' = Fixity' defaultFixity defaultNotation -noFixity = NonAssoc noRange (negate 666) +noFixity = NonAssoc noRange (negate 666)  -- | Fixity of operators. data Fixity = LeftAssoc  Range Nat@@ -127,4 +127,3 @@     getRange (LeftAssoc  r _)	= r     getRange (RightAssoc r _)	= r     getRange (NonAssoc   r _)	= r-
src/full/Agda/Syntax/Info.hs view
@@ -101,7 +101,7 @@   killRange (LetRange r) = LetRange (killRange r)  {---------------------------------------------------------------------------    Definition information (declarations that actually defines something)+    Definition information (declarations that actually define something)  --------------------------------------------------------------------------}  data DefInfo =@@ -172,4 +172,3 @@ instance KillRange PatInfo where   killRange (PatRange r)    = PatRange $ killRange r   killRange (PatSource r f) = PatSource (killRange r) f-
src/full/Agda/Syntax/Internal.hs view
@@ -369,4 +369,3 @@   [ "An internal error has occurred. Please report this as a bug."   , "Location of the error: " ++ file ++ ":" ++ show line   ]-
src/full/Agda/Syntax/Internal/Generic.hs view
@@ -78,4 +78,3 @@   traverseTerm f (El s t) = El s $ traverseTerm f t   traverseTermM f (El s t) = El s <$> traverseTermM f t   foldTerm f (El s t) = foldTerm f t-
src/full/Agda/Syntax/Literal.hs view
@@ -62,4 +62,3 @@   killRange (LitString r x) = LitString (killRange r) x   killRange (LitChar   r x) = LitChar   (killRange r) x   killRange (LitQName  r x) = LitQName  (killRange r) x-
src/full/Agda/Syntax/Notation.hs view
@@ -5,6 +5,7 @@  import Control.Applicative import Control.Monad (when)+import Control.Monad.Error (throwError) import Data.List import Data.Maybe import Data.Generics (Typeable, Data)@@ -35,11 +36,11 @@ data HoleName = LambdaHole String String -- ^ (\x -> y) ; 1st argument is the bound name (unused for now)               | ExprHole String          -- ^ simple named hole --- | Target of a hole  +-- | Target of a hole holeName (LambdaHole _ n) = n holeName (ExprHole n) = n -type Notation = [GenPart] +type Notation = [GenPart]  -- | Part of a Notation data GenPart = BindHole Int  -- ^ Argument is the position of the hole (with binding) where the binding should occur.@@ -65,20 +66,20 @@  -- | From notation with names to notation with indices. mkNotation :: [HoleName] -> [String] -> Either String Notation-mkNotation _ [] = fail "empty notation is disallowed"+mkNotation _ [] = throwError "empty notation is disallowed" mkNotation holes ids = do   xs <- mapM mkPart ids-  when (not (isAlternating xs)) $ fail "syntax must alternate holes and non-holes"-  when (not (isExprLinear xs)) $ fail "syntax must use holes exactly once"-  when (not (isLambdaLinear xs)) $ fail "syntax must use binding holes exactly once"+  when (not (isAlternating xs)) $ throwError "syntax must alternate holes and non-holes"+  when (not (isExprLinear xs)) $ throwError "syntax must use holes exactly once"+  when (not (isLambdaLinear xs)) $ throwError "syntax must use binding holes exactly once"   return xs-    where mkPart ident = -             case (findIndices (\x -> ident == holeName x) holes, +    where mkPart ident =+             case (findIndices (\x -> ident == holeName x) holes,                    findIndices (\x -> case x of LambdaHole ident' _ -> ident == ident';_ -> False) holes)  of                            ([],[x])   -> return $ BindHole x                            ([x], [])  -> return $ NormalHole x                            ([], []) -> return $ IdPart ident-                           _ -> fail "hole names must be unique"+                           _ -> throwError "hole names must be unique"            isExprLinear   xs = sort [ x | NormalHole x <- xs] == [ i | (i,h) <- zip [0..] holes ]           isLambdaLinear xs = sort [ x | BindHole   x <- xs] == [ i | (i,h) <- zip [0..] holes, isLambdaHole h ]@@ -93,5 +94,3 @@ -- | No notation by default defaultNotation = [] noNotation = []--
src/full/Agda/Syntax/Parser/Comments.hs view
@@ -78,5 +78,3 @@ 	    where 		(==>) = (,) 		other = ($)--
src/full/Agda/Syntax/Parser/Layout.hs view
@@ -146,4 +146,3 @@ 	return $ case ctx of 	    Layout n	-> compare (posCol loc) n 	    _		-> GT-
src/full/Agda/Syntax/Parser/LexActions.hs view
@@ -244,4 +244,3 @@ -- | True if the given state appears somewhere on the state stack inState :: LexState -> LexPredicate inState s (ls, _) _ _ _ = s `elem` ls-
src/full/Agda/Syntax/Parser/Lexer.x view
@@ -1,4 +1,5 @@ {+{-# OPTIONS_GHC -fno-warn-deprecated-flags #-} {-| The lexer is generated by Alex (<http://www.haskell.org/alex>) and is an     adaptation of GHC's lexer. The main lexing function 'lexer' is called by     the "Agda.Syntax.Parser.Parser" to get the next token from the input.@@ -78,6 +79,7 @@ <pragma_>   "COMPILED_DATA"	{ keyword KwCOMPILED_DATA } <pragma_>   "COMPILED_TYPE"	{ keyword KwCOMPILED_TYPE } <pragma_>   "COMPILED"	        { keyword KwCOMPILED }+<pragma_>   "COMPILED_EPIC" { keyword KwCOMPILED_EPIC } <pragma_>   "IMPORT"	        { keyword KwIMPORT } <pragma_>   "IMPOSSIBLE"	{ keyword KwIMPOSSIBLE } <pragma_>   "ETA"               { keyword KwETA }
src/full/Agda/Syntax/Parser/LookAhead.hs view
@@ -133,4 +133,3 @@ runLookAhead err (LookAhead m) =     do	inp <- getLexInput 	evalStateT (runReaderT m (ErrorFun err)) inp-
src/full/Agda/Syntax/Parser/Monad.hs view
@@ -313,4 +313,3 @@ pushCurrentContext =     do	p <- getLastPos 	pushContext (Layout (posCol p))-
src/full/Agda/Syntax/Parser/Parser.y view
@@ -1,5 +1,6 @@ {-{-# OPTIONS -fno-warn-incomplete-patterns #-}+{-# OPTIONS_GHC -fno-warn-incomplete-patterns+                -fno-warn-deprecated-flags #-} {-| The parser is generated by Happy (<http://www.haskell.org/happy>). -} module Agda.Syntax.Parser.Parser (@@ -87,6 +88,7 @@     'COMPILED'      { TokKeyword KwCOMPILED $$ }     'COMPILED_DATA' { TokKeyword KwCOMPILED_DATA $$ }     'COMPILED_TYPE' { TokKeyword KwCOMPILED_TYPE $$ }+    'COMPILED_EPIC' { TokKeyword KwCOMPILED_EPIC $$ }     'quoteGoal'     { TokKeyword KwQuoteGoal $$ }     'quote'         { TokKeyword KwQuote $$ } @@ -176,6 +178,7 @@     | 'COMPILED'    { TokKeyword KwCOMPILED $1 }     | 'COMPILED_DATA'{ TokKeyword KwCOMPILED_DATA $1 }     | 'COMPILED_TYPE'{ TokKeyword KwCOMPILED_TYPE $1 }+    | 'COMPILED_EPIC'{ TokKeyword KwCOMPILED_EPIC $1 }     | 'IMPOSSIBLE'    { TokKeyword KwIMPOSSIBLE $1 }     | 'ETA'           { TokKeyword KwETA $1 }     | 'quoteGoal'     { TokKeyword KwQuoteGoal $1 }@@ -305,7 +308,7 @@  -- A possibly dotted identifier. MaybeDottedId :: { Arg Name }-MaybeDottedId +MaybeDottedId   : '.' Id { Arg NotHidden Irrelevant $2 }   | Id     { defaultArg $1 } @@ -544,7 +547,7 @@  -- A non-empty sequence of possibly untyped bindings. TypedUntypedBindings1 :: { [LamBinding] }-TypedUntypedBindings1 +TypedUntypedBindings1   : DomainFreeBinding TypedUntypedBindings1 { $1 ++ $2 }   | TypedBindings TypedUntypedBindings1	    { DomainFull $1 : $2 }   | DomainFreeBinding                       { $1 }@@ -680,7 +683,7 @@ -- Top-level definitions. Declaration :: { [Declaration] } Declaration-    : TypeSig	    { [$1] }+    : RelTypeSig    { [$1] }  -- Possibly dotted type signature.     | Fields        { $1   }     | FunClause	    { [$1] }     | Data	    { [$1] }@@ -703,21 +706,25 @@     Individual declarations  --------------------------------------------------------------------------} --- Type signatures can appear everywhere, so the type is completely polymorphic--- in the indices.-TypeSig :: { Declaration }-TypeSig : Id ':' Expr   { TypeSig $1 $3 }- -- Type signatures of the form "n1 n2 n3 ... : Type", with at least -- one bound name. TypeSigs :: { [Declaration] }-TypeSigs : SpaceIds ':' Expr { map (flip TypeSig $3) $1 }+TypeSigs : SpaceIds ':' Expr { map (flip (TypeSig Relevant) $3) $1 } +-- Some declaration can include relevance information (axioms, functions)+RelTypeSig :: { Declaration }+RelTypeSig+    : '.' Id ':' Expr   { TypeSig Irrelevant $2 $4 }+    | Id ':' Expr       { TypeSig Relevant $1 $3 }++RelTypeSigs :: { [Declaration] }+RelTypeSigs : MaybeDottedIds ':' Expr { map (\ (Arg _ rel x) -> TypeSig rel x $3) $1 }+ -- A variant of TypeSigs where any sub-sequence of names can be marked--- as hidden or irrelevant using braces and dots: +-- as hidden or irrelevant using braces and dots: -- {n1 .n2} n3 .n4 {n5} .{n6 n7} ... : Type. ArgTypeSigs :: { [Arg Declaration] }-ArgTypeSigs : ArgIds ':' Expr { map (fmap (flip TypeSig $3)) $1 }+ArgTypeSigs : ArgIds ':' Expr { map (fmap (flip (TypeSig Relevant) $3)) $1 }  -- Function declarations. The left hand side is parsed as an expression to allow -- declarations like 'x::xs ++ ys = e', when '::' has higher precedence than '++'.@@ -755,7 +762,7 @@ -- Field declarations. Fields :: { [Declaration] } Fields : 'field' ArgTypeSignatures-            { let toField (Arg h rel (TypeSig x t)) = Field x (Arg h rel t) in map toField $2 }+            { let toField (Arg h rel (TypeSig _ x t)) = Field x (Arg h rel t) in map toField $2 } --REM            { let toField (h, TypeSig x t) = Field h x t in map toField $2 }  -- Mutually recursive declarations.@@ -775,16 +782,16 @@  -- Postulates. Can only contain type signatures. TODO: relax this. Postulate :: { Declaration }-Postulate : 'postulate' TypeSignatures	{ Postulate (fuseRange $1 $2) $2 }+Postulate : 'postulate' RelTypeSignatures { Postulate (fuseRange $1 $2) $2 }  -- Primitives. Can only contain type signatures. Primitive :: { Declaration } Primitive : 'primitive' TypeSignatures	{ Primitive (fuseRange $1 $2) $2 } --- Syntax declaration (To declare eg. mixfix binders) +-- Syntax declaration (To declare eg. mixfix binders) Syntax :: { Declaration } Syntax : 'syntax' Id HoleNames '=' SimpleIds  {%-  case $2 of +  case $2 of     Name _ [_] -> case mkNotation $3 $5 of       Left err -> parseError $ "malformed syntax declaration: " ++ err       Right n -> return $ Syntax $2 n@@ -802,11 +809,11 @@ HoleName :: { HoleName } HoleName : SimpleId { ExprHole $1}          | '(' '\\' SimpleId '->' SimpleId ')' { LambdaHole $3 $5 }--- Variable name hole to be implemented later. +-- Variable name hole to be implemented later.  -- Discard the interval. SimpleId :: { String }-SimpleId : id  { snd $1 } +SimpleId : id  { snd $1 }   -- Open@@ -873,6 +880,7 @@   | CompiledPragma     { $1 }   | CompiledDataPragma { $1 }   | CompiledTypePragma { $1 }+  | CompiledEpicPragma { $1 }   | ImportPragma       { $1 }   | ImpossiblePragma   { $1 }   | RecordEtaPragma    { $1 }@@ -900,6 +908,12 @@   : '{-#' 'COMPILED_DATA' PragmaName string PragmaStrings '#-}'     { CompiledDataPragma (fuseRange $1 $6) $3 (snd $4) $5 } +CompiledEpicPragma :: { Pragma }+CompiledEpicPragma+  : '{-#' 'COMPILED_EPIC' PragmaName PragmaStrings '#-}'+    { CompiledEpicPragma (fuseRange $1 $5) $3 (unwords $4) }++ RecordEtaPragma :: { Pragma } RecordEtaPragma   : '{-#' 'ETA' PragmaName '#-}'@@ -932,6 +946,17 @@ TypeSignatures1     : TypeSignatures1 semi TeX TypeSigs { reverse $4 ++ $1 }     | TeX TypeSigs			{ reverse $2 }++-- A variant of TypeSignatures which allows the irrelevance annotation (dot).+RelTypeSignatures :: { [TypeSignature] }+RelTypeSignatures+    : TeX vopen RelTypeSignatures1 TeX close   { reverse $3 }++-- Inside the layout block.+RelTypeSignatures1 :: { [TypeSignature] }+RelTypeSignatures1+    : RelTypeSignatures1 semi TeX RelTypeSigs { reverse $4 ++ $1 }+    | TeX RelTypeSigs			      { reverse $2 }  -- A variant of TypeSignatures which uses ArgTypeSigs instead of -- TypeSigs.
src/full/Agda/Syntax/Parser/StringLiterals.hs view
@@ -210,4 +210,3 @@     , ("SP", '\SP')     , ("DEL", '\DEL')     ]-
src/full/Agda/Syntax/Parser/Tokens.hs view
@@ -18,7 +18,7 @@ 	| KwSet | KwProp | KwForall | KwRecord | KwConstructor | KwField 	| KwHiding | KwUsing | KwRenaming | KwTo | KwPublic 	| KwOPTIONS | KwBUILTIN | KwLINE-        | KwCOMPILED_DATA | KwCOMPILED_TYPE | KwCOMPILED | KwIMPORT+        | KwCOMPILED_DATA | KwCOMPILED_TYPE | KwCOMPILED | KwCOMPILED_EPIC | KwIMPORT         | KwIMPOSSIBLE | KwETA | KwQuoteGoal | KwQuote | KwSyntax     deriving (Eq, Show) 
src/full/Agda/Syntax/Position.hs view
@@ -36,6 +36,7 @@   , fuseRange   , fuseRanges   , beginningOf+  , beginningOfFile      -- * Tests   , tests@@ -324,9 +325,18 @@ -- beginning, then 'noRange' is returned. beginningOf :: Range -> Range beginningOf r = case rStart r of-  Just pos -> Range [Interval { iStart = pos, iEnd = pos }]   Nothing  -> noRange+  Just pos -> posToRange pos pos +-- | @beginningOfFile r@ is an empty range (a single, empty interval)+-- at the beginning of @r@'s starting position's file. If there is no+-- such position, then an empty range is returned.+beginningOfFile :: Range -> Range+beginningOfFile r = case rStart r of+  Nothing                   -> noRange+  Just (Pn { srcFile = f }) -> posToRange p p+    where p = startPos f+ -- | @x `withRangeOf` y@ sets the range of @x@ to the range of @y@. withRangeOf :: (SetRange t, HasRange u) => t -> u -> t x `withRangeOf` y = setRange (getRange y) x@@ -395,6 +405,8 @@  prop_beginningOf r = rangeInvariant (beginningOf r) +prop_beginningOfFile r = rangeInvariant (beginningOfFile r)+ instance Arbitrary Position where   arbitrary = do     srcFile                    <- arbitrary@@ -453,5 +465,6 @@   , quickCheck' prop_fuseIntervals   , quickCheck' prop_fuseRanges   , quickCheck' prop_beginningOf+  , quickCheck' prop_beginningOfFile   , quickCheck' prop_intervalInSameFileAs   ]
src/full/Agda/Syntax/Scope/Base.hs view
@@ -32,7 +32,7 @@       { scopeName     :: A.ModuleName       , scopeParents  :: [A.ModuleName]       , scopePrivate  :: NameSpace-      , scopePublic   :: NameSpace +      , scopePublic   :: NameSpace       , scopeImported :: NameSpace -- ^ public opened names       , scopeImports  :: Map C.QName A.ModuleName       }@@ -166,6 +166,7 @@       blockOfLines "names"   (map pr $ Map.toList names) ++       blockOfLines "modules" (map pr $ Map.toList mods)     where+      pr :: (Show a, Show b) => (a,b) -> String       pr (x, y) = show x ++ " --> " ++ show y  instance Show AbstractName where@@ -462,17 +463,24 @@ scopeLookup :: forall a. InScope a => C.QName -> ScopeInfo -> [a] scopeLookup q scope = nub $ findName q root ++ imports   where+    this    :: A.ModuleName     this    = scopeCurrent scope++    current :: Scope     current = moduleScope this++    root    :: Scope     root    = mergeScopes $ current : map moduleScope (scopeParents current)      tag = inScopeTag :: InScopeTag a +    splitName :: C.QName -> [(C.QName, C.QName)]     splitName (C.QName x) = []     splitName (C.Qual x q) = (C.QName x, q) : do       (m, r) <- splitName q       return (C.Qual x m, r) +    imported :: C.QName -> [A.ModuleName]     imported q = maybe [] (:[]) $ Map.lookup q $ scopeImports root      topImports :: [a]@@ -487,21 +495,25 @@       x <- findName x (restrictPrivate $ moduleScope m)       return x +    moduleScope :: A.ModuleName -> Scope     moduleScope name = case Map.lookup name (scopeModules scope) of       Nothing -> __IMPOSSIBLE__       Just s  -> s +    lookupName :: forall a. InScope a => C.Name -> Scope -> [a]     lookupName x s = maybe [] id $ Map.lookup x (allNamesInScope s) +    findName :: forall a. InScope a => C.QName -> Scope -> [a]     findName (C.QName x)  s = lookupName x s     findName (C.Qual x q) s = do         m <- nub $ mods ++ defs -- record types will appear bot as a mod and a def         Just s' <- return $ Map.lookup m (scopeModules scope)         findName q (restrictPrivate s')       where+        mods, defs :: [ModuleName]         mods = amodName <$> lookupName x s         -- Qualified constructors are qualified by their datatype rather than a module-        defs = mnameFromList . qnameToList . anameName <$> lookupName x s +        defs = mnameFromList . qnameToList . anameName <$> lookupName x s  -- * Inverse look-up @@ -531,6 +543,7 @@       []    -> Nothing       x : _ -> Just x +    unique :: forall a . [a] -> Bool     unique []      = __IMPOSSIBLE__     unique [_]     = True     unique (_:_:_) = False@@ -576,4 +589,3 @@ -- | Takes the second component of 'inverseScopeLookup'. inverseScopeLookupModule :: A.ModuleName -> ScopeInfo -> Maybe C.QName inverseScopeLookupModule x = inverseScopeLookup (Left x)-
src/full/Agda/Syntax/Scope/Monad.hs view
@@ -403,7 +403,7 @@   current <- getCurrentModule   m <- amodName <$> resolveModule cm   let ns = namespace current m-  s <- setScopeAccess ns <$> +  s <- setScopeAccess ns <$>         (applyImportDirectiveM cm dir . restrictPrivate =<< getNamedScope m)   checkForClashes (scopeNameSpace ns s)   modifyCurrentScope (`mergeScope` s)@@ -438,4 +438,3 @@         case filter realClash modClashes of           (_, (m0:_, m1:_)):_ -> typeError $ ClashingModule (amodName m0) (amodName m1)           _                   -> return ()-
src/full/Agda/Syntax/Strict.hs view
@@ -85,4 +85,3 @@  strict :: Strict a => a -> a strict x = id $!! x-
src/full/Agda/Syntax/Translation/AbstractToConcrete.hs view
@@ -417,10 +417,10 @@         ret (C.TNoBind e)  instance ToConcrete LetBinding [C.Declaration] where-    bindToConcrete (LetBind i x t e) ret =+    bindToConcrete (LetBind i rel x t e) ret =         bindToConcrete x $ \x ->         do  (t,(e, [], [], [])) <- toConcrete (t, A.RHS e)-            ret [ C.TypeSig x t+            ret [ C.TypeSig rel x t                 , C.FunClause (C.LHS (C.IdentP $ C.QName x) [] [] [])                               e C.NoWhere                 ]@@ -498,14 +498,14 @@   toConcrete (TypeAndDef d (ScopedDef scope def)) =     withScope scope $ toConcrete (TypeAndDef d def) -  toConcrete (TypeAndDef (Axiom _ x t) (FunDef i _ cs)) =+  toConcrete (TypeAndDef (Axiom _ rel x t) (FunDef i _ cs)) =     withAbstractPrivate i $ do     t'  <- toConcreteCtx TopCtx t     cs' <- toConcrete cs     x'  <- unsafeQNameToName <$> toConcrete x-    return $ TypeSig x' t' : concat cs'+    return $ TypeSig rel x' t' : concat cs' -  toConcrete (TypeAndDef (Axiom _ x t) (DataDef i _ bs cs)) =+  toConcrete (TypeAndDef (Axiom _ _ x t) (DataDef i _ bs cs)) =     withAbstractPrivate i $     bindToConcrete tel $ \tel' -> do       t'       <- toConcreteCtx TopCtx t0@@ -519,7 +519,7 @@       mkTel _ _            = __IMPOSSIBLE__ --      mkTel n t            = error $ "mkTel " ++ show n ++ " " ++ show t -  toConcrete (TypeAndDef (Axiom _ x t) (RecDef  i _ c bs _ cs)) =+  toConcrete (TypeAndDef (Axiom _ _ x t) (RecDef  i _ c bs _ cs)) =     withAbstractPrivate i $     bindToConcrete tel $ \tel' -> do       t'       <- toConcreteCtx TopCtx t0@@ -539,29 +539,35 @@ instance ToConcrete (Constr A.Constructor) C.Declaration where   toConcrete (Constr (A.ScopedDecl scope [d])) =     withScope scope $ toConcrete (Constr d)-  toConcrete (Constr (A.Axiom i x t)) = do+  toConcrete (Constr (A.Axiom i rel x t)) = do     x' <- unsafeQNameToName <$> toConcrete x     t' <- toConcreteCtx TopCtx t-    return $ C.TypeSig x' t'+    return $ C.TypeSig rel x' t'   toConcrete (Constr d) = head <$> toConcrete d  instance ToConcrete A.Clause [C.Declaration] where   toConcrete (A.Clause lhs rhs wh) =-      bindToConcrete lhs $ \(C.LHS p wps _ _) -> do-      bindToConcrete (AsWhereDecls wh)  $ \wh' -> do-          (rhs', eqs, with, wcs) <- toConcreteCtx TopCtx rhs-          return $ FunClause (C.LHS p wps eqs with) rhs' wh' : wcs+      bindToConcrete lhs $ \lhs ->+        case lhs of+          C.LHS p wps _ _ -> do+            bindToConcrete (AsWhereDecls wh)  $ \wh' -> do+                (rhs', eqs, with, wcs) <- toConcreteCtx TopCtx rhs+                return $ FunClause (C.LHS p wps eqs with) rhs' wh' : wcs+          C.Ellipsis {} -> __IMPOSSIBLE__+          -- TODO: Is the case above impossible? Previously there was+          -- no code for it, but GHC 7's completeness checker spotted+          -- that the case was not covered.  instance ToConcrete A.Declaration [C.Declaration] where   toConcrete (ScopedDecl scope ds) =     withScope scope $ toConcrete ds -  toConcrete (Axiom i x t) = do+  toConcrete (Axiom i rel x t) = do     x' <- unsafeQNameToName <$> toConcrete x     withAbstractPrivate i $       withInfixDecl i x'  $ do       t' <- toConcreteCtx TopCtx t-      return [C.Postulate (getRange i) [C.TypeSig x' t']]+      return [C.Postulate (getRange i) [C.TypeSig rel x' t']]    toConcrete (A.Field i x t) = do     x' <- unsafeQNameToName <$> toConcrete x@@ -575,7 +581,8 @@     withAbstractPrivate i $       withInfixDecl i x'  $ do       t' <- toConcreteCtx TopCtx t-      return [C.Primitive (getRange i) [C.TypeSig x' t']]+      return [C.Primitive (getRange i) [C.TypeSig Relevant x' t']]+        -- Primitives are always relevant.    toConcrete (Definition i ts ds) = do       ixs' <- map (id -*- unsafeQNameToName) <$> toConcrete (map (DontTouchMe -*- id) ixs)@@ -585,7 +592,7 @@       where           ixs = map getInfoAndName ts           is  = map fst ixs-          getInfoAndName (A.Axiom i x _)          = (i,x)+          getInfoAndName (A.Axiom i _ x _)        = (i,x)           getInfoAndName (A.ScopedDecl scope [d]) = getInfoAndName d           getInfoAndName _                        = __IMPOSSIBLE__ @@ -642,6 +649,9 @@         A.CompiledPragma x hs -> do           x <- toConcrete x           return $ C.CompiledPragma r x hs+        A.CompiledEpicPragma x e -> do+          x <- toConcrete x+          return $ C.CompiledEpicPragma r x e         A.EtaPragma x -> C.EtaPragma r <$> toConcrete x  -- Left hand sides --------------------------------------------------------@@ -796,4 +806,3 @@     es <- mapM (toConcreteCtx InsideOperandCtx) as     bracket roundFixBrackets       $ return $ opApp (getRange cn) cn es-
src/full/Agda/Syntax/Translation/ConcreteToAbstract.hs view
@@ -52,6 +52,7 @@ import Agda.TypeChecking.Monad.Options  import {-# SOURCE #-} Agda.Interaction.Imports (scopeCheckImport)+import Agda.Interaction.Options  import Agda.Utils.Monad import Agda.Utils.Tuple@@ -61,41 +62,7 @@  #include "../../undefined.h" import Agda.Utils.Impossible----- moved here to reduce the probability of line number change--- in C.ImpossiblePragma  (test/fail/Impossible.agda)-instance ToAbstract C.Pragma [A.Pragma] where-    toAbstract (C.ImpossiblePragma _) = __IMPOSSIBLE__-    toAbstract (C.OptionsPragma _ opts) = return [ A.OptionsPragma opts ]-    toAbstract (C.CompiledTypePragma _ x hs) = do-      e <- toAbstract $ OldQName x-      case e of-        A.Def x -> return [ A.CompiledTypePragma x hs ]-        _       -> fail $ "Bad compiled type: " ++ show x  -- TODO: error message-    toAbstract (C.CompiledDataPragma _ x hs hcs) = do-      e <- toAbstract $ OldQName x-      case e of-        A.Def x -> return [ A.CompiledDataPragma x hs hcs ]-        _       -> fail $ "Not a datatype: " ++ show x  -- TODO: error message-    toAbstract (C.CompiledPragma _ x hs) = do-      e <- toAbstract $ OldQName x-      y <- case e of-            A.Def x -> return x-            A.Con _ -> fail "Use COMPILED_DATA for constructors" -- TODO-            _       -> __IMPOSSIBLE__-      return [ A.CompiledPragma y hs ]-    toAbstract (C.BuiltinPragma _ b e) = do-        e <- toAbstract e-        return [ A.BuiltinPragma b e ]-    toAbstract (C.ImportPragma _ i) = do-      addHaskellImport i-      return []-    toAbstract (C.EtaPragma _ x) = do-      e <- toAbstract $ OldQName x-      case e of-        A.Def x -> return [ A.EtaPragma x ]-        _       -> fail "Bad ETA pragma"+import Agda.ImpossibleTest (impossibleTest)  {--------------------------------------------------------------------------     Exceptions@@ -190,7 +157,7 @@     notField NiceField{} = False     notField _           = True -    build (NiceField r f _ _ x (Arg h rel e) : fs) = +    build (NiceField r f _ _ x (Arg h rel e) : fs) =         C.Pi [C.TypedBindings r $ Arg h rel [C.TBind r [BName x f] e]] $ build fs       where r = getRange x     build (d : fs)                     = C.Let noRange (notSoNiceDeclarations [d]) $ build fs@@ -431,14 +398,14 @@  -- | By default, arguments are @Relevant@. mkArg :: C.Expr -> Arg C.Expr--- mkArg (C.Dot _ e) = mkArg' Irrelevant e -mkArg e           = mkArg' Relevant e +-- mkArg (C.Dot _ e) = mkArg' Irrelevant e+mkArg e           = mkArg' Relevant e   -- | Parse a possibly dotted C.Expr as A.Expr.  Bool = True if dotted. toAbstractDot :: Precedence -> C.Expr -> ScopeM (A.Expr, Bool) toAbstractDot prec e = do-    reportSLn "scope.irrelevance" 100 $ "toAbstractDot: " ++ (render $ pretty e)  +    reportSLn "scope.irrelevance" 100 $ "toAbstractDot: " ++ (render $ pretty e)     traceCall (ScopeCheckExpr e) $ case e of     -- annotateExpr e = ScopedExpr <scope from Monad> e       C.Dot _ e -> do@@ -451,7 +418,7 @@        C.Paren _ e -> toAbstractDot TopCtx e -      e -> do +      e -> do         e <- toAbstractCtx prec e         return (e, False) @@ -459,7 +426,7 @@   toAbstract e =     traceCall (ScopeCheckExpr e) $ annotateExpr $ case e of     -- annotateExpr e = ScopedExpr <scope from Monad> e- +   -- Names       Ident x -> toAbstract (OldQName x) @@ -490,7 +457,7 @@ {- Andreas, 2010-09-06 STALE COMMENT   -- Dots are used in dot patterns and in irrelevant function space .A n -> B   -- we propagate dots out from the head of applications-  +       C.Dot r e1 -> do         t1 <- toAbstract e1         return $ A.Dot t1@@ -518,12 +485,15 @@       C.AbsurdLam r h -> return $ A.AbsurdLam (ExprRange r) h        e0@(C.Lam r bs e) -> do-        localToAbstract bs $ \(b:bs') -> do-        e        <- toAbstractCtx TopCtx e-        let info = ExprRange r-        return $ A.Lam info b $ foldr mkLam e bs'-        where-            mkLam b e = A.Lam (ExprRange $ fuseRange b e) b e+        localToAbstract bs $ \bs ->+          case bs of+            b:bs' -> do+              e        <- toAbstractCtx TopCtx e+              let info = ExprRange r+              return $ A.Lam info b $ foldr mkLam e bs'+              where+                  mkLam b e = A.Lam (ExprRange $ fuseRange b e) b e+            [] -> __IMPOSSIBLE__  -- Irrelevant non-dependent function type @@ -533,7 +503,7 @@         e2 <- toAbstractCtx TopCtx e2         let info = ExprRange r         return $ A.Fun info e1 e2-  + {- -- Other function types @@ -668,11 +638,11 @@ instance ToAbstract LetDef [A.LetBinding] where     toAbstract (LetDef d) =         case d of-            NiceDef _ c [C.Axiom _ _ _ _ x t] [C.FunDef _ _ _ _ _ _ [cl]] ->+            NiceDef _ c [C.Axiom _ _ _ _ rel x t] [C.FunDef _ _ _ _ _ _ [cl]] ->                 do  e <- letToAbstract cl                     t <- toAbstract t                     x <- toAbstract (NewName x)-                    return [ A.LetBind (LetRange $ getRange c) x t e ]+                    return [ A.LetBind (LetRange $ getRange c) rel x t e ]              -- You can't open public in a let             NiceOpen r x dirs | not (C.publicOpen dirs) -> do@@ -713,7 +683,7 @@                     i' = ExprRange (fuseRange i e)             lambda _ _ = notAValidLetBinding d --- instance ToAbstract C.Pragma [A.Pragma] +-- instance ToAbstract C.Pragma [A.Pragma] -- moved higher up to reduce the probability of line number change -- in C.ImpossiblePragma  (test/fail/Impossible.agda) @@ -754,7 +724,7 @@           printScope "data" 20 $ "Checked data " ++ show x           return $ A.DataDef (mkDefInfo x f p a r) x' pars cons         where-          conName (C.Axiom _ _ _ _ c _) = c+          conName (C.Axiom _ _ _ _ _ c _) = c           conName _ = __IMPOSSIBLE__      -- Record definitions (mucho interesting)@@ -789,19 +759,21 @@     case d of    -- Axiom-    C.Axiom r f p a x t -> do+    C.Axiom r f p a rel x t -> do       t' <- toAbstractCtx TopCtx t       y  <- freshAbstractQName f x       bindName p DefName x y-      return [ A.Axiom (mkDefInfo x f p a r) y t' ]+      return [ A.Axiom (mkDefInfo x f p a r) rel y t' ]    -- Fields     C.NiceField r f p a x t -> do       t' <- toAbstractCtx TopCtx t       y  <- freshAbstractQName f x-      unless (argRelevance t == Irrelevant) $  +      irrProj <- optIrrelevantProjections <$> pragmaOptions+      unless (argRelevance t == Irrelevant && not irrProj) $         -- Andreas, 2010-09-24: irrelevant fields are not in scope         -- this ensures that projections out of irrelevant fields cannot occur+        -- Ulf: unless you turn on --irrelevant-projections         bindName p DefName x y       return [ A.Field (mkDefInfo x f p a r) y t' ] @@ -902,7 +874,7 @@ data ConstrDecl = ConstrDecl A.ModuleName C.NiceDeclaration  instance ToAbstract ConstrDecl A.Declaration where-    toAbstract (ConstrDecl m (C.Axiom r f p a x t)) = do+    toAbstract (ConstrDecl m (C.Axiom r f p a rel x t)) = do -- rel==Relevant         t' <- toAbstractCtx TopCtx t         -- The abstract name is the qualified one         y  <- withCurrentModule m $ freshAbstractQName f x@@ -910,7 +882,7 @@         bindName p' ConName x y         withCurrentModule m $ bindName p' ConName x y         printScope "con" 15 "bound constructor"-        return $ A.Axiom (mkDefInfo x f p a r) y t'+        return $ A.Axiom (mkDefInfo x f p a r) rel y t'         where             -- An abstract constructor is private (abstract constructor means             -- abstract datatype, so the constructor should not be exported).@@ -919,6 +891,45 @@                     (_, p)           -> p      toAbstract _ = __IMPOSSIBLE__    -- a constructor is always an axiom++instance ToAbstract C.Pragma [A.Pragma] where+    toAbstract (C.ImpossiblePragma _) = impossibleTest+    toAbstract (C.OptionsPragma _ opts) = return [ A.OptionsPragma opts ]+    toAbstract (C.CompiledTypePragma _ x hs) = do+      e <- toAbstract $ OldQName x+      case e of+        A.Def x -> return [ A.CompiledTypePragma x hs ]+        _       -> fail $ "Bad compiled type: " ++ show x  -- TODO: error message+    toAbstract (C.CompiledDataPragma _ x hs hcs) = do+      e <- toAbstract $ OldQName x+      case e of+        A.Def x -> return [ A.CompiledDataPragma x hs hcs ]+        _       -> fail $ "Not a datatype: " ++ show x  -- TODO: error message+    toAbstract (C.CompiledPragma _ x hs) = do+      e <- toAbstract $ OldQName x+      y <- case e of+            A.Def x -> return x+            A.Con _ -> fail "Use COMPILED_DATA for constructors" -- TODO+            _       -> __IMPOSSIBLE__+      return [ A.CompiledPragma y hs ]+    toAbstract (C.CompiledEpicPragma _ x ep) = do+      e <- toAbstract $ OldQName x+      y <- case e of+            A.Def x -> return x+            -- A.Con _ -> fail "Use COMPILED_DATA_EPIC for constructors" -- TODO+            _       -> __IMPOSSIBLE__+      return [ A.CompiledEpicPragma y ep ]+    toAbstract (C.BuiltinPragma _ b e) = do+        e <- toAbstract e+        return [ A.BuiltinPragma b e ]+    toAbstract (C.ImportPragma _ i) = do+      addHaskellImport i+      return []+    toAbstract (C.EtaPragma _ x) = do+      e <- toAbstract $ OldQName x+      case e of+        A.Def x -> return [ A.EtaPragma x ]+        _       -> fail "Bad ETA pragma"  instance ToAbstract C.Clause A.Clause where     toAbstract (C.Clause top C.Ellipsis{} _ _ _) = fail "bad '...'" -- TODO: errors message
src/full/Agda/Syntax/Translation/InternalToAbstract.hs view
@@ -201,7 +201,7 @@             Constructor{conPars = np} <- theDef <$> getConstInfo x             scope <- getScope             let whocares = A.Underscore (Info.MetaInfo noRange scope Nothing)-                us = replicate (fromIntegral np) $ Arg Hidden Irrelevant whocares+                us = replicate (fromIntegral np) $ Arg Hidden Relevant whocares             n  <- getDefFreeVars x             es <- reify vs             apps (A.Con (AmbQ [x]), genericDrop n $ us ++ es)@@ -391,7 +391,7 @@           else lift $ A.DotP i <$> reify v       I.LitP (LitLevel {}) -> __IMPOSSIBLE__       I.LitP l             -> return (A.LitP l)-      I.ConP c _ ps -> A.ConP i (AmbQ [c]) <$> reifyArgs ps  +      I.ConP c _ ps -> A.ConP i (AmbQ [c]) <$> reifyArgs ps       where         i = PatRange noRange         mi = MetaInfo noRange emptyScopeInfo Nothing@@ -472,5 +472,3 @@          => Reify (Judgement t a) (Judgement t' a') where     reify (HasType i t) = HasType <$> reify i <*> reify t     reify (IsSort i) = IsSort <$> reify i--
src/full/Agda/Termination/CallGraph.hs view
@@ -66,7 +66,7 @@ -- A negative decrease means an increase.  The generalization -- allows the termination checker to record an increase by 1 which -- can be compensated by a following decrease by 2 which results in--- an overall decrease.  +-- an overall decrease. -- -- However, the termination checker of the paper itself terminates because -- there are only finitely many different call-matrices.  To maintain@@ -91,17 +91,17 @@  -- | Smart constructor for @Decr k :: Order@ which cuts off too big values. ----- Possible values for @k@: @- ?cutoff '<=' k '<=' ?cutoff + 1@. +-- Possible values for @k@: @- ?cutoff '<=' k '<=' ?cutoff + 1@. -- decr :: (?cutoff :: Int) => Int -> Order decr k | k < - ?cutoff = Unknown        | k > ?cutoff = Decr (?cutoff + 1)-       | otherwise   = Decr k +       | otherwise   = Decr k --- | Smart constructor for matrix shaped orders, avoiding empty and singleton matrices. +-- | Smart constructor for matrix shaped orders, avoiding empty and singleton matrices. orderMat :: Matrix Integer Order -> Order orderMat m | Matrix.isEmpty m  = Decr 0                -- 0x0 Matrix = neutral element-           | otherwise         = case isSingleton m of        +           | otherwise         = case isSingleton m of                                    Just o -> o         -- 1x1 Matrix                                    Nothing -> Mat m    -- nxn Matrix @@ -152,13 +152,13 @@ outlaw the offending types.  instance (?cutoff :: Int) => Arbitrary Order where-  arbitrary = frequency +  arbitrary = frequency     [(20, return Unknown)     ,(80, elements [- ?cutoff .. ?cutoff + 1] >>= Decr)     ] -- no embedded matrices generated for now. -} instance Arbitrary Order where-  arbitrary = frequency +  arbitrary = frequency     [(30, return Unknown)     ,(70, elements [0,1] >>= return . Decr)     ] -- no embedded matrices generated for now.@@ -190,7 +190,7 @@ {- collapse m  We assume that m codes a permutation:  each row has at most one column-that is not Un. +that is not Un.  To collapse a matrix into a single value, we take the best value of each column and multiply them.  That means if one column is all Un,@@ -234,7 +234,7 @@  infimum :: (?cutoff :: Int) => [Order] -> Order infimum (o:l) = foldl minO o l-infimum [] = __IMPOSSIBLE__ +infimum [] = __IMPOSSIBLE__  minO :: (?cutoff :: Int) => Order -> Order -> Order minO o1 o2 = case (o1,o2) of@@ -604,7 +604,7 @@ -- All tests  tests :: IO Bool-tests = runTests "Agda.Termination.CallGraph" +tests = runTests "Agda.Termination.CallGraph"   [ quickCheck' callMatrixInvariant   , quickCheck' prop_decr   , quickCheck' prop_orderSemiring
src/full/Agda/Termination/Lexicographic.hs view
@@ -229,11 +229,10 @@   [ quickCheck' prop_recBehaviour_Arbitrary   , quickCheck' prop_fromDiagonals   , quickCheck' prop_newBehaviour-  , quickCheckWith' Args{ replay     = Nothing-                        , maxSuccess = 50-                        , maxDiscard = 200-                        , maxSize    = 20-                        }+  , quickCheckWith' stdArgs{ maxSuccess = 50+                           , maxDiscard = 200+                           , maxSize    = 20+                           }                     prop_lexOrder   , quickCheck' prop_lexOrder_noArgs   ]
src/full/Agda/Termination/Matrix.hs view
@@ -211,7 +211,7 @@                 | i <- range $ toBounds $ size m1 ]  prop_add sz =-  forAll (vectorOf 3 (matrix sz :: Gen TM)) $ \[m1, m2, m3] ->+  forAll (three (matrix sz :: Gen TM)) $ \(m1, m2, m3) ->     let m' = add (+) m1 m2 in       associative (add (+)) m1 m2 m3 &&       commutative (add (+)) m1 m2 &&@@ -245,7 +245,7 @@  prop_mul sz =   sized $ \n -> resize (n `div` 2) $-  forAll (vectorOf 2 natural) $ \[c2, c3] ->+  forAll (two natural) $ \(c2, c3) ->   forAll (matrix sz :: Gen TM) $ \m1 ->   forAll (matrix (Size { rows = cols sz, cols = c2 })) $ \m2 ->   forAll (matrix (Size { rows = c2, cols = c3 })) $ \m3 ->
src/full/Agda/Termination/Semiring.hs view
@@ -73,9 +73,9 @@   mempty = 0   mappend = (+) -instance SemiRing Integer where +instance SemiRing Integer where   multiply = (*)-    +  integerSemiring :: Semiring Integer integerSemiring = Semiring { add = (+), mul = (*), zero = 0 } -- , one = 1 }
src/full/Agda/Termination/SparseMatrix.hs view
@@ -111,7 +111,7 @@   deriving (Eq, Ord)  matrixInvariant :: (Num i, Ix i) => Matrix i b -> Bool-matrixInvariant m = all (\ (MIx i j, b) -> 1 <= i && i <= rows sz +matrixInvariant m = all (\ (MIx i j, b) -> 1 <= i && i <= rows sz                                         && 1 <= j && j <= cols sz) (unM m)   && strictlySorted (MIx 0 0) (unM m)   && sizeInvariant sz@@ -125,8 +125,8 @@ strictlySorted i ((i', b) : l) = i < i' && strictlySorted i' l {- strictlySorted (MIx i j) [] = True-strictlySorted (MIx i j) ((MIx i' j', b) : l) = -  (i < i' || i == i' &&  j < j' ) && strictlySorted (MIx i' j') b +strictlySorted (MIx i j) ((MIx i' j', b) : l) =+  (i < i' || i == i' &&  j < j' ) && strictlySorted (MIx i' j') b -}  instance (Ord i, Integral i, Enum i, Show i, Show b, HasZero b) => Show (Matrix i b) where@@ -200,10 +200,10 @@ -- | Converts a sparse matrix to a sparse list of rows  toSparseRows :: (Num i, Enum i) => Matrix i b -> [(i,[(i,b)])]-toSparseRows m = aux 1 [] (unM m)  +toSparseRows m = aux 1 [] (unM m)   where aux i' [] []  = []         aux i' row [] = [(i', reverse row)]-        aux i' row ((MIx i j, b) : m) +        aux i' row ((MIx i j, b) : m)             | i' == i   = aux i' ((j,b):row) m             | otherwise = (i', reverse row) : aux i [(j,b)] m @@ -220,8 +220,8 @@ -- | Converts a matrix to a list of row lists.  toLists :: (Ord i, Integral i, Enum i, HasZero b) => Matrix i b -> [[b]]-toLists m = blowUpSparseVec emptyRow (rows sz) $ -    map (\ (i,r) -> (i, blowUpSparseVec zeroElement (cols sz) r)) $ toSparseRows m +toLists m = blowUpSparseVec emptyRow (rows sz) $+    map (\ (i,r) -> (i, blowUpSparseVec zeroElement (cols sz) r)) $ toSparseRows m --            [ [ maybe zeroElement id $ lookup (MIx { row = r, col = c }) (unM m) --            | c <- [1 .. cols sz] ] | r <- [1 .. rows sz] ]   where sz = size m@@ -263,17 +263,17 @@ -- | Returns 'Just b' iff it is a 1x1 matrix with just one entry 'b'.  isSingleton :: (Num i, Ix i) => Matrix i b -> Maybe b-isSingleton m = if (rows sz == 1 || cols sz == 1) then -    case unM m of +isSingleton m = if (rows sz == 1 || cols sz == 1) then+    case unM m of       [(_,b)] -> Just b       _ -> __IMPOSSIBLE__   else Nothing   where sz = size m  -- | Transposition-transposeSize (Size { rows = n, cols = m }) = Size { rows = m, cols = n } +transposeSize (Size { rows = n, cols = m }) = Size { rows = m, cols = n } transpose m = M { size = transposeSize (size m)-                , unM  = List.sortBy (\ (i,a) (j,b) -> compare i j) $ +                , unM  = List.sortBy (\ (i,a) (j,b) -> compare i j) $                            map (\(MIx i j, b) -> (MIx j i, b)) $ unM m }  -- | @'add' (+) m1 m2@ adds @m1@ and @m2@. Uses @(+)@ to add values.@@ -284,15 +284,15 @@ add plus m1 m2 = M (size m1) $ mergeAssocWith plus (unM m1) (unM m2)  -- | assoc list union-mergeAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)]  +mergeAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)] mergeAssocWith f [] m = m mergeAssocWith f l [] = l-mergeAssocWith f l@((i,a):l') m@((j,b):m') +mergeAssocWith f l@((i,a):l') m@((j,b):m')     | i < j = (i,a) : mergeAssocWith f l' m     | i > j = (j,b) : mergeAssocWith f l m'     | otherwise = (i, f a b) : mergeAssocWith f l' m' --- | @'intersectWith' f m1 m2@ build the pointwise conjunction @m1@ and @m2@. +-- | @'intersectWith' f m1 m2@ build the pointwise conjunction @m1@ and @m2@. --   Uses @f@ to combine non-zero values. -- -- Precondition: @'size' m1 == 'size' m2@.@@ -301,16 +301,16 @@ intersectWith f m1 m2 = M (size m1) $ interAssocWith f (unM m1) (unM m2)  -- | assoc list intersection-interAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)]  +interAssocWith :: (Ord i) => (a -> a -> a) -> [(i,a)] -> [(i,a)] -> [(i,a)] interAssocWith f [] m = [] interAssocWith f l [] = []-interAssocWith f l@((i,a):l') m@((j,b):m') +interAssocWith f l@((i,a):l') m@((j,b):m')     | i < j = interAssocWith f l' m     | i > j = interAssocWith f l m'     | otherwise = (i, f a b) : interAssocWith f l' m'  prop_add sz =-  forAll (vectorOf 3 (matrix sz :: Gen TM)) $ \[m1, m2, m3] ->+  forAll (three (matrix sz :: Gen TM)) $ \(m1, m2, m3) ->     let m' = add (+) m1 m2 in       associative (add (+)) m1 m2 m3 &&       commutative (add (+)) m1 m2 &&@@ -326,22 +326,22 @@ {- mul A B works as follows: * turn A into a list of sparse rows and the transposed B as well * form the crossproduct using the inner vector product to compute els-* the inner vector product is summing up +* the inner vector product is summing up   after intersecting with the muliplication op of the semiring -}  mul :: (Enum i, Num i, Ix i, Eq a)-    => Semiring a -> Matrix i a -> Matrix i a -> Matrix i a +    => Semiring a -> Matrix i a -> Matrix i a -> Matrix i a mul semiring m1 m2 = M (Size { rows = rows (size m1), cols = cols (size m2) }) $   filter (\ (i,b) -> b /= Semiring.zero semiring) $-  [ (MIx i j, foldl (Semiring.add semiring) (Semiring.zero semiring) $ +  [ (MIx i j, foldl (Semiring.add semiring) (Semiring.zero semiring) $                 map snd $ interAssocWith (Semiring.mul semiring) v w)     | (i,v) <- toSparseRows m1     , (j,w) <- toSparseRows $ transpose m2 ]  prop_mul sz =   sized $ \n -> resize (n `div` 2) $-  forAll (vectorOf 2 natural) $ \[c2, c3] ->+  forAll (two natural) $ \(c2, c3) ->   forAll (matrix sz :: Gen TM) $ \m1 ->   forAll (matrix (Size { rows = cols sz, cols = c2 })) $ \m2 ->   forAll (matrix (Size { rows = c2, cols = c3 })) $ \m3 ->
src/full/Agda/Termination/TermCheck.hs view
@@ -35,12 +35,14 @@ import Agda.TypeChecking.Monad import Agda.TypeChecking.Pretty import Agda.TypeChecking.Reduce (reduce, normalise, instantiate, instantiateFull)+import Agda.TypeChecking.Records (isRecordConstructor) import Agda.TypeChecking.Rules.Builtin.Coinduction import Agda.TypeChecking.Rules.Term (isType_) import Agda.TypeChecking.Substitute (abstract,raise,substs) import Agda.TypeChecking.Telescope import Agda.TypeChecking.EtaContract import Agda.TypeChecking.Monad.Builtin+import Agda.TypeChecking.Monad.Signature (isProjection) import Agda.TypeChecking.Primitive (constructorForm)  import qualified Agda.Interaction.Highlighting.Range as R@@ -431,7 +433,12 @@          (loopSort pats s)          (loop pats guarded t) -       loop :: (?cutoff :: Int) => [DeBruijnPat] -> Order -> Term -> TCM Calls+       loop+         :: (?cutoff :: Int)+         => [DeBruijnPat] -- ^ Parameters of calling function as patterns.+         -> Order         -- ^ Guardedness status of @Term@.+         -> Term          -- ^ Part of function body from which calls are to be extracted.+         -> TCM Calls        loop pats guarded t = do          t <- instantiate t          -- instantiate top-level MetaVar          suc <- sizeSuc@@ -458,7 +465,8 @@                               (True,  CoInductive) -> Term.lt .*. guarded                               (False, _)           -> Term.unknown -             -- Handles function applications.+             -- Handles function applications @g args0@.+             function :: QName -> [Arg Term] -> TCM Calls              function g args0 = do                let args1 = map unArg args0                args2 <- mapM instantiateFull args1@@ -469,8 +477,17 @@                args2 <- mapM reduceCon args2                args  <- mapM etaContract args2 +               -- If the function is a projection, then preserve guardedness+               -- for its principal argument.+               isProj <- isProjection g+               let unguards = repeat Term.unknown+               let guards = maybe unguards -- not a proj. ==> unguarded+                              (\ n -> take (n - 1) unguards ++ guarded : unguards)+                                -- proj. => preserve g. of princ. arg. (counting starts with 1)+                              isProj                -- collect calls in the arguments of this call-               calls <- collectCalls (loop pats Term.unknown) args+               calls <- collectCalls (uncurry (loop pats)) (zip guards args)+               -- calls <- collectCalls (loop pats Term.unknown) args                  reportSDoc "term.found.call" 20@@ -543,35 +560,35 @@               -- Call to defined function.               fun = function g args0 -            -- abstraction+            -- Abstraction. Preserves guardedness.             Lam h (Abs x t) -> loop (map liftDBP pats) guarded t -            -- variable+            -- Neutral term. Destroys guardedness.             Var i args -> collectCalls (loop pats Term.unknown) (map unArg args) -            -- dependent function space+            -- Dependent function space.             Pi a (Abs _ b) ->                do g1 <- loopType pats Term.unknown (unArg a)                   g2 <- loopType (map liftDBP pats) piArgumentGuarded b                   return $ g1 `Term.union` g2 -            -- non-dependent function space+            -- Non-dependent function space.             Fun a b ->                do g1 <- loopType pats Term.unknown (unArg a)                   g2 <- loopType pats piArgumentGuarded b                   return $ g1 `Term.union` g2 -            -- literal+            -- Literal.             Lit l -> return Term.empty -            -- sort+            -- Sort.             Sort s -> loopSort pats s  	    -- Unsolved metas are not considered termination problems, there 	    -- will be a warning for them anyway.             MetaV x args -> return Term.empty -            -- erased proof+            -- Erased proof.             DontCare -> return Term.empty           where@@ -614,7 +631,24 @@   (nrows + 1, ncols + 1,    (g : genericReplicate ncols Term.unknown) : map (Term.unknown :) m) +-- | Stripping off a record constructor is not counted as decrease, in+--   contrast to a data constructor.+decreaseFromConstructor :: QName -> TCM Order+decreaseFromConstructor c = do+  isRC <- isRecordConstructor c+  return $ if isRC then Term.le else Term.lt +increaseFromConstructor :: (?cutoff :: Int) => QName -> TCM Order+increaseFromConstructor c = do+  isRC <- isRecordConstructor c+  return $ if isRC then Term.le else Term.decr (-1)++{-+increaseFromConstructor c = negateOrder <$> decreaseFromConstructor c+  where negateOrder (Decr k) = Decr (- k)+        negateOrder _ = __IMPOSSIBLE__+-}+ -- | Compute the sub patterns of a 'DeBruijnPat'. subPatterns :: DeBruijnPat -> [DeBruijnPat] subPatterns p = case p of@@ -646,18 +680,29 @@   | c == c' = compareConArgs suc ts ps compareTerm' suc (Def s ts) (ConDBP s' ps)   | s == s' && Just s == suc = compareConArgs suc ts ps-compareTerm' _ t@Con{} (ConDBP _ ps)-  | any (isSubTerm t) ps = return Term.lt--- new cases for counting constructors+compareTerm' _ t@Con{} (ConDBP c ps)+  | any (isSubTerm t) ps = decreaseFromConstructor c+-- new cases for counting constructors / projections -- register also increase compareTerm' suc (Def s ts) p | Just s == suc = do     os <- mapM (\ t -> compareTerm' suc (unArg t) p) ts     return $ decr (-1) .*. infimum os+-- projections are size preserving+compareTerm' suc (Def qn ts) p = do+    isProj <- isProjection qn+    case isProj of+      -- strip off projection (n is the number of the record argument, counting starts with 1)+      Just n | length ts >= n && n >= 1 ->+        compareTerm' suc (unArg (ts !! (n - 1))) p+      -- not a projection or underapplied:+      _ -> return Term.unknown compareTerm' suc (Con c ts) p = do     os <- mapM (\ t -> compareTerm' suc (unArg t) p) ts-    return $ if (null os) then Term.unknown else decr (-1) .*. infimum os+    oc <- increaseFromConstructor c+    return $ if (null os) then Term.unknown else oc .*. infimum os compareTerm' _ _ _ = return Term.unknown +-- TODO: isSubTerm should compute a size difference (Term.Order) isSubTerm :: Term -> DeBruijnPat -> Bool isSubTerm t p = equal t p || properSubTerm t p   where@@ -699,4 +744,5 @@ compareVar i (ConDBP c ps) = do   os <- mapM (compareVar i) ps   let o = Term.supremum os-  return $ (Term..*.) Term.lt o+  oc <- decreaseFromConstructor c+  return $ (Term..*.) oc o
src/full/Agda/TypeChecker.hs view
@@ -11,4 +11,3 @@ import Agda.TypeChecking.Rules.LHS     as Rules import Agda.TypeChecking.Rules.Record  as Rules import Agda.TypeChecking.Rules.Term    as Rules-
src/full/Agda/TypeChecking/Abstract.hs view
@@ -64,4 +64,3 @@  instance (AbstractTerm a, AbstractTerm b) => AbstractTerm (a, b) where   abstractTerm u (x, y) = (abstractTerm u x, abstractTerm u y)-
src/full/Agda/TypeChecking/CompiledClause.hs view
@@ -114,4 +114,3 @@     sep [ text ("case " ++ show n ++ " of")         , nest 2 $ pretty bs         ]-
src/full/Agda/TypeChecking/CompiledClause/Match.hs view
@@ -18,23 +18,26 @@ import Agda.Utils.Impossible #include "../../undefined.h" -matchCompiled :: CompiledClauses -> Args -> TCM (Reduced (Blocked Args) Term)+matchCompiled :: CompiledClauses -> MaybeReducedArgs -> TCM (Reduced (Blocked Args) Term) matchCompiled c args = match c args id [] -type Stack = [(CompiledClauses, Args, Args -> Args)]+type Stack = [(CompiledClauses, MaybeReducedArgs, Args -> Args)]  -- TODO: literal/constructor pattern conflict (for Nat) -match :: CompiledClauses -> Args -> (Args -> Args) -> Stack -> TCM (Reduced (Blocked Args) Term)-match Fail args patch stack = return $ NoReduction $ NotBlocked (patch args)+match :: CompiledClauses -> MaybeReducedArgs -> (Args -> Args) -> Stack -> TCM (Reduced (Blocked Args) Term)+match Fail args patch stack = return $ NoReduction $ NotBlocked (patch $ map ignoreReduced args) match (Done _ t) args _ _ =-  return $ YesReduction $ substs (reverse $ map unArg args) t+  return $ YesReduction $ substs (reverse $ map (unArg . ignoreReduced) args) t match (Case n bs) args patch stack = do-  let (args0, Arg h r v, args1) = extractNthElement' n args-  w  <- unfoldCorecursion =<< reduceB v+  let (args0, MaybeRed red (Arg h r v0), args1) = extractNthElement' n args+  w  <- case red of+          Reduced b  -> return $ fmap (const v0) b+          NotReduced ->+            unfoldCorecursion =<< instantiate v0   cv <- constructorForm $ ignoreBlocking w   let v      = ignoreBlocking w-      args'  = args0 ++ [Arg h r v] ++ args1+      args'  = args0 ++ [MaybeRed red $ Arg h r v] ++ args1       stack' = maybe [] (\c -> [(c, args', patch)]) (catchAllBranch bs)                ++ stack       patchLit args = patch (args0 ++ [Arg h r v] ++ args1)@@ -43,8 +46,8 @@         where (args0, args1') = splitAt n args               (vs, args1)     = splitAt m args1'   case w of-    Blocked x _            -> return $ NoReduction $ Blocked x (patch args')-    NotBlocked (MetaV x _) -> return $ NoReduction $ Blocked x (patch args')+    Blocked x _            -> return $ NoReduction $ Blocked x (patch $ map ignoreReduced args')+    NotBlocked (MetaV x _) -> return $ NoReduction $ Blocked x (patch $ map ignoreReduced args')     NotBlocked (Lit l) -> case Map.lookup l (litBranches bs) of       Nothing -> match' stack''       Just cc -> match cc (args0 ++ args1) patchLit stack''@@ -52,18 +55,18 @@         stack'' = (++ stack') $ case cv of           Con c vs -> case Map.lookup c (conBranches bs) of             Nothing -> []-            Just cc -> [(cc, args0 ++ vs ++ args1, patchCon c (length vs))]+            Just cc -> [(cc, args0 ++ map (MaybeRed red) vs ++ args1, patchCon c (length vs))]           _        -> []     NotBlocked (Con c vs) -> case Map.lookup c (conBranches bs) of       Nothing -> match' stack'-      Just cc -> match cc (args0 ++ vs ++ args1) (patchCon c (length vs)) stack'-    NotBlocked _ -> return $ NoReduction $ NotBlocked (patch args')+      Just cc -> match cc (args0 ++ map (MaybeRed red) vs ++ args1)+                          (patchCon c (length vs)) stack'+    NotBlocked _ -> return $ NoReduction $ NotBlocked (patch $ map ignoreReduced args')  match' :: Stack -> TCM (Reduced (Blocked Args) Term) match' ((c, args, patch):stack) = match c args patch stack match' [] = typeError $ GenericError "Incomplete pattern matching" -unfoldCorecursion (NotBlocked (Def f args)) =-  unfoldDefinition True reduceB (Def f []) f args-unfoldCorecursion w = return w-+unfoldCorecursion v = case v of+  Def f args -> unfoldDefinition True reduceB (Def f []) f args+  _          -> reduceB v
src/full/Agda/TypeChecking/CompiledClause/Match.hs-boot view
@@ -1,9 +1,10 @@  module Agda.TypeChecking.CompiledClause.Match where +import Agda.Syntax.Common import Agda.Syntax.Internal import Agda.TypeChecking.Monad.Base import Agda.TypeChecking.CompiledClause -matchCompiled :: CompiledClauses -> Args -> TCM (Reduced (Blocked Args) Term)+matchCompiled :: CompiledClauses -> MaybeReducedArgs -> TCM (Reduced (Blocked Args) Term) 
src/full/Agda/TypeChecking/Constraints.hs view
@@ -130,4 +130,3 @@       InstS{} -> return []       -- Open (whatever that means)       Open -> __IMPOSSIBLE__-
src/full/Agda/TypeChecking/Conversion.hs view
@@ -93,7 +93,7 @@               m <- reduceB m               n <- reduceB n               case (m, n) of-                _ | isNeutral m && isNeutral n ->+                _ | isMeta m || isMeta n || (isNeutral m && isNeutral n) ->                     compareAtom cmp a' (ignoreBlocking m) (ignoreBlocking n)                 _ -> do                   (tel, m') <- etaExpandRecord r ps $ ignoreBlocking m@@ -103,9 +103,13 @@             else compareAtom cmp a' m n         _ -> compareAtom cmp a' m n   where-    isNeutral Blocked{}          = False+-- Andreas, 2010-10-11: allowing neutrals to be blocked things does not seem+-- to change Agda's behavior+--    isNeutral Blocked{}          = False     isNeutral (NotBlocked Con{}) = False     isNeutral _                  = True+    isMeta (NotBlocked MetaV{})  = True+    isMeta _                     = False      equalFun (a,t) m n = do         name <- freshName_ (suggest $ unEl t)@@ -152,6 +156,9 @@ compareAtom cmp t m n =     verboseBracket "tc.conv.atom" 5 "compareAtom" $     catchConstraint (ValueCmp cmp t m n) $ do+      -- constructorForm changes literal to constructors+      -- Andreas: what happens if I cut out the eta expansion here?+      -- Answer: Triggers issue 245, does not resolve 348       mb <- traverse constructorForm =<< etaExpandBlocked =<< reduceB m       nb <- traverse constructorForm =<< etaExpandBlocked =<< reduceB n       let m = ignoreBlocking mb@@ -689,4 +696,3 @@             (_       , DLub{}  )             -> buildConstraint (SortCmp CmpEq s1 s2)     where 	notEq s1 s2 = typeError $ UnequalSorts s1 s2-
src/full/Agda/TypeChecking/Coverage.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP, FlexibleContexts, TupleSections #-}+{-# LANGUAGE CPP, FlexibleContexts #-}  module Agda.TypeChecking.Coverage where @@ -24,6 +24,7 @@ import Agda.TypeChecking.Rules.LHS.Unify import Agda.TypeChecking.Rules.LHS.Instantiate import Agda.TypeChecking.Rules.LHS+import qualified Agda.TypeChecking.Rules.LHS.Split as Split  import Agda.TypeChecking.Coverage.Match @@ -54,11 +55,35 @@  data SplitError = NotADatatype Type         -- ^ neither data type nor record                 | IrrelevantDatatype Type   -- ^ data type, but in irrelevant position+                | CoinductiveDatatype Type  -- ^ coinductive data type                 | NoRecordConstructor Type  -- ^ record type, but no constructor                 | CantSplit QName Telescope Args Args [Term]                 | GenericSplitError String   deriving (Show) +instance PrettyTCM SplitError where+  prettyTCM err = case err of+    NotADatatype t -> fsep $+      pwords "Cannot pattern match on non-datatype" ++ [prettyTCM t]+    IrrelevantDatatype t -> fsep $+      pwords "Cannot pattern match on datatype" ++ [prettyTCM t] +++      pwords "since it is declared irrelevant"+    CoinductiveDatatype t -> fsep $+      pwords "Cannot pattern match on the coinductive type" ++ [prettyTCM t]+    NoRecordConstructor t -> fsep $+      pwords "Cannot pattern match on record" ++ [prettyTCM t] +++      pwords "because it has no constructor"+    CantSplit c tel cIxs gIxs flex -> addCtxTel tel $ vcat+      [ fsep $ pwords "Cannot pattern match on constructor" ++ [prettyTCM c <> text ","] +++               pwords "since the inferred indices"+      , nest 2 $ prettyTCM cIxs+      , fsep $ pwords "cannot be unified with the expected indices"+      , nest 2 $ prettyTCM gIxs+      , fsep $ pwords "for some" ++ punctuate comma (map prettyTCM flex)+      ]+    GenericSplitError s -> fsep $+      pwords "Split failed:" ++ pwords s+ instance Error SplitError where   noMsg  = strMsg ""   strMsg = GenericSplitError@@ -69,7 +94,7 @@ typeOfVar tel n   | n >= len  = __IMPOSSIBLE__   | otherwise = fmap snd  -- throw away name, keep Arg Type-                  $ ts !! fromIntegral n +                  $ ts !! fromIntegral n   where     len = genericLength ts     ts  = reverse $ telToList tel@@ -126,32 +151,38 @@     No             -> return (Set.empty, [ps])     Block Nothing  -> fail $ "blocked by dot pattern"     Block (Just x) -> do-      r <- split tel perm ps x+      r <- split Inductive tel perm ps x       case r of         Left err  -> case err of           CantSplit c _ _ _ _   -> typeError $ CoverageCantSplitOn c           NotADatatype a        -> typeError $ CoverageCantSplitType a           IrrelevantDatatype a  -> typeError $ CoverageCantSplitType a+          CoinductiveDatatype a -> typeError $ CoverageCantSplitType a           NoRecordConstructor a -> typeError $ CoverageCantSplitType a           GenericSplitError s   -> fail $ "failed to split: " ++ s         Right scs -> (Set.unions -*- concat) . unzip <$> mapM (cover cs) scs --- | Check that a type is a non-irrelevant datatype or a record with named constructor.-isDatatype :: (MonadTCM tcm, MonadException SplitError tcm) => -              Arg Type -> tcm (QName, [Arg Term], [Arg Term], [QName])-isDatatype at = do+-- | Check that a type is a non-irrelevant datatype or a record with+-- named constructor. Unless the 'Induction' argument is 'CoInductive'+-- the data type must be inductive.+isDatatype :: (MonadTCM tcm, MonadException SplitError tcm) =>+              Induction -> Arg Type ->+              tcm (QName, [Arg Term], [Arg Term], [QName])+isDatatype ind at = do   let t = unArg at   t' <- normalise t   case unEl t' of     Def d args -> do       def <- theDef <$> getConstInfo d       case def of-        Datatype{dataPars = np, dataCons = cs, dataInduction = Inductive} -> -          if argRelevance at == Irrelevant -           then throwException $ IrrelevantDatatype t-           else do-             let (ps, is) = genericSplitAt np args-             return (d, ps, is, cs)+        Datatype{dataPars = np, dataCons = cs, dataInduction = i}+          | i == CoInductive && ind /= CoInductive ->+              throwException $ CoinductiveDatatype t+          | argRelevance at == Irrelevant ->+              throwException $ IrrelevantDatatype t+          | otherwise -> do+              let (ps, is) = genericSplitAt np args+              return (d, ps, is, cs)         Record{recPars = np, recCon = c, recNamedCon = hasCon} ->           if hasCon then return (d, args, [], [c])            else throwException $ NoRecordConstructor t@@ -303,23 +334,33 @@  -- | split Δ x ps. Δ ⊢ ps, x ∈ Δ (deBruijn index) splitClause :: Clause -> Nat -> TCM (Either SplitError Covering)-splitClause c x = split (clauseTel c) (clausePerm c) (clausePats c) x+splitClause c x =+  split Inductive (clauseTel c) (clausePerm c) (clausePats c) x  splitClauseWithAbs :: Clause -> Nat -> TCM (Either SplitError (Either SplitClause Covering))-splitClauseWithAbs c x = split' (clauseTel c) (clausePerm c) (clausePats c) x+splitClauseWithAbs c x =+  split' Inductive (clauseTel c) (clausePerm c) (clausePats c) x -split :: MonadTCM tcm => Telescope -> Permutation -> [Arg Pattern] -> Nat ->-         tcm (Either SplitError Covering)-split tel perm ps x = do-  r <- split' tel perm ps x+split :: MonadTCM tcm+      => Induction+         -- ^ Coinductive constructors are allowed if this argument is+         -- 'CoInductive'.+      -> Telescope -> Permutation -> [Arg Pattern] -> Nat+      -> tcm (Either SplitError Covering)+split ind tel perm ps x = do+  r <- split' ind tel perm ps x   return $ case r of     Left err        -> Left err     Right (Left _)  -> Right []     Right (Right c) -> Right c -split' :: MonadTCM tcm => Telescope -> Permutation -> [Arg Pattern] -> Nat ->-         tcm (Either SplitError (Either SplitClause Covering))-split' tel perm ps x = liftTCM $ runExceptionT $ do+split' :: MonadTCM tcm+       => Induction+          -- ^ Coinductive constructors are allowed if this argument is+          -- 'CoInductive'.+       -> Telescope -> Permutation -> [Arg Pattern] -> Nat+       -> tcm (Either SplitError (Either SplitClause Covering))+split' ind tel perm ps x = liftTCM $ runExceptionT $ do    debugInit tel perm x ps @@ -345,8 +386,11 @@    -- Check that t is a datatype or a record   -- Andreas, 2010-09-21, isDatatype now directly throws an exception if it fails-  (d, pars, ixs, cons) <- isDatatype t+  (d, pars, ixs, cons) <- isDatatype ind t +  whenM (optWithoutK <$> pragmaOptions) $+    Split.wellFormedIndices pars ixs+   -- Compute the neighbourhoods for the constructors   ns <- concat <$> mapM (computeNeighbourhood delta1 delta2 perm d pars ixs hix hps) cons   case ns of@@ -354,7 +398,7 @@       let absurd = VarP "()"       return $ Left $ SClause                { scTel  = telFromList $ telToList delta1 ++-                                        [fmap ("()",) t] ++ -- add name "()"+                                        [fmap ((,) "()") t] ++ -- add name "()"                                         telToList delta2                , scPerm = perm                , scPats = plugHole absurd hps
src/full/Agda/TypeChecking/Coverage/Match.hs view
@@ -116,4 +116,3 @@     | c == c'   -> matchPats mlit ps qs     | otherwise -> No   LitMP _ -> __IMPOSSIBLE__-
src/full/Agda/TypeChecking/Datatypes.hs view
@@ -71,5 +71,3 @@                           , datatypeIxs    = is                           }     _ -> return Nothing--
src/full/Agda/TypeChecking/DisplayForm.hs view
@@ -77,4 +77,3 @@     (Lit l, Lit l')      | l == l' -> return []     (p, v)               | p == v  -> return []     _                              -> fail ""-
src/full/Agda/TypeChecking/Empty.hs view
@@ -30,10 +30,9 @@       let tel = telFromList $ telToList tel0 ++ [defaultArg ("_", t)]           ps  = [ Arg h r $ VarP x | Arg h r (x, _) <- telToList tel ] -      r <- split tel (idP $ size tel) ps 0+      r <- split Inductive tel (idP $ size tel) ps 0        case r of         Left err  -> typeError $ ShouldBeEmpty t []         Right []  -> return []         Right cs  -> typeError $ ShouldBeEmpty t $ map (unArg . last . scPats) cs-
src/full/Agda/TypeChecking/Errors.hs view
@@ -110,6 +110,9 @@     GenericError{}                           -> "GenericError"     IlltypedPattern{}                        -> "IlltypedPattern"     IncompletePatternMatching{}              -> "IncompletePatternMatching"+    IndexFreeInParameter{}                   -> "IndexFreeInParameter"+    IndexVariablesNotDistinct{}              -> "IndexVariablesNotDistinct"+    IndicesNotConstructorApplications{}      -> "IndicesNotConstructorApplications"     InternalError{}                          -> "InternalError"     InvalidPattern{}                         -> "InvalidPattern"     LocalVsImportedModuleClash{}             -> "LocalVsImportedModuleClash"@@ -155,6 +158,7 @@     TooManyArgumentsInLHS{}                  -> "TooManyArgumentsInLHS"     TooManyFields{}                          -> "TooManyFields"     SplitOnIrrelevant{}                      -> "SplitOnIrrelevant"+    DefinitionIsIrrelevant{}                 -> "DefinitionIsIrrelevant"     VariableIsIrrelevant{}                   -> "VariableIsIrrelevant"     UnequalRelevance{}                       -> "UnequalRelevance"     UnequalHiding{}                          -> "UnequalHiding"@@ -240,6 +244,16 @@               pwords "does not construct an element of" ++ [prettyTCM t]             ConstructorPatternInWrongDatatype c d -> fsep $               [prettyTCM c] ++ pwords "is not a constructor of the datatype" ++ [prettyTCM d]+            IndicesNotConstructorApplications is ->+              fsep (pwords "The following indices are not constructors applied to variables:")+              $$ nest 2 (vcat $ map prettyTCM is)+            IndexVariablesNotDistinct is ->+              fsep (pwords "The variables in the following indices are not distinct:")+              $$ nest 2 (vcat $ map prettyTCM is)+            IndexFreeInParameter i pars ->+              fsep (pwords "The index" ++ [prettyTCM (I.Var i [])] +++                    pwords "is free in the following parameters:")+              $$ nest 2 (vcat $ map prettyTCM pars)             ShadowedModule [] -> __IMPOSSIBLE__             ShadowedModule ms@(m : _) -> fsep $               pwords "Duplicate definition of module" ++ [prettyTCM m <> text "."] ++@@ -274,6 +288,8 @@             SplitOnIrrelevant p t -> fsep $                 pwords "cannot pattern match" ++ [prettyA p] ++                 pwords "against irrelevant type" ++ [prettyTCM t]+            DefinitionIsIrrelevant x -> fsep $+                text "identifier" : prettyTCM x : pwords "is declared irrelevant, so it cannot be used here"             VariableIsIrrelevant x -> fsep $                 text "variable" : prettyTCM x : pwords "is declared irrelevant, so it cannot be used here"  	    UnequalTerms cmp s t a -> fsep $@@ -571,7 +587,7 @@ 	    fsep $ pwords "when checking the definition of" ++ [prettyTCM x] 	CheckDataDef _ x ps cs _ -> 	    fsep $ pwords "when checking the definition of" ++ [prettyTCM x]-	CheckConstructor d _ _ (A.Axiom _ c _) _ -> fsep $+	CheckConstructor d _ _ (A.Axiom _ _ c _) _ -> fsep $ 	    pwords "when checking the constructor" ++ [prettyTCM c] ++ 	    pwords "in the declaration of" ++ [prettyTCM d] 	CheckConstructor _ _ _ _ _ -> __IMPOSSIBLE__@@ -631,17 +647,16 @@ 		bind (C.DomainFree h x) = C.TypedBindings r $ Arg h Relevant [C.TBind r [x] (C.Underscore r Nothing)] 		  where r = getRange x -                name (D.Axiom _ _ _ _ n _) = n+                name (D.Axiom _ _ _ _ _ n _) = n                 name _                     = __IMPOSSIBLE__  	    simpleDecl d = case d of-		D.Axiom _ _ _ _ x e		       -> C.TypeSig x e+		D.Axiom _ _ _ _ rel x e		       -> C.TypeSig rel x e 		D.NiceField _ _ _ _ x e	               -> C.Field x e-		D.PrimitiveFunction r _ _ _ x e	       -> C.Primitive r [C.TypeSig x e]+		D.PrimitiveFunction r _ _ _ x e	       -> C.Primitive r [C.TypeSig Relevant x e] 		D.NiceDef r ds _ _		       -> C.Mutual r ds 		D.NiceModule r _ _ x tel _	       -> C.Module r x tel [] 		D.NiceModuleMacro r _ _ x tel e op dir -> C.ModuleMacro r x tel e op dir 		D.NiceOpen r x dir		       -> C.Open r x dir 		D.NiceImport r x as op dir	       -> C.Import r x as op dir 		D.NicePragma _ p		       -> C.Pragma p-
src/full/Agda/TypeChecking/EtaContract.hs view
@@ -59,4 +59,3 @@           (etaContractRecord r c args)           (return t)     eta t = return t-
src/full/Agda/TypeChecking/Forcing.hs view
@@ -71,4 +71,3 @@       where         upd a | i `elem` xs = a { argRelevance = Forced }               | otherwise   = a-
src/full/Agda/TypeChecking/Free.hs view
@@ -122,4 +122,3 @@ freeInIgnoringSorts :: Free a => Nat -> a -> Bool freeInIgnoringSorts v t =   v `Set.member` allVars (freeVars' FreeConf{ fcIgnoreSorts = True } t)-
src/full/Agda/TypeChecking/Implicit.hs view
@@ -39,4 +39,3 @@       | otherwise = find (i + 1) x ts     find i x (Arg NotHidden _ _ : _) = NoSuchName x     find i x []			     = NoSuchName x-
src/full/Agda/TypeChecking/Injectivity.hs view
@@ -219,4 +219,3 @@       args <- metaArgs args       return $ Con c args     metaPat (LitP l) = return $ Lit l-
src/full/Agda/TypeChecking/Level.hs view
@@ -165,4 +165,3 @@             ns = [ m | Plus m a'  <- bs, a == a', m > n ]      lub (Max as) (Max bs) = maxim $ as ++ bs-
src/full/Agda/TypeChecking/MetaVars.hs view
@@ -65,7 +65,7 @@ 	    InstV{}                        -> False 	    InstS{}                        -> False 	    Open{}                         -> False-    reportSLn "tc.meta.blocked" 12 $ +    reportSLn "tc.meta.blocked" 12 $       if r then "  yes, because " ++ show i else "  no"     return r @@ -178,7 +178,7 @@     , nest 2 $ prettyTCM vs <+> text "|-"     , nest 2 $ text (show x) <+> text ":" <+> prettyTCM t     ]-  etaExpandMeta [SingletonRecords, Levels] x+  etaExpandMetaSafe x   return $ MetaV x vs  newTelMeta :: MonadTCM tcm => Telescope -> tcm Args@@ -195,10 +195,13 @@   tm <- reduce tm   case funView tm of       FunV (Arg h r a) _  -> do-          -- Andreas, 2010-09-24 skip irrelevant record fields when eta-expanding a meta var-	  arg  <- (Arg h r) <$>  -                    if r == Irrelevant then return DontCare-                     else newValueMetaCtx (telePi_ tel a) ctx+	  arg  <- (Arg h r) <$>+                   {-+                     -- Andreas, 2010-09-24 skip irrelevant record fields when eta-expanding a meta var+                     -- Andreas, 2010-10-11 this is WRONG, see Issue 347+                    if r == Irrelevant then return DontCare else+                    -}+                     newValueMetaCtx (telePi_ tel a) ctx 	  args <- newArgsMetaCtx (El s tm `piApply` [arg]) tel ctx 	  return $ arg : args       NoFunV _    -> return []@@ -249,16 +252,18 @@ 	    addConstraints c 	    return $ MetaV x vs +-- | Auxiliary function to create a postponed type checking problem.+unblockedTester :: MonadTCM tcm => Type -> tcm Bool+unblockedTester t = do+  t <- reduceB $ unEl t+  case t of+    Blocked{}          -> return False+    NotBlocked MetaV{} -> return False+    _                  -> return True+ postponeTypeCheckingProblem_ :: MonadTCM tcm => A.Expr -> Type -> tcm Term-postponeTypeCheckingProblem_ e t =-  postponeTypeCheckingProblem e t unblock-  where-    unblock = do-      t <- reduceB $ unEl t-      case t of-        Blocked{}          -> return False-        NotBlocked MetaV{} -> return False-        _                  -> return True+postponeTypeCheckingProblem_ e t = do+  postponeTypeCheckingProblem e t (unblockedTester t)  postponeTypeCheckingProblem :: MonadTCM tcm => A.Expr -> Type -> TCM Bool -> tcm Term postponeTypeCheckingProblem e t unblock = do@@ -276,8 +281,14 @@ etaExpandListeners m = do   ms <- getMetaListeners m   clearMetaListeners m	-- we don't really have to do this-  mapM_ (etaExpandMeta allMetaKinds) ms+  -- Andreas 2010-10-15: do not expand record mvars, lazyness needed for irrelevance+  mapM_ etaExpandMetaSafe ms+--  mapM_ (etaExpandMeta allMetaKinds) ms +-- | Do safe eta-expansions for meta (@SingletonRecords,Levels@).+etaExpandMetaSafe :: MonadTCM tcm => MetaId -> tcm ()+etaExpandMetaSafe = etaExpandMeta [SingletonRecords,Levels]+ -- | Various kinds of metavariables.  data MetaKind =@@ -297,9 +308,8 @@ -- | Eta expand a metavariable, if it is of the specified kind. --   Don't do anything if the metavariable is a blocked term. etaExpandMeta :: MonadTCM tcm => [MetaKind] -> MetaId -> tcm ()-etaExpandMeta kinds m =-  verboseBracket "tc.meta.eta" 10 ("etaExpandMeta " ++ show m) $-  whenM (isEtaExpandable m) $ do+etaExpandMeta kinds m = whenM (isEtaExpandable m) $ do+  verboseBracket "tc.meta.eta" 20 ("etaExpandMeta " ++ show m) $ do   meta       <- lookupMeta m   let HasType _ a = mvJudgement meta   TelV tel b <- telViewM a@@ -315,7 +325,7 @@ 	let expand = do               u <- withMetaInfo (mvInfo meta) $ newRecordMetaCtx r ps tel args               inContext [] $ addCtxTel tel $ do-                verboseS "tc.meta.eta" 20 $ do+                verboseS "tc.meta.eta" 15 $ do                   du <- prettyTCM u                   liftIO $ LocIO.putStrLn $ "eta expanding: " ++ show m ++ " --> " ++ show du                 noConstraints $ assignV b m args u  -- should never produce any constraints@@ -398,7 +408,7 @@             let pr (Var n []) = text (show n)                 pr (Def c []) = prettyTCM c                 pr _          = text ".."-            in vcat +            in vcat                  [ text "mvar args:" <+> sep (map (pr . unArg) args)                  , text "fvars rhs:" <+> sep (map (text . show) $ Set.toList fvs)                  ]@@ -407,6 +417,13 @@ 	reportSDoc "tc.meta.assign" 15 $ 	    text "preparing to instantiate: " <+> prettyTCM v +        -- Andreas, 2010-10-15 I want to see whether rhd is blocked+        reportSDoc "tc.meta.assign" 25 $ do+          v0 <- reduceB v+          case v0 of+            Blocked m0 _ -> text "blocked on:" <+> prettyTCM m0+            NotBlocked{} -> text "not blocked"+ 	-- Check that the x doesn't occur in the right hand side 	v <- liftTCM $ occursCheck x (map unArg ids) v @@ -576,8 +593,8 @@     | otherwise	= fail "invalid parameters"     where 	vars = [ Arg h r i | Arg h r (Var i []) <- args ]-         + isVar :: Arg Term -> Bool isVar (Arg _ _ (Var _ [])) = True isVar _			 = False@@ -598,4 +615,3 @@ 		updV _ _	     = __IMPOSSIBLE__  		updS s = assignS mI args s-
src/full/Agda/TypeChecking/MetaVars.hs-boot view
@@ -7,3 +7,4 @@ assignTerm :: MonadTCM tcm => MetaId -> Term -> tcm () assignSort :: MonadTCM tcm => MetaId -> Sort -> tcm () +etaExpandMetaSafe :: MonadTCM tcm => MetaId -> tcm ()
src/full/Agda/TypeChecking/MetaVars/Occurs.hs view
@@ -25,7 +25,7 @@ #include "../../undefined.h"  data OccursCtx = Flex | Rigid-  deriving (Eq)+  deriving (Eq, Show)  abort :: OccursCtx -> TypeError -> TCM () abort Flex  _   = patternViolation@@ -35,6 +35,8 @@ class Occurs t where   occurs :: OccursCtx -> MetaId -> [Nat] -> t -> TCM t +-- | When assigning @m xs := v@, check that @m@ does not occur in @v@+--   and that the free variables of @v@ are contained in @xs@. occursCheck :: MonadTCM tcm => MetaId -> [Nat] -> Term -> tcm Term occursCheck m xs v = liftTCM $ do   v <- instantiate v@@ -80,7 +82,7 @@       NotBlocked v -> occurs' ctx v     where       occurs' ctx v = case v of-        Var i vs   -> do+        Var i vs   -> do         -- abort Rigid turns this error into PatternErr           unless (i `elem` xs) $ abort ctx $ MetaCannotDependOn m xs i           Var i <$> occ vs         Lam h f	    -> Lam h <$> occ f@@ -97,6 +99,10 @@              -- The arguments are in a flexible position             (MetaV m' <$> occurs Flex m xs vs) `catchError` \err -> do+              reportSDoc "tc.meta.kill" 25 $ vcat+                [ text $ "error during flexible occurs check, we are " ++ show ctx+                , text $ show (errError err)+                ]               case errError err of                 -- On pattern violations try to remove offending                 -- flexible occurrences (if in a rigid context)@@ -205,6 +211,8 @@   let perm = Perm (size kills)              [ i | (i, Arg _ _ False) <- zip [0..] (reverse kills) ]   m' <- newMeta (mvInfo mv) (mvPriority mv) perm (HasType undefined a)+  -- Andreas, 2010-10-15 eta expand new meta variable if necessary+  etaExpandMetaSafe m'   let vars = reverse [ Arg h r (Var i []) | (i, Arg h r False) <- zip [0..] kills ]       hs   = reverse [ argHiding a | a <- kills ]       lam h b = Lam h (Abs "v" b)@@ -234,4 +242,3 @@   - We don't need to check for success, we can just     continue occurs checking. -}-
src/full/Agda/TypeChecking/Monad.hs view
@@ -33,5 +33,3 @@ import Agda.TypeChecking.Monad.State import Agda.TypeChecking.Monad.Statistics import Agda.TypeChecking.Monad.Trace--
src/full/Agda/TypeChecking/Monad/Base.hs view
@@ -391,16 +391,19 @@ defaultDisplayForm :: QName -> [Open DisplayForm] defaultDisplayForm c = [] -data Definition = Defn { defName     :: QName-		       , defType     :: Type	-- type of the lifted definition-		       , defDisplay  :: [Open DisplayForm]-		       , defMutual   :: MutualId-		       , theDef	     :: Defn-		       }+data Definition = Defn+  { defRelevance :: Relevance -- ^ Some defs can be irrelevant (but not hidden).+  , defName      :: QName+  , defType      :: Type	      -- ^ Type of the lifted definition.+  , defDisplay   :: [Open DisplayForm]+  , defMutual    :: MutualId+  , theDef	 :: Defn+  }     deriving (Typeable, Data, Show)  type HaskellCode = String type HaskellType = String+type EpicCode    = String  data HaskellRepresentation       = HsDefn HaskellType HaskellCode@@ -417,6 +420,7 @@  data Defn = Axiom             { axHsDef   :: Maybe HaskellRepresentation+            , axEpDef   :: Maybe EpicCode             } 	  | Function             { funClauses        :: [Clauses]@@ -427,6 +431,12 @@             , funAbstr          :: IsAbstract             , funDelayed        :: Delayed               -- ^ Are the clauses of this definition delayed?+            , funProjection     :: Maybe Int+              -- ^ Is it a record projection?+              --   If yes, then return the index of the record argument.+              --   Start counting with 1, because 0 means that it is already+              --   applied to the record. (Can happen in module instantiation.)+              --   This information is used in the termination checker.             } 	  | Datatype             { dataPars           :: Nat           -- nof parameters@@ -470,6 +480,7 @@             , primClauses :: Maybe [Clauses]               -- ^ 'Nothing' for primitive functions, @'Just'               -- something@ for builtin functions.+            , primCompiled :: Maybe CompiledClauses             }             -- ^ Primitive or builtin functions.     deriving (Typeable, Data, Show)@@ -484,10 +495,27 @@ data Reduced no yes = NoReduction no | YesReduction yes     deriving (Typeable) +data IsReduced = NotReduced | Reduced (Blocked ())+data MaybeReduced a = MaybeRed+  { isReduced     :: IsReduced+  , ignoreReduced :: a+  }++instance Functor MaybeReduced where+  fmap f (MaybeRed r x) = MaybeRed r (f x)++type MaybeReducedArgs = [MaybeReduced (Arg Term)]++notReduced :: a -> MaybeReduced a+notReduced x = MaybeRed NotReduced x++reduced :: Blocked a -> MaybeReduced a+reduced b = MaybeRed (Reduced $ fmap (const ()) b) (ignoreBlocking b)+ data PrimFun = PrimFun 	{ primFunName		:: QName 	, primFunArity		:: Arity-	, primFunImplementation :: MonadTCM tcm => [Arg Term] -> tcm (Reduced [Arg Term] Term)+	, primFunImplementation :: MonadTCM tcm => [Arg Term] -> tcm (Reduced MaybeReducedArgs Term) 	}     deriving (Typeable) @@ -500,6 +528,7 @@  defCompiled :: Definition -> Maybe CompiledClauses defCompiled Defn{theDef = Function{funCompiled = cc}} = Just cc+defCompiled Defn{theDef = Primitive{primCompiled = mcc}} = mcc defCompiled _ = Nothing  -- | Used to specify whether something should be delayed.@@ -653,6 +682,9 @@ 		--   or the body of a non-abstract definition this is true. 		--   To prevent information about abstract things leaking 		--   outside the module.+          , envIrrelevant          :: Bool+                -- ^ Are we checking an irrelevant argument?+                -- Then top-level irrelevant declarations are enabled.           , envReplace             :: Bool                 -- ^ Coinductive constructor applications @c args@ get                 -- replaced by a function application @f tel@, where@@ -685,6 +717,7 @@ 		, envImportPath          = [] 		, envMutualBlock         = Nothing 		, envAbstractMode        = AbstractMode+                , envIrrelevant          = False                 , envReplace             = True                 , envDisplayFormsEnabled = True                 , envReifyInteractionPoints = True@@ -758,6 +791,9 @@ 	| ShouldBeApplicationOf Type QName 	    -- ^ Expected a type to be an application of a particular datatype. 	| ConstructorPatternInWrongDatatype QName QName -- ^ constructor, datatype+        | IndicesNotConstructorApplications [Arg Term] -- ^ Indices.+        | IndexVariablesNotDistinct [Arg Term] -- ^ Indices.+        | IndexFreeInParameter Nat [Arg Term] -- ^ Index (a variable), parameters.         | DoesNotConstructAnElementOf QName Term -- ^ constructor, type 	| DifferentArities 	    -- ^ Varying number of arguments for a function.@@ -782,6 +818,7 @@ 	| ShouldBeRecordType Type 	| NotAProperTerm         | SplitOnIrrelevant A.Pattern (Arg Type)+        | DefinitionIsIrrelevant QName         | VariableIsIrrelevant Name         | UnequalLevel Comparison Term Term 	| UnequalTerms Comparison Term Term Type@@ -1016,4 +1053,3 @@  runTCM' :: Monad m => TCMT m a -> m a runTCM' m = liftM fst (unTCM m initState initEnv)-
src/full/Agda/TypeChecking/Monad/Builtin.hs view
@@ -170,4 +170,3 @@     , builtinQName     , builtinAgdaTerm     ]-
src/full/Agda/TypeChecking/Monad/Closure.hs view
@@ -12,5 +12,3 @@     withScope_ scope     $ withEnv env     $ k x--
src/full/Agda/TypeChecking/Monad/Constraints.hs view
@@ -39,4 +39,3 @@ buildConstraint c = do     cl <- buildClosure c     return [cl]-
src/full/Agda/TypeChecking/Monad/Context.hs view
@@ -94,9 +94,9 @@ getContextId = asks $ map ctxId . envContext  -- | Add a let bound variable-addLetBinding :: MonadTCM tcm => Name -> Term -> Type -> tcm a -> tcm a-addLetBinding x v t0 ret = do-    let t = defaultArg t0  -- Andreas, 2010-09-06: for now, no irrelevant let+addLetBinding :: MonadTCM tcm => Relevance -> Name -> Term -> Type -> tcm a -> tcm a+addLetBinding rel x v t0 ret = do+    let t = Arg NotHidden rel t0     vt <- makeOpen (v, t)     flip local ret $ \e -> e { envLetBindings = Map.insert x vt $ envLetBindings e } @@ -104,7 +104,10 @@ --   in an irrelevant function argument otherwise irrelevant variables --   may be used, so they are awoken before type checking the argument. wakeIrrelevantVars :: MonadTCM tcm => tcm a -> tcm a-wakeIrrelevantVars = local $ \ e -> e { envContext = map wakeVar (envContext e) }+wakeIrrelevantVars = local $ \ e -> e+   { envContext = map wakeVar (envContext e) -- enable local  irr. defs+   , envIrrelevant = True                    -- enable global irr. defs+   }   where wakeVar ce = ce { ctxEntry = makeRelevant (ctxEntry ce) }  applyRelevanceToContext :: MonadTCM tcm => Relevance -> tcm a -> tcm a@@ -156,4 +159,3 @@  escapeContext :: MonadTCM tcm => Int -> tcm a -> tcm a escapeContext n = local $ \e -> e { envContext = drop n $ envContext e }-
src/full/Agda/TypeChecking/Monad/Env.hs view
@@ -37,4 +37,3 @@ -- | Get the current environmnet getEnv :: MonadTCM tcm => tcm TCEnv getEnv = ask-
src/full/Agda/TypeChecking/Monad/Exception.hs view
@@ -61,4 +61,3 @@  instance (Error err, MonadTCM tcm) => MonadTCM (ExceptionT err tcm) where   liftTCM m = ExceptionT $ Right `liftM` liftTCM m-
src/full/Agda/TypeChecking/Monad/Imports.hs view
@@ -89,4 +89,3 @@     m:ms <- getImportPath     when (m `elem` ms) $ typeError $ CyclicModuleDependency 				   $ dropWhile (/= m) $ reverse (m:ms)-
src/full/Agda/TypeChecking/Monad/MetaVars.hs view
@@ -176,4 +176,3 @@ clearMetaListeners :: MonadTCM tcm => MetaId -> tcm () clearMetaListeners m =   updateMetaVar m $ \mv -> mv { mvListeners = Set.empty }-
src/full/Agda/TypeChecking/Monad/Mutual.hs view
@@ -61,4 +61,3 @@   case filter (Set.member f) bs of     []    -> fail $ "No mutual block for " ++ show f     b : _ -> return b-
src/full/Agda/TypeChecking/Monad/Open.hs view
@@ -46,4 +46,3 @@ tryOpen o = liftTCM $   (Just <$> getOpen o)   `catchError` \_ -> return Nothing-
src/full/Agda/TypeChecking/Monad/Options.hs view
@@ -31,9 +31,8 @@   clo <- commandLineOptions   case checkOpts (clo { optPragmaOptions = opts }) of     Left err   -> __IMPOSSIBLE__-    Right opts ->-      modify $ \s -> s { stPragmaOptions = optPragmaOptions opts }-+    Right opts -> do+      modify $ \s -> s { stPragmaOptions = (optPragmaOptions opts) } -- | Sets the command line options (both persistent and pragma options -- are updated). --@@ -239,7 +238,7 @@ reportS k n s = verboseS k n $ liftIO $ LocIO.putStr s  reportSLn :: MonadTCM tcm => VerboseKey -> Int -> String -> tcm ()-reportSLn k n s = verboseS k n $ liftIO $ LocIO.putStrLn s+reportSLn k n s = verboseS k n $ liftIO $ LocIO.putStrLn s >> LocIO.stdoutFlush  reportSDoc :: MonadTCM tcm => VerboseKey -> Int -> tcm Doc -> tcm () reportSDoc k n d = verboseS k n $ liftIO . LocIO.print =<< d@@ -253,4 +252,3 @@     x <- m     liftIO $ LocIO.putStrLn "}"     return x-
src/full/Agda/TypeChecking/Monad/Signature.hs view
@@ -23,6 +23,7 @@ import Agda.TypeChecking.Monad.Mutual import Agda.TypeChecking.Monad.Open import Agda.TypeChecking.Substitute+-- import Agda.TypeChecking.Pretty -- leads to cyclicity import Agda.TypeChecking.CompiledClause import {-# SOURCE #-} Agda.TypeChecking.Polarity @@ -30,6 +31,7 @@ import Agda.Utils.Map as Map import Agda.Utils.Size import Agda.Utils.Permutation+import Agda.Utils.Pretty  #include "../../undefined.h" import Agda.Utils.Impossible@@ -104,6 +106,18 @@       def{theDef = d{dataHsType = Just hsTy}}     addHs def = def +addEpicCode :: MonadTCM tcm => QName -> EpicCode -> tcm ()+addEpicCode q epDef =+  -- TODO: sanity checking+  modifySignature $ \sig -> sig+  { sigDefinitions = Map.adjust addEp q $ sigDefinitions sig }+  where+    --addEp def@Defn{theDef = con@Constructor{}} =+      --def{theDef = con{conHsCode = Just (hsTy, hsDef)}}+    addEp def@Defn{theDef = ax@Axiom{}} =+      def{theDef = ax{axEpDef = Just $ epDef}}+    addEp def = def+ unionSignatures :: [Signature] -> Signature unionSignatures ss = foldr unionSignature emptySignature ss   where@@ -175,8 +189,18 @@   isig <- getImportedSignature   let ss = getOld partOfOldM sigSections    [sig, isig]       ds = getOld partOfOldD sigDefinitions [sig, isig]+  reportSLn "tc.mod.apply" 10 $ render $ vcat+    [ text "applySection"+    , text "new  =" <+> text (show new)+    , text "ptel =" <+> text (show ptel)+    , text "old  =" <+> text (show old)+    , text "ts   =" <+> text (show ts)+    ]   reportSLn "tc.mod.apply" 80 $ "sections:    " ++ show ss ++ "\n" ++                                 "definitions: " ++ show ds+  reportSLn "tc.mod.apply" 80 $ render $ vcat+    [ text "arguments:  " <+> text (show ts)+    ]   mapM_ (copyDef ts) ds   mapM_ (copySec ts) ss   where@@ -201,7 +225,7 @@       where 	t  = defType d `apply` ts 	-- the name is set by the addConstant function-	nd y = Defn y t [] (-1) def  -- TODO: mutual block?+	nd y = Defn (defRelevance d) y t [] (-1) def  -- TODO: mutual block?         oldDef = theDef d 	isCon = case oldDef of 	  Constructor{} -> True@@ -224,7 +248,12 @@                            , funPolarity       = []                            , funArgOccurrences = []                            , funAbstr          = ConcreteDef+                           , funProjection     = fmap (nonNeg . \ n -> n - size ts) maybeNum                            }+                  where maybeNum = case oldDef of+                                     Function { funProjection = mn } -> mn+                                     _                               -> Nothing+                        nonNeg n = if n >= 0 then n else __IMPOSSIBLE__ 	cl = Clause { clauseRange = getRange $ defClauses d                     , clauseTel   = EmptyTel                     , clausePerm  = idP 0@@ -429,8 +458,8 @@ makeAbstract d = do def <- makeAbs $ theDef d 		    return d { theDef = def }     where-	makeAbs Datatype   {dataAbstr = AbstractDef} = Just $ Axiom Nothing-	makeAbs Function   {funAbstr  = AbstractDef} = Just $ Axiom Nothing+	makeAbs Datatype   {dataAbstr = AbstractDef} = Just $ Axiom Nothing Nothing+	makeAbs Function   {funAbstr  = AbstractDef} = Just $ Axiom Nothing Nothing 	makeAbs Constructor{conAbstr  = AbstractDef} = Nothing 	makeAbs d                                    = Just d @@ -465,6 +494,10 @@ typeOfConst :: MonadTCM tcm => QName -> tcm Type typeOfConst q = defType <$> (instantiateDef =<< getConstInfo q) +-- | get relevance of a constant+relOfConst :: MonadTCM tcm => QName -> tcm Relevance+relOfConst q = defRelevance <$> getConstInfo q+ -- | The name must be a datatype. sortOfConst :: MonadTCM tcm => QName -> tcm Sort sortOfConst q =@@ -473,3 +506,10 @@ 	    Datatype{dataSort = s} -> return s 	    _			   -> fail $ "Expected " ++ show q ++ " to be a datatype." +-- | Is it the name of a record projection?+isProjection :: MonadTCM tcm => QName -> tcm (Maybe Int)+isProjection qn = do+  def <- theDef <$> getConstInfo qn+  case def of+    Function { funProjection = result } -> return $ result+    _                                   -> return $ Nothing
src/full/Agda/TypeChecking/Monad/SizedTypes.hs view
@@ -52,4 +52,3 @@ unSizeView SizeInf       = primSizeInf unSizeView (SizeSuc v)   = flip apply [Arg NotHidden Relevant v] <$> primSizeSuc unSizeView (OtherSize v) = return v-
src/full/Agda/TypeChecking/Monad/State.hs view
@@ -87,4 +87,3 @@ -- | Get the Haskell imports. getHaskellImports :: MonadTCM tcm => tcm (Set String) getHaskellImports = gets stHaskellImports-
src/full/Agda/TypeChecking/Monad/Statistics.hs view
@@ -11,10 +11,12 @@  tick :: String -> TCM () tick x = modify $ \s ->-    s { stStatistics = Map.insertWith (\_ n -> n + 1) x 1-		     $ stStatistics s-      }+  let st' = inc $ stStatistics s in+  force st' `seq` s { stStatistics = st' }+  where+    -- We need to be strict in the map+    force m = sum (Map.elems m)+    inc = Map.insertWith (\_ n -> n + 1) x 1  getStatistics :: TCM Statistics getStatistics = gets stStatistics-
src/full/Agda/TypeChecking/Monad/Trace.hs view
@@ -49,4 +49,3 @@ setCurrentRange r   | r == noRange = id   | otherwise    = traceCall (SetRange r)-
src/full/Agda/TypeChecking/Patterns/Match.hs view
@@ -70,7 +70,7 @@           -- Andreas, 2010-09-07 matching a record constructor against           -- something irrelevant will just continue matching against           -- irrelevant stuff-		(m, vs) <- matchPatterns ps $ +		(m, vs) <- matchPatterns ps $                   repeat $ Arg NotHidden Irrelevant $ Sort Prop 		return (m, Arg h Irrelevant $ Con c vs) @@ -96,7 +96,7 @@           -- irrelevant stuff           -- NotBlocked (Sort Prop)           _  | r == Irrelevant -> do-		(m, vs) <- matchPatterns ps $ +		(m, vs) <- matchPatterns ps $                   repeat $ Arg NotHidden Irrelevant $ Sort Prop 		return (m, Arg h r $ Con c vs) 	  NotBlocked (Con c' vs)@@ -107,4 +107,3 @@ 	  NotBlocked (MetaV x vs) -> return (DontKnow $ Just x, Arg h r v) 	  Blocked x _             -> return (DontKnow $ Just x, Arg h r v)           _                       -> return (DontKnow Nothing, Arg h r v)-
src/full/Agda/TypeChecking/Polarity.hs view
@@ -163,4 +163,3 @@     Sort _     -> return []     MetaV _ ts -> map (const Invariant) <$> polarities i ts     DontCare   -> return []-
src/full/Agda/TypeChecking/Positivity.hs view
@@ -273,7 +273,9 @@     Sort{}       -> Map.empty     DontCare     -> Map.empty     where-      vs ! i+      -- Apparently some development version of GHC chokes if the+      -- following line is replaced by vs ! i.+      (!) vs i         | i < length vs = vs !! i         | otherwise     = error $ show vs ++ " ! " ++ show i ++ "  (" ++ show v ++ ")" @@ -432,4 +434,3 @@         -- D: (A B -> C) generates a positive edge B --> A.1         -- even though the context is negative.         inArg d i = mkEdge (ArgNode d i) Positive-
src/full/Agda/TypeChecking/Pretty.hs view
@@ -70,6 +70,7 @@ instance PrettyTCM Type where prettyTCM x = prettyA =<< reify x instance PrettyTCM Sort where prettyTCM x = prettyA =<< reify x instance PrettyTCM DisplayTerm where prettyTCM x = prettyA =<< reify x+instance PrettyTCM NamedClause where prettyTCM x = prettyA =<< reify x  instance PrettyTCM ClauseBody where   prettyTCM b = do@@ -84,7 +85,7 @@       walk (Bind b) = do         (bs, v) <- underAbstraction_ b walk         return (text (absName b) : bs, v)- + instance (PrettyTCM a, PrettyTCM b) => PrettyTCM (Judgement a b) where   prettyTCM (HasType a t) = prettyTCM a <+> text ":" <+> prettyTCM t   prettyTCM (IsSort a)    = text "Sort" <+> prettyTCM a@@ -102,6 +103,11 @@ instance PrettyTCM A.Expr where     prettyTCM = prettyA +instance PrettyTCM Relevance where+  prettyTCM Irrelevant = text "."+  prettyTCM Relevant   = empty+  prettyTCM Forced     = empty+ instance PrettyTCM Comparison where   prettyTCM CmpEq  = text "=="   prettyTCM CmpLeq = text "=<"@@ -120,7 +126,7 @@                       , nest 2 $ text "~~" <+> prettyTCM v                       , nest 2 $ text (show cmp)                       ] | (cmp, u, v) <- zip3 cmps us vs-                ] +                ]               , nest 2 $ text ":" <+> prettyTCM t               ] 	LevelCmp cmp a b ->@@ -191,14 +197,15 @@               d    <- prettyTCM t               x    <- prettyTCM x               dctx <- pr ctx-              return $ rel r (par h (P.hsep [ x, P.text ":", d])) : dctx+              return $ P.pRelevance r (par h (P.hsep [ x, P.text ":", d])) : dctx             where               par NotHidden = P.parens               par Hidden    = P.braces+{-               rel Irrelevant x = P.text "." P.<> x               rel Relevant x   = x               rel Forced   x   = x+-}  instance PrettyTCM Context where   prettyTCM = prettyTCM . PrettyContext-
src/full/Agda/TypeChecking/Primitive.hs view
@@ -134,7 +134,7 @@  -- From Haskell value to Agda term -type FromTermFunction a = Arg Term -> TCM (Reduced (Arg Term) a)+type FromTermFunction a = Arg Term -> TCM (Reduced (MaybeReduced (Arg Term)) a)  class FromTerm a where     fromTerm :: MonadTCM tcm => tcm (FromTermFunction a)@@ -189,37 +189,38 @@ 	    _	     === _	    = False  instance (ToTerm a, FromTerm a) => FromTerm [a] where-    fromTerm = do-	nil'  <- primNil-	cons' <- primCons-	nil   <- isCon nil'-	cons  <- isCon cons'-	toA   <- fromTerm-	fromA <- toTerm-	return $ mkList nil cons toA fromA-	where-	    isCon (Lam _ b) = isCon $ absBody b-	    isCon (Con c _) = return c-	    isCon v	    = do-		d <- prettyTCM v-		typeError $ GenericError $ "expected constructor in built-in binding to " ++ show d-				-- TODO: check this when binding the things+  fromTerm = do+    nil'  <- primNil+    cons' <- primCons+    nil   <- isCon nil'+    cons  <- isCon cons'+    toA   <- fromTerm+    fromA <- toTerm+    return $ mkList nil cons toA fromA+    where+      isCon (Lam _ b) = isCon $ absBody b+      isCon (Con c _) = return c+      isCon v	    = do+        d <- prettyTCM v+        typeError $ GenericError $ "expected constructor in built-in binding to " ++ show d+                        -- TODO: check this when binding the things -	    mkList nil cons toA fromA t = do-		t <- reduce t-		let arg = Arg (argHiding t) (argRelevance t)-		case unArg t of-		    Con c []-			| c == nil  -> return $ YesReduction []-		    Con c [x,xs]-			| c == cons ->-			    redBind (toA x)-				(\x' -> arg $ Con c [x',xs]) $ \y ->-			    redBind-				(mkList nil cons toA fromA xs)-				(\xs' -> arg $ Con c [defaultArg $ fromA y, xs']) $ \ys ->-			    redReturn (y : ys)-		    _ -> return $ NoReduction t+      mkList nil cons toA fromA t = do+        b <- reduceB t+        let t = ignoreBlocking b+        let arg = Arg (argHiding t) (argRelevance t)+        case unArg t of+          Con c []+            | c == nil  -> return $ YesReduction []+          Con c [x,xs]+            | c == cons ->+              redBind (toA x)+                  (\x' -> notReduced $ arg $ Con c [ignoreReduced x',xs]) $ \y ->+              redBind+                  (mkList nil cons toA fromA xs)+                  (fmap $ \xs' -> arg $ Con c [defaultArg $ fromA y, xs']) $ \ys ->+              redReturn (y : ys)+          _ -> return $ NoReduction (reduced b)  -- | Conceptually: @redBind m f k = either (return . Left . f) k =<< m@ redBind :: MonadTCM tcm => tcm (Reduced a a') -> (a -> b) ->@@ -235,10 +236,10 @@  fromReducedTerm :: MonadTCM tcm => (Term -> Maybe a) -> tcm (FromTermFunction a) fromReducedTerm f = return $ \t -> do-    t <- reduce t-    case f $ unArg t of+    b <- reduceB t+    case f $ unArg (ignoreBlocking b) of 	Just x	-> return $ YesReduction x-	Nothing	-> return $ NoReduction t+	Nothing	-> return $ NoReduction (reduced b)  fromLiteral :: MonadTCM tcm => (Literal -> Maybe a) -> tcm (FromTermFunction a) fromLiteral f = fromReducedTerm $ \t -> case t of@@ -251,11 +252,14 @@   refl <- primRefl   t    <- hPi "A" tset $ hPi "a" (el $ var 0) $ hPi "b" (el $ var 1) $           el (primEquality <#> var 2 <@> var 1 <@> var 0)-  return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 3 $ \[t, a, b] -> liftTCM $ do-      noConstraints $ equalTerm (El (mkType 0) $ unArg t) (unArg a) (unArg b)-      rf <- return refl -- <#> return (unArg t) <#> return (unArg a)-      redReturn rf-    `catchError` \_ -> return (NoReduction [t, a, b])+  return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 3 $ \ts ->+      case ts of+        [t, a, b] -> liftTCM $ do+              noConstraints $ equalTerm (El (mkType 0) $ unArg t) (unArg a) (unArg b)+              rf <- return refl -- <#> return (unArg t) <#> return (unArg a)+              redReturn rf+            `catchError` \_ -> return (NoReduction $ map notReduced [t, a, b])+        _ -> __IMPOSSIBLE__  -- Tying the knot mkPrimFun1 :: (MonadTCM tcm, PrimType a, PrimType b, FromTerm a, ToTerm b) =>@@ -264,10 +268,13 @@     toA   <- fromTerm     fromB <- toTerm     t	  <- primType f-    return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 1 $ \[v] -> liftTCM $-	redBind (toA v)-	    (\v' -> [v']) $ \x ->-	redReturn $ fromB $ f x+    return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 1 $ \ts ->+      case ts of+        [v] -> liftTCM $+          redBind (toA v)+              (\v' -> [v']) $ \x ->+          redReturn $ fromB $ f x+        _ -> __IMPOSSIBLE__  mkPrimFun2 :: (MonadTCM tcm, PrimType a, PrimType b, PrimType c, FromTerm a, ToTerm a, FromTerm b, ToTerm c) => 	      (a -> b -> c) -> tcm PrimitiveImpl@@ -277,12 +284,16 @@     toB	  <- fromTerm     fromC <- toTerm     t	  <- primType f-    return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 2 $ \[v,w] -> liftTCM $-	redBind (toA v)-	    (\v' -> [v',w]) $ \x ->-	redBind (toB w)-	    (\w' -> [Arg (argHiding v) (argRelevance v) (fromA x), w']) $ \y ->-	redReturn $ fromC $ f x y+    return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 2 $ \ts ->+      case ts of+        [v,w] -> liftTCM $+          redBind (toA v)+              (\v' -> [v', notReduced w]) $ \x ->+          redBind (toB w)+              (\w' -> [ reduced $ notBlocked $ Arg (argHiding v) (argRelevance v) (fromA x)+                      , w']) $ \y ->+          redReturn $ fromC $ f x y+        _ -> __IMPOSSIBLE__  mkPrimFun4 :: ( MonadTCM tcm               , PrimType a, FromTerm a, ToTerm a@@ -298,29 +309,27 @@     toD          <- fromTerm     fromE        <- toTerm     t <- primType f-    return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 4 $ \[a,b,c,d] -> liftTCM $-	redBind (toA a)-	    (\a' -> [a',b,c,d]) $ \x ->-	redBind (toB b)-	    (\b' -> [Arg (argHiding a) (argRelevance a) (fromA x), b', c, d]) $ \y ->-	redBind (toC c)-	    (\c' -> [ Arg (argHiding a) (argRelevance a) (fromA x)-                    , Arg (argHiding b) (argRelevance b) (fromB y), c', d]) $ \z ->-	redBind (toD d)-	    (\d' -> [ Arg (argHiding a) (argRelevance a) (fromA x)-                    , Arg (argHiding b) (argRelevance b) (fromB y)-                    , Arg (argHiding c) (argRelevance c) (fromC z)-                    , d']) $ \w ->-	redReturn $ fromE $ f x y z w---- Abstract primitive functions-abstractPrim :: (MonadTCM tcm, PrimType a) => a -> tcm PrimitiveImpl-abstractPrim x = abstractFromType (primType x)+    return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ 4 $ \ts ->+      let argFrom fromX a x =+            reduced $ notBlocked $ Arg (argHiding a) (argRelevance a) (fromX x)+      in case ts of+        [a,b,c,d] -> liftTCM $+          redBind (toA a)+              (\a' -> a' : map notReduced [b,c,d]) $ \x ->+          redBind (toB b)+              (\b' -> [argFrom fromA a x, b', notReduced c, notReduced d]) $ \y ->+          redBind (toC c)+              (\c' -> [ argFrom fromA a x+                      , argFrom fromB b y+                      , c', notReduced d]) $ \z ->+          redBind (toD d)+              (\d' -> [ argFrom fromA a x+                      , argFrom fromB b y+                      , argFrom fromC c z+                      , d']) $ \w -> -abstractFromType :: MonadTCM tcm => tcm Type -> tcm PrimitiveImpl-abstractFromType mt = do-    t <- mt-    return $ PrimImpl t $ PrimFun __IMPOSSIBLE__ (arity t) $ \args -> NoReduction <$> normalise args+          redReturn $ fromE $ f x y z w+        _ -> __IMPOSSIBLE__  -- Type combinators infixr 4 -->@@ -473,4 +482,3 @@     PrimImpl _ pf <- lookupPrimitiveFunction x     bindPrimitive x pf     return pf-
src/full/Agda/TypeChecking/Quote.hs view
@@ -25,7 +25,7 @@   def <- primAgdaTermDef   con <- primAgdaTermCon   pi <- primAgdaTermPi-  sort <- primAgdaTermSort  +  sort <- primAgdaTermSort   Con z _ <- primZero   Con s _ <- primSuc   unsupported <- primAgdaTermUnsupported@@ -33,7 +33,7 @@       quoteHiding Hidden = true       quoteHiding NotHidden = false       list [] = nil-      list (a : as) = cons @@ a @@ list as +      list (a : as) = cons @@ a @@ list as       zero = con @@ quoteName z @@ nil       suc n = con @@ quoteName s @@ list [n]       quoteArg (Arg h r t) = arg @@ quoteHiding h @@ quote t@@ -62,4 +62,3 @@  qNameType :: TCM Type qNameType = El (mkType 0) <$> primQName-
src/full/Agda/TypeChecking/Rebind.hs view
@@ -28,4 +28,3 @@ 	rebind (NoBind b) = NoBind $ rebind b 	rebind  NoBody	  = NoBody -}-
src/full/Agda/TypeChecking/Records.hs view
@@ -94,6 +94,14 @@     Record{recEtaEquality = eta} -> eta     _                            -> False +-- | Check if a name refers to a record constructor.+isRecordConstructor :: MonadTCM tcm => QName -> tcm Bool+isRecordConstructor c = do+  def <- theDef <$> getConstInfo c+  case def of+    Constructor{ conData = r } -> isRecord r+    _                          -> return False+ -- | Check if a constructor name is the internally generated record constructor. isGeneratedRecordConstructor :: MonadTCM tcm => QName -> tcm Bool isGeneratedRecordConstructor c = do@@ -121,8 +129,10 @@     Con _ args -> return (tel', args)  -- Already expanded.     _          -> do       -- irrelevant fields are expanded to DontCare+      -- this is sound because etaExpandRecord is only called during conversion+      -- WARNING: do not use etaExpandRecord to expand MetaVars!!       let proj (Arg h Irrelevant _) = Arg h Irrelevant DontCare-          proj (Arg h rel x)        = Arg h rel $ +          proj (Arg h rel x)        = Arg h rel $             Def x $ map hide pars ++ [defaultArg u]       reportSDoc "tc.record.eta" 20 $ vcat         [ text "eta expanding" <+> prettyTCM u <+> text ":" <+> prettyTCM r@@ -138,24 +148,33 @@ -- | The fields should be eta contracted already. etaContractRecord :: MonadTCM tcm => QName -> QName -> Args -> tcm Term etaContractRecord r c args = do-  Record{ recFields = xs } <- getRecordDef r+  Record{ recPars = npars, recFields = xs } <- getRecordDef r   let check a ax = do+      -- @a@ is the constructor argument, @ax@ the corr. record field name         -- skip irrelevant record fields by returning DontCare         case (argRelevance a, unArg a) of-          (Irrelevant, _)                       -> return $ Just DontCare-          (_, Def y args@(_:_)) | unArg ax == y -> return (Just $ unArg $ last args)-          _                                     -> return Nothing+          (Irrelevant, _) -> return $ Just DontCare+          -- if @a@ is the record field name applied to (npars+1) args,+          -- then it passes the check+          (_, Def y args) | unArg ax == y && genericLength args == npars + 1+                         -> return (Just $ unArg $ last args)+          _              -> return Nothing       fallBack = return (Con c args)   case compare (length args) (length xs) of     LT -> fallBack       -- Not fully applied     GT -> __IMPOSSIBLE__ -- Too many arguments. Impossible.     EQ -> do-      cs <- zipWithM check args xs-      case sequence cs of-        Just cs -> case filter (DontCare /=) cs of-          (c:cs) -> do-            if all (c ==) cs-              then return c+      as <- zipWithM check args xs+      case sequence as of+        Just as -> case filter (DontCare /=) as of+          (a:as) ->+            if all (a ==) as+              then do+                reportSDoc "tc.record.eta" 15 $ vcat+                  [ text "record" <+> prettyTCM (Con c args)+                  , text "is eta-contracted to" <+> prettyTCM a+                  ]+                return a               else fallBack           _ -> fallBack -- just DontCares         _ -> fallBack  -- a Nothing
src/full/Agda/TypeChecking/Reduce.hs view
@@ -8,7 +8,8 @@ import Control.Monad.Error hiding (mapM) import Control.Applicative import Data.List as List hiding (sort)-import Data.Map as Map+import qualified Data.Map as Map+import Data.Map (Map) import qualified Data.Set as Set import Data.Traversable @@ -256,19 +257,19 @@   Bool -> (Term -> tcm (Blocked Term)) ->   Term -> QName -> Args -> tcm (Blocked Term) unfoldDefinition unfoldDelayed keepGoing v0 f args =-    {-# SCC "reduceDef" #-}-    do  info <- getConstInfo f-        case theDef info of-            Constructor{conSrcCon = c} ->-              return $ notBlocked $ Con (c `withRangeOf` f) args-            Primitive ConcreteDef x cls -> do-                pf <- getPrimitive x-                reducePrimitive x v0 f args pf (defDelayed info)-                                (maybe [] (List.map translatedClause) cls)-                                Nothing-            _  -> reduceNormal v0 f args (defDelayed info)-                               (List.map translatedClause $ defClauses info)-                               (defCompiled info)+  {-# SCC "reduceDef" #-} do+  info <- getConstInfo f+  case theDef info of+    Constructor{conSrcCon = c} ->+      return $ notBlocked $ Con (c `withRangeOf` f) args+    Primitive{primAbstr = ConcreteDef, primName = x, primClauses = cls} -> do+      pf <- getPrimitive x+      reducePrimitive x v0 f args pf (defDelayed info)+                      (maybe [] (List.map translatedClause) cls)+                      (defCompiled info)+    _  -> reduceNormal v0 f (map notReduced args) (defDelayed info)+                       (List.map translatedClause $ defClauses info)+                       (defCompiled info)   where     reducePrimitive x v0 f args pf delayed cls mcc         | n < ar    = return $ notBlocked $ v0 `apply` args -- not fully applied@@ -276,9 +277,12 @@             let (args1,args2) = genericSplitAt ar args             r <- def args1             case r of-                NoReduction args1' -> reduceNormal v0 f (args1' ++ args2)-                                                   delayed cls mcc-                YesReduction v	   -> keepGoing $ v `apply` args2+              NoReduction args1' ->+                reduceNormal v0 f (args1' +++                                   map notReduced args2)+                             delayed cls mcc+              YesReduction v ->+                keepGoing $ v `apply` args2         where             n	= genericLength args             ar  = primFunArity pf@@ -291,26 +295,28 @@           [] -> defaultResult -- no definition for head           cls@(Clause{ clausePats = ps } : _)             | length ps <= length args -> do-                let (args1,args2) = splitAt (length ps) args+                let (args1,args2') = splitAt (length ps) args+                    args2 = map ignoreReduced args2'                 ev <- maybe (appDef' v0 cls args1)                             (\cc -> appDef v0 cc args1) mcc                 case ev of                   NoReduction  v -> return    $ v `apply` args2                   YesReduction v -> keepGoing $ v `apply` args2             | otherwise	-> defaultResult -- partial application-      where defaultResult = return $ notBlocked $ v0 `apply` args+      where defaultResult = return $ notBlocked $ v0 `apply` (map ignoreReduced args)      -- Apply a defined function to it's arguments.     --   The original term is the first argument applied to the third.-    appDef :: MonadTCM tcm => Term -> CompiledClauses -> Args -> tcm (Reduced (Blocked Term) Term)+    appDef :: MonadTCM tcm => Term -> CompiledClauses -> MaybeReducedArgs -> tcm (Reduced (Blocked Term) Term)     appDef v cc args = liftTCM $ do       r <- matchCompiled cc args       case r of         YesReduction t    -> return $ YesReduction t         NoReduction args' -> return $ NoReduction $ fmap (apply v) args' -    appDef' :: MonadTCM tcm => Term -> [Clause] -> Args -> tcm (Reduced (Blocked Term) Term)-    appDef' v cls args = {-# SCC "appDef" #-} goCls cls args where+    appDef' :: MonadTCM tcm => Term -> [Clause] -> MaybeReducedArgs -> tcm (Reduced (Blocked Term) Term)+    appDef' v cls args = {-# SCC "appDef" #-} do+      goCls cls (map ignoreReduced args) where          goCls :: MonadTCM tcm => [Clause] -> Args -> tcm (Reduced (Blocked Term) Term)         goCls [] args = typeError $ IncompletePatternMatching v args@@ -498,7 +504,8 @@       El <$> instantiateFull s <*> instantiateFull t  instance InstantiateFull Term where-    instantiateFull v = etaOnce =<< do+    instantiateFull v = etaOnce =<< do -- Andreas, 2010-11-12 DONT ETA!! eta-reduction breaks subject reduction+-- but removing etaOnce now breaks everything       v <- instantiate v       case v of           Var n vs    -> Var n <$> instantiateFull vs@@ -585,9 +592,9 @@     instantiateFull = return  instance InstantiateFull Definition where-    instantiateFull (Defn x t df i d) = do+    instantiateFull (Defn rel x t df i d) = do       (t, (df, d)) <- instantiateFull (t, (df, d))-      return $ Defn x t df i d+      return $ Defn rel x t df i d  instance InstantiateFull a => InstantiateFull (Open a) where   instantiateFull (OpenThing n a) = OpenThing n <$> instantiateFull a
src/full/Agda/TypeChecking/Rules/Builtin.hs view
@@ -162,8 +162,9 @@     info <- getConstInfo qx     let cls = defClauses info         a   = defAbstract info+        mcc = defCompiled info     bindPrimitive name $ pf { primFunName = qx }-    addConstant qx $ info { theDef = Primitive a name (Just cls) }+    addConstant qx $ info { theDef = Primitive a name (Just cls) mcc }      -- needed? yes, for checking equations for mul     bindBuiltinName builtin v
src/full/Agda/TypeChecking/Rules/Builtin/Coinduction.hs view
@@ -171,6 +171,10 @@                    , funArgOccurrences = [Unused, Unused, Positive]                    , funAbstr          = ConcreteDef                    , funDelayed        = NotDelayed+                   , funProjection     = Nothing+                     {- flat is a projection, but in the termination checker+                        it destroys the (inductive) structural ordering.+                        Thus, we do not register it as a projection. -}                    }                 }     return flatE
src/full/Agda/TypeChecking/Rules/Data.hs view
@@ -93,7 +93,7 @@                                    }  	    escapeContext (size tel) $ do-	      addConstant name ( Defn name t (defaultDisplayForm name) 0 dataDef )+	      addConstant name ( Defn Relevant name t (defaultDisplayForm name) 0 dataDef )  	    -- Check the types of the constructors 	    mapM_ (checkConstructor name tel' nofIxs s) cs@@ -110,20 +110,20 @@ 	    case (proofIrr, s, cs) of 		(True, Prop, _:_:_) -> setCurrentRange (getRange $ map conName cs) $                                         typeError PropMustBeSingleton-                  where conName (A.Axiom _ c _) = c+                  where conName (A.Axiom _ _ c _) = c                         conName (A.ScopedDecl _ (d:_)) = conName d                         conName _ = __IMPOSSIBLE__ 		_		    -> return ()  	-- Add the datatype to the signature with its constructors. It was previously 	-- added without them.-	addConstant name (Defn name t (defaultDisplayForm name) 0 $+	addConstant name (Defn Relevant name t (defaultDisplayForm name) 0 $                             dataDef { dataCons = map cname cs } 			 )         computePolarity name     where 	cname (A.ScopedDecl _ [d]) = cname d-	cname (A.Axiom _ x _)	   = x+	cname (A.Axiom _ _ x _)	   = x 	cname _			   = __IMPOSSIBLE__ -- constructors are axioms  	hideTel  EmptyTel		  = EmptyTel@@ -141,8 +141,9 @@ checkConstructor d tel nofIxs s (A.ScopedDecl scope [con]) = do   setScope scope   checkConstructor d tel nofIxs s con-checkConstructor d tel nofIxs s con@(A.Axiom i c e) =+checkConstructor d tel nofIxs s con@(A.Axiom i _ c e) =     traceCall (CheckConstructor d tel s con) $ do+        debugEnter c e 	t <- isType_ e 	n <- size <$> getContextTelescope         debugEndsIn t d n@@ -150,11 +151,16 @@         debugFitsIn s 	t `fitsIn` s         t' <- addForcingAnnotations t+        debugAdd c t' 	escapeContext (size tel) 	    $ addConstant c-	    $ Defn c (telePi tel t') (defaultDisplayForm c) 0+	    $ Defn Relevant c (telePi tel t') (defaultDisplayForm c) 0 	    $ Constructor (size tel) c d Nothing (Info.defAbstract i) Inductive   where+    debugEnter c e =+      reportSDoc "tc.data.con" 5 $ vcat+        [ text "checking constructor" <+> prettyTCM c <+> text ":" <+> prettyTCM e+        ]     debugEndsIn t d n =       reportSDoc "tc.data.con" 15 $ vcat         [ sep [ text "checking that"@@ -168,6 +174,10 @@         [ text "checking that the type fits in"         , nest 2 $ prettyTCM s         ]+    debugAdd c t =+      reportSDoc "tc.data.con" 5 $ vcat+        [ text "adding constructor" <+> prettyTCM c <+> text ":" <+> prettyTCM t+        ] checkConstructor _ _ _ _ _ = __IMPOSSIBLE__ -- constructors are axioms  @@ -256,7 +266,7 @@ 	    | d == d'   -> return $ El s0 t' 	    | otherwise	-> fail $ "wrong datatype " ++ show d ++ " != " ++ show d' 	MetaV m vs	    -> do-	    Defn _ t _ _ Datatype{dataSort = s} <- getConstInfo d+	    Defn _ _ t _ _ Datatype{dataSort = s} <- getConstInfo d 	    ps <- newArgsMeta t 	    noConstraints $ leqType (El s0 t') (El s (Def d ps)) -- TODO: need equalType? 	    reduce $ El s0 t'
src/full/Agda/TypeChecking/Rules/Decl.hs view
@@ -50,7 +50,7 @@ checkDecl :: A.Declaration -> TCM () checkDecl d = do     case d of-	A.Axiom i x e		     -> checkAxiom i x e+	A.Axiom i rel x e            -> checkAxiom i rel x e         A.Field{}                    -> typeError FieldOutsideRecord 	A.Primitive i x e	     -> checkPrimitive i x e 	A.Definition i ts ds	     -> checkMutual i ts ds@@ -66,16 +66,16 @@   -- | Type check an axiom.-checkAxiom :: Info.DefInfo -> QName -> A.Expr -> TCM ()-checkAxiom _ x e = do+checkAxiom :: Info.DefInfo -> Relevance -> QName -> A.Expr -> TCM ()+checkAxiom _ rel x e = do   t <- isType_ e   reportSDoc "tc.decl.ax" 10 $ sep     [ text "checked axiom"-    , nest 2 $ prettyTCM x <+> text ":" <+> (prettyTCM =<< instantiateFull t)+    , nest 2 $ prettyTCM rel <> prettyTCM x <+> text ":" <+> (prettyTCM =<< instantiateFull t)     ]   -- Not safe. See Issue 330   -- t <- addForcingAnnotations t-  addConstant x (Defn x t (defaultDisplayForm x) 0 $ Axiom Nothing)+  addConstant x (Defn rel x t (defaultDisplayForm x) 0 $ Axiom Nothing Nothing)   solveSizeConstraints  @@ -88,7 +88,8 @@     noConstraints $ equalType t t'     let s  = show $ nameConcrete $ qnameName x     bindPrimitive s $ pf { primFunName = x }-    addConstant x (Defn x t (defaultDisplayForm x) 0 $ Primitive (Info.defAbstract i) s Nothing)+    addConstant x (Defn Relevant x t (defaultDisplayForm x) 0 $+                Primitive (Info.defAbstract i) s Nothing Nothing)     where 	nameString (Name _ x _ _) = show x @@ -155,6 +156,14 @@               reportSLn "tc.pragma.compile" 10 $ "Haskell type for " ++ show x ++ ": " ++ ty               addHaskellCode x ty hs             _   -> typeError $ GenericError "COMPILED directive only works on postulates."+        A.CompiledEpicPragma x ep -> do+          def <- getConstInfo x+          case theDef def of+            Axiom{} -> do+              --ty <- haskellType $ defType def+              --reportSLn "tc.pragma.compile" 10 $ "Haskell type for " ++ show x ++ ": " ++ ty+              addEpicCode x ep+            _   -> typeError $ GenericError "COMPILED_EPIC directive only works on postulates." 	A.OptionsPragma _   -> __IMPOSSIBLE__	-- not allowed here         A.EtaPragma r -> modifySignature eta           where@@ -179,10 +188,10 @@ checkTypeSignature (A.ScopedDecl scope ds) = do   setScope scope   mapM_ checkTypeSignature ds-checkTypeSignature (A.Axiom i x e) =+checkTypeSignature (A.Axiom i rel x e) =     case Info.defAccess i of-	PublicAccess  -> inConcreteMode $ checkAxiom i x e-	PrivateAccess -> inAbstractMode $ checkAxiom i x e+	PublicAccess  -> inConcreteMode $ checkAxiom i rel x e+	PrivateAccess -> inAbstractMode $ checkAxiom i rel x e checkTypeSignature _ = __IMPOSSIBLE__	-- type signatures are always axioms  @@ -266,5 +275,3 @@ --   the work is done when scope checking. checkImport :: Info.ModuleInfo -> ModuleName -> TCM () checkImport i x = return ()--
src/full/Agda/TypeChecking/Rules/Def.hs view
@@ -71,8 +71,9 @@ checkFunDef delayed i name cs =      traceCall (CheckFunDef (getRange i) (qnameName name) cs) $ do   -- TODO!! (qnameName)-        -- Get the type of the function+        -- Get the type and relevance of the function         t    <- typeOfConst name+        rel  <- relOfConst name          reportSDoc "tc.def.fun" 10 $           sep [ text "checking body of" <+> prettyTCM name@@ -82,7 +83,7 @@          -- Check the clauses         let check c = do-              c <- checkClause t c+              c <- applyRelevanceToContext rel $ checkClause t c               solveSizeConstraints               return c         cs <- mapM check cs@@ -91,17 +92,37 @@         unless (allEqual $ map (npats . translatedClause) cs) $                typeError DifferentArities +        reportSDoc "tc.cc" 15 $ do+          sep [ text "clauses before rebindClause"+              , nest 2 $ prettyTCM (map (NamedClause name . translatedClause) cs)+              ]+         -- Annotate the clauses with which arguments are actually used.         cs <- instantiateFull =<< mapM rebindClause cs+        -- Andreas, 2010-11-12+        -- rebindClause is the identity, and instantiateFull eta-contracts+        -- removing this eta-contraction fixes issue 361+        -- however, Data.Star.Decoration.gmapAll no longer type-checks+        -- possibly due to missing eta-contraction!?          -- Check if the function is injective         inv <- checkInjectivity name $ map translatedClause cs +        reportSDoc "tc.cc" 15 $ do+          sep [ text "clauses before compilation"+              , nest 2 $ prettyTCM (map (NamedClause name . translatedClause) cs)+              ]+         -- Compile the clauses         let cc = compileClauses cs +        reportSDoc "tc.cc" 10 $ do+          sep [ text "compiled clauses of" <+> prettyTCM name+              , nest 2 $ text (show cc)+              ]+         -- Add the definition-        addConstant name $ Defn name t (defaultDisplayForm name) 0+        addConstant name $ Defn rel name t (defaultDisplayForm name) 0                          $ Function                             { funClauses        = cs                             , funCompiled       = cc@@ -110,6 +131,7 @@                             , funAbstr          = Info.defAbstract i                             , funPolarity       = []                             , funArgOccurrences = []+                            , funProjection     = Nothing                             }         computePolarity name         reportSDoc "tc.def.fun" 10 $ do@@ -220,7 +242,12 @@                                            text "proof = " <+> prettyTCM proofExpr,                                            text "equ = " <+> prettyTCM t' ]                      handleRHS newRhs+                 A.WithRHS aux es cs -> do+                  reportSDoc "tc.with.top" 5 $+                    text "TC.Rules.Def.checkclause reached A.WithRHS"+                  reportSDoc "tc.with.top" 30 $+                    text (show c)                   -- Infer the types of the with expressions                   vas <- mapM inferExpr es                   (vs0, as) <- instantiateFull (unzip vas)@@ -342,7 +369,7 @@       , prettyList $ map prettyTCM ts       , prettyTCM dt       ]-  addConstant aux (Defn aux auxType [df] 0 $ Axiom Nothing)+  addConstant aux (Defn Relevant aux auxType [df] 0 $ Axiom Nothing Nothing)   solveSizeConstraints    reportSDoc "tc.with.top" 10 $ sep@@ -641,4 +668,3 @@                 x <- freshName_ $ absName b                 addCtx x (Arg h Relevant $ sort Prop) $ stripLambdas (absBody b)             _       -> typeError $ GenericError $ "Not a constructor: " ++ show c-
src/full/Agda/TypeChecking/Rules/LHS.hs view
@@ -253,7 +253,7 @@     sep [ text ":" <+> prettyTCM a         , text "=" <+> prettyTCM v         ]-  addLetBinding x v a $ bindAsPatterns asb ret+  addLetBinding Relevant x v a $ bindAsPatterns asb ret  -- | Rename the variables in a telescope using the names from a given pattern useNamesFromPattern :: [NamedArg A.Pattern] -> Telescope -> Telescope@@ -438,9 +438,7 @@ -}              -- Andreas 2010-09-07  propagate relevance info to new vars-            gamma' <- return $ if rel == Irrelevant then-                                fmap makeIrrelevant gamma'-                               else gamma'+            gamma' <- return $ fmap (\a -> a { argRelevance = rel }) gamma' {-             reportSDoc "tc.lhs.top" 20 $ nest 2 $ vcat               [ text "gamma' =" <+> text (show gamma')@@ -546,7 +544,7 @@ {-          -- Andreas, 2010-09-09             -- temporary error message to find non-id perms             let sorted (Perm _ xs) = xs == List.sort xs-            unless (sorted (perm)) $ typeError $ GenericError $ "detected proper permutation " ++ show perm +            unless (sorted (perm)) $ typeError $ GenericError $ "detected proper permutation " ++ show perm -}             -- Compute the new dot pattern instantiations             let ps0'   = problemInPat p0 ++ qs' ++ problemInPat (absBody p1)
src/full/Agda/TypeChecking/Rules/LHS/Implicit.hs view
@@ -56,4 +56,3 @@       NoInsertNeeded -> return Nothing      implicitP = Arg Hidden Relevant . unnamed . A.ImplicitP . PatRange $ noRange-
src/full/Agda/TypeChecking/Rules/LHS/Instantiate.hs view
@@ -30,10 +30,11 @@    tel <- normalise tel -  reportSDoc "tc.lhs.inst" 10 $ sep+  reportSDoc "tc.lhs.inst" 10 $ vcat     [ text "instantiateTel "     , nest 2 $ addCtxTel tel $ fsep $ punctuate comma $ map (maybe (text "_") prettyTCM) s-    , nest 2 $ prettyTCM tel+    , nest 2 $ text "tel  =" <+> prettyTCM tel+--    , nest 2 $ text "tel  =" <+> text (show tel)     ]    -- Shrinking permutation (removing Justs) (and its complement, and reverse)@@ -41,10 +42,10 @@       psR = reverseP ps       psC = Perm (size s) [ i | (i, Just _)  <- zip [0..] $ reverse s ] -  reportS "tc.lhs.inst" 10 $ unlines-    [ "ps  = " ++ show ps-    , "psR = " ++ show psR-    , "psC = " ++ show psC+  reportSDoc "tc.lhs.inst" 10 $ vcat+    [ nest 2 $ text $ "ps   = " ++ show ps+    , nest 2 $ text $ "psR  = " ++ show psR+    , nest 2 $ text $ "psC  = " ++ show psC     ]    -- s' : Substitution Γσ@@ -60,8 +61,10 @@   let tel1   = flattenTel tel       names1 = teleNames tel -  reportSDoc "tc.lhs.inst" 15 $ nest 2 $-    text "tel1 =" <+> brackets (fsep $ punctuate comma $ map prettyTCM tel1)+  reportSDoc "tc.lhs.inst" 15 $ nest 2 $ vcat+    [ text "tel1 =" <+> brackets (fsep $ punctuate comma $ map prettyTCM tel1)+--    , text "tel1 =" <+> text (show tel1)+    ]    -- tel2 : [Type Γσ]Γ   let tel2 = substs rho tel1@@ -132,4 +135,3 @@ 	  A.ConP _ _ _ -> True 	  A.LitP _     -> True 	  _	       -> False-
src/full/Agda/TypeChecking/Rules/LHS/Problem.hs view
@@ -53,4 +53,3 @@   mempty = Problem [] mempty EmptyTel   Problem ps1 qs1 tel1 `mappend` Problem ps2 qs2 tel2 =     Problem (ps1 ++ ps2) (mappend qs1 qs2) (abstract tel1 tel2)-
src/full/Agda/TypeChecking/Rules/LHS/Split.hs view
@@ -6,8 +6,10 @@ import Control.Monad.Error import Data.Monoid import Data.List-import Data.Traversable hiding (mapM)+import Data.Traversable hiding (mapM, sequence) +import Agda.Interaction.Options+ import Agda.Syntax.Common import Agda.Syntax.Literal import Agda.Syntax.Position@@ -24,7 +26,10 @@ import Agda.TypeChecking.Rules.LHS.Problem import Agda.TypeChecking.Rules.Term import Agda.TypeChecking.Monad.Builtin+import Agda.TypeChecking.Free +import Agda.Utils.List+import Agda.Utils.Monad import Agda.Utils.Permutation import Agda.Utils.Tuple @@ -74,6 +79,10 @@       p <- lift $ expandLitPattern p       case asView $ namedThing $ unArg p of 	(xs, p@(A.LitP lit))  -> do+          -- Note that, in the presence of --without-K, this branch is+          -- based on the assumption that the types of literals are+          -- not indexed.+           -- Andreas, 2010-09-07 cannot split on irrelevant args           when (argRelevance a == Irrelevant) $             typeError $ SplitOnIrrelevant p a@@ -126,6 +135,10 @@ 			 , nest 2 $ text "pars =" <+> fsep (punctuate comma $ map prettyTCM pars) 			 , nest 2 $ text "ixs  =" <+> fsep (punctuate comma $ map prettyTCM ixs) 			 ]++                  whenM (optWithoutK <$> pragmaOptions) $+                    wellFormedIndices pars ixs+ 		  return $ Split mempty 				 xs 				 (fmap (Focus c args (getRange p) q i d pars ixs) a)@@ -138,4 +151,34 @@ 	  Split p1 xs foc p2 <- underAbstraction a tel $ \tel -> splitP ps qs tel 	  return $ Split (mappend p0 p1) xs foc p2 +-- | Checks that the indices are constructors applied to distinct+-- variables which do not occur free in the parameters. +wellFormedIndices+  :: MonadTCM tcm+  => [Arg Term] -- ^ Parameters.+  -> [Arg Term] -- ^ Indices.+  -> tcm ()+wellFormedIndices pars ixs = do+  pars <- normalise pars+  ixs  <- normalise ixs+  vs   <- case constructorApplications ixs of+            Nothing -> typeError $ IndicesNotConstructorApplications ixs+            Just vs -> return vs+  unless (fastDistinct vs) $+    typeError $ IndexVariablesNotDistinct ixs+  case filter snd $ zip vs (map (`freeIn` pars) vs) of+    []          -> return ()+    (v , _) : _ -> typeError $ IndexFreeInParameter v pars+  where+  -- | If the term consists solely of constructors applied to+  -- variables, then the variables are returned, and otherwise+  -- nothing.+  constructorApplication :: Term -> Maybe [Nat]+  constructorApplication (Var x [])   = Just [x]+  constructorApplication (Con c args) = constructorApplications args+  constructorApplication _            = Nothing++  constructorApplications :: [Arg Term] -> Maybe [Nat]+  constructorApplications args =+    concat <$> mapM (constructorApplication . unArg) args
src/full/Agda/TypeChecking/Rules/Record.hs view
@@ -46,7 +46,7 @@     -- get type of record     t <- instantiateFull =<< typeOfConst name     bindParameters ps t $ \tel t0 -> do-      -- t = tel -> t0 where t0 must be a sort s +      -- t = tel -> t0 where t0 must be a sort s       t0' <- normalise t0       s <- case unEl t0' of 	Sort s	-> return s@@ -76,14 +76,14 @@       let contype = telePi ftel (raise (size ftel) rect)        (hasNamedCon, conName, conInfo) <- case con of-        Just (A.Axiom i c _) -> return (True, c, i)-        Just _               -> __IMPOSSIBLE__-        Nothing              -> do+        Just (A.Axiom i _ c _) -> return (True, c, i)+        Just _                 -> __IMPOSSIBLE__+        Nothing                -> do           m <- killRange <$> currentModule           c <- qualify m <$> freshName_ "recCon-NOT-PRINTED"           return (False, c, i) -      addConstant name $ Defn name t0 (defaultDisplayForm name) 0+      addConstant name $ Defn Relevant name t0 (defaultDisplayForm name) 0 		       $ Record { recPars           = 0                                 , recClause         = Nothing                                 , recCon            = conName@@ -98,7 +98,7 @@                                 }        addConstant conName $-        Defn conName contype (defaultDisplayForm conName) 0 $+        Defn Relevant conName contype (defaultDisplayForm conName) 0 $              Constructor { conPars   = 0                          , conSrcCon = conName                          , conData   = name@@ -148,10 +148,14 @@   [A.Declaration] -> TCM () checkRecordProjections m q tel ftel fs = checkProjs EmptyTel ftel fs   where+     checkProjs :: Telescope -> Telescope -> [A.Declaration] -> TCM ()+     checkProjs _ _ [] = return ()+     checkProjs ftel1 ftel2 (A.ScopedDecl scope fs' : fs) =       setScope scope >> checkProjs ftel1 ftel2 (fs' ++ fs)+     checkProjs ftel1 (ExtendTel _ ftel2) (A.Field info x (Arg h rel t) : fs) = do       -- check the type (in the context of the telescope)       -- the previous fields will be free in@@ -212,7 +216,7 @@ 			      [ VarP "x" | _ <- [1..size ftel] ] 	  nobind 0 = id 	  nobind n = Bind . Abs "_" . nobind (n - 1)-	  body	 = nobind (size tel - 1)+	  body	 = nobind (size ptel) 		 $ nobind (size ftel1) 		 $ Bind . Abs "x" 		 $ nobind (size ftel2)@@ -225,22 +229,30 @@                           , clauseBody  = body                           }           clause2 = Clauses Nothing clause+          cc      = compileClauses [clause2]++      reportSDoc "tc.cc" 10 $ do+        sep [ text "compiled clauses of " <+> prettyTCM projname+            , nest 2 $ text (show cc)+            ]+       escapeContext (size tel) $ do-	addConstant projname $ Defn projname (killRange finalt) (defaultDisplayForm projname) 0+	addConstant projname $ Defn rel projname (killRange finalt) (defaultDisplayForm projname) 0           $ Function { funClauses        = [clause2]-                     , funCompiled       = compileClauses [clause2]+                     , funCompiled       = cc                      , funDelayed        = NotDelayed                      , funInv            = NotInjective                      , funAbstr          = ConcreteDef                      , funPolarity       = []                      , funArgOccurrences = map (const Unused) hps ++ [Negative]+                     , funProjection     = Just (size hps + 1)+                       -- index of the record argument, start counting with 1                      }         computePolarity projname -      checkProjs (abstract ftel1 $ ExtendTel (Arg h Relevant t)+      checkProjs (abstract ftel1 $ ExtendTel (Arg h rel t)                                  $ Abs (show $ qnameName projname) EmptyTel                  ) (absBody ftel2) fs     checkProjs ftel1 ftel2 (d : fs) = do       checkDecl d       checkProjs ftel1 ftel2 fs-
src/full/Agda/TypeChecking/Rules/Term.hs view
@@ -16,7 +16,7 @@ import qualified Agda.Syntax.Abstract as A import qualified Agda.Syntax.Abstract.Views as A import qualified Agda.Syntax.Info as A-import Agda.Syntax.Concrete.Pretty () -- just Pretty instances+import Agda.Syntax.Concrete.Pretty () -- only Pretty instances import Agda.Syntax.Common import Agda.Syntax.Fixity import Agda.Syntax.Internal@@ -78,7 +78,7 @@  -- | Force a type to be a Pi. Instantiates if necessary. The 'Hiding' is only --   used when instantiating a meta variable.-{-+ forcePi :: MonadTCM tcm => Hiding -> String -> Type -> tcm (Type, Constraints) forcePi h name (El s t) =     do	t' <- reduce t@@ -98,8 +98,8 @@                 cs <- equalType (El s t') ty                 ty' <- reduce ty                 return (ty', cs)--} + --------------------------------------------------------------------------- -- * Telescopes ---------------------------------------------------------------------------@@ -190,18 +190,18 @@   Con c [] <- constructorForm =<< reduce (Con c [])   return c +-- | @checkArguments' exph r args t0 t e k@ tries @checkArguments exph args t0 t@.+-- If it succeeds, it continues @k@ with the returned results.  If it fails,+-- it registers a postponed typechecking problem and returns the resulting new+-- meta variable.+checkArguments' ::+  ExpandHidden -> Range -> [NamedArg A.Expr] -> Type -> Type -> A.Expr ->+  (Args -> Type -> Constraints -> TCM Term) -> TCM Term checkArguments' exph r args t0 t e k = do   z <- runErrorT $ checkArguments exph r args t0 t   case z of     Right (vs, t1, cs) -> k vs t1 cs-    Left t0 -> do-      let unblock = do-            t0 <- reduceB $ unEl t0-            case t0 of-              Blocked{}          -> return False-              NotBlocked MetaV{} -> return False-              _                  -> return True-      postponeTypeCheckingProblem e t unblock+    Left t0            -> postponeTypeCheckingProblem e t (unblockedTester t0)  -- | Type check an expression. checkExpr :: A.Expr -> Type -> TCM Term@@ -243,6 +243,7 @@ 		hiddenLambdaOrHole _							   = False  	-- Variable or constant application+           -- Subcase: ambiguous constructor 	_   | Application (HeadCon cs@(_:_:_)) args <- appView e -> do                 -- First we should figure out which constructor we want.                 reportSLn "tc.check.term" 40 $ "Ambiguous constructor: " ++ show cs@@ -291,8 +292,10 @@                   Just c  -> checkConstructorApplication e t c args                   Nothing -> postponeTypeCheckingProblem e t unblock +              -- Subcase: non-ambiguous constructor             | Application (HeadCon [c]) args <- appView e ->                 checkConstructorApplication e t c args+              -- Subcase: defined symbol or variable.             | Application hd args <- appView e ->                 checkHeadApplication e t hd args @@ -345,11 +348,14 @@                   top <- currentModule                   let name = "absurd"                   aux <- qualify top <$> freshName (getRange i) name+                  -- if we are in irrelevant position, the helper function+                  -- is added as irrelevant+                  rel <- irrelevant <$> asks envIrrelevant                   reportSDoc "tc.term.absurd" 10 $ vcat-                    [ text "Adding absurd function" <+> prettyTCM aux+                    [ text "Adding absurd function" <+> prettyTCM rel <> prettyTCM aux                     , nest 2 $ text "of type" <+> prettyTCM t'                     ]-                  addConstant aux $ Defn aux t' (defaultDisplayForm aux) 0+                  addConstant aux $ Defn rel aux t' (defaultDisplayForm aux) 0                                   $ Function                                     { funClauses        =                                         [Clauses Nothing@@ -366,6 +372,7 @@                                     , funAbstr          = ConcreteDef                                     , funPolarity       = [Covariant]                                     , funArgOccurrences = [Unused]+                                    , funProjection     = Nothing                                     }                   blockTerm t' (Def aux []) $ return cs'                 | otherwise -> typeError $ WrongHidingInLambda t'@@ -381,8 +388,6 @@                 v <- checkExpr e t1                 return (teleLam tel v, cs) 	    blockTerm t v (return cs)-	    where-		name (Arg h r (x,_)) = Arg h r x  	A.Lam i (A.DomainFree h x) e0 -> do 	    -- (t',cs) <- forcePi h (show x) t@@ -468,9 +473,12 @@          A.ETel _   -> __IMPOSSIBLE__ -	A.DontCare -> __IMPOSSIBLE__+	A.DontCare -> -- can happen in the context of with functions+                      return DontCare+                      -- __IMPOSSIBLE__  	A.ScopedExpr scope e -> setScope scope >> checkExpr e t+         e0@(A.QuoteGoal _ x e) -> do           t' <- etaContract =<< normalise t           let metas = foldTerm (\v -> case v of@@ -482,7 +490,7 @@             []  -> do               quoted <- quoteType t'               tmType <- agdaTermType-              (v,ty) <- addLetBinding x quoted tmType (inferExpr e)+              (v,ty) <- addLetBinding Relevant x quoted tmType (inferExpr e)               blockTerm t' v $ leqType ty t'  -- | Infer the type of a head thing (variable, function symbol, or constructor)@@ -518,6 +526,10 @@ inferDef mkTerm x =     traceCall (InferDef (getRange x) x) $ do     d  <- instantiateDef =<< getConstInfo x+    -- irrelevant defs are only allowed in irrelevant position+    when (defRelevance d == Irrelevant) $ do+      irr <- asks envIrrelevant+      unless irr $ typeError $ DefinitionIsIrrelevant x     vs <- freeVarsToApply x     verboseS "tc.term.def" 10 $ do       ds <- mapM prettyTCM vs@@ -678,26 +690,32 @@    else case hd of     HeadCon [c] -> do       (f, t0) <- inferHead hd+      reportSDoc "tc.term.con" 5 $ vcat+        [ text "checkHeadApplication inferred" <+>+          prettyTCM c <+> text ":" <+> prettyTCM t0+        ]       checkArguments' ExpandLast (getRange hd) args t0 t e $ \vs t1 cs -> do         TelV eTel eType <- telView t-        TelV fTel fType <- telView t1+        -- If the expected type @eType@ is a metavariable we have to make+        -- sure it's instantiated to the proper pi type+        TelV fTel fType <- telViewUpTo (size eTel) t1         blockTerm t (f vs) $ (cs ++) <$> do           -- We know that the target type of the constructor (fType)           -- does not depend on fTel so we can compare fType and eType           -- first.-                                         -- This will fail-          when (size eTel > size fTel) $ compareTel CmpLeq eTel fTel >> return () -          -- If the expected type is a metavariable we have to make-          -- sure it's instantiated to the proper pi type-          let (fTel0, fTel1) = telFromList -*- telFromList-                             $ splitAt (size eTel)-                             $ telToList fTel-              fType' = abstract fTel1 fType+          when (size eTel > size fTel) $+            compareTel CmpLeq eTel fTel >> return () -- This will fail! -          cs1 <- addCtxTel eTel $ leqType fType' eType-          cs2 <- compareTel CmpLeq eTel fTel0+          reportSDoc "tc.term.con" 10 $ vcat+            [ text "checking" <+>+              prettyTCM fType <+> text "?<=" <+> prettyTCM eType+            ]+          cs1 <- addCtxTel eTel $ leqType fType eType++          cs2 <- compareTel CmpLeq eTel fTel           return $ cs1 ++ cs2+     HeadDef c | Just c == (nameOfSharp <$> kit) -> do       -- TODO: Handle coinductive constructors under lets.       lets <- envLetBindings <$> ask@@ -718,7 +736,10 @@       -- signature.       i   <- currentMutualBlock       tel <- getContextTelescope-      addConstant c' (Defn c' t (defaultDisplayForm c') i $ Axiom Nothing)+      -- If we are in irrelevant position, add definition irrelevantly.+      -- TODO: is this sufficient?+      rel <- irrelevant <$> asks envIrrelevant+      addConstant c' (Defn rel c' t (defaultDisplayForm c') i $ Axiom Nothing Nothing)        -- Define and type check the fresh function.       ctx <- getContext@@ -736,7 +757,7 @@           , text "was translated into the application"           , nest 2 $ prettyTCM e'           , text "and the function"-          , nest 2 $ prettyTCM c' <+> text ":"+          , nest 2 $ prettyTCM rel <> prettyTCM c' <+> text ":"           , nest 4 $ prettyTCM (telePi tel t)           , nest 2 $ prettyA clause <> text "."           ]@@ -872,11 +893,11 @@ checkLetBindings = foldr (.) id . map checkLetBinding  checkLetBinding :: A.LetBinding -> TCM a -> TCM a-checkLetBinding b@(A.LetBind i x t e) ret =+checkLetBinding b@(A.LetBind i rel x t e) ret =   traceCallCPS_ (CheckLetBinding b) ret $ \ret -> do     t <- isType_ t-    v <- checkExpr e t-    addLetBinding x v t ret+    v <- applyRelevanceToContext rel $ checkExpr e t+    addLetBinding rel x v t ret checkLetBinding (A.LetApply i x tel m args rd rm) ret = do   -- Any variables in the context that doesn't belong to the current   -- module should go with the new module.@@ -894,4 +915,3 @@   withAnonymousModule x new ret -- LetOpen is only used for highlighting and has no semantics checkLetBinding A.LetOpen{} ret = ret-
src/full/Agda/TypeChecking/Serialise.hs view
@@ -77,7 +77,7 @@ -- 32-bit machines). Word64 does not have these problems.  currentInterfaceVersion :: Word64-currentInterfaceVersion = 20100927 * 10 + 0+currentInterfaceVersion = 20110217 * 10 + 0  type Node = [Int32] -- constructor tag (maybe omitted) and arg indices @@ -554,9 +554,9 @@   value n = MutId `fmap` value n  instance EmbPrj Definition where-  icode (Defn a b c d e) = icode5' a b c d e-  value = vcase valu where valu [a, b, c, d, e] = valu5 Defn a b c d e-                           valu _               = malformed+  icode (Defn rel a b c d e) = icode6' rel a b c d e+  value = vcase valu where valu [rel, a, b, c, d, e] = valu6 Defn rel a b c d e+                           valu _                    = malformed  instance EmbPrj HaskellRepresentation where   icode (HsType a)   = icode1 0 a@@ -590,19 +590,19 @@     valu _   = malformed  instance EmbPrj Defn where-  icode (Axiom       a)                     = icode1 0 a-  icode (Function    a b c d e f g)         = icode7 1 a b c d e f g+  icode (Axiom       a b)                   = icode2 0 a b+  icode (Function    a b c d e f g h)       = icode8 1 a b c d e f g h   icode (Datatype    a b c d e f g h i j)   = icode10 2 a b c d e f g h i j   icode (Record      a b c d e f g h i j k) = icode11 3 a b c d e f g h i j k   icode (Constructor a b c d e f)           = icode6 4 a b c d e f-  icode (Primitive   a b c)                 = icode3 5 a b c+  icode (Primitive   a b c d)               = icode4 5 a b c d   value = vcase valu where-    valu [0, a]                               = valu1 Axiom       a-    valu [1, a, b, c, d, e, f, g]             = valu7 Function    a b c d e f g+    valu [0, a, b]                            = valu2 Axiom       a b+    valu [1, a, b, c, d, e, f, g, h]          = valu8 Function    a b c d e f g h     valu [2, a, b, c, d, e, f, g, h, i, j]    = valu10 Datatype   a b c d e f g h i j     valu [3, a, b, c, d, e, f, g, h, i, j, k] = valu11 Record     a b c d e f g h i j k     valu [4, a, b, c, d, e, f]                = valu6 Constructor a b c d e f-    valu [5, a, b, c]                         = valu3 Primitive   a b c+    valu [5, a, b, c, d]                      = valu4 Primitive   a b c d     valu _                                    = malformed  instance EmbPrj a => EmbPrj (Case a) where
src/full/Agda/TypeChecking/SizedTypes.hs view
@@ -113,13 +113,16 @@  computeSizeConstraint :: MonadTCM tcm => ConstraintClosure -> tcm (Maybe SizeConstraint) computeSizeConstraint cl = liftTCM $-  enterClosure cl $ \(ValueCmp CmpLeq _ u v) -> do-    (a, n) <- sizeExpr u-    (b, m) <- sizeExpr v-    return $ Just $ Leq a (m - n) b-  `catchError` \err -> case errError err of-    PatternErr _ -> return Nothing-    _            -> throwError err+  enterClosure cl $ \c ->+    case c of+      ValueCmp CmpLeq _ u v -> do+          (a, n) <- sizeExpr u+          (b, m) <- sizeExpr v+          return $ Just $ Leq a (m - n) b+        `catchError` \err -> case errError err of+          PatternErr _ -> return Nothing+          _            -> throwError err+      _ -> __IMPOSSIBLE__  -- | Throws a 'patternViolation' if the term isn't a proper size expression. sizeExpr :: MonadTCM tcm => Term -> tcm (SizeExpr, Int)
src/full/Agda/TypeChecking/Substitute.hs view
@@ -40,7 +40,7 @@             Pi _ _        -> __IMPOSSIBLE__             Fun _ _       -> __IMPOSSIBLE__             Sort _        -> __IMPOSSIBLE__-            DontCare      -> __IMPOSSIBLE__ +            DontCare      -> __IMPOSSIBLE__  instance Apply Type where   apply = piApply@@ -55,14 +55,18 @@   apply (ExtendTel _ tel) (t : ts) = absApp tel (unArg t) `apply` ts  instance Apply Definition where-    apply (Defn x t df m d) args = Defn x (piApply t args) df m (apply d args)+    apply (Defn rel x t df m d) args = Defn rel x (piApply t args) df m (apply d args)  instance Apply Defn where   apply d args = case d of     Axiom{} -> d-    Function{ funClauses = cs, funCompiled = cc, funInv = inv } ->-      d { funClauses = apply cs args, funCompiled = apply cc args-        , funInv = apply inv args }+    Function{ funClauses = cs, funCompiled = cc, funInv = inv+            , funProjection = mn } ->+      d { funClauses    = apply cs args+        , funCompiled   = apply cc args+        , funInv        = apply inv args+        , funProjection = fmap (nonNeg . \ n -> n - size args) mn+        } where nonNeg n = if n >= 0 then n else __IMPOSSIBLE__     Datatype{ dataPars = np, dataClause = cl } ->       d { dataPars = np - size args, dataClause = apply cl args }     Record{ recPars = np, recConType = t, recClause = cl, recTel = tel } ->@@ -175,14 +179,18 @@   abstract (ExtendTel arg tel') tel = ExtendTel arg $ fmap (`abstract` tel) tel'  instance Abstract Definition where-    abstract tel (Defn x t df m d) = Defn x (abstract tel t) df m (abstract tel d)+    abstract tel (Defn rel x t df m d) = Defn rel x (abstract tel t) df m (abstract tel d)  instance Abstract Defn where   abstract tel d = case d of     Axiom{} -> d-    Function{ funClauses = cs, funCompiled = cc, funInv = inv } ->+    Function{ funClauses = cs, funCompiled = cc, funInv = inv+            , funProjection = mn } ->       d { funClauses = abstract tel cs, funCompiled = abstract tel cc-        , funInv = abstract tel inv }+        , funInv = abstract tel inv+        , funProjection = fmap ((+) (size tel)) mn+          -- index of record arg shifts back by number of new args+        }     Datatype{ dataPars = np, dataClause = cl } ->       d { dataPars = np + size tel, dataClause = abstract tel cl }     Record{ recPars = np, recConType = t, recClause = cl, recTel = tel' } ->@@ -502,5 +510,3 @@     vs = freeVars (absBody s2)     fv = flexibleVars vs     rv = rigidVars vs--
src/full/Agda/TypeChecking/Telescope.hs view
@@ -119,14 +119,32 @@     m         = genericLength $ takeWhile (`notElem` is) (reverse js)     (tel1, tel2) = telFromList -*- telFromList $ genericSplitAt (n - m) $ telToList tel' +{- Andreas 2010-10-01: this comment seems stale.  Where is the unsafe variant? -- | A safe variant of telView. +OLD CODE: telView :: MonadTCM tcm => Type -> tcm TelView telView t = do   t <- reduce t   case unEl t of     Pi a (Abs x b) -> absV a x   <$> telView b     Fun a b	   -> absV a "_" <$> telView (raise 1 b)+    _		   -> return $ TelV EmptyTel t+  where+    absV a x (TelV tel t) = TelV (ExtendTel a (Abs x tel)) t+-}+telView :: MonadTCM tcm => Type -> tcm TelView+telView = telViewUpTo (-1)++-- | @telViewUpTo n t@ takes off the first @n@ function types of @t@.+-- Takes off all if $n < 0$.+telViewUpTo :: MonadTCM tcm => Int -> Type -> tcm TelView+telViewUpTo 0 t = return $ TelV EmptyTel t+telViewUpTo n t = do+  t <- reduce t+  case unEl t of+    Pi a (Abs x b) -> absV a x   <$> telViewUpTo (n-1) b+    Fun a b	   -> absV a "_" <$> telViewUpTo (n-1) (raise 1 b)     _		   -> return $ TelV EmptyTel t   where     absV a x (TelV tel t) = TelV (ExtendTel a (Abs x tel)) t
src/full/Agda/TypeChecking/Test/Generators.hs view
@@ -517,4 +517,3 @@ prop_wellScopedVars conf =   forAllShrink (genC conf) (shrinkC conf) $ \t ->   isWellScoped conf (t :: Term)-
src/full/Agda/TypeChecking/UniversePolymorphism.hs view
@@ -86,4 +86,3 @@       -- do something interesting with the solution       addConstraints rest       return ()-
src/full/Agda/TypeChecking/With.hs view
@@ -150,7 +150,7 @@              -- Compute the argument telescope for the constructor             Con c []    <- constructorForm =<< normalise (Con c [])-            Defn _ ct _ _ Constructor{conPars = np}  <- getConstInfo c+            Defn _ _ ct _ _ Constructor{conPars = np}  <- getConstInfo c             let ct' = ct `apply` genericTake np us             TelV tel' _ <- telView ct' @@ -289,6 +289,3 @@  constructorsInClause :: ConPos -> A.Clause -> [Range] constructorsInClause pos (A.Clause (A.LHS _ _ ps wps) rhs _) = []---
src/full/Agda/Utils/Char.hs view
@@ -12,4 +12,3 @@  octDigit :: Char -> Int octDigit = decDigit-
src/full/Agda/Utils/Either.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ ------------------------------------------------------------------------ -- | Utilities for the 'Either' type ------------------------------------------------------------------------@@ -12,6 +14,9 @@ import Agda.Utils.QuickCheck import Agda.Utils.TestHelpers +#include "../undefined.h"+import Agda.Utils.Impossible+ -- | Returns 'True' iff the argument is @'Right' x@ for some @x@.  isRight :: Either a b -> Bool@@ -45,9 +50,12 @@ prop_allRight xs =   allRight xs ==     if all isRight xs then-      Right (map (\(Right x) -> x) xs)+      Right (map fromRight xs)      else       Left xs+  where+  fromRight (Right x) = x+  fromRight (Left _)  = __IMPOSSIBLE__  ------------------------------------------------------------------------ -- All tests
src/full/Agda/Utils/Fresh.hs view
@@ -21,4 +21,3 @@ withFresh ret =     do	(i,e) <- asks nextFresh 	local (const e) $ ret i-
src/full/Agda/Utils/Hash.hs view
@@ -9,4 +9,3 @@     prime1 = 1230371     prime2 = 446441     prime3 = 275604541-
src/full/Agda/Utils/IO/Locale.hs view
@@ -13,17 +13,21 @@   ( print   , putStr   , putStrLn+  , stdoutFlush   , hGetContents   ) where  import Prelude (Show, IO, String)-import System.IO (Handle)+import System.IO (Handle, hFlush, stdout) #if MIN_VERSION_base(4,2,0) import qualified Prelude import qualified System.IO as IO #else import qualified System.IO.UTF8 as UTF8 #endif++stdoutFlush :: IO ()+stdoutFlush = hFlush stdout  -- | Prints the value. 
src/full/Agda/Utils/List.hs view
@@ -8,9 +8,10 @@ import Agda.Utils.Tuple  import Text.Show.Functions+import Data.Function import Data.List import Data.Maybe-import Data.Function+import qualified Data.Set as Set  mhead :: [a] -> Maybe a mhead []    = Nothing@@ -60,6 +61,16 @@ distinct []	= True distinct (x:xs) = x `notElem` xs && distinct xs +-- | An optimised version of 'distinct'.+--+-- Precondition: The list's length must fit in an 'Int'.++fastDistinct :: Ord a => [a] -> Bool+fastDistinct xs = Set.size (Set.fromList xs) == length xs++prop_distinct_fastDistinct :: [Integer] -> Bool+prop_distinct_fastDistinct xs = distinct xs == fastDistinct xs+ -- | Checks if all the elements in the list are equal. Assumes that -- the 'Eq' instance stands for an equivalence relation. allEqual :: Eq a => [a] -> Bool@@ -136,7 +147,8 @@  tests :: IO Bool tests = runTests "Agda.Utils.List"-  [ quickCheck' prop_groupBy'+  [ quickCheck' prop_distinct_fastDistinct+  , quickCheck' prop_groupBy'   , quickCheck' prop_extractNthElement   , quickCheck' prop_genericElemIndex   ]
src/full/Agda/Utils/Map.hs view
@@ -37,4 +37,3 @@ -- | Filter a map based on the keys. filterKeys :: Ord k => (k -> Bool) -> Map k a -> Map k a filterKeys p = filterWithKey (const . p)-
src/full/Agda/Utils/Maybe.hs view
@@ -10,4 +10,3 @@  fromMaybeM :: Monad m => m a -> m (Maybe a) -> m a fromMaybeM m mm = maybe m return =<< mm-
src/full/Agda/Utils/Monad.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP #-}+{-# LANGUAGE FlexibleContexts, CPP #-}  module Agda.Utils.Monad     ( module Agda.Utils.Monad@@ -21,36 +21,6 @@ #include "../undefined.h" import Agda.Utils.Impossible --- Instances ----------------------------------------------------------------instance Applicative (Reader env) where-  pure  = return-  (<*>) = ap--instance (Error e, Monad m) => Applicative (ErrorT e m) where-  pure  = return-  (<*>) = ap--instance Monad m => Applicative (ReaderT env m) where-  pure  = return-  (<*>) = ap--instance Monad m => Applicative (StateT s m) where-  pure  = return-  (<*>) = ap--instance Monad m => Applicative (SS.StateT s m) where-  pure  = return-  (<*>) = ap--instance (Monoid o, Monad m) => Applicative (WriterT o m) where-  pure	= return-  (<*>)	= ap--instance Applicative (State s) where-  pure	= return-  (<*>)	= ap- -- Monads -----------------------------------------------------------------  infixl 8 <.>@@ -138,8 +108,8 @@  -- Read ------------------------------------------------------------------- -readM :: (Monad m, Read a) => String -> m a+readM :: (Error e, MonadError e m, Read a) => String -> m a readM s = case reads s of 	    [(x,"")]	-> return x-	    _		-> fail $ "readM: parse error string " ++ s-+	    _		->+              throwError $ strMsg $ "readM: parse error string " ++ s
src/full/Agda/Utils/Permutation.hs view
@@ -18,14 +18,14 @@           showList :: String -> (a -> String) -> [a] -> String           showList sep f [] = ""           showList sep f [e] = f e-          showList sep f (e:es) = f e ++ sep ++ showList sep f es +          showList sep f (e:es) = f e ++ sep ++ showList sep f es  instance Sized Permutation where   size (Perm _ xs) = size xs  -- | @permute [2,3,1] [x1,x2,x3] = [x2,x3,x1]@ --   More precisely, @permute indices list = sublist@, generates @sublist@---   from @list@ by picking the elements of list as indicated by @indices@. +--   from @list@ by picking the elements of list as indicated by @indices@. --   @permute [2,4,1] [x1,x2,x3,x4] = [x2,x4,x1]@ permute :: Permutation -> [a] -> [a] permute (Perm _ is) xs = map (xs !!!) is@@ -102,4 +102,3 @@       where 	xs = [ x | (x, []) <- g ] 	remove x g = [ (y, filter (/= x) ys) | (y, ys) <- g, x /= y ]-
src/full/Agda/Utils/Pointer.hs view
@@ -22,4 +22,3 @@     y <- f x     store p y     return y-
src/full/Agda/Utils/ReadP.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS_GHC -fglasgow-exts #-} -- unboxed integers+{-# LANGUAGE MagicHash, Rank2Types #-} ----------------------------------------------------------------------------- -- | 
src/full/Agda/Utils/SemiRing.hs view
@@ -13,4 +13,3 @@   otimes Nothing _ = Nothing   otimes _ Nothing = Nothing   otimes (Just x) (Just y) = Just (otimes x y)-
src/full/Agda/Utils/Size.hs view
@@ -18,4 +18,3 @@  instance Sized (Set a) where   size = fromIntegral . Set.size-
src/full/Agda/Utils/Suffix.hs view
@@ -21,4 +21,3 @@ addSuffix s NoSuffix = s addSuffix s (Prime n) = s ++ replicate n '\'' addSuffix s (Index i) = s ++ show i-
src/full/Agda/Utils/TestHelpers.hs view
@@ -15,13 +15,17 @@   , maybeGen   , maybeCoGen   , listOfElements+  , two+  , three     -- * Test driver.   , runTests   )   where -import Agda.Utils.QuickCheck+import Control.Monad import Data.List++import Agda.Utils.QuickCheck import qualified Agda.Utils.IO.Locale as LocIO  ------------------------------------------------------------------------@@ -114,6 +118,16 @@ maybeCoGen :: (a -> Gen b -> Gen b) -> (Maybe a -> Gen b -> Gen b) maybeCoGen f Nothing  = variant 0 maybeCoGen f (Just x) = variant 1 . f x++-- | Generates two elements.++two :: Gen a -> Gen (a, a)+two gen = liftM2 (,) gen gen++-- | Generates three elements.++three :: Gen a -> Gen (a, a, a)+three gen = liftM3 (,,) gen gen gen  ------------------------------------------------------------------------ -- Test driver
src/full/Agda/Utils/Trie.hs view
@@ -79,4 +79,3 @@ prop_path ks m =   collect (length $ modelPath ks m) $   lookupPath ks (modelToTrie m) == modelPath ks m-
src/full/Agda/Utils/Tuple.hs view
@@ -12,4 +12,3 @@  uncurry3 :: (a -> b -> c -> d) -> (a,b,c) -> d uncurry3 f (x,y,z) = f x y z-
src/full/Agda/Utils/Warshall.hs view
@@ -485,7 +485,7 @@ -- | Check that all transitive edges are added. prop_path n' =   forAll (genGraph_ n) $ \g ->-  forAll (replicateM 2 $ choose (0, n - 1)) $ \[i, j] ->+  forAll (two $ choose (0, n - 1)) $ \(i, j) ->   forAll (genPath n i j g) $ \g' ->   isJust (lookupEdge i j $ warshallG g')   where@@ -498,7 +498,7 @@  -- | Check that no edges are added between components. prop_disjoint n' =-  forAll (replicateM 2 $ genGraph_ n) $ \[g1, g2] ->+  forAll (two $ genGraph_ n) $ \(g1, g2) ->   let g  = Map.union (mapNodes Left g1) (mapNodes Right g2)       g' = warshallG g   in all disjoint (Map.assocs g')