diff --git a/.envrc b/.envrc new file mode 100644 index 000000000..8ebe67ac3 --- /dev/null +++ b/.envrc @@ -0,0 +1,2 @@ +use flake +eval "$shellHook" \ No newline at end of file diff --git a/.github/workflows/ghcjs.yml b/.github/workflows/ghcjs.yml index 2ab02e1e3..42d62dbd2 100644 --- a/.github/workflows/ghcjs.yml +++ b/.github/workflows/ghcjs.yml @@ -18,6 +18,12 @@ on: workflow_dispatch: # allow triggering this workflow manually +env: + store: /home/runner/nix + +permissions: + contents: write + jobs: build-and-deploy: runs-on: ubuntu-latest @@ -25,17 +31,22 @@ jobs: - name: 📥 Checkout repository uses: actions/checkout@v3 - - name: 🧰 Setup nix (cache) - uses: cachix/install-nix-action@v13 + - name: 🧰 Setup nix + uses: cachix/install-nix-action@v20 with: - nix_path: nixpkgs=channel:nixos-unstable + nix_path: nixpkgs=channel:nixpkgs-unstable + extra_nix_config: "store = ${{ env.store }}\nsubstituters = https://cache.nixos.org/ https://cache.iog.io https://nix-community.cachix.org https://miso-haskell.cachix.org \ntrusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= miso-haskell.cachix.org-1:6N2DooyFlZOHUfJtAx1Q09H0P5XXYzoxxQYiwn6W1e8=" # pinning Nix version - install_url: https://releases.nixos.org/nix/nix-2.13.3/install - - - name: 💾 Setup cachix (miso-haskell) - uses: cachix/cachix-action@v10 + install_url: https://releases.nixos.org/nix/nix-2.14.1/install + + - name: Restore and cache Nix store + uses: actions/cache@v3.3.0 with: - name: miso-haskell + key: ${{ runner.os }}-nix-${{ hashfiles('./flake.nix', './flake.lock') }} + path: ${{ env.store }} + restore-keys: | + ${{ runner.os }}-nix-${{ hashfiles('./flake.nix', './flake.lock') }} + ${{ runner.os }}-nix- - name: 🔨 Remove rzk.cabal, lexer and parser generator files run: | @@ -45,12 +56,12 @@ jobs: - name: 🔨 Build GHCJS version with Nix run: | - nix-build try-rzk/ + nix build .#try-rzk - name: 🔨 Collect build artifacts run: | mkdir -p dist/result/bin - cp -r ./result/bin/try-rzk.jsexe/ dist/result/bin/. + cp -r ${{ env.store }}$(realpath result)/bin/try-rzk.jsexe/ dist/result/bin/. chmod -R +w dist/ cp try-rzk/playground.html dist/. @@ -58,7 +69,7 @@ jobs: if: ${{ github.ref_name != 'main' && github.event_name == 'push' }} uses: JamesIves/github-pages-deploy-action@v4 with: - github_token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} folder: dist target-folder: ${{ github.ref_name }} clean: false @@ -67,6 +78,6 @@ jobs: if: ${{ github.ref_name == 'main' && github.event_name == 'push' }} uses: JamesIves/github-pages-deploy-action@v4 with: - github_token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} folder: dist clean: false diff --git a/.gitignore b/.gitignore index b1804eb3c..f61a4d7ed 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ cabal.project.local~ .HTF/ .ghc.environment.* docs/site +result +.direnv \ No newline at end of file diff --git a/README.md b/README.md index 9d15dee80..0b08f1484 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,73 @@ nix-build Now open `playground.html` to see the result. Note that if local GHCJS build is unavailable, `playground.html` will use the [JS file from GitHub Pages](https://fizruk.github.io/rzk/v0.1.0/result/bin/try-rzk.jsexe/all.js) as a fallback. -# References +##### Flake + +The flake in this repository allows to build `try-rzk` incrementally and reproducibly. + +1. Install `Nix` via single-user [installation](https://nixos.org/download.html#download-nix): + + 1. Run script + + ```sh + sh <(curl -L https://nixos.org/nix/install) --no-daemon + ``` + + 1. Permanently [enable](https://nixos.wiki/wiki/Flakes#Permanent) flakes + +1. Enter the `devShell` with `GHC` (not `GHCJS`). Answer `y` to `Nix` prompts to use binary caches. + + ```sh + nix develop + ``` + +1. The shell provides `ghc`, `haskell-language-server`, `cabal-install`, `hpack`. + +1. (Optionally) Install [direnv](https://direnv.net/) to start the `devShell` when you enter the repository directory. + +1. Build `rzk`. + + ```sh + cabal build + ``` + +1. Enter the `devShell` with `GHCJS`. + + ```sh + nix develop .#ghcjs + ``` + +1. Build `try-rzk`. This may require ~10 GB of RAM. + + ```sh + cabal build --ghcjs + ``` + +1. (Optionally) Build `rzk` via `Nix`. The resulting executable will be in `result/bin/rzk`. + + ```sh + nix build .#rzk + ``` + +1. (Optionally) Run `rzk` via `Nix`. + + ```sh + nix run .#rzk + ``` + +1. (Optionally) Build `try-rzk` via `Nix`. This may require ~10 GB of RAM. The resulting executable will be in `try-rzk/result/bin/try-rzk.jsexe`. + + ```sh + nix build .#try-rzk --out-link try-rzk/result + ``` + +1. Open the app in a browser. + + ```sh + firefox try-rzk/playground.html + ``` + +## References 1. Emily Riehl & Michael Shulman. A type theory for synthetic ∞-categories. Higher Structures 1(1), 147-224. 2017. https://arxiv.org/abs/1705.07442 2. Nikolai Kudasov. E-unification for Second-Order Abstract Syntax. 2023. https://arxiv.org/abs/2302.05815 diff --git a/cabal.project b/cabal.project new file mode 100644 index 000000000..eee6158d6 --- /dev/null +++ b/cabal.project @@ -0,0 +1 @@ +packages: rzk try-rzk \ No newline at end of file diff --git a/docs/docs/rzk-1/recId.md b/docs/docs/rzk-1/recId.md index bb92e903f..035126db7 100644 --- a/docs/docs/rzk-1/recId.md +++ b/docs/docs/rzk-1/recId.md @@ -84,12 +84,21 @@ The idea is straightforward. We ask for a proof that `a = b` for all points in ` First, we define how to restrict an extension type to a subshape: ```rzk +#section construction-of-recId + +#variable r : relfunext2 +#variable I : CUBE +#variables psi phi : I -> TOPE +#variable A : {t : I | psi t \/ phi t} -> U + -- Restrict extension type to a subshape. -#def restrict - (I : CUBE) - (psi : I -> TOPE) - (phi : I -> TOPE) - (A : {t : I | psi t \/ phi t} -> U) +#def restrict_phi + (a : {t : I | phi t} -> A t) + : {t : I | psi t /\ phi t} -> A t + := \t -> a t + +-- Restrict extension type to a subshape. +#def restrict_psi (a : {t : I | psi t} -> A t) : {t : I | psi t /\ phi t} -> A t := \t -> a t @@ -99,13 +108,15 @@ Then, how to reformulate an `a` (or `b`) as an extension of its restriction: ```rzk -- Reformulate extension type as an extension of a restriction. -#def ext-of-restrict - (I : CUBE) - (psi : I -> TOPE) - (phi : I -> TOPE) - (A : {t : I | psi t \/ phi t} -> U) +#def ext-of-restrict_psi (a : {t : I | psi t} -> A t) - : (t : psi) -> A t [ psi t /\ phi t |-> restrict I psi phi A a t ] + : (t : psi) -> A t [ psi t /\ phi t |-> restrict_psi a t ] + := a -- type is coerced automatically here + +-- Reformulate extension type as an extension of a restriction. +#def ext-of-restrict_phi + (a : {t : I | phi t} -> A t) + : (t : phi) -> A t [ psi t /\ phi t |-> restrict_phi a t ] := a -- type is coerced automatically here ``` @@ -114,15 +125,10 @@ Now, assuming relative function extensionality, we construct a path between rest ```rzk -- Transform extension of an identity into an identity of restrictions. #def restricts-path - (r : relfunext2) - (I : CUBE) - (psi : I -> TOPE) - (phi : I -> TOPE) - (A : {t : I | psi t \/ phi t} -> U) (a_psi : (t : psi) -> A t) (a_phi : (t : phi) -> A t) (e : {t : I | psi t /\ phi t} -> a_psi t = a_phi t) - : restrict I psi phi A a_psi = restrict I phi psi A a_phi + : restrict_psi a_psi = restrict_phi a_phi := (first (second (r I (\t -> psi t /\ phi t) (\t -> BOT) @@ -138,12 +144,7 @@ Finally, we bring everything together into `recId`: -- A weaker version of recOR, demanding only a path between a and b: -- recOR(psi, phi, a, b) demands that for psi /\ phi we have a == b (definitionally) -- (recId psi phi a b e) demands that e is the proof that a = b (intensionally) for psi /\ phi -#def recId - (r : relfunext2) - (I : CUBE) - (psi : I -> TOPE) - (phi : I -> TOPE) - (A : {t : I | psi t \/ phi t} -> U) +#def recId uses (r) -- we declare that recId is using r on purpose (a_psi : (t : psi) -> A t) (a_phi : (t : phi) -> A t) (e : {t : I | psi t /\ phi t} -> a_psi t = a_phi t) @@ -152,13 +153,15 @@ Finally, we bring everything together into `recId`: psi t |-> transport ({s : I | psi s /\ phi s} -> A s) (\ra -> (s : psi) -> A s [ psi s /\ phi s |-> ra s ]) - (restrict I psi phi A a_psi) - (restrict I phi psi A a_phi) - (restricts-path r I psi phi A a_psi a_phi e) - (ext-of-restrict I psi phi A a_psi) + (restrict_psi a_psi) + (restrict_phi a_phi) + (restricts-path a_psi a_phi e) + (ext-of-restrict_psi a_psi) t, - phi t |-> ext-of-restrict I phi psi A a_phi t + phi t |-> ext-of-restrict_phi a_phi t ) + +#end construction-of-recId ``` ## Gluing extension types diff --git a/docs/docs/rzk-1/sections.md b/docs/docs/rzk-1/sections.md new file mode 100644 index 000000000..930796679 --- /dev/null +++ b/docs/docs/rzk-1/sections.md @@ -0,0 +1,126 @@ +# Sections and Variables + +Sections and variables allow to simplify definitions by factoring out common assumptions. + +!!! hint "Coq-style variables" + `rzk` implements variables similarly to + `Variable` command in Coq. + An important difference is that `rzk` does not allow definitions to use variables implicitly and adds `uses (...)` annotations to ensure such dependencies are not accidental. + This is, perhaps, somewhat related to this error message in Coq. + +This is a literate `rzk` file: + +```rzk +#lang rzk-1 +``` + +## Variables + +Consider the following definitions: + +```rzk +#def compose₁ + (A B C : U) + (g : B -> C) + (f : A -> B) + : A -> C + := \x -> g (f x) + +#def twice₁ + (A : U) + (h : A -> A) + : A -> A + := \x -> h (h x) +``` + +Since it might be common to introduce types `A`, `B`, and `C`, we can declare these are variables: + +```rzk +#variables A B C : U + +#def compose₂ + (g : B -> C) + (f : A -> B) + : A -> C + := \x -> g (f x) + +#def twice₂ + (h : A -> A) + : A -> A + := \x -> h (h x) +``` + +The `#variables` command here introduces assumptions, which can be used in the following definitions. Importantly, after checking a file (module), all definitions will have the assumptions used (explicitly or implicitly) attached as bound variables. + +### Implicitly used variables (and `uses`) + +We can try going even further and declare variables `f`, `g`, `h`, and `x`: + +```rzk +#variable g : B -> C +#variable f : A -> B +#variable h : A -> A +#variable x : A + +-- #def bad-compose₃ : C := g (f x) -- ERROR: implicit assumptions A and B +#def twice₃ : A := h (h x) +``` + +Note how this definition of `bad-compose₃` is implicitly dependent on the types `A` and `B`, which is promptly noted by `rzk`, which issues an error (if we uncomment the corresponding line): + +```text +implicit assumption + B : U +used in definition of + bad-compose₃ +``` + +To let `rzk` know that this is not accidental, we can add `uses (...)` annotation to specify a list of variables implicitly used in the definition: + +```rzk +#def compose₃ uses (A B) : C := g (f x) +``` + +## Sections + +To introduce assumption variables temporarily inside of one file, you can use sections: + +```rzk +#section example-1 + +#variables X Y Z : U +#variable k : X -> X +#variable x' : X + +#def compose₄ + (g : Y -> Z) + (f : X -> Y) + : X -> Z + := \x -> g (f x) + +#def twice₄ : X := k (k x') + +#end example-1 +``` + +Now, once outside of the section, `compose₄` and `twice₄` obtain corresponding parameters +(only those used, explicitly or implicitly): + +```rzk +-- compose₄ : (X : U) -> (Y : U) -> (Z : U) -> (g : Y -> Z) -> (f : X -> Y) -> (X -> Z) +-- twice₄ : (X : U) -> (k : X -> X) -> (x' : X) -> X + +#def twice₅ + (T : U) + (e : T -> T) + : T -> T + := compose₄ T T T e e + +#def identity + (T : U) + : T -> T + := twice₄ T (\t -> t) +``` + +!!! warning "Lack of indentation" + `rzk` currently does not support indentation, so all definitions and commands inside a section (including nested sections) have to start at the beginning of a line. \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index aa042002e..98c413bb0 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -4,6 +4,7 @@ nav: - About: index.md - rzk-1 Language: - Introduction: rzk-1/introduction.md + - Sections and Variables: rzk-1/sections.md - Rendering Diagrams: rzk-1/render.md - Weak tope disjunction elimination: rzk-1/recId.md - Tools: diff --git a/flake.lock b/flake.lock new file mode 100644 index 000000000..2170d390e --- /dev/null +++ b/flake.lock @@ -0,0 +1,79 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "miso": { + "flake": false, + "locked": { + "lastModified": 1675453995, + "narHash": "sha256-rvNgA1ptB8UTBZMn1pjk6nN0CSNekF7oKc00SlpHX4I=", + "owner": "dmjio", + "repo": "miso", + "rev": "5c66ed20818ce4aff81aaefbd5789007717923eb", + "type": "github" + }, + "original": { + "owner": "dmjio", + "repo": "miso", + "rev": "5c66ed20818ce4aff81aaefbd5789007717923eb", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1684242266, + "narHash": "sha256-uaCQ2k1bmojHKjWQngvnnnxQJMY8zi1zq527HdWgQf8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7e0743a5aea1dc755d4b761daf75b20aa486fdad", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "miso": "miso", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 000000000..89ae38c2e --- /dev/null +++ b/flake.nix @@ -0,0 +1,107 @@ +{ + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + miso = { + url = "github:dmjio/miso/5c66ed20818ce4aff81aaefbd5789007717923eb"; + flake = false; + }; + }; + outputs = inputs: inputs.flake-utils.lib.eachDefaultSystem (system: + let + pkgs = inputs.nixpkgs.legacyPackages.${system}; + + rzk = "rzk"; + try-rzk = "try-rzk"; + ghcVersion = "ghc927"; + + # select a Haskell package set for a specified GHC version + hpkgs = pkgs.haskell.packages.${ghcVersion}; + + inherit (pkgs.haskell.lib) overrideCabal; + + # Provide overrides + # https://nixos.wiki/wiki/Haskell#Overrides + # An override should include a local package into the Haskell package set + override = { + overrides = self: super: { + ${rzk} = overrideCabal (self.callCabal2nix rzk ./${rzk} { }) (x: { + librarySystemDepends = [ pkgs.alex pkgs.happy ] ++ (x.librarySystemDepends or [ ]); + }); + ${try-rzk} = overrideCabal (self.callCabal2nix try-rzk ./${try-rzk} { }) (x: { + executableSystemDepends = [ self.ghcjs-prim self.ghcjs-base ] ++ (x.executableSystemDepends or [ ]); + }); + }; + }; + hpkgs_ = hpkgs.override override; + + # Get all dependencies of local Haskell packages excluding these local packages + # This approach is useful for cases when a local package A depends on a local package B + # In this case, package B won't be built by Nix as a dependency of A + getHaskellPackagesDeps = someHaskellPackages: let l = pkgs.lib.lists; in (l.subtractLists someHaskellPackages (l.concatLists (map (package: l.concatLists (__attrValues package.getCabalDeps)) someHaskellPackages))); + + # build a GHC with the dependencies of local Haskell packages + ghcForPackages = localHaskellPackageNames: hpkgs_.ghcWithPackages (ps: (getHaskellPackagesDeps (map (x: ps.${x}) localHaskellPackageNames) ++ [ ps.haskell-language-server ])); # Why provide HLS here - https://github.com/NixOS/nixpkgs/issues/225895#issuecomment-1509991742 + + # GHC with dependencies of local Haskell packages + ghc = ghcForPackages [ rzk try-rzk ]; + + # tools that should be available in a development shell + tools = [ + pkgs.cabal-install + pkgs.hpack + # haskell-language-server is already available as a GHC package + ghc + ]; + + misoNix = (import "${inputs.miso.outPath}/default.nix" { inherit system; }); + pkgsMiso = misoNix.pkgs; + + # TODO add jsaddle version of the app + # https://github.com/dmjio/miso/tree/master/sample-app-jsaddle + # try-rzk-dev = + # let + # pkgsDev = pkgsMiso.haskell.packages.ghc865; + # rzk = pkgsDev.callPackage rzk/rzk.nix { inherit (pkgs) hpack; }; + # in + # pkgsDev.callCabal2nix try-rzk ./${try-rzk} { miso = misoNix.miso-jsaddle; rzk = rzk; }; + + try-rzk-exe = + let + pkgsRelease = pkgsMiso.haskell.packages.ghcjs; + rzk = pkgsRelease.callPackage rzk/rzk.nix { inherit (pkgs) hpack; }; + in + pkgsRelease.callCabal2nix try-rzk ./${try-rzk} { rzk = rzk; }; + + packages = { + rzk = hpkgs_.${rzk}; + try-rzk = try-rzk-exe; + }; + + devShells = { + default = pkgs.mkShell { + shellHook = "export LANG=C.utf8"; + buildInputs = tools; + }; + ghcjs = try-rzk-exe.env.overrideAttrs (old: { + buildInputs = old.buildInputs ++ [ pkgs.cabal-install pkgs.hpack ]; + }); + }; + in + { + inherit packages devShells; + }); + + nixConfig = { + extra-substituters = [ + "https://miso-haskell.cachix.org" + "https://nix-community.cachix.org" + "https://cache.iog.io" + ]; + extra-trusted-public-keys = [ + "miso-haskell.cachix.org-1:6N2DooyFlZOHUfJtAx1Q09H0P5XXYzoxxQYiwn6W1e8=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + ]; + }; +} diff --git a/rzk/ChangeLog.md b/rzk/ChangeLog.md index 1f5efdf65..49e06a096 100644 --- a/rzk/ChangeLog.md +++ b/rzk/ChangeLog.md @@ -6,6 +6,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v0.4.0 — 2022-05-18 + +This version introduces sections and variables. The feature is similar to `Variable` command in Coq. An important difference, however, is that `rzk` does not allow definitions to use variables implicitly and adds `uses (...)` annotations to ensure such dependencies are not accidental. + +- Variables and sections (Coq-style) (see [#38]( https://github.com/fizruk/rzk/pull/38 )); + +Minor improvements: + +- Add flake, set up nix and cabal builds, cache nix store on CI (see [#39]( https://github.com/fizruk/rzk/pull/39 )); +- Apply stylish-haskell (see [7d42ef62]( https://github.com/fizruk/rzk/commit/7d42ef62 )); + ## v0.3.0 — 2022-04-28 This version introduces an experimental feature for generating visualisations for simplicial terms in SVG. diff --git a/rzk/package.yaml b/rzk/package.yaml index 8ff8fef17..399e6c6b3 100644 --- a/rzk/package.yaml +++ b/rzk/package.yaml @@ -1,5 +1,5 @@ name: rzk -version: 0.3.0 +version: 0.4.0 github: "fizruk/rzk" license: BSD3 author: "Nikolai Kudasov" diff --git a/rzk/rzk.cabal b/rzk/rzk.cabal index 1f2905484..7ab52c146 100644 --- a/rzk/rzk.cabal +++ b/rzk/rzk.cabal @@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.35.1. +-- This file has been generated from package.yaml by hpack version 0.35.2. -- -- see: https://github.com/sol/hpack -- -- hash: 7855530fcdfd2a28c4ea3654677ed2d18f83d419f5d1c173f4bb44a915464c06 name: rzk -version: 0.3.0 +version: 0.4.0 synopsis: An experimental proof assistant for synthetic ∞-categories description: Please see the README on GitHub at category: Dependent Types diff --git a/rzk/rzk.nix b/rzk/rzk.nix index 60d9d4513..201417ebe 100644 --- a/rzk/rzk.nix +++ b/rzk/rzk.nix @@ -1,5 +1,5 @@ { mkDerivation, array, base, bifunctors, hpack, lib, mtl -, template-haskell +, template-haskell, alex, happy }: mkDerivation { pname = "rzk"; @@ -8,7 +8,7 @@ mkDerivation { isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - array base bifunctors mtl template-haskell + array base bifunctors mtl template-haskell alex happy ]; libraryToolDepends = [ hpack ]; executableHaskellDepends = [ diff --git a/rzk/src/Free/Scoped.hs b/rzk/src/Free/Scoped.hs index e7ce15186..ee456e662 100644 --- a/rzk/src/Free/Scoped.hs +++ b/rzk/src/Free/Scoped.hs @@ -1,23 +1,23 @@ -{-# LANGUAGE DeriveFoldable #-} -{-# LANGUAGE StandaloneDeriving #-} -{-# LANGUAGE QuantifiedConstraints #-} -{-# LANGUAGE UndecidableInstances #-} -{-# LANGUAGE DeriveFunctor #-} -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE DeriveTraversable #-} -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE DeriveFoldable #-} +{-# LANGUAGE DeriveFunctor #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE DeriveTraversable #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE QuantifiedConstraints #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE UndecidableInstances #-} module Free.Scoped where import Control.Monad (ap) -import Data.Function (on) import Data.Bifoldable import Data.Bifunctor import Data.Bifunctor.TH import Data.Bitraversable +import Data.Function (on) import qualified GHC.Generics as GHC data Inc var = Z | S var @@ -31,6 +31,12 @@ instantiate e f = f >>= g g Z = e g (S x) = return x +abstract :: (Eq a, Functor f) => a -> f a -> f (Inc a) +abstract x e = k <$> e + where + k y | x == y = Z + | otherwise = S y + data FS t a = Pure a | Free (t (Scope (FS t) a) (FS t a)) @@ -78,7 +84,7 @@ deriveBifoldable ''Empty deriveBitraversable ''Empty data AnnF ann term scope typedTerm = AnnF - { annF :: ann typedTerm + { annF :: ann typedTerm , termF :: term scope typedTerm } deriving (Show, Functor) @@ -113,5 +119,5 @@ pattern ExtE t = Free (InR t) substitute :: Bifunctor t => FS t a -> Scope (FS t) a -> FS t a substitute t = (>>= f) where - f Z = t + f Z = t f (S y) = Pure y diff --git a/rzk/src/Free/Scoped/TH.hs b/rzk/src/Free/Scoped/TH.hs index ba7eacb75..563bbaa20 100644 --- a/rzk/src/Free/Scoped/TH.hs +++ b/rzk/src/Free/Scoped/TH.hs @@ -1,11 +1,11 @@ -{-# LANGUAGE CPP #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE TemplateHaskell #-} module Free.Scoped.TH where -import Control.Monad (replicateM) -import Language.Haskell.TH +import Control.Monad (replicateM) import Free.Scoped +import Language.Haskell.TH mkConP :: Name -> [Pat] -> Pat #if __GLASGOW_HASKELL__ >= 902 diff --git a/rzk/src/Language/Rzk/Free/Syntax.hs b/rzk/src/Language/Rzk/Free/Syntax.hs index 7afa15a2b..9770eb1f2 100644 --- a/rzk/src/Language/Rzk/Free/Syntax.hs +++ b/rzk/src/Language/Rzk/Free/Syntax.hs @@ -1,23 +1,23 @@ {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures -fno-warn-missing-signatures -fno-warn-type-defaults #-} -{-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE DeriveFunctor #-} -{-# LANGUAGE DeriveFoldable #-} -{-# LANGUAGE DeriveTraversable #-} -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE TypeSynonymInstances #-} +{-# LANGUAGE DeriveFoldable #-} +{-# LANGUAGE DeriveFunctor #-} +{-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE TypeSynonymInstances #-} module Language.Rzk.Free.Syntax where -import Data.String -import Data.Char (chr, ord) -import Data.Coerce -import Data.List ((\\)) -import Data.Bifunctor.TH +import Data.Bifunctor.TH +import Data.Char (chr, ord) +import Data.Coerce +import Data.List (nub, (\\)) +import Data.String -import Free.Scoped -import Free.Scoped.TH +import Free.Scoped +import Free.Scoped.TH import qualified Language.Rzk.Syntax as Rzk @@ -94,6 +94,26 @@ type TermT' = TermT Rzk.VarIdent freeVars :: Term a -> [a] freeVars = foldMap pure +-- FIXME: should be cached in TypeInfo? +partialFreeVarsT :: TermT a -> [a] +partialFreeVarsT (Pure x) = [x] +partialFreeVarsT UniverseT{} = [] +partialFreeVarsT term@(Free (AnnF info _)) = + -- FIXME: check correctness (is it ok to use untyped here?) + foldMap (freeVars . untyped) [term, infoType info] + +-- FIXME: should be cached in TypeInfo? +freeVarsT :: Eq a => (a -> TermT a) -> TermT a -> [a] +freeVarsT typeOfVar t = go [] (partialFreeVarsT t) + where + go vars latest + | null new = vars + | otherwise = + go (new <> vars) + (foldMap (partialFreeVarsT . typeOfVar) new) + where + new = nub latest \\ vars + toTerm' :: Rzk.Term -> Term' toTerm' = toTerm Pure @@ -103,7 +123,7 @@ toScope x bvars = toTerm $ \z -> if x == z then Pure Z else S <$> bvars z toScopePattern :: Rzk.Pattern -> (Rzk.VarIdent -> Term a) -> Rzk.Term -> Scope Term a toScopePattern pat bvars = toTerm $ \z -> case lookup z (bindings pat (Pure Z)) of - Just t -> t + Just t -> t Nothing -> S <$> bvars z where bindings (Rzk.PatternWildcard _loc) _ = [] @@ -176,7 +196,7 @@ toTerm bvars = go patternVar (Rzk.PatternVar _loc x) = Just x - patternVar _ = Nothing + patternVar _ = Nothing fromTerm' :: Term' -> Rzk.Term fromTerm' t = fromTermWith' vars (defaultVarIdents \\ vars) t @@ -185,7 +205,7 @@ fromTerm' t = fromTermWith' vars (defaultVarIdents \\ vars) t fromScope' :: Rzk.VarIdent -> [Rzk.VarIdent] -> [Rzk.VarIdent] -> Scope Term Rzk.VarIdent -> Rzk.Term fromScope' x used xs = fromTermWith' (x : used) xs . (>>= f) where - f Z = Pure x + f Z = Pure x f (S z) = Pure z fromTermWith' :: [Rzk.VarIdent] -> [Rzk.VarIdent] -> Term' -> Rzk.Term @@ -194,7 +214,7 @@ fromTermWith' used vars = go withFresh Nothing f = case vars of x:xs -> f (x, xs) - _ -> error "not enough fresh variables!" + _ -> error "not enough fresh variables!" withFresh (Just z) f = f (z', filter (/= z') vars) -- FIXME: very inefficient filter where z' = refreshVar used z @@ -290,7 +310,7 @@ instance IsString Term' where fromString = toTerm' . fromRight . Rzk.parseTerm where fromRight (Left err) = error ("Parse error: " <> err) - fromRight (Right t) = t + fromRight (Right t) = t instance Show TermT' where show var@Pure{} = Rzk.printTree (fromTerm' (untyped var)) diff --git a/rzk/src/Language/Rzk/Syntax.cf b/rzk/src/Language/Rzk/Syntax.cf index bff6104bd..d4a5bd945 100644 --- a/rzk/src/Language/Rzk/Syntax.cf +++ b/rzk/src/Language/Rzk/Syntax.cf @@ -9,27 +9,48 @@ token HoleIdent '?' ; Module. Module ::= LanguageDecl [Command] ; +separator nonempty VarIdent "" ; + LanguageDecl. LanguageDecl ::= "#lang" Language ";" ; Rzk1. Language ::= "rzk-1" ; -CommandSetOption. Command ::= "#set-option" String "=" String ";" ; -CommandUnsetOption. Command ::= "#unset-option" String ";" ; -CommandCheck. Command ::= "#check" Term ":" Term ";" ; -CommandCompute. Command ::= "#compute" Term ";" ; -CommandComputeWHNF. Command ::= "#compute-whnf" Term ";" ; -CommandComputeNF. Command ::= "#compute-nf" Term ";" ; -CommandPostulate. Command ::= "#postulate" VarIdent [Param] ":" Term ";" ; -commandPostulateNoParams. Command ::= "#postulate" VarIdent ":" Term ";" ; -define commandPostulateNoParams x ty = CommandPostulate x [] ty ; -CommandDefine. Command ::= "#define" VarIdent [Param] ":" Term ":=" Term ";" ; -commandDefineNoParams. Command ::= "#define" VarIdent ":" Term ":=" Term ";" ; -define commandDefineNoParams x ty term = CommandDefine x [] ty term ; -commandDef. Command ::= "#def" VarIdent [Param] ":" Term ":=" Term ";" ; -define commandDef x params ty term = CommandDefine x params ty term ; -commandDefNoParams. Command ::= "#def" VarIdent ":" Term ":=" Term ";" ; -define commandDefNoParams x ty term = CommandDefine x [] ty term ; -separator Command "" ; +CommandSetOption. Command ::= "#set-option" String "=" String ; +CommandUnsetOption. Command ::= "#unset-option" String ; + +CommandCheck. Command ::= "#check" Term ":" Term ; + +CommandCompute. Command ::= "#compute" Term ; +CommandComputeWHNF. Command ::= "#compute-whnf" Term ; +CommandComputeNF. Command ::= "#compute-nf" Term ; + +CommandPostulate. Command ::= "#postulate" VarIdent DeclUsedVars [Param] ":" Term ; +commandPostulateNoParams. Command ::= "#postulate" VarIdent DeclUsedVars ":" Term ; +define commandPostulateNoParams x vars ty = CommandPostulate x vars [] ty ; + +CommandAssume. Command ::= "#assume" [VarIdent] ":" Term ; +commandVariable. Command ::= "#variable" VarIdent ":" Term ; +define commandVariable name term = CommandAssume [name] term ; +commandVariables. Command ::= "#variables" [VarIdent] ":" Term ; +define commandVariables names term = CommandAssume names term ; + +CommandSection. Command ::= "#section" SectionName ";" [Command] "#end" SectionName ; + +CommandDefine. Command ::= "#define" VarIdent DeclUsedVars [Param] ":" Term ":=" Term ; +commandDefineNoParams. Command ::= "#define" VarIdent DeclUsedVars ":" Term ":=" Term ; +define commandDefineNoParams x vars ty term = CommandDefine x vars [] ty term ; +commandDef. Command ::= "#def" VarIdent DeclUsedVars [Param] ":" Term ":=" Term ; +define commandDef x vars params ty term = CommandDefine x vars params ty term ; +commandDefNoParams. Command ::= "#def" VarIdent DeclUsedVars ":" Term ":=" Term ; +define commandDefNoParams x vars ty term = CommandDefine x vars [] ty term ; +terminator Command ";" ; + +DeclUsedVars. DeclUsedVars ::= "uses" "(" [VarIdent] ")" ; +noDeclUsedVars. DeclUsedVars ::= ; +define noDeclUsedVars = DeclUsedVars [] ; + +NoSectionName. SectionName ::= ; +SomeSectionName. SectionName ::= VarIdent ; -- Patterns PatternWildcard. Pattern ::= "_" ; @@ -53,8 +74,6 @@ ParamVarShape. ParamDecl ::= "{" "(" Pattern ":" Term ")" "|" Term "}" ; paramVarShape. ParamDecl ::= "{" Pattern ":" Term "|" Term "}" ; define paramVarShape pat cube tope = ParamVarShape pat cube tope ; --- (x, y :) -> z - Restriction. Restriction ::= Term "|->" Term ; separator nonempty Restriction "," ; diff --git a/rzk/src/Language/Rzk/Syntax.hs b/rzk/src/Language/Rzk/Syntax.hs index dd0a647b9..723bf992c 100644 --- a/rzk/src/Language/Rzk/Syntax.hs +++ b/rzk/src/Language/Rzk/Syntax.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} module Language.Rzk.Syntax ( module Language.Rzk.Syntax.Abs, @@ -12,15 +12,15 @@ module Language.Rzk.Syntax ( extractMarkdownCodeBlocks, ) where -import qualified Data.List as List -import Data.Char (isSpace) +import Data.Char (isSpace) +import qualified Data.List as List -import Language.Rzk.Syntax.Abs -import Language.Rzk.Syntax.Print (printTree) +import Language.Rzk.Syntax.Abs +import Language.Rzk.Syntax.Print (printTree) -import Language.Rzk.Syntax.Lex (tokens) -import Language.Rzk.Syntax.Par (pModule, pTerm) -import Language.Rzk.Syntax.Layout (resolveLayout) +import Language.Rzk.Syntax.Layout (resolveLayout) +import Language.Rzk.Syntax.Lex (tokens) +import Language.Rzk.Syntax.Par (pModule, pTerm) parseModule :: String -> Either String Module parseModule = pModule . resolveLayout True . tokens . tryExtractMarkdownCodeBlocks "rzk" diff --git a/rzk/src/Language/Rzk/Syntax/Abs.hs b/rzk/src/Language/Rzk/Syntax/Abs.hs index c72fadd34..358c74a7f 100644 --- a/rzk/src/Language/Rzk/Syntax/Abs.hs +++ b/rzk/src/Language/Rzk/Syntax/Abs.hs @@ -43,8 +43,18 @@ data Command' a | CommandCompute a (Term' a) | CommandComputeWHNF a (Term' a) | CommandComputeNF a (Term' a) - | CommandPostulate a VarIdent [Param' a] (Term' a) - | CommandDefine a VarIdent [Param' a] (Term' a) (Term' a) + | CommandPostulate a VarIdent (DeclUsedVars' a) [Param' a] (Term' a) + | CommandAssume a [VarIdent] (Term' a) + | CommandSection a (SectionName' a) [Command' a] (SectionName' a) + | CommandDefine a VarIdent (DeclUsedVars' a) [Param' a] (Term' a) (Term' a) + deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) + +type DeclUsedVars = DeclUsedVars' BNFC'Position +data DeclUsedVars' a = DeclUsedVars a [VarIdent] + deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) + +type SectionName = SectionName' BNFC'Position +data SectionName' a = NoSectionName a | SomeSectionName a VarIdent deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) type Pattern = Pattern' BNFC'Position @@ -111,17 +121,26 @@ data Term' a | TypeAsc a (Term' a) (Term' a) deriving (C.Eq, C.Ord, C.Show, C.Read, C.Functor, C.Foldable, C.Traversable, C.Data, C.Typeable, C.Generic) -commandPostulateNoParams :: a -> VarIdent -> Term' a -> Command' a -commandPostulateNoParams = \ _a x ty -> CommandPostulate _a x [] ty +commandPostulateNoParams :: a -> VarIdent -> DeclUsedVars' a -> Term' a -> Command' a +commandPostulateNoParams = \ _a x vars ty -> CommandPostulate _a x vars [] ty + +commandVariable :: a -> VarIdent -> Term' a -> Command' a +commandVariable = \ _a name term -> CommandAssume _a [name] term + +commandVariables :: a -> [VarIdent] -> Term' a -> Command' a +commandVariables = \ _a names term -> CommandAssume _a names term -commandDefineNoParams :: a -> VarIdent -> Term' a -> Term' a -> Command' a -commandDefineNoParams = \ _a x ty term -> CommandDefine _a x [] ty term +commandDefineNoParams :: a -> VarIdent -> DeclUsedVars' a -> Term' a -> Term' a -> Command' a +commandDefineNoParams = \ _a x vars ty term -> CommandDefine _a x vars [] ty term -commandDef :: a -> VarIdent -> [Param' a] -> Term' a -> Term' a -> Command' a -commandDef = \ _a x params ty term -> CommandDefine _a x params ty term +commandDef :: a -> VarIdent -> DeclUsedVars' a -> [Param' a] -> Term' a -> Term' a -> Command' a +commandDef = \ _a x vars params ty term -> CommandDefine _a x vars params ty term -commandDefNoParams :: a -> VarIdent -> Term' a -> Term' a -> Command' a -commandDefNoParams = \ _a x ty term -> CommandDefine _a x [] ty term +commandDefNoParams :: a -> VarIdent -> DeclUsedVars' a -> Term' a -> Term' a -> Command' a +commandDefNoParams = \ _a x vars ty term -> CommandDefine _a x vars [] ty term + +noDeclUsedVars :: a -> DeclUsedVars' a +noDeclUsedVars = \ _a -> DeclUsedVars _a [] paramVarType :: a -> VarIdent -> Term' a -> ParamDecl' a paramVarType = \ _a var cube -> ParamVarType _a (PatternVar _a var) cube @@ -185,8 +204,19 @@ instance HasPosition Command where CommandCompute p _ -> p CommandComputeWHNF p _ -> p CommandComputeNF p _ -> p - CommandPostulate p _ _ _ -> p - CommandDefine p _ _ _ _ -> p + CommandPostulate p _ _ _ _ -> p + CommandAssume p _ _ -> p + CommandSection p _ _ _ -> p + CommandDefine p _ _ _ _ _ -> p + +instance HasPosition DeclUsedVars where + hasPosition = \case + DeclUsedVars p _ -> p + +instance HasPosition SectionName where + hasPosition = \case + NoSectionName p -> p + SomeSectionName p _ -> p instance HasPosition Pattern where hasPosition = \case diff --git a/rzk/src/Language/Rzk/Syntax/Doc.txt b/rzk/src/Language/Rzk/Syntax/Doc.txt index 324ca236e..2beffebc9 100644 --- a/rzk/src/Language/Rzk/Syntax/Doc.txt +++ b/rzk/src/Language/Rzk/Syntax/Doc.txt @@ -35,20 +35,21 @@ The reserved words used in Syntax are the following: | ``BOT`` | ``CUBE`` | ``Sigma`` | ``TOP`` | ``TOPE`` | ``U`` | ``as`` | ``first`` | ``idJ`` | ``recBOT`` | ``recOR`` | ``refl`` - | ``second`` | ``Σ`` | | + | ``second`` | ``uses`` | ``Σ`` | The symbols used in Syntax are the following: | #lang | ; | rzk-1 | #set-option | = | #unset-option | #check | : | #compute | #compute-whnf | #compute-nf | #postulate - | #define | := | #def | _ - | ( | , | ) | { - | | | } | |-> | 1 - | *_1 | 2 | 0_2 | 1_2 - | * | === | <= | /\ - | \/ | -> | =_{ | [ - | ] | < | > | \ - | refl_{ | → | ∑ | + | #assume | #variable | #variables | #section + | #end | #define | := | #def + | ( | ) | _ | , + | { | | | } | |-> + | 1 | *_1 | 2 | 0_2 + | 1_2 | * | === | <= + | /\ | \/ | -> | =_{ + | [ | ] | < | > + | \ | refl_{ | → | ∑ ===Comments=== Single-line comments begin with --.Multiple-line comments are enclosed with {- and -}. @@ -60,22 +61,32 @@ and **eps** (empty rule) belong to the BNF notation. All other symbols are terminals. | //Module// | -> | //LanguageDecl// //[Command]// + | //[VarIdent]// | -> | //VarIdent// + | | **|** | //VarIdent// //[VarIdent]// | //LanguageDecl// | -> | ``#lang`` //Language// ``;`` | //Language// | -> | ``rzk-1`` - | //Command// | -> | ``#set-option`` //String// ``=`` //String// ``;`` - | | **|** | ``#unset-option`` //String// ``;`` - | | **|** | ``#check`` //Term// ``:`` //Term// ``;`` - | | **|** | ``#compute`` //Term// ``;`` - | | **|** | ``#compute-whnf`` //Term// ``;`` - | | **|** | ``#compute-nf`` //Term// ``;`` - | | **|** | ``#postulate`` //VarIdent// //[Param]// ``:`` //Term// ``;`` - | | **|** | ``#postulate`` //VarIdent// ``:`` //Term// ``;`` - | | **|** | ``#define`` //VarIdent// //[Param]// ``:`` //Term// ``:=`` //Term// ``;`` - | | **|** | ``#define`` //VarIdent// ``:`` //Term// ``:=`` //Term// ``;`` - | | **|** | ``#def`` //VarIdent// //[Param]// ``:`` //Term// ``:=`` //Term// ``;`` - | | **|** | ``#def`` //VarIdent// ``:`` //Term// ``:=`` //Term// ``;`` + | //Command// | -> | ``#set-option`` //String// ``=`` //String// + | | **|** | ``#unset-option`` //String// + | | **|** | ``#check`` //Term// ``:`` //Term// + | | **|** | ``#compute`` //Term// + | | **|** | ``#compute-whnf`` //Term// + | | **|** | ``#compute-nf`` //Term// + | | **|** | ``#postulate`` //VarIdent// //DeclUsedVars// //[Param]// ``:`` //Term// + | | **|** | ``#postulate`` //VarIdent// //DeclUsedVars// ``:`` //Term// + | | **|** | ``#assume`` //[VarIdent]// ``:`` //Term// + | | **|** | ``#variable`` //VarIdent// ``:`` //Term// + | | **|** | ``#variables`` //[VarIdent]// ``:`` //Term// + | | **|** | ``#section`` //SectionName// ``;`` //[Command]// ``#end`` //SectionName// + | | **|** | ``#define`` //VarIdent// //DeclUsedVars// //[Param]// ``:`` //Term// ``:=`` //Term// + | | **|** | ``#define`` //VarIdent// //DeclUsedVars// ``:`` //Term// ``:=`` //Term// + | | **|** | ``#def`` //VarIdent// //DeclUsedVars// //[Param]// ``:`` //Term// ``:=`` //Term// + | | **|** | ``#def`` //VarIdent// //DeclUsedVars// ``:`` //Term// ``:=`` //Term// | //[Command]// | -> | **eps** - | | **|** | //Command// //[Command]// + | | **|** | //Command// ``;`` //[Command]// + | //DeclUsedVars// | -> | ``uses`` ``(`` //[VarIdent]// ``)`` + | | **|** | **eps** + | //SectionName// | -> | **eps** + | | **|** | //VarIdent// | //Pattern// | -> | ``_`` | | **|** | //VarIdent// | | **|** | ``(`` //Pattern// ``,`` //Pattern// ``)`` diff --git a/rzk/src/Language/Rzk/Syntax/Layout.hs b/rzk/src/Language/Rzk/Syntax/Layout.hs index 9f74dd78a..956008d03 100644 --- a/rzk/src/Language/Rzk/Syntax/Layout.hs +++ b/rzk/src/Language/Rzk/Syntax/Layout.hs @@ -37,16 +37,16 @@ layoutStopWords = [] layoutOpen, layoutClose, layoutSep :: [TokSymbol] layoutOpen = List.nub $ mapMaybe (delimOpen . snd) layoutWords layoutClose = List.nub $ mapMaybe (delimClose . snd) layoutWords -layoutSep = List.nub $ TokSymbol ";" 24 : map (delimSep . snd) layoutWords +layoutSep = List.nub $ TokSymbol ";" 29 : map (delimSep . snd) layoutWords parenOpen, parenClose :: [TokSymbol] parenOpen = - [ TokSymbol "(" 11 - , TokSymbol "[" 37 + [ TokSymbol "(" 16 + , TokSymbol "[" 42 ] parenClose = - [ TokSymbol ")" 12 - , TokSymbol "]" 40 + [ TokSymbol ")" 17 + , TokSymbol "]" 45 ] -- | Report an error during layout resolution. @@ -74,7 +74,7 @@ resolveLayout topLayout = res Nothing [if topLayout then Implicit topDelim Definitive 1 else Explicit] where topDelim :: LayoutDelimiters - topDelim = LayoutDelimiters (TokSymbol ";" 24) Nothing Nothing + topDelim = LayoutDelimiters (TokSymbol ";" 29) Nothing Nothing res :: Maybe Token -- ^ The previous token, if any. -> [Block] -- ^ A stack of layout blocks. diff --git a/rzk/src/Language/Rzk/Syntax/Lex.hs b/rzk/src/Language/Rzk/Syntax/Lex.hs index 6769ac988..6f31c0ea9 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.hs +++ b/rzk/src/Language/Rzk/Syntax/Lex.hs @@ -35,21 +35,21 @@ alex_tab_size :: Int alex_tab_size = 8 alex_base :: AlexAddr alex_base = AlexA# - "\xf8\xff\xff\xff\xc8\xff\xff\xff\x98\xff\xff\xff\x95\xff\xff\xff\x96\xff\xff\xff\x94\xff\xff\xff\x9f\xff\xff\xff\xab\xff\xff\xff\x99\xff\xff\xff\xdf\xff\xff\xff\xef\x00\x00\x00\xd2\xff\xff\xff\xa5\xff\xff\xff\xa8\xff\xff\xff\xac\xff\xff\xff\xae\xff\xff\xff\xcc\xff\xff\xff\xaf\xff\xff\xff\xad\xff\xff\xff\xb2\xff\xff\xff\xb4\xff\xff\xff\xe6\x01\x00\x00\xdd\x02\x00\x00\xd4\x03\x00\x00\xcb\x04\x00\x00\x00\x00\x00\x00\x85\xff\xff\xff\x7a\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x05\x00\x00\x7d\x05\x00\x00\xbd\x05\x00\x00\xa6\xff\xff\xff\x91\xff\xff\xff\xb4\x06\x00\x00\xab\x07\x00\x00\x2b\x08\x00\x00\xab\x08\x00\x00\xab\x09\x00\x00\x22\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x0a\x00\x00\xd4\x0a\x00\x00\x14\x0b\x00\x00\xdb\x00\x00\x00\x94\x0b\x00\x00\x14\x0c\x00\x00\x14\x0d\x00\x00\x8a\x0d\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\xbe\xff\xff\xff\x80\x0e\x00\x00\x80\x0f\x00\x00\x81\x0f\x00\x00\x01\x10\x00\x00\xcb\x0d\x00\x00\x42\x10\x00\x00\xb3\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x11\x00\x00\x59\x12\x00\x00\x59\x13\x00\x00\x5a\x13\x00\x00\xda\x13\x00\x00\xf4\x10\x00\x00\xc8\x11\x00\x00\x4b\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x15\x00\x00\x39\x16\x00\x00\x30\x17\x00\x00\x27\x18\x00\x00\x1e\x19\x00\x00\x15\x1a\x00\x00\x3a\x00\x00\x00\x0c\x00\x00\x00\x0c\x1b\x00\x00\x03\x1c\x00\x00\xfa\x1c\x00\x00\xf1\x1d\x00\x00\xbf\xff\xff\xff\xcb\xff\xff\xff\xd4\xff\xff\xff\xc7\xff\xff\xff\xce\xff\xff\xff\xd1\xff\xff\xff\x1b\x00\x00\x00\xd5\xff\xff\xff\xe5\xff\xff\xff\xd8\xff\xff\xff\xde\xff\xff\xff\x20\x00\x00\x00\xe0\xff\xff\xff\xe8\xff\xff\xff\xe2\xff\xff\xff\xf0\xff\xff\xff\xed\xff\xff\xff\xea\xff\xff\xff\xf2\xff\xff\xff\xf3\xff\xff\xff\xf1\xff\xff\xff\xe9\xff\xff\xff\xe7\xff\xff\xff\xee\xff\xff\xff\xe8\x1e\x00\x00\x32\x00\x00\x00"# + "\xf8\xff\xff\xff\x93\xff\xff\xff\x92\xff\xff\xff\x9b\xff\xff\xff\x9a\xff\xff\xff\x97\xff\xff\xff\x98\xff\xff\xff\x96\xff\xff\xff\xa1\xff\xff\xff\xad\xff\xff\xff\x9c\xff\xff\xff\xaa\xff\xff\xff\xb0\xff\xff\xff\xa0\xff\xff\xff\xab\xff\xff\xff\xb2\xff\xff\xff\xb3\xff\xff\xff\xb1\xff\xff\xff\xb7\xff\xff\xff\xb5\xff\xff\xff\xa9\xff\xff\xff\xb8\xff\xff\xff\xb9\xff\xff\xff\xc8\xff\xff\xff\xaf\xff\xff\xff\xc3\xff\xff\xff\x01\x00\x00\x00\xbf\xff\xff\xff\xc0\xff\xff\xff\xc2\xff\xff\xff\xef\x00\x00\x00\xe6\x01\x00\x00\xdd\x02\x00\x00\xd4\x03\x00\x00\x00\x00\x00\x00\xa7\xff\xff\xff\x8e\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x04\x00\x00\x86\x04\x00\x00\xc6\x04\x00\x00\xba\xff\xff\xff\xa8\xff\xff\xff\xbd\x05\x00\x00\xb4\x06\x00\x00\x34\x07\x00\x00\xb4\x07\x00\x00\xb4\x08\x00\x00\x2b\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x09\x00\x00\xdd\x09\x00\x00\x1d\x0a\x00\x00\xdb\x00\x00\x00\x9d\x0a\x00\x00\x1d\x0b\x00\x00\x1d\x0c\x00\x00\x93\x0c\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\xca\xff\xff\xff\x89\x0d\x00\x00\x89\x0e\x00\x00\x8a\x0e\x00\x00\x0a\x0f\x00\x00\xd4\x0c\x00\x00\x4b\x0f\x00\x00\xbc\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x10\x00\x00\x62\x11\x00\x00\x62\x12\x00\x00\x63\x12\x00\x00\xe3\x12\x00\x00\xfd\x0f\x00\x00\xd1\x10\x00\x00\x54\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x14\x00\x00\x42\x15\x00\x00\x39\x16\x00\x00\x30\x17\x00\x00\x27\x18\x00\x00\x1e\x19\x00\x00\x3a\x00\x00\x00\x0e\x00\x00\x00\x15\x1a\x00\x00\x0c\x1b\x00\x00\x03\x1c\x00\x00\xfa\x1c\x00\x00\xcb\xff\xff\xff\xd4\xff\xff\xff\xde\xff\xff\xff\xe3\xff\xff\xff\xe1\xff\xff\xff\xfb\xff\xff\xff\xe5\xff\xff\xff\xe7\xff\xff\xff\xe6\xff\xff\xff\xdf\xff\xff\xff\xe2\xff\xff\xff\xe0\xff\xff\xff\x24\x00\x00\x00\xe4\xff\xff\xff\xf4\xff\xff\xff\xe8\xff\xff\xff\xef\xff\xff\xff\xfd\xff\xff\xff\xf5\xff\xff\xff\xf1\x1d\x00\x00\x26\x00\x00\x00\x35\x00\x00\x00\xf7\xff\xff\xff\xff\xff\xff\xff\x03\x00\x00\x00\x37\x00\x00\x00\xe8\x1e\x00\x00\x2f\x00\x00\x00\x08\x00\x00\x00\xfe\xff\xff\xff\xfa\xff\xff\xff\x06\x00\x00\x00\x0a\x00\x00\x00"# alex_table :: AlexAddr alex_table = AlexA# - "\x00\x00\x55\x00\x55\x00\x54\x00\x54\x00\x55\x00\x19\x00\x03\x00\x04\x00\x06\x00\x05\x00\x07\x00\x08\x00\x6b\x00\x19\x00\x19\x00\x65\x00\x6e\x00\x13\x00\x0f\x00\x19\x00\x14\x00\x5a\x00\x12\x00\x55\x00\xff\xff\x35\x00\x10\x00\x0d\x00\x5a\x00\x38\x00\x19\x00\x19\x00\x19\x00\x59\x00\x5a\x00\x19\x00\x37\x00\xff\xff\x73\x00\x24\x00\x58\x00\x5a\x00\x72\x00\x23\x00\x19\x00\x1a\x00\x11\x00\x0e\x00\x39\x00\x57\x00\x19\x00\x0b\x00\x0a\x00\x19\x00\x2a\x00\x6a\x00\x45\x00\x5b\x00\x5d\x00\x02\x00\x5c\x00\x5e\x00\x63\x00\x5f\x00\x67\x00\x19\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x60\x00\x61\x00\x62\x00\x63\x00\x0f\x00\x0c\x00\x64\x00\x19\x00\x68\x00\x69\x00\x19\x00\x19\x00\x09\x00\x19\x00\x66\x00\x5a\x00\x6b\x00\x6d\x00\x55\x00\x6c\x00\x70\x00\x6f\x00\x71\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x00\x74\x00\x19\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1b\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x22\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\x00\x00\x00\x00\xff\xff\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x4f\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\xff\xff\xff\xff\xff\xff\x35\x00\x18\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\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\x21\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\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\x30\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\x33\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x34\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x30\x00\x33\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2c\x00\x2f\x00\x32\x00\x2b\x00\x2b\x00\x2b\x00\x2e\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x3d\x00\x3b\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x3e\x00\x3c\x00\x42\x00\x42\x00\x42\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x3a\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x40\x00\x3b\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x41\x00\x3d\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\x3e\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\x44\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x46\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x49\x00\x47\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4a\x00\x48\x00\x4e\x00\x4e\x00\x4e\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\x49\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x46\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x49\x00\x47\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4a\x00\x48\x00\x4e\x00\x4e\x00\x4e\x00\x4b\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\x00\x00\x46\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x4c\x00\x47\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4d\x00\x4a\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x5a\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x55\x00\x55\x00\x54\x00\x54\x00\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x5a\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x19\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x21\x00\x27\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x20\x00\x26\x00\x1c\x00\x1c\x00\x1c\x00\x1f\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\x5e\x00\x5e\x00\x5d\x00\x5d\x00\x5e\x00\x02\x00\x03\x00\x0b\x00\x05\x00\x06\x00\x08\x00\x07\x00\x09\x00\x0a\x00\x22\x00\x0b\x00\x0d\x00\x0e\x00\x10\x00\x0f\x00\x11\x00\x14\x00\x15\x00\x5e\x00\xff\xff\x3e\x00\x69\x00\x64\x00\x12\x00\x17\x00\x22\x00\x22\x00\x22\x00\x62\x00\x19\x00\x22\x00\x40\x00\xff\xff\x77\x00\x2d\x00\x61\x00\x63\x00\x18\x00\x1c\x00\x6a\x00\x6d\x00\x1d\x00\x22\x00\x63\x00\x60\x00\x22\x00\x7f\x00\x7e\x00\x22\x00\x33\x00\x63\x00\x42\x00\x63\x00\x4e\x00\x70\x00\x01\x00\x22\x00\x22\x00\x2c\x00\x65\x00\x23\x00\x5e\x00\x5e\x00\x5e\x00\x5e\x00\x5e\x00\x66\x00\x67\x00\x22\x00\x22\x00\x7c\x00\x6a\x00\x1b\x00\x6e\x00\x84\x00\x6f\x00\x18\x00\x22\x00\x7d\x00\x22\x00\x6c\x00\x63\x00\x70\x00\x71\x00\x5e\x00\x72\x00\x41\x00\x73\x00\x68\x00\x6b\x00\x76\x00\x22\x00\x78\x00\x75\x00\x22\x00\x0b\x00\x22\x00\x13\x00\x7a\x00\x7b\x00\x5c\x00\x04\x00\x22\x00\x1a\x00\x16\x00\x81\x00\x74\x00\x0c\x00\x80\x00\x5f\x00\x79\x00\x22\x00\x82\x00\x83\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\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x24\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x2b\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\x00\x00\x00\x00\xff\xff\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x29\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\x2a\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\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\x39\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\x3c\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x3d\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x36\x00\x39\x00\x3c\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x35\x00\x38\x00\x3b\x00\x34\x00\x34\x00\x34\x00\x37\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x46\x00\x44\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x47\x00\x45\x00\x4b\x00\x4b\x00\x4b\x00\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x43\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x49\x00\x44\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x4a\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x47\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\x4d\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x52\x00\x50\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x53\x00\x51\x00\x57\x00\x57\x00\x57\x00\x54\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4d\x00\x52\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x52\x00\x50\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x53\x00\x51\x00\x57\x00\x57\x00\x57\x00\x54\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\x00\x00\x4f\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x55\x00\x50\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x56\x00\x53\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x63\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x5a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5e\x00\x5d\x00\x5d\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x63\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x59\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x22\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\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\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\xff\xff\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x58\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x27\x00\x2a\x00\x30\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x26\x00\x29\x00\x2f\x00\x25\x00\x25\x00\x25\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# alex_check :: AlexAddr alex_check = AlexA# - "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x3e\x00\x6f\x00\x73\x00\x75\x00\x74\x00\x6c\x00\x61\x00\x74\x00\x2f\x00\x3d\x00\x68\x00\x65\x00\x65\x00\x6e\x00\x66\x00\x63\x00\x91\x00\x68\x00\x20\x00\x21\x00\x22\x00\x23\x00\x77\x00\xa3\x00\x6f\x00\x6b\x00\x28\x00\x29\x00\x2a\x00\x92\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x6d\x00\x86\x00\x6e\x00\x88\x00\x63\x00\x64\x00\x2d\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x6c\x00\x2d\x00\x6f\x00\x74\x00\x70\x00\x69\x00\x70\x00\x73\x00\x6f\x00\x75\x00\x3e\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x2d\x00\x74\x00\x65\x00\x73\x00\x6e\x00\x2d\x00\x6e\x00\x67\x00\x6e\x00\x61\x00\x65\x00\x5b\x00\x5c\x00\x5d\x00\x65\x00\x5f\x00\x6e\x00\x66\x00\x20\x00\x69\x00\x75\x00\x74\x00\x70\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x22\x00\xff\xff\xff\xff\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\x00\x5b\x00\x5c\x00\x5d\x00\x72\x00\x5f\x00\x74\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\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\xff\xff\xff\xff\x22\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\x5c\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\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\x2d\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x6b\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\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\x7a\x00\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00"# + "\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x73\x00\x75\x00\x6d\x00\x6f\x00\x73\x00\x75\x00\x74\x00\x6c\x00\x61\x00\x65\x00\x74\x00\x61\x00\x72\x00\x61\x00\x69\x00\x62\x00\x61\x00\x6e\x00\x20\x00\x21\x00\x22\x00\x23\x00\x65\x00\x6c\x00\x65\x00\x67\x00\x28\x00\x29\x00\x2a\x00\x74\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x63\x00\x69\x00\x6e\x00\x2d\x00\x6f\x00\x6e\x00\xa3\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x91\x00\x2d\x00\x92\x00\x2d\x00\x74\x00\x73\x00\x73\x00\x6b\x00\x86\x00\x63\x00\x88\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x65\x00\x68\x00\x3e\x00\x66\x00\x65\x00\x6e\x00\x68\x00\x6f\x00\x6f\x00\x2d\x00\x70\x00\x5b\x00\x5c\x00\x5d\x00\x77\x00\x5f\x00\x74\x00\x65\x00\x20\x00\x73\x00\x61\x00\x6e\x00\x63\x00\x64\x00\x65\x00\x64\x00\x2d\x00\x6e\x00\x3e\x00\x6e\x00\x2f\x00\x6c\x00\x69\x00\x66\x00\x72\x00\x70\x00\x3d\x00\x65\x00\x73\x00\x75\x00\x75\x00\x76\x00\x74\x00\x7b\x00\x7c\x00\x7d\x00\x70\x00\x6d\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\x00\x22\x00\xff\xff\xff\xff\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\x00\x5b\x00\x5c\x00\x5d\x00\x72\x00\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x66\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\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\xff\xff\xff\xff\x22\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\x5c\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\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x0a\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x2d\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\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\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\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\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\x00\x2d\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x6b\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x65\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\x7a\x00\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\x00\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\x00\xff\xff\x3e\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\x5b\x00\x5c\x00\x5d\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x09\x00\x0a\x00\xff\xff\xff\xff\x0d\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\x20\x00\xff\xff\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\x2c\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\x3b\x00\x3c\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x5f\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\x7b\x00\x7c\x00\x7d\x00\xff\xff\xff\xff\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\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xd7\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00"# alex_deflt :: AlexAddr alex_deflt = AlexA# - "\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x29\x00\x29\x00\x29\x00\x29\x00\xff\xff\x29\x00\x29\x00\x1d\x00\x1e\x00\x29\x00\x1d\x00\x1e\x00\x29\x00\x1e\x00\x29\x00\x29\x00\x29\x00\xff\xff\xff\xff\x29\x00\x29\x00\xff\xff\x2c\x00\x2d\x00\x35\x00\x2c\x00\x2d\x00\x35\x00\xff\xff\xff\xff\xff\xff\x35\x00\x35\x00\xff\xff\xff\xff\xff\xff\x39\x00\x39\x00\xff\xff\xff\xff\x39\x00\x40\x00\x41\x00\x39\x00\x40\x00\x41\x00\xff\xff\x45\x00\x45\x00\x45\x00\xff\xff\xff\xff\x45\x00\x4c\x00\x4d\x00\x45\x00\x4c\x00\x4d\x00\x29\x00\x29\x00\x29\x00\x29\x00\x29\x00\x29\x00\xff\xff\xff\xff\x29\x00\x29\x00\x29\x00\x29\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\x29\x00\xff\xff"# + "\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\x32\x00\x32\x00\x32\x00\xff\xff\x32\x00\x32\x00\x26\x00\x27\x00\x32\x00\x26\x00\x27\x00\x32\x00\x27\x00\x32\x00\x32\x00\x32\x00\xff\xff\xff\xff\x32\x00\x32\x00\xff\xff\x35\x00\x36\x00\x3e\x00\x35\x00\x36\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x42\x00\x42\x00\xff\xff\xff\xff\x42\x00\x49\x00\x4a\x00\x42\x00\x49\x00\x4a\x00\xff\xff\x4e\x00\x4e\x00\x4e\x00\xff\xff\xff\xff\x4e\x00\x55\x00\x56\x00\x4e\x00\x55\x00\x56\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\x32\x00\xff\xff\xff\xff\x32\x00\x32\x00\x32\x00\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# -alex_accept = listArray (0 :: Int, 116) +alex_accept = listArray (0 :: Int, 132) [ AlexAccNone , AlexAccNone , AlexAccNone @@ -59,9 +59,6 @@ alex_accept = listArray (0 :: Int, 116) , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 26 - , AlexAcc 25 - , AlexAcc 24 , AlexAccNone , AlexAccNone , AlexAccNone @@ -71,11 +68,23 @@ alex_accept = listArray (0 :: Int, 116) , AlexAccNone , AlexAccNone , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAcc 27 + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAcc 26 + , AlexAcc 25 + , AlexAcc 24 , AlexAcc 23 , AlexAcc 22 - , AlexAcc 21 - , AlexAcc 20 - , AlexAcc 19 , AlexAccNone , AlexAccNone , AlexAccNone @@ -86,13 +95,13 @@ alex_accept = listArray (0 :: Int, 116) , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 18 - , AlexAcc 17 + , AlexAcc 21 + , AlexAcc 20 , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 16 - , AlexAcc 15 + , AlexAcc 19 + , AlexAcc 18 , AlexAccNone , AlexAccNone , AlexAccNone @@ -104,7 +113,7 @@ alex_accept = listArray (0 :: Int, 116) , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 14 + , AlexAcc 17 , AlexAccNone , AlexAccNone , AlexAccSkip @@ -129,18 +138,19 @@ alex_accept = listArray (0 :: Int, 116) , AlexAccNone , AlexAccNone , AlexAccNone + , AlexAcc 16 + , AlexAcc 15 + , AlexAcc 14 , AlexAcc 13 , AlexAcc 12 + , AlexAccSkip + , AlexAccSkip , AlexAcc 11 , AlexAcc 10 , AlexAcc 9 - , AlexAccSkip - , AlexAccSkip , AlexAcc 8 , AlexAcc 7 , AlexAcc 6 - , AlexAcc 5 - , AlexAcc 4 , AlexAccNone , AlexAccNone , AlexAccNone @@ -152,50 +162,57 @@ alex_accept = listArray (0 :: Int, 116) , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 3 - , AlexAccNone , AlexAccNone , AlexAccNone , AlexAccNone , AlexAccNone , AlexAccNone - , AlexAcc 2 , AlexAccNone , AlexAccNone + , AlexAcc 5 , AlexAccNone + , AlexAcc 4 , AlexAccNone + , AlexAcc 3 , AlexAccNone + , AlexAcc 2 , AlexAcc 1 , AlexAcc 0 + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone + , AlexAccNone ] -alex_actions = array (0 :: Int, 27) - [ (26,alex_action_3) - , (25,alex_action_3) - , (24,alex_action_3) +alex_actions = array (0 :: Int, 28) + [ (27,alex_action_3) + , (26,alex_action_4) + , (25,alex_action_4) + , (24,alex_action_4) , (23,alex_action_4) - , (22,alex_action_4) + , (22,alex_action_3) , (21,alex_action_4) , (20,alex_action_4) - , (19,alex_action_3) - , (18,alex_action_4) - , (17,alex_action_4) + , (19,alex_action_4) + , (18,alex_action_5) + , (17,alex_action_7) , (16,alex_action_4) - , (15,alex_action_5) - , (14,alex_action_7) + , (15,alex_action_4) + , (14,alex_action_4) , (13,alex_action_4) , (12,alex_action_4) - , (11,alex_action_4) - , (10,alex_action_4) - , (9,alex_action_4) + , (11,alex_action_3) + , (10,alex_action_3) + , (9,alex_action_3) , (8,alex_action_3) , (7,alex_action_3) , (6,alex_action_3) - , (5,alex_action_3) + , (5,alex_action_4) , (4,alex_action_3) , (3,alex_action_3) , (2,alex_action_3) - , (1,alex_action_4) + , (1,alex_action_3) , (0,alex_action_3) ] @@ -304,37 +321,38 @@ eitherResIdent tv s = treeFind resWords -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords = - b "=_{" 29 - (b "," 15 - (b "#postulate" 8 - (b "#compute-whnf" 4 - (b "#compute" 2 (b "#check" 1 N N) (b "#compute-nf" 3 N N)) - (b "#define" 6 (b "#def" 5 N N) (b "#lang" 7 N N))) - (b ")" 12 - (b "#unset-option" 10 (b "#set-option" 9 N N) (b "(" 11 N N)) - (b "*_1" 14 (b "*" 13 N N) N))) - (b ":" 22 - (b "1" 19 - (b "/\\" 17 (b "->" 16 N N) (b "0_2" 18 N N)) - (b "2" 21 (b "1_2" 20 N N) N)) - (b "<=" 26 - (b ";" 24 (b ":=" 23 N N) (b "<" 25 N N)) - (b "===" 28 (b "=" 27 N N) N)))) - (b "idJ" 44 - (b "[" 37 - (b "Sigma" 33 - (b "BOT" 31 (b ">" 30 N N) (b "CUBE" 32 N N)) - (b "TOPE" 35 (b "TOP" 34 N N) (b "U" 36 N N))) - (b "_" 41 - (b "\\/" 39 (b "\\" 38 N N) (b "]" 40 N N)) - (b "first" 43 (b "as" 42 N N) N))) - (b "{" 51 - (b "refl_{" 48 - (b "recOR" 46 (b "recBOT" 45 N N) (b "refl" 47 N N)) - (b "second" 50 (b "rzk-1" 49 N N) N)) - (b "\931" 55 - (b "|->" 53 (b "|" 52 N N) (b "}" 54 N N)) - (b "\8721" 57 (b "\8594" 56 N N) N)))) + b "=" 32 + (b "(" 16 + (b "#end" 8 + (b "#compute-nf" 4 + (b "#check" 2 (b "#assume" 1 N N) (b "#compute" 3 N N)) + (b "#def" 6 (b "#compute-whnf" 5 N N) (b "#define" 7 N N))) + (b "#set-option" 12 + (b "#postulate" 10 (b "#lang" 9 N N) (b "#section" 11 N N)) + (b "#variable" 14 + (b "#unset-option" 13 N N) (b "#variables" 15 N N)))) + (b "1" 24 + (b "," 20 + (b "*" 18 (b ")" 17 N N) (b "*_1" 19 N N)) + (b "/\\" 22 (b "->" 21 N N) (b "0_2" 23 N N))) + (b ":=" 28 + (b "2" 26 (b "1_2" 25 N N) (b ":" 27 N N)) + (b "<" 30 (b ";" 29 N N) (b "<=" 31 N N))))) + (b "first" 48 + (b "TOPE" 40 + (b "BOT" 36 + (b "=_{" 34 (b "===" 33 N N) (b ">" 35 N N)) + (b "Sigma" 38 (b "CUBE" 37 N N) (b "TOP" 39 N N))) + (b "\\/" 44 + (b "[" 42 (b "U" 41 N N) (b "\\" 43 N N)) + (b "_" 46 (b "]" 45 N N) (b "as" 47 N N)))) + (b "uses" 56 + (b "refl" 52 + (b "recBOT" 50 (b "idJ" 49 N N) (b "recOR" 51 N N)) + (b "rzk-1" 54 (b "refl_{" 53 N N) (b "second" 55 N N))) + (b "}" 60 + (b "|" 58 (b "{" 57 N N) (b "|->" 59 N N)) + (b "\8594" 62 (b "\931" 61 N N) (b "\8721" 63 N N))))) where b s n = B bs (TS bs n) where diff --git a/rzk/src/Language/Rzk/Syntax/Lex.x b/rzk/src/Language/Rzk/Syntax/Lex.x index db35dd90c..0c2521c84 100644 --- a/rzk/src/Language/Rzk/Syntax/Lex.x +++ b/rzk/src/Language/Rzk/Syntax/Lex.x @@ -28,7 +28,7 @@ $u = [. \n] -- universal: any character -- Symbols and non-identifier-like reserved words -@rsyms = \Σ | \# "lang" | \; | "rzk" \- "1" | \# "set" \- "option" | \= | \# "unset" \- "option" | \# "check" | \: | \# "compute" | \# "compute" \- "whnf" | \# "compute" \- "nf" | \# "postulate" | \# "define" | \: \= | \# "def" | \_ | \( | \, | \) | \{ | \| | \} | \| \- \> | "1" | \* \_ "1" | "2" | "0" \_ "2" | "1" \_ "2" | \* | \= \= \= | \< \= | \/ \\ | \\ \/ | \- \> | \= \_ \{ | \[ | \] | \< | \> | \\ | "refl" \_ \{ | \→ | \∑ +@rsyms = \Σ | \# "lang" | \; | "rzk" \- "1" | \# "set" \- "option" | \= | \# "unset" \- "option" | \# "check" | \: | \# "compute" | \# "compute" \- "whnf" | \# "compute" \- "nf" | \# "postulate" | \# "assume" | \# "variable" | \# "variables" | \# "section" | \# "end" | \# "define" | \: \= | \# "def" | \( | \) | \_ | \, | \{ | \| | \} | \| \- \> | "1" | \* \_ "1" | "2" | "0" \_ "2" | "1" \_ "2" | \* | \= \= \= | \< \= | \/ \\ | \\ \/ | \- \> | \= \_ \{ | \[ | \] | \< | \> | \\ | "refl" \_ \{ | \→ | \∑ :- @@ -166,37 +166,38 @@ eitherResIdent tv s = treeFind resWords -- | The keywords and symbols of the language organized as binary search tree. resWords :: BTree resWords = - b "=_{" 29 - (b "," 15 - (b "#postulate" 8 - (b "#compute-whnf" 4 - (b "#compute" 2 (b "#check" 1 N N) (b "#compute-nf" 3 N N)) - (b "#define" 6 (b "#def" 5 N N) (b "#lang" 7 N N))) - (b ")" 12 - (b "#unset-option" 10 (b "#set-option" 9 N N) (b "(" 11 N N)) - (b "*_1" 14 (b "*" 13 N N) N))) - (b ":" 22 - (b "1" 19 - (b "/\\" 17 (b "->" 16 N N) (b "0_2" 18 N N)) - (b "2" 21 (b "1_2" 20 N N) N)) - (b "<=" 26 - (b ";" 24 (b ":=" 23 N N) (b "<" 25 N N)) - (b "===" 28 (b "=" 27 N N) N)))) - (b "idJ" 44 - (b "[" 37 - (b "Sigma" 33 - (b "BOT" 31 (b ">" 30 N N) (b "CUBE" 32 N N)) - (b "TOPE" 35 (b "TOP" 34 N N) (b "U" 36 N N))) - (b "_" 41 - (b "\\/" 39 (b "\\" 38 N N) (b "]" 40 N N)) - (b "first" 43 (b "as" 42 N N) N))) - (b "{" 51 - (b "refl_{" 48 - (b "recOR" 46 (b "recBOT" 45 N N) (b "refl" 47 N N)) - (b "second" 50 (b "rzk-1" 49 N N) N)) - (b "\931" 55 - (b "|->" 53 (b "|" 52 N N) (b "}" 54 N N)) - (b "\8721" 57 (b "\8594" 56 N N) N)))) + b "=" 32 + (b "(" 16 + (b "#end" 8 + (b "#compute-nf" 4 + (b "#check" 2 (b "#assume" 1 N N) (b "#compute" 3 N N)) + (b "#def" 6 (b "#compute-whnf" 5 N N) (b "#define" 7 N N))) + (b "#set-option" 12 + (b "#postulate" 10 (b "#lang" 9 N N) (b "#section" 11 N N)) + (b "#variable" 14 + (b "#unset-option" 13 N N) (b "#variables" 15 N N)))) + (b "1" 24 + (b "," 20 + (b "*" 18 (b ")" 17 N N) (b "*_1" 19 N N)) + (b "/\\" 22 (b "->" 21 N N) (b "0_2" 23 N N))) + (b ":=" 28 + (b "2" 26 (b "1_2" 25 N N) (b ":" 27 N N)) + (b "<" 30 (b ";" 29 N N) (b "<=" 31 N N))))) + (b "first" 48 + (b "TOPE" 40 + (b "BOT" 36 + (b "=_{" 34 (b "===" 33 N N) (b ">" 35 N N)) + (b "Sigma" 38 (b "CUBE" 37 N N) (b "TOP" 39 N N))) + (b "\\/" 44 + (b "[" 42 (b "U" 41 N N) (b "\\" 43 N N)) + (b "_" 46 (b "]" 45 N N) (b "as" 47 N N)))) + (b "uses" 56 + (b "refl" 52 + (b "recBOT" 50 (b "idJ" 49 N N) (b "recOR" 51 N N)) + (b "rzk-1" 54 (b "refl_{" 53 N N) (b "second" 55 N N))) + (b "}" 60 + (b "|" 58 (b "{" 57 N N) (b "|->" 59 N N)) + (b "\8594" 62 (b "\931" 61 N N) (b "\8721" 63 N N))))) where b s n = B bs (TS bs n) where diff --git a/rzk/src/Language/Rzk/Syntax/Par.hs b/rzk/src/Language/Rzk/Syntax/Par.hs index 9dc639ae2..12c06d89e 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.hs +++ b/rzk/src/Language/Rzk/Syntax/Par.hs @@ -10,10 +10,13 @@ module Language.Rzk.Syntax.Par ( happyError , myLexer , pModule + , pListVarIdent , pLanguageDecl , pLanguage , pCommand , pListCommand + , pDeclUsedVars + , pSectionName , pPattern , pListPattern , pParam @@ -50,148 +53,127 @@ type HappyAny = Happy_GHC_Exts.Any #else type HappyAny = forall a . a #endif -newtype HappyWrap24 = HappyWrap24 ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) -happyIn24 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) -> (HappyAbsSyn ) -happyIn24 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap24 x) -{-# INLINE happyIn24 #-} -happyOut24 :: (HappyAbsSyn ) -> HappyWrap24 -happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut24 #-} -newtype HappyWrap25 = HappyWrap25 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) -happyIn25 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) -> (HappyAbsSyn ) -happyIn25 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap25 x) -{-# INLINE happyIn25 #-} -happyOut25 :: (HappyAbsSyn ) -> HappyWrap25 -happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut25 #-} -newtype HappyWrap26 = HappyWrap26 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) -happyIn26 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) -> (HappyAbsSyn ) -happyIn26 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap26 x) -{-# INLINE happyIn26 #-} -happyOut26 :: (HappyAbsSyn ) -> HappyWrap26 -happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x -{-# INLINE happyOut26 #-} -newtype HappyWrap27 = HappyWrap27 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -happyIn27 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -> (HappyAbsSyn ) +newtype HappyWrap27 = HappyWrap27 ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) +happyIn27 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, String)) -> (HappyAbsSyn ) happyIn27 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap27 x) {-# INLINE happyIn27 #-} happyOut27 :: (HappyAbsSyn ) -> HappyWrap27 happyOut27 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut27 #-} -newtype HappyWrap28 = HappyWrap28 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -happyIn28 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -> (HappyAbsSyn ) +newtype HappyWrap28 = HappyWrap28 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) +happyIn28 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.VarIdent)) -> (HappyAbsSyn ) happyIn28 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap28 x) {-# INLINE happyIn28 #-} happyOut28 :: (HappyAbsSyn ) -> HappyWrap28 happyOut28 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut28 #-} -newtype HappyWrap29 = HappyWrap29 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -happyIn29 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -> (HappyAbsSyn ) +newtype HappyWrap29 = HappyWrap29 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) +happyIn29 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.HoleIdent)) -> (HappyAbsSyn ) happyIn29 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap29 x) {-# INLINE happyIn29 #-} happyOut29 :: (HappyAbsSyn ) -> HappyWrap29 happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut29 #-} -newtype HappyWrap30 = HappyWrap30 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -happyIn30 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -> (HappyAbsSyn ) +newtype HappyWrap30 = HappyWrap30 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) +happyIn30 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Module)) -> (HappyAbsSyn ) happyIn30 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap30 x) {-# INLINE happyIn30 #-} happyOut30 :: (HappyAbsSyn ) -> HappyWrap30 happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut30 #-} -newtype HappyWrap31 = HappyWrap31 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -happyIn31 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -> (HappyAbsSyn ) +newtype HappyWrap31 = HappyWrap31 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent])) +happyIn31 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent])) -> (HappyAbsSyn ) happyIn31 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap31 x) {-# INLINE happyIn31 #-} happyOut31 :: (HappyAbsSyn ) -> HappyWrap31 happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut31 #-} -newtype HappyWrap32 = HappyWrap32 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -happyIn32 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn ) +newtype HappyWrap32 = HappyWrap32 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) +happyIn32 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl)) -> (HappyAbsSyn ) happyIn32 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap32 x) {-# INLINE happyIn32 #-} happyOut32 :: (HappyAbsSyn ) -> HappyWrap32 happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut32 #-} -newtype HappyWrap33 = HappyWrap33 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -happyIn33 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn ) +newtype HappyWrap33 = HappyWrap33 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) +happyIn33 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Language)) -> (HappyAbsSyn ) happyIn33 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap33 x) {-# INLINE happyIn33 #-} happyOut33 :: (HappyAbsSyn ) -> HappyWrap33 happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut33 #-} -newtype HappyWrap34 = HappyWrap34 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -happyIn34 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -> (HappyAbsSyn ) +newtype HappyWrap34 = HappyWrap34 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) +happyIn34 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command)) -> (HappyAbsSyn ) happyIn34 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap34 x) {-# INLINE happyIn34 #-} happyOut34 :: (HappyAbsSyn ) -> HappyWrap34 happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut34 #-} -newtype HappyWrap35 = HappyWrap35 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -happyIn35 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -> (HappyAbsSyn ) +newtype HappyWrap35 = HappyWrap35 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) +happyIn35 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command])) -> (HappyAbsSyn ) happyIn35 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap35 x) {-# INLINE happyIn35 #-} happyOut35 :: (HappyAbsSyn ) -> HappyWrap35 happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut35 #-} -newtype HappyWrap36 = HappyWrap36 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -happyIn36 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -> (HappyAbsSyn ) +newtype HappyWrap36 = HappyWrap36 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars)) +happyIn36 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars)) -> (HappyAbsSyn ) happyIn36 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap36 x) {-# INLINE happyIn36 #-} happyOut36 :: (HappyAbsSyn ) -> HappyWrap36 happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut36 #-} -newtype HappyWrap37 = HappyWrap37 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -happyIn37 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -> (HappyAbsSyn ) +newtype HappyWrap37 = HappyWrap37 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName)) +happyIn37 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName)) -> (HappyAbsSyn ) happyIn37 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap37 x) {-# INLINE happyIn37 #-} happyOut37 :: (HappyAbsSyn ) -> HappyWrap37 happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut37 #-} -newtype HappyWrap38 = HappyWrap38 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -happyIn38 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -> (HappyAbsSyn ) +newtype HappyWrap38 = HappyWrap38 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) +happyIn38 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern)) -> (HappyAbsSyn ) happyIn38 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap38 x) {-# INLINE happyIn38 #-} happyOut38 :: (HappyAbsSyn ) -> HappyWrap38 happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut38 #-} -newtype HappyWrap39 = HappyWrap39 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -happyIn39 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +newtype HappyWrap39 = HappyWrap39 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) +happyIn39 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Pattern])) -> (HappyAbsSyn ) happyIn39 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap39 x) {-# INLINE happyIn39 #-} happyOut39 :: (HappyAbsSyn ) -> HappyWrap39 happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut39 #-} -newtype HappyWrap40 = HappyWrap40 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -happyIn40 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +newtype HappyWrap40 = HappyWrap40 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) +happyIn40 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Param)) -> (HappyAbsSyn ) happyIn40 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap40 x) {-# INLINE happyIn40 #-} happyOut40 :: (HappyAbsSyn ) -> HappyWrap40 happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut40 #-} -newtype HappyWrap41 = HappyWrap41 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -happyIn41 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +newtype HappyWrap41 = HappyWrap41 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) +happyIn41 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Param])) -> (HappyAbsSyn ) happyIn41 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap41 x) {-# INLINE happyIn41 #-} happyOut41 :: (HappyAbsSyn ) -> HappyWrap41 happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut41 #-} -newtype HappyWrap42 = HappyWrap42 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -happyIn42 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +newtype HappyWrap42 = HappyWrap42 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) +happyIn42 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.ParamDecl)) -> (HappyAbsSyn ) happyIn42 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap42 x) {-# INLINE happyIn42 #-} happyOut42 :: (HappyAbsSyn ) -> HappyWrap42 happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut42 #-} -newtype HappyWrap43 = HappyWrap43 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -happyIn43 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +newtype HappyWrap43 = HappyWrap43 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) +happyIn43 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Restriction)) -> (HappyAbsSyn ) happyIn43 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap43 x) {-# INLINE happyIn43 #-} happyOut43 :: (HappyAbsSyn ) -> HappyWrap43 happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut43 #-} -newtype HappyWrap44 = HappyWrap44 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -happyIn44 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +newtype HappyWrap44 = HappyWrap44 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) +happyIn44 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Restriction])) -> (HappyAbsSyn ) happyIn44 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap44 x) {-# INLINE happyIn44 #-} happyOut44 :: (HappyAbsSyn ) -> HappyWrap44 @@ -211,13 +193,55 @@ happyIn46 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap46 x) happyOut46 :: (HappyAbsSyn ) -> HappyWrap46 happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut46 #-} -newtype HappyWrap47 = HappyWrap47 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) -happyIn47 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) -> (HappyAbsSyn ) +newtype HappyWrap47 = HappyWrap47 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) +happyIn47 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) happyIn47 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap47 x) {-# INLINE happyIn47 #-} happyOut47 :: (HappyAbsSyn ) -> HappyWrap47 happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyOut47 #-} +newtype HappyWrap48 = HappyWrap48 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) +happyIn48 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +happyIn48 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap48 x) +{-# INLINE happyIn48 #-} +happyOut48 :: (HappyAbsSyn ) -> HappyWrap48 +happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x +{-# INLINE happyOut48 #-} +newtype HappyWrap49 = HappyWrap49 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) +happyIn49 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +happyIn49 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap49 x) +{-# INLINE happyIn49 #-} +happyOut49 :: (HappyAbsSyn ) -> HappyWrap49 +happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x +{-# INLINE happyOut49 #-} +newtype HappyWrap50 = HappyWrap50 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) +happyIn50 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +happyIn50 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap50 x) +{-# INLINE happyIn50 #-} +happyOut50 :: (HappyAbsSyn ) -> HappyWrap50 +happyOut50 x = Happy_GHC_Exts.unsafeCoerce# x +{-# INLINE happyOut50 #-} +newtype HappyWrap51 = HappyWrap51 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) +happyIn51 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +happyIn51 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap51 x) +{-# INLINE happyIn51 #-} +happyOut51 :: (HappyAbsSyn ) -> HappyWrap51 +happyOut51 x = Happy_GHC_Exts.unsafeCoerce# x +{-# INLINE happyOut51 #-} +newtype HappyWrap52 = HappyWrap52 ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) +happyIn52 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Term)) -> (HappyAbsSyn ) +happyIn52 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap52 x) +{-# INLINE happyIn52 #-} +happyOut52 :: (HappyAbsSyn ) -> HappyWrap52 +happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x +{-# INLINE happyOut52 #-} +newtype HappyWrap53 = HappyWrap53 ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) +happyIn53 :: ((Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Term])) -> (HappyAbsSyn ) +happyIn53 x = Happy_GHC_Exts.unsafeCoerce# (HappyWrap53 x) +{-# INLINE happyIn53 #-} +happyOut53 :: (HappyAbsSyn ) -> HappyWrap53 +happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x +{-# INLINE happyOut53 #-} happyInTok :: (Token) -> (HappyAbsSyn ) happyInTok x = Happy_GHC_Exts.unsafeCoerce# x {-# INLINE happyInTok #-} @@ -227,43 +251,40 @@ happyOutTok x = Happy_GHC_Exts.unsafeCoerce# x happyExpList :: HappyAddr -happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\xf8\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xdf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x08\x00\x20\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x08\x20\x20\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x02\x02\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xe0\x37\x60\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x07\x7c\x00\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xe0\x17\x60\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x07\x7e\x01\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xe0\x17\x60\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x07\x7e\x01\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x07\x7e\x01\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x0f\x7c\x00\x06\x00\x00\x00\x00\x00\x00\x00\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\x20\xf1\x08\x7e\xe9\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xe0\x37\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x02\x00\x00\x80\x00\x02\x02\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xc0\x07\x60\x00\x00\x00\x00\x00\x00\x00\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\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\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xc0\x07\x60\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x12\x8f\x60\x0f\x7c\x00\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\xf6\xc0\x07\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\xf6\xc0\x07\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xdf\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\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x10\x00\x80\x00\x02\x02\x00\x00\x00\x00\x00\x00\x20\x00\x01\x00\x08\x20\x20\x00\x00\x00\x00\x00\x00\x00\x02\x10\x00\x80\x00\x02\x02\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x02\x00\x00\x08\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x07\x7e\x01\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xe0\x17\x60\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x40\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x08\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x08\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x07\x7e\x01\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xe0\x17\x60\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x07\x7e\x01\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x76\xe0\x17\x60\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\x60\x0f\x7c\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x08\x00\x20\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x12\x8f\x60\x07\x7e\x01\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x01\x00\x00\x00\x00\x00\x00\x00\x12\x8f\xe0\x17\x7e\xa3\x06\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xf1\x08\x7e\xe1\x37\x6a\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x2b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x90\x78\x04\xbf\xf4\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x2b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x01\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x7b\xe0\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x04\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\x00\x00\x10\x80\x00\x00\x04\x20\x20\x00\x00\x00\x00\x00\x00\xe0\xcf\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\x3b\xf0\x0b\x60\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x78\x04\xbf\xf0\x2b\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# {-# NOINLINE happyExpListPerState #-} happyExpListPerState st = token_strs_expected - where token_strs = ["error","%dummy","%start_pModule_internal","%start_pLanguageDecl_internal","%start_pLanguage_internal","%start_pCommand_internal","%start_pListCommand_internal","%start_pPattern_internal","%start_pListPattern_internal","%start_pParam_internal","%start_pListParam_internal","%start_pParamDecl_internal","%start_pRestriction_internal","%start_pListRestriction_internal","%start_pTerm7_internal","%start_pTerm5_internal","%start_pTerm4_internal","%start_pTerm3_internal","%start_pTerm2_internal","%start_pTerm1_internal","%start_pTerm6_internal","%start_pTerm_internal","%start_pListTerm_internal","String","VarIdent","HoleIdent","Module","LanguageDecl","Language","Command","ListCommand","Pattern","ListPattern","Param","ListParam","ParamDecl","Restriction","ListRestriction","Term7","Term5","Term4","Term3","Term2","Term1","Term6","Term","ListTerm","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#def'","'#define'","'#lang'","'#postulate'","'#set-option'","'#unset-option'","'('","')'","'*'","'*_1'","','","'->'","'/\\\\'","'0_2'","'1'","'1_2'","'2'","':'","':='","';'","'<'","'<='","'='","'==='","'=_{'","'>'","'BOT'","'CUBE'","'Sigma'","'TOP'","'TOPE'","'U'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'{'","'|'","'|->'","'}'","'\931'","'\8594'","'\8721'","L_quoted","L_VarIdent","L_HoleIdent","%eof"] - bit_start = st Prelude.* 108 - bit_end = (st Prelude.+ 1) Prelude.* 108 + where token_strs = ["error","%dummy","%start_pModule_internal","%start_pListVarIdent_internal","%start_pLanguageDecl_internal","%start_pLanguage_internal","%start_pCommand_internal","%start_pListCommand_internal","%start_pDeclUsedVars_internal","%start_pSectionName_internal","%start_pPattern_internal","%start_pListPattern_internal","%start_pParam_internal","%start_pListParam_internal","%start_pParamDecl_internal","%start_pRestriction_internal","%start_pListRestriction_internal","%start_pTerm7_internal","%start_pTerm5_internal","%start_pTerm4_internal","%start_pTerm3_internal","%start_pTerm2_internal","%start_pTerm1_internal","%start_pTerm6_internal","%start_pTerm_internal","%start_pListTerm_internal","String","VarIdent","HoleIdent","Module","ListVarIdent","LanguageDecl","Language","Command","ListCommand","DeclUsedVars","SectionName","Pattern","ListPattern","Param","ListParam","ParamDecl","Restriction","ListRestriction","Term7","Term5","Term4","Term3","Term2","Term1","Term6","Term","ListTerm","'#assume'","'#check'","'#compute'","'#compute-nf'","'#compute-whnf'","'#def'","'#define'","'#end'","'#lang'","'#postulate'","'#section'","'#set-option'","'#unset-option'","'#variable'","'#variables'","'('","')'","'*'","'*_1'","','","'->'","'/\\\\'","'0_2'","'1'","'1_2'","'2'","':'","':='","';'","'<'","'<='","'='","'==='","'=_{'","'>'","'BOT'","'CUBE'","'Sigma'","'TOP'","'TOPE'","'U'","'['","'\\\\'","'\\\\/'","']'","'_'","'as'","'first'","'idJ'","'recBOT'","'recOR'","'refl'","'refl_{'","'rzk-1'","'second'","'uses'","'{'","'|'","'|->'","'}'","'\931'","'\8594'","'\8721'","L_quoted","L_VarIdent","L_HoleIdent","%eof"] + bit_start = st Prelude.* 120 + bit_end = (st Prelude.+ 1) Prelude.* 120 read_bit = readArrayBit happyExpList bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1] - bits_indexed = Prelude.zip bits [0..107] + bits_indexed = Prelude.zip bits [0..119] token_strs_expected = Prelude.concatMap f bits_indexed f (Prelude.False, _) = [] f (Prelude.True, nr) = [token_strs Prelude.!! nr] happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\xff\xff\xff\xff\xec\xff\xec\x04\xec\x04\x01\x00\x01\x00\x05\x00\x05\x00\x80\x00\x51\x00\x51\x00\x5b\x01\x05\x01\x05\x01\x05\x01\x05\x01\x51\x00\x05\x01\x51\x00\x51\x00\xe6\xff\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\x3c\x00\x18\x00\x23\x00\xe8\xff\x00\x00\xaf\x00\x2a\x00\x1a\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x00\x00\x00\x00\x00\x57\x00\x00\x00\x00\x00\x00\x00\x05\x00\x5b\x01\x5c\x00\x00\x00\x6d\x00\x00\x00\x51\x00\x5b\x01\x03\x00\x6f\x00\x86\x00\x00\x00\x00\x00\x5d\x00\xf6\xff\x51\x00\x52\x00\x5d\x00\x5d\x00\x30\x01\x5d\x00\x5d\x00\x0a\x00\x5d\x00\x8d\x00\x78\x00\x81\x00\x7c\x00\x7c\x00\x30\x01\x00\x00\x00\x00\x05\x00\x7c\x00\x11\x00\x00\x00\x11\x00\x7c\x00\x11\x00\x7c\x00\x11\x00\x7c\x00\xec\x04\x7c\x00\x51\x00\x51\x00\x51\x00\x51\x00\x95\x00\x95\x00\x95\x00\x9e\x00\x9e\x00\x9c\x00\x9c\x00\x00\x00\x9c\x00\xb0\x00\xa7\x00\xec\x04\x00\x00\xce\x00\xd1\x00\xd9\x00\x8b\x00\x5d\x01\x66\x01\xdd\x00\xdf\x00\xeb\x00\xfb\x00\x00\x00\x0d\x01\x00\x00\x07\x01\x02\x00\x09\x01\x00\x00\x00\x00\x51\x00\x51\x00\x51\x00\x05\x01\x05\x01\x51\x00\x8f\x00\x11\x00\x11\x00\x0b\x01\x11\x00\x00\x00\x09\x00\x51\x00\x51\x00\x00\x00\x10\x01\x11\x00\x28\x01\x14\x01\x26\x01\x51\x00\x51\x00\x05\x01\x05\x01\x05\x01\x05\x01\x51\x00\x51\x00\x00\x00\x00\x00\x39\x01\x39\x01\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\x51\x00\x51\x00\x27\x01\x51\x00\x38\x01\x3c\x01\xf3\xff\x51\x00\x00\x00\x44\x00\x51\x00\x34\x01\x35\x01\x00\x00\x51\x00\x16\x01\x00\x00\x30\x01\x00\x00\x00\x00\x32\x01\x51\x00\x11\x00\x51\x00\x51\x00\x00\x00\x00\x00\x00\x00\x4d\x01\x51\x00\x51\x01\x51\x00\x5c\x01\x51\x00\x3b\x01\x00\x00\x00\x00\x4a\x01\x5e\x01\x51\x00\x60\x01\x51\x00\x61\x01\x51\x00\x69\x01\x5a\x01\x79\x01\x85\x01\x00\x00\x05\x01\x86\x01\x51\x00\x51\x00\x53\x00\x51\x00\x4e\x01\x51\x00\x00\x00\x51\x00\x00\x00\x51\x00\x75\x01\xa3\x01\xa4\x01\x00\x00\x00\x00\x00\x00\xa5\x01\xc2\x01\xc3\x01\x00\x00\xa6\x01\x51\x00\x00\x00\xa7\x01\xc7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x51\x00\x00\x00\xbd\x01\x51\x00\xbe\x01\x51\x00\xcd\x01\x00\x00\x00\x00\x00\x00\xd0\x01\x51\x00\xd1\x01\x51\x00\xb0\x01\xd8\x01\xdb\x01\xb5\x01\xb8\x01\x51\x00\x51\x00\xde\x01\x51\x00\xec\x01\xed\x01\x51\x00\x00\x00\x51\x00\x51\x00\x00\x00\xe5\x01\x00\x00\xe6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x01\x51\x00\x51\x00\x00\x00\xf1\x01\xf5\x01\x00\x00\x00\x00\x51\x00\xf3\x01\x51\x00\xf7\x01\x00\x00\x00\x00"# +happyActOffsets = HappyA# "\xfa\xff\xd1\xff\x0a\x00\x60\x00\x26\x05\x26\x05\x6a\x00\x59\x00\x27\x00\x27\x00\x53\x00\x53\x00\x77\x00\x47\x00\x47\x00\x4b\x01\xff\x00\xff\x00\xff\x00\xff\x00\x47\x00\xff\x00\x47\x00\x47\x00\x66\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x52\x00\x97\x00\x9e\x00\x3b\x00\x00\x00\xa7\x00\xa0\x00\x8f\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x00\x00\x00\x00\xee\x00\x00\x00\x00\x00\x00\x00\x53\x00\x4b\x01\x01\x01\x00\x00\x0c\x01\x00\x00\x47\x00\x4b\x01\x34\x00\x12\x01\x15\x01\x00\x00\x00\x00\xbf\x00\xf1\xff\x47\x00\x31\x00\xbf\x00\xbf\x00\x25\x01\xbf\x00\xbf\x00\xf3\xff\xbf\x00\x30\x01\xf6\x00\x19\x01\x1c\x01\x1c\x01\x25\x01\x00\x00\x00\x00\x53\x00\x1c\x01\x57\x00\x00\x00\x57\x00\x1c\x01\x57\x00\x1c\x01\x57\x00\x1c\x01\x00\x00\x1c\x01\x1c\x01\x5a\x01\x58\x01\x44\x01\x7a\x01\x47\x00\x47\x00\x47\x00\x47\x00\x7a\x01\x7a\x01\x7a\x01\x7a\x01\x5b\x01\x5b\x01\x7b\x01\x7b\x01\x74\x01\x74\x01\x00\x00\x74\x01\x83\x01\x7c\x01\x77\x01\x77\x01\x26\x05\x00\x00\x00\x00\xa1\x01\xa4\x01\xc0\x01\x00\x00\xbc\x01\xc1\x01\xa5\x01\xa5\x01\xa5\x01\x00\x00\x00\x00\x00\x00\xc4\x01\xc5\x01\x26\x05\xa0\x01\xce\x01\x00\x00\xc8\x01\x0c\x00\xcb\x01\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\xff\x00\xff\x00\x47\x00\x18\x00\x57\x00\x57\x00\xd9\x01\x57\x00\x00\x00\xec\xff\x47\x00\x47\x00\x00\x00\xea\x01\x57\x00\xeb\x01\xe6\x01\xe7\x01\x47\x00\x47\x00\xff\x00\xff\x00\xff\x00\xff\x00\x47\x00\x47\x00\x00\x00\x00\x00\xf1\x01\xf1\x01\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x47\x00\x47\x00\xe9\x01\x47\x00\xf2\x01\xf4\x01\xf2\xff\x47\x00\x00\x00\x62\x00\x47\x00\xec\x01\xef\x01\x00\x00\x47\x00\xd0\x01\x00\x00\x25\x01\x00\x00\x00\x00\xe0\x01\x47\x00\x57\x00\x47\x00\x10\x02\x00\x00\x47\x00\x47\x00\x64\x00\x94\x00\x27\x01\x26\x05\xe4\x01\x47\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x02\x0c\x02\x47\x00\x20\x02\x47\x00\x23\x02\x47\x00\x00\x00\x00\x00\x00\x00\x06\x02\x44\x02\x47\x02\x00\x00\xff\x00\x49\x02\x47\x00\x47\x00\x0b\x01\x47\x00\x05\x02\x47\x00\x00\x00\x47\x00\x00\x00\x47\x00\x38\x02\x5e\x02\x61\x02\x00\x00\x00\x00\x00\x00\x63\x02\x75\x02\x78\x02\x00\x00\x7d\x02\x47\x00\x00\x00\x92\x02\x95\x02\x00\x00\x00\x00\x00\x00\x00\x00\x47\x00\x59\x02\x47\x00\x73\x02\x47\x00\x00\x00\x47\x00\x67\x02\x00\x00\x00\x00\x8d\x02\x47\x00\xa1\x02\x47\x00\x84\x02\xae\x02\xaf\x02\x9b\x02\xa0\x02\x47\x00\x47\x00\xc8\x02\x47\x00\xc9\x02\xdd\x02\x47\x00\x00\x00\x47\x00\x47\x00\x00\x00\x00\x00\x47\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x47\x00\x47\x00\x00\x00\xe2\x02\xfa\x02\x00\x00\x00\x00\x47\x00\xe3\x02\x47\x00\xfd\x02\x00\x00\x00\x00"# happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x82\x00\x0d\x02\x0f\x02\x0c\x02\xa0\x00\x7a\x00\x1a\x01\xfa\x00\xbf\x00\x12\x00\x0e\x02\xb6\x01\x5f\x00\xff\x00\xe1\x00\xbe\x04\x8b\x01\x40\x04\xb6\x00\x24\x02\x93\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x00\x00\x00\x00\x30\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x01\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x02\x8e\x00\xa9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x48\x02\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\xca\x04\x00\x00\x25\x01\x00\x00\xf7\x00\x00\x00\x50\x01\x00\x00\x0a\x01\x00\x00\xa2\x00\x00\x00\x54\x02\x60\x02\x6c\x02\x78\x02\x12\x02\x14\x02\x15\x02\x17\x02\x18\x02\x00\x00\x00\x00\x00\x00\x00\x00\x22\x02\x00\x00\xcf\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x04\xdd\x04\xe1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x01\x00\x00\x00\x00\x00\x00\xcc\x01\x84\x02\xe2\x01\x4c\x01\x9d\x04\x90\x02\x00\x00\x2e\x01\xac\x01\x00\x00\xad\x01\x00\x00\x00\x00\xf8\x01\x9c\x02\x00\x00\x00\x00\xce\x01\x00\x00\x00\x00\x00\x00\xaa\x01\x4c\x04\xa9\x04\xc7\x04\x2a\x01\x55\x01\x58\x04\x64\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x02\xb4\x02\xc0\x02\x00\x00\x70\x04\x00\x00\x00\x00\x00\x00\xcc\x02\x00\x00\x00\x00\xd8\x02\x00\x00\x00\x00\x00\x00\xe4\x02\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\xf0\x02\xcf\x01\xfc\x02\x08\x03\x00\x00\x00\x00\x00\x00\x00\x00\x14\x03\x00\x00\x20\x03\x00\x00\x2c\x03\x19\x02\x00\x00\x00\x00\x00\x00\x00\x00\x38\x03\x00\x00\x44\x03\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x04\x00\x00\x5c\x03\x68\x03\x00\x00\x74\x03\x00\x00\x80\x03\x00\x00\x8c\x03\x00\x00\x98\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x03\x00\x00\x00\x00\xbc\x03\x00\x00\xc8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x03\x00\x00\xe0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x03\xf8\x03\x00\x00\x7c\x04\x00\x00\x00\x00\x04\x04\x00\x00\x88\x04\x94\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x04\x1c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x04\x00\x00\x34\x04\x00\x00\x00\x00\x00\x00"# +happyGotoOffsets = HappyA# "\x88\x00\x65\x00\x0c\x03\x0a\x03\x1e\x03\xd9\x00\x1f\x03\x0d\x00\x38\x00\x13\x00\x96\x00\xf2\x00\x39\x01\xe3\x01\x9b\x01\x0b\x00\xb1\x00\xdc\x00\x76\x01\xd0\x04\x6c\x04\x81\x00\xfc\x01\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x00\x00\x07\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x02\xd2\x00\x51\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x21\x02\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x1e\x01\x00\x00\xbc\x00\x00\x00\xb0\x00\x00\x00\x0f\x01\x00\x00\x08\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x00\x30\x02\x3b\x02\x4a\x02\x55\x02\x29\x03\x2a\x03\x3e\x03\x37\x00\x42\x03\x44\x03\x58\x03\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x03\xf5\x00\x00\x00\x00\x00\x26\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x03\x55\x03\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x01\x1d\x01\x00\x00\x00\x00\x00\x00\x0f\x01\x00\x00\x00\x00\x00\x00\xb4\x01\x64\x02\xbf\x01\xde\x04\xd9\x04\x6f\x02\x00\x00\x1f\x01\x6b\x01\x00\x00\x70\x01\x00\x00\x00\x00\xd8\x01\x7e\x02\x00\x00\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x8f\x01\x76\x04\xe8\x04\x00\x05\x0c\x05\x0e\x05\x85\x04\x8f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x02\x98\x02\xa3\x02\x00\x00\x9e\x04\x00\x00\x00\x00\x00\x00\xb2\x02\x00\x00\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\xcc\x02\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\x00\x00\xd7\x02\xb7\x01\xe6\x02\x00\x00\x00\x00\xf1\x02\x00\x03\x45\x01\x60\x01\x78\x01\x98\x01\x5f\x03\x0b\x03\x1a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x03\x00\x00\x34\x03\x00\x00\x3f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x04\x00\x00\x4e\x03\x59\x03\x00\x00\x68\x03\x00\x00\x73\x03\x00\x00\x82\x03\x00\x00\x8d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x03\x00\x00\xb6\x03\x00\x00\xc1\x03\x00\x00\xd0\x03\x45\x00\x00\x00\x00\x00\x00\x00\xdb\x03\x00\x00\xea\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x03\x04\x04\x00\x00\xa8\x04\x00\x00\x00\x00\x0f\x04\x00\x00\xb7\x04\xc1\x04\x00\x00\x00\x00\x1e\x04\x00\x00\x29\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x04\x43\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x04\x00\x00\x5d\x04\x00\x00\x00\x00\x00\x00"# happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int# happyAdjustOffset off = off happyDefActions :: HappyAddr -happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\xd8\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\xea\xff\xaf\xff\xb0\xff\x00\x00\x97\xff\xa9\xff\xa7\xff\xa5\xff\x9f\xff\x95\xff\xac\xff\x94\xff\x00\x00\x00\x00\xbf\xff\xbd\xff\xc0\xff\xbc\xff\xbe\xff\x00\x00\xba\xff\xc2\xff\x00\x00\xbb\xff\xc1\xff\xc3\xff\x00\x00\x00\x00\x00\x00\xb9\xff\x00\x00\xb4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xff\xe8\xff\x00\x00\x00\x00\x00\x00\x9f\xff\x00\x00\x00\x00\xac\xff\x00\x00\x00\x00\x00\x00\x00\x00\xc5\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xff\xd5\xff\xd1\xff\xce\xff\x00\x00\x00\x00\xd6\xff\x00\x00\x00\x00\xd3\xff\x00\x00\x00\x00\x00\x00\xd8\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\xe5\xff\x00\x00\x00\x00\x00\x00\xd8\xff\xe7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\xff\x00\x00\xd2\xff\x00\x00\xd3\xff\x00\x00\xcd\xff\x9a\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\xff\x00\x00\x00\x00\x00\x00\x99\xff\x00\x00\x00\x00\x00\x00\xaf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xff\xa4\xff\xab\xff\xaa\xff\xa8\xff\xa6\xff\x96\xff\x93\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\xff\x00\x00\x00\x00\x00\x00\x00\x00\xae\xff\x00\x00\x00\x00\xa1\xff\xad\xff\xc4\xff\xc6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\xff\xdf\xff\xe0\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\xff\xe6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x00\x00\xa0\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcb\xff\xc9\xff\xb6\xff\x00\x00\x00\x00\x00\x00\xb2\xff\x00\x00\x00\x00\xca\xff\x00\x00\x00\x00\xb5\xff\xa2\xff\xd0\xff\xd4\xff\x00\x00\xe2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xe4\xff\xde\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\xc7\xff\x00\x00\x00\x00\xcf\xff\x00\x00\xd9\xff\x00\x00\xdb\xff\xdc\xff\xda\xff\x9c\xff\x9d\xff\x00\x00\x00\x00\x00\x00\xa3\xff\x00\x00\x00\x00\xc8\xff\xb7\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb1\xff"# +happyDefActions = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\xcc\xff\xcb\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\xe7\xff\xa2\xff\xa3\xff\x00\x00\x8a\xff\x9c\xff\x9a\xff\x98\xff\x92\xff\x88\xff\x9f\xff\x87\xff\x00\x00\x00\x00\xb2\xff\xb0\xff\xb3\xff\xaf\xff\xb1\xff\x00\x00\xad\xff\xb5\xff\x00\x00\xae\xff\xb4\xff\xb6\xff\x00\x00\x00\x00\x00\x00\xac\xff\x00\x00\xa7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xff\xe5\xff\x00\x00\x00\x00\x00\x00\x92\xff\x00\x00\x00\x00\x9f\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbf\xff\xc8\xff\xc4\xff\xc1\xff\x00\x00\x00\x00\xc9\xff\x00\x00\x00\x00\xc6\xff\x00\x00\x00\x00\x00\x00\xca\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\xcb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x00\x00\x00\x00\xe3\xff\x00\x00\x00\x00\xcf\xff\xe4\xff\xe2\xff\x00\x00\x00\x00\x00\x00\xde\xff\x00\x00\x00\x00\xcc\xff\xcc\xff\xcc\xff\xdb\xff\xda\xff\xdc\xff\x00\x00\x00\x00\xcf\xff\x00\x00\x00\x00\xc5\xff\x00\x00\xc6\xff\x00\x00\xc0\xff\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\xff\x00\x00\x00\x00\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\xa2\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\xff\x97\xff\x9e\xff\x9d\xff\x9b\xff\x99\xff\x89\xff\x86\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa1\xff\x00\x00\x00\x00\x94\xff\xa0\xff\xb7\xff\xb9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\x00\x00\x00\x00\x00\x00\xe1\xff\xd5\xff\xd6\xff\xdf\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdd\xff\xd7\xff\xcd\xff\x00\x00\x00\x00\x00\x00\x8e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\xff\x00\x00\x93\xff\x00\x00\x00\x00\x00\x00\x00\x00\xbe\xff\xbc\xff\xa9\xff\x00\x00\x00\x00\x00\x00\xa5\xff\x00\x00\x00\x00\xbd\xff\x00\x00\x00\x00\xa8\xff\x95\xff\xc3\xff\xc7\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\xff\x00\x00\xcb\xff\xd4\xff\xd9\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\xba\xff\x00\x00\x00\x00\xc2\xff\xd0\xff\x00\x00\xd2\xff\x00\x00\xd3\xff\xd1\xff\x8f\xff\x90\xff\x00\x00\x00\x00\x00\x00\x96\xff\x00\x00\x00\x00\xbb\xff\xaa\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff"# happyCheck :: HappyAddr -happyCheck = HappyA# "\xff\xff\x0b\x00\x0f\x00\x1b\x00\x0e\x00\x1d\x00\x07\x00\x10\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0b\x00\x0b\x00\x0b\x00\x19\x00\x0b\x00\x0f\x00\x2a\x00\x01\x00\x02\x00\x1f\x00\x20\x00\x0d\x00\x22\x00\x23\x00\x24\x00\x25\x00\x0b\x00\x31\x00\x0c\x00\x16\x00\x3a\x00\x0f\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x15\x00\x35\x00\x11\x00\x29\x00\x29\x00\x29\x00\x0b\x00\x29\x00\x38\x00\x0e\x00\x3b\x00\x3c\x00\x3d\x00\x12\x00\x13\x00\x14\x00\x15\x00\x33\x00\x0f\x00\x29\x00\x19\x00\x3b\x00\x3b\x00\x3b\x00\x36\x00\x3b\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x3d\x00\x26\x00\x0d\x00\x27\x00\x29\x00\x3b\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x0f\x00\x32\x00\x33\x00\x1a\x00\x3d\x00\x1c\x00\x37\x00\x16\x00\x39\x00\x0b\x00\x3b\x00\x3c\x00\x0e\x00\x01\x00\x02\x00\x0b\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0b\x00\x01\x00\x02\x00\x19\x00\x01\x00\x02\x00\x1b\x00\x0f\x00\x1d\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x0f\x00\x26\x00\x0b\x00\x0f\x00\x0b\x00\x01\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x08\x00\x32\x00\x33\x00\x03\x00\x04\x00\x34\x00\x37\x00\x36\x00\x39\x00\x0b\x00\x3b\x00\x3c\x00\x0e\x00\x01\x00\x02\x00\x0b\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0b\x00\x01\x00\x02\x00\x19\x00\x3d\x00\x0c\x00\x0f\x00\x0f\x00\x0f\x00\x1f\x00\x20\x00\x16\x00\x22\x00\x23\x00\x24\x00\x0f\x00\x06\x00\x07\x00\x06\x00\x07\x00\x01\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x08\x00\x32\x00\x33\x00\x29\x00\x3d\x00\x35\x00\x01\x00\x02\x00\x3d\x00\x0b\x00\x3b\x00\x3c\x00\x0e\x00\x33\x00\x10\x00\x01\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0f\x00\x3b\x00\x08\x00\x19\x00\x0a\x00\x0b\x00\x15\x00\x01\x00\x02\x00\x1f\x00\x20\x00\x3b\x00\x22\x00\x23\x00\x24\x00\x25\x00\x06\x00\x07\x00\x0c\x00\x3a\x00\x3d\x00\x0f\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x15\x00\x31\x00\x01\x00\x02\x00\x3d\x00\x0b\x00\x18\x00\x38\x00\x0e\x00\x18\x00\x3b\x00\x3c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0f\x00\x10\x00\x11\x00\x19\x00\x1b\x00\x18\x00\x15\x00\x18\x00\x01\x00\x1f\x00\x20\x00\x01\x00\x22\x00\x23\x00\x24\x00\x08\x00\x01\x00\x02\x00\x08\x00\x18\x00\x0a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x32\x00\x33\x00\x0f\x00\x10\x00\x0b\x00\x16\x00\x08\x00\x0e\x00\x15\x00\x3b\x00\x3c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x01\x00\x0f\x00\x16\x00\x19\x00\x16\x00\x10\x00\x16\x00\x08\x00\x09\x00\x1f\x00\x20\x00\x01\x00\x22\x00\x23\x00\x24\x00\x16\x00\x01\x00\x02\x00\x08\x00\x09\x00\x01\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x08\x00\x32\x00\x10\x00\x0f\x00\x10\x00\x0b\x00\x16\x00\x16\x00\x0e\x00\x15\x00\x3b\x00\x3c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0d\x00\x0f\x00\x0c\x00\x19\x00\x16\x00\x16\x00\x36\x00\x01\x00\x02\x00\x1f\x00\x20\x00\x01\x00\x22\x00\x23\x00\x24\x00\x25\x00\x01\x00\x02\x00\x08\x00\x09\x00\x28\x00\x0f\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x15\x00\x18\x00\x16\x00\x0f\x00\x10\x00\x0b\x00\x16\x00\x0b\x00\x0e\x00\x15\x00\x3b\x00\x3c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x0b\x00\x16\x00\x16\x00\x19\x00\x3a\x00\x18\x00\x17\x00\x17\x00\x01\x00\x1f\x00\x20\x00\x16\x00\x22\x00\x23\x00\x24\x00\x08\x00\x18\x00\x0a\x00\x0b\x00\x36\x00\x0c\x00\x29\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x01\x00\x02\x00\x34\x00\x29\x00\x33\x00\x0c\x00\x0c\x00\x1e\x00\x01\x00\x02\x00\x3b\x00\x3c\x00\x3b\x00\x33\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x0c\x00\x15\x00\x3b\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x01\x00\x02\x00\x01\x00\x01\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x0c\x00\x08\x00\x08\x00\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x01\x00\x02\x00\x01\x00\x01\x00\x0f\x00\x0f\x00\x0c\x00\x17\x00\x17\x00\x08\x00\x08\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x01\x00\x02\x00\x18\x00\x36\x00\x0f\x00\x18\x00\x18\x00\x0f\x00\x36\x00\x34\x00\x0f\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x01\x00\x02\x00\x0f\x00\x0f\x00\x18\x00\x18\x00\x36\x00\x0f\x00\x0c\x00\x0f\x00\x0c\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x01\x00\x02\x00\x04\x00\x06\x00\x01\x00\x05\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x0d\x00\xff\xff\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x01\x00\x02\x00\x05\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x0c\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x01\x00\x02\x00\x0c\x00\xff\xff\xff\xff\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\x15\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\x15\x00\x01\x00\x02\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\xff\xff\x15\x00\x01\x00\x02\x00\xff\xff\x01\x00\xff\xff\x0f\x00\x10\x00\x11\x00\x12\x00\xff\xff\x08\x00\x15\x00\x0a\x00\x0b\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x01\x00\xff\xff\x15\x00\xff\xff\x01\x00\xff\xff\xff\xff\x08\x00\x01\x00\x0a\x00\x0b\x00\x08\x00\xff\xff\x0a\x00\x0b\x00\x08\x00\xff\xff\x0a\x00\x0b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xff\xff\x08\x00\x09\x00\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# +happyCheck = HappyA# "\xff\xff\x10\x00\x15\x00\x09\x00\x13\x00\x12\x00\x14\x00\x1b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x01\x00\x02\x00\x01\x00\x1e\x00\x01\x00\x02\x00\x41\x00\x09\x00\x01\x00\x24\x00\x25\x00\x0a\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x10\x00\x12\x00\x0b\x00\x0c\x00\x14\x00\x12\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x3c\x00\x11\x00\x13\x00\x3e\x00\x14\x00\x3b\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x43\x00\x1e\x00\x43\x00\x10\x00\x01\x00\x01\x00\x2e\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x0a\x00\x2b\x00\x0b\x00\x10\x00\x2e\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x41\x00\x37\x00\x0a\x00\x39\x00\x20\x00\x01\x00\x22\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x20\x00\x0b\x00\x22\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x10\x00\x12\x00\x1e\x00\x01\x00\x10\x00\x41\x00\x04\x00\x2f\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1f\x00\x2b\x00\x21\x00\x10\x00\x41\x00\x14\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x1b\x00\x37\x00\x1b\x00\x39\x00\x2e\x00\x01\x00\x02\x00\x3d\x00\x2e\x00\x3f\x00\x10\x00\x41\x00\x42\x00\x13\x00\x03\x00\x39\x00\x05\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x12\x00\x41\x00\x1e\x00\x36\x00\x01\x00\x41\x00\x18\x00\x41\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x0b\x00\x38\x00\x0d\x00\x10\x00\x41\x00\x40\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x16\x00\x37\x00\x1b\x00\x39\x00\x01\x00\x01\x00\x02\x00\x14\x00\x01\x00\x02\x00\x10\x00\x41\x00\x42\x00\x13\x00\x0b\x00\x15\x00\x01\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x2e\x00\x12\x00\x13\x00\x1e\x00\x12\x00\x0b\x00\x0c\x00\x18\x00\x2c\x00\x24\x00\x25\x00\x39\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x43\x00\x01\x00\x02\x00\x41\x00\x01\x00\x02\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x01\x00\x07\x00\x08\x00\x04\x00\x10\x00\x12\x00\x3e\x00\x13\x00\x12\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x12\x00\x13\x00\x14\x00\x1e\x00\x01\x00\x01\x00\x18\x00\x04\x00\x01\x00\x24\x00\x25\x00\x04\x00\x27\x00\x28\x00\x29\x00\x0b\x00\x10\x00\x0d\x00\x0e\x00\x01\x00\x43\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x37\x00\x0b\x00\x39\x00\x0d\x00\x0e\x00\x10\x00\x01\x00\x10\x00\x13\x00\x0b\x00\x41\x00\x42\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x0b\x00\x0c\x00\x10\x00\x1e\x00\x01\x00\x01\x00\x01\x00\x04\x00\x10\x00\x24\x00\x25\x00\x10\x00\x27\x00\x28\x00\x29\x00\x0b\x00\x0b\x00\x0d\x00\x0e\x00\x07\x00\x08\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x37\x00\x10\x00\x13\x00\x43\x00\x01\x00\x02\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x1b\x00\x1e\x00\x14\x00\x3a\x00\x01\x00\x3c\x00\x0f\x00\x24\x00\x25\x00\x12\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x0b\x00\x18\x00\x0d\x00\x0e\x00\x3b\x00\x2e\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x10\x00\x07\x00\x08\x00\x13\x00\x43\x00\x39\x00\x01\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x41\x00\x42\x00\x41\x00\x1e\x00\x10\x00\x0b\x00\x01\x00\x0d\x00\x0e\x00\x24\x00\x25\x00\x01\x00\x27\x00\x28\x00\x29\x00\x1d\x00\x0b\x00\x01\x00\x02\x00\x01\x00\x01\x00\x0b\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x01\x00\x02\x00\x0b\x00\x0b\x00\x0d\x00\x0e\x00\x43\x00\x12\x00\x13\x00\x14\x00\x15\x00\x41\x00\x42\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x40\x00\x01\x00\x02\x00\x0f\x00\x07\x00\x08\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\x43\x00\x01\x00\x36\x00\x43\x00\x41\x00\x41\x00\x41\x00\x1d\x00\x1b\x00\x01\x00\x02\x00\x0b\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\x1b\x00\x20\x00\x38\x00\x1d\x00\x1b\x00\x1b\x00\x41\x00\x14\x00\x1b\x00\x01\x00\x02\x00\x1b\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x10\x00\x1b\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\x15\x00\x15\x00\x1b\x00\x1b\x00\x12\x00\x1b\x00\x11\x00\x14\x00\x1b\x00\x01\x00\x02\x00\x1b\x00\x0f\x00\x3c\x00\x2d\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x40\x00\x0f\x00\x08\x00\x1b\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1b\x00\x01\x00\x02\x00\x1b\x00\x0f\x00\x3a\x00\x3c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x11\x00\x23\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x11\x00\x1c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x14\x00\x01\x00\x02\x00\x14\x00\x0f\x00\x11\x00\x1c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x41\x00\x1c\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1c\x00\x01\x00\x02\x00\x3c\x00\x0f\x00\x14\x00\x14\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x3c\x00\x01\x00\x02\x00\x3a\x00\x0f\x00\x14\x00\x14\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x14\x00\x01\x00\x02\x00\x3c\x00\x0f\x00\x14\x00\x14\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x11\x00\x01\x00\x02\x00\x11\x00\x0f\x00\x06\x00\x05\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x07\x00\x01\x00\x02\x00\x09\x00\x0f\x00\x01\x00\x01\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x01\x00\x02\x00\x00\x00\x0f\x00\x00\x00\x09\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x01\x00\x02\x00\x06\x00\x0f\x00\x09\x00\x00\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x09\x00\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\xff\xff\x01\x00\x02\x00\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x0f\x00\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x01\x00\x02\x00\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x12\x00\x18\x00\x01\x00\x02\x00\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\x01\x00\x02\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\xff\xff\x18\x00\xff\xff\x01\x00\x02\x00\x01\x00\x02\x00\x01\x00\x02\x00\xff\xff\x12\x00\x13\x00\x14\x00\x15\x00\xff\xff\xff\xff\x18\x00\x0f\x00\xff\xff\xff\xff\x12\x00\xff\xff\x12\x00\x13\x00\x12\x00\x13\x00\x18\x00\xff\xff\x18\x00\xff\xff\x18\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\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"# happyTable :: HappyAddr -happyTable = HappyA# "\x00\x00\x40\x00\xde\x00\x84\x00\x25\x00\x85\x00\x6a\x00\x9b\x00\x26\x00\x27\x00\x28\x00\x29\x00\x59\x00\x59\x00\x8a\x00\x2a\x00\x53\x00\xbc\x00\x96\x00\x17\x00\x18\x00\x2b\x00\x2c\x00\x83\x00\x2e\x00\x2f\x00\x30\x00\x80\x00\x59\x00\x68\x00\x4c\x00\xad\x00\x17\x00\x1a\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x4d\x00\x81\x00\x98\x00\x54\x00\x54\x00\x54\x00\x24\x00\x54\x00\x9c\x00\x25\x00\x3c\x00\x3d\x00\xff\xff\x26\x00\x27\x00\x28\x00\x29\x00\x55\x00\x95\x00\x54\x00\x2a\x00\x3c\x00\x3c\x00\x3c\x00\xae\x00\x3c\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\xff\xff\x31\x00\x83\x00\x97\x00\x94\x00\x3c\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xbc\x00\x38\x00\x39\x00\x99\x00\xff\xff\x9a\x00\x3a\x00\xdc\x00\x3b\x00\x24\x00\x3c\x00\x3d\x00\x25\x00\x17\x00\x18\x00\x91\x00\x26\x00\x27\x00\x28\x00\x29\x00\x8e\x00\x17\x00\x18\x00\x2a\x00\x17\x00\x18\x00\x84\x00\x47\x00\x85\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x7e\x00\x31\x00\x8d\x00\x8e\x00\x88\x00\x4e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x59\x00\x38\x00\x39\x00\x6a\x00\x6b\x00\xee\x00\x3a\x00\xef\x00\x3b\x00\x24\x00\x3c\x00\x3d\x00\x25\x00\x17\x00\x18\x00\x87\x00\x26\x00\x27\x00\x28\x00\x29\x00\x53\x00\x17\x00\x18\x00\x2a\x00\xff\xff\xb3\x00\x82\x00\x8a\x00\xb4\x00\x2b\x00\x2c\x00\xc7\x00\x2e\x00\x2f\x00\x30\x00\x7e\x00\x5a\x00\x5b\x00\x5a\x00\x77\x00\x4e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x88\x00\x38\x00\x39\x00\x54\x00\xff\xff\x81\x00\x17\x00\x18\x00\xff\xff\x40\x00\x3c\x00\x3d\x00\x25\x00\x55\x00\xcc\xff\x4e\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1a\x00\x3c\x00\x4f\x00\x2a\x00\x50\x00\x51\x00\x3e\x00\x17\x00\x18\x00\x2b\x00\x2c\x00\x3c\x00\x2e\x00\x2f\x00\x30\x00\x80\x00\x5a\x00\x6c\x00\x91\x00\x17\x00\xff\xff\x1a\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x4d\x00\x68\x00\x17\x00\x18\x00\xff\xff\x24\x00\xca\x00\xcc\xff\x25\x00\xc9\x00\x3c\x00\x3d\x00\x26\x00\x27\x00\x28\x00\x29\x00\x1a\x00\x1b\x00\x45\x00\x2a\x00\xc8\x00\xc1\x00\x43\x00\xc0\x00\x4e\x00\x2b\x00\x2c\x00\x4e\x00\x2e\x00\x2f\x00\x30\x00\x7a\x00\x17\x00\x18\x00\x4f\x00\xbf\x00\x55\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x4e\x00\x38\x00\x39\x00\x1a\x00\x46\x00\x40\x00\xbe\x00\x78\x00\x25\x00\x43\x00\x3c\x00\x3d\x00\x26\x00\x27\x00\x28\x00\x29\x00\x4e\x00\xbc\x00\xbd\x00\x2a\x00\xbb\x00\xa9\x00\xb0\x00\x56\x00\x57\x00\x2b\x00\x2c\x00\x4e\x00\x2e\x00\x2f\x00\x30\x00\xa6\x00\x17\x00\x18\x00\x7b\x00\x7c\x00\x4e\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xb1\x00\x38\x00\xa7\x00\x1a\x00\x9f\x00\x40\x00\xa5\x00\xe2\x00\x25\x00\x43\x00\x3c\x00\x3d\x00\x26\x00\x27\x00\x28\x00\x29\x00\x83\x00\xe0\x00\xdf\x00\x2a\x00\xda\x00\xd9\x00\xd7\x00\x17\x00\x18\x00\x2b\x00\x2c\x00\x4e\x00\x2e\x00\x2f\x00\x30\x00\x80\x00\x17\x00\x18\x00\x56\x00\x79\x00\xd6\x00\x1a\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\xb6\x00\xfe\x00\xd1\x00\x1a\x00\x9e\x00\x40\x00\xcf\x00\x53\x00\x25\x00\x43\x00\x3c\x00\x3d\x00\x26\x00\x27\x00\x28\x00\x29\x00\x53\x00\xcd\x00\xc5\x00\x2a\x00\x17\x00\xfd\x00\xfb\x00\xf9\x00\x4e\x00\x2b\x00\x2c\x00\xc3\x00\x2e\x00\x2f\x00\x30\x00\x4f\x00\xf7\x00\x50\x00\x8f\x00\xec\x00\xf5\x00\x54\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x17\x00\x18\x00\xf6\x00\x54\x00\x55\x00\xf4\x00\xf2\x00\xe8\x00\x17\x00\x18\x00\x3c\x00\x3d\x00\x3c\x00\x55\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x42\x00\x19\x00\x43\x00\x3c\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x17\x00\x18\x00\x4e\x00\x4e\x00\xe7\x00\xe6\x00\x0b\x01\x08\x01\x06\x01\xb0\x00\xae\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa3\x00\x19\x00\x48\x00\x49\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x4a\x00\x17\x00\x18\x00\x4e\x00\x4e\x00\x0a\x01\x09\x01\x05\x01\x03\x01\x01\x01\xa7\x00\xd3\x00\x19\x00\x48\x00\xb9\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x4a\x00\x17\x00\x18\x00\xff\x00\x13\x01\x12\x01\x17\x01\x15\x01\x11\x01\x10\x01\x0f\x01\x0c\x01\x19\x00\x48\x00\xb7\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x4a\x00\x17\x00\x18\x00\x1e\x01\x1d\x01\x19\x01\x18\x01\x22\x01\x24\x01\x23\x01\x26\x01\x28\x01\x19\x00\x48\x00\xaa\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xab\x00\x17\x00\x18\x00\x68\x00\x65\x00\x72\x00\x66\x00\x71\x00\x70\x00\x6f\x00\x6e\x00\xca\x00\x19\x00\x4b\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x4a\x00\x17\x00\x18\x00\x6d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x92\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x3d\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x85\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x8b\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x85\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x76\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x75\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x74\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x73\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xb8\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xb4\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xa9\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xe4\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xe3\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xe2\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xdc\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xda\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xd7\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xd4\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xd2\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xd1\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xcf\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xcd\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xcb\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xfb\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xf9\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xf7\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xf0\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xef\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xec\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xea\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xe9\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xe8\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x06\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x03\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x01\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xff\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x15\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x13\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x0d\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x0c\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x1b\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x20\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x1f\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x24\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x26\x01\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x41\x00\x20\x00\x00\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\xa2\x00\x20\x00\x00\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x9d\x00\x20\x00\x00\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x9c\x00\x20\x00\x00\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\xe0\x00\x20\x00\x00\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x1e\x01\x20\x00\x00\x00\x00\x00\x19\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x1a\x01\x20\x00\x17\x00\x18\x00\x19\x00\x00\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x40\x00\x19\x01\x20\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xb5\x00\x00\x00\x43\x00\x17\x00\x18\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xa1\x00\x00\x00\x43\x00\x17\x00\x18\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xf2\x00\x00\x00\x43\x00\x17\x00\x18\x00\x00\x00\x4e\x00\x00\x00\x1a\x00\x1b\x00\x1c\x00\x44\x00\x00\x00\x4f\x00\x43\x00\x50\x00\x7d\x00\x1a\x00\x1b\x00\x1c\x00\xa0\x00\x4e\x00\x00\x00\x43\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x4f\x00\x4e\x00\x50\x00\xc5\x00\x4f\x00\x00\x00\x50\x00\xc3\x00\x4f\x00\x00\x00\x50\x00\xc1\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x00\x00\x63\x00\x64\x00\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyTable = HappyA# "\x00\x00\x43\x00\xae\x00\x75\x00\x28\x00\x96\x00\xf5\x00\xc0\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x1a\x00\x1b\x00\x5d\x00\x2d\x00\x1a\x00\x1b\x00\x3f\x00\x75\x00\x51\x00\x2e\x00\x2f\x00\x5e\x00\x31\x00\x32\x00\x33\x00\x93\x00\x5c\x00\x4a\x00\x59\x00\x5a\x00\xcf\x00\x91\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x27\x00\xc1\x00\xc6\x00\x28\x00\xaf\x00\xc7\x00\x94\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x3f\x00\x40\x00\xff\xff\x2d\x00\xff\xff\x5c\x00\x5d\x00\x51\x00\x57\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x80\x00\x34\x00\x5c\x00\x9d\x00\xa7\x00\x5d\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3f\x00\x3b\x00\x14\x01\x3c\x00\x97\x00\x51\x00\x98\x00\x3d\x00\x57\x00\x3e\x00\x27\x00\x3f\x00\x40\x00\x28\x00\x97\x00\x9b\x00\x98\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x57\x00\x56\x00\x96\x00\x2d\x00\x75\x00\x5c\x00\x3f\x00\x76\x00\xa9\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\xac\x00\x34\x00\xad\x00\x56\x00\x3f\x00\xcf\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xf3\x00\x3b\x00\xe6\x00\x3c\x00\x57\x00\x1a\x00\x1b\x00\x3d\x00\x57\x00\x3e\x00\x27\x00\x3f\x00\x40\x00\x28\x00\x77\x00\x58\x00\x78\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x57\x00\x1d\x00\x3f\x00\x2d\x00\x73\x00\x51\x00\x3f\x00\x41\x00\x3f\x00\x2e\x00\x2f\x00\x58\x00\x31\x00\x32\x00\x33\x00\x52\x00\x61\x00\x58\x00\x56\x00\x3f\x00\x1a\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xab\x00\x3b\x00\xe4\x00\x3c\x00\x51\x00\x1a\x00\x1b\x00\xa8\x00\x1a\x00\x1b\x00\x43\x00\x3f\x00\x40\x00\x28\x00\x8d\x00\xbf\xff\x51\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x57\x00\x1d\x00\x49\x00\x2d\x00\xa1\x00\x8e\x00\x8f\x00\x46\x00\xaa\x00\x2e\x00\x2f\x00\x58\x00\x31\x00\x32\x00\x33\x00\x93\x00\xff\xff\x1a\x00\x1b\x00\x3f\x00\x1a\x00\x1b\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x1a\x00\x1b\x00\x75\x00\x61\x00\x62\x00\x88\x00\x27\x00\x9d\x00\xbf\xff\x28\x00\x91\x00\x3f\x00\x40\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x1d\x00\x1e\x00\x48\x00\x2d\x00\x75\x00\x51\x00\x46\x00\x7c\x00\x75\x00\x2e\x00\x2f\x00\x7a\x00\x31\x00\x32\x00\x33\x00\x52\x00\xa4\x00\x53\x00\x54\x00\x51\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x51\x00\x3b\x00\x52\x00\x3c\x00\x53\x00\xa2\x00\x43\x00\x51\x00\xa1\x00\x28\x00\x8b\x00\x3f\x00\x40\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x59\x00\x8c\x00\xa0\x00\x2d\x00\x75\x00\x51\x00\x51\x00\xd0\x00\x9b\x00\x2e\x00\x2f\x00\x9a\x00\x31\x00\x32\x00\x33\x00\x52\x00\xc4\x00\x53\x00\x90\x00\x61\x00\x79\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x43\x00\x3b\x00\x56\x00\x28\x00\xff\xff\x1a\x00\x1b\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x3f\x00\x40\x00\xe2\x00\x2d\x00\x95\x00\x05\x01\x51\x00\x06\x01\x4f\x00\x2e\x00\x2f\x00\x1d\x00\x31\x00\x32\x00\x33\x00\x93\x00\x52\x00\x50\x00\x53\x00\xe4\x00\x94\x00\x57\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x43\x00\x61\x00\xd1\x00\x28\x00\xff\xff\x58\x00\x51\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x3f\x00\x40\x00\x3f\x00\x2d\x00\x8b\x00\x52\x00\x51\x00\x53\x00\xe2\x00\x2e\x00\x2f\x00\x51\x00\x31\x00\x32\x00\x33\x00\x8a\x00\xc3\x00\x1a\x00\x1b\x00\x51\x00\x51\x00\xc1\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x1a\x00\x1b\x00\x52\x00\xba\x00\x53\x00\xe0\x00\xff\xff\x1d\x00\x1e\x00\x1f\x00\x47\x00\x3f\x00\x40\x00\x46\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1a\x00\x1a\x00\x1b\x00\x1c\x00\x61\x00\xdf\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\xb6\x00\x1c\x00\x4b\x00\x4c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1a\x00\x1b\x00\xff\xff\x51\x00\x73\x00\xff\xff\x3f\x00\x3f\x00\x3f\x00\xdc\x00\xdb\x00\x1a\x00\x1b\x00\xea\x00\x1c\x00\x4b\x00\xcc\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1c\x00\x4b\x00\xca\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1a\x00\x1b\x00\xda\x00\xd9\x00\x61\x00\xd8\x00\xd4\x00\xd3\x00\x3f\x00\xcf\x00\xd0\x00\x1a\x00\x1b\x00\xce\x00\x1c\x00\x4b\x00\xbd\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xbe\x00\x1c\x00\x4e\x00\xc3\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4d\x00\x1a\x00\x1b\x00\xbc\x00\xba\x00\xb9\x00\xb8\x00\x96\x00\xf9\x00\xf6\x00\xf7\x00\xf1\x00\xa5\x00\x1b\x00\xf0\x00\x1c\x00\xee\x00\xed\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x40\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x98\x00\xe9\x00\x1a\x00\x1b\x00\x1a\x00\x1c\x00\x14\x01\x13\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x9e\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x98\x00\x11\x01\x1a\x00\x1b\x00\x0f\x01\x1c\x00\x0d\x01\x03\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x87\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x86\x00\x0c\x01\x1a\x00\x1b\x00\x0b\x01\x1c\x00\x09\x01\xff\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x85\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x84\x00\xfe\x00\x1a\x00\x1b\x00\xfd\x00\x1c\x00\x22\x01\x1a\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xcb\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xc7\x00\x21\x01\x1a\x00\x1b\x00\x20\x01\x1c\x00\x1f\x01\x18\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xbc\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xfb\x00\x1d\x01\x1a\x00\x1b\x00\x1c\x01\x1c\x00\x3f\x00\x2e\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xfa\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xf9\x00\x2c\x01\x1a\x00\x1b\x00\x2a\x01\x1c\x00\x29\x01\x28\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xf3\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xf1\x00\x27\x01\x1a\x00\x1b\x00\x26\x01\x1c\x00\x23\x01\x35\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xee\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xeb\x00\x34\x01\x1a\x00\x1b\x00\x39\x01\x1c\x00\x3b\x01\x3d\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xe9\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xe7\x00\x3a\x01\x1a\x00\x1b\x00\x3f\x01\x1c\x00\x71\x00\x73\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xe6\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xdd\x00\x70\x00\x1a\x00\x1b\x00\x5f\x00\x1c\x00\x83\x00\x82\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xdc\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x11\x01\x81\x00\x1a\x00\x1b\x00\x7f\x00\x1c\x00\x7e\x00\xd6\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0f\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0d\x01\x7d\x00\x1a\x00\x1b\x00\x7b\x00\x1c\x00\xd5\x00\xde\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x07\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x06\x01\xd4\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x03\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x01\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1d\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1a\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x18\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x16\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x15\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2c\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2a\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x23\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x32\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2f\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2e\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x37\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x36\x01\x00\x00\x1a\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3b\x01\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3d\x01\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x44\x00\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xb5\x00\x23\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xb0\x00\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xaf\x00\x23\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\xf7\x00\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x35\x01\x23\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x31\x01\x23\x00\x1c\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x43\x00\x30\x01\x23\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x45\x00\x00\x00\x46\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xc8\x00\x1d\x00\x46\x00\x1a\x00\x1b\x00\x00\x00\x00\x00\xc9\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\xb4\x00\x00\x00\x46\x00\x1a\x00\x1b\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x09\x01\x00\x00\x46\x00\x00\x00\x1a\x00\x1b\x00\x1a\x00\x1b\x00\x1a\x00\x1b\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\xb3\x00\x00\x00\x00\x00\x46\x00\xa4\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x1d\x00\xb2\x00\x1d\x00\xb1\x00\x50\x00\x00\x00\x46\x00\x00\x00\x46\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (21, 108) [ - (21 , happyReduce_21), - (22 , happyReduce_22), - (23 , happyReduce_23), +happyReduceArr = Happy_Data_Array.array (24, 121) [ (24 , happyReduce_24), (25 , happyReduce_25), (26 , happyReduce_26), @@ -348,129 +369,152 @@ happyReduceArr = Happy_Data_Array.array (21, 108) [ (105 , happyReduce_105), (106 , happyReduce_106), (107 , happyReduce_107), - (108 , happyReduce_108) + (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) ] -happy_n_terms = 62 :: Prelude.Int -happy_n_nonterms = 24 :: Prelude.Int +happy_n_terms = 68 :: Prelude.Int +happy_n_nonterms = 27 :: Prelude.Int -happyReduce_21 = happySpecReduce_1 0# happyReduction_21 -happyReduction_21 happy_x_1 +happyReduce_24 = happySpecReduce_1 0# happyReduction_24 +happyReduction_24 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn24 + happyIn27 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), ((\(PT _ (TL s)) -> s) happy_var_1)) )} -happyReduce_22 = happySpecReduce_1 1# happyReduction_22 -happyReduction_22 happy_x_1 +happyReduce_25 = happySpecReduce_1 1# happyReduction_25 +happyReduction_25 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn25 + happyIn28 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.VarIdent (tokenText happy_var_1)) )} -happyReduce_23 = happySpecReduce_1 2# happyReduction_23 -happyReduction_23 happy_x_1 +happyReduce_26 = happySpecReduce_1 2# happyReduction_26 +happyReduction_26 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn26 + happyIn29 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.HoleIdent (tokenText happy_var_1)) )} -happyReduce_24 = happySpecReduce_2 3# happyReduction_24 -happyReduction_24 happy_x_2 +happyReduce_27 = happySpecReduce_2 3# happyReduction_27 +happyReduction_27 happy_x_2 + happy_x_1 + = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> + case happyOut35 happy_x_2 of { (HappyWrap35 happy_var_2) -> + happyIn30 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.Module (fst happy_var_1) (snd happy_var_1) (snd happy_var_2)) + )}} + +happyReduce_28 = happySpecReduce_1 4# happyReduction_28 +happyReduction_28 happy_x_1 + = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> + happyIn31 + ((fst happy_var_1, (:[]) (snd happy_var_1)) + )} + +happyReduce_29 = happySpecReduce_2 4# happyReduction_29 +happyReduction_29 happy_x_2 happy_x_1 = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - happyIn27 - ((fst happy_var_1, Language.Rzk.Syntax.Abs.Module (fst happy_var_1) (snd happy_var_1) (snd happy_var_2)) + happyIn31 + ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_25 = happySpecReduce_3 4# happyReduction_25 -happyReduction_25 happy_x_3 +happyReduce_30 = happySpecReduce_3 5# happyReduction_30 +happyReduction_30 happy_x_3 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut29 happy_x_2 of { (HappyWrap29 happy_var_2) -> - happyIn28 + case happyOut33 happy_x_2 of { (HappyWrap33 happy_var_2) -> + happyIn32 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.LanguageDecl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_26 = happySpecReduce_1 5# happyReduction_26 -happyReduction_26 happy_x_1 +happyReduce_31 = happySpecReduce_1 6# happyReduction_31 +happyReduction_31 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn29 + happyIn33 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Rzk1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_27 = happyReduce 5# 6# happyReduction_27 -happyReduction_27 (happy_x_5 `HappyStk` - happy_x_4 `HappyStk` +happyReduce_32 = happyReduce 4# 7# happyReduction_32 +happyReduction_32 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> - case happyOut24 happy_x_4 of { (HappyWrap24 happy_var_4) -> - happyIn30 + case happyOut27 happy_x_2 of { (HappyWrap27 happy_var_2) -> + case happyOut27 happy_x_4 of { (HappyWrap27 happy_var_4) -> + happyIn34 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_28 = happySpecReduce_3 6# happyReduction_28 -happyReduction_28 happy_x_3 - happy_x_2 +happyReduce_33 = happySpecReduce_2 7# happyReduction_33 +happyReduction_33 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut24 happy_x_2 of { (HappyWrap24 happy_var_2) -> - happyIn30 + case happyOut27 happy_x_2 of { (HappyWrap27 happy_var_2) -> + happyIn34 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandUnsetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_29 = happyReduce 5# 6# happyReduction_29 -happyReduction_29 (happy_x_5 `HappyStk` - happy_x_4 `HappyStk` +happyReduce_34 = happyReduce 4# 7# happyReduction_34 +happyReduction_34 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn30 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn34 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCheck (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_30 = happySpecReduce_3 6# happyReduction_30 -happyReduction_30 happy_x_3 - happy_x_2 +happyReduce_35 = happySpecReduce_2 7# happyReduction_35 +happyReduction_35 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - happyIn30 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + happyIn34 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_31 = happySpecReduce_3 6# happyReduction_31 -happyReduction_31 happy_x_3 - happy_x_2 +happyReduce_36 = happySpecReduce_2 7# happyReduction_36 +happyReduction_36 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - happyIn30 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + happyIn34 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeWHNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_32 = happySpecReduce_3 6# happyReduction_32 -happyReduction_32 happy_x_3 - happy_x_2 +happyReduce_37 = happySpecReduce_2 7# happyReduction_37 +happyReduction_37 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - happyIn30 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + happyIn34 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandComputeNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_33 = happyReduce 6# 6# happyReduction_33 -happyReduction_33 (happy_x_6 `HappyStk` +happyReduce_38 = happyReduce 6# 7# happyReduction_38 +happyReduction_38 (happy_x_6 `HappyStk` happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` @@ -478,29 +522,86 @@ happyReduction_33 (happy_x_6 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut35 happy_x_3 of { (HappyWrap35 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - happyIn30 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5)) - ) `HappyStk` happyRest}}}} + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> + case happyOut41 happy_x_4 of { (HappyWrap41 happy_var_4) -> + case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6)) + ) `HappyStk` happyRest}}}}} -happyReduce_34 = happyReduce 5# 6# happyReduction_34 -happyReduction_34 (happy_x_5 `HappyStk` +happyReduce_39 = happyReduce 5# 7# happyReduction_39 +happyReduction_39 (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 { happy_var_1 -> - case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn30 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5)) + ) `HappyStk` happyRest}}}} + +happyReduce_40 = happyReduce 4# 7# happyReduction_40 +happyReduction_40 (happy_x_4 `HappyStk` + happy_x_3 `HappyStk` + happy_x_2 `HappyStk` + happy_x_1 `HappyStk` + happyRest) + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandAssume (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) + ) `HappyStk` happyRest}}} + +happyReduce_41 = happyReduce 4# 7# happyReduction_41 +happyReduction_41 (happy_x_4 `HappyStk` + happy_x_3 `HappyStk` + happy_x_2 `HappyStk` + happy_x_1 `HappyStk` + happyRest) + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariable (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_35 = happyReduce 8# 6# happyReduction_35 -happyReduction_35 (happy_x_8 `HappyStk` +happyReduce_42 = happyReduce 4# 7# happyReduction_42 +happyReduction_42 (happy_x_4 `HappyStk` + happy_x_3 `HappyStk` + happy_x_2 `HappyStk` + happy_x_1 `HappyStk` + happyRest) + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandVariables (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) + ) `HappyStk` happyRest}}} + +happyReduce_43 = happyReduce 6# 7# happyReduction_43 +happyReduction_43 (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 { happy_var_1 -> + case happyOut37 happy_x_2 of { (HappyWrap37 happy_var_2) -> + case happyOut35 happy_x_4 of { (HappyWrap35 happy_var_4) -> + case happyOut37 happy_x_6 of { (HappyWrap37 happy_var_6) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandSection (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6)) + ) `HappyStk` happyRest}}}} + +happyReduce_44 = happyReduce 8# 7# happyReduction_44 +happyReduction_44 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -510,16 +611,17 @@ happyReduction_35 (happy_x_8 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut35 happy_x_3 of { (HappyWrap35 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut46 happy_x_7 of { (HappyWrap46 happy_var_7) -> - happyIn30 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7)) - ) `HappyStk` happyRest}}}}} + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> + case happyOut41 happy_x_4 of { (HappyWrap41 happy_var_4) -> + case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> + case happyOut52 happy_x_8 of { (HappyWrap52 happy_var_8) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8)) + ) `HappyStk` happyRest}}}}}} -happyReduce_36 = happyReduce 7# 6# happyReduction_36 -happyReduction_36 (happy_x_7 `HappyStk` +happyReduce_45 = happyReduce 7# 7# happyReduction_45 +happyReduction_45 (happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` happy_x_4 `HappyStk` @@ -528,15 +630,16 @@ happyReduction_36 (happy_x_7 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - case happyOut46 happy_x_6 of { (HappyWrap46 happy_var_6) -> - happyIn30 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6)) - ) `HappyStk` happyRest}}}} + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7)) + ) `HappyStk` happyRest}}}}} -happyReduce_37 = happyReduce 8# 6# happyReduction_37 -happyReduction_37 (happy_x_8 `HappyStk` +happyReduce_46 = happyReduce 8# 7# happyReduction_46 +happyReduction_46 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -546,16 +649,17 @@ happyReduction_37 (happy_x_8 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut35 happy_x_3 of { (HappyWrap35 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut46 happy_x_7 of { (HappyWrap46 happy_var_7) -> - happyIn30 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7)) - ) `HappyStk` happyRest}}}}} + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> + case happyOut41 happy_x_4 of { (HappyWrap41 happy_var_4) -> + case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> + case happyOut52 happy_x_8 of { (HappyWrap52 happy_var_8) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_4) (snd happy_var_6) (snd happy_var_8)) + ) `HappyStk` happyRest}}}}}} -happyReduce_38 = happyReduce 7# 6# happyReduction_38 -happyReduction_38 (happy_x_7 `HappyStk` +happyReduce_47 = happyReduce 7# 7# happyReduction_47 +happyReduction_47 (happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` happy_x_4 `HappyStk` @@ -564,94 +668,125 @@ happyReduction_38 (happy_x_7 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - case happyOut46 happy_x_6 of { (HappyWrap46 happy_var_6) -> - happyIn30 - ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6)) - ) `HappyStk` happyRest}}}} + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut36 happy_x_3 of { (HappyWrap36 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> + happyIn34 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7)) + ) `HappyStk` happyRest}}}}} -happyReduce_39 = happySpecReduce_0 7# happyReduction_39 -happyReduction_39 = happyIn31 +happyReduce_48 = happySpecReduce_0 8# happyReduction_48 +happyReduction_48 = happyIn35 ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, []) ) -happyReduce_40 = happySpecReduce_2 7# happyReduction_40 -happyReduction_40 happy_x_2 +happyReduce_49 = happySpecReduce_3 8# happyReduction_49 +happyReduction_49 happy_x_3 + happy_x_2 happy_x_1 - = case happyOut30 happy_x_1 of { (HappyWrap30 happy_var_1) -> - case happyOut31 happy_x_2 of { (HappyWrap31 happy_var_2) -> - happyIn31 - ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2)) + = case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> + case happyOut35 happy_x_3 of { (HappyWrap35 happy_var_3) -> + happyIn35 + ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_41 = happySpecReduce_1 8# happyReduction_41 -happyReduction_41 happy_x_1 +happyReduce_50 = happyReduce 4# 9# happyReduction_50 +happyReduction_50 (happy_x_4 `HappyStk` + happy_x_3 `HappyStk` + happy_x_2 `HappyStk` + happy_x_1 `HappyStk` + happyRest) + = case happyOutTok happy_x_1 of { happy_var_1 -> + case happyOut31 happy_x_3 of { (HappyWrap31 happy_var_3) -> + happyIn36 + ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.DeclUsedVars (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3)) + ) `HappyStk` happyRest}} + +happyReduce_51 = happySpecReduce_0 9# happyReduction_51 +happyReduction_51 = happyIn36 + ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.noDeclUsedVars Language.Rzk.Syntax.Abs.BNFC'NoPosition) + ) + +happyReduce_52 = happySpecReduce_0 10# happyReduction_52 +happyReduction_52 = happyIn37 + ((Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoSectionName Language.Rzk.Syntax.Abs.BNFC'NoPosition) + ) + +happyReduce_53 = happySpecReduce_1 10# happyReduction_53 +happyReduction_53 happy_x_1 + = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> + happyIn37 + ((fst happy_var_1, Language.Rzk.Syntax.Abs.SomeSectionName (fst happy_var_1) (snd happy_var_1)) + )} + +happyReduce_54 = happySpecReduce_1 11# happyReduction_54 +happyReduction_54 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn32 + happyIn38 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternWildcard (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_42 = happySpecReduce_1 8# happyReduction_42 -happyReduction_42 happy_x_1 - = case happyOut25 happy_x_1 of { (HappyWrap25 happy_var_1) -> - happyIn32 +happyReduce_55 = happySpecReduce_1 11# happyReduction_55 +happyReduction_55 happy_x_1 + = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> + happyIn38 ((fst happy_var_1, Language.Rzk.Syntax.Abs.PatternVar (fst happy_var_1) (snd happy_var_1)) )} -happyReduce_43 = happyReduce 5# 8# happyReduction_43 -happyReduction_43 (happy_x_5 `HappyStk` +happyReduce_56 = happyReduce 5# 11# happyReduction_56 +happyReduction_56 (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 { happy_var_1 -> - case happyOut32 happy_x_2 of { (HappyWrap32 happy_var_2) -> - case happyOut32 happy_x_4 of { (HappyWrap32 happy_var_4) -> - happyIn32 + case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> + case happyOut38 happy_x_4 of { (HappyWrap38 happy_var_4) -> + happyIn38 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.PatternPair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_44 = happySpecReduce_1 9# happyReduction_44 -happyReduction_44 happy_x_1 - = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> - happyIn33 +happyReduce_57 = happySpecReduce_1 12# happyReduction_57 +happyReduction_57 happy_x_1 + = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> + happyIn39 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_45 = happySpecReduce_2 9# happyReduction_45 -happyReduction_45 happy_x_2 +happyReduce_58 = happySpecReduce_2 12# happyReduction_58 +happyReduction_58 happy_x_2 happy_x_1 - = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> - case happyOut33 happy_x_2 of { (HappyWrap33 happy_var_2) -> - happyIn33 + = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> + case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> + happyIn39 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_46 = happySpecReduce_1 10# happyReduction_46 -happyReduction_46 happy_x_1 - = case happyOut32 happy_x_1 of { (HappyWrap32 happy_var_1) -> - happyIn34 +happyReduce_59 = happySpecReduce_1 13# happyReduction_59 +happyReduction_59 happy_x_1 + = case happyOut38 happy_x_1 of { (HappyWrap38 happy_var_1) -> + happyIn40 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamPattern (fst happy_var_1) (snd happy_var_1)) )} -happyReduce_47 = happyReduce 5# 10# happyReduction_47 -happyReduction_47 (happy_x_5 `HappyStk` +happyReduce_60 = happyReduce 5# 13# happyReduction_60 +happyReduction_60 (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 { happy_var_1 -> - case happyOut33 happy_x_2 of { (HappyWrap33 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn34 + case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn40 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_48 = happyReduce 7# 10# happyReduction_48 -happyReduction_48 (happy_x_7 `HappyStk` +happyReduce_61 = happyReduce 7# 13# happyReduction_61 +happyReduction_61 (happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` happy_x_4 `HappyStk` @@ -660,79 +795,79 @@ happyReduction_48 (happy_x_7 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut32 happy_x_2 of { (HappyWrap32 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - case happyOut46 happy_x_6 of { (HappyWrap46 happy_var_6) -> - happyIn34 + case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> + happyIn40 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamPatternShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6)) ) `HappyStk` happyRest}}}} -happyReduce_49 = happySpecReduce_1 11# happyReduction_49 -happyReduction_49 happy_x_1 - = case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> - happyIn35 +happyReduce_62 = happySpecReduce_1 14# happyReduction_62 +happyReduction_62 happy_x_1 + = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> + happyIn41 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_50 = happySpecReduce_2 11# happyReduction_50 -happyReduction_50 happy_x_2 +happyReduce_63 = happySpecReduce_2 14# happyReduction_63 +happyReduction_63 happy_x_2 happy_x_1 - = case happyOut34 happy_x_1 of { (HappyWrap34 happy_var_1) -> - case happyOut35 happy_x_2 of { (HappyWrap35 happy_var_2) -> - happyIn35 + = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> + case happyOut41 happy_x_2 of { (HappyWrap41 happy_var_2) -> + happyIn41 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_51 = happySpecReduce_1 12# happyReduction_51 -happyReduction_51 happy_x_1 - = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> - happyIn36 +happyReduce_64 = happySpecReduce_1 15# happyReduction_64 +happyReduction_64 happy_x_1 + = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> + happyIn42 ((fst happy_var_1, Language.Rzk.Syntax.Abs.ParamType (fst happy_var_1) (snd happy_var_1)) )} -happyReduce_52 = happyReduce 5# 12# happyReduction_52 -happyReduction_52 (happy_x_5 `HappyStk` +happyReduce_65 = happyReduce 5# 15# happyReduction_65 +happyReduction_65 (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 { happy_var_1 -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn36 + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn42 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamWildcardType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_4)) ) `HappyStk` happyRest}} -happyReduce_53 = happyReduce 5# 12# happyReduction_53 -happyReduction_53 (happy_x_5 `HappyStk` +happyReduce_66 = happyReduce 5# 15# happyReduction_66 +happyReduction_66 (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 { happy_var_1 -> - case happyOut32 happy_x_2 of { (HappyWrap32 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn36 + case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn42 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamVarType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_54 = happyReduce 5# 12# happyReduction_54 -happyReduction_54 (happy_x_5 `HappyStk` +happyReduce_67 = happyReduce 5# 15# happyReduction_67 +happyReduction_67 (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 { happy_var_1 -> - case happyOut25 happy_x_2 of { (HappyWrap25 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn36 + case happyOut28 happy_x_2 of { (HappyWrap28 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn42 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.paramVarType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_55 = happyReduce 9# 12# happyReduction_55 -happyReduction_55 (happy_x_9 `HappyStk` +happyReduce_68 = happyReduce 9# 15# happyReduction_68 +happyReduction_68 (happy_x_9 `HappyStk` happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` @@ -743,15 +878,15 @@ happyReduction_55 (happy_x_9 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut32 happy_x_3 of { (HappyWrap32 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut46 happy_x_8 of { (HappyWrap46 happy_var_8) -> - happyIn36 + case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut52 happy_x_8 of { (HappyWrap52 happy_var_8) -> + happyIn42 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ParamVarShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) ) `HappyStk` happyRest}}}} -happyReduce_56 = happyReduce 7# 12# happyReduction_56 -happyReduction_56 (happy_x_7 `HappyStk` +happyReduce_69 = happyReduce 7# 15# happyReduction_69 +happyReduction_69 (happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` happy_x_4 `HappyStk` @@ -760,131 +895,131 @@ happyReduction_56 (happy_x_7 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut32 happy_x_2 of { (HappyWrap32 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - case happyOut46 happy_x_6 of { (HappyWrap46 happy_var_6) -> - happyIn36 + case happyOut38 happy_x_2 of { (HappyWrap38 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + case happyOut52 happy_x_6 of { (HappyWrap52 happy_var_6) -> + happyIn42 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.paramVarShape (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4) (snd happy_var_6)) ) `HappyStk` happyRest}}}} -happyReduce_57 = happySpecReduce_3 13# happyReduction_57 -happyReduction_57 happy_x_3 +happyReduce_70 = happySpecReduce_3 16# happyReduction_70 +happyReduction_70 happy_x_3 happy_x_2 happy_x_1 - = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> - case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> - happyIn37 + = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> + case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> + happyIn43 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Restriction (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_58 = happySpecReduce_1 14# happyReduction_58 -happyReduction_58 happy_x_1 - = case happyOut37 happy_x_1 of { (HappyWrap37 happy_var_1) -> - happyIn38 +happyReduce_71 = happySpecReduce_1 17# happyReduction_71 +happyReduction_71 happy_x_1 + = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> + happyIn44 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_59 = happySpecReduce_3 14# happyReduction_59 -happyReduction_59 happy_x_3 +happyReduce_72 = happySpecReduce_3 17# happyReduction_72 +happyReduction_72 happy_x_3 happy_x_2 happy_x_1 - = case happyOut37 happy_x_1 of { (HappyWrap37 happy_var_1) -> - case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> - happyIn38 + = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> + case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> + happyIn44 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_60 = happySpecReduce_1 15# happyReduction_60 -happyReduction_60 happy_x_1 +happyReduce_73 = happySpecReduce_1 18# happyReduction_73 +happyReduction_73 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Universe (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_61 = happySpecReduce_1 15# happyReduction_61 -happyReduction_61 happy_x_1 +happyReduce_74 = happySpecReduce_1 18# happyReduction_74 +happyReduction_74 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseCube (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_62 = happySpecReduce_1 15# happyReduction_62 -happyReduction_62 happy_x_1 +happyReduce_75 = happySpecReduce_1 18# happyReduction_75 +happyReduction_75 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.UniverseTope (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_63 = happySpecReduce_1 15# happyReduction_63 -happyReduction_63 happy_x_1 +happyReduce_76 = happySpecReduce_1 18# happyReduction_76 +happyReduction_76 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnit (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_64 = happySpecReduce_1 15# happyReduction_64 -happyReduction_64 happy_x_1 +happyReduce_77 = happySpecReduce_1 18# happyReduction_77 +happyReduction_77 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.CubeUnitStar (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_65 = happySpecReduce_1 15# happyReduction_65 -happyReduction_65 happy_x_1 +happyReduce_78 = happySpecReduce_1 18# happyReduction_78 +happyReduction_78 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_66 = happySpecReduce_1 15# happyReduction_66 -happyReduction_66 happy_x_1 +happyReduce_79 = happySpecReduce_1 18# happyReduction_79 +happyReduction_79 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_0 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_67 = happySpecReduce_1 15# happyReduction_67 -happyReduction_67 happy_x_1 +happyReduce_80 = happySpecReduce_1 18# happyReduction_80 +happyReduction_80 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Cube2_1 (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_68 = happySpecReduce_1 15# happyReduction_68 -happyReduction_68 happy_x_1 +happyReduce_81 = happySpecReduce_1 18# happyReduction_81 +happyReduction_81 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeTop (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_69 = happySpecReduce_1 15# happyReduction_69 -happyReduction_69 happy_x_1 +happyReduce_82 = happySpecReduce_1 18# happyReduction_82 +happyReduction_82 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TopeBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_70 = happySpecReduce_1 15# happyReduction_70 -happyReduction_70 happy_x_1 +happyReduce_83 = happySpecReduce_1 18# happyReduction_83 +happyReduction_83 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecBottom (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_71 = happyReduce 4# 15# happyReduction_71 -happyReduction_71 (happy_x_4 `HappyStk` +happyReduce_84 = happyReduce 4# 18# happyReduction_84 +happyReduction_84 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> - happyIn39 + case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.RecOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3)) ) `HappyStk` happyRest}} -happyReduce_72 = happyReduce 10# 15# happyReduction_72 -happyReduction_72 (happy_x_10 `HappyStk` +happyReduce_85 = happyReduce 10# 18# happyReduction_85 +happyReduction_85 (happy_x_10 `HappyStk` happy_x_9 `HappyStk` happy_x_8 `HappyStk` happy_x_7 `HappyStk` @@ -896,75 +1031,75 @@ happyReduction_72 (happy_x_10 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut46 happy_x_7 of { (HappyWrap46 happy_var_7) -> - case happyOut46 happy_x_9 of { (HappyWrap46 happy_var_9) -> - happyIn39 + case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> + case happyOut52 happy_x_9 of { (HappyWrap52 happy_var_9) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.recOr (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9)) ) `HappyStk` happyRest}}}}} -happyReduce_73 = happyReduce 5# 15# happyReduction_73 -happyReduction_73 (happy_x_5 `HappyStk` +happyReduce_86 = happyReduce 5# 18# happyReduction_86 +happyReduction_86 (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 { happy_var_1 -> - case happyOut36 happy_x_2 of { (HappyWrap36 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn39 + case happyOut42 happy_x_2 of { (HappyWrap42 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.typeExtension (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_74 = happyReduce 5# 15# happyReduction_74 -happyReduction_74 (happy_x_5 `HappyStk` +happyReduce_87 = happyReduce 5# 18# happyReduction_87 +happyReduction_87 (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 { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn39 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Pair (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_75 = happySpecReduce_1 15# happyReduction_75 -happyReduction_75 happy_x_1 +happyReduce_88 = happySpecReduce_1 18# happyReduction_88 +happyReduction_88 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - happyIn39 + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Refl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1))) )} -happyReduce_76 = happySpecReduce_3 15# happyReduction_76 -happyReduction_76 happy_x_3 +happyReduce_89 = happySpecReduce_3 18# happyReduction_89 +happyReduction_89 happy_x_3 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - happyIn39 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTerm (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_77 = happyReduce 5# 15# happyReduction_77 -happyReduction_77 (happy_x_5 `HappyStk` +happyReduce_90 = happyReduce 5# 18# happyReduction_90 +happyReduction_90 (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 { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - case happyOut46 happy_x_4 of { (HappyWrap46 happy_var_4) -> - happyIn39 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + case happyOut52 happy_x_4 of { (HappyWrap52 happy_var_4) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.ReflTermType (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_78 = happyReduce 14# 15# happyReduction_78 -happyReduction_78 (happy_x_14 `HappyStk` +happyReduce_91 = happyReduce 14# 18# happyReduction_91 +happyReduction_91 (happy_x_14 `HappyStk` happy_x_13 `HappyStk` happy_x_12 `HappyStk` happy_x_11 `HappyStk` @@ -980,130 +1115,130 @@ happyReduction_78 (happy_x_14 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut46 happy_x_7 of { (HappyWrap46 happy_var_7) -> - case happyOut46 happy_x_9 of { (HappyWrap46 happy_var_9) -> - case happyOut46 happy_x_11 of { (HappyWrap46 happy_var_11) -> - case happyOut46 happy_x_13 of { (HappyWrap46 happy_var_13) -> - happyIn39 + case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut52 happy_x_7 of { (HappyWrap52 happy_var_7) -> + case happyOut52 happy_x_9 of { (HappyWrap52 happy_var_9) -> + case happyOut52 happy_x_11 of { (HappyWrap52 happy_var_11) -> + case happyOut52 happy_x_13 of { (HappyWrap52 happy_var_13) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.IdJ (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_7) (snd happy_var_9) (snd happy_var_11) (snd happy_var_13)) ) `HappyStk` happyRest}}}}}}} -happyReduce_79 = happySpecReduce_1 15# happyReduction_79 -happyReduction_79 happy_x_1 - = case happyOut26 happy_x_1 of { (HappyWrap26 happy_var_1) -> - happyIn39 +happyReduce_92 = happySpecReduce_1 18# happyReduction_92 +happyReduction_92 happy_x_1 + = case happyOut29 happy_x_1 of { (HappyWrap29 happy_var_1) -> + happyIn45 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Hole (fst happy_var_1) (snd happy_var_1)) )} -happyReduce_80 = happySpecReduce_1 15# happyReduction_80 -happyReduction_80 happy_x_1 - = case happyOut25 happy_x_1 of { (HappyWrap25 happy_var_1) -> - happyIn39 +happyReduce_93 = happySpecReduce_1 18# happyReduction_93 +happyReduction_93 happy_x_1 + = case happyOut28 happy_x_1 of { (HappyWrap28 happy_var_1) -> + happyIn45 ((fst happy_var_1, Language.Rzk.Syntax.Abs.Var (fst happy_var_1) (snd happy_var_1)) )} -happyReduce_81 = happySpecReduce_3 15# happyReduction_81 -happyReduction_81 happy_x_3 +happyReduce_94 = happySpecReduce_3 18# happyReduction_94 +happyReduction_94 happy_x_3 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_2 of { (HappyWrap46 happy_var_2) -> - happyIn39 + case happyOut52 happy_x_2 of { (HappyWrap52 happy_var_2) -> + happyIn45 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), (snd happy_var_2)) )}} -happyReduce_82 = happySpecReduce_3 16# happyReduction_82 -happyReduction_82 happy_x_3 +happyReduce_95 = happySpecReduce_3 19# happyReduction_95 +happyReduction_95 happy_x_3 happy_x_2 happy_x_1 - = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - case happyOut45 happy_x_3 of { (HappyWrap45 happy_var_3) -> - happyIn40 + = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> + case happyOut51 happy_x_3 of { (HappyWrap51 happy_var_3) -> + happyIn46 ((fst happy_var_1, Language.Rzk.Syntax.Abs.CubeProduct (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_83 = happySpecReduce_1 16# happyReduction_83 -happyReduction_83 happy_x_1 - = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> - happyIn40 +happyReduce_96 = happySpecReduce_1 19# happyReduction_96 +happyReduction_96 happy_x_1 + = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> + happyIn46 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_84 = happySpecReduce_3 17# happyReduction_84 -happyReduction_84 happy_x_3 +happyReduce_97 = happySpecReduce_3 20# happyReduction_97 +happyReduction_97 happy_x_3 happy_x_2 happy_x_1 - = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> - happyIn41 + = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> + case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> + happyIn47 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_85 = happySpecReduce_3 17# happyReduction_85 -happyReduction_85 happy_x_3 +happyReduce_98 = happySpecReduce_3 20# happyReduction_98 +happyReduction_98 happy_x_3 happy_x_2 happy_x_1 - = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - case happyOut40 happy_x_3 of { (HappyWrap40 happy_var_3) -> - happyIn41 + = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> + case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> + happyIn47 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeLEQ (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_86 = happySpecReduce_1 17# happyReduction_86 -happyReduction_86 happy_x_1 - = case happyOut40 happy_x_1 of { (HappyWrap40 happy_var_1) -> - happyIn41 +happyReduce_99 = happySpecReduce_1 20# happyReduction_99 +happyReduction_99 happy_x_1 + = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> + happyIn47 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_87 = happySpecReduce_3 18# happyReduction_87 -happyReduction_87 happy_x_3 +happyReduce_100 = happySpecReduce_3 21# happyReduction_100 +happyReduction_100 happy_x_3 happy_x_2 happy_x_1 - = case happyOut41 happy_x_1 of { (HappyWrap41 happy_var_1) -> - case happyOut42 happy_x_3 of { (HappyWrap42 happy_var_3) -> - happyIn42 + = case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> + case happyOut48 happy_x_3 of { (HappyWrap48 happy_var_3) -> + happyIn48 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeAnd (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_88 = happySpecReduce_1 18# happyReduction_88 -happyReduction_88 happy_x_1 - = case happyOut41 happy_x_1 of { (HappyWrap41 happy_var_1) -> - happyIn42 +happyReduce_101 = happySpecReduce_1 21# happyReduction_101 +happyReduction_101 happy_x_1 + = case happyOut47 happy_x_1 of { (HappyWrap47 happy_var_1) -> + happyIn48 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_89 = happySpecReduce_3 19# happyReduction_89 -happyReduction_89 happy_x_3 +happyReduce_102 = happySpecReduce_3 22# happyReduction_102 +happyReduction_102 happy_x_3 happy_x_2 happy_x_1 - = case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> - case happyOut43 happy_x_3 of { (HappyWrap43 happy_var_3) -> - happyIn43 + = case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> + case happyOut49 happy_x_3 of { (HappyWrap49 happy_var_3) -> + happyIn49 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TopeOr (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_90 = happySpecReduce_1 19# happyReduction_90 -happyReduction_90 happy_x_1 - = case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> - happyIn43 +happyReduce_103 = happySpecReduce_1 22# happyReduction_103 +happyReduction_103 happy_x_1 + = case happyOut48 happy_x_1 of { (HappyWrap48 happy_var_1) -> + happyIn49 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_91 = happySpecReduce_3 20# happyReduction_91 -happyReduction_91 happy_x_3 +happyReduce_104 = happySpecReduce_3 23# happyReduction_104 +happyReduction_104 happy_x_3 happy_x_2 happy_x_1 - = case happyOut36 happy_x_1 of { (HappyWrap36 happy_var_1) -> - case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> - happyIn44 + = case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> + case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> + happyIn50 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_92 = happyReduce 8# 20# happyReduction_92 -happyReduction_92 (happy_x_8 `HappyStk` +happyReduce_105 = happyReduce 8# 23# happyReduction_105 +happyReduction_105 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1113,69 +1248,69 @@ happyReduction_92 (happy_x_8 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut32 happy_x_3 of { (HappyWrap32 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut44 happy_x_8 of { (HappyWrap44 happy_var_8) -> - happyIn44 + case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut50 happy_x_8 of { (HappyWrap50 happy_var_8) -> + happyIn50 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) ) `HappyStk` happyRest}}}} -happyReduce_93 = happyReduce 5# 20# happyReduction_93 -happyReduction_93 (happy_x_5 `HappyStk` +happyReduce_106 = happyReduce 5# 23# happyReduction_106 +happyReduction_106 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) - = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - case happyOut46 happy_x_3 of { (HappyWrap46 happy_var_3) -> - case happyOut43 happy_x_5 of { (HappyWrap43 happy_var_5) -> - happyIn44 + = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> + case happyOut52 happy_x_3 of { (HappyWrap52 happy_var_3) -> + case happyOut49 happy_x_5 of { (HappyWrap49 happy_var_5) -> + happyIn50 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeId (fst happy_var_1) (snd happy_var_1) (snd happy_var_3) (snd happy_var_5)) ) `HappyStk` happyRest}}} -happyReduce_94 = happySpecReduce_3 20# happyReduction_94 -happyReduction_94 happy_x_3 +happyReduce_107 = happySpecReduce_3 23# happyReduction_107 +happyReduction_107 happy_x_3 happy_x_2 happy_x_1 - = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - case happyOut43 happy_x_3 of { (HappyWrap43 happy_var_3) -> - happyIn44 + = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> + case happyOut49 happy_x_3 of { (HappyWrap49 happy_var_3) -> + happyIn50 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeIdSimple (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_95 = happyReduce 4# 20# happyReduction_95 -happyReduction_95 (happy_x_4 `HappyStk` +happyReduce_108 = happyReduce 4# 23# happyReduction_108 +happyReduction_108 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut35 happy_x_2 of { (HappyWrap35 happy_var_2) -> - case happyOut44 happy_x_4 of { (HappyWrap44 happy_var_4) -> - happyIn44 + case happyOut41 happy_x_2 of { (HappyWrap41 happy_var_2) -> + case happyOut50 happy_x_4 of { (HappyWrap50 happy_var_4) -> + happyIn50 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Lambda (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2) (snd happy_var_4)) ) `HappyStk` happyRest}}} -happyReduce_96 = happySpecReduce_1 20# happyReduction_96 -happyReduction_96 happy_x_1 - = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - happyIn44 +happyReduce_109 = happySpecReduce_1 23# happyReduction_109 +happyReduction_109 happy_x_1 + = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> + happyIn50 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_97 = happySpecReduce_3 20# happyReduction_97 -happyReduction_97 happy_x_3 +happyReduce_110 = happySpecReduce_3 23# happyReduction_110 +happyReduction_110 happy_x_3 happy_x_2 happy_x_1 - = case happyOut36 happy_x_1 of { (HappyWrap36 happy_var_1) -> - case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> - happyIn44 + = case happyOut42 happy_x_1 of { (HappyWrap42 happy_var_1) -> + case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> + happyIn50 ((fst happy_var_1, Language.Rzk.Syntax.Abs.unicode_TypeFun (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_98 = happyReduce 8# 20# happyReduction_98 -happyReduction_98 (happy_x_8 `HappyStk` +happyReduce_111 = happyReduce 8# 23# happyReduction_111 +happyReduction_111 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1185,15 +1320,15 @@ happyReduction_98 (happy_x_8 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut32 happy_x_3 of { (HappyWrap32 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut44 happy_x_8 of { (HappyWrap44 happy_var_8) -> - happyIn44 + case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut50 happy_x_8 of { (HappyWrap50 happy_var_8) -> + happyIn50 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigma (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) ) `HappyStk` happyRest}}}} -happyReduce_99 = happyReduce 8# 20# happyReduction_99 -happyReduction_99 (happy_x_8 `HappyStk` +happyReduce_112 = happyReduce 8# 23# happyReduction_112 +happyReduction_112 (happy_x_8 `HappyStk` happy_x_7 `HappyStk` happy_x_6 `HappyStk` happy_x_5 `HappyStk` @@ -1203,95 +1338,95 @@ happyReduction_99 (happy_x_8 `HappyStk` happy_x_1 `HappyStk` happyRest) = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut32 happy_x_3 of { (HappyWrap32 happy_var_3) -> - case happyOut46 happy_x_5 of { (HappyWrap46 happy_var_5) -> - case happyOut44 happy_x_8 of { (HappyWrap44 happy_var_8) -> - happyIn44 + case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> + case happyOut52 happy_x_5 of { (HappyWrap52 happy_var_5) -> + case happyOut50 happy_x_8 of { (HappyWrap50 happy_var_8) -> + happyIn50 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.unicode_TypeSigmaAlt (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_3) (snd happy_var_5) (snd happy_var_8)) ) `HappyStk` happyRest}}}} -happyReduce_100 = happyReduce 4# 21# happyReduction_100 -happyReduction_100 (happy_x_4 `HappyStk` +happyReduce_113 = happyReduce 4# 24# happyReduction_113 +happyReduction_113 (happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` happy_x_1 `HappyStk` happyRest) - = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> - case happyOut38 happy_x_3 of { (HappyWrap38 happy_var_3) -> - happyIn45 + = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> + case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> + happyIn51 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeRestricted (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) ) `HappyStk` happyRest}} -happyReduce_101 = happySpecReduce_2 21# happyReduction_101 -happyReduction_101 happy_x_2 +happyReduce_114 = happySpecReduce_2 24# happyReduction_114 +happyReduction_114 happy_x_2 happy_x_1 - = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> - case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> - happyIn45 + = case happyOut51 happy_x_1 of { (HappyWrap51 happy_var_1) -> + case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> + happyIn51 ((fst happy_var_1, Language.Rzk.Syntax.Abs.App (fst happy_var_1) (snd happy_var_1) (snd happy_var_2)) )}} -happyReduce_102 = happySpecReduce_2 21# happyReduction_102 -happyReduction_102 happy_x_2 +happyReduce_115 = happySpecReduce_2 24# happyReduction_115 +happyReduction_115 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> - happyIn45 + case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> + happyIn51 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.First (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_103 = happySpecReduce_2 21# happyReduction_103 -happyReduction_103 happy_x_2 +happyReduce_116 = happySpecReduce_2 24# happyReduction_116 +happyReduction_116 happy_x_2 happy_x_1 = case happyOutTok happy_x_1 of { happy_var_1 -> - case happyOut39 happy_x_2 of { (HappyWrap39 happy_var_2) -> - happyIn45 + case happyOut45 happy_x_2 of { (HappyWrap45 happy_var_2) -> + happyIn51 ((uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1), Language.Rzk.Syntax.Abs.Second (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol happy_var_1)) (snd happy_var_2)) )}} -happyReduce_104 = happySpecReduce_1 21# happyReduction_104 -happyReduction_104 happy_x_1 - = case happyOut39 happy_x_1 of { (HappyWrap39 happy_var_1) -> - happyIn45 +happyReduce_117 = happySpecReduce_1 24# happyReduction_117 +happyReduction_117 happy_x_1 + = case happyOut45 happy_x_1 of { (HappyWrap45 happy_var_1) -> + happyIn51 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_105 = happySpecReduce_3 22# happyReduction_105 -happyReduction_105 happy_x_3 +happyReduce_118 = happySpecReduce_3 25# happyReduction_118 +happyReduction_118 happy_x_3 happy_x_2 happy_x_1 - = case happyOut43 happy_x_1 of { (HappyWrap43 happy_var_1) -> - case happyOut44 happy_x_3 of { (HappyWrap44 happy_var_3) -> - happyIn46 + = case happyOut49 happy_x_1 of { (HappyWrap49 happy_var_1) -> + case happyOut50 happy_x_3 of { (HappyWrap50 happy_var_3) -> + happyIn52 ((fst happy_var_1, Language.Rzk.Syntax.Abs.TypeAsc (fst happy_var_1) (snd happy_var_1) (snd happy_var_3)) )}} -happyReduce_106 = happySpecReduce_1 22# happyReduction_106 -happyReduction_106 happy_x_1 - = case happyOut44 happy_x_1 of { (HappyWrap44 happy_var_1) -> - happyIn46 +happyReduce_119 = happySpecReduce_1 25# happyReduction_119 +happyReduction_119 happy_x_1 + = case happyOut50 happy_x_1 of { (HappyWrap50 happy_var_1) -> + happyIn52 ((fst happy_var_1, (snd happy_var_1)) )} -happyReduce_107 = happySpecReduce_1 23# happyReduction_107 -happyReduction_107 happy_x_1 - = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> - happyIn47 +happyReduce_120 = happySpecReduce_1 26# happyReduction_120 +happyReduction_120 happy_x_1 + = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> + happyIn53 ((fst happy_var_1, (:[]) (snd happy_var_1)) )} -happyReduce_108 = happySpecReduce_3 23# happyReduction_108 -happyReduction_108 happy_x_3 +happyReduce_121 = happySpecReduce_3 26# happyReduction_121 +happyReduction_121 happy_x_3 happy_x_2 happy_x_1 - = case happyOut46 happy_x_1 of { (HappyWrap46 happy_var_1) -> - case happyOut47 happy_x_3 of { (HappyWrap47 happy_var_3) -> - happyIn47 + = case happyOut52 happy_x_1 of { (HappyWrap52 happy_var_1) -> + case happyOut53 happy_x_3 of { (HappyWrap53 happy_var_3) -> + happyIn53 ((fst happy_var_1, (:) (snd happy_var_1) (snd happy_var_3)) )}} happyNewToken action sts stk [] = - happyDoAction 61# notHappyAtAll action sts stk [] + happyDoAction 67# notHappyAtAll action sts stk [] happyNewToken action sts stk (tk:tks) = let cont i = happyDoAction i tk action sts stk tks in @@ -1353,13 +1488,19 @@ happyNewToken action sts stk (tk:tks) = PT _ (TS _ 55) -> cont 55#; PT _ (TS _ 56) -> cont 56#; PT _ (TS _ 57) -> cont 57#; - PT _ (TL _) -> cont 58#; - PT _ (T_VarIdent _) -> cont 59#; - PT _ (T_HoleIdent _) -> cont 60#; + PT _ (TS _ 58) -> cont 58#; + PT _ (TS _ 59) -> cont 59#; + PT _ (TS _ 60) -> cont 60#; + PT _ (TS _ 61) -> cont 61#; + PT _ (TS _ 62) -> cont 62#; + PT _ (TS _ 63) -> cont 63#; + PT _ (TL _) -> cont 64#; + PT _ (T_VarIdent _) -> cont 65#; + PT _ (T_HoleIdent _) -> cont 66#; _ -> happyError' ((tk:tks), []) } -happyError_ explist 61# tk tks = happyError' (tks, explist) +happyError_ explist 67# tk tks = happyError' (tks, explist) happyError_ explist _ tk tks = happyError' ((tk:tks), explist) happyThen :: () => Err a -> (a -> Err b) -> Err b @@ -1372,67 +1513,76 @@ happyReturn1 = \a tks -> (return) a happyError' :: () => ([(Token)], [Prelude.String]) -> Err a happyError' = (\(tokens, _) -> happyError tokens) pModule_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (let {(HappyWrap27 x') = happyOut27 x} in x')) + happySomeParser = happyThen (happyParse 0# tks) (\x -> happyReturn (let {(HappyWrap30 x') = happyOut30 x} in x')) + +pListVarIdent_internal tks = happySomeParser where + happySomeParser = happyThen (happyParse 1# tks) (\x -> happyReturn (let {(HappyWrap31 x') = happyOut31 x} in x')) pLanguageDecl_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 1# tks) (\x -> happyReturn (let {(HappyWrap28 x') = happyOut28 x} in x')) + happySomeParser = happyThen (happyParse 2# tks) (\x -> happyReturn (let {(HappyWrap32 x') = happyOut32 x} in x')) pLanguage_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 2# tks) (\x -> happyReturn (let {(HappyWrap29 x') = happyOut29 x} in x')) + happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (let {(HappyWrap33 x') = happyOut33 x} in x')) pCommand_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 3# tks) (\x -> happyReturn (let {(HappyWrap30 x') = happyOut30 x} in x')) + happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (let {(HappyWrap34 x') = happyOut34 x} in x')) pListCommand_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 4# tks) (\x -> happyReturn (let {(HappyWrap31 x') = happyOut31 x} in x')) + happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (let {(HappyWrap35 x') = happyOut35 x} in x')) + +pDeclUsedVars_internal tks = happySomeParser where + happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (let {(HappyWrap36 x') = happyOut36 x} in x')) + +pSectionName_internal tks = happySomeParser where + happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (let {(HappyWrap37 x') = happyOut37 x} in x')) pPattern_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 5# tks) (\x -> happyReturn (let {(HappyWrap32 x') = happyOut32 x} in x')) + happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (let {(HappyWrap38 x') = happyOut38 x} in x')) pListPattern_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 6# tks) (\x -> happyReturn (let {(HappyWrap33 x') = happyOut33 x} in x')) + happySomeParser = happyThen (happyParse 9# tks) (\x -> happyReturn (let {(HappyWrap39 x') = happyOut39 x} in x')) pParam_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 7# tks) (\x -> happyReturn (let {(HappyWrap34 x') = happyOut34 x} in x')) + happySomeParser = happyThen (happyParse 10# tks) (\x -> happyReturn (let {(HappyWrap40 x') = happyOut40 x} in x')) pListParam_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 8# tks) (\x -> happyReturn (let {(HappyWrap35 x') = happyOut35 x} in x')) + happySomeParser = happyThen (happyParse 11# tks) (\x -> happyReturn (let {(HappyWrap41 x') = happyOut41 x} in x')) pParamDecl_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 9# tks) (\x -> happyReturn (let {(HappyWrap36 x') = happyOut36 x} in x')) + happySomeParser = happyThen (happyParse 12# tks) (\x -> happyReturn (let {(HappyWrap42 x') = happyOut42 x} in x')) pRestriction_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 10# tks) (\x -> happyReturn (let {(HappyWrap37 x') = happyOut37 x} in x')) + happySomeParser = happyThen (happyParse 13# tks) (\x -> happyReturn (let {(HappyWrap43 x') = happyOut43 x} in x')) pListRestriction_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 11# tks) (\x -> happyReturn (let {(HappyWrap38 x') = happyOut38 x} in x')) + happySomeParser = happyThen (happyParse 14# tks) (\x -> happyReturn (let {(HappyWrap44 x') = happyOut44 x} in x')) pTerm7_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 12# tks) (\x -> happyReturn (let {(HappyWrap39 x') = happyOut39 x} in x')) + happySomeParser = happyThen (happyParse 15# tks) (\x -> happyReturn (let {(HappyWrap45 x') = happyOut45 x} in x')) pTerm5_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 13# tks) (\x -> happyReturn (let {(HappyWrap40 x') = happyOut40 x} in x')) + happySomeParser = happyThen (happyParse 16# tks) (\x -> happyReturn (let {(HappyWrap46 x') = happyOut46 x} in x')) pTerm4_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 14# tks) (\x -> happyReturn (let {(HappyWrap41 x') = happyOut41 x} in x')) + happySomeParser = happyThen (happyParse 17# tks) (\x -> happyReturn (let {(HappyWrap47 x') = happyOut47 x} in x')) pTerm3_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 15# tks) (\x -> happyReturn (let {(HappyWrap42 x') = happyOut42 x} in x')) + happySomeParser = happyThen (happyParse 18# tks) (\x -> happyReturn (let {(HappyWrap48 x') = happyOut48 x} in x')) pTerm2_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 16# tks) (\x -> happyReturn (let {(HappyWrap43 x') = happyOut43 x} in x')) + happySomeParser = happyThen (happyParse 19# tks) (\x -> happyReturn (let {(HappyWrap49 x') = happyOut49 x} in x')) pTerm1_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 17# tks) (\x -> happyReturn (let {(HappyWrap44 x') = happyOut44 x} in x')) + happySomeParser = happyThen (happyParse 20# tks) (\x -> happyReturn (let {(HappyWrap50 x') = happyOut50 x} in x')) pTerm6_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 18# tks) (\x -> happyReturn (let {(HappyWrap45 x') = happyOut45 x} in x')) + happySomeParser = happyThen (happyParse 21# tks) (\x -> happyReturn (let {(HappyWrap51 x') = happyOut51 x} in x')) pTerm_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 19# tks) (\x -> happyReturn (let {(HappyWrap46 x') = happyOut46 x} in x')) + happySomeParser = happyThen (happyParse 22# tks) (\x -> happyReturn (let {(HappyWrap52 x') = happyOut52 x} in x')) pListTerm_internal tks = happySomeParser where - happySomeParser = happyThen (happyParse 20# tks) (\x -> happyReturn (let {(HappyWrap47 x') = happyOut47 x} in x')) + happySomeParser = happyThen (happyParse 23# tks) (\x -> happyReturn (let {(HappyWrap53 x') = happyOut53 x} in x')) happySeq = happyDontSeq @@ -1455,6 +1605,9 @@ myLexer = tokens pModule :: [Token] -> Err Language.Rzk.Syntax.Abs.Module pModule = fmap snd . pModule_internal +pListVarIdent :: [Token] -> Err [Language.Rzk.Syntax.Abs.VarIdent] +pListVarIdent = fmap snd . pListVarIdent_internal + pLanguageDecl :: [Token] -> Err Language.Rzk.Syntax.Abs.LanguageDecl pLanguageDecl = fmap snd . pLanguageDecl_internal @@ -1467,6 +1620,12 @@ pCommand = fmap snd . pCommand_internal pListCommand :: [Token] -> Err [Language.Rzk.Syntax.Abs.Command] pListCommand = fmap snd . pListCommand_internal +pDeclUsedVars :: [Token] -> Err Language.Rzk.Syntax.Abs.DeclUsedVars +pDeclUsedVars = fmap snd . pDeclUsedVars_internal + +pSectionName :: [Token] -> Err Language.Rzk.Syntax.Abs.SectionName +pSectionName = fmap snd . pSectionName_internal + pPattern :: [Token] -> Err Language.Rzk.Syntax.Abs.Pattern pPattern = fmap snd . pPattern_internal diff --git a/rzk/src/Language/Rzk/Syntax/Par.info b/rzk/src/Language/Rzk/Syntax/Par.info index eb7ab83a6..f8f3de205 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.info +++ b/rzk/src/Language/Rzk/Syntax/Par.info @@ -7,175 +7,194 @@ Info file generated by Happy Version 1.20.1.1 from Language/Rzk/Syntax/Par.y Grammar ----------------------------------------------------------------------------- %start_pModule_internal -> Module (0) - %start_pLanguageDecl_internal -> LanguageDecl (1) - %start_pLanguage_internal -> Language (2) - %start_pCommand_internal -> Command (3) - %start_pListCommand_internal -> ListCommand (4) - %start_pPattern_internal -> Pattern (5) - %start_pListPattern_internal -> ListPattern (6) - %start_pParam_internal -> Param (7) - %start_pListParam_internal -> ListParam (8) - %start_pParamDecl_internal -> ParamDecl (9) - %start_pRestriction_internal -> Restriction (10) - %start_pListRestriction_internal -> ListRestriction (11) - %start_pTerm7_internal -> Term7 (12) - %start_pTerm5_internal -> Term5 (13) - %start_pTerm4_internal -> Term4 (14) - %start_pTerm3_internal -> Term3 (15) - %start_pTerm2_internal -> Term2 (16) - %start_pTerm1_internal -> Term1 (17) - %start_pTerm6_internal -> Term6 (18) - %start_pTerm_internal -> Term (19) - %start_pListTerm_internal -> ListTerm (20) - String -> L_quoted (21) - VarIdent -> L_VarIdent (22) - HoleIdent -> L_HoleIdent (23) - Module -> LanguageDecl ListCommand (24) - LanguageDecl -> '#lang' Language ';' (25) - Language -> 'rzk-1' (26) - Command -> '#set-option' String '=' String ';' (27) - Command -> '#unset-option' String ';' (28) - Command -> '#check' Term ':' Term ';' (29) - Command -> '#compute' Term ';' (30) - Command -> '#compute-whnf' Term ';' (31) - Command -> '#compute-nf' Term ';' (32) - Command -> '#postulate' VarIdent ListParam ':' Term ';' (33) - Command -> '#postulate' VarIdent ':' Term ';' (34) - Command -> '#define' VarIdent ListParam ':' Term ':=' Term ';' (35) - Command -> '#define' VarIdent ':' Term ':=' Term ';' (36) - Command -> '#def' VarIdent ListParam ':' Term ':=' Term ';' (37) - Command -> '#def' VarIdent ':' Term ':=' Term ';' (38) - ListCommand -> (39) - ListCommand -> Command ListCommand (40) - Pattern -> '_' (41) - Pattern -> VarIdent (42) - Pattern -> '(' Pattern ',' Pattern ')' (43) - ListPattern -> Pattern (44) - ListPattern -> Pattern ListPattern (45) - Param -> Pattern (46) - Param -> '(' ListPattern ':' Term ')' (47) - Param -> '{' Pattern ':' Term '|' Term '}' (48) - ListParam -> Param (49) - ListParam -> Param ListParam (50) - ParamDecl -> Term6 (51) - ParamDecl -> '(' '_' ':' Term ')' (52) - ParamDecl -> '{' Pattern ':' Term '}' (53) - ParamDecl -> '(' VarIdent ':' Term ')' (54) - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' (55) - ParamDecl -> '{' Pattern ':' Term '|' Term '}' (56) - Restriction -> Term '|->' Term (57) - ListRestriction -> Restriction (58) - ListRestriction -> Restriction ',' ListRestriction (59) - Term7 -> 'U' (60) - Term7 -> 'CUBE' (61) - Term7 -> 'TOPE' (62) - Term7 -> '1' (63) - Term7 -> '*_1' (64) - Term7 -> '2' (65) - Term7 -> '0_2' (66) - Term7 -> '1_2' (67) - Term7 -> 'TOP' (68) - Term7 -> 'BOT' (69) - Term7 -> 'recBOT' (70) - Term7 -> 'recOR' '(' ListRestriction ')' (71) - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (72) - Term7 -> '<' ParamDecl '->' Term '>' (73) - Term7 -> '(' Term ',' Term ')' (74) - Term7 -> 'refl' (75) - Term7 -> 'refl_{' Term '}' (76) - Term7 -> 'refl_{' Term ':' Term '}' (77) - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (78) - Term7 -> HoleIdent (79) - Term7 -> VarIdent (80) - Term7 -> '(' Term ')' (81) - Term5 -> Term5 '*' Term6 (82) - Term5 -> Term6 (83) - Term4 -> Term5 '===' Term5 (84) - Term4 -> Term5 '<=' Term5 (85) - Term4 -> Term5 (86) - Term3 -> Term4 '/\\' Term3 (87) - Term3 -> Term4 (88) - Term2 -> Term3 '\\/' Term2 (89) - Term2 -> Term3 (90) - Term1 -> ParamDecl '->' Term1 (91) - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (92) - Term1 -> Term2 '=_{' Term '}' Term2 (93) - Term1 -> Term2 '=' Term2 (94) - Term1 -> '\\' ListParam '->' Term1 (95) - Term1 -> Term2 (96) - Term1 -> ParamDecl '→' Term1 (97) - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (98) - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (99) - Term6 -> Term6 '[' ListRestriction ']' (100) - Term6 -> Term6 Term7 (101) - Term6 -> 'first' Term7 (102) - Term6 -> 'second' Term7 (103) - Term6 -> Term7 (104) - Term -> Term2 'as' Term1 (105) - Term -> Term1 (106) - ListTerm -> Term (107) - ListTerm -> Term ',' ListTerm (108) + %start_pListVarIdent_internal -> ListVarIdent (1) + %start_pLanguageDecl_internal -> LanguageDecl (2) + %start_pLanguage_internal -> Language (3) + %start_pCommand_internal -> Command (4) + %start_pListCommand_internal -> ListCommand (5) + %start_pDeclUsedVars_internal -> DeclUsedVars (6) + %start_pSectionName_internal -> SectionName (7) + %start_pPattern_internal -> Pattern (8) + %start_pListPattern_internal -> ListPattern (9) + %start_pParam_internal -> Param (10) + %start_pListParam_internal -> ListParam (11) + %start_pParamDecl_internal -> ParamDecl (12) + %start_pRestriction_internal -> Restriction (13) + %start_pListRestriction_internal -> ListRestriction (14) + %start_pTerm7_internal -> Term7 (15) + %start_pTerm5_internal -> Term5 (16) + %start_pTerm4_internal -> Term4 (17) + %start_pTerm3_internal -> Term3 (18) + %start_pTerm2_internal -> Term2 (19) + %start_pTerm1_internal -> Term1 (20) + %start_pTerm6_internal -> Term6 (21) + %start_pTerm_internal -> Term (22) + %start_pListTerm_internal -> ListTerm (23) + String -> L_quoted (24) + VarIdent -> L_VarIdent (25) + HoleIdent -> L_HoleIdent (26) + Module -> LanguageDecl ListCommand (27) + ListVarIdent -> VarIdent (28) + ListVarIdent -> VarIdent ListVarIdent (29) + LanguageDecl -> '#lang' Language ';' (30) + Language -> 'rzk-1' (31) + Command -> '#set-option' String '=' String (32) + Command -> '#unset-option' String (33) + Command -> '#check' Term ':' Term (34) + Command -> '#compute' Term (35) + Command -> '#compute-whnf' Term (36) + Command -> '#compute-nf' Term (37) + Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term (38) + Command -> '#postulate' VarIdent DeclUsedVars ':' Term (39) + Command -> '#assume' ListVarIdent ':' Term (40) + Command -> '#variable' VarIdent ':' Term (41) + Command -> '#variables' ListVarIdent ':' Term (42) + Command -> '#section' SectionName ';' ListCommand '#end' SectionName (43) + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term (44) + Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term (45) + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term (46) + Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term (47) + ListCommand -> (48) + ListCommand -> Command ';' ListCommand (49) + DeclUsedVars -> 'uses' '(' ListVarIdent ')' (50) + DeclUsedVars -> (51) + SectionName -> (52) + SectionName -> VarIdent (53) + Pattern -> '_' (54) + Pattern -> VarIdent (55) + Pattern -> '(' Pattern ',' Pattern ')' (56) + ListPattern -> Pattern (57) + ListPattern -> Pattern ListPattern (58) + Param -> Pattern (59) + Param -> '(' ListPattern ':' Term ')' (60) + Param -> '{' Pattern ':' Term '|' Term '}' (61) + ListParam -> Param (62) + ListParam -> Param ListParam (63) + ParamDecl -> Term6 (64) + ParamDecl -> '(' '_' ':' Term ')' (65) + ParamDecl -> '{' Pattern ':' Term '}' (66) + ParamDecl -> '(' VarIdent ':' Term ')' (67) + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' (68) + ParamDecl -> '{' Pattern ':' Term '|' Term '}' (69) + Restriction -> Term '|->' Term (70) + ListRestriction -> Restriction (71) + ListRestriction -> Restriction ',' ListRestriction (72) + Term7 -> 'U' (73) + Term7 -> 'CUBE' (74) + Term7 -> 'TOPE' (75) + Term7 -> '1' (76) + Term7 -> '*_1' (77) + Term7 -> '2' (78) + Term7 -> '0_2' (79) + Term7 -> '1_2' (80) + Term7 -> 'TOP' (81) + Term7 -> 'BOT' (82) + Term7 -> 'recBOT' (83) + Term7 -> 'recOR' '(' ListRestriction ')' (84) + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' (85) + Term7 -> '<' ParamDecl '->' Term '>' (86) + Term7 -> '(' Term ',' Term ')' (87) + Term7 -> 'refl' (88) + Term7 -> 'refl_{' Term '}' (89) + Term7 -> 'refl_{' Term ':' Term '}' (90) + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (91) + Term7 -> HoleIdent (92) + Term7 -> VarIdent (93) + Term7 -> '(' Term ')' (94) + Term5 -> Term5 '*' Term6 (95) + Term5 -> Term6 (96) + Term4 -> Term5 '===' Term5 (97) + Term4 -> Term5 '<=' Term5 (98) + Term4 -> Term5 (99) + Term3 -> Term4 '/\\' Term3 (100) + Term3 -> Term4 (101) + Term2 -> Term3 '\\/' Term2 (102) + Term2 -> Term3 (103) + Term1 -> ParamDecl '->' Term1 (104) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 (105) + Term1 -> Term2 '=_{' Term '}' Term2 (106) + Term1 -> Term2 '=' Term2 (107) + Term1 -> '\\' ListParam '->' Term1 (108) + Term1 -> Term2 (109) + Term1 -> ParamDecl '→' Term1 (110) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 (111) + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 (112) + Term6 -> Term6 '[' ListRestriction ']' (113) + Term6 -> Term6 Term7 (114) + Term6 -> 'first' Term7 (115) + Term6 -> 'second' Term7 (116) + Term6 -> Term7 (117) + Term -> Term2 'as' Term1 (118) + Term -> Term1 (119) + ListTerm -> Term (120) + ListTerm -> Term ',' ListTerm (121) ----------------------------------------------------------------------------- Terminals ----------------------------------------------------------------------------- - '#check' { PT _ (TS _ 1) } - '#compute' { PT _ (TS _ 2) } - '#compute-nf' { PT _ (TS _ 3) } - '#compute-whnf'{ PT _ (TS _ 4) } - '#def' { PT _ (TS _ 5) } - '#define' { PT _ (TS _ 6) } - '#lang' { PT _ (TS _ 7) } - '#postulate' { PT _ (TS _ 8) } - '#set-option' { PT _ (TS _ 9) } - '#unset-option'{ PT _ (TS _ 10) } - '(' { PT _ (TS _ 11) } - ')' { PT _ (TS _ 12) } - '*' { PT _ (TS _ 13) } - '*_1' { PT _ (TS _ 14) } - ',' { PT _ (TS _ 15) } - '->' { PT _ (TS _ 16) } - '/\\' { PT _ (TS _ 17) } - '0_2' { PT _ (TS _ 18) } - '1' { PT _ (TS _ 19) } - '1_2' { PT _ (TS _ 20) } - '2' { PT _ (TS _ 21) } - ':' { PT _ (TS _ 22) } - ':=' { PT _ (TS _ 23) } - ';' { PT _ (TS _ 24) } - '<' { PT _ (TS _ 25) } - '<=' { PT _ (TS _ 26) } - '=' { PT _ (TS _ 27) } - '===' { PT _ (TS _ 28) } - '=_{' { PT _ (TS _ 29) } - '>' { PT _ (TS _ 30) } - 'BOT' { PT _ (TS _ 31) } - 'CUBE' { PT _ (TS _ 32) } - 'Sigma' { PT _ (TS _ 33) } - 'TOP' { PT _ (TS _ 34) } - 'TOPE' { PT _ (TS _ 35) } - 'U' { PT _ (TS _ 36) } - '[' { PT _ (TS _ 37) } - '\\' { PT _ (TS _ 38) } - '\\/' { PT _ (TS _ 39) } - ']' { PT _ (TS _ 40) } - '_' { PT _ (TS _ 41) } - 'as' { PT _ (TS _ 42) } - 'first' { PT _ (TS _ 43) } - 'idJ' { PT _ (TS _ 44) } - 'recBOT' { PT _ (TS _ 45) } - 'recOR' { PT _ (TS _ 46) } - 'refl' { PT _ (TS _ 47) } - 'refl_{' { PT _ (TS _ 48) } - 'rzk-1' { PT _ (TS _ 49) } - 'second' { PT _ (TS _ 50) } - '{' { PT _ (TS _ 51) } - '|' { PT _ (TS _ 52) } - '|->' { PT _ (TS _ 53) } - '}' { PT _ (TS _ 54) } - 'Σ' { PT _ (TS _ 55) } - '→' { PT _ (TS _ 56) } - '∑' { PT _ (TS _ 57) } + '#assume' { PT _ (TS _ 1) } + '#check' { PT _ (TS _ 2) } + '#compute' { PT _ (TS _ 3) } + '#compute-nf' { PT _ (TS _ 4) } + '#compute-whnf'{ PT _ (TS _ 5) } + '#def' { PT _ (TS _ 6) } + '#define' { PT _ (TS _ 7) } + '#end' { PT _ (TS _ 8) } + '#lang' { PT _ (TS _ 9) } + '#postulate' { PT _ (TS _ 10) } + '#section' { PT _ (TS _ 11) } + '#set-option' { PT _ (TS _ 12) } + '#unset-option'{ PT _ (TS _ 13) } + '#variable' { PT _ (TS _ 14) } + '#variables' { PT _ (TS _ 15) } + '(' { PT _ (TS _ 16) } + ')' { PT _ (TS _ 17) } + '*' { PT _ (TS _ 18) } + '*_1' { PT _ (TS _ 19) } + ',' { PT _ (TS _ 20) } + '->' { PT _ (TS _ 21) } + '/\\' { PT _ (TS _ 22) } + '0_2' { PT _ (TS _ 23) } + '1' { PT _ (TS _ 24) } + '1_2' { PT _ (TS _ 25) } + '2' { PT _ (TS _ 26) } + ':' { PT _ (TS _ 27) } + ':=' { PT _ (TS _ 28) } + ';' { PT _ (TS _ 29) } + '<' { PT _ (TS _ 30) } + '<=' { PT _ (TS _ 31) } + '=' { PT _ (TS _ 32) } + '===' { PT _ (TS _ 33) } + '=_{' { PT _ (TS _ 34) } + '>' { PT _ (TS _ 35) } + 'BOT' { PT _ (TS _ 36) } + 'CUBE' { PT _ (TS _ 37) } + 'Sigma' { PT _ (TS _ 38) } + 'TOP' { PT _ (TS _ 39) } + 'TOPE' { PT _ (TS _ 40) } + 'U' { PT _ (TS _ 41) } + '[' { PT _ (TS _ 42) } + '\\' { PT _ (TS _ 43) } + '\\/' { PT _ (TS _ 44) } + ']' { PT _ (TS _ 45) } + '_' { PT _ (TS _ 46) } + 'as' { PT _ (TS _ 47) } + 'first' { PT _ (TS _ 48) } + 'idJ' { PT _ (TS _ 49) } + 'recBOT' { PT _ (TS _ 50) } + 'recOR' { PT _ (TS _ 51) } + 'refl' { PT _ (TS _ 52) } + 'refl_{' { PT _ (TS _ 53) } + 'rzk-1' { PT _ (TS _ 54) } + 'second' { PT _ (TS _ 55) } + 'uses' { PT _ (TS _ 56) } + '{' { PT _ (TS _ 57) } + '|' { PT _ (TS _ 58) } + '|->' { PT _ (TS _ 59) } + '}' { PT _ (TS _ 60) } + 'Σ' { PT _ (TS _ 61) } + '→' { PT _ (TS _ 62) } + '∑' { PT _ (TS _ 63) } L_quoted { PT _ (TL _) } L_VarIdent { PT _ (T_VarIdent _) } L_HoleIdent { PT _ (T_HoleIdent _) } @@ -184,50 +203,56 @@ Terminals Non-terminals ----------------------------------------------------------------------------- %start_pModule_internal rule 0 - %start_pLanguageDecl_internal rule 1 - %start_pLanguage_internal rule 2 - %start_pCommand_internal rule 3 - %start_pListCommand_internal rule 4 - %start_pPattern_internal rule 5 - %start_pListPattern_internal rule 6 - %start_pParam_internal rule 7 - %start_pListParam_internal rule 8 - %start_pParamDecl_internal rule 9 - %start_pRestriction_internal rule 10 - %start_pListRestriction_internal rule 11 - %start_pTerm7_internal rule 12 - %start_pTerm5_internal rule 13 - %start_pTerm4_internal rule 14 - %start_pTerm3_internal rule 15 - %start_pTerm2_internal rule 16 - %start_pTerm1_internal rule 17 - %start_pTerm6_internal rule 18 - %start_pTerm_internal rule 19 - %start_pListTerm_internal rule 20 - String rule 21 - VarIdent rule 22 - HoleIdent rule 23 - Module rule 24 - LanguageDecl rule 25 - Language rule 26 - Command rules 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 - ListCommand rules 39, 40 - Pattern rules 41, 42, 43 - ListPattern rules 44, 45 - Param rules 46, 47, 48 - ListParam rules 49, 50 - ParamDecl rules 51, 52, 53, 54, 55, 56 - Restriction rule 57 - ListRestriction rules 58, 59 - Term7 rules 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81 - Term5 rules 82, 83 - Term4 rules 84, 85, 86 - Term3 rules 87, 88 - Term2 rules 89, 90 - Term1 rules 91, 92, 93, 94, 95, 96, 97, 98, 99 - Term6 rules 100, 101, 102, 103, 104 - Term rules 105, 106 - ListTerm rules 107, 108 + %start_pListVarIdent_internal rule 1 + %start_pLanguageDecl_internal rule 2 + %start_pLanguage_internal rule 3 + %start_pCommand_internal rule 4 + %start_pListCommand_internal rule 5 + %start_pDeclUsedVars_internal rule 6 + %start_pSectionName_internal rule 7 + %start_pPattern_internal rule 8 + %start_pListPattern_internal rule 9 + %start_pParam_internal rule 10 + %start_pListParam_internal rule 11 + %start_pParamDecl_internal rule 12 + %start_pRestriction_internal rule 13 + %start_pListRestriction_internal rule 14 + %start_pTerm7_internal rule 15 + %start_pTerm5_internal rule 16 + %start_pTerm4_internal rule 17 + %start_pTerm3_internal rule 18 + %start_pTerm2_internal rule 19 + %start_pTerm1_internal rule 20 + %start_pTerm6_internal rule 21 + %start_pTerm_internal rule 22 + %start_pListTerm_internal rule 23 + String rule 24 + VarIdent rule 25 + HoleIdent rule 26 + Module rule 27 + ListVarIdent rules 28, 29 + LanguageDecl rule 30 + Language rule 31 + Command rules 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 + ListCommand rules 48, 49 + DeclUsedVars rules 50, 51 + SectionName rules 52, 53 + Pattern rules 54, 55, 56 + ListPattern rules 57, 58 + Param rules 59, 60, 61 + ListParam rules 62, 63 + ParamDecl rules 64, 65, 66, 67, 68, 69 + Restriction rule 70 + ListRestriction rules 71, 72 + Term7 rules 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94 + Term5 rules 95, 96 + Term4 rules 97, 98, 99 + Term3 rules 100, 101 + Term2 rules 102, 103 + Term1 rules 104, 105, 106, 107, 108, 109, 110, 111, 112 + Term6 rules 113, 114, 115, 116, 117 + Term rules 118, 119 + ListTerm rules 120, 121 ----------------------------------------------------------------------------- States @@ -236,620 +261,1036 @@ State 0 %start_pModule_internal -> . Module (rule 0) - '#lang' shift, and enter state 105 + '#lang' shift, and enter state 116 - Module goto state 106 - LanguageDecl goto state 107 + Module goto state 119 + LanguageDecl goto state 120 State 1 - %start_pLanguageDecl_internal -> . LanguageDecl (rule 1) + %start_pListVarIdent_internal -> . ListVarIdent (rule 1) - '#lang' shift, and enter state 105 + L_VarIdent shift, and enter state 62 - LanguageDecl goto state 104 + VarIdent goto state 117 + ListVarIdent goto state 118 State 2 - %start_pLanguage_internal -> . Language (rule 2) + %start_pLanguageDecl_internal -> . LanguageDecl (rule 2) - 'rzk-1' shift, and enter state 103 + '#lang' shift, and enter state 116 - Language goto state 102 + LanguageDecl goto state 115 State 3 - %start_pCommand_internal -> . Command (rule 3) + %start_pLanguage_internal -> . Language (rule 3) - '#check' shift, and enter state 92 - '#compute' shift, and enter state 93 - '#compute-nf' shift, and enter state 94 - '#compute-whnf'shift, and enter state 95 - '#def' shift, and enter state 96 - '#define' shift, and enter state 97 - '#postulate' shift, and enter state 98 - '#set-option' shift, and enter state 99 - '#unset-option'shift, and enter state 100 + 'rzk-1' shift, and enter state 114 - Command goto state 101 + Language goto state 113 State 4 - %start_pListCommand_internal -> . ListCommand (rule 4) - - '#check' shift, and enter state 92 - '#compute' shift, and enter state 93 - '#compute-nf' shift, and enter state 94 - '#compute-whnf'shift, and enter state 95 - '#def' shift, and enter state 96 - '#define' shift, and enter state 97 - '#postulate' shift, and enter state 98 - '#set-option' shift, and enter state 99 - '#unset-option'shift, and enter state 100 - %eof reduce using rule 39 + %start_pCommand_internal -> . Command (rule 4) - Command goto state 90 - ListCommand goto state 91 + '#assume' shift, and enter state 99 + '#check' shift, and enter state 100 + '#compute' shift, and enter state 101 + '#compute-nf' shift, and enter state 102 + '#compute-whnf'shift, and enter state 103 + '#def' shift, and enter state 104 + '#define' shift, and enter state 105 + '#postulate' shift, and enter state 106 + '#section' shift, and enter state 107 + '#set-option' shift, and enter state 108 + '#unset-option'shift, and enter state 109 + '#variable' shift, and enter state 110 + '#variables' shift, and enter state 111 -State 5 + Command goto state 112 - %start_pPattern_internal -> . Pattern (rule 5) +State 5 - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + %start_pListCommand_internal -> . ListCommand (rule 5) + + '#assume' shift, and enter state 99 + '#check' shift, and enter state 100 + '#compute' shift, and enter state 101 + '#compute-nf' shift, and enter state 102 + '#compute-whnf'shift, and enter state 103 + '#def' shift, and enter state 104 + '#define' shift, and enter state 105 + '#postulate' shift, and enter state 106 + '#section' shift, and enter state 107 + '#set-option' shift, and enter state 108 + '#unset-option'shift, and enter state 109 + '#variable' shift, and enter state 110 + '#variables' shift, and enter state 111 + %eof reduce using rule 48 - VarIdent goto state 78 - Pattern goto state 89 + Command goto state 97 + ListCommand goto state 98 State 6 - %start_pListPattern_internal -> . ListPattern (rule 6) + %start_pDeclUsedVars_internal -> . DeclUsedVars (rule 6) - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + 'uses' shift, and enter state 96 + %eof reduce using rule 51 - VarIdent goto state 78 - Pattern goto state 86 - ListPattern goto state 87 + DeclUsedVars goto state 95 State 7 - %start_pParam_internal -> . Param (rule 7) + %start_pSectionName_internal -> . SectionName (rule 7) - '(' shift, and enter state 82 - '_' shift, and enter state 83 - '{' shift, and enter state 84 - L_VarIdent shift, and enter state 59 + L_VarIdent shift, and enter state 62 + %eof reduce using rule 52 - VarIdent goto state 78 - Pattern goto state 79 - Param goto state 85 + VarIdent goto state 93 + SectionName goto state 94 State 8 - %start_pListParam_internal -> . ListParam (rule 8) + %start_pPattern_internal -> . Pattern (rule 8) - '(' shift, and enter state 82 - '_' shift, and enter state 83 - '{' shift, and enter state 84 - L_VarIdent shift, and enter state 59 + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 - VarIdent goto state 78 - Pattern goto state 79 - Param goto state 80 - ListParam goto state 81 + VarIdent goto state 81 + Pattern goto state 92 State 9 - %start_pParamDecl_internal -> . ParamDecl (rule 9) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 76 - Term7 goto state 26 - Term6 goto state 77 + %start_pListPattern_internal -> . ListPattern (rule 9) + + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 81 + Pattern goto state 89 + ListPattern goto state 90 State 10 - %start_pRestriction_internal -> . Restriction (rule 10) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Restriction goto state 75 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 74 + %start_pParam_internal -> . Param (rule 10) + + '(' shift, and enter state 85 + '_' shift, and enter state 86 + '{' shift, and enter state 87 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 81 + Pattern goto state 82 + Param goto state 88 State 11 - %start_pListRestriction_internal -> . ListRestriction (rule 11) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Restriction goto state 72 - ListRestrictiongoto state 73 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 74 + %start_pListParam_internal -> . ListParam (rule 11) + + '(' shift, and enter state 85 + '_' shift, and enter state 86 + '{' shift, and enter state 87 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 81 + Pattern goto state 82 + Param goto state 83 + ListParam goto state 84 State 12 - %start_pTerm7_internal -> . Term7 (rule 12) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 71 + %start_pParamDecl_internal -> . ParamDecl (rule 12) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 79 + Term7 goto state 29 + Term6 goto state 80 State 13 - %start_pTerm5_internal -> . Term5 (rule 13) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 70 - Term6 goto state 67 + %start_pRestriction_internal -> . Restriction (rule 13) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Restriction goto state 78 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 77 State 14 - %start_pTerm4_internal -> . Term4 (rule 14) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 69 - Term6 goto state 67 + %start_pListRestriction_internal -> . ListRestriction (rule 14) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Restriction goto state 75 + ListRestrictiongoto state 76 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 77 State 15 - %start_pTerm3_internal -> . Term3 (rule 15) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 68 - Term6 goto state 67 + %start_pTerm7_internal -> . Term7 (rule 15) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 74 State 16 - %start_pTerm2_internal -> . Term2 (rule 16) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 66 - Term6 goto state 67 + %start_pTerm5_internal -> . Term5 (rule 16) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 73 + Term6 goto state 70 State 17 - %start_pTerm1_internal -> . Term1 (rule 17) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 65 - Term6 goto state 32 + %start_pTerm4_internal -> . Term4 (rule 17) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 72 + Term6 goto state 70 State 18 - %start_pTerm6_internal -> . Term6 (rule 18) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term6 goto state 62 + %start_pTerm3_internal -> . Term3 (rule 18) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 71 + Term6 goto state 70 State 19 - %start_pTerm_internal -> . Term (rule 19) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 61 + %start_pTerm2_internal -> . Term2 (rule 19) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 69 + Term6 goto state 70 State 20 - %start_pListTerm_internal -> . ListTerm (rule 20) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 33 - ListTerm goto state 34 + %start_pTerm1_internal -> . Term1 (rule 20) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 68 + Term6 goto state 35 State 21 - String -> . L_quoted (rule 21) + %start_pTerm6_internal -> . Term6 (rule 21) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term6 goto state 65 - L_quoted shift, and enter state 22 +State 22 + %start_pTerm_internal -> . Term (rule 22) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 64 -State 22 +State 23 - String -> L_quoted . (rule 21) + %start_pListTerm_internal -> . ListTerm (rule 23) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 36 + ListTerm goto state 37 - ';' reduce using rule 21 - '=' reduce using rule 21 +State 24 + String -> . L_quoted (rule 24) -State 23 + L_quoted shift, and enter state 25 - Term7 -> VarIdent . (rule 80) - '(' reduce using rule 80 - ')' reduce using rule 80 - '*' reduce using rule 80 - '*_1' reduce using rule 80 - ',' reduce using rule 80 - '->' reduce using rule 80 - '/\\' reduce using rule 80 - '0_2' reduce using rule 80 - '1' reduce using rule 80 - '1_2' reduce using rule 80 - '2' reduce using rule 80 - ':' reduce using rule 80 - ':=' reduce using rule 80 - ';' reduce using rule 80 - '<' reduce using rule 80 - '<=' reduce using rule 80 - '=' reduce using rule 80 - '===' reduce using rule 80 - '=_{' reduce using rule 80 - '>' reduce using rule 80 - 'BOT' reduce using rule 80 - 'CUBE' reduce using rule 80 - 'TOP' reduce using rule 80 - 'TOPE' reduce using rule 80 - 'U' reduce using rule 80 - '[' reduce using rule 80 - '\\/' reduce using rule 80 - ']' reduce using rule 80 - 'as' reduce using rule 80 - 'idJ' reduce using rule 80 - 'recBOT' reduce using rule 80 - 'recOR' reduce using rule 80 - 'refl' reduce using rule 80 - 'refl_{' reduce using rule 80 - '|' reduce using rule 80 - '|->' reduce using rule 80 - '}' reduce using rule 80 - '→' reduce using rule 80 - L_VarIdent reduce using rule 80 - L_HoleIdent reduce using rule 80 - %eof reduce using rule 80 +State 25 + String -> L_quoted . (rule 24) -State 24 + ';' reduce using rule 24 + '=' reduce using rule 24 + %eof reduce using rule 24 + + +State 26 + + Term7 -> VarIdent . (rule 93) + + '(' reduce using rule 93 + ')' reduce using rule 93 + '*' reduce using rule 93 + '*_1' reduce using rule 93 + ',' reduce using rule 93 + '->' reduce using rule 93 + '/\\' reduce using rule 93 + '0_2' reduce using rule 93 + '1' reduce using rule 93 + '1_2' reduce using rule 93 + '2' reduce using rule 93 + ':' reduce using rule 93 + ':=' reduce using rule 93 + ';' reduce using rule 93 + '<' reduce using rule 93 + '<=' reduce using rule 93 + '=' reduce using rule 93 + '===' reduce using rule 93 + '=_{' reduce using rule 93 + '>' reduce using rule 93 + 'BOT' reduce using rule 93 + 'CUBE' reduce using rule 93 + 'TOP' reduce using rule 93 + 'TOPE' reduce using rule 93 + 'U' reduce using rule 93 + '[' reduce using rule 93 + '\\/' reduce using rule 93 + ']' reduce using rule 93 + 'as' reduce using rule 93 + 'idJ' reduce using rule 93 + 'recBOT' reduce using rule 93 + 'recOR' reduce using rule 93 + 'refl' reduce using rule 93 + 'refl_{' reduce using rule 93 + '|' reduce using rule 93 + '|->' reduce using rule 93 + '}' reduce using rule 93 + '→' reduce using rule 93 + L_VarIdent reduce using rule 93 + L_HoleIdent reduce using rule 93 + %eof reduce using rule 93 + + +State 27 + + Term7 -> HoleIdent . (rule 92) + + '(' reduce using rule 92 + ')' reduce using rule 92 + '*' reduce using rule 92 + '*_1' reduce using rule 92 + ',' reduce using rule 92 + '->' reduce using rule 92 + '/\\' reduce using rule 92 + '0_2' reduce using rule 92 + '1' reduce using rule 92 + '1_2' reduce using rule 92 + '2' reduce using rule 92 + ':' reduce using rule 92 + ':=' reduce using rule 92 + ';' reduce using rule 92 + '<' reduce using rule 92 + '<=' reduce using rule 92 + '=' reduce using rule 92 + '===' reduce using rule 92 + '=_{' reduce using rule 92 + '>' reduce using rule 92 + 'BOT' reduce using rule 92 + 'CUBE' reduce using rule 92 + 'TOP' reduce using rule 92 + 'TOPE' reduce using rule 92 + 'U' reduce using rule 92 + '[' reduce using rule 92 + '\\/' reduce using rule 92 + ']' reduce using rule 92 + 'as' reduce using rule 92 + 'idJ' reduce using rule 92 + 'recBOT' reduce using rule 92 + 'recOR' reduce using rule 92 + 'refl' reduce using rule 92 + 'refl_{' reduce using rule 92 + '|' reduce using rule 92 + '|->' reduce using rule 92 + '}' reduce using rule 92 + '→' reduce using rule 92 + L_VarIdent reduce using rule 92 + L_HoleIdent reduce using rule 92 + %eof reduce using rule 92 + + +State 28 + + Term1 -> ParamDecl . '->' Term1 (rule 104) + Term1 -> ParamDecl . '→' Term1 (rule 110) + + '->' shift, and enter state 173 + '→' shift, and enter state 174 + + +State 29 + + Term6 -> Term7 . (rule 117) + + '(' reduce using rule 117 + ')' reduce using rule 117 + '*' reduce using rule 117 + '*_1' reduce using rule 117 + ',' reduce using rule 117 + '->' reduce using rule 117 + '/\\' reduce using rule 117 + '0_2' reduce using rule 117 + '1' reduce using rule 117 + '1_2' reduce using rule 117 + '2' reduce using rule 117 + ':' reduce using rule 117 + ':=' reduce using rule 117 + ';' reduce using rule 117 + '<' reduce using rule 117 + '<=' reduce using rule 117 + '=' reduce using rule 117 + '===' reduce using rule 117 + '=_{' reduce using rule 117 + '>' reduce using rule 117 + 'BOT' reduce using rule 117 + 'CUBE' reduce using rule 117 + 'TOP' reduce using rule 117 + 'TOPE' reduce using rule 117 + 'U' reduce using rule 117 + '[' reduce using rule 117 + '\\/' reduce using rule 117 + ']' reduce using rule 117 + 'as' reduce using rule 117 + 'idJ' reduce using rule 117 + 'recBOT' reduce using rule 117 + 'recOR' reduce using rule 117 + 'refl' reduce using rule 117 + 'refl_{' reduce using rule 117 + '|' reduce using rule 117 + '|->' reduce using rule 117 + '}' reduce using rule 117 + '→' reduce using rule 117 + L_VarIdent reduce using rule 117 + L_HoleIdent reduce using rule 117 + %eof reduce using rule 117 + + +State 30 + + Term5 -> Term5 . '*' Term6 (rule 95) + Term4 -> Term5 . '===' Term5 (rule 97) + Term4 -> Term5 . '<=' Term5 (rule 98) + Term4 -> Term5 . (rule 99) + + ')' reduce using rule 99 + '*' shift, and enter state 149 + ',' reduce using rule 99 + '/\\' reduce using rule 99 + ':' reduce using rule 99 + ':=' reduce using rule 99 + ';' reduce using rule 99 + '<=' shift, and enter state 171 + '=' reduce using rule 99 + '===' shift, and enter state 172 + '=_{' reduce using rule 99 + '>' reduce using rule 99 + '\\/' reduce using rule 99 + ']' reduce using rule 99 + 'as' reduce using rule 99 + '|' reduce using rule 99 + '|->' reduce using rule 99 + '}' reduce using rule 99 + %eof reduce using rule 99 + + +State 31 + + Term3 -> Term4 . '/\\' Term3 (rule 100) + Term3 -> Term4 . (rule 101) + + ')' reduce using rule 101 + ',' reduce using rule 101 + '/\\' shift, and enter state 170 + ':' reduce using rule 101 + ':=' reduce using rule 101 + ';' reduce using rule 101 + '=' reduce using rule 101 + '=_{' reduce using rule 101 + '>' reduce using rule 101 + '\\/' reduce using rule 101 + ']' reduce using rule 101 + 'as' reduce using rule 101 + '|' reduce using rule 101 + '|->' reduce using rule 101 + '}' reduce using rule 101 + %eof reduce using rule 101 + + +State 32 + + Term2 -> Term3 . '\\/' Term2 (rule 102) + Term2 -> Term3 . (rule 103) + + ')' reduce using rule 103 + ',' reduce using rule 103 + ':' reduce using rule 103 + ':=' reduce using rule 103 + ';' reduce using rule 103 + '=' reduce using rule 103 + '=_{' reduce using rule 103 + '>' reduce using rule 103 + '\\/' shift, and enter state 169 + ']' reduce using rule 103 + 'as' reduce using rule 103 + '|' reduce using rule 103 + '|->' reduce using rule 103 + '}' reduce using rule 103 + %eof reduce using rule 103 + + +State 33 + + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 106) + Term1 -> Term2 . '=' Term2 (rule 107) + Term1 -> Term2 . (rule 109) + Term -> Term2 . 'as' Term1 (rule 118) + + ')' reduce using rule 109 + ',' reduce using rule 109 + ':' reduce using rule 109 + ':=' reduce using rule 109 + ';' reduce using rule 109 + '=' shift, and enter state 150 + '=_{' shift, and enter state 151 + '>' reduce using rule 109 + ']' reduce using rule 109 + 'as' shift, and enter state 168 + '|' reduce using rule 109 + '|->' reduce using rule 109 + '}' reduce using rule 109 + %eof reduce using rule 109 + + +State 34 + + Term -> Term1 . (rule 119) + + ')' reduce using rule 119 + ',' reduce using rule 119 + ':' reduce using rule 119 + ':=' reduce using rule 119 + ';' reduce using rule 119 + '>' reduce using rule 119 + ']' reduce using rule 119 + '|' reduce using rule 119 + '|->' reduce using rule 119 + '}' reduce using rule 119 + %eof reduce using rule 119 + + +State 35 + + ParamDecl -> Term6 . (rule 64) + Term5 -> Term6 . (rule 96) + Term6 -> Term6 . '[' ListRestriction ']' (rule 113) + Term6 -> Term6 . Term7 (rule 114) + + '(' shift, and enter state 66 + ')' reduce using rule 96 + '*' reduce using rule 96 + '*_1' shift, and enter state 39 + ',' reduce using rule 96 + '->' reduce using rule 64 + '/\\' reduce using rule 96 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + ':' reduce using rule 96 + ':=' reduce using rule 96 + ';' reduce using rule 96 + '<' shift, and enter state 44 + '<=' reduce using rule 96 + '=' reduce using rule 96 + '===' reduce using rule 96 + '=_{' reduce using rule 96 + '>' reduce using rule 96 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '[' shift, and enter state 146 + '\\/' reduce using rule 96 + ']' reduce using rule 96 + 'as' reduce using rule 96 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + '|' reduce using rule 96 + '|->' reduce using rule 96 + '}' reduce using rule 96 + '→' reduce using rule 64 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + %eof reduce using rule 96 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 145 + +State 36 + + ListTerm -> Term . (rule 120) + ListTerm -> Term . ',' ListTerm (rule 121) - Term7 -> HoleIdent . (rule 79) + ',' shift, and enter state 167 + %eof reduce using rule 120 + + +State 37 + + %start_pListTerm_internal -> ListTerm . (rule 23) + + %eof accept + + +State 38 + + ParamDecl -> '(' . '_' ':' Term ')' (rule 65) + ParamDecl -> '(' . VarIdent ':' Term ')' (rule 67) + Term7 -> '(' . Term ',' Term ')' (rule 87) + Term7 -> '(' . Term ')' (rule 94) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + '_' shift, and enter state 166 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 165 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 152 + +State 39 + + Term7 -> '*_1' . (rule 77) + + '(' reduce using rule 77 + ')' reduce using rule 77 + '*' reduce using rule 77 + '*_1' reduce using rule 77 + ',' reduce using rule 77 + '->' reduce using rule 77 + '/\\' reduce using rule 77 + '0_2' reduce using rule 77 + '1' reduce using rule 77 + '1_2' reduce using rule 77 + '2' reduce using rule 77 + ':' reduce using rule 77 + ':=' reduce using rule 77 + ';' reduce using rule 77 + '<' reduce using rule 77 + '<=' reduce using rule 77 + '=' reduce using rule 77 + '===' reduce using rule 77 + '=_{' reduce using rule 77 + '>' reduce using rule 77 + 'BOT' reduce using rule 77 + 'CUBE' reduce using rule 77 + 'TOP' reduce using rule 77 + 'TOPE' reduce using rule 77 + 'U' reduce using rule 77 + '[' reduce using rule 77 + '\\/' reduce using rule 77 + ']' reduce using rule 77 + 'as' reduce using rule 77 + 'idJ' reduce using rule 77 + 'recBOT' reduce using rule 77 + 'recOR' reduce using rule 77 + 'refl' reduce using rule 77 + 'refl_{' reduce using rule 77 + '|' reduce using rule 77 + '|->' reduce using rule 77 + '}' reduce using rule 77 + '→' reduce using rule 77 + L_VarIdent reduce using rule 77 + L_HoleIdent reduce using rule 77 + %eof reduce using rule 77 + + +State 40 + + Term7 -> '0_2' . (rule 79) '(' reduce using rule 79 ')' reduce using rule 79 @@ -894,908 +1335,331 @@ State 24 %eof reduce using rule 79 -State 25 - - Term1 -> ParamDecl . '->' Term1 (rule 91) - Term1 -> ParamDecl . '→' Term1 (rule 97) - - '->' shift, and enter state 154 - '→' shift, and enter state 155 +State 41 + Term7 -> '1' . (rule 76) -State 26 - - Term6 -> Term7 . (rule 104) - - '(' reduce using rule 104 - ')' reduce using rule 104 - '*' reduce using rule 104 - '*_1' reduce using rule 104 - ',' reduce using rule 104 - '->' reduce using rule 104 - '/\\' reduce using rule 104 - '0_2' reduce using rule 104 - '1' reduce using rule 104 - '1_2' reduce using rule 104 - '2' reduce using rule 104 - ':' reduce using rule 104 - ':=' reduce using rule 104 - ';' reduce using rule 104 - '<' reduce using rule 104 - '<=' reduce using rule 104 - '=' reduce using rule 104 - '===' reduce using rule 104 - '=_{' reduce using rule 104 - '>' reduce using rule 104 - 'BOT' reduce using rule 104 - 'CUBE' reduce using rule 104 - 'TOP' reduce using rule 104 - 'TOPE' reduce using rule 104 - 'U' reduce using rule 104 - '[' reduce using rule 104 - '\\/' reduce using rule 104 - ']' reduce using rule 104 - 'as' reduce using rule 104 - 'idJ' reduce using rule 104 - 'recBOT' reduce using rule 104 - 'recOR' reduce using rule 104 - 'refl' reduce using rule 104 - 'refl_{' reduce using rule 104 - '|' reduce using rule 104 - '|->' reduce using rule 104 - '}' reduce using rule 104 - '→' reduce using rule 104 - L_VarIdent reduce using rule 104 - L_HoleIdent reduce using rule 104 - %eof reduce using rule 104 - - -State 27 - - Term5 -> Term5 . '*' Term6 (rule 82) - Term4 -> Term5 . '===' Term5 (rule 84) - Term4 -> Term5 . '<=' Term5 (rule 85) - Term4 -> Term5 . (rule 86) - - ')' reduce using rule 86 - '*' shift, and enter state 130 - ',' reduce using rule 86 - '/\\' reduce using rule 86 - ':' reduce using rule 86 - ':=' reduce using rule 86 - ';' reduce using rule 86 - '<=' shift, and enter state 152 - '=' reduce using rule 86 - '===' shift, and enter state 153 - '=_{' reduce using rule 86 - '>' reduce using rule 86 - '\\/' reduce using rule 86 - ']' reduce using rule 86 - 'as' reduce using rule 86 - '|' reduce using rule 86 - '|->' reduce using rule 86 - '}' reduce using rule 86 - %eof reduce using rule 86 - - -State 28 - - Term3 -> Term4 . '/\\' Term3 (rule 87) - Term3 -> Term4 . (rule 88) - - ')' reduce using rule 88 - ',' reduce using rule 88 - '/\\' shift, and enter state 151 - ':' reduce using rule 88 - ':=' reduce using rule 88 - ';' reduce using rule 88 - '=' reduce using rule 88 - '=_{' reduce using rule 88 - '>' reduce using rule 88 - '\\/' reduce using rule 88 - ']' reduce using rule 88 - 'as' reduce using rule 88 - '|' reduce using rule 88 - '|->' reduce using rule 88 - '}' reduce using rule 88 - %eof reduce using rule 88 - - -State 29 - - Term2 -> Term3 . '\\/' Term2 (rule 89) - Term2 -> Term3 . (rule 90) - - ')' reduce using rule 90 - ',' reduce using rule 90 - ':' reduce using rule 90 - ':=' reduce using rule 90 - ';' reduce using rule 90 - '=' reduce using rule 90 - '=_{' reduce using rule 90 - '>' reduce using rule 90 - '\\/' shift, and enter state 150 - ']' reduce using rule 90 - 'as' reduce using rule 90 - '|' reduce using rule 90 - '|->' reduce using rule 90 - '}' reduce using rule 90 - %eof reduce using rule 90 - - -State 30 - - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 93) - Term1 -> Term2 . '=' Term2 (rule 94) - Term1 -> Term2 . (rule 96) - Term -> Term2 . 'as' Term1 (rule 105) - - ')' reduce using rule 96 - ',' reduce using rule 96 - ':' reduce using rule 96 - ':=' reduce using rule 96 - ';' reduce using rule 96 - '=' shift, and enter state 131 - '=_{' shift, and enter state 132 - '>' reduce using rule 96 - ']' reduce using rule 96 - 'as' shift, and enter state 149 - '|' reduce using rule 96 - '|->' reduce using rule 96 - '}' reduce using rule 96 - %eof reduce using rule 96 - - -State 31 - - Term -> Term1 . (rule 106) - - ')' reduce using rule 106 - ',' reduce using rule 106 - ':' reduce using rule 106 - ':=' reduce using rule 106 - ';' reduce using rule 106 - '>' reduce using rule 106 - ']' reduce using rule 106 - '|' reduce using rule 106 - '|->' reduce using rule 106 - '}' reduce using rule 106 - %eof reduce using rule 106 - - -State 32 - - ParamDecl -> Term6 . (rule 51) - Term5 -> Term6 . (rule 83) - Term6 -> Term6 . '[' ListRestriction ']' (rule 100) - Term6 -> Term6 . Term7 (rule 101) - - '(' shift, and enter state 63 - ')' reduce using rule 83 - '*' reduce using rule 83 - '*_1' shift, and enter state 36 - ',' reduce using rule 83 - '->' reduce using rule 51 - '/\\' reduce using rule 83 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - ':' reduce using rule 83 - ':=' reduce using rule 83 - ';' reduce using rule 83 - '<' shift, and enter state 41 - '<=' reduce using rule 83 - '=' reduce using rule 83 - '===' reduce using rule 83 - '=_{' reduce using rule 83 - '>' reduce using rule 83 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '[' shift, and enter state 127 - '\\/' reduce using rule 83 - ']' reduce using rule 83 - 'as' reduce using rule 83 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - '|' reduce using rule 83 - '|->' reduce using rule 83 - '}' reduce using rule 83 - '→' reduce using rule 51 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - %eof reduce using rule 83 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 126 - -State 33 - - ListTerm -> Term . (rule 107) - ListTerm -> Term . ',' ListTerm (rule 108) - - ',' shift, and enter state 148 - %eof reduce using rule 107 - - -State 34 - - %start_pListTerm_internal -> ListTerm . (rule 20) - - %eof accept - - -State 35 - - ParamDecl -> '(' . '_' ':' Term ')' (rule 52) - ParamDecl -> '(' . VarIdent ':' Term ')' (rule 54) - Term7 -> '(' . Term ',' Term ')' (rule 74) - Term7 -> '(' . Term ')' (rule 81) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - '_' shift, and enter state 147 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 146 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 133 - -State 36 - - Term7 -> '*_1' . (rule 64) - - '(' reduce using rule 64 - ')' reduce using rule 64 - '*' reduce using rule 64 - '*_1' reduce using rule 64 - ',' reduce using rule 64 - '->' reduce using rule 64 - '/\\' reduce using rule 64 - '0_2' reduce using rule 64 - '1' reduce using rule 64 - '1_2' reduce using rule 64 - '2' reduce using rule 64 - ':' reduce using rule 64 - ':=' reduce using rule 64 - ';' reduce using rule 64 - '<' reduce using rule 64 - '<=' reduce using rule 64 - '=' reduce using rule 64 - '===' reduce using rule 64 - '=_{' reduce using rule 64 - '>' reduce using rule 64 - 'BOT' reduce using rule 64 - 'CUBE' reduce using rule 64 - 'TOP' reduce using rule 64 - 'TOPE' reduce using rule 64 - 'U' reduce using rule 64 - '[' reduce using rule 64 - '\\/' reduce using rule 64 - ']' reduce using rule 64 - 'as' reduce using rule 64 - 'idJ' reduce using rule 64 - 'recBOT' reduce using rule 64 - 'recOR' reduce using rule 64 - 'refl' reduce using rule 64 - 'refl_{' reduce using rule 64 - '|' reduce using rule 64 - '|->' reduce using rule 64 - '}' reduce using rule 64 - '→' reduce using rule 64 - L_VarIdent reduce using rule 64 - L_HoleIdent reduce using rule 64 - %eof reduce using rule 64 - - -State 37 - - Term7 -> '0_2' . (rule 66) - - '(' reduce using rule 66 - ')' reduce using rule 66 - '*' reduce using rule 66 - '*_1' reduce using rule 66 - ',' reduce using rule 66 - '->' reduce using rule 66 - '/\\' reduce using rule 66 - '0_2' reduce using rule 66 - '1' reduce using rule 66 - '1_2' reduce using rule 66 - '2' reduce using rule 66 - ':' reduce using rule 66 - ':=' reduce using rule 66 - ';' reduce using rule 66 - '<' reduce using rule 66 - '<=' reduce using rule 66 - '=' reduce using rule 66 - '===' reduce using rule 66 - '=_{' reduce using rule 66 - '>' reduce using rule 66 - 'BOT' reduce using rule 66 - 'CUBE' reduce using rule 66 - 'TOP' reduce using rule 66 - 'TOPE' reduce using rule 66 - 'U' reduce using rule 66 - '[' reduce using rule 66 - '\\/' reduce using rule 66 - ']' reduce using rule 66 - 'as' reduce using rule 66 - 'idJ' reduce using rule 66 - 'recBOT' reduce using rule 66 - 'recOR' reduce using rule 66 - 'refl' reduce using rule 66 - 'refl_{' reduce using rule 66 - '|' reduce using rule 66 - '|->' reduce using rule 66 - '}' reduce using rule 66 - '→' reduce using rule 66 - L_VarIdent reduce using rule 66 - L_HoleIdent reduce using rule 66 - %eof reduce using rule 66 - - -State 38 - - Term7 -> '1' . (rule 63) - - '(' reduce using rule 63 - ')' reduce using rule 63 - '*' reduce using rule 63 - '*_1' reduce using rule 63 - ',' reduce using rule 63 - '->' reduce using rule 63 - '/\\' reduce using rule 63 - '0_2' reduce using rule 63 - '1' reduce using rule 63 - '1_2' reduce using rule 63 - '2' reduce using rule 63 - ':' reduce using rule 63 - ':=' reduce using rule 63 - ';' reduce using rule 63 - '<' reduce using rule 63 - '<=' reduce using rule 63 - '=' reduce using rule 63 - '===' reduce using rule 63 - '=_{' reduce using rule 63 - '>' reduce using rule 63 - 'BOT' reduce using rule 63 - 'CUBE' reduce using rule 63 - 'TOP' reduce using rule 63 - 'TOPE' reduce using rule 63 - 'U' reduce using rule 63 - '[' reduce using rule 63 - '\\/' reduce using rule 63 - ']' reduce using rule 63 - 'as' reduce using rule 63 - 'idJ' reduce using rule 63 - 'recBOT' reduce using rule 63 - 'recOR' reduce using rule 63 - 'refl' reduce using rule 63 - 'refl_{' reduce using rule 63 - '|' reduce using rule 63 - '|->' reduce using rule 63 - '}' reduce using rule 63 - '→' reduce using rule 63 - L_VarIdent reduce using rule 63 - L_HoleIdent reduce using rule 63 - %eof reduce using rule 63 - - -State 39 - - Term7 -> '1_2' . (rule 67) - - '(' reduce using rule 67 - ')' reduce using rule 67 - '*' reduce using rule 67 - '*_1' reduce using rule 67 - ',' reduce using rule 67 - '->' reduce using rule 67 - '/\\' reduce using rule 67 - '0_2' reduce using rule 67 - '1' reduce using rule 67 - '1_2' reduce using rule 67 - '2' reduce using rule 67 - ':' reduce using rule 67 - ':=' reduce using rule 67 - ';' reduce using rule 67 - '<' reduce using rule 67 - '<=' reduce using rule 67 - '=' reduce using rule 67 - '===' reduce using rule 67 - '=_{' reduce using rule 67 - '>' reduce using rule 67 - 'BOT' reduce using rule 67 - 'CUBE' reduce using rule 67 - 'TOP' reduce using rule 67 - 'TOPE' reduce using rule 67 - 'U' reduce using rule 67 - '[' reduce using rule 67 - '\\/' reduce using rule 67 - ']' reduce using rule 67 - 'as' reduce using rule 67 - 'idJ' reduce using rule 67 - 'recBOT' reduce using rule 67 - 'recOR' reduce using rule 67 - 'refl' reduce using rule 67 - 'refl_{' reduce using rule 67 - '|' reduce using rule 67 - '|->' reduce using rule 67 - '}' reduce using rule 67 - '→' reduce using rule 67 - L_VarIdent reduce using rule 67 - L_HoleIdent reduce using rule 67 - %eof reduce using rule 67 - - -State 40 - - Term7 -> '2' . (rule 65) - - '(' reduce using rule 65 - ')' reduce using rule 65 - '*' reduce using rule 65 - '*_1' reduce using rule 65 - ',' reduce using rule 65 - '->' reduce using rule 65 - '/\\' reduce using rule 65 - '0_2' reduce using rule 65 - '1' reduce using rule 65 - '1_2' reduce using rule 65 - '2' reduce using rule 65 - ':' reduce using rule 65 - ':=' reduce using rule 65 - ';' reduce using rule 65 - '<' reduce using rule 65 - '<=' reduce using rule 65 - '=' reduce using rule 65 - '===' reduce using rule 65 - '=_{' reduce using rule 65 - '>' reduce using rule 65 - 'BOT' reduce using rule 65 - 'CUBE' reduce using rule 65 - 'TOP' reduce using rule 65 - 'TOPE' reduce using rule 65 - 'U' reduce using rule 65 - '[' reduce using rule 65 - '\\/' reduce using rule 65 - ']' reduce using rule 65 - 'as' reduce using rule 65 - 'idJ' reduce using rule 65 - 'recBOT' reduce using rule 65 - 'recOR' reduce using rule 65 - 'refl' reduce using rule 65 - 'refl_{' reduce using rule 65 - '|' reduce using rule 65 - '|->' reduce using rule 65 - '}' reduce using rule 65 - '→' reduce using rule 65 - L_VarIdent reduce using rule 65 - L_HoleIdent reduce using rule 65 - %eof reduce using rule 65 - - -State 41 + '(' reduce using rule 76 + ')' reduce using rule 76 + '*' reduce using rule 76 + '*_1' reduce using rule 76 + ',' reduce using rule 76 + '->' reduce using rule 76 + '/\\' reduce using rule 76 + '0_2' reduce using rule 76 + '1' reduce using rule 76 + '1_2' reduce using rule 76 + '2' reduce using rule 76 + ':' reduce using rule 76 + ':=' reduce using rule 76 + ';' reduce using rule 76 + '<' reduce using rule 76 + '<=' reduce using rule 76 + '=' reduce using rule 76 + '===' reduce using rule 76 + '=_{' reduce using rule 76 + '>' reduce using rule 76 + 'BOT' reduce using rule 76 + 'CUBE' reduce using rule 76 + 'TOP' reduce using rule 76 + 'TOPE' reduce using rule 76 + 'U' reduce using rule 76 + '[' reduce using rule 76 + '\\/' reduce using rule 76 + ']' reduce using rule 76 + 'as' reduce using rule 76 + 'idJ' reduce using rule 76 + 'recBOT' reduce using rule 76 + 'recOR' reduce using rule 76 + 'refl' reduce using rule 76 + 'refl_{' reduce using rule 76 + '|' reduce using rule 76 + '|->' reduce using rule 76 + '}' reduce using rule 76 + '→' reduce using rule 76 + L_VarIdent reduce using rule 76 + L_HoleIdent reduce using rule 76 + %eof reduce using rule 76 - Term7 -> '<' . ParamDecl '->' Term '>' (rule 73) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 145 - Term7 goto state 26 - Term6 goto state 77 State 42 - Term7 -> 'BOT' . (rule 69) + Term7 -> '1_2' . (rule 80) - '(' reduce using rule 69 - ')' reduce using rule 69 - '*' reduce using rule 69 - '*_1' reduce using rule 69 - ',' reduce using rule 69 - '->' reduce using rule 69 - '/\\' reduce using rule 69 - '0_2' reduce using rule 69 - '1' reduce using rule 69 - '1_2' reduce using rule 69 - '2' reduce using rule 69 - ':' reduce using rule 69 - ':=' reduce using rule 69 - ';' reduce using rule 69 - '<' reduce using rule 69 - '<=' reduce using rule 69 - '=' reduce using rule 69 - '===' reduce using rule 69 - '=_{' reduce using rule 69 - '>' reduce using rule 69 - 'BOT' reduce using rule 69 - 'CUBE' reduce using rule 69 - 'TOP' reduce using rule 69 - 'TOPE' reduce using rule 69 - 'U' reduce using rule 69 - '[' reduce using rule 69 - '\\/' reduce using rule 69 - ']' reduce using rule 69 - 'as' reduce using rule 69 - 'idJ' reduce using rule 69 - 'recBOT' reduce using rule 69 - 'recOR' reduce using rule 69 - 'refl' reduce using rule 69 - 'refl_{' reduce using rule 69 - '|' reduce using rule 69 - '|->' reduce using rule 69 - '}' reduce using rule 69 - '→' reduce using rule 69 - L_VarIdent reduce using rule 69 - L_HoleIdent reduce using rule 69 - %eof reduce using rule 69 + '(' reduce using rule 80 + ')' reduce using rule 80 + '*' reduce using rule 80 + '*_1' reduce using rule 80 + ',' reduce using rule 80 + '->' reduce using rule 80 + '/\\' reduce using rule 80 + '0_2' reduce using rule 80 + '1' reduce using rule 80 + '1_2' reduce using rule 80 + '2' reduce using rule 80 + ':' reduce using rule 80 + ':=' reduce using rule 80 + ';' reduce using rule 80 + '<' reduce using rule 80 + '<=' reduce using rule 80 + '=' reduce using rule 80 + '===' reduce using rule 80 + '=_{' reduce using rule 80 + '>' reduce using rule 80 + 'BOT' reduce using rule 80 + 'CUBE' reduce using rule 80 + 'TOP' reduce using rule 80 + 'TOPE' reduce using rule 80 + 'U' reduce using rule 80 + '[' reduce using rule 80 + '\\/' reduce using rule 80 + ']' reduce using rule 80 + 'as' reduce using rule 80 + 'idJ' reduce using rule 80 + 'recBOT' reduce using rule 80 + 'recOR' reduce using rule 80 + 'refl' reduce using rule 80 + 'refl_{' reduce using rule 80 + '|' reduce using rule 80 + '|->' reduce using rule 80 + '}' reduce using rule 80 + '→' reduce using rule 80 + L_VarIdent reduce using rule 80 + L_HoleIdent reduce using rule 80 + %eof reduce using rule 80 State 43 - Term7 -> 'CUBE' . (rule 61) + Term7 -> '2' . (rule 78) - '(' reduce using rule 61 - ')' reduce using rule 61 - '*' reduce using rule 61 - '*_1' reduce using rule 61 - ',' reduce using rule 61 - '->' reduce using rule 61 - '/\\' reduce using rule 61 - '0_2' reduce using rule 61 - '1' reduce using rule 61 - '1_2' reduce using rule 61 - '2' reduce using rule 61 - ':' reduce using rule 61 - ':=' reduce using rule 61 - ';' reduce using rule 61 - '<' reduce using rule 61 - '<=' reduce using rule 61 - '=' reduce using rule 61 - '===' reduce using rule 61 - '=_{' reduce using rule 61 - '>' reduce using rule 61 - 'BOT' reduce using rule 61 - 'CUBE' reduce using rule 61 - 'TOP' reduce using rule 61 - 'TOPE' reduce using rule 61 - 'U' reduce using rule 61 - '[' reduce using rule 61 - '\\/' reduce using rule 61 - ']' reduce using rule 61 - 'as' reduce using rule 61 - 'idJ' reduce using rule 61 - 'recBOT' reduce using rule 61 - 'recOR' reduce using rule 61 - 'refl' reduce using rule 61 - 'refl_{' reduce using rule 61 - '|' reduce using rule 61 - '|->' reduce using rule 61 - '}' reduce using rule 61 - '→' reduce using rule 61 - L_VarIdent reduce using rule 61 - L_HoleIdent reduce using rule 61 - %eof reduce using rule 61 + '(' reduce using rule 78 + ')' reduce using rule 78 + '*' reduce using rule 78 + '*_1' reduce using rule 78 + ',' reduce using rule 78 + '->' reduce using rule 78 + '/\\' reduce using rule 78 + '0_2' reduce using rule 78 + '1' reduce using rule 78 + '1_2' reduce using rule 78 + '2' reduce using rule 78 + ':' reduce using rule 78 + ':=' reduce using rule 78 + ';' reduce using rule 78 + '<' reduce using rule 78 + '<=' reduce using rule 78 + '=' reduce using rule 78 + '===' reduce using rule 78 + '=_{' reduce using rule 78 + '>' reduce using rule 78 + 'BOT' reduce using rule 78 + 'CUBE' reduce using rule 78 + 'TOP' reduce using rule 78 + 'TOPE' reduce using rule 78 + 'U' reduce using rule 78 + '[' reduce using rule 78 + '\\/' reduce using rule 78 + ']' reduce using rule 78 + 'as' reduce using rule 78 + 'idJ' reduce using rule 78 + 'recBOT' reduce using rule 78 + 'recOR' reduce using rule 78 + 'refl' reduce using rule 78 + 'refl_{' reduce using rule 78 + '|' reduce using rule 78 + '|->' reduce using rule 78 + '}' reduce using rule 78 + '→' reduce using rule 78 + L_VarIdent reduce using rule 78 + L_HoleIdent reduce using rule 78 + %eof reduce using rule 78 State 44 - Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 92) - - '(' shift, and enter state 144 - + Term7 -> '<' . ParamDecl '->' Term '>' (rule 86) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 164 + Term7 goto state 29 + Term6 goto state 80 State 45 - Term7 -> 'TOP' . (rule 68) + Term7 -> 'BOT' . (rule 82) - '(' reduce using rule 68 - ')' reduce using rule 68 - '*' reduce using rule 68 - '*_1' reduce using rule 68 - ',' reduce using rule 68 - '->' reduce using rule 68 - '/\\' reduce using rule 68 - '0_2' reduce using rule 68 - '1' reduce using rule 68 - '1_2' reduce using rule 68 - '2' reduce using rule 68 - ':' reduce using rule 68 - ':=' reduce using rule 68 - ';' reduce using rule 68 - '<' reduce using rule 68 - '<=' reduce using rule 68 - '=' reduce using rule 68 - '===' reduce using rule 68 - '=_{' reduce using rule 68 - '>' reduce using rule 68 - 'BOT' reduce using rule 68 - 'CUBE' reduce using rule 68 - 'TOP' reduce using rule 68 - 'TOPE' reduce using rule 68 - 'U' reduce using rule 68 - '[' reduce using rule 68 - '\\/' reduce using rule 68 - ']' reduce using rule 68 - 'as' reduce using rule 68 - 'idJ' reduce using rule 68 - 'recBOT' reduce using rule 68 - 'recOR' reduce using rule 68 - 'refl' reduce using rule 68 - 'refl_{' reduce using rule 68 - '|' reduce using rule 68 - '|->' reduce using rule 68 - '}' reduce using rule 68 - '→' reduce using rule 68 - L_VarIdent reduce using rule 68 - L_HoleIdent reduce using rule 68 - %eof reduce using rule 68 + '(' reduce using rule 82 + ')' reduce using rule 82 + '*' reduce using rule 82 + '*_1' reduce using rule 82 + ',' reduce using rule 82 + '->' reduce using rule 82 + '/\\' reduce using rule 82 + '0_2' reduce using rule 82 + '1' reduce using rule 82 + '1_2' reduce using rule 82 + '2' reduce using rule 82 + ':' reduce using rule 82 + ':=' reduce using rule 82 + ';' reduce using rule 82 + '<' reduce using rule 82 + '<=' reduce using rule 82 + '=' reduce using rule 82 + '===' reduce using rule 82 + '=_{' reduce using rule 82 + '>' reduce using rule 82 + 'BOT' reduce using rule 82 + 'CUBE' reduce using rule 82 + 'TOP' reduce using rule 82 + 'TOPE' reduce using rule 82 + 'U' reduce using rule 82 + '[' reduce using rule 82 + '\\/' reduce using rule 82 + ']' reduce using rule 82 + 'as' reduce using rule 82 + 'idJ' reduce using rule 82 + 'recBOT' reduce using rule 82 + 'recOR' reduce using rule 82 + 'refl' reduce using rule 82 + 'refl_{' reduce using rule 82 + '|' reduce using rule 82 + '|->' reduce using rule 82 + '}' reduce using rule 82 + '→' reduce using rule 82 + L_VarIdent reduce using rule 82 + L_HoleIdent reduce using rule 82 + %eof reduce using rule 82 State 46 - Term7 -> 'TOPE' . (rule 62) + Term7 -> 'CUBE' . (rule 74) - '(' reduce using rule 62 - ')' reduce using rule 62 - '*' reduce using rule 62 - '*_1' reduce using rule 62 - ',' reduce using rule 62 - '->' reduce using rule 62 - '/\\' reduce using rule 62 - '0_2' reduce using rule 62 - '1' reduce using rule 62 - '1_2' reduce using rule 62 - '2' reduce using rule 62 - ':' reduce using rule 62 - ':=' reduce using rule 62 - ';' reduce using rule 62 - '<' reduce using rule 62 - '<=' reduce using rule 62 - '=' reduce using rule 62 - '===' reduce using rule 62 - '=_{' reduce using rule 62 - '>' reduce using rule 62 - 'BOT' reduce using rule 62 - 'CUBE' reduce using rule 62 - 'TOP' reduce using rule 62 - 'TOPE' reduce using rule 62 - 'U' reduce using rule 62 - '[' reduce using rule 62 - '\\/' reduce using rule 62 - ']' reduce using rule 62 - 'as' reduce using rule 62 - 'idJ' reduce using rule 62 - 'recBOT' reduce using rule 62 - 'recOR' reduce using rule 62 - 'refl' reduce using rule 62 - 'refl_{' reduce using rule 62 - '|' reduce using rule 62 - '|->' reduce using rule 62 - '}' reduce using rule 62 - '→' reduce using rule 62 - L_VarIdent reduce using rule 62 - L_HoleIdent reduce using rule 62 - %eof reduce using rule 62 + '(' reduce using rule 74 + ')' reduce using rule 74 + '*' reduce using rule 74 + '*_1' reduce using rule 74 + ',' reduce using rule 74 + '->' reduce using rule 74 + '/\\' reduce using rule 74 + '0_2' reduce using rule 74 + '1' reduce using rule 74 + '1_2' reduce using rule 74 + '2' reduce using rule 74 + ':' reduce using rule 74 + ':=' reduce using rule 74 + ';' reduce using rule 74 + '<' reduce using rule 74 + '<=' reduce using rule 74 + '=' reduce using rule 74 + '===' reduce using rule 74 + '=_{' reduce using rule 74 + '>' reduce using rule 74 + 'BOT' reduce using rule 74 + 'CUBE' reduce using rule 74 + 'TOP' reduce using rule 74 + 'TOPE' reduce using rule 74 + 'U' reduce using rule 74 + '[' reduce using rule 74 + '\\/' reduce using rule 74 + ']' reduce using rule 74 + 'as' reduce using rule 74 + 'idJ' reduce using rule 74 + 'recBOT' reduce using rule 74 + 'recOR' reduce using rule 74 + 'refl' reduce using rule 74 + 'refl_{' reduce using rule 74 + '|' reduce using rule 74 + '|->' reduce using rule 74 + '}' reduce using rule 74 + '→' reduce using rule 74 + L_VarIdent reduce using rule 74 + L_HoleIdent reduce using rule 74 + %eof reduce using rule 74 State 47 - Term7 -> 'U' . (rule 60) + Term1 -> 'Sigma' . '(' Pattern ':' Term ')' ',' Term1 (rule 105) - '(' reduce using rule 60 - ')' reduce using rule 60 - '*' reduce using rule 60 - '*_1' reduce using rule 60 - ',' reduce using rule 60 - '->' reduce using rule 60 - '/\\' reduce using rule 60 - '0_2' reduce using rule 60 - '1' reduce using rule 60 - '1_2' reduce using rule 60 - '2' reduce using rule 60 - ':' reduce using rule 60 - ':=' reduce using rule 60 - ';' reduce using rule 60 - '<' reduce using rule 60 - '<=' reduce using rule 60 - '=' reduce using rule 60 - '===' reduce using rule 60 - '=_{' reduce using rule 60 - '>' reduce using rule 60 - 'BOT' reduce using rule 60 - 'CUBE' reduce using rule 60 - 'TOP' reduce using rule 60 - 'TOPE' reduce using rule 60 - 'U' reduce using rule 60 - '[' reduce using rule 60 - '\\/' reduce using rule 60 - ']' reduce using rule 60 - 'as' reduce using rule 60 - 'idJ' reduce using rule 60 - 'recBOT' reduce using rule 60 - 'recOR' reduce using rule 60 - 'refl' reduce using rule 60 - 'refl_{' reduce using rule 60 - '|' reduce using rule 60 - '|->' reduce using rule 60 - '}' reduce using rule 60 - '→' reduce using rule 60 - L_VarIdent reduce using rule 60 - L_HoleIdent reduce using rule 60 - %eof reduce using rule 60 + '(' shift, and enter state 163 State 48 - Term1 -> '\\' . ListParam '->' Term1 (rule 95) + Term7 -> 'TOP' . (rule 81) - '(' shift, and enter state 82 - '_' shift, and enter state 83 - '{' shift, and enter state 84 - L_VarIdent shift, and enter state 59 + '(' reduce using rule 81 + ')' reduce using rule 81 + '*' reduce using rule 81 + '*_1' reduce using rule 81 + ',' reduce using rule 81 + '->' reduce using rule 81 + '/\\' reduce using rule 81 + '0_2' reduce using rule 81 + '1' reduce using rule 81 + '1_2' reduce using rule 81 + '2' reduce using rule 81 + ':' reduce using rule 81 + ':=' reduce using rule 81 + ';' reduce using rule 81 + '<' reduce using rule 81 + '<=' reduce using rule 81 + '=' reduce using rule 81 + '===' reduce using rule 81 + '=_{' reduce using rule 81 + '>' reduce using rule 81 + 'BOT' reduce using rule 81 + 'CUBE' reduce using rule 81 + 'TOP' reduce using rule 81 + 'TOPE' reduce using rule 81 + 'U' reduce using rule 81 + '[' reduce using rule 81 + '\\/' reduce using rule 81 + ']' reduce using rule 81 + 'as' reduce using rule 81 + 'idJ' reduce using rule 81 + 'recBOT' reduce using rule 81 + 'recOR' reduce using rule 81 + 'refl' reduce using rule 81 + 'refl_{' reduce using rule 81 + '|' reduce using rule 81 + '|->' reduce using rule 81 + '}' reduce using rule 81 + '→' reduce using rule 81 + L_VarIdent reduce using rule 81 + L_HoleIdent reduce using rule 81 + %eof reduce using rule 81 - VarIdent goto state 78 - Pattern goto state 79 - Param goto state 80 - ListParam goto state 143 State 49 - Term6 -> 'first' . Term7 (rule 102) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 142 - -State 50 - - Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 78) - - '(' shift, and enter state 141 - - -State 51 - - Term7 -> 'recBOT' . (rule 70) - - '(' reduce using rule 70 - ')' reduce using rule 70 - '*' reduce using rule 70 - '*_1' reduce using rule 70 - ',' reduce using rule 70 - '->' reduce using rule 70 - '/\\' reduce using rule 70 - '0_2' reduce using rule 70 - '1' reduce using rule 70 - '1_2' reduce using rule 70 - '2' reduce using rule 70 - ':' reduce using rule 70 - ':=' reduce using rule 70 - ';' reduce using rule 70 - '<' reduce using rule 70 - '<=' reduce using rule 70 - '=' reduce using rule 70 - '===' reduce using rule 70 - '=_{' reduce using rule 70 - '>' reduce using rule 70 - 'BOT' reduce using rule 70 - 'CUBE' reduce using rule 70 - 'TOP' reduce using rule 70 - 'TOPE' reduce using rule 70 - 'U' reduce using rule 70 - '[' reduce using rule 70 - '\\/' reduce using rule 70 - ']' reduce using rule 70 - 'as' reduce using rule 70 - 'idJ' reduce using rule 70 - 'recBOT' reduce using rule 70 - 'recOR' reduce using rule 70 - 'refl' reduce using rule 70 - 'refl_{' reduce using rule 70 - '|' reduce using rule 70 - '|->' reduce using rule 70 - '}' reduce using rule 70 - '→' reduce using rule 70 - L_VarIdent reduce using rule 70 - L_HoleIdent reduce using rule 70 - %eof reduce using rule 70 - - -State 52 - - Term7 -> 'recOR' . '(' ListRestriction ')' (rule 71) - Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 72) - - '(' shift, and enter state 140 - - -State 53 - - Term7 -> 'refl' . (rule 75) + Term7 -> 'TOPE' . (rule 75) '(' reduce using rule 75 ')' reduce using rule 75 @@ -1840,5078 +1704,5511 @@ State 53 %eof reduce using rule 75 +State 50 + + Term7 -> 'U' . (rule 73) + + '(' reduce using rule 73 + ')' reduce using rule 73 + '*' reduce using rule 73 + '*_1' reduce using rule 73 + ',' reduce using rule 73 + '->' reduce using rule 73 + '/\\' reduce using rule 73 + '0_2' reduce using rule 73 + '1' reduce using rule 73 + '1_2' reduce using rule 73 + '2' reduce using rule 73 + ':' reduce using rule 73 + ':=' reduce using rule 73 + ';' reduce using rule 73 + '<' reduce using rule 73 + '<=' reduce using rule 73 + '=' reduce using rule 73 + '===' reduce using rule 73 + '=_{' reduce using rule 73 + '>' reduce using rule 73 + 'BOT' reduce using rule 73 + 'CUBE' reduce using rule 73 + 'TOP' reduce using rule 73 + 'TOPE' reduce using rule 73 + 'U' reduce using rule 73 + '[' reduce using rule 73 + '\\/' reduce using rule 73 + ']' reduce using rule 73 + 'as' reduce using rule 73 + 'idJ' reduce using rule 73 + 'recBOT' reduce using rule 73 + 'recOR' reduce using rule 73 + 'refl' reduce using rule 73 + 'refl_{' reduce using rule 73 + '|' reduce using rule 73 + '|->' reduce using rule 73 + '}' reduce using rule 73 + '→' reduce using rule 73 + L_VarIdent reduce using rule 73 + L_HoleIdent reduce using rule 73 + %eof reduce using rule 73 + + +State 51 + + Term1 -> '\\' . ListParam '->' Term1 (rule 108) + + '(' shift, and enter state 85 + '_' shift, and enter state 86 + '{' shift, and enter state 87 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 81 + Pattern goto state 82 + Param goto state 83 + ListParam goto state 162 + +State 52 + + Term6 -> 'first' . Term7 (rule 115) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 161 + +State 53 + + Term7 -> 'idJ' . '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) + + '(' shift, and enter state 160 + + State 54 - Term7 -> 'refl_{' . Term '}' (rule 76) - Term7 -> 'refl_{' . Term ':' Term '}' (rule 77) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 139 + Term7 -> 'recBOT' . (rule 83) -State 55 + '(' reduce using rule 83 + ')' reduce using rule 83 + '*' reduce using rule 83 + '*_1' reduce using rule 83 + ',' reduce using rule 83 + '->' reduce using rule 83 + '/\\' reduce using rule 83 + '0_2' reduce using rule 83 + '1' reduce using rule 83 + '1_2' reduce using rule 83 + '2' reduce using rule 83 + ':' reduce using rule 83 + ':=' reduce using rule 83 + ';' reduce using rule 83 + '<' reduce using rule 83 + '<=' reduce using rule 83 + '=' reduce using rule 83 + '===' reduce using rule 83 + '=_{' reduce using rule 83 + '>' reduce using rule 83 + 'BOT' reduce using rule 83 + 'CUBE' reduce using rule 83 + 'TOP' reduce using rule 83 + 'TOPE' reduce using rule 83 + 'U' reduce using rule 83 + '[' reduce using rule 83 + '\\/' reduce using rule 83 + ']' reduce using rule 83 + 'as' reduce using rule 83 + 'idJ' reduce using rule 83 + 'recBOT' reduce using rule 83 + 'recOR' reduce using rule 83 + 'refl' reduce using rule 83 + 'refl_{' reduce using rule 83 + '|' reduce using rule 83 + '|->' reduce using rule 83 + '}' reduce using rule 83 + '→' reduce using rule 83 + L_VarIdent reduce using rule 83 + L_HoleIdent reduce using rule 83 + %eof reduce using rule 83 - Term6 -> 'second' . Term7 (rule 103) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 138 -State 56 +State 55 - ParamDecl -> '{' . Pattern ':' Term '}' (rule 53) - ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 55) - ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 56) + Term7 -> 'recOR' . '(' ListRestriction ')' (rule 84) + Term7 -> 'recOR' . '(' Term ',' Term ',' Term ',' Term ')' (rule 85) - '(' shift, and enter state 137 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + '(' shift, and enter state 159 - VarIdent goto state 78 - Pattern goto state 136 -State 57 +State 56 - Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 98) + Term7 -> 'refl' . (rule 88) - '(' shift, and enter state 135 + '(' reduce using rule 88 + ')' reduce using rule 88 + '*' reduce using rule 88 + '*_1' reduce using rule 88 + ',' reduce using rule 88 + '->' reduce using rule 88 + '/\\' reduce using rule 88 + '0_2' reduce using rule 88 + '1' reduce using rule 88 + '1_2' reduce using rule 88 + '2' reduce using rule 88 + ':' reduce using rule 88 + ':=' reduce using rule 88 + ';' reduce using rule 88 + '<' reduce using rule 88 + '<=' reduce using rule 88 + '=' reduce using rule 88 + '===' reduce using rule 88 + '=_{' reduce using rule 88 + '>' reduce using rule 88 + 'BOT' reduce using rule 88 + 'CUBE' reduce using rule 88 + 'TOP' reduce using rule 88 + 'TOPE' reduce using rule 88 + 'U' reduce using rule 88 + '[' reduce using rule 88 + '\\/' reduce using rule 88 + ']' reduce using rule 88 + 'as' reduce using rule 88 + 'idJ' reduce using rule 88 + 'recBOT' reduce using rule 88 + 'recOR' reduce using rule 88 + 'refl' reduce using rule 88 + 'refl_{' reduce using rule 88 + '|' reduce using rule 88 + '|->' reduce using rule 88 + '}' reduce using rule 88 + '→' reduce using rule 88 + L_VarIdent reduce using rule 88 + L_HoleIdent reduce using rule 88 + %eof reduce using rule 88 -State 58 +State 57 - Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 99) + Term7 -> 'refl_{' . Term '}' (rule 89) + Term7 -> 'refl_{' . Term ':' Term '}' (rule 90) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 158 - '(' shift, and enter state 134 +State 58 + Term6 -> 'second' . Term7 (rule 116) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 157 State 59 - VarIdent -> L_VarIdent . (rule 22) - - '(' reduce using rule 22 - ')' reduce using rule 22 - '*' reduce using rule 22 - '*_1' reduce using rule 22 - ',' reduce using rule 22 - '->' reduce using rule 22 - '/\\' reduce using rule 22 - '0_2' reduce using rule 22 - '1' reduce using rule 22 - '1_2' reduce using rule 22 - '2' reduce using rule 22 - ':' reduce using rule 22 - ':=' reduce using rule 22 - ';' reduce using rule 22 - '<' reduce using rule 22 - '<=' reduce using rule 22 - '=' reduce using rule 22 - '===' reduce using rule 22 - '=_{' reduce using rule 22 - '>' reduce using rule 22 - 'BOT' reduce using rule 22 - 'CUBE' reduce using rule 22 - 'TOP' reduce using rule 22 - 'TOPE' reduce using rule 22 - 'U' reduce using rule 22 - '[' reduce using rule 22 - '\\/' reduce using rule 22 - ']' reduce using rule 22 - '_' reduce using rule 22 - 'as' reduce using rule 22 - 'idJ' reduce using rule 22 - 'recBOT' reduce using rule 22 - 'recOR' reduce using rule 22 - 'refl' reduce using rule 22 - 'refl_{' reduce using rule 22 - '{' reduce using rule 22 - '|' reduce using rule 22 - '|->' reduce using rule 22 - '}' reduce using rule 22 - '→' reduce using rule 22 - L_VarIdent reduce using rule 22 - L_HoleIdent reduce using rule 22 - %eof reduce using rule 22 + ParamDecl -> '{' . Pattern ':' Term '}' (rule 66) + ParamDecl -> '{' . '(' Pattern ':' Term ')' '|' Term '}' (rule 68) + ParamDecl -> '{' . Pattern ':' Term '|' Term '}' (rule 69) + '(' shift, and enter state 156 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 81 + Pattern goto state 155 State 60 - HoleIdent -> L_HoleIdent . (rule 23) - - '(' reduce using rule 23 - ')' reduce using rule 23 - '*' reduce using rule 23 - '*_1' reduce using rule 23 - ',' reduce using rule 23 - '->' reduce using rule 23 - '/\\' reduce using rule 23 - '0_2' reduce using rule 23 - '1' reduce using rule 23 - '1_2' reduce using rule 23 - '2' reduce using rule 23 - ':' reduce using rule 23 - ':=' reduce using rule 23 - ';' reduce using rule 23 - '<' reduce using rule 23 - '<=' reduce using rule 23 - '=' reduce using rule 23 - '===' reduce using rule 23 - '=_{' reduce using rule 23 - '>' reduce using rule 23 - 'BOT' reduce using rule 23 - 'CUBE' reduce using rule 23 - 'TOP' reduce using rule 23 - 'TOPE' reduce using rule 23 - 'U' reduce using rule 23 - '[' reduce using rule 23 - '\\/' reduce using rule 23 - ']' reduce using rule 23 - 'as' reduce using rule 23 - 'idJ' reduce using rule 23 - 'recBOT' reduce using rule 23 - 'recOR' reduce using rule 23 - 'refl' reduce using rule 23 - 'refl_{' reduce using rule 23 - '|' reduce using rule 23 - '|->' reduce using rule 23 - '}' reduce using rule 23 - '→' reduce using rule 23 - L_VarIdent reduce using rule 23 - L_HoleIdent reduce using rule 23 - %eof reduce using rule 23 + Term1 -> 'Σ' . '(' Pattern ':' Term ')' ',' Term1 (rule 111) + + '(' shift, and enter state 154 State 61 - %start_pTerm_internal -> Term . (rule 19) + Term1 -> '∑' . '(' Pattern ':' Term ')' ',' Term1 (rule 112) - %eof accept + '(' shift, and enter state 153 State 62 - %start_pTerm6_internal -> Term6 . (rule 18) - Term6 -> Term6 . '[' ListRestriction ']' (rule 100) - Term6 -> Term6 . Term7 (rule 101) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '[' shift, and enter state 127 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - %eof accept + VarIdent -> L_VarIdent . (rule 25) + + '(' reduce using rule 25 + ')' reduce using rule 25 + '*' reduce using rule 25 + '*_1' reduce using rule 25 + ',' reduce using rule 25 + '->' reduce using rule 25 + '/\\' reduce using rule 25 + '0_2' reduce using rule 25 + '1' reduce using rule 25 + '1_2' reduce using rule 25 + '2' reduce using rule 25 + ':' reduce using rule 25 + ':=' reduce using rule 25 + ';' reduce using rule 25 + '<' reduce using rule 25 + '<=' reduce using rule 25 + '=' reduce using rule 25 + '===' reduce using rule 25 + '=_{' reduce using rule 25 + '>' reduce using rule 25 + 'BOT' reduce using rule 25 + 'CUBE' reduce using rule 25 + 'TOP' reduce using rule 25 + 'TOPE' reduce using rule 25 + 'U' reduce using rule 25 + '[' reduce using rule 25 + '\\/' reduce using rule 25 + ']' reduce using rule 25 + '_' reduce using rule 25 + 'as' reduce using rule 25 + 'idJ' reduce using rule 25 + 'recBOT' reduce using rule 25 + 'recOR' reduce using rule 25 + 'refl' reduce using rule 25 + 'refl_{' reduce using rule 25 + 'uses' reduce using rule 25 + '{' reduce using rule 25 + '|' reduce using rule 25 + '|->' reduce using rule 25 + '}' reduce using rule 25 + '→' reduce using rule 25 + L_VarIdent reduce using rule 25 + L_HoleIdent reduce using rule 25 + %eof reduce using rule 25 - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 126 State 63 - Term7 -> '(' . Term ',' Term ')' (rule 74) - Term7 -> '(' . Term ')' (rule 81) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 133 + HoleIdent -> L_HoleIdent . (rule 26) + + '(' reduce using rule 26 + ')' reduce using rule 26 + '*' reduce using rule 26 + '*_1' reduce using rule 26 + ',' reduce using rule 26 + '->' reduce using rule 26 + '/\\' reduce using rule 26 + '0_2' reduce using rule 26 + '1' reduce using rule 26 + '1_2' reduce using rule 26 + '2' reduce using rule 26 + ':' reduce using rule 26 + ':=' reduce using rule 26 + ';' reduce using rule 26 + '<' reduce using rule 26 + '<=' reduce using rule 26 + '=' reduce using rule 26 + '===' reduce using rule 26 + '=_{' reduce using rule 26 + '>' reduce using rule 26 + 'BOT' reduce using rule 26 + 'CUBE' reduce using rule 26 + 'TOP' reduce using rule 26 + 'TOPE' reduce using rule 26 + 'U' reduce using rule 26 + '[' reduce using rule 26 + '\\/' reduce using rule 26 + ']' reduce using rule 26 + 'as' reduce using rule 26 + 'idJ' reduce using rule 26 + 'recBOT' reduce using rule 26 + 'recOR' reduce using rule 26 + 'refl' reduce using rule 26 + 'refl_{' reduce using rule 26 + '|' reduce using rule 26 + '|->' reduce using rule 26 + '}' reduce using rule 26 + '→' reduce using rule 26 + L_VarIdent reduce using rule 26 + L_HoleIdent reduce using rule 26 + %eof reduce using rule 26 + State 64 - Term1 -> Term2 . '=_{' Term '}' Term2 (rule 93) - Term1 -> Term2 . '=' Term2 (rule 94) - Term1 -> Term2 . (rule 96) + %start_pTerm_internal -> Term . (rule 22) - ')' reduce using rule 96 - ',' reduce using rule 96 - ':' reduce using rule 96 - ':=' reduce using rule 96 - ';' reduce using rule 96 - '=' shift, and enter state 131 - '=_{' shift, and enter state 132 - '>' reduce using rule 96 - ']' reduce using rule 96 - '|' reduce using rule 96 - '|->' reduce using rule 96 - '}' reduce using rule 96 - %eof reduce using rule 96 + %eof accept State 65 - %start_pTerm1_internal -> Term1 . (rule 17) - + %start_pTerm6_internal -> Term6 . (rule 21) + Term6 -> Term6 . '[' ListRestriction ']' (rule 113) + Term6 -> Term6 . Term7 (rule 114) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '[' shift, and enter state 146 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 %eof accept + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 145 State 66 - %start_pTerm2_internal -> Term2 . (rule 16) - - %eof accept - + Term7 -> '(' . Term ',' Term ')' (rule 87) + Term7 -> '(' . Term ')' (rule 94) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 152 State 67 - Term5 -> Term6 . (rule 83) - Term6 -> Term6 . '[' ListRestriction ']' (rule 100) - Term6 -> Term6 . Term7 (rule 101) - - '(' shift, and enter state 63 - ')' reduce using rule 83 - '*' reduce using rule 83 - '*_1' shift, and enter state 36 - ',' reduce using rule 83 - '/\\' reduce using rule 83 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - ':' reduce using rule 83 - ':=' reduce using rule 83 - ';' reduce using rule 83 - '<' shift, and enter state 41 - '<=' reduce using rule 83 - '=' reduce using rule 83 - '===' reduce using rule 83 - '=_{' reduce using rule 83 - '>' reduce using rule 83 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '[' shift, and enter state 127 - '\\/' reduce using rule 83 - ']' reduce using rule 83 - 'as' reduce using rule 83 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - '|' reduce using rule 83 - '|->' reduce using rule 83 - '}' reduce using rule 83 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - %eof reduce using rule 83 + Term1 -> Term2 . '=_{' Term '}' Term2 (rule 106) + Term1 -> Term2 . '=' Term2 (rule 107) + Term1 -> Term2 . (rule 109) + + ')' reduce using rule 109 + ',' reduce using rule 109 + ':' reduce using rule 109 + ':=' reduce using rule 109 + ';' reduce using rule 109 + '=' shift, and enter state 150 + '=_{' shift, and enter state 151 + '>' reduce using rule 109 + ']' reduce using rule 109 + '|' reduce using rule 109 + '|->' reduce using rule 109 + '}' reduce using rule 109 + %eof reduce using rule 109 - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 126 State 68 - %start_pTerm3_internal -> Term3 . (rule 15) + %start_pTerm1_internal -> Term1 . (rule 20) %eof accept State 69 - %start_pTerm4_internal -> Term4 . (rule 14) + %start_pTerm2_internal -> Term2 . (rule 19) %eof accept State 70 - %start_pTerm5_internal -> Term5 . (rule 13) - Term5 -> Term5 . '*' Term6 (rule 82) + Term5 -> Term6 . (rule 96) + Term6 -> Term6 . '[' ListRestriction ']' (rule 113) + Term6 -> Term6 . Term7 (rule 114) - '*' shift, and enter state 130 - %eof accept + '(' shift, and enter state 66 + ')' reduce using rule 96 + '*' reduce using rule 96 + '*_1' shift, and enter state 39 + ',' reduce using rule 96 + '/\\' reduce using rule 96 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + ':' reduce using rule 96 + ':=' reduce using rule 96 + ';' reduce using rule 96 + '<' shift, and enter state 44 + '<=' reduce using rule 96 + '=' reduce using rule 96 + '===' reduce using rule 96 + '=_{' reduce using rule 96 + '>' reduce using rule 96 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '[' shift, and enter state 146 + '\\/' reduce using rule 96 + ']' reduce using rule 96 + 'as' reduce using rule 96 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + '|' reduce using rule 96 + '|->' reduce using rule 96 + '}' reduce using rule 96 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + %eof reduce using rule 96 + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 145 State 71 - %start_pTerm7_internal -> Term7 . (rule 12) + %start_pTerm3_internal -> Term3 . (rule 18) %eof accept State 72 - ListRestriction -> Restriction . (rule 58) - ListRestriction -> Restriction . ',' ListRestriction (rule 59) + %start_pTerm4_internal -> Term4 . (rule 17) - ')' reduce using rule 58 - ',' shift, and enter state 129 - ']' reduce using rule 58 - %eof reduce using rule 58 + %eof accept State 73 - %start_pListRestriction_internal -> ListRestriction . (rule 11) + %start_pTerm5_internal -> Term5 . (rule 16) + Term5 -> Term5 . '*' Term6 (rule 95) + '*' shift, and enter state 149 %eof accept State 74 - Restriction -> Term . '|->' Term (rule 57) + %start_pTerm7_internal -> Term7 . (rule 15) - '|->' shift, and enter state 128 + %eof accept State 75 - %start_pRestriction_internal -> Restriction . (rule 10) + ListRestriction -> Restriction . (rule 71) + ListRestriction -> Restriction . ',' ListRestriction (rule 72) - %eof accept + ')' reduce using rule 71 + ',' shift, and enter state 148 + ']' reduce using rule 71 + %eof reduce using rule 71 State 76 - %start_pParamDecl_internal -> ParamDecl . (rule 9) + %start_pListRestriction_internal -> ListRestriction . (rule 14) %eof accept State 77 - ParamDecl -> Term6 . (rule 51) - Term6 -> Term6 . '[' ListRestriction ']' (rule 100) - Term6 -> Term6 . Term7 (rule 101) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '->' reduce using rule 51 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '[' shift, and enter state 127 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - %eof reduce using rule 51 + Restriction -> Term . '|->' Term (rule 70) + + '|->' shift, and enter state 147 - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 126 State 78 - Pattern -> VarIdent . (rule 42) + %start_pRestriction_internal -> Restriction . (rule 13) - '(' reduce using rule 42 - ')' reduce using rule 42 - ',' reduce using rule 42 - '->' reduce using rule 42 - ':' reduce using rule 42 - '_' reduce using rule 42 - '{' reduce using rule 42 - L_VarIdent reduce using rule 42 - %eof reduce using rule 42 + %eof accept State 79 - Param -> Pattern . (rule 46) + %start_pParamDecl_internal -> ParamDecl . (rule 12) - '(' reduce using rule 46 - '->' reduce using rule 46 - ':' reduce using rule 46 - '_' reduce using rule 46 - '{' reduce using rule 46 - L_VarIdent reduce using rule 46 - %eof reduce using rule 46 + %eof accept State 80 - ListParam -> Param . (rule 49) - ListParam -> Param . ListParam (rule 50) + ParamDecl -> Term6 . (rule 64) + Term6 -> Term6 . '[' ListRestriction ']' (rule 113) + Term6 -> Term6 . Term7 (rule 114) - '(' shift, and enter state 82 - '->' reduce using rule 49 - ':' reduce using rule 49 - '_' shift, and enter state 83 - '{' shift, and enter state 84 - L_VarIdent shift, and enter state 59 - %eof reduce using rule 49 + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '->' reduce using rule 64 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '[' shift, and enter state 146 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + %eof reduce using rule 64 - VarIdent goto state 78 - Pattern goto state 79 - Param goto state 80 - ListParam goto state 125 + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 145 State 81 - %start_pListParam_internal -> ListParam . (rule 8) + Pattern -> VarIdent . (rule 55) - %eof accept + '(' reduce using rule 55 + ')' reduce using rule 55 + ',' reduce using rule 55 + '->' reduce using rule 55 + ':' reduce using rule 55 + '_' reduce using rule 55 + '{' reduce using rule 55 + L_VarIdent reduce using rule 55 + %eof reduce using rule 55 State 82 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 43) - Param -> '(' . ListPattern ':' Term ')' (rule 47) + Param -> Pattern . (rule 59) - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + '(' reduce using rule 59 + '->' reduce using rule 59 + ':' reduce using rule 59 + '_' reduce using rule 59 + '{' reduce using rule 59 + L_VarIdent reduce using rule 59 + %eof reduce using rule 59 - VarIdent goto state 78 - Pattern goto state 123 - ListPattern goto state 124 State 83 - Pattern -> '_' . (rule 41) + ListParam -> Param . (rule 62) + ListParam -> Param . ListParam (rule 63) - '(' reduce using rule 41 - ')' reduce using rule 41 - ',' reduce using rule 41 - '->' reduce using rule 41 - ':' reduce using rule 41 - '_' reduce using rule 41 - '{' reduce using rule 41 - L_VarIdent reduce using rule 41 - %eof reduce using rule 41 + '(' shift, and enter state 85 + '->' reduce using rule 62 + ':' reduce using rule 62 + '_' shift, and enter state 86 + '{' shift, and enter state 87 + L_VarIdent shift, and enter state 62 + %eof reduce using rule 62 + VarIdent goto state 81 + Pattern goto state 82 + Param goto state 83 + ListParam goto state 144 State 84 - Param -> '{' . Pattern ':' Term '|' Term '}' (rule 48) + %start_pListParam_internal -> ListParam . (rule 11) - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + %eof accept - VarIdent goto state 78 - Pattern goto state 122 State 85 - %start_pParam_internal -> Param . (rule 7) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 56) + Param -> '(' . ListPattern ':' Term ')' (rule 60) - %eof accept + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 142 + ListPattern goto state 143 State 86 - ListPattern -> Pattern . (rule 44) - ListPattern -> Pattern . ListPattern (rule 45) + Pattern -> '_' . (rule 54) - '(' shift, and enter state 88 - ':' reduce using rule 44 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 - %eof reduce using rule 44 + '(' reduce using rule 54 + ')' reduce using rule 54 + ',' reduce using rule 54 + '->' reduce using rule 54 + ':' reduce using rule 54 + '_' reduce using rule 54 + '{' reduce using rule 54 + L_VarIdent reduce using rule 54 + %eof reduce using rule 54 - VarIdent goto state 78 - Pattern goto state 86 - ListPattern goto state 121 State 87 - %start_pListPattern_internal -> ListPattern . (rule 6) + Param -> '{' . Pattern ':' Term '|' Term '}' (rule 61) - %eof accept + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 141 State 88 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 43) + %start_pParam_internal -> Param . (rule 10) - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + %eof accept - VarIdent goto state 78 - Pattern goto state 120 State 89 - %start_pPattern_internal -> Pattern . (rule 5) + ListPattern -> Pattern . (rule 57) + ListPattern -> Pattern . ListPattern (rule 58) - %eof accept + '(' shift, and enter state 91 + ':' reduce using rule 57 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + %eof reduce using rule 57 + VarIdent goto state 81 + Pattern goto state 89 + ListPattern goto state 140 State 90 - ListCommand -> Command . ListCommand (rule 40) - - '#check' shift, and enter state 92 - '#compute' shift, and enter state 93 - '#compute-nf' shift, and enter state 94 - '#compute-whnf'shift, and enter state 95 - '#def' shift, and enter state 96 - '#define' shift, and enter state 97 - '#postulate' shift, and enter state 98 - '#set-option' shift, and enter state 99 - '#unset-option'shift, and enter state 100 - %eof reduce using rule 39 + %start_pListPattern_internal -> ListPattern . (rule 9) + + %eof accept - Command goto state 90 - ListCommand goto state 119 State 91 - %start_pListCommand_internal -> ListCommand . (rule 4) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 56) - %eof accept + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 139 State 92 - Command -> '#check' . Term ':' Term ';' (rule 29) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 118 + %start_pPattern_internal -> Pattern . (rule 8) + + %eof accept + State 93 - Command -> '#compute' . Term ';' (rule 30) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 117 + SectionName -> VarIdent . (rule 53) + + ';' reduce using rule 53 + %eof reduce using rule 53 + State 94 - Command -> '#compute-nf' . Term ';' (rule 32) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 116 + %start_pSectionName_internal -> SectionName . (rule 7) + + %eof accept + State 95 - Command -> '#compute-whnf' . Term ';' (rule 31) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 115 + %start_pDeclUsedVars_internal -> DeclUsedVars . (rule 6) + + %eof accept + State 96 - Command -> '#def' . VarIdent ListParam ':' Term ':=' Term ';' (rule 37) - Command -> '#def' . VarIdent ':' Term ':=' Term ';' (rule 38) + DeclUsedVars -> 'uses' . '(' ListVarIdent ')' (rule 50) - L_VarIdent shift, and enter state 59 + '(' shift, and enter state 138 - VarIdent goto state 114 State 97 - Command -> '#define' . VarIdent ListParam ':' Term ':=' Term ';' (rule 35) - Command -> '#define' . VarIdent ':' Term ':=' Term ';' (rule 36) + ListCommand -> Command . ';' ListCommand (rule 49) - L_VarIdent shift, and enter state 59 + ';' shift, and enter state 137 - VarIdent goto state 113 State 98 - Command -> '#postulate' . VarIdent ListParam ':' Term ';' (rule 33) - Command -> '#postulate' . VarIdent ':' Term ';' (rule 34) + %start_pListCommand_internal -> ListCommand . (rule 5) - L_VarIdent shift, and enter state 59 + %eof accept - VarIdent goto state 112 State 99 - Command -> '#set-option' . String '=' String ';' (rule 27) + Command -> '#assume' . ListVarIdent ':' Term (rule 40) - L_quoted shift, and enter state 22 + L_VarIdent shift, and enter state 62 - String goto state 111 + VarIdent goto state 117 + ListVarIdent goto state 136 State 100 - Command -> '#unset-option' . String ';' (rule 28) - - L_quoted shift, and enter state 22 - - String goto state 110 + Command -> '#check' . Term ':' Term (rule 34) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 135 State 101 - %start_pCommand_internal -> Command . (rule 3) - - %eof accept - + Command -> '#compute' . Term (rule 35) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 134 State 102 - %start_pLanguage_internal -> Language . (rule 2) - - %eof accept - + Command -> '#compute-nf' . Term (rule 37) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 133 State 103 - Language -> 'rzk-1' . (rule 26) - - ';' reduce using rule 26 - %eof reduce using rule 26 - + Command -> '#compute-whnf' . Term (rule 36) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 132 State 104 - %start_pLanguageDecl_internal -> LanguageDecl . (rule 1) + Command -> '#def' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 46) + Command -> '#def' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 47) - %eof accept + L_VarIdent shift, and enter state 62 + VarIdent goto state 131 State 105 - LanguageDecl -> '#lang' . Language ';' (rule 25) + Command -> '#define' . VarIdent DeclUsedVars ListParam ':' Term ':=' Term (rule 44) + Command -> '#define' . VarIdent DeclUsedVars ':' Term ':=' Term (rule 45) - 'rzk-1' shift, and enter state 103 + L_VarIdent shift, and enter state 62 - Language goto state 109 + VarIdent goto state 130 State 106 - %start_pModule_internal -> Module . (rule 0) + Command -> '#postulate' . VarIdent DeclUsedVars ListParam ':' Term (rule 38) + Command -> '#postulate' . VarIdent DeclUsedVars ':' Term (rule 39) - %eof accept + L_VarIdent shift, and enter state 62 + VarIdent goto state 129 State 107 - Module -> LanguageDecl . ListCommand (rule 24) - - '#check' shift, and enter state 92 - '#compute' shift, and enter state 93 - '#compute-nf' shift, and enter state 94 - '#compute-whnf'shift, and enter state 95 - '#def' shift, and enter state 96 - '#define' shift, and enter state 97 - '#postulate' shift, and enter state 98 - '#set-option' shift, and enter state 99 - '#unset-option'shift, and enter state 100 - %eof reduce using rule 39 + Command -> '#section' . SectionName ';' ListCommand '#end' SectionName (rule 43) - Command goto state 90 - ListCommand goto state 108 + ';' reduce using rule 52 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 93 + SectionName goto state 128 State 108 - Module -> LanguageDecl ListCommand . (rule 24) + Command -> '#set-option' . String '=' String (rule 32) - %eof reduce using rule 24 + L_quoted shift, and enter state 25 + String goto state 127 State 109 - LanguageDecl -> '#lang' Language . ';' (rule 25) + Command -> '#unset-option' . String (rule 33) - ';' shift, and enter state 201 + L_quoted shift, and enter state 25 + String goto state 126 State 110 - Command -> '#unset-option' String . ';' (rule 28) + Command -> '#variable' . VarIdent ':' Term (rule 41) - ';' shift, and enter state 200 + L_VarIdent shift, and enter state 62 + VarIdent goto state 125 State 111 - Command -> '#set-option' String . '=' String ';' (rule 27) + Command -> '#variables' . ListVarIdent ':' Term (rule 42) - '=' shift, and enter state 199 + L_VarIdent shift, and enter state 62 + VarIdent goto state 117 + ListVarIdent goto state 124 State 112 - Command -> '#postulate' VarIdent . ListParam ':' Term ';' (rule 33) - Command -> '#postulate' VarIdent . ':' Term ';' (rule 34) + %start_pCommand_internal -> Command . (rule 4) - '(' shift, and enter state 82 - ':' shift, and enter state 198 - '_' shift, and enter state 83 - '{' shift, and enter state 84 - L_VarIdent shift, and enter state 59 + %eof accept - VarIdent goto state 78 - Pattern goto state 79 - Param goto state 80 - ListParam goto state 197 State 113 - Command -> '#define' VarIdent . ListParam ':' Term ':=' Term ';' (rule 35) - Command -> '#define' VarIdent . ':' Term ':=' Term ';' (rule 36) + %start_pLanguage_internal -> Language . (rule 3) - '(' shift, and enter state 82 - ':' shift, and enter state 196 - '_' shift, and enter state 83 - '{' shift, and enter state 84 - L_VarIdent shift, and enter state 59 + %eof accept - VarIdent goto state 78 - Pattern goto state 79 - Param goto state 80 - ListParam goto state 195 State 114 - Command -> '#def' VarIdent . ListParam ':' Term ':=' Term ';' (rule 37) - Command -> '#def' VarIdent . ':' Term ':=' Term ';' (rule 38) + Language -> 'rzk-1' . (rule 31) - '(' shift, and enter state 82 - ':' shift, and enter state 194 - '_' shift, and enter state 83 - '{' shift, and enter state 84 - L_VarIdent shift, and enter state 59 + ';' reduce using rule 31 + %eof reduce using rule 31 - VarIdent goto state 78 - Pattern goto state 79 - Param goto state 80 - ListParam goto state 193 State 115 - Command -> '#compute-whnf' Term . ';' (rule 31) + %start_pLanguageDecl_internal -> LanguageDecl . (rule 2) - ';' shift, and enter state 192 + %eof accept State 116 - Command -> '#compute-nf' Term . ';' (rule 32) + LanguageDecl -> '#lang' . Language ';' (rule 30) - ';' shift, and enter state 191 + 'rzk-1' shift, and enter state 114 + Language goto state 123 State 117 - Command -> '#compute' Term . ';' (rule 30) + ListVarIdent -> VarIdent . (rule 28) + ListVarIdent -> VarIdent . ListVarIdent (rule 29) - ';' shift, and enter state 190 + ')' reduce using rule 28 + ':' reduce using rule 28 + L_VarIdent shift, and enter state 62 + %eof reduce using rule 28 + VarIdent goto state 117 + ListVarIdent goto state 122 State 118 - Command -> '#check' Term . ':' Term ';' (rule 29) + %start_pListVarIdent_internal -> ListVarIdent . (rule 1) - ':' shift, and enter state 189 + %eof accept State 119 - ListCommand -> Command ListCommand . (rule 40) + %start_pModule_internal -> Module . (rule 0) - %eof reduce using rule 40 + %eof accept State 120 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 43) - - ',' shift, and enter state 187 + Module -> LanguageDecl . ListCommand (rule 27) + + '#assume' shift, and enter state 99 + '#check' shift, and enter state 100 + '#compute' shift, and enter state 101 + '#compute-nf' shift, and enter state 102 + '#compute-whnf'shift, and enter state 103 + '#def' shift, and enter state 104 + '#define' shift, and enter state 105 + '#postulate' shift, and enter state 106 + '#section' shift, and enter state 107 + '#set-option' shift, and enter state 108 + '#unset-option'shift, and enter state 109 + '#variable' shift, and enter state 110 + '#variables' shift, and enter state 111 + %eof reduce using rule 48 + Command goto state 97 + ListCommand goto state 121 State 121 - ListPattern -> Pattern ListPattern . (rule 45) + Module -> LanguageDecl ListCommand . (rule 27) - ':' reduce using rule 45 - %eof reduce using rule 45 + %eof reduce using rule 27 State 122 - Param -> '{' Pattern . ':' Term '|' Term '}' (rule 48) + ListVarIdent -> VarIdent ListVarIdent . (rule 29) - ':' shift, and enter state 188 + ')' reduce using rule 29 + ':' reduce using rule 29 + %eof reduce using rule 29 State 123 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 43) - ListPattern -> Pattern . (rule 44) - ListPattern -> Pattern . ListPattern (rule 45) + LanguageDecl -> '#lang' Language . ';' (rule 30) - '(' shift, and enter state 88 - ',' shift, and enter state 187 - ':' reduce using rule 44 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + ';' shift, and enter state 219 - VarIdent goto state 78 - Pattern goto state 86 - ListPattern goto state 121 State 124 - Param -> '(' ListPattern . ':' Term ')' (rule 47) + Command -> '#variables' ListVarIdent . ':' Term (rule 42) - ':' shift, and enter state 186 + ':' shift, and enter state 218 State 125 - ListParam -> Param ListParam . (rule 50) + Command -> '#variable' VarIdent . ':' Term (rule 41) - '->' reduce using rule 50 - ':' reduce using rule 50 - %eof reduce using rule 50 + ':' shift, and enter state 217 State 126 - Term6 -> Term6 Term7 . (rule 101) + Command -> '#unset-option' String . (rule 33) - '(' reduce using rule 101 - ')' reduce using rule 101 - '*' reduce using rule 101 - '*_1' reduce using rule 101 - ',' reduce using rule 101 - '->' reduce using rule 101 - '/\\' reduce using rule 101 - '0_2' reduce using rule 101 - '1' reduce using rule 101 - '1_2' reduce using rule 101 - '2' reduce using rule 101 - ':' reduce using rule 101 - ':=' reduce using rule 101 - ';' reduce using rule 101 - '<' reduce using rule 101 - '<=' reduce using rule 101 - '=' reduce using rule 101 - '===' reduce using rule 101 - '=_{' reduce using rule 101 - '>' reduce using rule 101 - 'BOT' reduce using rule 101 - 'CUBE' reduce using rule 101 - 'TOP' reduce using rule 101 - 'TOPE' reduce using rule 101 - 'U' reduce using rule 101 - '[' reduce using rule 101 - '\\/' reduce using rule 101 - ']' reduce using rule 101 - 'as' reduce using rule 101 - 'idJ' reduce using rule 101 - 'recBOT' reduce using rule 101 - 'recOR' reduce using rule 101 - 'refl' reduce using rule 101 - 'refl_{' reduce using rule 101 - '|' reduce using rule 101 - '|->' reduce using rule 101 - '}' reduce using rule 101 - '→' reduce using rule 101 - L_VarIdent reduce using rule 101 - L_HoleIdent reduce using rule 101 - %eof reduce using rule 101 + ';' reduce using rule 33 + %eof reduce using rule 33 State 127 - Term6 -> Term6 '[' . ListRestriction ']' (rule 100) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Restriction goto state 72 - ListRestrictiongoto state 185 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 74 + Command -> '#set-option' String . '=' String (rule 32) + + '=' shift, and enter state 216 + State 128 - Restriction -> Term '|->' . Term (rule 57) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 184 + Command -> '#section' SectionName . ';' ListCommand '#end' SectionName (rule 43) + + ';' shift, and enter state 215 + State 129 - ListRestriction -> Restriction ',' . ListRestriction (rule 59) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Restriction goto state 72 - ListRestrictiongoto state 183 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 74 + Command -> '#postulate' VarIdent . DeclUsedVars ListParam ':' Term (rule 38) + Command -> '#postulate' VarIdent . DeclUsedVars ':' Term (rule 39) + + '(' reduce using rule 51 + ':' reduce using rule 51 + '_' reduce using rule 51 + 'uses' shift, and enter state 96 + '{' reduce using rule 51 + L_VarIdent reduce using rule 51 + + DeclUsedVars goto state 214 State 130 - Term5 -> Term5 '*' . Term6 (rule 82) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term6 goto state 182 + Command -> '#define' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 44) + Command -> '#define' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 45) + + '(' reduce using rule 51 + ':' reduce using rule 51 + '_' reduce using rule 51 + 'uses' shift, and enter state 96 + '{' reduce using rule 51 + L_VarIdent reduce using rule 51 + + DeclUsedVars goto state 213 State 131 - Term1 -> Term2 '=' . Term2 (rule 94) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 181 - Term6 goto state 67 + Command -> '#def' VarIdent . DeclUsedVars ListParam ':' Term ':=' Term (rule 46) + Command -> '#def' VarIdent . DeclUsedVars ':' Term ':=' Term (rule 47) + + '(' reduce using rule 51 + ':' reduce using rule 51 + '_' reduce using rule 51 + 'uses' shift, and enter state 96 + '{' reduce using rule 51 + L_VarIdent reduce using rule 51 + + DeclUsedVars goto state 212 State 132 - Term1 -> Term2 '=_{' . Term '}' Term2 (rule 93) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 180 + Command -> '#compute-whnf' Term . (rule 36) + + ';' reduce using rule 36 + %eof reduce using rule 36 + State 133 - Term7 -> '(' Term . ',' Term ')' (rule 74) - Term7 -> '(' Term . ')' (rule 81) + Command -> '#compute-nf' Term . (rule 37) - ')' shift, and enter state 178 - ',' shift, and enter state 179 + ';' reduce using rule 37 + %eof reduce using rule 37 State 134 - Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 99) + Command -> '#compute' Term . (rule 35) - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + ';' reduce using rule 35 + %eof reduce using rule 35 - VarIdent goto state 78 - Pattern goto state 177 State 135 - Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 98) + Command -> '#check' Term . ':' Term (rule 34) - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + ':' shift, and enter state 211 - VarIdent goto state 78 - Pattern goto state 176 State 136 - ParamDecl -> '{' Pattern . ':' Term '}' (rule 53) - ParamDecl -> '{' Pattern . ':' Term '|' Term '}' (rule 56) + Command -> '#assume' ListVarIdent . ':' Term (rule 40) - ':' shift, and enter state 175 + ':' shift, and enter state 210 State 137 - Pattern -> '(' . Pattern ',' Pattern ')' (rule 43) - ParamDecl -> '{' '(' . Pattern ':' Term ')' '|' Term '}' (rule 55) - - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + ListCommand -> Command ';' . ListCommand (rule 49) + + '#assume' shift, and enter state 99 + '#check' shift, and enter state 100 + '#compute' shift, and enter state 101 + '#compute-nf' shift, and enter state 102 + '#compute-whnf'shift, and enter state 103 + '#def' shift, and enter state 104 + '#define' shift, and enter state 105 + '#end' reduce using rule 48 + '#postulate' shift, and enter state 106 + '#section' shift, and enter state 107 + '#set-option' shift, and enter state 108 + '#unset-option'shift, and enter state 109 + '#variable' shift, and enter state 110 + '#variables' shift, and enter state 111 + %eof reduce using rule 48 - VarIdent goto state 78 - Pattern goto state 174 + Command goto state 97 + ListCommand goto state 209 State 138 - Term6 -> 'second' Term7 . (rule 103) + DeclUsedVars -> 'uses' '(' . ListVarIdent ')' (rule 50) - '(' reduce using rule 103 - ')' reduce using rule 103 - '*' reduce using rule 103 - '*_1' reduce using rule 103 - ',' reduce using rule 103 - '->' reduce using rule 103 - '/\\' reduce using rule 103 - '0_2' reduce using rule 103 - '1' reduce using rule 103 - '1_2' reduce using rule 103 - '2' reduce using rule 103 - ':' reduce using rule 103 - ':=' reduce using rule 103 - ';' reduce using rule 103 - '<' reduce using rule 103 - '<=' reduce using rule 103 - '=' reduce using rule 103 - '===' reduce using rule 103 - '=_{' reduce using rule 103 - '>' reduce using rule 103 - 'BOT' reduce using rule 103 - 'CUBE' reduce using rule 103 - 'TOP' reduce using rule 103 - 'TOPE' reduce using rule 103 - 'U' reduce using rule 103 - '[' reduce using rule 103 - '\\/' reduce using rule 103 - ']' reduce using rule 103 - 'as' reduce using rule 103 - 'idJ' reduce using rule 103 - 'recBOT' reduce using rule 103 - 'recOR' reduce using rule 103 - 'refl' reduce using rule 103 - 'refl_{' reduce using rule 103 - '|' reduce using rule 103 - '|->' reduce using rule 103 - '}' reduce using rule 103 - '→' reduce using rule 103 - L_VarIdent reduce using rule 103 - L_HoleIdent reduce using rule 103 - %eof reduce using rule 103 + L_VarIdent shift, and enter state 62 + VarIdent goto state 117 + ListVarIdent goto state 208 State 139 - Term7 -> 'refl_{' Term . '}' (rule 76) - Term7 -> 'refl_{' Term . ':' Term '}' (rule 77) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 56) - ':' shift, and enter state 172 - '}' shift, and enter state 173 + ',' shift, and enter state 206 State 140 - Term7 -> 'recOR' '(' . ListRestriction ')' (rule 71) - Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 72) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Restriction goto state 72 - ListRestrictiongoto state 170 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 171 + ListPattern -> Pattern ListPattern . (rule 58) + + ':' reduce using rule 58 + %eof reduce using rule 58 + State 141 - Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 78) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 169 + Param -> '{' Pattern . ':' Term '|' Term '}' (rule 61) + + ':' shift, and enter state 207 + State 142 - Term6 -> 'first' Term7 . (rule 102) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 56) + ListPattern -> Pattern . (rule 57) + ListPattern -> Pattern . ListPattern (rule 58) - '(' reduce using rule 102 - ')' reduce using rule 102 - '*' reduce using rule 102 - '*_1' reduce using rule 102 - ',' reduce using rule 102 - '->' reduce using rule 102 - '/\\' reduce using rule 102 - '0_2' reduce using rule 102 - '1' reduce using rule 102 - '1_2' reduce using rule 102 - '2' reduce using rule 102 - ':' reduce using rule 102 - ':=' reduce using rule 102 - ';' reduce using rule 102 - '<' reduce using rule 102 - '<=' reduce using rule 102 - '=' reduce using rule 102 - '===' reduce using rule 102 - '=_{' reduce using rule 102 - '>' reduce using rule 102 - 'BOT' reduce using rule 102 - 'CUBE' reduce using rule 102 - 'TOP' reduce using rule 102 - 'TOPE' reduce using rule 102 - 'U' reduce using rule 102 - '[' reduce using rule 102 - '\\/' reduce using rule 102 - ']' reduce using rule 102 - 'as' reduce using rule 102 - 'idJ' reduce using rule 102 - 'recBOT' reduce using rule 102 - 'recOR' reduce using rule 102 - 'refl' reduce using rule 102 - 'refl_{' reduce using rule 102 - '|' reduce using rule 102 - '|->' reduce using rule 102 - '}' reduce using rule 102 - '→' reduce using rule 102 - L_VarIdent reduce using rule 102 - L_HoleIdent reduce using rule 102 - %eof reduce using rule 102 + '(' shift, and enter state 91 + ',' shift, and enter state 206 + ':' reduce using rule 57 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 89 + ListPattern goto state 140 State 143 - Term1 -> '\\' ListParam . '->' Term1 (rule 95) + Param -> '(' ListPattern . ':' Term ')' (rule 60) - '->' shift, and enter state 168 + ':' shift, and enter state 205 State 144 - Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 92) + ListParam -> Param ListParam . (rule 63) - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 + '->' reduce using rule 63 + ':' reduce using rule 63 + %eof reduce using rule 63 - VarIdent goto state 78 - Pattern goto state 167 State 145 - Term7 -> '<' ParamDecl . '->' Term '>' (rule 73) - - '->' shift, and enter state 166 + Term6 -> Term6 Term7 . (rule 114) + + '(' reduce using rule 114 + ')' reduce using rule 114 + '*' reduce using rule 114 + '*_1' reduce using rule 114 + ',' reduce using rule 114 + '->' reduce using rule 114 + '/\\' reduce using rule 114 + '0_2' reduce using rule 114 + '1' reduce using rule 114 + '1_2' reduce using rule 114 + '2' reduce using rule 114 + ':' reduce using rule 114 + ':=' reduce using rule 114 + ';' reduce using rule 114 + '<' reduce using rule 114 + '<=' reduce using rule 114 + '=' reduce using rule 114 + '===' reduce using rule 114 + '=_{' reduce using rule 114 + '>' reduce using rule 114 + 'BOT' reduce using rule 114 + 'CUBE' reduce using rule 114 + 'TOP' reduce using rule 114 + 'TOPE' reduce using rule 114 + 'U' reduce using rule 114 + '[' reduce using rule 114 + '\\/' reduce using rule 114 + ']' reduce using rule 114 + 'as' reduce using rule 114 + 'idJ' reduce using rule 114 + 'recBOT' reduce using rule 114 + 'recOR' reduce using rule 114 + 'refl' reduce using rule 114 + 'refl_{' reduce using rule 114 + '|' reduce using rule 114 + '|->' reduce using rule 114 + '}' reduce using rule 114 + '→' reduce using rule 114 + L_VarIdent reduce using rule 114 + L_HoleIdent reduce using rule 114 + %eof reduce using rule 114 State 146 - ParamDecl -> '(' VarIdent . ':' Term ')' (rule 54) - Term7 -> VarIdent . (rule 80) - - '(' reduce using rule 80 - ')' reduce using rule 80 - '*' reduce using rule 80 - '*_1' reduce using rule 80 - ',' reduce using rule 80 - '->' reduce using rule 80 - '/\\' reduce using rule 80 - '0_2' reduce using rule 80 - '1' reduce using rule 80 - '1_2' reduce using rule 80 - '2' reduce using rule 80 - ':' shift, and enter state 165 - '<' reduce using rule 80 - '<=' reduce using rule 80 - '=' reduce using rule 80 - '===' reduce using rule 80 - '=_{' reduce using rule 80 - 'BOT' reduce using rule 80 - 'CUBE' reduce using rule 80 - 'TOP' reduce using rule 80 - 'TOPE' reduce using rule 80 - 'U' reduce using rule 80 - '[' reduce using rule 80 - '\\/' reduce using rule 80 - 'as' reduce using rule 80 - 'idJ' reduce using rule 80 - 'recBOT' reduce using rule 80 - 'recOR' reduce using rule 80 - 'refl' reduce using rule 80 - 'refl_{' reduce using rule 80 - '→' reduce using rule 80 - L_VarIdent reduce using rule 80 - L_HoleIdent reduce using rule 80 - + Term6 -> Term6 '[' . ListRestriction ']' (rule 113) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Restriction goto state 75 + ListRestrictiongoto state 204 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 77 State 147 - ParamDecl -> '(' '_' . ':' Term ')' (rule 52) - - ':' shift, and enter state 164 - + Restriction -> Term '|->' . Term (rule 70) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 203 State 148 - ListTerm -> Term ',' . ListTerm (rule 108) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 33 - ListTerm goto state 163 + ListRestriction -> Restriction ',' . ListRestriction (rule 72) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Restriction goto state 75 + ListRestrictiongoto state 202 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 77 State 149 - Term -> Term2 'as' . Term1 (rule 105) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 162 - Term6 goto state 32 + Term5 -> Term5 '*' . Term6 (rule 95) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term6 goto state 201 State 150 - Term2 -> Term3 '\\/' . Term2 (rule 89) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 161 - Term6 goto state 67 + Term1 -> Term2 '=' . Term2 (rule 107) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 200 + Term6 goto state 70 State 151 - Term3 -> Term4 '/\\' . Term3 (rule 87) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 160 - Term6 goto state 67 + Term1 -> Term2 '=_{' . Term '}' Term2 (rule 106) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 199 State 152 - Term4 -> Term5 '<=' . Term5 (rule 85) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 159 - Term6 goto state 67 + Term7 -> '(' Term . ',' Term ')' (rule 87) + Term7 -> '(' Term . ')' (rule 94) + + ')' shift, and enter state 197 + ',' shift, and enter state 198 + State 153 - Term4 -> Term5 '===' . Term5 (rule 84) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 158 - Term6 goto state 67 + Term1 -> '∑' '(' . Pattern ':' Term ')' ',' Term1 (rule 112) + + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 81 + Pattern goto state 196 State 154 - Term1 -> ParamDecl '->' . Term1 (rule 91) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 157 - Term6 goto state 32 + Term1 -> 'Σ' '(' . Pattern ':' Term ')' ',' Term1 (rule 111) + + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + + VarIdent goto state 81 + Pattern goto state 195 State 155 - Term1 -> ParamDecl '→' . Term1 (rule 97) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 156 - Term6 goto state 32 + ParamDecl -> '{' Pattern . ':' Term '}' (rule 66) + ParamDecl -> '{' Pattern . ':' Term '|' Term '}' (rule 69) + + ':' shift, and enter state 194 + State 156 - Term1 -> ParamDecl '→' Term1 . (rule 97) + Pattern -> '(' . Pattern ',' Pattern ')' (rule 56) + ParamDecl -> '{' '(' . Pattern ':' Term ')' '|' Term '}' (rule 68) - ')' reduce using rule 97 - ',' reduce using rule 97 - ':' reduce using rule 97 - ':=' reduce using rule 97 - ';' reduce using rule 97 - '>' reduce using rule 97 - ']' reduce using rule 97 - '|' reduce using rule 97 - '|->' reduce using rule 97 - '}' reduce using rule 97 - %eof reduce using rule 97 + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 193 State 157 - Term1 -> ParamDecl '->' Term1 . (rule 91) - - ')' reduce using rule 91 - ',' reduce using rule 91 - ':' reduce using rule 91 - ':=' reduce using rule 91 - ';' reduce using rule 91 - '>' reduce using rule 91 - ']' reduce using rule 91 - '|' reduce using rule 91 - '|->' reduce using rule 91 - '}' reduce using rule 91 - %eof reduce using rule 91 + Term6 -> 'second' Term7 . (rule 116) + + '(' reduce using rule 116 + ')' reduce using rule 116 + '*' reduce using rule 116 + '*_1' reduce using rule 116 + ',' reduce using rule 116 + '->' reduce using rule 116 + '/\\' reduce using rule 116 + '0_2' reduce using rule 116 + '1' reduce using rule 116 + '1_2' reduce using rule 116 + '2' reduce using rule 116 + ':' reduce using rule 116 + ':=' reduce using rule 116 + ';' reduce using rule 116 + '<' reduce using rule 116 + '<=' reduce using rule 116 + '=' reduce using rule 116 + '===' reduce using rule 116 + '=_{' reduce using rule 116 + '>' reduce using rule 116 + 'BOT' reduce using rule 116 + 'CUBE' reduce using rule 116 + 'TOP' reduce using rule 116 + 'TOPE' reduce using rule 116 + 'U' reduce using rule 116 + '[' reduce using rule 116 + '\\/' reduce using rule 116 + ']' reduce using rule 116 + 'as' reduce using rule 116 + 'idJ' reduce using rule 116 + 'recBOT' reduce using rule 116 + 'recOR' reduce using rule 116 + 'refl' reduce using rule 116 + 'refl_{' reduce using rule 116 + '|' reduce using rule 116 + '|->' reduce using rule 116 + '}' reduce using rule 116 + '→' reduce using rule 116 + L_VarIdent reduce using rule 116 + L_HoleIdent reduce using rule 116 + %eof reduce using rule 116 State 158 - Term5 -> Term5 . '*' Term6 (rule 82) - Term4 -> Term5 '===' Term5 . (rule 84) + Term7 -> 'refl_{' Term . '}' (rule 89) + Term7 -> 'refl_{' Term . ':' Term '}' (rule 90) - ')' reduce using rule 84 - '*' shift, and enter state 130 - ',' reduce using rule 84 - '/\\' reduce using rule 84 - ':' reduce using rule 84 - ':=' reduce using rule 84 - ';' reduce using rule 84 - '=' reduce using rule 84 - '=_{' reduce using rule 84 - '>' reduce using rule 84 - '\\/' reduce using rule 84 - ']' reduce using rule 84 - 'as' reduce using rule 84 - '|' reduce using rule 84 - '|->' reduce using rule 84 - '}' reduce using rule 84 - %eof reduce using rule 84 + ':' shift, and enter state 191 + '}' shift, and enter state 192 State 159 - Term5 -> Term5 . '*' Term6 (rule 82) - Term4 -> Term5 '<=' Term5 . (rule 85) - - ')' reduce using rule 85 - '*' shift, and enter state 130 - ',' reduce using rule 85 - '/\\' reduce using rule 85 - ':' reduce using rule 85 - ':=' reduce using rule 85 - ';' reduce using rule 85 - '=' reduce using rule 85 - '=_{' reduce using rule 85 - '>' reduce using rule 85 - '\\/' reduce using rule 85 - ']' reduce using rule 85 - 'as' reduce using rule 85 - '|' reduce using rule 85 - '|->' reduce using rule 85 - '}' reduce using rule 85 - %eof reduce using rule 85 - + Term7 -> 'recOR' '(' . ListRestriction ')' (rule 84) + Term7 -> 'recOR' '(' . Term ',' Term ',' Term ',' Term ')' (rule 85) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Restriction goto state 75 + ListRestrictiongoto state 189 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 190 State 160 - Term3 -> Term4 '/\\' Term3 . (rule 87) - - ')' reduce using rule 87 - ',' reduce using rule 87 - ':' reduce using rule 87 - ':=' reduce using rule 87 - ';' reduce using rule 87 - '=' reduce using rule 87 - '=_{' reduce using rule 87 - '>' reduce using rule 87 - '\\/' reduce using rule 87 - ']' reduce using rule 87 - 'as' reduce using rule 87 - '|' reduce using rule 87 - '|->' reduce using rule 87 - '}' reduce using rule 87 - %eof reduce using rule 87 - + Term7 -> 'idJ' '(' . Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 188 State 161 - Term2 -> Term3 '\\/' Term2 . (rule 89) - - ')' reduce using rule 89 - ',' reduce using rule 89 - ':' reduce using rule 89 - ':=' reduce using rule 89 - ';' reduce using rule 89 - '=' reduce using rule 89 - '=_{' reduce using rule 89 - '>' reduce using rule 89 - ']' reduce using rule 89 - 'as' reduce using rule 89 - '|' reduce using rule 89 - '|->' reduce using rule 89 - '}' reduce using rule 89 - %eof reduce using rule 89 + Term6 -> 'first' Term7 . (rule 115) + + '(' reduce using rule 115 + ')' reduce using rule 115 + '*' reduce using rule 115 + '*_1' reduce using rule 115 + ',' reduce using rule 115 + '->' reduce using rule 115 + '/\\' reduce using rule 115 + '0_2' reduce using rule 115 + '1' reduce using rule 115 + '1_2' reduce using rule 115 + '2' reduce using rule 115 + ':' reduce using rule 115 + ':=' reduce using rule 115 + ';' reduce using rule 115 + '<' reduce using rule 115 + '<=' reduce using rule 115 + '=' reduce using rule 115 + '===' reduce using rule 115 + '=_{' reduce using rule 115 + '>' reduce using rule 115 + 'BOT' reduce using rule 115 + 'CUBE' reduce using rule 115 + 'TOP' reduce using rule 115 + 'TOPE' reduce using rule 115 + 'U' reduce using rule 115 + '[' reduce using rule 115 + '\\/' reduce using rule 115 + ']' reduce using rule 115 + 'as' reduce using rule 115 + 'idJ' reduce using rule 115 + 'recBOT' reduce using rule 115 + 'recOR' reduce using rule 115 + 'refl' reduce using rule 115 + 'refl_{' reduce using rule 115 + '|' reduce using rule 115 + '|->' reduce using rule 115 + '}' reduce using rule 115 + '→' reduce using rule 115 + L_VarIdent reduce using rule 115 + L_HoleIdent reduce using rule 115 + %eof reduce using rule 115 State 162 - Term -> Term2 'as' Term1 . (rule 105) + Term1 -> '\\' ListParam . '->' Term1 (rule 108) - ')' reduce using rule 105 - ',' reduce using rule 105 - ':' reduce using rule 105 - ':=' reduce using rule 105 - ';' reduce using rule 105 - '>' reduce using rule 105 - ']' reduce using rule 105 - '|' reduce using rule 105 - '|->' reduce using rule 105 - '}' reduce using rule 105 - %eof reduce using rule 105 + '->' shift, and enter state 187 State 163 - ListTerm -> Term ',' ListTerm . (rule 108) + Term1 -> 'Sigma' '(' . Pattern ':' Term ')' ',' Term1 (rule 105) - %eof reduce using rule 108 + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 186 State 164 - ParamDecl -> '(' '_' ':' . Term ')' (rule 52) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 228 + Term7 -> '<' ParamDecl . '->' Term '>' (rule 86) + + '->' shift, and enter state 185 + State 165 - ParamDecl -> '(' VarIdent ':' . Term ')' (rule 54) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 227 + ParamDecl -> '(' VarIdent . ':' Term ')' (rule 67) + Term7 -> VarIdent . (rule 93) + + '(' reduce using rule 93 + ')' reduce using rule 93 + '*' reduce using rule 93 + '*_1' reduce using rule 93 + ',' reduce using rule 93 + '->' reduce using rule 93 + '/\\' reduce using rule 93 + '0_2' reduce using rule 93 + '1' reduce using rule 93 + '1_2' reduce using rule 93 + '2' reduce using rule 93 + ':' shift, and enter state 184 + '<' reduce using rule 93 + '<=' reduce using rule 93 + '=' reduce using rule 93 + '===' reduce using rule 93 + '=_{' reduce using rule 93 + 'BOT' reduce using rule 93 + 'CUBE' reduce using rule 93 + 'TOP' reduce using rule 93 + 'TOPE' reduce using rule 93 + 'U' reduce using rule 93 + '[' reduce using rule 93 + '\\/' reduce using rule 93 + 'as' reduce using rule 93 + 'idJ' reduce using rule 93 + 'recBOT' reduce using rule 93 + 'recOR' reduce using rule 93 + 'refl' reduce using rule 93 + 'refl_{' reduce using rule 93 + '→' reduce using rule 93 + L_VarIdent reduce using rule 93 + L_HoleIdent reduce using rule 93 + State 166 - Term7 -> '<' ParamDecl '->' . Term '>' (rule 73) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 226 + ParamDecl -> '(' '_' . ':' Term ')' (rule 65) -State 167 + ':' shift, and enter state 183 - Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 92) - ':' shift, and enter state 225 +State 167 + ListTerm -> Term ',' . ListTerm (rule 121) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 36 + ListTerm goto state 182 State 168 - Term1 -> '\\' ListParam '->' . Term1 (rule 95) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 224 - Term6 goto state 32 + Term -> Term2 'as' . Term1 (rule 118) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 181 + Term6 goto state 35 State 169 - Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 78) - - ',' shift, and enter state 223 - + Term2 -> Term3 '\\/' . Term2 (rule 102) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 180 + Term6 goto state 70 State 170 - Term7 -> 'recOR' '(' ListRestriction . ')' (rule 71) - - ')' shift, and enter state 222 - + Term3 -> Term4 '/\\' . Term3 (rule 100) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 179 + Term6 goto state 70 State 171 - Restriction -> Term . '|->' Term (rule 57) - Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 72) - - ',' shift, and enter state 221 - '|->' shift, and enter state 128 - + Term4 -> Term5 '<=' . Term5 (rule 98) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 178 + Term6 goto state 70 -State 172 - - Term7 -> 'refl_{' Term ':' . Term '}' (rule 77) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 220 - -State 173 - - Term7 -> 'refl_{' Term '}' . (rule 76) - - '(' reduce using rule 76 - ')' reduce using rule 76 - '*' reduce using rule 76 - '*_1' reduce using rule 76 - ',' reduce using rule 76 - '->' reduce using rule 76 - '/\\' reduce using rule 76 - '0_2' reduce using rule 76 - '1' reduce using rule 76 - '1_2' reduce using rule 76 - '2' reduce using rule 76 - ':' reduce using rule 76 - ':=' reduce using rule 76 - ';' reduce using rule 76 - '<' reduce using rule 76 - '<=' reduce using rule 76 - '=' reduce using rule 76 - '===' reduce using rule 76 - '=_{' reduce using rule 76 - '>' reduce using rule 76 - 'BOT' reduce using rule 76 - 'CUBE' reduce using rule 76 - 'TOP' reduce using rule 76 - 'TOPE' reduce using rule 76 - 'U' reduce using rule 76 - '[' reduce using rule 76 - '\\/' reduce using rule 76 - ']' reduce using rule 76 - 'as' reduce using rule 76 - 'idJ' reduce using rule 76 - 'recBOT' reduce using rule 76 - 'recOR' reduce using rule 76 - 'refl' reduce using rule 76 - 'refl_{' reduce using rule 76 - '|' reduce using rule 76 - '|->' reduce using rule 76 - '}' reduce using rule 76 - '→' reduce using rule 76 - L_VarIdent reduce using rule 76 - L_HoleIdent reduce using rule 76 - %eof reduce using rule 76 +State 172 + Term4 -> Term5 '===' . Term5 (rule 97) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 177 + Term6 goto state 70 -State 174 +State 173 - Pattern -> '(' Pattern . ',' Pattern ')' (rule 43) - ParamDecl -> '{' '(' Pattern . ':' Term ')' '|' Term '}' (rule 55) + Term1 -> ParamDecl '->' . Term1 (rule 104) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 176 + Term6 goto state 35 - ',' shift, and enter state 187 - ':' shift, and enter state 219 +State 174 + Term1 -> ParamDecl '→' . Term1 (rule 110) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 175 + Term6 goto state 35 State 175 - ParamDecl -> '{' Pattern ':' . Term '}' (rule 53) - ParamDecl -> '{' Pattern ':' . Term '|' Term '}' (rule 56) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 218 + Term1 -> ParamDecl '→' Term1 . (rule 110) + + ')' reduce using rule 110 + ',' reduce using rule 110 + ':' reduce using rule 110 + ':=' reduce using rule 110 + ';' reduce using rule 110 + '>' reduce using rule 110 + ']' reduce using rule 110 + '|' reduce using rule 110 + '|->' reduce using rule 110 + '}' reduce using rule 110 + %eof reduce using rule 110 + State 176 - Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 98) + Term1 -> ParamDecl '->' Term1 . (rule 104) - ':' shift, and enter state 217 + ')' reduce using rule 104 + ',' reduce using rule 104 + ':' reduce using rule 104 + ':=' reduce using rule 104 + ';' reduce using rule 104 + '>' reduce using rule 104 + ']' reduce using rule 104 + '|' reduce using rule 104 + '|->' reduce using rule 104 + '}' reduce using rule 104 + %eof reduce using rule 104 State 177 - Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 99) + Term5 -> Term5 . '*' Term6 (rule 95) + Term4 -> Term5 '===' Term5 . (rule 97) - ':' shift, and enter state 216 + ')' reduce using rule 97 + '*' shift, and enter state 149 + ',' reduce using rule 97 + '/\\' reduce using rule 97 + ':' reduce using rule 97 + ':=' reduce using rule 97 + ';' reduce using rule 97 + '=' reduce using rule 97 + '=_{' reduce using rule 97 + '>' reduce using rule 97 + '\\/' reduce using rule 97 + ']' reduce using rule 97 + 'as' reduce using rule 97 + '|' reduce using rule 97 + '|->' reduce using rule 97 + '}' reduce using rule 97 + %eof reduce using rule 97 State 178 - Term7 -> '(' Term ')' . (rule 81) + Term5 -> Term5 . '*' Term6 (rule 95) + Term4 -> Term5 '<=' Term5 . (rule 98) - '(' reduce using rule 81 - ')' reduce using rule 81 - '*' reduce using rule 81 - '*_1' reduce using rule 81 - ',' reduce using rule 81 - '->' reduce using rule 81 - '/\\' reduce using rule 81 - '0_2' reduce using rule 81 - '1' reduce using rule 81 - '1_2' reduce using rule 81 - '2' reduce using rule 81 - ':' reduce using rule 81 - ':=' reduce using rule 81 - ';' reduce using rule 81 - '<' reduce using rule 81 - '<=' reduce using rule 81 - '=' reduce using rule 81 - '===' reduce using rule 81 - '=_{' reduce using rule 81 - '>' reduce using rule 81 - 'BOT' reduce using rule 81 - 'CUBE' reduce using rule 81 - 'TOP' reduce using rule 81 - 'TOPE' reduce using rule 81 - 'U' reduce using rule 81 - '[' reduce using rule 81 - '\\/' reduce using rule 81 - ']' reduce using rule 81 - 'as' reduce using rule 81 - 'idJ' reduce using rule 81 - 'recBOT' reduce using rule 81 - 'recOR' reduce using rule 81 - 'refl' reduce using rule 81 - 'refl_{' reduce using rule 81 - '|' reduce using rule 81 - '|->' reduce using rule 81 - '}' reduce using rule 81 - '→' reduce using rule 81 - L_VarIdent reduce using rule 81 - L_HoleIdent reduce using rule 81 - %eof reduce using rule 81 + ')' reduce using rule 98 + '*' shift, and enter state 149 + ',' reduce using rule 98 + '/\\' reduce using rule 98 + ':' reduce using rule 98 + ':=' reduce using rule 98 + ';' reduce using rule 98 + '=' reduce using rule 98 + '=_{' reduce using rule 98 + '>' reduce using rule 98 + '\\/' reduce using rule 98 + ']' reduce using rule 98 + 'as' reduce using rule 98 + '|' reduce using rule 98 + '|->' reduce using rule 98 + '}' reduce using rule 98 + %eof reduce using rule 98 State 179 - Term7 -> '(' Term ',' . Term ')' (rule 74) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 215 + Term3 -> Term4 '/\\' Term3 . (rule 100) + + ')' reduce using rule 100 + ',' reduce using rule 100 + ':' reduce using rule 100 + ':=' reduce using rule 100 + ';' reduce using rule 100 + '=' reduce using rule 100 + '=_{' reduce using rule 100 + '>' reduce using rule 100 + '\\/' reduce using rule 100 + ']' reduce using rule 100 + 'as' reduce using rule 100 + '|' reduce using rule 100 + '|->' reduce using rule 100 + '}' reduce using rule 100 + %eof reduce using rule 100 + State 180 - Term1 -> Term2 '=_{' Term . '}' Term2 (rule 93) + Term2 -> Term3 '\\/' Term2 . (rule 102) - '}' shift, and enter state 214 + ')' reduce using rule 102 + ',' reduce using rule 102 + ':' reduce using rule 102 + ':=' reduce using rule 102 + ';' reduce using rule 102 + '=' reduce using rule 102 + '=_{' reduce using rule 102 + '>' reduce using rule 102 + ']' reduce using rule 102 + 'as' reduce using rule 102 + '|' reduce using rule 102 + '|->' reduce using rule 102 + '}' reduce using rule 102 + %eof reduce using rule 102 State 181 - Term1 -> Term2 '=' Term2 . (rule 94) + Term -> Term2 'as' Term1 . (rule 118) - ')' reduce using rule 94 - ',' reduce using rule 94 - ':' reduce using rule 94 - ':=' reduce using rule 94 - ';' reduce using rule 94 - '>' reduce using rule 94 - ']' reduce using rule 94 - '|' reduce using rule 94 - '|->' reduce using rule 94 - '}' reduce using rule 94 - %eof reduce using rule 94 + ')' reduce using rule 118 + ',' reduce using rule 118 + ':' reduce using rule 118 + ':=' reduce using rule 118 + ';' reduce using rule 118 + '>' reduce using rule 118 + ']' reduce using rule 118 + '|' reduce using rule 118 + '|->' reduce using rule 118 + '}' reduce using rule 118 + %eof reduce using rule 118 State 182 - Term5 -> Term5 '*' Term6 . (rule 82) - Term6 -> Term6 . '[' ListRestriction ']' (rule 100) - Term6 -> Term6 . Term7 (rule 101) + ListTerm -> Term ',' ListTerm . (rule 121) - '(' shift, and enter state 63 - ')' reduce using rule 82 - '*' reduce using rule 82 - '*_1' shift, and enter state 36 - ',' reduce using rule 82 - '/\\' reduce using rule 82 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - ':' reduce using rule 82 - ':=' reduce using rule 82 - ';' reduce using rule 82 - '<' shift, and enter state 41 - '<=' reduce using rule 82 - '=' reduce using rule 82 - '===' reduce using rule 82 - '=_{' reduce using rule 82 - '>' reduce using rule 82 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '[' shift, and enter state 127 - '\\/' reduce using rule 82 - ']' reduce using rule 82 - 'as' reduce using rule 82 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - '|' reduce using rule 82 - '|->' reduce using rule 82 - '}' reduce using rule 82 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - %eof reduce using rule 82 + %eof reduce using rule 121 - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 126 State 183 - ListRestriction -> Restriction ',' ListRestriction . (rule 59) - - ')' reduce using rule 59 - ']' reduce using rule 59 - %eof reduce using rule 59 - + ParamDecl -> '(' '_' ':' . Term ')' (rule 65) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 251 State 184 - Restriction -> Term '|->' Term . (rule 57) - - ')' reduce using rule 57 - ',' reduce using rule 57 - ']' reduce using rule 57 - %eof reduce using rule 57 - + ParamDecl -> '(' VarIdent ':' . Term ')' (rule 67) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 250 State 185 - Term6 -> Term6 '[' ListRestriction . ']' (rule 100) + Term7 -> '<' ParamDecl '->' . Term '>' (rule 86) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 249 - ']' shift, and enter state 213 +State 186 + Term1 -> 'Sigma' '(' Pattern . ':' Term ')' ',' Term1 (rule 105) -State 186 + ':' shift, and enter state 248 - Param -> '(' ListPattern ':' . Term ')' (rule 47) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 212 State 187 - Pattern -> '(' Pattern ',' . Pattern ')' (rule 43) + Term1 -> '\\' ListParam '->' . Term1 (rule 108) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 247 + Term6 goto state 35 - '(' shift, and enter state 88 - '_' shift, and enter state 83 - L_VarIdent shift, and enter state 59 +State 188 - VarIdent goto state 78 - Pattern goto state 211 + Term7 -> 'idJ' '(' Term . ',' Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) -State 188 + ',' shift, and enter state 246 - Param -> '{' Pattern ':' . Term '|' Term '}' (rule 48) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 210 State 189 - Command -> '#check' Term ':' . Term ';' (rule 29) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 209 + Term7 -> 'recOR' '(' ListRestriction . ')' (rule 84) + + ')' shift, and enter state 245 + State 190 - Command -> '#compute' Term ';' . (rule 30) + Restriction -> Term . '|->' Term (rule 70) + Term7 -> 'recOR' '(' Term . ',' Term ',' Term ',' Term ')' (rule 85) - '#check' reduce using rule 30 - '#compute' reduce using rule 30 - '#compute-nf' reduce using rule 30 - '#compute-whnf'reduce using rule 30 - '#def' reduce using rule 30 - '#define' reduce using rule 30 - '#postulate' reduce using rule 30 - '#set-option' reduce using rule 30 - '#unset-option'reduce using rule 30 - %eof reduce using rule 30 + ',' shift, and enter state 244 + '|->' shift, and enter state 147 State 191 - Command -> '#compute-nf' Term ';' . (rule 32) - - '#check' reduce using rule 32 - '#compute' reduce using rule 32 - '#compute-nf' reduce using rule 32 - '#compute-whnf'reduce using rule 32 - '#def' reduce using rule 32 - '#define' reduce using rule 32 - '#postulate' reduce using rule 32 - '#set-option' reduce using rule 32 - '#unset-option'reduce using rule 32 - %eof reduce using rule 32 - + Term7 -> 'refl_{' Term ':' . Term '}' (rule 90) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 243 State 192 - Command -> '#compute-whnf' Term ';' . (rule 31) - - '#check' reduce using rule 31 - '#compute' reduce using rule 31 - '#compute-nf' reduce using rule 31 - '#compute-whnf'reduce using rule 31 - '#def' reduce using rule 31 - '#define' reduce using rule 31 - '#postulate' reduce using rule 31 - '#set-option' reduce using rule 31 - '#unset-option'reduce using rule 31 - %eof reduce using rule 31 + Term7 -> 'refl_{' Term '}' . (rule 89) + + '(' reduce using rule 89 + ')' reduce using rule 89 + '*' reduce using rule 89 + '*_1' reduce using rule 89 + ',' reduce using rule 89 + '->' reduce using rule 89 + '/\\' reduce using rule 89 + '0_2' reduce using rule 89 + '1' reduce using rule 89 + '1_2' reduce using rule 89 + '2' reduce using rule 89 + ':' reduce using rule 89 + ':=' reduce using rule 89 + ';' reduce using rule 89 + '<' reduce using rule 89 + '<=' reduce using rule 89 + '=' reduce using rule 89 + '===' reduce using rule 89 + '=_{' reduce using rule 89 + '>' reduce using rule 89 + 'BOT' reduce using rule 89 + 'CUBE' reduce using rule 89 + 'TOP' reduce using rule 89 + 'TOPE' reduce using rule 89 + 'U' reduce using rule 89 + '[' reduce using rule 89 + '\\/' reduce using rule 89 + ']' reduce using rule 89 + 'as' reduce using rule 89 + 'idJ' reduce using rule 89 + 'recBOT' reduce using rule 89 + 'recOR' reduce using rule 89 + 'refl' reduce using rule 89 + 'refl_{' reduce using rule 89 + '|' reduce using rule 89 + '|->' reduce using rule 89 + '}' reduce using rule 89 + '→' reduce using rule 89 + L_VarIdent reduce using rule 89 + L_HoleIdent reduce using rule 89 + %eof reduce using rule 89 State 193 - Command -> '#def' VarIdent ListParam . ':' Term ':=' Term ';' (rule 37) + Pattern -> '(' Pattern . ',' Pattern ')' (rule 56) + ParamDecl -> '{' '(' Pattern . ':' Term ')' '|' Term '}' (rule 68) - ':' shift, and enter state 208 + ',' shift, and enter state 206 + ':' shift, and enter state 242 State 194 - Command -> '#def' VarIdent ':' . Term ':=' Term ';' (rule 38) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 207 + ParamDecl -> '{' Pattern ':' . Term '}' (rule 66) + ParamDecl -> '{' Pattern ':' . Term '|' Term '}' (rule 69) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 241 State 195 - Command -> '#define' VarIdent ListParam . ':' Term ':=' Term ';' (rule 35) + Term1 -> 'Σ' '(' Pattern . ':' Term ')' ',' Term1 (rule 111) - ':' shift, and enter state 206 + ':' shift, and enter state 240 State 196 - Command -> '#define' VarIdent ':' . Term ':=' Term ';' (rule 36) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 205 + Term1 -> '∑' '(' Pattern . ':' Term ')' ',' Term1 (rule 112) + + ':' shift, and enter state 239 + State 197 - Command -> '#postulate' VarIdent ListParam . ':' Term ';' (rule 33) + Term7 -> '(' Term ')' . (rule 94) - ':' shift, and enter state 204 + '(' reduce using rule 94 + ')' reduce using rule 94 + '*' reduce using rule 94 + '*_1' reduce using rule 94 + ',' reduce using rule 94 + '->' reduce using rule 94 + '/\\' reduce using rule 94 + '0_2' reduce using rule 94 + '1' reduce using rule 94 + '1_2' reduce using rule 94 + '2' reduce using rule 94 + ':' reduce using rule 94 + ':=' reduce using rule 94 + ';' reduce using rule 94 + '<' reduce using rule 94 + '<=' reduce using rule 94 + '=' reduce using rule 94 + '===' reduce using rule 94 + '=_{' reduce using rule 94 + '>' reduce using rule 94 + 'BOT' reduce using rule 94 + 'CUBE' reduce using rule 94 + 'TOP' reduce using rule 94 + 'TOPE' reduce using rule 94 + 'U' reduce using rule 94 + '[' reduce using rule 94 + '\\/' reduce using rule 94 + ']' reduce using rule 94 + 'as' reduce using rule 94 + 'idJ' reduce using rule 94 + 'recBOT' reduce using rule 94 + 'recOR' reduce using rule 94 + 'refl' reduce using rule 94 + 'refl_{' reduce using rule 94 + '|' reduce using rule 94 + '|->' reduce using rule 94 + '}' reduce using rule 94 + '→' reduce using rule 94 + L_VarIdent reduce using rule 94 + L_HoleIdent reduce using rule 94 + %eof reduce using rule 94 State 198 - Command -> '#postulate' VarIdent ':' . Term ';' (rule 34) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 203 + Term7 -> '(' Term ',' . Term ')' (rule 87) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 238 State 199 - Command -> '#set-option' String '=' . String ';' (rule 27) + Term1 -> Term2 '=_{' Term . '}' Term2 (rule 106) - L_quoted shift, and enter state 22 + '}' shift, and enter state 237 - String goto state 202 State 200 - Command -> '#unset-option' String ';' . (rule 28) - - '#check' reduce using rule 28 - '#compute' reduce using rule 28 - '#compute-nf' reduce using rule 28 - '#compute-whnf'reduce using rule 28 - '#def' reduce using rule 28 - '#define' reduce using rule 28 - '#postulate' reduce using rule 28 - '#set-option' reduce using rule 28 - '#unset-option'reduce using rule 28 - %eof reduce using rule 28 + Term1 -> Term2 '=' Term2 . (rule 107) + + ')' reduce using rule 107 + ',' reduce using rule 107 + ':' reduce using rule 107 + ':=' reduce using rule 107 + ';' reduce using rule 107 + '>' reduce using rule 107 + ']' reduce using rule 107 + '|' reduce using rule 107 + '|->' reduce using rule 107 + '}' reduce using rule 107 + %eof reduce using rule 107 State 201 - LanguageDecl -> '#lang' Language ';' . (rule 25) - - '#check' reduce using rule 25 - '#compute' reduce using rule 25 - '#compute-nf' reduce using rule 25 - '#compute-whnf'reduce using rule 25 - '#def' reduce using rule 25 - '#define' reduce using rule 25 - '#postulate' reduce using rule 25 - '#set-option' reduce using rule 25 - '#unset-option'reduce using rule 25 - %eof reduce using rule 25 + Term5 -> Term5 '*' Term6 . (rule 95) + Term6 -> Term6 . '[' ListRestriction ']' (rule 113) + Term6 -> Term6 . Term7 (rule 114) + + '(' shift, and enter state 66 + ')' reduce using rule 95 + '*' reduce using rule 95 + '*_1' shift, and enter state 39 + ',' reduce using rule 95 + '/\\' reduce using rule 95 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + ':' reduce using rule 95 + ':=' reduce using rule 95 + ';' reduce using rule 95 + '<' shift, and enter state 44 + '<=' reduce using rule 95 + '=' reduce using rule 95 + '===' reduce using rule 95 + '=_{' reduce using rule 95 + '>' reduce using rule 95 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '[' shift, and enter state 146 + '\\/' reduce using rule 95 + ']' reduce using rule 95 + 'as' reduce using rule 95 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + '|' reduce using rule 95 + '|->' reduce using rule 95 + '}' reduce using rule 95 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + %eof reduce using rule 95 + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 145 State 202 - Command -> '#set-option' String '=' String . ';' (rule 27) + ListRestriction -> Restriction ',' ListRestriction . (rule 72) - ';' shift, and enter state 253 + ')' reduce using rule 72 + ']' reduce using rule 72 + %eof reduce using rule 72 State 203 - Command -> '#postulate' VarIdent ':' Term . ';' (rule 34) + Restriction -> Term '|->' Term . (rule 70) - ';' shift, and enter state 252 + ')' reduce using rule 70 + ',' reduce using rule 70 + ']' reduce using rule 70 + %eof reduce using rule 70 State 204 - Command -> '#postulate' VarIdent ListParam ':' . Term ';' (rule 33) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 251 + Term6 -> Term6 '[' ListRestriction . ']' (rule 113) -State 205 + ']' shift, and enter state 236 - Command -> '#define' VarIdent ':' Term . ':=' Term ';' (rule 36) - ':=' shift, and enter state 250 +State 205 + Param -> '(' ListPattern ':' . Term ')' (rule 60) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 235 State 206 - Command -> '#define' VarIdent ListParam ':' . Term ':=' Term ';' (rule 35) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 249 + Pattern -> '(' Pattern ',' . Pattern ')' (rule 56) -State 207 + '(' shift, and enter state 91 + '_' shift, and enter state 86 + L_VarIdent shift, and enter state 62 - Command -> '#def' VarIdent ':' Term . ':=' Term ';' (rule 38) + VarIdent goto state 81 + Pattern goto state 234 - ':=' shift, and enter state 248 +State 207 + Param -> '{' Pattern ':' . Term '|' Term '}' (rule 61) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 233 State 208 - Command -> '#def' VarIdent ListParam ':' . Term ':=' Term ';' (rule 37) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 247 + DeclUsedVars -> 'uses' '(' ListVarIdent . ')' (rule 50) -State 209 + ')' shift, and enter state 232 - Command -> '#check' Term ':' Term . ';' (rule 29) - ';' shift, and enter state 246 +State 209 + ListCommand -> Command ';' ListCommand . (rule 49) -State 210 + '#end' reduce using rule 49 + %eof reduce using rule 49 - Param -> '{' Pattern ':' Term . '|' Term '}' (rule 48) - '|' shift, and enter state 245 +State 210 + Command -> '#assume' ListVarIdent ':' . Term (rule 40) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 231 State 211 - Pattern -> '(' Pattern ',' Pattern . ')' (rule 43) - - ')' shift, and enter state 244 - + Command -> '#check' Term ':' . Term (rule 34) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 230 State 212 - Param -> '(' ListPattern ':' Term . ')' (rule 47) + Command -> '#def' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 46) + Command -> '#def' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 47) - ')' shift, and enter state 243 + '(' shift, and enter state 85 + ':' shift, and enter state 229 + '_' shift, and enter state 86 + '{' shift, and enter state 87 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 82 + Param goto state 83 + ListParam goto state 228 State 213 - Term6 -> Term6 '[' ListRestriction ']' . (rule 100) + Command -> '#define' VarIdent DeclUsedVars . ListParam ':' Term ':=' Term (rule 44) + Command -> '#define' VarIdent DeclUsedVars . ':' Term ':=' Term (rule 45) - '(' reduce using rule 100 - ')' reduce using rule 100 - '*' reduce using rule 100 - '*_1' reduce using rule 100 - ',' reduce using rule 100 - '->' reduce using rule 100 - '/\\' reduce using rule 100 - '0_2' reduce using rule 100 - '1' reduce using rule 100 - '1_2' reduce using rule 100 - '2' reduce using rule 100 - ':' reduce using rule 100 - ':=' reduce using rule 100 - ';' reduce using rule 100 - '<' reduce using rule 100 - '<=' reduce using rule 100 - '=' reduce using rule 100 - '===' reduce using rule 100 - '=_{' reduce using rule 100 - '>' reduce using rule 100 - 'BOT' reduce using rule 100 - 'CUBE' reduce using rule 100 - 'TOP' reduce using rule 100 - 'TOPE' reduce using rule 100 - 'U' reduce using rule 100 - '[' reduce using rule 100 - '\\/' reduce using rule 100 - ']' reduce using rule 100 - 'as' reduce using rule 100 - 'idJ' reduce using rule 100 - 'recBOT' reduce using rule 100 - 'recOR' reduce using rule 100 - 'refl' reduce using rule 100 - 'refl_{' reduce using rule 100 - '|' reduce using rule 100 - '|->' reduce using rule 100 - '}' reduce using rule 100 - '→' reduce using rule 100 - L_VarIdent reduce using rule 100 - L_HoleIdent reduce using rule 100 - %eof reduce using rule 100 + '(' shift, and enter state 85 + ':' shift, and enter state 227 + '_' shift, and enter state 86 + '{' shift, and enter state 87 + L_VarIdent shift, and enter state 62 + VarIdent goto state 81 + Pattern goto state 82 + Param goto state 83 + ListParam goto state 226 State 214 - Term1 -> Term2 '=_{' Term '}' . Term2 (rule 93) - - '(' shift, and enter state 63 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 242 - Term6 goto state 67 + Command -> '#postulate' VarIdent DeclUsedVars . ListParam ':' Term (rule 38) + Command -> '#postulate' VarIdent DeclUsedVars . ':' Term (rule 39) -State 215 + '(' shift, and enter state 85 + ':' shift, and enter state 225 + '_' shift, and enter state 86 + '{' shift, and enter state 87 + L_VarIdent shift, and enter state 62 - Term7 -> '(' Term ',' Term . ')' (rule 74) + VarIdent goto state 81 + Pattern goto state 82 + Param goto state 83 + ListParam goto state 224 - ')' shift, and enter state 241 +State 215 + Command -> '#section' SectionName ';' . ListCommand '#end' SectionName (rule 43) + + '#assume' shift, and enter state 99 + '#check' shift, and enter state 100 + '#compute' shift, and enter state 101 + '#compute-nf' shift, and enter state 102 + '#compute-whnf'shift, and enter state 103 + '#def' shift, and enter state 104 + '#define' shift, and enter state 105 + '#end' reduce using rule 48 + '#postulate' shift, and enter state 106 + '#section' shift, and enter state 107 + '#set-option' shift, and enter state 108 + '#unset-option'shift, and enter state 109 + '#variable' shift, and enter state 110 + '#variables' shift, and enter state 111 + + Command goto state 97 + ListCommand goto state 223 State 216 - Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 99) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 240 + Command -> '#set-option' String '=' . String (rule 32) + + L_quoted shift, and enter state 25 + + String goto state 222 State 217 - Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 98) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 239 + Command -> '#variable' VarIdent ':' . Term (rule 41) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 221 State 218 - ParamDecl -> '{' Pattern ':' Term . '}' (rule 53) - ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 56) + Command -> '#variables' ListVarIdent ':' . Term (rule 42) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 220 - '|' shift, and enter state 237 - '}' shift, and enter state 238 +State 219 + LanguageDecl -> '#lang' Language ';' . (rule 30) -State 219 + '#assume' reduce using rule 30 + '#check' reduce using rule 30 + '#compute' reduce using rule 30 + '#compute-nf' reduce using rule 30 + '#compute-whnf'reduce using rule 30 + '#def' reduce using rule 30 + '#define' reduce using rule 30 + '#postulate' reduce using rule 30 + '#section' reduce using rule 30 + '#set-option' reduce using rule 30 + '#unset-option'reduce using rule 30 + '#variable' reduce using rule 30 + '#variables' reduce using rule 30 + %eof reduce using rule 30 - ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 55) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 236 State 220 - Term7 -> 'refl_{' Term ':' Term . '}' (rule 77) + Command -> '#variables' ListVarIdent ':' Term . (rule 42) - '}' shift, and enter state 235 + ';' reduce using rule 42 + %eof reduce using rule 42 State 221 - Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 72) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 234 + Command -> '#variable' VarIdent ':' Term . (rule 41) + + ';' reduce using rule 41 + %eof reduce using rule 41 + State 222 - Term7 -> 'recOR' '(' ListRestriction ')' . (rule 71) + Command -> '#set-option' String '=' String . (rule 32) - '(' reduce using rule 71 - ')' reduce using rule 71 - '*' reduce using rule 71 - '*_1' reduce using rule 71 - ',' reduce using rule 71 - '->' reduce using rule 71 - '/\\' reduce using rule 71 - '0_2' reduce using rule 71 - '1' reduce using rule 71 - '1_2' reduce using rule 71 - '2' reduce using rule 71 - ':' reduce using rule 71 - ':=' reduce using rule 71 - ';' reduce using rule 71 - '<' reduce using rule 71 - '<=' reduce using rule 71 - '=' reduce using rule 71 - '===' reduce using rule 71 - '=_{' reduce using rule 71 - '>' reduce using rule 71 - 'BOT' reduce using rule 71 - 'CUBE' reduce using rule 71 - 'TOP' reduce using rule 71 - 'TOPE' reduce using rule 71 - 'U' reduce using rule 71 - '[' reduce using rule 71 - '\\/' reduce using rule 71 - ']' reduce using rule 71 - 'as' reduce using rule 71 - 'idJ' reduce using rule 71 - 'recBOT' reduce using rule 71 - 'recOR' reduce using rule 71 - 'refl' reduce using rule 71 - 'refl_{' reduce using rule 71 - '|' reduce using rule 71 - '|->' reduce using rule 71 - '}' reduce using rule 71 - '→' reduce using rule 71 - L_VarIdent reduce using rule 71 - L_HoleIdent reduce using rule 71 - %eof reduce using rule 71 + ';' reduce using rule 32 + %eof reduce using rule 32 State 223 - Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 78) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 233 + Command -> '#section' SectionName ';' ListCommand . '#end' SectionName (rule 43) + + '#end' shift, and enter state 275 + State 224 - Term1 -> '\\' ListParam '->' Term1 . (rule 95) + Command -> '#postulate' VarIdent DeclUsedVars ListParam . ':' Term (rule 38) - ')' reduce using rule 95 - ',' reduce using rule 95 - ':' reduce using rule 95 - ':=' reduce using rule 95 - ';' reduce using rule 95 - '>' reduce using rule 95 - ']' reduce using rule 95 - '|' reduce using rule 95 - '|->' reduce using rule 95 - '}' reduce using rule 95 - %eof reduce using rule 95 + ':' shift, and enter state 274 State 225 - Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 92) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 232 + Command -> '#postulate' VarIdent DeclUsedVars ':' . Term (rule 39) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 273 State 226 - Term7 -> '<' ParamDecl '->' Term . '>' (rule 73) + Command -> '#define' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 44) - '>' shift, and enter state 231 + ':' shift, and enter state 272 State 227 - ParamDecl -> '(' VarIdent ':' Term . ')' (rule 54) - - ')' shift, and enter state 230 - + Command -> '#define' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 45) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 271 State 228 - ParamDecl -> '(' '_' ':' Term . ')' (rule 52) + Command -> '#def' VarIdent DeclUsedVars ListParam . ':' Term ':=' Term (rule 46) - ')' shift, and enter state 229 + ':' shift, and enter state 270 State 229 - ParamDecl -> '(' '_' ':' Term ')' . (rule 52) - - '->' reduce using rule 52 - '→' reduce using rule 52 - %eof reduce using rule 52 - + Command -> '#def' VarIdent DeclUsedVars ':' . Term ':=' Term (rule 47) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 269 State 230 - ParamDecl -> '(' VarIdent ':' Term ')' . (rule 54) + Command -> '#check' Term ':' Term . (rule 34) - '->' reduce using rule 54 - '→' reduce using rule 54 - %eof reduce using rule 54 + ';' reduce using rule 34 + %eof reduce using rule 34 State 231 - Term7 -> '<' ParamDecl '->' Term '>' . (rule 73) + Command -> '#assume' ListVarIdent ':' Term . (rule 40) - '(' reduce using rule 73 - ')' reduce using rule 73 - '*' reduce using rule 73 - '*_1' reduce using rule 73 - ',' reduce using rule 73 - '->' reduce using rule 73 - '/\\' reduce using rule 73 - '0_2' reduce using rule 73 - '1' reduce using rule 73 - '1_2' reduce using rule 73 - '2' reduce using rule 73 - ':' reduce using rule 73 - ':=' reduce using rule 73 - ';' reduce using rule 73 - '<' reduce using rule 73 - '<=' reduce using rule 73 - '=' reduce using rule 73 - '===' reduce using rule 73 - '=_{' reduce using rule 73 - '>' reduce using rule 73 - 'BOT' reduce using rule 73 - 'CUBE' reduce using rule 73 - 'TOP' reduce using rule 73 - 'TOPE' reduce using rule 73 - 'U' reduce using rule 73 - '[' reduce using rule 73 - '\\/' reduce using rule 73 - ']' reduce using rule 73 - 'as' reduce using rule 73 - 'idJ' reduce using rule 73 - 'recBOT' reduce using rule 73 - 'recOR' reduce using rule 73 - 'refl' reduce using rule 73 - 'refl_{' reduce using rule 73 - '|' reduce using rule 73 - '|->' reduce using rule 73 - '}' reduce using rule 73 - '→' reduce using rule 73 - L_VarIdent reduce using rule 73 - L_HoleIdent reduce using rule 73 - %eof reduce using rule 73 + ';' reduce using rule 40 + %eof reduce using rule 40 State 232 - Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 92) + DeclUsedVars -> 'uses' '(' ListVarIdent ')' . (rule 50) - ')' shift, and enter state 266 + '(' reduce using rule 50 + ':' reduce using rule 50 + '_' reduce using rule 50 + '{' reduce using rule 50 + L_VarIdent reduce using rule 50 + %eof reduce using rule 50 State 233 - Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 78) + Param -> '{' Pattern ':' Term . '|' Term '}' (rule 61) - ',' shift, and enter state 265 + '|' shift, and enter state 268 State 234 - Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 72) + Pattern -> '(' Pattern ',' Pattern . ')' (rule 56) - ',' shift, and enter state 264 + ')' shift, and enter state 267 State 235 - Term7 -> 'refl_{' Term ':' Term '}' . (rule 77) + Param -> '(' ListPattern ':' Term . ')' (rule 60) - '(' reduce using rule 77 - ')' reduce using rule 77 - '*' reduce using rule 77 - '*_1' reduce using rule 77 - ',' reduce using rule 77 - '->' reduce using rule 77 - '/\\' reduce using rule 77 - '0_2' reduce using rule 77 - '1' reduce using rule 77 - '1_2' reduce using rule 77 - '2' reduce using rule 77 - ':' reduce using rule 77 - ':=' reduce using rule 77 - ';' reduce using rule 77 - '<' reduce using rule 77 - '<=' reduce using rule 77 - '=' reduce using rule 77 - '===' reduce using rule 77 - '=_{' reduce using rule 77 - '>' reduce using rule 77 - 'BOT' reduce using rule 77 - 'CUBE' reduce using rule 77 - 'TOP' reduce using rule 77 - 'TOPE' reduce using rule 77 - 'U' reduce using rule 77 - '[' reduce using rule 77 - '\\/' reduce using rule 77 - ']' reduce using rule 77 - 'as' reduce using rule 77 - 'idJ' reduce using rule 77 - 'recBOT' reduce using rule 77 - 'recOR' reduce using rule 77 - 'refl' reduce using rule 77 - 'refl_{' reduce using rule 77 - '|' reduce using rule 77 - '|->' reduce using rule 77 - '}' reduce using rule 77 - '→' reduce using rule 77 - L_VarIdent reduce using rule 77 - L_HoleIdent reduce using rule 77 - %eof reduce using rule 77 + ')' shift, and enter state 266 State 236 - ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 55) - - ')' shift, and enter state 263 + Term6 -> Term6 '[' ListRestriction ']' . (rule 113) + + '(' reduce using rule 113 + ')' reduce using rule 113 + '*' reduce using rule 113 + '*_1' reduce using rule 113 + ',' reduce using rule 113 + '->' reduce using rule 113 + '/\\' reduce using rule 113 + '0_2' reduce using rule 113 + '1' reduce using rule 113 + '1_2' reduce using rule 113 + '2' reduce using rule 113 + ':' reduce using rule 113 + ':=' reduce using rule 113 + ';' reduce using rule 113 + '<' reduce using rule 113 + '<=' reduce using rule 113 + '=' reduce using rule 113 + '===' reduce using rule 113 + '=_{' reduce using rule 113 + '>' reduce using rule 113 + 'BOT' reduce using rule 113 + 'CUBE' reduce using rule 113 + 'TOP' reduce using rule 113 + 'TOPE' reduce using rule 113 + 'U' reduce using rule 113 + '[' reduce using rule 113 + '\\/' reduce using rule 113 + ']' reduce using rule 113 + 'as' reduce using rule 113 + 'idJ' reduce using rule 113 + 'recBOT' reduce using rule 113 + 'recOR' reduce using rule 113 + 'refl' reduce using rule 113 + 'refl_{' reduce using rule 113 + '|' reduce using rule 113 + '|->' reduce using rule 113 + '}' reduce using rule 113 + '→' reduce using rule 113 + L_VarIdent reduce using rule 113 + L_HoleIdent reduce using rule 113 + %eof reduce using rule 113 State 237 - ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 56) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 262 + Term1 -> Term2 '=_{' Term '}' . Term2 (rule 106) + + '(' shift, and enter state 66 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 265 + Term6 goto state 70 State 238 - ParamDecl -> '{' Pattern ':' Term '}' . (rule 53) + Term7 -> '(' Term ',' Term . ')' (rule 87) - '->' reduce using rule 53 - '→' reduce using rule 53 - %eof reduce using rule 53 + ')' shift, and enter state 264 State 239 - Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 98) - - ')' shift, and enter state 261 - + Term1 -> '∑' '(' Pattern ':' . Term ')' ',' Term1 (rule 112) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 263 State 240 - Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 99) - - ')' shift, and enter state 260 - + Term1 -> 'Σ' '(' Pattern ':' . Term ')' ',' Term1 (rule 111) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 262 State 241 - Term7 -> '(' Term ',' Term ')' . (rule 74) + ParamDecl -> '{' Pattern ':' Term . '}' (rule 66) + ParamDecl -> '{' Pattern ':' Term . '|' Term '}' (rule 69) - '(' reduce using rule 74 - ')' reduce using rule 74 - '*' reduce using rule 74 - '*_1' reduce using rule 74 - ',' reduce using rule 74 - '->' reduce using rule 74 - '/\\' reduce using rule 74 - '0_2' reduce using rule 74 - '1' reduce using rule 74 - '1_2' reduce using rule 74 - '2' reduce using rule 74 - ':' reduce using rule 74 - ':=' reduce using rule 74 - ';' reduce using rule 74 - '<' reduce using rule 74 - '<=' reduce using rule 74 - '=' reduce using rule 74 - '===' reduce using rule 74 - '=_{' reduce using rule 74 - '>' reduce using rule 74 - 'BOT' reduce using rule 74 - 'CUBE' reduce using rule 74 - 'TOP' reduce using rule 74 - 'TOPE' reduce using rule 74 - 'U' reduce using rule 74 - '[' reduce using rule 74 - '\\/' reduce using rule 74 - ']' reduce using rule 74 - 'as' reduce using rule 74 - 'idJ' reduce using rule 74 - 'recBOT' reduce using rule 74 - 'recOR' reduce using rule 74 - 'refl' reduce using rule 74 - 'refl_{' reduce using rule 74 - '|' reduce using rule 74 - '|->' reduce using rule 74 - '}' reduce using rule 74 - '→' reduce using rule 74 - L_VarIdent reduce using rule 74 - L_HoleIdent reduce using rule 74 - %eof reduce using rule 74 + '|' shift, and enter state 260 + '}' shift, and enter state 261 State 242 - Term1 -> Term2 '=_{' Term '}' Term2 . (rule 93) - - ')' reduce using rule 93 - ',' reduce using rule 93 - ':' reduce using rule 93 - ':=' reduce using rule 93 - ';' reduce using rule 93 - '>' reduce using rule 93 - ']' reduce using rule 93 - '|' reduce using rule 93 - '|->' reduce using rule 93 - '}' reduce using rule 93 - %eof reduce using rule 93 - + ParamDecl -> '{' '(' Pattern ':' . Term ')' '|' Term '}' (rule 68) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 259 State 243 - Param -> '(' ListPattern ':' Term ')' . (rule 47) + Term7 -> 'refl_{' Term ':' Term . '}' (rule 90) - '(' reduce using rule 47 - '->' reduce using rule 47 - ':' reduce using rule 47 - '_' reduce using rule 47 - '{' reduce using rule 47 - L_VarIdent reduce using rule 47 - %eof reduce using rule 47 + '}' shift, and enter state 258 State 244 - Pattern -> '(' Pattern ',' Pattern ')' . (rule 43) + Term7 -> 'recOR' '(' Term ',' . Term ',' Term ',' Term ')' (rule 85) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 257 - '(' reduce using rule 43 - ')' reduce using rule 43 - ',' reduce using rule 43 - '->' reduce using rule 43 - ':' reduce using rule 43 - '_' reduce using rule 43 - '{' reduce using rule 43 - L_VarIdent reduce using rule 43 - %eof reduce using rule 43 +State 245 + Term7 -> 'recOR' '(' ListRestriction ')' . (rule 84) -State 245 + '(' reduce using rule 84 + ')' reduce using rule 84 + '*' reduce using rule 84 + '*_1' reduce using rule 84 + ',' reduce using rule 84 + '->' reduce using rule 84 + '/\\' reduce using rule 84 + '0_2' reduce using rule 84 + '1' reduce using rule 84 + '1_2' reduce using rule 84 + '2' reduce using rule 84 + ':' reduce using rule 84 + ':=' reduce using rule 84 + ';' reduce using rule 84 + '<' reduce using rule 84 + '<=' reduce using rule 84 + '=' reduce using rule 84 + '===' reduce using rule 84 + '=_{' reduce using rule 84 + '>' reduce using rule 84 + 'BOT' reduce using rule 84 + 'CUBE' reduce using rule 84 + 'TOP' reduce using rule 84 + 'TOPE' reduce using rule 84 + 'U' reduce using rule 84 + '[' reduce using rule 84 + '\\/' reduce using rule 84 + ']' reduce using rule 84 + 'as' reduce using rule 84 + 'idJ' reduce using rule 84 + 'recBOT' reduce using rule 84 + 'recOR' reduce using rule 84 + 'refl' reduce using rule 84 + 'refl_{' reduce using rule 84 + '|' reduce using rule 84 + '|->' reduce using rule 84 + '}' reduce using rule 84 + '→' reduce using rule 84 + L_VarIdent reduce using rule 84 + L_HoleIdent reduce using rule 84 + %eof reduce using rule 84 - Param -> '{' Pattern ':' Term '|' . Term '}' (rule 48) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 259 State 246 - Command -> '#check' Term ':' Term ';' . (rule 29) - - '#check' reduce using rule 29 - '#compute' reduce using rule 29 - '#compute-nf' reduce using rule 29 - '#compute-whnf'reduce using rule 29 - '#def' reduce using rule 29 - '#define' reduce using rule 29 - '#postulate' reduce using rule 29 - '#set-option' reduce using rule 29 - '#unset-option'reduce using rule 29 - %eof reduce using rule 29 - + Term7 -> 'idJ' '(' Term ',' . Term ',' Term ',' Term ',' Term ',' Term ')' (rule 91) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 256 State 247 - Command -> '#def' VarIdent ListParam ':' Term . ':=' Term ';' (rule 37) - - ':=' shift, and enter state 258 + Term1 -> '\\' ListParam '->' Term1 . (rule 108) + + ')' reduce using rule 108 + ',' reduce using rule 108 + ':' reduce using rule 108 + ':=' reduce using rule 108 + ';' reduce using rule 108 + '>' reduce using rule 108 + ']' reduce using rule 108 + '|' reduce using rule 108 + '|->' reduce using rule 108 + '}' reduce using rule 108 + %eof reduce using rule 108 State 248 - Command -> '#def' VarIdent ':' Term ':=' . Term ';' (rule 38) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 257 + Term1 -> 'Sigma' '(' Pattern ':' . Term ')' ',' Term1 (rule 105) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 255 State 249 - Command -> '#define' VarIdent ListParam ':' Term . ':=' Term ';' (rule 35) + Term7 -> '<' ParamDecl '->' Term . '>' (rule 86) - ':=' shift, and enter state 256 + '>' shift, and enter state 254 State 250 - Command -> '#define' VarIdent ':' Term ':=' . Term ';' (rule 36) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 255 + ParamDecl -> '(' VarIdent ':' Term . ')' (rule 67) + + ')' shift, and enter state 253 + State 251 - Command -> '#postulate' VarIdent ListParam ':' Term . ';' (rule 33) + ParamDecl -> '(' '_' ':' Term . ')' (rule 65) - ';' shift, and enter state 254 + ')' shift, and enter state 252 State 252 - Command -> '#postulate' VarIdent ':' Term ';' . (rule 34) - - '#check' reduce using rule 34 - '#compute' reduce using rule 34 - '#compute-nf' reduce using rule 34 - '#compute-whnf'reduce using rule 34 - '#def' reduce using rule 34 - '#define' reduce using rule 34 - '#postulate' reduce using rule 34 - '#set-option' reduce using rule 34 - '#unset-option'reduce using rule 34 - %eof reduce using rule 34 + ParamDecl -> '(' '_' ':' Term ')' . (rule 65) + + '->' reduce using rule 65 + '→' reduce using rule 65 + %eof reduce using rule 65 State 253 - Command -> '#set-option' String '=' String ';' . (rule 27) - - '#check' reduce using rule 27 - '#compute' reduce using rule 27 - '#compute-nf' reduce using rule 27 - '#compute-whnf'reduce using rule 27 - '#def' reduce using rule 27 - '#define' reduce using rule 27 - '#postulate' reduce using rule 27 - '#set-option' reduce using rule 27 - '#unset-option'reduce using rule 27 - %eof reduce using rule 27 + ParamDecl -> '(' VarIdent ':' Term ')' . (rule 67) + + '->' reduce using rule 67 + '→' reduce using rule 67 + %eof reduce using rule 67 State 254 - Command -> '#postulate' VarIdent ListParam ':' Term ';' . (rule 33) - - '#check' reduce using rule 33 - '#compute' reduce using rule 33 - '#compute-nf' reduce using rule 33 - '#compute-whnf'reduce using rule 33 - '#def' reduce using rule 33 - '#define' reduce using rule 33 - '#postulate' reduce using rule 33 - '#set-option' reduce using rule 33 - '#unset-option'reduce using rule 33 - %eof reduce using rule 33 + Term7 -> '<' ParamDecl '->' Term '>' . (rule 86) + + '(' reduce using rule 86 + ')' reduce using rule 86 + '*' reduce using rule 86 + '*_1' reduce using rule 86 + ',' reduce using rule 86 + '->' reduce using rule 86 + '/\\' reduce using rule 86 + '0_2' reduce using rule 86 + '1' reduce using rule 86 + '1_2' reduce using rule 86 + '2' reduce using rule 86 + ':' reduce using rule 86 + ':=' reduce using rule 86 + ';' reduce using rule 86 + '<' reduce using rule 86 + '<=' reduce using rule 86 + '=' reduce using rule 86 + '===' reduce using rule 86 + '=_{' reduce using rule 86 + '>' reduce using rule 86 + 'BOT' reduce using rule 86 + 'CUBE' reduce using rule 86 + 'TOP' reduce using rule 86 + 'TOPE' reduce using rule 86 + 'U' reduce using rule 86 + '[' reduce using rule 86 + '\\/' reduce using rule 86 + ']' reduce using rule 86 + 'as' reduce using rule 86 + 'idJ' reduce using rule 86 + 'recBOT' reduce using rule 86 + 'recOR' reduce using rule 86 + 'refl' reduce using rule 86 + 'refl_{' reduce using rule 86 + '|' reduce using rule 86 + '|->' reduce using rule 86 + '}' reduce using rule 86 + '→' reduce using rule 86 + L_VarIdent reduce using rule 86 + L_HoleIdent reduce using rule 86 + %eof reduce using rule 86 State 255 - Command -> '#define' VarIdent ':' Term ':=' Term . ';' (rule 36) + Term1 -> 'Sigma' '(' Pattern ':' Term . ')' ',' Term1 (rule 105) - ';' shift, and enter state 278 + ')' shift, and enter state 289 State 256 - Command -> '#define' VarIdent ListParam ':' Term ':=' . Term ';' (rule 35) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 277 + Term7 -> 'idJ' '(' Term ',' Term . ',' Term ',' Term ',' Term ',' Term ')' (rule 91) + + ',' shift, and enter state 288 + State 257 - Command -> '#def' VarIdent ':' Term ':=' Term . ';' (rule 38) + Term7 -> 'recOR' '(' Term ',' Term . ',' Term ',' Term ')' (rule 85) - ';' shift, and enter state 276 + ',' shift, and enter state 287 State 258 - Command -> '#def' VarIdent ListParam ':' Term ':=' . Term ';' (rule 37) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 275 + Term7 -> 'refl_{' Term ':' Term '}' . (rule 90) + + '(' reduce using rule 90 + ')' reduce using rule 90 + '*' reduce using rule 90 + '*_1' reduce using rule 90 + ',' reduce using rule 90 + '->' reduce using rule 90 + '/\\' reduce using rule 90 + '0_2' reduce using rule 90 + '1' reduce using rule 90 + '1_2' reduce using rule 90 + '2' reduce using rule 90 + ':' reduce using rule 90 + ':=' reduce using rule 90 + ';' reduce using rule 90 + '<' reduce using rule 90 + '<=' reduce using rule 90 + '=' reduce using rule 90 + '===' reduce using rule 90 + '=_{' reduce using rule 90 + '>' reduce using rule 90 + 'BOT' reduce using rule 90 + 'CUBE' reduce using rule 90 + 'TOP' reduce using rule 90 + 'TOPE' reduce using rule 90 + 'U' reduce using rule 90 + '[' reduce using rule 90 + '\\/' reduce using rule 90 + ']' reduce using rule 90 + 'as' reduce using rule 90 + 'idJ' reduce using rule 90 + 'recBOT' reduce using rule 90 + 'recOR' reduce using rule 90 + 'refl' reduce using rule 90 + 'refl_{' reduce using rule 90 + '|' reduce using rule 90 + '|->' reduce using rule 90 + '}' reduce using rule 90 + '→' reduce using rule 90 + L_VarIdent reduce using rule 90 + L_HoleIdent reduce using rule 90 + %eof reduce using rule 90 + State 259 - Param -> '{' Pattern ':' Term '|' Term . '}' (rule 48) + ParamDecl -> '{' '(' Pattern ':' Term . ')' '|' Term '}' (rule 68) - '}' shift, and enter state 274 + ')' shift, and enter state 286 State 260 - Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 99) - - ',' shift, and enter state 273 - + ParamDecl -> '{' Pattern ':' Term '|' . Term '}' (rule 69) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 285 State 261 - Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 98) + ParamDecl -> '{' Pattern ':' Term '}' . (rule 66) - ',' shift, and enter state 272 + '->' reduce using rule 66 + '→' reduce using rule 66 + %eof reduce using rule 66 State 262 - ParamDecl -> '{' Pattern ':' Term '|' Term . '}' (rule 56) + Term1 -> 'Σ' '(' Pattern ':' Term . ')' ',' Term1 (rule 111) - '}' shift, and enter state 271 + ')' shift, and enter state 284 State 263 - ParamDecl -> '{' '(' Pattern ':' Term ')' . '|' Term '}' (rule 55) + Term1 -> '∑' '(' Pattern ':' Term . ')' ',' Term1 (rule 112) - '|' shift, and enter state 270 + ')' shift, and enter state 283 State 264 - Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 72) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 269 + Term7 -> '(' Term ',' Term ')' . (rule 87) + + '(' reduce using rule 87 + ')' reduce using rule 87 + '*' reduce using rule 87 + '*_1' reduce using rule 87 + ',' reduce using rule 87 + '->' reduce using rule 87 + '/\\' reduce using rule 87 + '0_2' reduce using rule 87 + '1' reduce using rule 87 + '1_2' reduce using rule 87 + '2' reduce using rule 87 + ':' reduce using rule 87 + ':=' reduce using rule 87 + ';' reduce using rule 87 + '<' reduce using rule 87 + '<=' reduce using rule 87 + '=' reduce using rule 87 + '===' reduce using rule 87 + '=_{' reduce using rule 87 + '>' reduce using rule 87 + 'BOT' reduce using rule 87 + 'CUBE' reduce using rule 87 + 'TOP' reduce using rule 87 + 'TOPE' reduce using rule 87 + 'U' reduce using rule 87 + '[' reduce using rule 87 + '\\/' reduce using rule 87 + ']' reduce using rule 87 + 'as' reduce using rule 87 + 'idJ' reduce using rule 87 + 'recBOT' reduce using rule 87 + 'recOR' reduce using rule 87 + 'refl' reduce using rule 87 + 'refl_{' reduce using rule 87 + '|' reduce using rule 87 + '|->' reduce using rule 87 + '}' reduce using rule 87 + '→' reduce using rule 87 + L_VarIdent reduce using rule 87 + L_HoleIdent reduce using rule 87 + %eof reduce using rule 87 + State 265 - Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 78) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 268 + Term1 -> Term2 '=_{' Term '}' Term2 . (rule 106) + + ')' reduce using rule 106 + ',' reduce using rule 106 + ':' reduce using rule 106 + ':=' reduce using rule 106 + ';' reduce using rule 106 + '>' reduce using rule 106 + ']' reduce using rule 106 + '|' reduce using rule 106 + '|->' reduce using rule 106 + '}' reduce using rule 106 + %eof reduce using rule 106 + State 266 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 92) + Param -> '(' ListPattern ':' Term ')' . (rule 60) - ',' shift, and enter state 267 + '(' reduce using rule 60 + '->' reduce using rule 60 + ':' reduce using rule 60 + '_' reduce using rule 60 + '{' reduce using rule 60 + L_VarIdent reduce using rule 60 + %eof reduce using rule 60 State 267 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 92) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 286 - Term6 goto state 32 + Pattern -> '(' Pattern ',' Pattern ')' . (rule 56) -State 268 + '(' reduce using rule 56 + ')' reduce using rule 56 + ',' reduce using rule 56 + '->' reduce using rule 56 + ':' reduce using rule 56 + '_' reduce using rule 56 + '{' reduce using rule 56 + L_VarIdent reduce using rule 56 + %eof reduce using rule 56 - Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 78) - ',' shift, and enter state 285 +State 268 + Param -> '{' Pattern ':' Term '|' . Term '}' (rule 61) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 282 State 269 - Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 72) + Command -> '#def' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 47) - ',' shift, and enter state 284 + ':=' shift, and enter state 281 State 270 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' . Term '}' (rule 55) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 283 + Command -> '#def' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 46) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 280 State 271 - ParamDecl -> '{' Pattern ':' Term '|' Term '}' . (rule 56) + Command -> '#define' VarIdent DeclUsedVars ':' Term . ':=' Term (rule 45) - '->' reduce using rule 56 - '→' reduce using rule 56 - %eof reduce using rule 56 + ':=' shift, and enter state 279 State 272 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 98) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 282 - Term6 goto state 32 + Command -> '#define' VarIdent DeclUsedVars ListParam ':' . Term ':=' Term (rule 44) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 278 State 273 - Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 99) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 64 - Term1 goto state 281 - Term6 goto state 32 + Command -> '#postulate' VarIdent DeclUsedVars ':' Term . (rule 39) -State 274 + ';' reduce using rule 39 + %eof reduce using rule 39 - Param -> '{' Pattern ':' Term '|' Term '}' . (rule 48) - '(' reduce using rule 48 - '->' reduce using rule 48 - ':' reduce using rule 48 - '_' reduce using rule 48 - '{' reduce using rule 48 - L_VarIdent reduce using rule 48 - %eof reduce using rule 48 +State 274 + Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' . Term (rule 38) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 277 State 275 - Command -> '#def' VarIdent ListParam ':' Term ':=' Term . ';' (rule 37) + Command -> '#section' SectionName ';' ListCommand '#end' . SectionName (rule 43) - ';' shift, and enter state 280 + ';' reduce using rule 52 + L_VarIdent shift, and enter state 62 + %eof reduce using rule 52 + VarIdent goto state 93 + SectionName goto state 276 State 276 - Command -> '#def' VarIdent ':' Term ':=' Term ';' . (rule 38) - - '#check' reduce using rule 38 - '#compute' reduce using rule 38 - '#compute-nf' reduce using rule 38 - '#compute-whnf'reduce using rule 38 - '#def' reduce using rule 38 - '#define' reduce using rule 38 - '#postulate' reduce using rule 38 - '#set-option' reduce using rule 38 - '#unset-option'reduce using rule 38 - %eof reduce using rule 38 + Command -> '#section' SectionName ';' ListCommand '#end' SectionName . (rule 43) + + ';' reduce using rule 43 + %eof reduce using rule 43 State 277 - Command -> '#define' VarIdent ListParam ':' Term ':=' Term . ';' (rule 35) + Command -> '#postulate' VarIdent DeclUsedVars ListParam ':' Term . (rule 38) - ';' shift, and enter state 279 + ';' reduce using rule 38 + %eof reduce using rule 38 State 278 - Command -> '#define' VarIdent ':' Term ':=' Term ';' . (rule 36) - - '#check' reduce using rule 36 - '#compute' reduce using rule 36 - '#compute-nf' reduce using rule 36 - '#compute-whnf'reduce using rule 36 - '#def' reduce using rule 36 - '#define' reduce using rule 36 - '#postulate' reduce using rule 36 - '#set-option' reduce using rule 36 - '#unset-option'reduce using rule 36 - %eof reduce using rule 36 + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 44) + ':=' shift, and enter state 301 -State 279 - Command -> '#define' VarIdent ListParam ':' Term ':=' Term ';' . (rule 35) - - '#check' reduce using rule 35 - '#compute' reduce using rule 35 - '#compute-nf' reduce using rule 35 - '#compute-whnf'reduce using rule 35 - '#def' reduce using rule 35 - '#define' reduce using rule 35 - '#postulate' reduce using rule 35 - '#set-option' reduce using rule 35 - '#unset-option'reduce using rule 35 - %eof reduce using rule 35 +State 279 + Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 45) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 300 State 280 - Command -> '#def' VarIdent ListParam ':' Term ':=' Term ';' . (rule 37) - - '#check' reduce using rule 37 - '#compute' reduce using rule 37 - '#compute-nf' reduce using rule 37 - '#compute-whnf'reduce using rule 37 - '#def' reduce using rule 37 - '#define' reduce using rule 37 - '#postulate' reduce using rule 37 - '#set-option' reduce using rule 37 - '#unset-option'reduce using rule 37 - %eof reduce using rule 37 - + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term . ':=' Term (rule 46) -State 281 + ':=' shift, and enter state 299 - Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 99) - ')' reduce using rule 99 - ',' reduce using rule 99 - ':' reduce using rule 99 - ':=' reduce using rule 99 - ';' reduce using rule 99 - '>' reduce using rule 99 - ']' reduce using rule 99 - '|' reduce using rule 99 - '|->' reduce using rule 99 - '}' reduce using rule 99 - %eof reduce using rule 99 +State 281 + Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' . Term (rule 47) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 298 State 282 - Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 98) + Param -> '{' Pattern ':' Term '|' Term . '}' (rule 61) - ')' reduce using rule 98 - ',' reduce using rule 98 - ':' reduce using rule 98 - ':=' reduce using rule 98 - ';' reduce using rule 98 - '>' reduce using rule 98 - ']' reduce using rule 98 - '|' reduce using rule 98 - '|->' reduce using rule 98 - '}' reduce using rule 98 - %eof reduce using rule 98 + '}' shift, and enter state 297 State 283 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term . '}' (rule 55) + Term1 -> '∑' '(' Pattern ':' Term ')' . ',' Term1 (rule 112) - '}' shift, and enter state 289 + ',' shift, and enter state 296 State 284 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 72) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 288 + Term1 -> 'Σ' '(' Pattern ':' Term ')' . ',' Term1 (rule 111) -State 285 + ',' shift, and enter state 295 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 78) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 287 -State 286 +State 285 - Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 92) + ParamDecl -> '{' Pattern ':' Term '|' Term . '}' (rule 69) - ')' reduce using rule 92 - ',' reduce using rule 92 - ':' reduce using rule 92 - ':=' reduce using rule 92 - ';' reduce using rule 92 - '>' reduce using rule 92 - ']' reduce using rule 92 - '|' reduce using rule 92 - '|->' reduce using rule 92 - '}' reduce using rule 92 - %eof reduce using rule 92 + '}' shift, and enter state 294 -State 287 +State 286 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 78) + ParamDecl -> '{' '(' Pattern ':' Term ')' . '|' Term '}' (rule 68) - ',' shift, and enter state 291 + '|' shift, and enter state 293 -State 288 +State 287 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 72) + Term7 -> 'recOR' '(' Term ',' Term ',' . Term ',' Term ')' (rule 85) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 292 - ')' shift, and enter state 290 +State 288 + Term7 -> 'idJ' '(' Term ',' Term ',' . Term ',' Term ',' Term ',' Term ')' (rule 91) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 291 State 289 - ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' . (rule 55) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' . ',' Term1 (rule 105) - '->' reduce using rule 55 - '→' reduce using rule 55 - %eof reduce using rule 55 + ',' shift, and enter state 290 State 290 - Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 72) + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' . Term1 (rule 105) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 309 + Term6 goto state 35 - '(' reduce using rule 72 - ')' reduce using rule 72 - '*' reduce using rule 72 - '*_1' reduce using rule 72 - ',' reduce using rule 72 - '->' reduce using rule 72 - '/\\' reduce using rule 72 - '0_2' reduce using rule 72 - '1' reduce using rule 72 - '1_2' reduce using rule 72 - '2' reduce using rule 72 - ':' reduce using rule 72 - ':=' reduce using rule 72 - ';' reduce using rule 72 - '<' reduce using rule 72 - '<=' reduce using rule 72 - '=' reduce using rule 72 - '===' reduce using rule 72 - '=_{' reduce using rule 72 - '>' reduce using rule 72 - 'BOT' reduce using rule 72 - 'CUBE' reduce using rule 72 - 'TOP' reduce using rule 72 - 'TOPE' reduce using rule 72 - 'U' reduce using rule 72 - '[' reduce using rule 72 - '\\/' reduce using rule 72 - ']' reduce using rule 72 - 'as' reduce using rule 72 - 'idJ' reduce using rule 72 - 'recBOT' reduce using rule 72 - 'recOR' reduce using rule 72 - 'refl' reduce using rule 72 - 'refl_{' reduce using rule 72 - '|' reduce using rule 72 - '|->' reduce using rule 72 - '}' reduce using rule 72 - '→' reduce using rule 72 - L_VarIdent reduce using rule 72 - L_HoleIdent reduce using rule 72 - %eof reduce using rule 72 +State 291 + Term7 -> 'idJ' '(' Term ',' Term ',' Term . ',' Term ',' Term ',' Term ')' (rule 91) -State 291 + ',' shift, and enter state 308 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 78) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 292 State 292 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 78) + Term7 -> 'recOR' '(' Term ',' Term ',' Term . ',' Term ')' (rule 85) - ',' shift, and enter state 293 + ',' shift, and enter state 307 State 293 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 78) - - '(' shift, and enter state 35 - '*_1' shift, and enter state 36 - '0_2' shift, and enter state 37 - '1' shift, and enter state 38 - '1_2' shift, and enter state 39 - '2' shift, and enter state 40 - '<' shift, and enter state 41 - 'BOT' shift, and enter state 42 - 'CUBE' shift, and enter state 43 - 'Sigma' shift, and enter state 44 - 'TOP' shift, and enter state 45 - 'TOPE' shift, and enter state 46 - 'U' shift, and enter state 47 - '\\' shift, and enter state 48 - 'first' shift, and enter state 49 - 'idJ' shift, and enter state 50 - 'recBOT' shift, and enter state 51 - 'recOR' shift, and enter state 52 - 'refl' shift, and enter state 53 - 'refl_{' shift, and enter state 54 - 'second' shift, and enter state 55 - '{' shift, and enter state 56 - 'Σ' shift, and enter state 57 - '∑' shift, and enter state 58 - L_VarIdent shift, and enter state 59 - L_HoleIdent shift, and enter state 60 - - VarIdent goto state 23 - HoleIdent goto state 24 - ParamDecl goto state 25 - Term7 goto state 26 - Term5 goto state 27 - Term4 goto state 28 - Term3 goto state 29 - Term2 goto state 30 - Term1 goto state 31 - Term6 goto state 32 - Term goto state 294 + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' . Term '}' (rule 68) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 306 State 294 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 78) + ParamDecl -> '{' Pattern ':' Term '|' Term '}' . (rule 69) - ')' shift, and enter state 295 + '->' reduce using rule 69 + '→' reduce using rule 69 + %eof reduce using rule 69 State 295 - Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 78) + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' . Term1 (rule 111) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 305 + Term6 goto state 35 + +State 296 + + Term1 -> '∑' '(' Pattern ':' Term ')' ',' . Term1 (rule 112) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 67 + Term1 goto state 304 + Term6 goto state 35 + +State 297 + + Param -> '{' Pattern ':' Term '|' Term '}' . (rule 61) - '(' reduce using rule 78 - ')' reduce using rule 78 - '*' reduce using rule 78 - '*_1' reduce using rule 78 - ',' reduce using rule 78 - '->' reduce using rule 78 - '/\\' reduce using rule 78 - '0_2' reduce using rule 78 - '1' reduce using rule 78 - '1_2' reduce using rule 78 - '2' reduce using rule 78 - ':' reduce using rule 78 - ':=' reduce using rule 78 - ';' reduce using rule 78 - '<' reduce using rule 78 - '<=' reduce using rule 78 - '=' reduce using rule 78 - '===' reduce using rule 78 - '=_{' reduce using rule 78 - '>' reduce using rule 78 - 'BOT' reduce using rule 78 - 'CUBE' reduce using rule 78 - 'TOP' reduce using rule 78 - 'TOPE' reduce using rule 78 - 'U' reduce using rule 78 - '[' reduce using rule 78 - '\\/' reduce using rule 78 - ']' reduce using rule 78 - 'as' reduce using rule 78 - 'idJ' reduce using rule 78 - 'recBOT' reduce using rule 78 - 'recOR' reduce using rule 78 - 'refl' reduce using rule 78 - 'refl_{' reduce using rule 78 - '|' reduce using rule 78 - '|->' reduce using rule 78 - '}' reduce using rule 78 - '→' reduce using rule 78 - L_VarIdent reduce using rule 78 - L_HoleIdent reduce using rule 78 - %eof reduce using rule 78 + '(' reduce using rule 61 + '->' reduce using rule 61 + ':' reduce using rule 61 + '_' reduce using rule 61 + '{' reduce using rule 61 + L_VarIdent reduce using rule 61 + %eof reduce using rule 61 + + +State 298 + + Command -> '#def' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 47) + + ';' reduce using rule 47 + %eof reduce using rule 47 + + +State 299 + + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 46) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 303 + +State 300 + + Command -> '#define' VarIdent DeclUsedVars ':' Term ':=' Term . (rule 45) + + ';' reduce using rule 45 + %eof reduce using rule 45 + + +State 301 + + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' . Term (rule 44) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 302 + +State 302 + + Command -> '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 44) + + ';' reduce using rule 44 + %eof reduce using rule 44 + + +State 303 + + Command -> '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term . (rule 46) + + ';' reduce using rule 46 + %eof reduce using rule 46 + + +State 304 + + Term1 -> '∑' '(' Pattern ':' Term ')' ',' Term1 . (rule 112) + + ')' reduce using rule 112 + ',' reduce using rule 112 + ':' reduce using rule 112 + ':=' reduce using rule 112 + ';' reduce using rule 112 + '>' reduce using rule 112 + ']' reduce using rule 112 + '|' reduce using rule 112 + '|->' reduce using rule 112 + '}' reduce using rule 112 + %eof reduce using rule 112 + + +State 305 + + Term1 -> 'Σ' '(' Pattern ':' Term ')' ',' Term1 . (rule 111) + + ')' reduce using rule 111 + ',' reduce using rule 111 + ':' reduce using rule 111 + ':=' reduce using rule 111 + ';' reduce using rule 111 + '>' reduce using rule 111 + ']' reduce using rule 111 + '|' reduce using rule 111 + '|->' reduce using rule 111 + '}' reduce using rule 111 + %eof reduce using rule 111 + + +State 306 + + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term . '}' (rule 68) + + '}' shift, and enter state 312 + + +State 307 + + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' . Term ')' (rule 85) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 311 + +State 308 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' . Term ',' Term ',' Term ')' (rule 91) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 310 + +State 309 + + Term1 -> 'Sigma' '(' Pattern ':' Term ')' ',' Term1 . (rule 105) + + ')' reduce using rule 105 + ',' reduce using rule 105 + ':' reduce using rule 105 + ':=' reduce using rule 105 + ';' reduce using rule 105 + '>' reduce using rule 105 + ']' reduce using rule 105 + '|' reduce using rule 105 + '|->' reduce using rule 105 + '}' reduce using rule 105 + %eof reduce using rule 105 + + +State 310 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term . ',' Term ',' Term ')' (rule 91) + + ',' shift, and enter state 314 + + +State 311 + + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term . ')' (rule 85) + + ')' shift, and enter state 313 + + +State 312 + + ParamDecl -> '{' '(' Pattern ':' Term ')' '|' Term '}' . (rule 68) + + '->' reduce using rule 68 + '→' reduce using rule 68 + %eof reduce using rule 68 + + +State 313 + + Term7 -> 'recOR' '(' Term ',' Term ',' Term ',' Term ')' . (rule 85) + + '(' reduce using rule 85 + ')' reduce using rule 85 + '*' reduce using rule 85 + '*_1' reduce using rule 85 + ',' reduce using rule 85 + '->' reduce using rule 85 + '/\\' reduce using rule 85 + '0_2' reduce using rule 85 + '1' reduce using rule 85 + '1_2' reduce using rule 85 + '2' reduce using rule 85 + ':' reduce using rule 85 + ':=' reduce using rule 85 + ';' reduce using rule 85 + '<' reduce using rule 85 + '<=' reduce using rule 85 + '=' reduce using rule 85 + '===' reduce using rule 85 + '=_{' reduce using rule 85 + '>' reduce using rule 85 + 'BOT' reduce using rule 85 + 'CUBE' reduce using rule 85 + 'TOP' reduce using rule 85 + 'TOPE' reduce using rule 85 + 'U' reduce using rule 85 + '[' reduce using rule 85 + '\\/' reduce using rule 85 + ']' reduce using rule 85 + 'as' reduce using rule 85 + 'idJ' reduce using rule 85 + 'recBOT' reduce using rule 85 + 'recOR' reduce using rule 85 + 'refl' reduce using rule 85 + 'refl_{' reduce using rule 85 + '|' reduce using rule 85 + '|->' reduce using rule 85 + '}' reduce using rule 85 + '→' reduce using rule 85 + L_VarIdent reduce using rule 85 + L_HoleIdent reduce using rule 85 + %eof reduce using rule 85 + + +State 314 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' . Term ',' Term ')' (rule 91) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 315 + +State 315 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term . ',' Term ')' (rule 91) + + ',' shift, and enter state 316 + + +State 316 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' . Term ')' (rule 91) + + '(' shift, and enter state 38 + '*_1' shift, and enter state 39 + '0_2' shift, and enter state 40 + '1' shift, and enter state 41 + '1_2' shift, and enter state 42 + '2' shift, and enter state 43 + '<' shift, and enter state 44 + 'BOT' shift, and enter state 45 + 'CUBE' shift, and enter state 46 + 'Sigma' shift, and enter state 47 + 'TOP' shift, and enter state 48 + 'TOPE' shift, and enter state 49 + 'U' shift, and enter state 50 + '\\' shift, and enter state 51 + 'first' shift, and enter state 52 + 'idJ' shift, and enter state 53 + 'recBOT' shift, and enter state 54 + 'recOR' shift, and enter state 55 + 'refl' shift, and enter state 56 + 'refl_{' shift, and enter state 57 + 'second' shift, and enter state 58 + '{' shift, and enter state 59 + 'Σ' shift, and enter state 60 + '∑' shift, and enter state 61 + L_VarIdent shift, and enter state 62 + L_HoleIdent shift, and enter state 63 + + VarIdent goto state 26 + HoleIdent goto state 27 + ParamDecl goto state 28 + Term7 goto state 29 + Term5 goto state 30 + Term4 goto state 31 + Term3 goto state 32 + Term2 goto state 33 + Term1 goto state 34 + Term6 goto state 35 + Term goto state 317 + +State 317 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term . ')' (rule 91) + + ')' shift, and enter state 318 + + +State 318 + + Term7 -> 'idJ' '(' Term ',' Term ',' Term ',' Term ',' Term ',' Term ')' . (rule 91) + + '(' reduce using rule 91 + ')' reduce using rule 91 + '*' reduce using rule 91 + '*_1' reduce using rule 91 + ',' reduce using rule 91 + '->' reduce using rule 91 + '/\\' reduce using rule 91 + '0_2' reduce using rule 91 + '1' reduce using rule 91 + '1_2' reduce using rule 91 + '2' reduce using rule 91 + ':' reduce using rule 91 + ':=' reduce using rule 91 + ';' reduce using rule 91 + '<' reduce using rule 91 + '<=' reduce using rule 91 + '=' reduce using rule 91 + '===' reduce using rule 91 + '=_{' reduce using rule 91 + '>' reduce using rule 91 + 'BOT' reduce using rule 91 + 'CUBE' reduce using rule 91 + 'TOP' reduce using rule 91 + 'TOPE' reduce using rule 91 + 'U' reduce using rule 91 + '[' reduce using rule 91 + '\\/' reduce using rule 91 + ']' reduce using rule 91 + 'as' reduce using rule 91 + 'idJ' reduce using rule 91 + 'recBOT' reduce using rule 91 + 'recOR' reduce using rule 91 + 'refl' reduce using rule 91 + 'refl_{' reduce using rule 91 + '|' reduce using rule 91 + '|->' reduce using rule 91 + '}' reduce using rule 91 + '→' reduce using rule 91 + L_VarIdent reduce using rule 91 + L_HoleIdent reduce using rule 91 + %eof reduce using rule 91 ----------------------------------------------------------------------------- Grammar Totals ----------------------------------------------------------------------------- -Number of rules: 109 -Number of terminals: 60 -Number of non-terminals: 45 -Number of states: 296 +Number of rules: 122 +Number of terminals: 66 +Number of non-terminals: 51 +Number of states: 319 diff --git a/rzk/src/Language/Rzk/Syntax/Par.y b/rzk/src/Language/Rzk/Syntax/Par.y index f8b57bbec..fa0c4ad27 100644 --- a/rzk/src/Language/Rzk/Syntax/Par.y +++ b/rzk/src/Language/Rzk/Syntax/Par.y @@ -9,10 +9,13 @@ module Language.Rzk.Syntax.Par ( happyError , myLexer , pModule + , pListVarIdent , pLanguageDecl , pLanguage , pCommand , pListCommand + , pDeclUsedVars + , pSectionName , pPattern , pListPattern , pParam @@ -39,10 +42,13 @@ import Language.Rzk.Syntax.Lex } %name pModule_internal Module +%name pListVarIdent_internal ListVarIdent %name pLanguageDecl_internal LanguageDecl %name pLanguage_internal Language %name pCommand_internal Command %name pListCommand_internal ListCommand +%name pDeclUsedVars_internal DeclUsedVars +%name pSectionName_internal SectionName %name pPattern_internal Pattern %name pListPattern_internal ListPattern %name pParam_internal Param @@ -63,63 +69,69 @@ import Language.Rzk.Syntax.Lex %monad { Err } { (>>=) } { return } %tokentype {Token} %token - '#check' { PT _ (TS _ 1) } - '#compute' { PT _ (TS _ 2) } - '#compute-nf' { PT _ (TS _ 3) } - '#compute-whnf' { PT _ (TS _ 4) } - '#def' { PT _ (TS _ 5) } - '#define' { PT _ (TS _ 6) } - '#lang' { PT _ (TS _ 7) } - '#postulate' { PT _ (TS _ 8) } - '#set-option' { PT _ (TS _ 9) } - '#unset-option' { PT _ (TS _ 10) } - '(' { PT _ (TS _ 11) } - ')' { PT _ (TS _ 12) } - '*' { PT _ (TS _ 13) } - '*_1' { PT _ (TS _ 14) } - ',' { PT _ (TS _ 15) } - '->' { PT _ (TS _ 16) } - '/\\' { PT _ (TS _ 17) } - '0_2' { PT _ (TS _ 18) } - '1' { PT _ (TS _ 19) } - '1_2' { PT _ (TS _ 20) } - '2' { PT _ (TS _ 21) } - ':' { PT _ (TS _ 22) } - ':=' { PT _ (TS _ 23) } - ';' { PT _ (TS _ 24) } - '<' { PT _ (TS _ 25) } - '<=' { PT _ (TS _ 26) } - '=' { PT _ (TS _ 27) } - '===' { PT _ (TS _ 28) } - '=_{' { PT _ (TS _ 29) } - '>' { PT _ (TS _ 30) } - 'BOT' { PT _ (TS _ 31) } - 'CUBE' { PT _ (TS _ 32) } - 'Sigma' { PT _ (TS _ 33) } - 'TOP' { PT _ (TS _ 34) } - 'TOPE' { PT _ (TS _ 35) } - 'U' { PT _ (TS _ 36) } - '[' { PT _ (TS _ 37) } - '\\' { PT _ (TS _ 38) } - '\\/' { PT _ (TS _ 39) } - ']' { PT _ (TS _ 40) } - '_' { PT _ (TS _ 41) } - 'as' { PT _ (TS _ 42) } - 'first' { PT _ (TS _ 43) } - 'idJ' { PT _ (TS _ 44) } - 'recBOT' { PT _ (TS _ 45) } - 'recOR' { PT _ (TS _ 46) } - 'refl' { PT _ (TS _ 47) } - 'refl_{' { PT _ (TS _ 48) } - 'rzk-1' { PT _ (TS _ 49) } - 'second' { PT _ (TS _ 50) } - '{' { PT _ (TS _ 51) } - '|' { PT _ (TS _ 52) } - '|->' { PT _ (TS _ 53) } - '}' { PT _ (TS _ 54) } - 'Σ' { PT _ (TS _ 55) } - '→' { PT _ (TS _ 56) } - '∑' { PT _ (TS _ 57) } + '#assume' { PT _ (TS _ 1) } + '#check' { PT _ (TS _ 2) } + '#compute' { PT _ (TS _ 3) } + '#compute-nf' { PT _ (TS _ 4) } + '#compute-whnf' { PT _ (TS _ 5) } + '#def' { PT _ (TS _ 6) } + '#define' { PT _ (TS _ 7) } + '#end' { PT _ (TS _ 8) } + '#lang' { PT _ (TS _ 9) } + '#postulate' { PT _ (TS _ 10) } + '#section' { PT _ (TS _ 11) } + '#set-option' { PT _ (TS _ 12) } + '#unset-option' { PT _ (TS _ 13) } + '#variable' { PT _ (TS _ 14) } + '#variables' { PT _ (TS _ 15) } + '(' { PT _ (TS _ 16) } + ')' { PT _ (TS _ 17) } + '*' { PT _ (TS _ 18) } + '*_1' { PT _ (TS _ 19) } + ',' { PT _ (TS _ 20) } + '->' { PT _ (TS _ 21) } + '/\\' { PT _ (TS _ 22) } + '0_2' { PT _ (TS _ 23) } + '1' { PT _ (TS _ 24) } + '1_2' { PT _ (TS _ 25) } + '2' { PT _ (TS _ 26) } + ':' { PT _ (TS _ 27) } + ':=' { PT _ (TS _ 28) } + ';' { PT _ (TS _ 29) } + '<' { PT _ (TS _ 30) } + '<=' { PT _ (TS _ 31) } + '=' { PT _ (TS _ 32) } + '===' { PT _ (TS _ 33) } + '=_{' { PT _ (TS _ 34) } + '>' { PT _ (TS _ 35) } + 'BOT' { PT _ (TS _ 36) } + 'CUBE' { PT _ (TS _ 37) } + 'Sigma' { PT _ (TS _ 38) } + 'TOP' { PT _ (TS _ 39) } + 'TOPE' { PT _ (TS _ 40) } + 'U' { PT _ (TS _ 41) } + '[' { PT _ (TS _ 42) } + '\\' { PT _ (TS _ 43) } + '\\/' { PT _ (TS _ 44) } + ']' { PT _ (TS _ 45) } + '_' { PT _ (TS _ 46) } + 'as' { PT _ (TS _ 47) } + 'first' { PT _ (TS _ 48) } + 'idJ' { PT _ (TS _ 49) } + 'recBOT' { PT _ (TS _ 50) } + 'recOR' { PT _ (TS _ 51) } + 'refl' { PT _ (TS _ 52) } + 'refl_{' { PT _ (TS _ 53) } + 'rzk-1' { PT _ (TS _ 54) } + 'second' { PT _ (TS _ 55) } + 'uses' { PT _ (TS _ 56) } + '{' { PT _ (TS _ 57) } + '|' { PT _ (TS _ 58) } + '|->' { PT _ (TS _ 59) } + '}' { PT _ (TS _ 60) } + 'Σ' { PT _ (TS _ 61) } + '→' { PT _ (TS _ 62) } + '∑' { PT _ (TS _ 63) } L_quoted { PT _ (TL _) } L_VarIdent { PT _ (T_VarIdent _) } L_HoleIdent { PT _ (T_HoleIdent _) } @@ -139,6 +151,11 @@ Module :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Modu Module : LanguageDecl ListCommand { (fst $1, Language.Rzk.Syntax.Abs.Module (fst $1) (snd $1) (snd $2)) } +ListVarIdent :: { (Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.VarIdent]) } +ListVarIdent + : VarIdent { (fst $1, (:[]) (snd $1)) } + | VarIdent ListVarIdent { (fst $1, (:) (snd $1) (snd $2)) } + LanguageDecl :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.LanguageDecl) } LanguageDecl : '#lang' Language ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.LanguageDecl (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } @@ -149,23 +166,37 @@ Language Command :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Command) } Command - : '#set-option' String '=' String ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandSetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } - | '#unset-option' String ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandUnsetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } - | '#check' Term ':' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandCheck (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } - | '#compute' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } - | '#compute-whnf' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandComputeWHNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } - | '#compute-nf' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandComputeNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } - | '#postulate' VarIdent ListParam ':' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5)) } - | '#postulate' VarIdent ':' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } - | '#define' VarIdent ListParam ':' Term ':=' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5) (snd $7)) } - | '#define' VarIdent ':' Term ':=' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4) (snd $6)) } - | '#def' VarIdent ListParam ':' Term ':=' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5) (snd $7)) } - | '#def' VarIdent ':' Term ':=' Term ';' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4) (snd $6)) } + : '#set-option' String '=' String { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandSetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } + | '#unset-option' String { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandUnsetOption (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } + | '#check' Term ':' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandCheck (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } + | '#compute' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandCompute (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } + | '#compute-whnf' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandComputeWHNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } + | '#compute-nf' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandComputeNF (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2)) } + | '#postulate' VarIdent DeclUsedVars ListParam ':' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandPostulate (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4) (snd $6)) } + | '#postulate' VarIdent DeclUsedVars ':' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandPostulateNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5)) } + | '#assume' ListVarIdent ':' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandAssume (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } + | '#variable' VarIdent ':' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandVariable (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } + | '#variables' ListVarIdent ':' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandVariables (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4)) } + | '#section' SectionName ';' ListCommand '#end' SectionName { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandSection (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $4) (snd $6)) } + | '#define' VarIdent DeclUsedVars ListParam ':' Term ':=' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.CommandDefine (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4) (snd $6) (snd $8)) } + | '#define' VarIdent DeclUsedVars ':' Term ':=' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandDefineNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5) (snd $7)) } + | '#def' VarIdent DeclUsedVars ListParam ':' Term ':=' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandDef (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $4) (snd $6) (snd $8)) } + | '#def' VarIdent DeclUsedVars ':' Term ':=' Term { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.commandDefNoParams (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $2) (snd $3) (snd $5) (snd $7)) } ListCommand :: { (Language.Rzk.Syntax.Abs.BNFC'Position, [Language.Rzk.Syntax.Abs.Command]) } ListCommand : {- empty -} { (Language.Rzk.Syntax.Abs.BNFC'NoPosition, []) } - | Command ListCommand { (fst $1, (:) (snd $1) (snd $2)) } + | Command ';' ListCommand { (fst $1, (:) (snd $1) (snd $3)) } + +DeclUsedVars :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.DeclUsedVars) } +DeclUsedVars + : 'uses' '(' ListVarIdent ')' { (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1), Language.Rzk.Syntax.Abs.DeclUsedVars (uncurry Language.Rzk.Syntax.Abs.BNFC'Position (tokenLineCol $1)) (snd $3)) } + | {- empty -} { (Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.noDeclUsedVars Language.Rzk.Syntax.Abs.BNFC'NoPosition) } + +SectionName :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.SectionName) } +SectionName + : {- empty -} { (Language.Rzk.Syntax.Abs.BNFC'NoPosition, Language.Rzk.Syntax.Abs.NoSectionName Language.Rzk.Syntax.Abs.BNFC'NoPosition) } + | VarIdent { (fst $1, Language.Rzk.Syntax.Abs.SomeSectionName (fst $1) (snd $1)) } Pattern :: { (Language.Rzk.Syntax.Abs.BNFC'Position, Language.Rzk.Syntax.Abs.Pattern) } Pattern @@ -303,6 +334,9 @@ myLexer = tokens pModule :: [Token] -> Err Language.Rzk.Syntax.Abs.Module pModule = fmap snd . pModule_internal +pListVarIdent :: [Token] -> Err [Language.Rzk.Syntax.Abs.VarIdent] +pListVarIdent = fmap snd . pListVarIdent_internal + pLanguageDecl :: [Token] -> Err Language.Rzk.Syntax.Abs.LanguageDecl pLanguageDecl = fmap snd . pLanguageDecl_internal @@ -315,6 +349,12 @@ pCommand = fmap snd . pCommand_internal pListCommand :: [Token] -> Err [Language.Rzk.Syntax.Abs.Command] pListCommand = fmap snd . pListCommand_internal +pDeclUsedVars :: [Token] -> Err Language.Rzk.Syntax.Abs.DeclUsedVars +pDeclUsedVars = fmap snd . pDeclUsedVars_internal + +pSectionName :: [Token] -> Err Language.Rzk.Syntax.Abs.SectionName +pSectionName = fmap snd . pSectionName_internal + pPattern :: [Token] -> Err Language.Rzk.Syntax.Abs.Pattern pPattern = fmap snd . pPattern_internal diff --git a/rzk/src/Language/Rzk/Syntax/Print.hs b/rzk/src/Language/Rzk/Syntax/Print.hs index a25137e22..e432e56d3 100644 --- a/rzk/src/Language/Rzk/Syntax/Print.hs +++ b/rzk/src/Language/Rzk/Syntax/Print.hs @@ -1,8 +1,8 @@ -- File generated by the BNF Converter (bnfc 2.9.4.1). -{-# LANGUAGE CPP #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE CPP #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE LambdaCase #-} #if __GLASGOW_HASKELL__ <= 708 {-# LANGUAGE OverlappingInstances #-} #endif @@ -11,16 +11,13 @@ module Language.Rzk.Syntax.Print where -import Prelude - ( ($), (.) - , Bool(..), (==), (<) - , Int, Integer, Double, (+), (-), (*) - , String, (++) - , ShowS, showChar, showString - , all, elem, foldr, id, map, null, replicate, shows, span - ) -import Data.Char ( Char, isSpace ) +import Data.Char (Char, isSpace) import qualified Language.Rzk.Syntax.Abs +import Prelude (Bool (..), Double, Int, Integer, + ShowS, String, all, elem, foldr, id, + map, null, replicate, showChar, + showString, shows, span, ($), (*), + (+), (++), (-), (.), (<), (==)) -- | The top-level printing method. @@ -124,10 +121,10 @@ printString s = doc (showChar '"' . concatS (map (mkEsc '"') s) . showChar '"') mkEsc :: Char -> Char -> ShowS mkEsc q = \case s | s == q -> showChar '\\' . showChar s - '\\' -> showString "\\\\" - '\n' -> showString "\\n" - '\t' -> showString "\\t" - s -> showChar s + '\\' -> showString "\\\\" + '\n' -> showString "\\n" + '\t' -> showString "\\t" + s -> showChar s prPrec :: Int -> Int -> Doc -> Doc prPrec i j = if j < i then parenth else id @@ -146,6 +143,11 @@ instance Print (Language.Rzk.Syntax.Abs.Module' a) where prt i = \case Language.Rzk.Syntax.Abs.Module _ languagedecl commands -> prPrec i 0 (concatD [prt 0 languagedecl, prt 0 commands]) +instance Print [Language.Rzk.Syntax.Abs.VarIdent] where + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] + prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] + instance Print (Language.Rzk.Syntax.Abs.LanguageDecl' a) where prt i = \case Language.Rzk.Syntax.Abs.LanguageDecl _ language -> prPrec i 0 (concatD [doc (showString "#lang"), prt 0 language, doc (showString ";")]) @@ -156,18 +158,29 @@ instance Print (Language.Rzk.Syntax.Abs.Language' a) where instance Print (Language.Rzk.Syntax.Abs.Command' a) where prt i = \case - Language.Rzk.Syntax.Abs.CommandSetOption _ str1 str2 -> prPrec i 0 (concatD [doc (showString "#set-option"), printString str1, doc (showString "="), printString str2, doc (showString ";")]) - Language.Rzk.Syntax.Abs.CommandUnsetOption _ str -> prPrec i 0 (concatD [doc (showString "#unset-option"), printString str, doc (showString ";")]) - Language.Rzk.Syntax.Abs.CommandCheck _ term1 term2 -> prPrec i 0 (concatD [doc (showString "#check"), prt 0 term1, doc (showString ":"), prt 0 term2, doc (showString ";")]) - Language.Rzk.Syntax.Abs.CommandCompute _ term -> prPrec i 0 (concatD [doc (showString "#compute"), prt 0 term, doc (showString ";")]) - Language.Rzk.Syntax.Abs.CommandComputeWHNF _ term -> prPrec i 0 (concatD [doc (showString "#compute-whnf"), prt 0 term, doc (showString ";")]) - Language.Rzk.Syntax.Abs.CommandComputeNF _ term -> prPrec i 0 (concatD [doc (showString "#compute-nf"), prt 0 term, doc (showString ";")]) - Language.Rzk.Syntax.Abs.CommandPostulate _ varident params term -> prPrec i 0 (concatD [doc (showString "#postulate"), prt 0 varident, prt 0 params, doc (showString ":"), prt 0 term, doc (showString ";")]) - Language.Rzk.Syntax.Abs.CommandDefine _ varident params term1 term2 -> prPrec i 0 (concatD [doc (showString "#define"), prt 0 varident, prt 0 params, doc (showString ":"), prt 0 term1, doc (showString ":="), prt 0 term2, doc (showString ";")]) + Language.Rzk.Syntax.Abs.CommandSetOption _ str1 str2 -> prPrec i 0 (concatD [doc (showString "#set-option"), printString str1, doc (showString "="), printString str2]) + Language.Rzk.Syntax.Abs.CommandUnsetOption _ str -> prPrec i 0 (concatD [doc (showString "#unset-option"), printString str]) + Language.Rzk.Syntax.Abs.CommandCheck _ term1 term2 -> prPrec i 0 (concatD [doc (showString "#check"), prt 0 term1, doc (showString ":"), prt 0 term2]) + Language.Rzk.Syntax.Abs.CommandCompute _ term -> prPrec i 0 (concatD [doc (showString "#compute"), prt 0 term]) + Language.Rzk.Syntax.Abs.CommandComputeWHNF _ term -> prPrec i 0 (concatD [doc (showString "#compute-whnf"), prt 0 term]) + Language.Rzk.Syntax.Abs.CommandComputeNF _ term -> prPrec i 0 (concatD [doc (showString "#compute-nf"), prt 0 term]) + Language.Rzk.Syntax.Abs.CommandPostulate _ varident declusedvars params term -> prPrec i 0 (concatD [doc (showString "#postulate"), prt 0 varident, prt 0 declusedvars, prt 0 params, doc (showString ":"), prt 0 term]) + Language.Rzk.Syntax.Abs.CommandAssume _ varidents term -> prPrec i 0 (concatD [doc (showString "#assume"), prt 0 varidents, doc (showString ":"), prt 0 term]) + Language.Rzk.Syntax.Abs.CommandSection _ sectionname1 commands sectionname2 -> prPrec i 0 (concatD [doc (showString "#section"), prt 0 sectionname1, doc (showString ";"), prt 0 commands, doc (showString "#end"), prt 0 sectionname2]) + Language.Rzk.Syntax.Abs.CommandDefine _ varident declusedvars params term1 term2 -> prPrec i 0 (concatD [doc (showString "#define"), prt 0 varident, prt 0 declusedvars, prt 0 params, doc (showString ":"), prt 0 term1, doc (showString ":="), prt 0 term2]) instance Print [Language.Rzk.Syntax.Abs.Command' a] where - prt _ [] = concatD [] - prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] + prt _ [] = concatD [] + prt _ (x:xs) = concatD [prt 0 x, doc (showString ";"), prt 0 xs] + +instance Print (Language.Rzk.Syntax.Abs.DeclUsedVars' a) where + prt i = \case + Language.Rzk.Syntax.Abs.DeclUsedVars _ varidents -> prPrec i 0 (concatD [doc (showString "uses"), doc (showString "("), prt 0 varidents, doc (showString ")")]) + +instance Print (Language.Rzk.Syntax.Abs.SectionName' a) where + prt i = \case + Language.Rzk.Syntax.Abs.NoSectionName _ -> prPrec i 0 (concatD []) + Language.Rzk.Syntax.Abs.SomeSectionName _ varident -> prPrec i 0 (concatD [prt 0 varident]) instance Print (Language.Rzk.Syntax.Abs.Pattern' a) where prt i = \case @@ -176,8 +189,8 @@ instance Print (Language.Rzk.Syntax.Abs.Pattern' a) where Language.Rzk.Syntax.Abs.PatternPair _ pattern_1 pattern_2 -> prPrec i 0 (concatD [doc (showString "("), prt 0 pattern_1, doc (showString ","), prt 0 pattern_2, doc (showString ")")]) instance Print [Language.Rzk.Syntax.Abs.Pattern' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.Param' a) where @@ -187,8 +200,8 @@ instance Print (Language.Rzk.Syntax.Abs.Param' a) where Language.Rzk.Syntax.Abs.ParamPatternShape _ pattern_ term1 term2 -> prPrec i 0 (concatD [doc (showString "{"), prt 0 pattern_, doc (showString ":"), prt 0 term1, doc (showString "|"), prt 0 term2, doc (showString "}")]) instance Print [Language.Rzk.Syntax.Abs.Param' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.ParamDecl' a) where @@ -203,8 +216,8 @@ instance Print (Language.Rzk.Syntax.Abs.Restriction' a) where Language.Rzk.Syntax.Abs.Restriction _ term1 term2 -> prPrec i 0 (concatD [prt 0 term1, doc (showString "|->"), prt 0 term2]) instance Print [Language.Rzk.Syntax.Abs.Restriction' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, doc (showString ","), prt 0 xs] instance Print (Language.Rzk.Syntax.Abs.Term' a) where @@ -245,6 +258,6 @@ instance Print (Language.Rzk.Syntax.Abs.Term' a) where Language.Rzk.Syntax.Abs.TypeAsc _ term1 term2 -> prPrec i 0 (concatD [prt 2 term1, doc (showString "as"), prt 1 term2]) instance Print [Language.Rzk.Syntax.Abs.Term' a] where - prt _ [] = concatD [] - prt _ [x] = concatD [prt 0 x] + prt _ [] = concatD [] + prt _ [x] = concatD [prt 0 x] prt _ (x:xs) = concatD [prt 0 x, doc (showString ","), prt 0 xs] diff --git a/rzk/src/Language/Rzk/Syntax/Skel.hs b/rzk/src/Language/Rzk/Syntax/Skel.hs index 0c493e406..ab979d928 100644 --- a/rzk/src/Language/Rzk/Syntax/Skel.hs +++ b/rzk/src/Language/Rzk/Syntax/Skel.hs @@ -43,8 +43,19 @@ transCommand x = case x of Language.Rzk.Syntax.Abs.CommandCompute _ term -> failure x Language.Rzk.Syntax.Abs.CommandComputeWHNF _ term -> failure x Language.Rzk.Syntax.Abs.CommandComputeNF _ term -> failure x - Language.Rzk.Syntax.Abs.CommandPostulate _ varident params term -> failure x - Language.Rzk.Syntax.Abs.CommandDefine _ varident params term1 term2 -> failure x + Language.Rzk.Syntax.Abs.CommandPostulate _ varident declusedvars params term -> failure x + Language.Rzk.Syntax.Abs.CommandAssume _ varidents term -> failure x + Language.Rzk.Syntax.Abs.CommandSection _ sectionname1 commands sectionname2 -> failure x + Language.Rzk.Syntax.Abs.CommandDefine _ varident declusedvars params term1 term2 -> failure x + +transDeclUsedVars :: Show a => Language.Rzk.Syntax.Abs.DeclUsedVars' a -> Result +transDeclUsedVars x = case x of + Language.Rzk.Syntax.Abs.DeclUsedVars _ varidents -> failure x + +transSectionName :: Show a => Language.Rzk.Syntax.Abs.SectionName' a -> Result +transSectionName x = case x of + Language.Rzk.Syntax.Abs.NoSectionName _ -> failure x + Language.Rzk.Syntax.Abs.SomeSectionName _ varident -> failure x transPattern :: Show a => Language.Rzk.Syntax.Abs.Pattern' a -> Result transPattern x = case x of diff --git a/rzk/src/Rzk/Main.hs b/rzk/src/Rzk/Main.hs index 58ec566d5..84a11ff3d 100644 --- a/rzk/src/Rzk/Main.hs +++ b/rzk/src/Rzk/Main.hs @@ -1,11 +1,11 @@ module Rzk.Main where -import System.Exit (exitFailure) -import System.Environment (getArgs) -import Control.Monad (forM) +import Control.Monad (forM) +import System.Environment (getArgs) +import System.Exit (exitFailure) import qualified Language.Rzk.Syntax as Rzk -import Rzk.TypeCheck +import Rzk.TypeCheck main :: IO () main = do diff --git a/rzk/src/Rzk/TypeCheck.hs b/rzk/src/Rzk/TypeCheck.hs index 485c45787..e3e9919f1 100644 --- a/rzk/src/Rzk/TypeCheck.hs +++ b/rzk/src/Rzk/TypeCheck.hs @@ -1,35 +1,40 @@ {-# OPTIONS_GHC -fno-warn-type-defaults #-} -{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE DeriveFoldable #-} +{-# LANGUAGE DeriveFunctor #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TupleSections #-} -{-# LANGUAGE DeriveFoldable #-} -{-# LANGUAGE DeriveFunctor #-} -{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE TupleSections #-} module Rzk.TypeCheck where -import Control.Applicative ((<|>)) -import Control.Monad.Reader -import Control.Monad.Except -import Data.List (tails, (\\), intercalate, nub) -import Data.Maybe (fromMaybe, isNothing, catMaybes, mapMaybe) -import Data.Tuple (swap) +import Control.Applicative ((<|>)) +import Control.Monad.Except +import Control.Monad.Reader +import Data.List (intercalate, intersect, nub, tails, + (\\)) +import Data.Maybe (catMaybes, fromMaybe, isNothing, + mapMaybe) +import Data.Tuple (swap) -import Free.Scoped -import Language.Rzk.Free.Syntax -import qualified Language.Rzk.Syntax as Rzk +import Free.Scoped +import Language.Rzk.Free.Syntax +import qualified Language.Rzk.Syntax as Rzk -import Debug.Trace -import Unsafe.Coerce +import Debug.Trace +import Unsafe.Coerce defaultTypeCheck :: TypeCheck Rzk.VarIdent a -> Either (TypeErrorInScopedContext Rzk.VarIdent) a defaultTypeCheck tc = runExcept (runReaderT tc emptyContext) +-- FIXME: merge with VarInfo data Decl var = Decl - { declName :: var - , declType :: TermT var - , declValue :: Maybe (TermT var) + { declName :: var + , declType :: TermT var + , declValue :: Maybe (TermT var) + , declIsAssumption :: Bool + , declUsedVars :: [var] } type Decl' = Decl Rzk.VarIdent @@ -56,10 +61,18 @@ typecheckModuleWithLocation (path, module_) = do withLocation (LocationInfo { locationFilePath = Just path, locationLine = Nothing }) $ typecheckModule module_ +countCommands :: Integral a => [Rzk.Command] -> a +countCommands [] = 0 +countCommands (Rzk.CommandSection _loc _name sectionCommands _name2 : commands) = + countCommands sectionCommands + countCommands commands +countCommands (_ : commands) = 1 + countCommands commands + typecheckModule :: Rzk.Module -> TypeCheck Rzk.VarIdent [Decl'] -typecheckModule (Rzk.Module _loc _lang commands) = go 1 commands +typecheckModule (Rzk.Module _moduleLoc _lang commands) = + withSection Nothing (go 1 commands) $ -- FIXME: use module name? or anonymous section? + return [] where - totalCommands = length commands + totalCommands = countCommands commands go :: Integer -> [Rzk.Command] -> TypeCheck Rzk.VarIdent [Decl'] go _i [] = return [] @@ -78,14 +91,15 @@ typecheckModule (Rzk.Module _loc _lang commands) = go 1 commands setOption optionName optionValue $ go (i + 1) moreCommands - go i (command@(Rzk.CommandDefine _loc name params ty term) : moreCommands) = + go i (command@(Rzk.CommandDefine _loc name (Rzk.DeclUsedVars _ vars) params ty term) : moreCommands) = traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]" <> " Checking #define " <> show (Pure name :: Term') ) $ do withCommand command $ do + mapM_ checkDefinedVar vars paramDecls <- concat <$> mapM paramToParamDecl params ty' <- typecheck (toTerm' (addParamDecls paramDecls ty)) universeT >>= whnfT -- >>= pure . termIsWHNF term' <- typecheck (toTerm' (addParams params term)) ty' >>= whnfT >>= pure . termIsWHNF - let decl = Decl name ty' (Just term') + let decl = Decl name ty' (Just term') False vars fmap (decl :) $ localDeclPrepared decl $ do Context{..} <- ask @@ -97,13 +111,14 @@ typecheckModule (Rzk.Module _loc _lang commands) = go 1 commands maybe id trace termSVG $ do go (i + 1) moreCommands - go i (command@(Rzk.CommandPostulate _loc name params ty) : moreCommands) = + go i (command@(Rzk.CommandPostulate _loc name (Rzk.DeclUsedVars _ vars) params ty) : moreCommands) = traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]" <> " Checking #postulate " <> show (Pure name :: Term') ) $ do withCommand command $ do + mapM_ checkDefinedVar vars paramDecls <- concat <$> mapM paramToParamDecl params ty' <- typecheck (toTerm' (addParamDecls paramDecls ty)) universeT >>= whnfT -- >>= pure . termIsWHNF - let decl = Decl name ty' Nothing + let decl = Decl name ty' Nothing False vars fmap (decl :) $ localDeclPrepared decl $ go (i + 1) moreCommands @@ -135,6 +150,24 @@ typecheckModule (Rzk.Module _loc _lang commands) = go 1 commands traceTypeCheck Normal (" " <> show (untyped term')) $ do go (i + 1) moreCommands + go i (command@(Rzk.CommandAssume _loc names ty) : moreCommands) = + traceTypeCheck Normal ("[ " <> show i <> " out of " <> show totalCommands <> " ]" + <> " Checking #assume " <> intercalate " " [ show (Pure name :: Term') | name <- names ] ) $ do + withCommand command $ do + ty' <- typecheck (toTerm' ty) universeT + let decls = [ Decl name ty' Nothing True [] | name <- names ] + fmap (decls <>) $ + localDeclsPrepared decls $ + go (i + 1) moreCommands + + go i (command@(Rzk.CommandSection _loc name sectionCommands endName) : moreCommands) = do + withCommand command $ do + when (Rzk.printTree name /= Rzk.printTree endName) $ + issueTypeError $ TypeErrorOther $ + "unexpected #end " <> Rzk.printTree endName <> ", expecting #end " <> Rzk.printTree name + withSection (Just name) (go i sectionCommands) $ do + go (i + countCommands sectionCommands) moreCommands + setOption :: String -> String -> TypeCheck var a -> TypeCheck var a setOption "verbosity" = \case "debug" -> localVerbosity Debug @@ -168,7 +201,7 @@ addParamDecls (paramDecl : paramDecls) = Rzk.TypeFun Nothing paramDecl . addParamDecls paramDecls addParams :: [Rzk.Param] -> Rzk.Term -> Rzk.Term -addParams [] = id +addParams [] = id addParams params = Rzk.Lambda Nothing params data TypeError var @@ -187,6 +220,9 @@ data TypeError var | TypeErrorTopesNotEquivalent (TermT var) (TermT var) | TypeErrorInvalidArgumentType (Term var) (TermT var) | TypeErrorDuplicateTopLevel Rzk.VarIdent + | TypeErrorUnusedVariable var (TermT var) + | TypeErrorUnusedUsedVariables [var] var + | TypeErrorImplicitAssumption (var, TermT var) var deriving (Functor, Foldable) data TypeErrorInContext var = TypeErrorInContext @@ -224,7 +260,7 @@ ppTypeError' = \case , " " <> show (untyped term) , case ty of TypeFunT{} -> "\nPerhaps the term is applied to too few arguments?" - _ -> "" + _ -> "" ] TypeErrorUnexpectedLambda term ty -> unlines @@ -292,6 +328,25 @@ ppTypeError' = \case , " " <> Rzk.printTree name ] + TypeErrorUnusedVariable name type_ -> unlines + [ "unused variable" + , " " <> Rzk.printTree name <> " : " <> show (untyped type_) + ] + + TypeErrorUnusedUsedVariables vars name -> unlines + [ "unused variables" + , " " <> intercalate " " (map Rzk.printTree vars) + , "declared as used in definition of" + , " " <> Rzk.printTree name + ] + + TypeErrorImplicitAssumption (a, aType) name -> unlines + [ "implicit assumption" + , " " <> Rzk.printTree a <> " : " <> show (untyped aType) + , "used in definition of" + , " " <> Rzk.printTree name + ] + ppTypeErrorInContext :: TypeErrorInContext Rzk.VarIdent -> String ppTypeErrorInContext TypeErrorInContext{..} = intercalate "\n" [ ppContext' typeErrorContext @@ -308,13 +363,13 @@ ppTypeErrorInScopedContextWith' used vars = \case ScopedTypeError orig err -> withFresh orig $ \(x, xs) -> ppTypeErrorInScopedContextWith' (x:used) xs $ fmap (g x) err where - g x Z = x + g x Z = x g _ (S y) = y withFresh Nothing f = case vars of x:xs -> f (x, xs) - _ -> panicImpossible "not enough fresh variables" + _ -> panicImpossible "not enough fresh variables" withFresh (Just z) f = f (z', filter (/= z') vars) -- FIXME: very inefficient filter where z' = refreshVar used z -- FIXME: inefficient @@ -324,6 +379,11 @@ ppTypeErrorInScopedContext' err = ppTypeErrorInScopedContextWith' vars (defaultV where vars = nub (foldMap pure err) +issueWarning :: String -> TypeCheck var () +issueWarning message = do + trace ("Warning: " <> message) $ + return () + issueTypeError :: TypeError var -> TypeCheck var a issueTypeError err = do context <- ask @@ -350,19 +410,19 @@ data Action var | ActionWHNF (TermT var) | ActionNF (TermT var) | ActionCheckCoherence (TermT var, TermT var) (TermT var, TermT var) + | ActionCloseSection (Maybe Rzk.SectionName) deriving (Functor, Foldable) type Action' = Action Rzk.VarIdent ppTermInContext :: Eq var => TermT var -> TypeCheck var String ppTermInContext term = do - Context{..} <- ask - return (show (untyped (toRzkVarIdent varOrigs <$> term))) - where - vars = nub (foldMap pure term) - mapping = zip vars defaultVarIdents - toRzkVarIdent origs var = fromMaybe (Rzk.VarIdent "_") $ - join (lookup var origs) <|> lookup var mapping + vars <- freeVarsT_ term + let mapping = zip vars defaultVarIdents + toRzkVarIdent origs var = fromMaybe (Rzk.VarIdent "_") $ + join (lookup var origs) <|> lookup var mapping + origs <- asks varOrigs + return (show (untyped (toRzkVarIdent origs <$> term))) ppSomeAction :: Eq var => [(var, Maybe Rzk.VarIdent)] -> Int -> Action var -> String ppSomeAction origs n action = ppAction n (toRzkVarIdent <$> action) @@ -432,6 +492,13 @@ ppAction n = unlines . map (replicate (2 * n) ' ' <>) . \case , " " <> show (untyped rtope) , " |-> " <> show (untyped rterm) ] + ActionCloseSection Nothing -> + [ "closing the file" + , "and collecting assumptions (variables)" ] + ActionCloseSection (Just sectionName) -> + [ "closing #section " <> Rzk.printTree sectionName + , "and collecting assumptions (variables)"] + traceAction' :: Int -> Action' -> a -> a traceAction' n action = trace ("[debug]\n" <> ppAction n action) @@ -440,8 +507,8 @@ unsafeTraceAction' :: Int -> Action var -> a -> a unsafeTraceAction' n = traceAction' n . unsafeCoerce data LocationInfo = LocationInfo - { locationFilePath :: Maybe FilePath - , locationLine :: Maybe Int + { locationFilePath :: Maybe FilePath + , locationLine :: Maybe Int } data Verbosity @@ -474,27 +541,48 @@ data RenderBackend = RenderSVG | RenderLaTeX +data ScopeInfo var = ScopeInfo + { scopeName :: Maybe Rzk.SectionName + , scopeVars :: [(var, VarInfo var)] + } deriving (Functor, Foldable) + +addVarToScope :: var -> VarInfo var -> ScopeInfo var -> ScopeInfo var +addVarToScope var info ScopeInfo{..} = ScopeInfo + { scopeVars = (var, info) : scopeVars, .. } + +data VarInfo var = VarInfo + { varType :: TermT var + , varValue :: Maybe (TermT var) + , varOrig :: Maybe Rzk.VarIdent + , varIsAssumption :: Bool -- FIXME: perhaps, introduce something like decl kind? + , varDeclaredAssumptions :: [var] + } deriving (Functor, Foldable) + data Context var = Context - { varTypes :: [(var, TermT var)] - , varValues :: [(var, Maybe (TermT var))] - , varOrigs :: [(var, Maybe Rzk.VarIdent)] - , localTopes :: [TermT var] - , localTopesNF :: [TermT var] - , localTopesNFUnion :: [[TermT var]] - , localTopesEntailBottom :: Bool - , actionStack :: [Action var] - , currentCommand :: Maybe Rzk.Command - , location :: Maybe LocationInfo - , verbosity :: Verbosity - , covariance :: Covariance - , renderBackend :: Maybe RenderBackend + { localScopes :: [ScopeInfo var] + , localTopes :: [TermT var] + , localTopesNF :: [TermT var] + , localTopesNFUnion :: [[TermT var]] + , localTopesEntailBottom :: Bool + , actionStack :: [Action var] + , currentCommand :: Maybe Rzk.Command + , location :: Maybe LocationInfo + , verbosity :: Verbosity + , covariance :: Covariance + , renderBackend :: Maybe RenderBackend } deriving (Functor, Foldable) +addVarInCurrentScope :: var -> VarInfo var -> Context var -> Context var +addVarInCurrentScope var info Context{..} = Context + { localScopes = + case localScopes of + [] -> [ScopeInfo Nothing [(var, info)]] + scope : scopes -> addVarToScope var info scope : scopes + , .. } + emptyContext :: Context var emptyContext = Context - { varTypes = [] - , varValues = [] - , varOrigs = [] + { localScopes = [ScopeInfo Nothing []] , localTopes = [topeTopT] , localTopesNF = [topeTopT] , localTopesNFUnion = [[topeTopT]] @@ -507,12 +595,149 @@ emptyContext = Context , renderBackend = Nothing } +askCurrentScope :: TypeCheck var (ScopeInfo var) +askCurrentScope = asks localScopes >>= \case + [] -> panicImpossible "no current scope available" + scope : _scopes -> pure scope + +varInfos :: Context var -> [(var, VarInfo var)] +varInfos Context{..} = concatMap scopeVars localScopes + +varTypes :: Context var -> [(var, TermT var)] +varTypes = map (fmap varType) . varInfos + +varValues :: Context var -> [(var, Maybe (TermT var))] +varValues = map (fmap varValue) . varInfos + +varOrigs :: Context var -> [(var, Maybe Rzk.VarIdent)] +varOrigs = map (fmap varOrig) . varInfos + +withSection + :: Maybe Rzk.SectionName + -> TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent] + -> TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent] + -> TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent] +withSection name sectionBody next = do + sectionDecls <- startSection name $ do + decls <- sectionBody + localDeclsPrepared decls $ + performing (ActionCloseSection name) $ do + endSection + fmap (sectionDecls <>) $ + localDeclsPrepared sectionDecls $ + next + +startSection :: Maybe Rzk.SectionName -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a +startSection name = local $ \Context{..} -> Context + { localScopes = ScopeInfo { scopeName = name, scopeVars = [] } : localScopes + , .. } + +endSection :: TypeCheck Rzk.VarIdent [Decl Rzk.VarIdent] +endSection = askCurrentScope >>= scopeToDecls + +scopeToDecls :: Eq var => ScopeInfo var -> TypeCheck var [Decl var] +scopeToDecls ScopeInfo{..} = do + decls <- collectScopeDecls [] scopeVars + forM_ decls $ \Decl{..} -> do + let unusedUsedVars = declUsedVars `intersect` map fst scopeVars + when (not (null unusedUsedVars)) $ + issueTypeError $ TypeErrorUnusedUsedVariables unusedUsedVars declName + return decls + +insertExplicitAssumptionFor + :: Eq var => var -> (var, VarInfo var) -> TermT var -> TermT var +insertExplicitAssumptionFor a (declName, VarInfo{..}) term = + term >>= \case + y | y == declName -> appT varType (Pure declName) (Pure a) + | otherwise -> Pure y + +insertExplicitAssumptionFor' + :: Eq var => var -> (var, VarInfo var) -> VarInfo var -> VarInfo var +insertExplicitAssumptionFor' a decl VarInfo{..} + | varIsAssumption = VarInfo{..} + | otherwise = VarInfo + { varType = insertExplicitAssumptionFor a decl varType + , varValue = insertExplicitAssumptionFor a decl <$> varValue + , varIsAssumption = varIsAssumption + , varOrig = varOrig + , varDeclaredAssumptions = varDeclaredAssumptions + } + +makeAssumptionExplicit + :: Eq var + => (var, VarInfo var) + -> [(var, VarInfo var)] + -> TypeCheck var (Bool, [(var, VarInfo var)]) +makeAssumptionExplicit _ [] = pure (False {- UNUSED -}, []) +makeAssumptionExplicit assumption@(a, aInfo) ((x, xInfo) : xs) = do + varsInType <- freeVarsT_ (varType xInfo) + varsInBody <- concat <$> traverse freeVarsT_ (varValue xInfo) + let xFreeVars = varsInBody <> varsInType + let hasAssumption = a `elem` xFreeVars + xType <- typeOfVar x + xValue <- valueOfVar x + let assumptionInType = a `elem` freeVars (untyped xType) + assumptionInBody = a `elem` foldMap (freeVars . untyped) xValue + implicitAssumption = and + [ hasAssumption + , not (assumptionInType || assumptionInBody) + , a `notElem` varDeclaredAssumptions xInfo ] + if hasAssumption + then do + when implicitAssumption $ do + issueTypeError $ TypeErrorImplicitAssumption (a, varType aInfo) x + (_used, xs'') <- makeAssumptionExplicit (a, aInfo) xs' + return (True {- USED -}, (x, xInfo') : xs'') + else do + (used, xs'') <- makeAssumptionExplicit assumption xs + return (used, (x, xInfo) : xs'') + where + xType' = typeFunT (varOrig aInfo) (varType aInfo) Nothing (abstract a (varType xInfo)) + xInfo' = VarInfo + { varType = xType' + , varValue = fmap (lambdaT xType' (varOrig aInfo) Nothing . abstract a) (varValue xInfo) + , varIsAssumption = varIsAssumption xInfo + , varOrig = varOrig xInfo + , varDeclaredAssumptions = varDeclaredAssumptions xInfo \\ [a] + } + xs' = map (fmap (insertExplicitAssumptionFor' a (x, xInfo))) xs + +collectScopeDecls :: Eq var => [(var, VarInfo var)] -> [(var, VarInfo var)] -> TypeCheck var [Decl var] +collectScopeDecls recentVars (decl@(var, VarInfo{..}) : vars) + | varIsAssumption = do + (used, recentVars') <- makeAssumptionExplicit decl recentVars + when (not used) $ do + issueTypeError $ TypeErrorUnusedVariable var varType + collectScopeDecls recentVars' vars + | otherwise = do + collectScopeDecls (decl : recentVars) vars +collectScopeDecls recentVars [] = return (toDecl <$> recentVars) + where + toDecl (var, VarInfo{..}) = Decl + { declName = var + , declType = varType + , declValue = varValue + , declIsAssumption = varIsAssumption + , declUsedVars = varDeclaredAssumptions + } + +abstractAssumption :: Eq var => (var, VarInfo var) -> Decl var -> Decl var +abstractAssumption (var, VarInfo{..}) Decl{..} = Decl + { declName = declName + , declType = typeFunT varOrig varType Nothing (abstract var declType) + , declValue = (\body -> lambdaT newDeclType varOrig Nothing (abstract var body)) <$> declValue + , declIsAssumption = declIsAssumption + , declUsedVars = declUsedVars + } + where + newDeclType = typeFunT varOrig varType Nothing (abstract var declType) + ppContext' :: Context Rzk.VarIdent -> String -ppContext' Context{..} = unlines +ppContext' ctx@Context{..} = unlines [ "Definitions in context:" , unlines [ show (Pure x :: Term') <> " : " <> show (untyped ty) - | (x, ty) <- reverse varTypes ] + | (x, ty) <- reverse (varTypes ctx) ] -- , unlines -- [ show (Pure x :: Term') <> " = " <> show (untyped term) -- | (x, Just term) <- reverse varValues ] @@ -521,11 +746,11 @@ ppContext' Context{..} = unlines , intercalate "\n" (map ((" " <>) . show . untyped) localTopes) , case location of Just (LocationInfo (Just path) _) -> "\n" <> path <> ":" - _ -> "" + _ -> "" , case currentCommand of - Just (Rzk.CommandDefine _loc name _params _ty _term) -> + Just (Rzk.CommandDefine _loc name _vars _params _ty _term) -> " Error occurred when checking\n #define " <> show (Pure name :: Term') - Just (Rzk.CommandPostulate _loc name _params _ty ) -> + Just (Rzk.CommandPostulate _loc name _vars _params _ty ) -> " Error occurred when checking\n #postulate " <> show (Pure name :: Term') Just (Rzk.CommandCheck _loc term ty) -> " Error occurred when checking\n " <> Rzk.printTree term <> " : " <> Rzk.printTree ty @@ -537,29 +762,32 @@ ppContext' Context{..} = unlines " Error occurred when computing WHNF for\n " <> Rzk.printTree term Just (Rzk.CommandSetOption _loc optionName _optionValue) -> " Error occurred when trying to set option\n #set-option " <> show optionName - Just (Rzk.CommandUnsetOption _loc optionName) -> - " Error occurred when trying to unset option\n #unset-option " <> show optionName - Nothing -> "" + Just command@Rzk.CommandUnsetOption{} -> + " Error occurred when trying to unset option\n " <> Rzk.printTree command + Just command@Rzk.CommandAssume{} -> + " Error occurred when checking assumption\n " <> Rzk.printTree command + Just (Rzk.CommandSection _loc name _commands _endName) -> + " Error occurred when checking\n #section " <> Rzk.printTree name + Nothing -> " Error occurred" -- , "Local tope context (expanded):" -- , intercalate "\n" (map ((" " <>) . show . untyped) (intercalate [TopeAndT topeT topeBottomT topeBottomT] (saturateTopes [] <$> simplifyLHS localTopes))) ] doesShadowName :: Rzk.VarIdent -> TypeCheck var Bool -doesShadowName name = asks $ \Context{..} -> - name `elem` mapMaybe snd varOrigs +doesShadowName name = asks $ \ctx -> + name `elem` mapMaybe snd (varOrigs ctx) checkTopLevelDuplicate :: Rzk.VarIdent -> TypeCheck var () checkTopLevelDuplicate name = do doesShadowName name >>= \case - True -> issueTypeError (TypeErrorDuplicateTopLevel name) + True -> issueTypeError (TypeErrorDuplicateTopLevel name) False -> return () checkNameShadowing :: Rzk.VarIdent -> TypeCheck var () checkNameShadowing name = do doesShadowName name >>= \case - True -> do - trace ("Warning: " <> Rzk.printTree name <> " shadows an existing definition") $ - return () + True -> issueWarning $ + Rzk.printTree name <> " shadows an existing definition" False -> return () withLocation :: LocationInfo -> TypeCheck var a -> TypeCheck var a @@ -569,7 +797,7 @@ withCommand :: Rzk.Command -> TypeCheck var a -> TypeCheck var a withCommand command = local $ \Context{..} -> Context { currentCommand = Just command, .. } localDecls :: [Decl Rzk.VarIdent] -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a -localDecls [] = id +localDecls [] = id localDecls (decl : decls) = localDecl decl . localDecls decls localDeclsPrepared :: [Decl Rzk.VarIdent] -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a @@ -577,30 +805,34 @@ localDeclsPrepared [] = id localDeclsPrepared (decl : decls) = localDeclPrepared decl . localDeclsPrepared decls localDecl :: Decl Rzk.VarIdent -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a -localDecl (Decl x ty term) tc = do +localDecl (Decl x ty term isAssumption vars) tc = do ty' <- whnfT ty term' <- traverse whnfT term - localDeclPrepared (Decl x ty' term') tc + localDeclPrepared (Decl x ty' term' isAssumption vars) tc localDeclPrepared :: Decl Rzk.VarIdent -> TypeCheck Rzk.VarIdent a -> TypeCheck Rzk.VarIdent a -localDeclPrepared (Decl x ty term) tc = do +localDeclPrepared (Decl x ty term isAssumption vars) tc = do checkTopLevelDuplicate x local update tc where - update Context{..} = Context - { varTypes = (x, ty) : varTypes - , varValues = (x, term) : varValues - , varOrigs = (x, Just x) : varOrigs - , .. } + update = addVarInCurrentScope x VarInfo + { varType = ty + , varValue = term + , varOrig = Just x + , varIsAssumption = isAssumption + , varDeclaredAssumptions = vars + } type TypeCheck var = ReaderT (Context var) (Except (TypeErrorInScopedContext var)) -showSomeTermTs :: Eq var => [TermT var] -> String -showSomeTermTs terms = show [ untyped (rename <$> term) | term <- terms ] - where - vars = nub (foldMap (foldMap pure) terms) - mapping = zip vars defaultVarIdents - rename x = fromMaybe (Rzk.VarIdent "?") (lookup x mapping) +freeVarsT_ :: Eq var => TermT var -> TypeCheck var [var] +freeVarsT_ term = do + types <- asks varTypes + let typeOfVar' x = + case lookup x types of + Nothing -> panicImpossible "undefined variable" + Just ty -> ty + return (freeVarsT typeOfVar' term) traceStartAndFinish :: Show a => String -> a -> a traceStartAndFinish tag = trace ("start [" <> tag <> "]") . @@ -614,7 +846,7 @@ entail topes tope = all (`solveRHS` tope) $ topes' = nubTermT (topes <> generateTopesForPoints (allTopePoints tope)) nubTermT :: Eq var => [TermT var] -> [TermT var] -nubTermT [] = [] +nubTermT [] = [] nubTermT (t:ts) = t : nubTermT (filter (/= t) ts) saturateTopes :: Eq var => [TermT var] -> [TermT var] -> [TermT var] @@ -633,7 +865,7 @@ saturateWith elem' step zs = go (nub' zs) [] where xs' = lastNew <> xs new = filter (not . (`elem'` xs')) (nub' $ step lastNew xs) - nub' [] = [] + nub' [] = [] nub' (x:xs) = x : nub' (filter (not . (`elem'` [x])) xs) generateTopes :: Eq var => [TermT var] -> [TermT var] -> [TermT var] @@ -678,21 +910,21 @@ generateTopes newTopes oldTopes | TopeEQT _ty y z : newTopes' <- tails newTopes , TopeLEQT _ty x y' <- newTopes' <> oldTopes , y == y' ] - + -- FIXME: special case of substitution of EQ -- transitivity EQ-LEQ (2) , [ topeLEQT x z | TopeEQT _ty x y : newTopes' <- tails newTopes , TopeLEQT _ty y' z <- newTopes' <> oldTopes , y == y' ] - + -- FIXME: special case of substitution of EQ -- transitivity EQ-LEQ (3) , [ topeLEQT x z | TopeLEQT _ty y z : newTopes' <- tails newTopes , TopeEQT _ty x y' <- newTopes' <> oldTopes , y == y' ] - + -- FIXME: special case of substitution of EQ -- transitivity EQ-LEQ (4) , [ topeLEQT x z @@ -720,13 +952,13 @@ allTopePoints = nubTermT . foldMap subPoints . nubTermT . topePoints topePoints :: TermT var -> [TermT var] topePoints = \case - TopeTopT{} -> [] - TopeBottomT{} -> [] + TopeTopT{} -> [] + TopeBottomT{} -> [] TopeAndT _ l r -> topePoints l <> topePoints r TopeOrT _ l r -> topePoints l <> topePoints r TopeEQT _ x y -> [x, y] TopeLEQT _ x y -> [x, y] - _ -> [] + _ -> [] subPoints :: TermT var -> [TermT var] subPoints = \case @@ -835,20 +1067,19 @@ switchVariance :: TypeCheck var a -> TypeCheck var a switchVariance = local $ \Context{..} -> Context { covariance = switch covariance, .. } where - switch Covariant = Contravariant + switch Covariant = Contravariant switch Contravariant = Covariant enterScopeContext :: Maybe Rzk.VarIdent -> TermT var -> Context var -> Context (Inc var) -enterScopeContext orig ty Context{..} = Context - { varTypes = (Z, S <$> ty) : [ (S x, fmap S t) | (x, t) <- varTypes ] - , varValues = (Z, Nothing) : [ (S x, fmap S <$> t) | (x, t) <- varValues ] - , varOrigs = (Z, orig) : [ (S x, o) | (x, o) <- varOrigs ] - , localTopes = map (fmap S) localTopes - , localTopesNF = map (fmap S) localTopesNF - , localTopesNFUnion = map (map (fmap S)) localTopesNFUnion - , actionStack = map (fmap S) actionStack - , .. - } +enterScopeContext orig ty = + addVarInCurrentScope Z VarInfo + { varType = S <$> ty + , varValue = Nothing + , varOrig = orig + , varIsAssumption = False + , varDeclaredAssumptions = [] + } + . fmap S enterScope :: Maybe Rzk.VarIdent -> TermT var -> TypeCheck (Inc var) b -> TypeCheck var b enterScope orig ty action = do @@ -858,10 +1089,10 @@ enterScope orig ty action = do performing :: Eq var => Action var -> TypeCheck var a -> TypeCheck var a performing action tc = do - Context{..} <- ask + ctx@Context{..} <- ask unless (length actionStack < 1000) $ -- FIXME: which depth is reasonable? factor out into a parameter issueTypeError $ TypeErrorOther "maximum depth reached" - traceTypeCheck Debug (ppSomeAction varOrigs (length actionStack) action) $ + traceTypeCheck Debug (ppSomeAction (varOrigs ctx) (length actionStack) action) $ local (const Context { actionStack = action : actionStack, .. }) $ tc stripTypeRestrictions :: TermT var -> TermT var @@ -916,18 +1147,18 @@ etaExpand term = do inCubeLayer :: Eq var => TermT var -> TypeCheck var Bool inCubeLayer = \case - RecBottomT{} -> pure False - UniverseT{} -> pure False + RecBottomT{} -> pure False + UniverseT{} -> pure False UniverseCubeT{} -> pure True - CubeProductT{} -> pure True - CubeUnitT{} -> pure True + CubeProductT{} -> pure True + CubeUnitT{} -> pure True CubeUnitStarT{} -> pure True - Cube2T{} -> pure True - Cube2_0T{} -> pure True - Cube2_1T{} -> pure True + Cube2T{} -> pure True + Cube2_0T{} -> pure True + Cube2_1T{} -> pure True - t -> typeOf t >>= inCubeLayer + t -> typeOf t >>= inCubeLayer inTopeLayer :: Eq var => TermT var -> TypeCheck var Bool inTopeLayer = \case @@ -962,7 +1193,7 @@ tryRestriction = \case let go [] = pure Nothing go ((tope, term') : rs') = do checkTope tope >>= \case - True -> pure (Just term') + True -> pure (Just term') False -> go rs' go rs _ -> pure Nothing @@ -1029,7 +1260,7 @@ whnfT tt = performing (ActionWHNF tt) $ case tt of Nothing -> case tt of t@(Pure var) -> valueOfVar var >>= \case - Nothing -> pure t + Nothing -> pure t Just term -> whnfT term AppT ty f x -> @@ -1049,29 +1280,29 @@ whnfT tt = performing (ActionWHNF tt) $ case tt of | otherwise -> do let ret' = substituteT x ret tryRestriction ret' >>= \case -- FIXME: to many unnecessary checks? - Nothing -> pure (AppT ty { infoType = ret' } f' x) + Nothing -> pure (AppT ty { infoType = ret' } f' x) Just tt' -> whnfT tt' _ -> pure (AppT ty f' x) FirstT ty t -> whnfT t >>= \case PairT _ l _r -> whnfT l - t' -> pure (FirstT ty t') + t' -> pure (FirstT ty t') SecondT ty t -> whnfT t >>= \case PairT _ _l r -> whnfT r - t' -> pure (SecondT ty t') + t' -> pure (SecondT ty t') IdJT ty tA a tC d x p -> whnfT p >>= \case ReflT{} -> whnfT d - p' -> pure (IdJT ty tA a tC d x p') + p' -> pure (IdJT ty tA a tC d x p') RecOrT _ty rs -> do let go [] = pure Nothing go ((tope, tt') : rs') = do checkTope tope >>= \case - True -> pure (Just tt') + True -> pure (Just tt') False -> go rs' go rs >>= \case Just tt' -> whnfT tt' @@ -1082,14 +1313,14 @@ whnfT tt = performing (ActionWHNF tt) $ case tt of TypeRestrictedT ty type_ rs -> do rs' <- traverse (\(tope, term) -> (,) <$> nfT tope <*> pure term) rs case filter ((/= topeBottomT) . fst) rs' of - [] -> whnfT type_ -- get rid of restrictions at BOT + [] -> whnfT type_ -- get rid of restrictions at BOT rs'' -> TypeRestrictedT ty <$> whnfT type_ <*> pure rs'' nfTope :: Eq var => TermT var -> TypeCheck var (TermT var) nfTope tt = performing (ActionNF tt) $ fmap termIsNF $ case tt of Pure var -> valueOfVar var >>= \case - Nothing -> pure tt + Nothing -> pure tt Just term -> nfTope term -- see if normal form is already available @@ -1120,7 +1351,7 @@ nfTope tt = performing (ActionNF tt) $ fmap termIsNF $ case tt of TopeBottomT{} -> pure topeBottomT l' -> nfTope r >>= \case TopeBottomT{} -> pure topeBottomT - r' -> pure (TopeAndT ty l' r') + r' -> pure (TopeAndT ty l' r') TopeOrT ty l r -> do l' <- nfTope l @@ -1128,14 +1359,14 @@ nfTope tt = performing (ActionNF tt) $ fmap termIsNF $ case tt of case (l', r') of (TopeBottomT{}, _) -> pure r' (_, TopeBottomT{}) -> pure l' - _ -> pure (TopeOrT ty l' r') + _ -> pure (TopeOrT ty l' r') TopeEQT ty l r -> TopeEQT ty <$> nfTope l <*> nfTope r TopeLEQT ty l r -> TopeLEQT ty <$> nfTope l <*> nfTope r -- type ascriptions are ignored, since we already have a typechecked term TypeAscT _ty term _ty' -> nfTope term - + PairT ty l r -> PairT ty <$> nfTope l <*> nfTope r AppT ty f x -> @@ -1152,12 +1383,12 @@ nfTope tt = performing (ActionNF tt) $ fmap termIsNF $ case tt of FirstT ty t -> nfTope t >>= \case PairT _ty x _y -> pure x - t' -> pure (FirstT ty t') + t' -> pure (FirstT ty t') SecondT ty t -> nfTope t >>= \case PairT _ty _x y -> pure y - t' -> pure (SecondT ty t') + t' -> pure (SecondT ty t') LambdaT ty orig _mparam body | TypeFunT _ty _origF param mtope _ret <- infoType ty -> @@ -1223,7 +1454,7 @@ nfT tt = performing (ActionNF tt) $ case tt of Nothing -> case tt of t@(Pure var) -> valueOfVar var >>= \case - Nothing -> pure t + Nothing -> pure t Just term -> nfT term TypeFunT ty orig param mtope ret -> do @@ -1261,11 +1492,11 @@ nfT tt = performing (ActionNF tt) $ case tt of FirstT ty t -> whnfT t >>= \case PairT _ l _r -> nfT l - t' -> FirstT ty <$> nfT t' + t' -> FirstT ty <$> nfT t' SecondT ty t -> whnfT t >>= \case PairT _ _l r -> nfT r - t' -> SecondT ty <$> nfT t' + t' -> SecondT ty <$> nfT t' TypeIdT ty x _tA y -> TypeIdT ty <$> nfT x <*> pure Nothing <*> nfT y IdJT ty tA a tC d x p -> @@ -1277,7 +1508,7 @@ nfT tt = performing (ActionNF tt) $ case tt of let go [] = pure Nothing go ((tope, tt') : rs') = do checkTope tope >>= \case - True -> pure (Just tt') + True -> pure (Just tt') False -> go rs' go rs >>= \case Just tt' -> nfT tt' @@ -1295,9 +1526,14 @@ nfT tt = performing (ActionNF tt) $ case tt of nfT term return (Just (tope', term')) case catMaybes rs' of - [] -> nfT type_ + [] -> nfT type_ rs'' -> TypeRestrictedT ty <$> nfT type_ <*> pure rs'' +checkDefinedVar :: Eq var => var -> TypeCheck var () +checkDefinedVar x = asks (lookup x . varInfos) >>= \case + Nothing -> issueTypeError $ TypeErrorUndefined x + Just _ty -> return () + valueOfVar :: Eq var => var -> TypeCheck var (Maybe (TermT var)) valueOfVar x = asks (lookup x . varValues) >>= \case Nothing -> issueTypeError $ TypeErrorUndefined x @@ -1310,11 +1546,11 @@ typeOfVar x = asks (lookup x . varTypes) >>= \case typeOfUncomputed :: Eq var => TermT var -> TypeCheck var (TermT var) typeOfUncomputed = \case - Pure x -> typeOfVar x + Pure x -> typeOfVar x Free (AnnF TypeInfo{..} _) -> pure infoType typeOf :: Eq var => TermT var -> TypeCheck var (TermT var) -typeOf t = typeOfUncomputed t >>= whnfT +typeOf t = typeOfUncomputed t >>= whnfT unifyTopes :: Eq var => TermT var -> TermT var -> TypeCheck var () unifyTopes l r = do @@ -1343,7 +1579,7 @@ unify :: Eq var => Maybe (TermT var) -> TermT var -> TermT var -> TypeCheck var unify mterm expected actual = performUnification `catchError` \typeError -> do inAllSubContexts (throwError typeError) performUnification where - performUnification = unifyInCurrentContext mterm expected actual + performUnification = unifyInCurrentContext mterm expected actual unifyInCurrentContext :: Eq var => Maybe (TermT var) -> TermT var -> TermT var -> TypeCheck var () unifyInCurrentContext mterm expected actual = performing action $ @@ -1351,7 +1587,7 @@ unifyInCurrentContext mterm expected actual = performing action $ expectedVal <- whnfT expected actualVal <- whnfT actual (expected', actual') <- asks covariance >>= \case - Covariant -> etaMatch mterm expectedVal actualVal + Covariant -> etaMatch mterm expectedVal actualVal Contravariant -> swap <$> etaMatch mterm actualVal expectedVal unless (expected' == actual') $ do -- NOTE: this gives a small, but noticeable speedup case actual' of @@ -1410,12 +1646,12 @@ unifyInCurrentContext mterm expected actual = performing action $ FirstT _ty t -> case actual' of FirstT _ty' t' -> unifyTerms t t' - _ -> err + _ -> err SecondT _ty t -> case actual' of SecondT _ty' t' -> unifyTerms t t' - _ -> err + _ -> err TopeTopT{} -> unifyTopes expected' actual' TopeBottomT{} -> unifyTopes expected' actual' @@ -1540,7 +1776,7 @@ unifyInCurrentContext mterm expected actual = performing action $ where action = case mterm of - Nothing -> ActionUnifyTerms expected actual + Nothing -> ActionUnifyTerms expected actual Just term -> ActionUnify term expected actual unifyTypes :: Eq var => TermT var -> TermT var -> TermT var -> TypeCheck var () @@ -2106,7 +2342,7 @@ infer tt = performing (ActionInfer tt) $ case tt of x' <- typecheck x a case b of UniverseTopeT{} -> return () - _ -> mapM_ (contextEntails . substituteT x') mtope -- FIXME: need to check? + _ -> mapM_ (contextEntails . substituteT x') mtope -- FIXME: need to check? return (appT (substituteT x' b) f' x') ty -> issueTypeError $ TypeErrorNotFunction f' ty @@ -2135,7 +2371,7 @@ infer tt = performing (ActionInfer tt) $ case tt of enterScope orig ty' $ do maybe id localTope mtope $ do body' <- infer body - ret <- typeOf body' + ret <- typeOf body' return (lambdaT (typeFunT orig ty' mtope ret) orig (Just (ty', mtope)) body') Lambda orig (Just (cube, Just tope)) body -> do cube' <- typecheck cube cubeT @@ -2223,7 +2459,7 @@ type PointId = String type ShapeId = [PointId] cube2powerT :: Int -> TermT var -cube2powerT 1 = cube2T +cube2powerT 1 = cube2T cube2powerT dim = cubeProductT (cube2powerT (dim - 1)) cube2T splits :: [a] -> [([a], [a])] @@ -2357,13 +2593,14 @@ renderObjectsFor mainColor dim t term = fmap catMaybes $ do , renderObjectDataColor = "orange" -- FIXME: orange for topes? }) _ -> do - Context{..} <- ask + origs <- asks varOrigs term' <- localTope tope $ whnfT term label <- case term' of AppT _ (Pure z) arg - | Just (Just "_") <- lookup z varOrigs -> return "" - | null (nub (foldMap pure arg) \\ nub (foldMap pure t)) -> ppTermInContext (Pure z) + | Just (Just "_") <- lookup z origs -> return "" + | null (nub (freeVars (untyped arg)) \\ nub (freeVars (untyped t))) -> + ppTermInContext (Pure z) _ -> ppTermInContext term' return $ Just (shapeId, RenderObjectData { renderObjectDataLabel = label @@ -2372,8 +2609,8 @@ renderObjectsFor mainColor dim t term = fmap catMaybes $ do case term' of Pure{} -> "purple" AppT _ (Pure x) arg - | Just (Just "_") <- lookup x varOrigs -> mainColor - | null (nub (foldMap pure arg) \\ nub (foldMap pure t)) -> "purple" + | Just (Just "_") <- lookup x origs -> mainColor + | null (nub (freeVars (untyped arg)) \\ nub (freeVars (untyped t))) -> "purple" _ -> mainColor }) @@ -2410,23 +2647,23 @@ renderObjectsInSubShapeFor mainColor dim sub super retType f x = fmap catMaybes checkEntails tope contextTopes >>= \case False -> return Nothing True -> do - Context{..} <- ask + origs <- asks varOrigs term <- localTope tope (whnfT (appT retType f (Pure super))) label <- typeOf term >>= \case UniverseTopeT{} -> return "" _ -> do case term of AppT _ (Pure z) arg - | Just (Just "_") <- lookup z varOrigs -> return "" - | null (nub (foldMap pure arg) \\ [super]) -> ppTermInContext (Pure z) + | Just (Just "_") <- lookup z origs -> return "" + | null (nub (freeVars (untyped arg)) \\ [super]) -> ppTermInContext (Pure z) _ -> ppTermInContext term color <- checkEntails tope contextTopes' >>= \case True -> do case term of Pure{} -> return "purple" AppT _ (Pure z) arg - | Just (Just "_") <- lookup z varOrigs -> return mainColor - | null (nub (foldMap pure arg) \\ [super]) -> return "purple" + | Just (Just "_") <- lookup z origs -> return mainColor + | null (nub (freeVars (untyped arg)) \\ [super]) -> return "purple" _ -> return mainColor False -> return "gray" return $ Just (shapeId, RenderObjectData @@ -2502,14 +2739,14 @@ renderTermSVGFor mainColor accDim (mp, xs) t = do (join' (both (fmap S) <$> mp) (S <$> arg) (Pure Z), Z : map S xs) $ case t' of LambdaT _ _orig _marg body -> body - _ -> appT ret (S <$> t') (Pure Z) + _ -> appT ret (S <$> t') (Pure Z) | null xs -> enterScope orig arg $ do maybe id localTope mtope $ renderTermSVGFor mainColor accDim (both (fmap S) <$> mp, map S xs) $ case t' of LambdaT _ _orig _marg body -> body - _ -> appT ret (S <$> t') (Pure Z) + _ -> appT ret (S <$> t') (Pure Z) _ -> traverse (\(p', _) -> renderForSVG mainColor accDim p' t') mp where maxDim = 3 @@ -2528,7 +2765,7 @@ renderTermSVGFor mainColor accDim (mp, xs) t = do dimOf = \case Cube2T{} -> Just 1 CubeProductT _ l r -> (+) <$> dimOf l <*> dimOf r - _ -> Nothing + _ -> Nothing renderTermSVG :: Eq var => TermT var -> TypeCheck var (Maybe String) renderTermSVG = renderTermSVGFor "red" 0 (Nothing, []) -- use red for terms by default @@ -2550,7 +2787,7 @@ renderTermSVG' t = whnfT t >>= \t' -> typeOf t >>= \case dimOf = \case Cube2T{} -> Just 1 CubeProductT _ l r -> (+) <$> dimOf l <*> dimOf r -- WARNING: breaks for 2 * (2 * 2) - _ -> Nothing + _ -> Nothing defaultRenderTermSVG t' arg ret = case dimOf arg of @@ -2567,9 +2804,9 @@ type Volume3D a = (Point3D a, Point3D a, Point3D a, Point3D a) data CubeCoords2D a b = CubeCoords2D { vertices :: [(Point3D a, Point2D b)] - , edges :: [(Edge3D a, (Point2D b, Point2D b))] - , faces :: [(Face3D a, (Point2D b, Point2D b, Point2D b))] - , volumes :: [(Volume3D a, (Point2D b, Point2D b, Point2D b, Point2D b))] + , edges :: [(Edge3D a, (Point2D b, Point2D b))] + , faces :: [(Face3D a, (Point2D b, Point2D b, Point2D b))] + , volumes :: [(Volume3D a, (Point2D b, Point2D b, Point2D b, Point2D b))] } data Matrix3D a = Matrix3D @@ -2606,11 +2843,11 @@ rotateZ theta = Matrix3D 0 0 1 data Camera a = Camera - { cameraPos :: Point3D a - , cameraFoV :: a + { cameraPos :: Point3D a + , cameraFoV :: a , cameraAspectRatio :: a - , cameraAngleY :: a - , cameraAngleX :: a + , cameraAngleY :: a + , cameraAngleX :: a } viewRotateX :: Floating a => Camera a -> Matrix4D a diff --git a/try-rzk/try-rzk.cabal b/try-rzk/try-rzk.cabal index 16731c461..10c792403 100644 --- a/try-rzk/try-rzk.cabal +++ b/try-rzk/try-rzk.cabal @@ -9,5 +9,8 @@ executable try-rzk main-is: Main.hs ghcjs-options: -dedupe - build-depends: base, miso, rzk, ghcjs-base, ghcjs-prim + build-depends: base, miso, rzk + if impl(ghcjs) + build-depends: + ghcjs-base, ghcjs-prim default-language: Haskell2010