[mlton] Scrap all the arch-specific bootstrapping, use polyml to do it

Adam Goode agoode at fedoraproject.org
Tue Apr 23 01:40:24 UTC 2013


commit a169e1dd91af4109eaa36f5f0fff429fae90d714
Author: Adam Goode <adam at spicenitz.org>
Date:   Mon Apr 22 21:39:40 2013 -0400

    Scrap all the arch-specific bootstrapping, use polyml to do it

 .gitignore                          |    2 -
 generate-additional-mlton-source.sh |   23 +
 mlton-20100608-generated.patch      |25434 +++++++++++++++++++++++++++++++++++
 mlton.spec                          |   42 +-
 sources                             |    2 -
 5 files changed, 25480 insertions(+), 23 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 3c04578..9a7145e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1 @@
 /mlton-20100608.src.tgz
-/mlton-20100608.ppc64.tar.xz
-/mlton-20100608.ppc.tar.xz
diff --git a/generate-additional-mlton-source.sh b/generate-additional-mlton-source.sh
new file mode 100755
index 0000000..fd60214
--- /dev/null
+++ b/generate-additional-mlton-source.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+set -e
+
+VER=mlton-20100608
+TOP=$(pwd)
+
+rm -rf $VER $VER~
+tar xzf $VER.src.tgz
+cp -a $VER $VER~
+cd $VER
+
+cd mlton
+make mlton-polyml.use
+cd ..
+
+cd mlyacc/src
+mllex yacc.lex
+mlyacc yacc.grm
+cd ../..
+
+cd $TOP
+diff -urN $VER~ $VER > $VER-generated.patch
diff --git a/mlton-20100608-generated.patch b/mlton-20100608-generated.patch
new file mode 100644
index 0000000..b5387a5
--- /dev/null
+++ b/mlton-20100608-generated.patch
@@ -0,0 +1,25434 @@
+diff -urN mlton-20100608~/mlton/front-end/mlb.grm.desc mlton-20100608/mlton/front-end/mlb.grm.desc
+--- mlton-20100608~/mlton/front-end/mlb.grm.desc	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/mlb.grm.desc	2013-04-22 09:58:08.026218548 -0400
+@@ -0,0 +1,982 @@
++
++state 0:
++
++	mlb : . basdecs 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 2
++	basdecsnode	goto 1
++	mlb	goto 83
++
++	.	reduce by rule 2
++
++
++state 1:
++
++	basdecs : basdecsnode .  (reduce by rule 1)
++
++
++
++	.	reduce by rule 1
++
++
++state 2:
++
++	mlb : basdecs .  (reduce by rule 0)
++
++
++
++	.	reduce by rule 0
++
++
++state 3:
++
++	basdec : basdecnode .  (reduce by rule 5)
++
++
++
++	.	reduce by rule 5
++
++
++state 4:
++
++	basdecsnode : basdec . basdecs 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 16
++	basdecsnode	goto 1
++
++	.	reduce by rule 2
++
++
++state 5:
++
++	basdecnode : STRING .  (reduce by rule 13)
++
++
++
++	.	reduce by rule 13
++
++
++state 6:
++
++	basdecnode : FILE .  (reduce by rule 12)
++
++
++
++	.	reduce by rule 12
++
++
++state 7:
++
++	basdecnode : PRIM .  (reduce by rule 14)
++
++
++
++	.	reduce by rule 14
++
++
++state 8:
++
++	basdecnode : ANN . annPlus IN basdecs END 
++
++	STRING	shift 19
++
++	ann	goto 18
++	annPlus	goto 17
++
++	.	error
++
++
++state 9:
++
++	basdecnode : STRUCTURE . strbinds 
++
++	ID	shift 23
++
++	id	goto 22
++	strbinds	goto 21
++	strid	goto 20
++
++	.	error
++
++
++state 10:
++
++	basdecnode : SIGNATURE . sigbinds 
++
++	ID	shift 23
++
++	id	goto 26
++	sigbinds	goto 25
++	sigid	goto 24
++
++	.	error
++
++
++state 11:
++
++	basdecnode : OPEN . basids 
++
++	ID	shift 23
++
++	basid	goto 29
++	basids	goto 28
++	id	goto 27
++
++	.	error
++
++
++state 12:
++
++	basdecnode : LOCAL . basdecs IN basdecs END 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 30
++	basdecsnode	goto 1
++
++	.	reduce by rule 2
++
++
++state 13:
++
++	basdecnode : FUNCTOR . fctbinds 
++
++	ID	shift 23
++
++	fctbinds	goto 33
++	fctid	goto 32
++	id	goto 31
++
++	.	error
++
++
++state 14:
++
++	basdecnode : BASIS . basbinds 
++
++	ID	shift 23
++
++	basbinds	goto 35
++	basid	goto 34
++	id	goto 27
++
++	.	error
++
++
++state 15:
++
++	basdecsnode : SEMICOLON . basdecs 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 36
++	basdecsnode	goto 1
++
++	.	reduce by rule 2
++
++
++state 16:
++
++	basdecsnode : basdec basdecs .  (reduce by rule 4)
++
++
++
++	.	reduce by rule 4
++
++
++state 17:
++
++	basdecnode : ANN annPlus . IN basdecs END 
++
++	IN	shift 37
++
++
++	.	error
++
++
++state 18:
++
++	annPlus : ann . annStar 
++
++	STRING	shift 19
++
++	ann	goto 18
++	annPlus	goto 39
++	annStar	goto 38
++
++	.	reduce by rule 48
++
++
++state 19:
++
++	ann : STRING .  (reduce by rule 46)
++
++
++
++	.	reduce by rule 46
++
++
++state 20:
++
++	strbinds : strid . EQUALOP strbinds' 
++	strbinds : strid . strbinds'' 
++
++	AND	shift 42
++	EQUALOP	shift 41
++
++	strbinds''	goto 40
++
++	.	reduce by rule 29
++
++
++state 21:
++
++	basdecnode : STRUCTURE strbinds .  (reduce by rule 8)
++
++
++
++	.	reduce by rule 8
++
++
++state 22:
++
++	strid : id .  (reduce by rule 44)
++
++
++
++	.	reduce by rule 44
++
++
++state 23:
++
++	id : ID .  (reduce by rule 45)
++
++
++
++	.	reduce by rule 45
++
++
++state 24:
++
++	sigbinds : sigid . EQUALOP sigbinds' 
++	sigbinds : sigid . sigbinds'' 
++
++	AND	shift 45
++	EQUALOP	shift 44
++
++	sigbinds''	goto 43
++
++	.	reduce by rule 24
++
++
++state 25:
++
++	basdecnode : SIGNATURE sigbinds .  (reduce by rule 7)
++
++
++
++	.	reduce by rule 7
++
++
++state 26:
++
++	sigid : id .  (reduce by rule 43)
++
++
++
++	.	reduce by rule 43
++
++
++state 27:
++
++	basid : id .  (reduce by rule 39)
++
++
++
++	.	reduce by rule 39
++
++
++state 28:
++
++	basdecnode : OPEN basids .  (reduce by rule 11)
++
++
++
++	.	reduce by rule 11
++
++
++state 29:
++
++	basids : basid .  (reduce by rule 40)
++	basids : basid . basids 
++
++	ID	shift 23
++
++	basid	goto 29
++	basids	goto 46
++	id	goto 27
++
++	.	reduce by rule 40
++
++
++state 30:
++
++	basdecnode : LOCAL basdecs . IN basdecs END 
++
++	IN	shift 47
++
++
++	.	error
++
++
++state 31:
++
++	fctid : id .  (reduce by rule 42)
++
++
++
++	.	reduce by rule 42
++
++
++state 32:
++
++	fctbinds : fctid . EQUALOP fctbinds' 
++	fctbinds : fctid . fctbinds'' 
++
++	AND	shift 50
++	EQUALOP	shift 49
++
++	fctbinds''	goto 48
++
++	.	reduce by rule 19
++
++
++state 33:
++
++	basdecnode : FUNCTOR fctbinds .  (reduce by rule 6)
++
++
++
++	.	reduce by rule 6
++
++
++state 34:
++
++	basbinds : basid . EQUALOP basbinds' 
++
++	EQUALOP	shift 51
++
++
++	.	error
++
++
++state 35:
++
++	basdecnode : BASIS basbinds .  (reduce by rule 9)
++
++
++
++	.	reduce by rule 9
++
++
++state 36:
++
++	basdecsnode : SEMICOLON basdecs .  (reduce by rule 3)
++
++
++
++	.	reduce by rule 3
++
++
++state 37:
++
++	basdecnode : ANN annPlus IN . basdecs END 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 52
++	basdecsnode	goto 1
++
++	.	reduce by rule 2
++
++
++state 38:
++
++	annPlus : ann annStar .  (reduce by rule 47)
++
++
++
++	.	reduce by rule 47
++
++
++state 39:
++
++	annStar : annPlus .  (reduce by rule 49)
++
++
++
++	.	reduce by rule 49
++
++
++state 40:
++
++	strbinds : strid strbinds'' .  (reduce by rule 27)
++
++
++
++	.	reduce by rule 27
++
++
++state 41:
++
++	strbinds : strid EQUALOP . strbinds' 
++
++	ID	shift 23
++
++	id	goto 22
++	strbinds'	goto 54
++	strid	goto 53
++
++	.	error
++
++
++state 42:
++
++	strbinds'' : AND . strbinds 
++
++	ID	shift 23
++
++	id	goto 22
++	strbinds	goto 55
++	strid	goto 20
++
++	.	error
++
++
++state 43:
++
++	sigbinds : sigid sigbinds'' .  (reduce by rule 22)
++
++
++
++	.	reduce by rule 22
++
++
++state 44:
++
++	sigbinds : sigid EQUALOP . sigbinds' 
++
++	ID	shift 23
++
++	id	goto 26
++	sigbinds'	goto 57
++	sigid	goto 56
++
++	.	error
++
++
++state 45:
++
++	sigbinds'' : AND . sigbinds 
++
++	ID	shift 23
++
++	id	goto 26
++	sigbinds	goto 58
++	sigid	goto 24
++
++	.	error
++
++
++state 46:
++
++	basids : basid basids .  (reduce by rule 41)
++
++
++
++	.	reduce by rule 41
++
++
++state 47:
++
++	basdecnode : LOCAL basdecs IN . basdecs END 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 59
++	basdecsnode	goto 1
++
++	.	reduce by rule 2
++
++
++state 48:
++
++	fctbinds : fctid fctbinds'' .  (reduce by rule 17)
++
++
++
++	.	reduce by rule 17
++
++
++state 49:
++
++	fctbinds : fctid EQUALOP . fctbinds' 
++
++	ID	shift 23
++
++	fctbinds'	goto 61
++	fctid	goto 60
++	id	goto 31
++
++	.	error
++
++
++state 50:
++
++	fctbinds'' : AND . fctbinds 
++
++	ID	shift 23
++
++	fctbinds	goto 62
++	fctid	goto 32
++	id	goto 31
++
++	.	error
++
++
++state 51:
++
++	basbinds : basid EQUALOP . basbinds' 
++
++	ID	shift 23
++	BAS	shift 68
++	LET	shift 67
++
++	basbinds'	goto 66
++	basexp	goto 65
++	basexpnode	goto 64
++	basid	goto 63
++	id	goto 27
++
++	.	error
++
++
++state 52:
++
++	basdecnode : ANN annPlus IN basdecs . END 
++
++	END	shift 69
++
++
++	.	error
++
++
++state 53:
++
++	strbinds' : strid . strbinds'' 
++
++	AND	shift 42
++
++	strbinds''	goto 70
++
++	.	reduce by rule 29
++
++
++state 54:
++
++	strbinds : strid EQUALOP strbinds' .  (reduce by rule 26)
++
++
++
++	.	reduce by rule 26
++
++
++state 55:
++
++	strbinds'' : AND strbinds .  (reduce by rule 30)
++
++
++
++	.	reduce by rule 30
++
++
++state 56:
++
++	sigbinds' : sigid . sigbinds'' 
++
++	AND	shift 45
++
++	sigbinds''	goto 71
++
++	.	reduce by rule 24
++
++
++state 57:
++
++	sigbinds : sigid EQUALOP sigbinds' .  (reduce by rule 21)
++
++
++
++	.	reduce by rule 21
++
++
++state 58:
++
++	sigbinds'' : AND sigbinds .  (reduce by rule 25)
++
++
++
++	.	reduce by rule 25
++
++
++state 59:
++
++	basdecnode : LOCAL basdecs IN basdecs . END 
++
++	END	shift 72
++
++
++	.	error
++
++
++state 60:
++
++	fctbinds' : fctid . fctbinds'' 
++
++	AND	shift 50
++
++	fctbinds''	goto 73
++
++	.	reduce by rule 19
++
++
++state 61:
++
++	fctbinds : fctid EQUALOP fctbinds' .  (reduce by rule 16)
++
++
++
++	.	reduce by rule 16
++
++
++state 62:
++
++	fctbinds'' : AND fctbinds .  (reduce by rule 20)
++
++
++
++	.	reduce by rule 20
++
++
++state 63:
++
++	basexpnode : basid .  (reduce by rule 37)
++
++
++
++	.	reduce by rule 37
++
++
++state 64:
++
++	basexp : basexpnode .  (reduce by rule 35)
++
++
++
++	.	reduce by rule 35
++
++
++state 65:
++
++	basbinds' : basexp . basbinds'' 
++
++	AND	shift 75
++
++	basbinds''	goto 74
++
++	.	reduce by rule 33
++
++
++state 66:
++
++	basbinds : basid EQUALOP basbinds' .  (reduce by rule 31)
++
++
++
++	.	reduce by rule 31
++
++
++state 67:
++
++	basexpnode : LET . basdecs IN basexp END 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 76
++	basdecsnode	goto 1
++
++	.	reduce by rule 2
++
++
++state 68:
++
++	basexpnode : BAS . basdecs END 
++
++	SEMICOLON	shift 15
++	BASIS	shift 14
++	FUNCTOR	shift 13
++	LOCAL	shift 12
++	OPEN	shift 11
++	SIGNATURE	shift 10
++	STRUCTURE	shift 9
++	ANN	shift 8
++	PRIM	shift 7
++	FILE	shift 6
++	STRING	shift 5
++
++	basdec	goto 4
++	basdecnode	goto 3
++	basdecs	goto 77
++	basdecsnode	goto 1
++
++	.	reduce by rule 2
++
++
++state 69:
++
++	basdecnode : ANN annPlus IN basdecs END .  (reduce by rule 15)
++
++
++
++	.	reduce by rule 15
++
++
++state 70:
++
++	strbinds' : strid strbinds'' .  (reduce by rule 28)
++
++
++
++	.	reduce by rule 28
++
++
++state 71:
++
++	sigbinds' : sigid sigbinds'' .  (reduce by rule 23)
++
++
++
++	.	reduce by rule 23
++
++
++state 72:
++
++	basdecnode : LOCAL basdecs IN basdecs END .  (reduce by rule 10)
++
++
++
++	.	reduce by rule 10
++
++
++state 73:
++
++	fctbinds' : fctid fctbinds'' .  (reduce by rule 18)
++
++
++
++	.	reduce by rule 18
++
++
++state 74:
++
++	basbinds' : basexp basbinds'' .  (reduce by rule 32)
++
++
++
++	.	reduce by rule 32
++
++
++state 75:
++
++	basbinds'' : AND . basbinds 
++
++	ID	shift 23
++
++	basbinds	goto 78
++	basid	goto 34
++	id	goto 27
++
++	.	error
++
++
++state 76:
++
++	basexpnode : LET basdecs . IN basexp END 
++
++	IN	shift 79
++
++
++	.	error
++
++
++state 77:
++
++	basexpnode : BAS basdecs . END 
++
++	END	shift 80
++
++
++	.	error
++
++
++state 78:
++
++	basbinds'' : AND basbinds .  (reduce by rule 34)
++
++
++
++	.	reduce by rule 34
++
++
++state 79:
++
++	basexpnode : LET basdecs IN . basexp END 
++
++	ID	shift 23
++	BAS	shift 68
++	LET	shift 67
++
++	basexp	goto 81
++	basexpnode	goto 64
++	basid	goto 63
++	id	goto 27
++
++	.	error
++
++
++state 80:
++
++	basexpnode : BAS basdecs END .  (reduce by rule 36)
++
++
++
++	.	reduce by rule 36
++
++
++state 81:
++
++	basexpnode : LET basdecs IN basexp . END 
++
++	END	shift 82
++
++
++	.	error
++
++
++state 82:
++
++	basexpnode : LET basdecs IN basexp END .  (reduce by rule 38)
++
++
++
++	.	reduce by rule 38
++
++
++state 83:
++
++
++	EOF	accept
++
++
++	.	error
++
++37 of 212 action table entries left after compaction
++93 goto table entries
+diff -urN mlton-20100608~/mlton/front-end/mlb.grm.sig mlton-20100608/mlton/front-end/mlb.grm.sig
+--- mlton-20100608~/mlton/front-end/mlb.grm.sig	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/mlb.grm.sig	2013-04-22 09:58:08.026218548 -0400
+@@ -0,0 +1,32 @@
++signature MLB_TOKENS =
++sig
++type ('a,'b) token
++type svalue
++val STRING: (string) *  'a * 'a -> (svalue,'a) token
++val FILE: (string) *  'a * 'a -> (svalue,'a) token
++val PRIM:  'a * 'a -> (svalue,'a) token
++val ANN:  'a * 'a -> (svalue,'a) token
++val STRUCTURE:  'a * 'a -> (svalue,'a) token
++val SIGNATURE:  'a * 'a -> (svalue,'a) token
++val OPEN:  'a * 'a -> (svalue,'a) token
++val LOCAL:  'a * 'a -> (svalue,'a) token
++val LET:  'a * 'a -> (svalue,'a) token
++val IN:  'a * 'a -> (svalue,'a) token
++val FUNCTOR:  'a * 'a -> (svalue,'a) token
++val EQUALOP:  'a * 'a -> (svalue,'a) token
++val END:  'a * 'a -> (svalue,'a) token
++val BASIS:  'a * 'a -> (svalue,'a) token
++val BAS:  'a * 'a -> (svalue,'a) token
++val AND:  'a * 'a -> (svalue,'a) token
++val EOF:  'a * 'a -> (svalue,'a) token
++val SEMICOLON:  'a * 'a -> (svalue,'a) token
++val COMMA:  'a * 'a -> (svalue,'a) token
++val ID: (string) *  'a * 'a -> (svalue,'a) token
++end
++signature MLB_LRVALS=
++sig
++structure Tokens : MLB_TOKENS
++structure ParserData:PARSER_DATA
++sharing type ParserData.Token.token = Tokens.token
++sharing type ParserData.svalue = Tokens.svalue
++end
+diff -urN mlton-20100608~/mlton/front-end/mlb.grm.sml mlton-20100608/mlton/front-end/mlb.grm.sml
+--- mlton-20100608~/mlton/front-end/mlb.grm.sml	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/mlb.grm.sml	2013-04-22 09:58:08.026218548 -0400
+@@ -0,0 +1,721 @@
++functor MLBLrValsFun (structure Token: TOKEN
++                               structure Ast: AST
++                               val lexAndParseProgOrMLB: File.t * Region.t ->
++                                                         Ast.Basdec.node) = 
++struct
++structure ParserData=
++struct
++structure Header = 
++struct
++(*#line 1.2 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)(* Copyright (C) 2009 Matthew Fluet.
++ * Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
++ *    Jagannathan, and Stephen Weeks.
++ * Copyright (C) 1997-2000 NEC Research Institute.
++ *
++ * MLton is released under a BSD-style license.
++ * See the file MLton-LICENSE for details.
++ *)
++
++fun reg (left, right) = Region.make {left = left, right = right}
++fun error (reg, msg) = Control.error (reg, Layout.str msg, Layout.empty)
++
++open Ast
++
++type fctbinds = {lhs: Fctid.t, rhs: Fctid.t} list
++type sigbinds = {lhs: Sigid.t, rhs: Sigid.t} list
++type strbinds = {lhs: Strid.t, rhs: Strid.t} list
++
++type basbinds = {name: Basid.t, def: Basexp.t} list
++
++  
++(*#line 31.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++end
++structure LrTable = Token.LrTable
++structure Token = Token
++local open LrTable in 
++val table=let val actionRows =
++"\
++\\001\000\001\000\025\000\000\000\
++\\001\000\001\000\025\000\006\000\070\000\012\000\069\000\000\000\
++\\001\000\004\000\000\000\000\000\
++\\001\000\008\000\071\000\000\000\
++\\001\000\008\000\074\000\000\000\
++\\001\000\008\000\082\000\000\000\
++\\001\000\008\000\084\000\000\000\
++\\001\000\009\000\053\000\000\000\
++\\001\000\011\000\039\000\000\000\
++\\001\000\011\000\049\000\000\000\
++\\001\000\011\000\081\000\000\000\
++\\001\000\020\000\021\000\000\000\
++\\086\000\000\000\
++\\087\000\000\000\
++\\088\000\003\000\017\000\007\000\016\000\010\000\015\000\013\000\014\000\
++\\014\000\013\000\015\000\012\000\016\000\011\000\017\000\010\000\
++\\018\000\009\000\019\000\008\000\020\000\007\000\000\000\
++\\089\000\000\000\
++\\090\000\000\000\
++\\091\000\000\000\
++\\092\000\000\000\
++\\093\000\000\000\
++\\094\000\000\000\
++\\095\000\000\000\
++\\096\000\000\000\
++\\097\000\000\000\
++\\098\000\000\000\
++\\099\000\000\000\
++\\100\000\000\000\
++\\101\000\000\000\
++\\102\000\000\000\
++\\103\000\000\000\
++\\104\000\000\000\
++\\105\000\005\000\052\000\000\000\
++\\105\000\005\000\052\000\009\000\051\000\000\000\
++\\106\000\000\000\
++\\107\000\000\000\
++\\108\000\000\000\
++\\109\000\000\000\
++\\110\000\005\000\047\000\000\000\
++\\110\000\005\000\047\000\009\000\046\000\000\000\
++\\111\000\000\000\
++\\112\000\000\000\
++\\113\000\000\000\
++\\114\000\000\000\
++\\115\000\005\000\044\000\000\000\
++\\115\000\005\000\044\000\009\000\043\000\000\000\
++\\116\000\000\000\
++\\117\000\000\000\
++\\118\000\000\000\
++\\119\000\005\000\077\000\000\000\
++\\120\000\000\000\
++\\121\000\000\000\
++\\122\000\000\000\
++\\123\000\000\000\
++\\124\000\000\000\
++\\125\000\000\000\
++\\126\000\001\000\025\000\000\000\
++\\127\000\000\000\
++\\128\000\000\000\
++\\129\000\000\000\
++\\130\000\000\000\
++\\131\000\000\000\
++\\132\000\000\000\
++\\133\000\000\000\
++\\134\000\020\000\021\000\000\000\
++\\135\000\000\000\
++\"
++val actionRowNumbers =
++"\014\000\013\000\012\000\017\000\
++\\014\000\025\000\024\000\026\000\
++\\011\000\000\000\000\000\000\000\
++\\014\000\000\000\000\000\014\000\
++\\016\000\008\000\063\000\061\000\
++\\044\000\020\000\059\000\060\000\
++\\038\000\019\000\058\000\054\000\
++\\023\000\055\000\009\000\057\000\
++\\032\000\018\000\007\000\021\000\
++\\015\000\014\000\062\000\064\000\
++\\041\000\000\000\000\000\035\000\
++\\000\000\000\000\056\000\014\000\
++\\029\000\000\000\000\000\001\000\
++\\003\000\043\000\040\000\045\000\
++\\037\000\034\000\039\000\004\000\
++\\031\000\028\000\033\000\052\000\
++\\050\000\048\000\046\000\014\000\
++\\014\000\027\000\042\000\036\000\
++\\022\000\030\000\047\000\000\000\
++\\010\000\005\000\049\000\001\000\
++\\051\000\006\000\053\000\002\000"
++val gotoT =
++"\
++\\007\000\004\000\008\000\003\000\009\000\002\000\010\000\001\000\
++\\020\000\083\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\007\000\004\000\008\000\003\000\009\000\016\000\010\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\001\000\018\000\002\000\017\000\000\000\
++\\019\000\022\000\025\000\021\000\028\000\020\000\000\000\
++\\019\000\026\000\021\000\025\000\024\000\024\000\000\000\
++\\013\000\029\000\014\000\028\000\019\000\027\000\000\000\
++\\007\000\004\000\008\000\003\000\009\000\030\000\010\000\001\000\000\000\
++\\015\000\033\000\018\000\032\000\019\000\031\000\000\000\
++\\004\000\035\000\013\000\034\000\019\000\027\000\000\000\
++\\007\000\004\000\008\000\003\000\009\000\036\000\010\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\001\000\018\000\002\000\039\000\003\000\038\000\000\000\
++\\000\000\
++\\027\000\040\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\023\000\043\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\013\000\029\000\014\000\046\000\019\000\027\000\000\000\
++\\000\000\
++\\000\000\
++\\017\000\048\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\007\000\004\000\008\000\003\000\009\000\052\000\010\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\019\000\022\000\026\000\054\000\028\000\053\000\000\000\
++\\019\000\022\000\025\000\055\000\028\000\020\000\000\000\
++\\000\000\
++\\019\000\026\000\022\000\057\000\024\000\056\000\000\000\
++\\019\000\026\000\021\000\058\000\024\000\024\000\000\000\
++\\000\000\
++\\007\000\004\000\008\000\003\000\009\000\059\000\010\000\001\000\000\000\
++\\000\000\
++\\016\000\061\000\018\000\060\000\019\000\031\000\000\000\
++\\015\000\062\000\018\000\032\000\019\000\031\000\000\000\
++\\005\000\066\000\011\000\065\000\012\000\064\000\013\000\063\000\
++\\019\000\027\000\000\000\
++\\000\000\
++\\027\000\070\000\000\000\
++\\000\000\
++\\000\000\
++\\023\000\071\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\017\000\073\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\006\000\074\000\000\000\
++\\000\000\
++\\007\000\004\000\008\000\003\000\009\000\076\000\010\000\001\000\000\000\
++\\007\000\004\000\008\000\003\000\009\000\077\000\010\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\004\000\078\000\013\000\034\000\019\000\027\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\011\000\081\000\012\000\064\000\013\000\063\000\019\000\027\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\"
++val numstates = 84
++val numrules = 50
++val s = ref "" and index = ref 0
++val string_to_int = fn () => 
++let val i = !index
++in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
++end
++val string_to_list = fn s' =>
++    let val len = String.size s'
++        fun f () =
++           if !index < len then string_to_int() :: f()
++           else nil
++   in index := 0; s := s'; f ()
++   end
++val string_to_pairlist = fn (conv_key,conv_entry) =>
++     let fun f () =
++         case string_to_int()
++         of 0 => EMPTY
++          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
++     in f
++     end
++val string_to_pairlist_default = fn (conv_key,conv_entry) =>
++    let val conv_row = string_to_pairlist(conv_key,conv_entry)
++    in fn () =>
++       let val default = conv_entry(string_to_int())
++           val row = conv_row()
++       in (row,default)
++       end
++   end
++val string_to_table = fn (convert_row,s') =>
++    let val len = String.size s'
++        fun f ()=
++           if !index < len then convert_row() :: f()
++           else nil
++     in (s := s'; index := 0; f ())
++     end
++local
++  val memo = Array.array(numstates+numrules,ERROR)
++  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
++       fun f i =
++            if i=numstates then g i
++            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
++          in f 0 handle Subscript => ()
++          end
++in
++val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
++end
++val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
++val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
++val actionRowNumbers = string_to_list actionRowNumbers
++val actionT = let val actionRowLookUp=
++let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
++in Array.fromList(map actionRowLookUp actionRowNumbers)
++end
++in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
++numStates=numstates,initialState=STATE 0}
++end
++end
++local open Header in
++type pos = SourcePos.t
++type arg = unit
++structure MlyValue = 
++struct
++datatype svalue = VOID | ntVOID of unit ->  unit | STRING of unit ->  (string) | FILE of unit ->  (string) | ID of unit ->  (string) | strid of unit ->  (Strid.t) | strbinds'' of unit ->  (strbinds) | strbinds' of unit ->  (Strid.t*strbinds) | strbinds of unit ->  (strbinds) | sigid of unit ->  (Sigid.t) | sigbinds'' of unit ->  (sigbinds) | sigbinds' of unit ->  (Sigid.t*sigbinds) | sigbinds of unit ->  (sigbinds) | mlb of unit ->  (Basdec.t) | id of unit ->  (Symbol.t*Region.t) | fctid of unit ->  (Fctid.t) | fctbinds'' of unit ->  (fctbinds) | fctbinds' of unit ->  (Fctid.t*fctbinds) | fctbinds of unit ->  (fctbinds) | basids of unit ->  (Basid.t list) | basid of unit ->  (Basid.t) | basexpnode of unit ->  (Basexp.node) | basexp of unit ->  (Basexp.t) | basdecsnode of unit ->  (Basdec.node) | basdecs of unit ->  (Basdec.t) | basdecnode of unit ->  (Basdec.node) | basdec of unit ->  (Basdec.t) | basbinds'' of unit ->  (basbinds) | basbinds' of unit ->  (Basexp.t*basbinds)
  | basbinds of unit ->  (basbinds) | annStar of unit ->  ( ( string * Region.t )  list) | annPlus of unit ->  ( ( string * Region.t )  list) | ann of unit ->  (string*Region.t)
++end
++type svalue = MlyValue.svalue
++type result = Basdec.t
++end
++structure EC=
++struct
++open LrTable
++infix 5 $$
++fun x $$ y = y::x
++val is_keyword =
++fn (T 4) => true | (T 5) => true | (T 6) => true | (T 7) => true | (T 9) => true | (T 10) => true | (T 11) => true | (T 12) => true | (T 13) => true | (T 14) => true | (T 15) => true | (T 16) => true | (T 17) => true | _ => false
++val preferred_change : (term list * term list) list = 
++(nil
++,nil
++ $$ (T 2))::
++(nil
++,nil
++ $$ (T 7) $$ (T 0) $$ (T 10))::
++nil
++val noShift = 
++fn (T 3) => true | _ => false
++val showTerminal =
++fn (T 0) => "ID"
++  | (T 1) => "COMMA"
++  | (T 2) => "SEMICOLON"
++  | (T 3) => "EOF"
++  | (T 4) => "AND"
++  | (T 5) => "BAS"
++  | (T 6) => "BASIS"
++  | (T 7) => "END"
++  | (T 8) => "EQUALOP"
++  | (T 9) => "FUNCTOR"
++  | (T 10) => "IN"
++  | (T 11) => "LET"
++  | (T 12) => "LOCAL"
++  | (T 13) => "OPEN"
++  | (T 14) => "SIGNATURE"
++  | (T 15) => "STRUCTURE"
++  | (T 16) => "ANN"
++  | (T 17) => "PRIM"
++  | (T 18) => "FILE"
++  | (T 19) => "STRING"
++  | _ => "bogus-term"
++local open Header in
++val errtermvalue=
++fn (T 0) => MlyValue.ID(fn () => ("bogus")) | 
++_ => MlyValue.VOID
++end
++val terms : term list = nil
++ $$ (T 17) $$ (T 16) $$ (T 15) $$ (T 14) $$ (T 13) $$ (T 12) $$ (T 11) $$ (T 10) $$ (T 9) $$ (T 8) $$ (T 7) $$ (T 6) $$ (T 5) $$ (T 4) $$ (T 3) $$ (T 2) $$ (T 1)end
++structure Actions =
++struct 
++exception mlyAction of int
++local open Header in
++val actions = 
++fn (i392,defaultPos,stack,
++    (()):arg) =>
++case (i392,stack)
++of  ( 0, ( ( _, ( MlyValue.basdecs basdecs1, basdecs1left, basdecs1right)) :: rest671)) => let val  result = MlyValue.mlb (fn _ => let val  (basdecs as basdecs1) = basdecs1 ()
++ in ((*#line 80.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)basdecs(*#line 339.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 19, ( result, basdecs1left, basdecs1right), rest671)
++end
++|  ( 1, ( ( _, ( MlyValue.basdecsnode basdecsnode1, (basdecsnodeleft as basdecsnode1left), (basdecsnoderight as basdecsnode1right))) :: rest671)) => let val  result = MlyValue.basdecs (fn _ => let val  (basdecsnode as basdecsnode1) = basdecsnode1 ()
++ in ((*#line 83.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.makeRegion' 
++                       (basdecsnode, basdecsnodeleft, basdecsnoderight)(*#line 345.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 8, ( result, basdecsnode1left, basdecsnode1right), rest671)
++end
++|  ( 2, ( rest671)) => let val  result = MlyValue.basdecsnode (fn _ => ((*#line 86.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.Seq [](*#line 352.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++))
++ in ( LrTable.NT 9, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 3, ( ( _, ( MlyValue.basdecs basdecs1, _, basdecs1right)) :: ( _, ( _, SEMICOLON1left, _)) :: rest671)) => let val  result = MlyValue.basdecsnode (fn _ => let val  (basdecs as basdecs1) = basdecs1 ()
++ in ((*#line 87.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.Seq [basdecs](*#line 356.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 9, ( result, SEMICOLON1left, basdecs1right), rest671)
++end
++|  ( 4, ( ( _, ( MlyValue.basdecs basdecs1, _, basdecs1right)) :: ( _, ( MlyValue.basdec basdec1, basdec1left, _)) :: rest671)) => let val  result = MlyValue.basdecsnode (fn _ => let val  (basdec as basdec1) = basdec1 ()
++ val  (basdecs as basdecs1) = basdecs1 ()
++ in ((*#line 88.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.Seq [basdec, basdecs](*#line 362.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 9, ( result, basdec1left, basdecs1right), rest671)
++end
++|  ( 5, ( ( _, ( MlyValue.basdecnode basdecnode1, (basdecnodeleft as basdecnode1left), (basdecnoderight as basdecnode1right))) :: rest671)) => let val  result = MlyValue.basdec (fn _ => let val  (basdecnode as basdecnode1) = basdecnode1 ()
++ in ((*#line 90.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.makeRegion'
++                     (basdecnode, basdecnodeleft, basdecnoderight)(*#line 369.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 6, ( result, basdecnode1left, basdecnode1right), rest671)
++end
++|  ( 6, ( ( _, ( MlyValue.fctbinds fctbinds1, _, (fctbindsright as fctbinds1right))) :: ( _, ( _, (FUNCTORleft as FUNCTOR1left), _)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (fctbinds as fctbinds1) = fctbinds1 ()
++ in ((*#line 95.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let 
++         val fctbinds = Vector.fromList fctbinds
++      in 
++         Basdec.Defs (ModIdBind.makeRegion' (ModIdBind.Fct fctbinds, FUNCTORleft, fctbindsright))
++      end(*#line 376.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, FUNCTOR1left, fctbinds1right), rest671)
++end
++|  ( 7, ( ( _, ( MlyValue.sigbinds sigbinds1, _, (sigbindsright as sigbinds1right))) :: ( _, ( _, (SIGNATUREleft as SIGNATURE1left), _)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (sigbinds as sigbinds1) = sigbinds1 ()
++ in ((*#line 101.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let
++         val sigbinds = Vector.fromList sigbinds
++      in
++         Basdec.Defs (ModIdBind.makeRegion' (ModIdBind.Sig sigbinds, SIGNATUREleft, sigbindsright))
++      end(*#line 386.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, SIGNATURE1left, sigbinds1right), rest671)
++end
++|  ( 8, ( ( _, ( MlyValue.strbinds strbinds1, _, (strbindsright as strbinds1right))) :: ( _, ( _, (STRUCTUREleft as STRUCTURE1left), _)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (strbinds as strbinds1) = strbinds1 ()
++ in ((*#line 107.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let
++         val strbinds = Vector.fromList strbinds
++      in
++         Basdec.Defs (ModIdBind.makeRegion' (ModIdBind.Str strbinds, STRUCTUREleft, strbindsright))
++      end(*#line 396.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, STRUCTURE1left, strbinds1right), rest671)
++end
++|  ( 9, ( ( _, ( MlyValue.basbinds basbinds1, _, basbinds1right)) :: ( _, ( _, BASIS1left, _)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (basbinds as basbinds1) = basbinds1 ()
++ in ((*#line 113.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let
++         val basbinds = Vector.fromList basbinds
++      in
++         Basdec.Basis basbinds
++      end(*#line 406.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, BASIS1left, basbinds1right), rest671)
++end
++|  ( 10, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basdecs basdecs2, _, _)) :: _ :: ( _, ( MlyValue.basdecs basdecs1, _, _)) :: ( _, ( _, LOCAL1left, _)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  basdecs1 = basdecs1 ()
++ val  basdecs2 = basdecs2 ()
++ in ((*#line 118.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.Local (basdecs1, basdecs2)(*#line 416.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, LOCAL1left, END1right), rest671)
++end
++|  ( 11, ( ( _, ( MlyValue.basids basids1, _, basids1right)) :: ( _, ( _, OPEN1left, _)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (basids as basids1) = basids1 ()
++ in ((*#line 119.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.Open (Vector.fromList basids)(*#line 423.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, OPEN1left, basids1right), rest671)
++end
++|  ( 12, ( ( _, ( MlyValue.FILE FILE1, (FILEleft as FILE1left), (FILEright as FILE1right))) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (FILE as FILE1) = FILE1 ()
++ in ((*#line 121.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let val reg = reg (FILEleft, FILEright)
++      in lexAndParseProgOrMLB (FILE, reg)
++      end(*#line 429.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, FILE1left, FILE1right), rest671)
++end
++|  ( 13, ( ( _, ( MlyValue.STRING STRING1, (STRINGleft as STRING1left), (STRINGright as STRING1right))) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (STRING as STRING1) = STRING1 ()
++ in ((*#line 125.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let val reg = reg (STRINGleft, STRINGright)
++      in lexAndParseProgOrMLB (STRING, reg)
++      end(*#line 437.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, STRING1left, STRING1right), rest671)
++end
++|  ( 14, ( ( _, ( _, PRIM1left, PRIM1right)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => ((*#line 128.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basdec.Prim(*#line 445.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++))
++ in ( LrTable.NT 7, ( result, PRIM1left, PRIM1right), rest671)
++end
++|  ( 15, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basdecs basdecs1, _, _)) :: _ :: ( _, ( MlyValue.annPlus annPlus1, _, _)) :: ( _, ( _, ANN1left, _)) :: rest671)) => let val  result = MlyValue.basdecnode (fn _ => let val  (annPlus as annPlus1) = annPlus1 ()
++ val  (basdecs as basdecs1) = basdecs1 ()
++ in ((*#line 130.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let 
++        val extendRight = 
++          let val right = valOf (Region.right (Basdec.region basdecs))
++          in fn reg => Region.extendRight (reg, right)
++          end
++        fun mkAnn' ((ann,reg), basdecs) = Basdec.Ann (ann, reg, basdecs)
++        fun mkAnn ((ann,reg), basdecsnode) : Basdec.node =
++          mkAnn' ((ann,reg), Basdec.makeRegion (basdecsnode, extendRight reg))
++        val (anns,ann) = List.splitLast annPlus
++      in
++        List.fold(anns, mkAnn'(ann, basdecs), mkAnn)
++      end(*#line 449.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, ANN1left, END1right), rest671)
++end
++|  ( 16, ( ( _, ( MlyValue.fctbinds' fctbinds'1, _, fctbinds'1right)) :: _ :: ( _, ( MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => let val  result = MlyValue.fctbinds (fn _ => let val  (fctid as fctid1) = fctid1 ()
++ val  (fctbinds' as fctbinds'1) = fctbinds'1 ()
++ in ((*#line 145.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let val (def, fctbinds) = fctbinds'
++            in {lhs = fctid, rhs = def}
++               :: fctbinds
++            end(*#line 467.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 14, ( result, fctid1left, fctbinds'1right), rest671)
++end
++|  ( 17, ( ( _, ( MlyValue.fctbinds'' fctbinds''1, _, fctbinds''1right)) :: ( _, ( MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => let val  result = MlyValue.fctbinds (fn _ => let val  (fctid as fctid1) = fctid1 ()
++ val  (fctbinds'' as fctbinds''1) = fctbinds''1 ()
++ in ((*#line 150.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*){lhs = fctid, rhs = fctid} :: fctbinds''(*#line 477.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 14, ( result, fctid1left, fctbinds''1right), rest671)
++end
++|  ( 18, ( ( _, ( MlyValue.fctbinds'' fctbinds''1, _, fctbinds''1right)) :: ( _, ( MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => let val  result = MlyValue.fctbinds' (fn _ => let val  (fctid as fctid1) = fctid1 ()
++ val  (fctbinds'' as fctbinds''1) = fctbinds''1 ()
++ in ((*#line 152.32 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)fctid, fctbinds''(*#line 484.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 15, ( result, fctid1left, fctbinds''1right), rest671)
++end
++|  ( 19, ( rest671)) => let val  result = MlyValue.fctbinds'' (fn _ => ((*#line 154.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)[](*#line 491.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++))
++ in ( LrTable.NT 16, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 20, ( ( _, ( MlyValue.fctbinds fctbinds1, _, fctbinds1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.fctbinds'' (fn _ => let val  (fctbinds as fctbinds1) = fctbinds1 ()
++ in ((*#line 155.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)fctbinds(*#line 495.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, AND1left, fctbinds1right), rest671)
++end
++|  ( 21, ( ( _, ( MlyValue.sigbinds' sigbinds'1, _, sigbinds'1right)) :: _ :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ val  (sigbinds' as sigbinds'1) = sigbinds'1 ()
++ in ((*#line 158.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let val (def, sigbinds) = sigbinds'
++            in {lhs = sigid, rhs = def}
++               :: sigbinds
++            end(*#line 501.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 20, ( result, sigid1left, sigbinds'1right), rest671)
++end
++|  ( 22, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right)) :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ val  (sigbinds'' as sigbinds''1) = sigbinds''1 ()
++ in ((*#line 163.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*){lhs = sigid, rhs = sigid} :: sigbinds''(*#line 511.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 20, ( result, sigid1left, sigbinds''1right), rest671)
++end
++|  ( 23, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right)) :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds' (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ val  (sigbinds'' as sigbinds''1) = sigbinds''1 ()
++ in ((*#line 165.32 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)sigid, sigbinds''(*#line 518.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 21, ( result, sigid1left, sigbinds''1right), rest671)
++end
++|  ( 24, ( rest671)) => let val  result = MlyValue.sigbinds'' (fn _ => ((*#line 167.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)[](*#line 525.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++))
++ in ( LrTable.NT 22, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 25, ( ( _, ( MlyValue.sigbinds sigbinds1, _, sigbinds1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds'' (fn _ => let val  (sigbinds as sigbinds1) = sigbinds1 ()
++ in ((*#line 168.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)sigbinds(*#line 529.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 22, ( result, AND1left, sigbinds1right), rest671)
++end
++|  ( 26, ( ( _, ( MlyValue.strbinds' strbinds'1, _, strbinds'1right)) :: _ :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val  result = MlyValue.strbinds (fn _ => let val  (strid as strid1) = strid1 ()
++ val  (strbinds' as strbinds'1) = strbinds'1 ()
++ in ((*#line 171.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let val (def, strbinds) = strbinds'
++            in {lhs = strid, rhs = def}
++               :: strbinds
++            end(*#line 535.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 24, ( result, strid1left, strbinds'1right), rest671)
++end
++|  ( 27, ( ( _, ( MlyValue.strbinds'' strbinds''1, _, strbinds''1right)) :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val  result = MlyValue.strbinds (fn _ => let val  (strid as strid1) = strid1 ()
++ val  (strbinds'' as strbinds''1) = strbinds''1 ()
++ in ((*#line 176.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*){lhs = strid, rhs = strid} :: strbinds''(*#line 545.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 24, ( result, strid1left, strbinds''1right), rest671)
++end
++|  ( 28, ( ( _, ( MlyValue.strbinds'' strbinds''1, _, strbinds''1right)) :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val  result = MlyValue.strbinds' (fn _ => let val  (strid as strid1) = strid1 ()
++ val  (strbinds'' as strbinds''1) = strbinds''1 ()
++ in ((*#line 178.32 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)strid, strbinds''(*#line 552.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 25, ( result, strid1left, strbinds''1right), rest671)
++end
++|  ( 29, ( rest671)) => let val  result = MlyValue.strbinds'' (fn _ => ((*#line 180.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)[](*#line 559.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++))
++ in ( LrTable.NT 26, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 30, ( ( _, ( MlyValue.strbinds strbinds1, _, strbinds1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.strbinds'' (fn _ => let val  (strbinds as strbinds1) = strbinds1 ()
++ in ((*#line 181.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)strbinds(*#line 563.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 26, ( result, AND1left, strbinds1right), rest671)
++end
++|  ( 31, ( ( _, ( MlyValue.basbinds' basbinds'1, _, basbinds'1right)) :: _ :: ( _, ( MlyValue.basid basid1, basid1left, _)) :: rest671)) => let val  result = MlyValue.basbinds (fn _ => let val  (basid as basid1) = basid1 ()
++ val  (basbinds' as basbinds'1) = basbinds'1 ()
++ in ((*#line 184.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)let val (def, basbinds) = basbinds'
++            in {name = basid, def = def}
++               :: basbinds
++            end(*#line 569.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 3, ( result, basid1left, basbinds'1right), rest671)
++end
++|  ( 32, ( ( _, ( MlyValue.basbinds'' basbinds''1, _, basbinds''1right)) :: ( _, ( MlyValue.basexp basexp1, basexp1left, _)) :: rest671)) => let val  result = MlyValue.basbinds' (fn _ => let val  (basexp as basexp1) = basexp1 ()
++ val  (basbinds'' as basbinds''1) = basbinds''1 ()
++ in ((*#line 189.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)basexp, basbinds''(*#line 579.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, basexp1left, basbinds''1right), rest671)
++end
++|  ( 33, ( rest671)) => let val  result = MlyValue.basbinds'' (fn _ => ((*#line 191.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)[](*#line 586.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++))
++ in ( LrTable.NT 5, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 34, ( ( _, ( MlyValue.basbinds basbinds1, _, basbinds1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.basbinds'' (fn _ => let val  (basbinds as basbinds1) = basbinds1 ()
++ in ((*#line 192.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)basbinds(*#line 590.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 5, ( result, AND1left, basbinds1right), rest671)
++end
++|  ( 35, ( ( _, ( MlyValue.basexpnode basexpnode1, (basexpnodeleft as basexpnode1left), (basexpnoderight as basexpnode1right))) :: rest671)) => let val  result = MlyValue.basexp (fn _ => let val  (basexpnode as basexpnode1) = basexpnode1 ()
++ in ((*#line 195.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basexp.makeRegion'
++                     (basexpnode, basexpnodeleft, basexpnoderight)(*#line 596.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 10, ( result, basexpnode1left, basexpnode1right), rest671)
++end
++|  ( 36, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basdecs basdecs1, _, _)) :: ( _, ( _, BAS1left, _)) :: rest671)) => let val  result = MlyValue.basexpnode (fn _ => let val  (basdecs as basdecs1) = basdecs1 ()
++ in ((*#line 198.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basexp.Bas basdecs(*#line 603.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 11, ( result, BAS1left, END1right), rest671)
++end
++|  ( 37, ( ( _, ( MlyValue.basid basid1, basid1left, basid1right)) :: rest671)) => let val  result = MlyValue.basexpnode (fn _ => let val  (basid as basid1) = basid1 ()
++ in ((*#line 199.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basexp.Var basid(*#line 609.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 11, ( result, basid1left, basid1right), rest671)
++end
++|  ( 38, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.basexp basexp1, _, _)) :: _ :: ( _, ( MlyValue.basdecs basdecs1, _, _)) :: ( _, ( _, LET1left, _)) :: rest671)) => let val  result = MlyValue.basexpnode (fn _ => let val  (basdecs as basdecs1) = basdecs1 ()
++ val  (basexp as basexp1) = basexp1 ()
++ in ((*#line 200.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basexp.Let (basdecs, basexp)(*#line 615.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 11, ( result, LET1left, END1right), rest671)
++end
++|  ( 39, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.basid (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 202.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Basid.fromSymbol id(*#line 622.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 12, ( result, id1left, id1right), rest671)
++end
++|  ( 40, ( ( _, ( MlyValue.basid basid1, basid1left, basid1right)) :: rest671)) => let val  result = MlyValue.basids (fn _ => let val  (basid as basid1) = basid1 ()
++ in ((*#line 203.17 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)[basid](*#line 628.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 13, ( result, basid1left, basid1right), rest671)
++end
++|  ( 41, ( ( _, ( MlyValue.basids basids1, _, basids1right)) :: ( _, ( MlyValue.basid basid1, basid1left, _)) :: rest671)) => let val  result = MlyValue.basids (fn _ => let val  (basid as basid1) = basid1 ()
++ val  (basids as basids1) = basids1 ()
++ in ((*#line 204.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)basid :: basids(*#line 634.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 13, ( result, basid1left, basids1right), rest671)
++end
++|  ( 42, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.fctid (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 205.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Fctid.fromSymbol id(*#line 641.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 17, ( result, id1left, id1right), rest671)
++end
++|  ( 43, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.sigid (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 206.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Sigid.fromSymbol id(*#line 647.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 23, ( result, id1left, id1right), rest671)
++end
++|  ( 44, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.strid (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 207.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Strid.fromSymbol id(*#line 653.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 27, ( result, id1left, id1right), rest671)
++end
++|  ( 45, ( ( _, ( MlyValue.ID ID1, (IDleft as ID1left), (IDright as ID1right))) :: rest671)) => let val  result = MlyValue.id (fn _ => let val  (ID as ID1) = ID1 ()
++ in ((*#line 208.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)Symbol.fromString ID, reg (IDleft, IDright)(*#line 659.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 18, ( result, ID1left, ID1right), rest671)
++end
++|  ( 46, ( ( _, ( MlyValue.STRING STRING1, (STRINGleft as STRING1left), (STRINGright as STRING1right))) :: rest671)) => let val  result = MlyValue.ann (fn _ => let val  (STRING as STRING1) = STRING1 ()
++ in ((*#line 211.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)STRING, reg (STRINGleft, STRINGright)(*#line 665.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, STRING1left, STRING1right), rest671)
++end
++|  ( 47, ( ( _, ( MlyValue.annStar annStar1, _, annStar1right)) :: ( _, ( MlyValue.ann ann1, ann1left, _)) :: rest671)) => let val  result = MlyValue.annPlus (fn _ => let val  (ann as ann1) = ann1 ()
++ val  (annStar as annStar1) = annStar1 ()
++ in ((*#line 213.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)ann::annStar(*#line 671.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, ann1left, annStar1right), rest671)
++end
++|  ( 48, ( rest671)) => let val  result = MlyValue.annStar (fn _ => ((*#line 215.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)[](*#line 678.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++))
++ in ( LrTable.NT 2, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 49, ( ( _, ( MlyValue.annPlus annPlus1, annPlus1left, annPlus1right)) :: rest671)) => let val  result = MlyValue.annStar (fn _ => let val  (annPlus as annPlus1) = annPlus1 ()
++ in ((*#line 216.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm"*)annPlus(*#line 682.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 2, ( result, annPlus1left, annPlus1right), rest671)
++end
++| _ => raise (mlyAction i392)
++end
++val void = MlyValue.VOID
++val extract = fn a => (fn MlyValue.mlb x => x
++| _ => let exception ParseInternal
++	in raise ParseInternal end) a ()
++end
++end
++structure Tokens : MLB_TOKENS =
++struct
++type svalue = ParserData.svalue
++type ('a,'b) token = ('a,'b) Token.token
++fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(ParserData.MlyValue.ID (fn () => i),p1,p2))
++fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(ParserData.MlyValue.VOID,p1,p2))
++fun SEMICOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(ParserData.MlyValue.VOID,p1,p2))
++fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(ParserData.MlyValue.VOID,p1,p2))
++fun AND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(ParserData.MlyValue.VOID,p1,p2))
++fun BAS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(ParserData.MlyValue.VOID,p1,p2))
++fun BASIS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(ParserData.MlyValue.VOID,p1,p2))
++fun END (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(ParserData.MlyValue.VOID,p1,p2))
++fun EQUALOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(ParserData.MlyValue.VOID,p1,p2))
++fun FUNCTOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(ParserData.MlyValue.VOID,p1,p2))
++fun IN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(ParserData.MlyValue.VOID,p1,p2))
++fun LET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(ParserData.MlyValue.VOID,p1,p2))
++fun LOCAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(ParserData.MlyValue.VOID,p1,p2))
++fun OPEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(ParserData.MlyValue.VOID,p1,p2))
++fun SIGNATURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(ParserData.MlyValue.VOID,p1,p2))
++fun STRUCTURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(ParserData.MlyValue.VOID,p1,p2))
++fun ANN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(ParserData.MlyValue.VOID,p1,p2))
++fun PRIM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(ParserData.MlyValue.VOID,p1,p2))
++fun FILE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(ParserData.MlyValue.FILE (fn () => i),p1,p2))
++fun STRING (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(ParserData.MlyValue.STRING (fn () => i),p1,p2))
++end
++end
+diff -urN mlton-20100608~/mlton/front-end/mlb.lex.sml mlton-20100608/mlton/front-end/mlb.lex.sml
+--- mlton-20100608~/mlton/front-end/mlb.lex.sml	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/mlb.lex.sml	2013-04-22 09:58:08.087219331 -0400
+@@ -0,0 +1,1679 @@
++(*#line 82.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)functor MLBLexFun (structure Tokens : MLB_TOKENS)(*#line 1.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++=
++   struct
++    structure UserDeclarations =
++      struct
++(*#line 1.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)(* Copyright (C) 2009 Matthew Fluet.
++ * Copyright (C) 2004-2006 Henry Cejtin, Matthew Fluet, Suresh
++ *    Jagannathan, and Stephen Weeks.
++ *
++ * MLton is released under a BSD-style license.
++ * See the file MLton-LICENSE for details.
++ *)
++
++type svalue = Tokens.svalue
++type pos = SourcePos.t
++type lexresult = (svalue, pos) Tokens.token
++type lexarg = {source: Source.t}
++type arg = lexarg
++type ('a,'b) token = ('a,'b) Tokens.token
++
++val charlist: string list ref = ref []
++val colNum: int ref = ref 0
++val commentLevel: int ref = ref 0
++val commentStart = ref SourcePos.bogus
++val lineFile: File.t ref = ref ""
++val lineNum: int ref = ref 0
++val stringStart = ref SourcePos.bogus
++
++fun lineDirective (source, file, yypos) =
++   Source.lineDirective (source, file,
++                         {lineNum = !lineNum,
++                          lineStart = yypos - !colNum})
++fun addString (s: string) = charlist := s :: (!charlist)
++fun addChar (c: char) = addString (String.fromChar c)
++
++fun inc (ri as ref (i: int)) = (ri := i + 1)
++fun dec (ri as ref (i: int)) = (ri := i-1)
++
++fun error (source, left, right, msg) = 
++   Control.errorStr (Region.make {left = Source.getPos (source, left),
++                                  right = Source.getPos (source, right)},
++                     msg)
++
++fun stringError (source, right, msg) =
++   Control.errorStr (Region.make {left = !stringStart,
++                                  right = Source.getPos (source, right)},
++                     msg)
++
++val eof: lexarg -> lexresult =
++   fn {source, ...} =>
++   let
++      val pos = Source.lineStart source
++      val _ =
++         if !commentLevel > 0
++            then Control.errorStr (Region.make {left = !commentStart,
++                                                right = pos},
++                                   "unclosed comment")
++         else ()
++   in
++      Tokens.EOF (pos, pos)
++   end
++
++val size = String.size
++
++fun tok (t, s, l, r) =
++   let
++      val l = Source.getPos (s, l)
++      val r = Source.getPos (s, r)
++      val _ =
++         if true
++            then ()
++         else
++            print (concat ["tok (",
++                           SourcePos.toString l,
++                           ", " ,
++                           SourcePos.toString r,
++                           ")\n"])
++   in
++      t (l, r)
++   end
++
++fun tok' (t, x, s, l) = tok (fn (l, r) => t (x, l, r), s, l, l + size x)
++
++(*#line 84.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++end (* end of user routines *)
++exception LexError (* raised if illegal leaf action tried *)
++structure Internal =
++	struct
++
++datatype yyfinstate = N of int
++type statedata = {fin : yyfinstate list, trans: string}
++(* transition & final state table *)
++val tab = let
++val s = [ 
++ (0, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (1, 
++"\017\017\017\017\017\017\017\017\017\109\112\017\109\111\017\017\
++\\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\017\
++\\109\017\108\017\107\017\017\017\099\017\017\017\098\017\097\087\
++\\086\086\086\086\086\086\086\086\086\086\017\085\017\084\017\017\
++\\017\018\018\018\018\018\018\018\018\018\018\018\018\018\018\018\
++\\018\018\018\018\018\018\018\018\018\018\018\017\017\017\017\079\
++\\017\075\070\018\018\067\060\018\018\058\018\018\051\018\018\047\
++\\018\018\018\030\018\018\018\018\018\018\018\017\017\017\017\017\
++\\017"
++),
++ (3, 
++"\113\113\113\113\113\113\113\113\113\113\118\113\113\113\113\113\
++\\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\
++\\113\113\113\113\113\113\113\113\116\113\114\113\113\113\113\113\
++\\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\
++\\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\
++\\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\
++\\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\
++\\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\113\
++\\113"
++),
++ (5, 
++"\119\119\119\119\119\119\119\119\119\119\147\119\119\146\119\119\
++\\119\119\119\119\119\119\119\119\119\119\119\119\119\119\119\119\
++\\120\120\145\120\120\120\120\120\120\120\120\120\120\120\120\120\
++\\120\120\120\120\120\120\120\120\120\120\120\120\120\120\120\120\
++\\120\120\120\120\120\120\120\120\120\120\120\120\120\120\120\120\
++\\120\120\120\120\120\120\120\120\120\120\120\120\121\120\120\120\
++\\120\120\120\120\120\120\120\120\120\120\120\120\120\120\120\120\
++\\120\120\120\120\120\120\120\120\120\120\120\120\120\120\120\119\
++\\119"
++),
++ (7, 
++"\148\148\148\148\148\148\148\148\148\150\153\148\150\152\148\148\
++\\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\
++\\150\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\
++\\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\
++\\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\
++\\148\148\148\148\148\148\148\148\148\148\148\148\149\148\148\148\
++\\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\
++\\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\148\
++\\148"
++),
++ (9, 
++"\154\154\154\154\154\154\154\154\154\154\000\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\157\154\154\154\154\154\
++\\155\155\155\155\155\155\155\155\155\155\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154"
++),
++ (11, 
++"\159\159\159\159\159\159\159\159\159\159\000\159\159\159\159\159\
++\\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\
++\\159\159\159\159\159\159\159\159\159\159\159\159\159\159\162\159\
++\\160\160\160\160\160\160\160\160\160\160\159\159\159\159\159\159\
++\\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\
++\\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\
++\\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\
++\\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\159\
++\\159"
++),
++ (13, 
++"\154\154\154\154\154\154\154\154\154\166\000\154\166\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\166\154\165\154\154\154\154\154\154\154\163\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\154\
++\\154"
++),
++ (15, 
++"\169\169\169\169\169\169\169\169\169\169\170\169\169\169\169\169\
++\\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\
++\\169\169\173\169\169\169\169\169\169\169\171\169\169\169\169\169\
++\\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\
++\\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\
++\\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\
++\\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\
++\\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\169\
++\\169"
++),
++ (18, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (20, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\026\000\000\000\000\000\000\000\000\000\025\000\
++\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
++\\000"
++),
++ (21, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\000\000\000\000\000\000\021\021\020\
++\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
++\\000"
++),
++ (22, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (23, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\024\024\024\024\024\024\024\024\024\024\024\024\024\024\024\
++\\024\024\024\024\024\024\024\024\024\024\024\000\000\000\000\024\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (24, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\
++\\024\024\024\024\024\024\024\024\024\024\000\000\000\000\000\000\
++\\000\024\024\024\024\024\024\024\024\024\024\024\024\024\024\024\
++\\024\024\024\024\024\024\024\024\024\024\024\000\000\000\000\024\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (26, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\027\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (27, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (28, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\
++\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (29, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\029\000\000\000\000\000\000\000\000\
++\\029\029\029\029\029\029\029\029\029\029\000\000\000\000\000\000\
++\\000\029\029\029\029\029\029\029\029\029\029\029\029\029\029\029\
++\\029\029\029\029\029\029\029\029\029\029\029\000\000\000\000\029\
++\\000\029\029\029\029\029\029\029\029\029\029\029\029\029\029\029\
++\\029\029\029\029\029\029\029\029\029\029\029\000\000\000\000\000\
++\\000"
++),
++ (30, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\039\019\019\019\019\019\019\
++\\019\019\019\019\031\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (31, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\032\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (32, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\033\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (33, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\034\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (34, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\035\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (35, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\036\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (36, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\037\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (37, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\038\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (39, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\040\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (40, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\041\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (41, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\042\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (42, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\043\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (43, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\044\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (44, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\045\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (45, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\046\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (47, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\048\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (48, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\049\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (49, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\050\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (51, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\056\019\019\019\019\019\019\019\019\019\052\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (52, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\053\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (53, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\054\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (54, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\055\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (56, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\057\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (58, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\059\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (60, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\061\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (61, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\062\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (62, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\063\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (63, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\064\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (64, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\065\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (65, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\066\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (67, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\068\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (68, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\069\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (70, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\071\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (71, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\072\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (72, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\073\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (73, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\074\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (75, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\076\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (76, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\029\000\000\000\000\000\021\021\020\
++\\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\000\
++\\000\019\019\019\019\019\019\019\019\019\019\019\019\019\019\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\019\
++\\000\019\019\019\078\019\019\019\019\019\019\019\019\019\077\019\
++\\019\019\019\019\019\019\019\019\019\019\019\000\000\000\000\000\
++\\000"
++),
++ (79, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\000\000\000\000\000\000\021\021\020\
++\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\080\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
++\\000"
++),
++ (80, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\000\000\000\000\000\000\021\021\020\
++\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\081\021\021\021\021\021\021\021\021\000\000\000\000\000\
++\\000"
++),
++ (81, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\000\000\000\000\000\000\021\021\020\
++\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
++\\000\021\021\021\021\021\021\021\021\082\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
++\\000"
++),
++ (82, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\022\000\000\000\000\000\000\000\000\021\021\020\
++\\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\000\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\021\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\021\
++\\000\021\021\021\021\021\021\021\021\021\021\021\021\083\021\021\
++\\021\021\021\021\021\021\021\021\021\021\021\000\000\000\000\000\
++\\000"
++),
++ (87, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\094\000\000\000\000\000\000\000\000\000\090\000\
++\\088\088\088\088\088\088\088\088\088\088\000\000\000\000\000\000\
++\\000\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
++\\088\088\088\088\088\088\088\088\088\088\088\000\000\000\000\088\
++\\000\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
++\\088\088\088\088\088\088\088\088\088\088\088\000\000\000\000\000\
++\\000"
++),
++ (88, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\091\000\000\000\000\000\000\000\000\088\088\089\
++\\088\088\088\088\088\088\088\088\088\088\000\000\000\000\000\000\
++\\000\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
++\\088\088\088\088\088\088\088\088\088\088\088\000\000\000\000\088\
++\\000\088\088\088\088\088\088\088\088\088\088\088\088\088\088\088\
++\\088\088\088\088\088\088\088\088\088\088\088\000\000\000\000\000\
++\\000"
++),
++ (91, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\092\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (92, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
++\\093\093\093\093\093\093\093\093\093\093\093\000\000\000\000\093\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (93, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\088\000\000\000\000\000\000\
++\\093\093\093\093\093\093\093\093\093\093\000\000\000\000\000\000\
++\\000\093\093\093\093\093\093\093\093\093\093\093\093\093\093\093\
++\\093\093\093\093\093\093\093\093\093\093\093\000\000\000\000\093\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (94, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\095\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (95, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\000\000\000\000\096\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (96, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\088\000\000\000\000\000\000\
++\\096\096\096\096\096\096\096\096\096\096\000\000\000\000\000\000\
++\\000\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\000\000\000\000\096\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (99, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (100, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\101\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (101, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\102\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (102, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\103\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (103, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\104\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (104, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\105\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (105, 
++"\000\000\000\000\000\000\000\000\000\106\000\000\106\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\106\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (109, 
++"\000\000\000\000\000\000\000\000\000\110\000\000\110\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\110\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (111, 
++"\000\000\000\000\000\000\000\000\000\000\112\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (114, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\115\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (116, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\117\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (121, 
++"\000\000\000\000\000\000\000\000\000\142\144\000\142\143\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\142\000\141\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\138\138\138\138\138\138\138\138\138\138\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\137\000\134\000\
++\\000\133\132\000\000\000\131\000\000\000\000\000\000\000\130\000\
++\\000\000\129\000\128\123\122\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (123, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\124\124\124\124\124\124\124\124\124\124\000\000\000\000\000\000\
++\\000\124\124\124\124\124\124\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\124\124\124\124\124\124\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (124, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\125\125\125\125\125\125\125\125\125\125\000\000\000\000\000\000\
++\\000\125\125\125\125\125\125\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\125\125\125\125\125\125\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (125, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\126\126\126\126\126\126\126\126\126\126\000\000\000\000\000\000\
++\\000\126\126\126\126\126\126\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\126\126\126\126\126\126\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (126, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\127\127\127\127\127\127\127\127\127\127\000\000\000\000\000\000\
++\\000\127\127\127\127\127\127\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\127\127\127\127\127\127\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (134, 
++"\135\135\135\135\135\135\135\135\135\135\000\135\135\135\135\135\
++\\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\
++\\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\
++\\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\
++\\136\136\136\136\136\136\136\136\136\136\136\136\136\136\136\136\
++\\136\136\136\136\136\136\136\136\136\136\136\136\136\136\136\136\
++\\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\
++\\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\
++\\135"
++),
++ (138, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\139\139\139\139\139\139\139\139\139\139\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (139, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\140\140\140\140\140\140\140\140\140\140\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (142, 
++"\000\000\000\000\000\000\000\000\000\142\000\000\142\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (143, 
++"\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (146, 
++"\000\000\000\000\000\000\000\000\000\000\147\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (150, 
++"\000\000\000\000\000\000\000\000\000\151\000\000\151\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (152, 
++"\000\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (155, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\156\156\156\156\156\156\156\156\156\156\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (157, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\158\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (160, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\161\161\161\161\161\161\161\161\161\161\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (163, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\164\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (166, 
++"\000\000\000\000\000\000\000\000\000\168\000\000\168\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\168\000\167\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (169, 
++"\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\000\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170"
++),
++ (171, 
++"\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\000\170\170\170\170\170\170\172\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\170\
++\\170"
++),
++ (173, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\174\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (174, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\175\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++(0, "")]
++fun f x = x 
++val s = map f (rev (tl (rev s))) 
++exception LexHackingError 
++fun look ((j,x)::r, i: int) = if i = j then x else look(r, i) 
++  | look ([], i) = raise LexHackingError
++fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} 
++in Vector.fromList(map g 
++[{fin = [], trans = 0},
++{fin = [(N 2)], trans = 1},
++{fin = [(N 2)], trans = 1},
++{fin = [], trans = 3},
++{fin = [], trans = 3},
++{fin = [], trans = 5},
++{fin = [], trans = 5},
++{fin = [(N 284)], trans = 7},
++{fin = [(N 284)], trans = 7},
++{fin = [], trans = 9},
++{fin = [], trans = 9},
++{fin = [], trans = 11},
++{fin = [], trans = 11},
++{fin = [], trans = 13},
++{fin = [], trans = 13},
++{fin = [(N 184)], trans = 15},
++{fin = [(N 184)], trans = 15},
++{fin = [(N 165)], trans = 0},
++{fin = [(N 90),(N 146),(N 165)], trans = 18},
++{fin = [(N 90),(N 146)], trans = 18},
++{fin = [], trans = 20},
++{fin = [(N 146)], trans = 21},
++{fin = [], trans = 22},
++{fin = [], trans = 23},
++{fin = [], trans = 24},
++{fin = [(N 146)], trans = 21},
++{fin = [], trans = 26},
++{fin = [], trans = 27},
++{fin = [], trans = 28},
++{fin = [(N 90)], trans = 29},
++{fin = [(N 90),(N 146),(N 165)], trans = 30},
++{fin = [(N 90),(N 146)], trans = 31},
++{fin = [(N 90),(N 146)], trans = 32},
++{fin = [(N 90),(N 146)], trans = 33},
++{fin = [(N 90),(N 146)], trans = 34},
++{fin = [(N 90),(N 146)], trans = 35},
++{fin = [(N 90),(N 146)], trans = 36},
++{fin = [(N 90),(N 146)], trans = 37},
++{fin = [(N 87),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146)], trans = 39},
++{fin = [(N 90),(N 146)], trans = 40},
++{fin = [(N 90),(N 146)], trans = 41},
++{fin = [(N 90),(N 146)], trans = 42},
++{fin = [(N 90),(N 146)], trans = 43},
++{fin = [(N 90),(N 146)], trans = 44},
++{fin = [(N 90),(N 146)], trans = 45},
++{fin = [(N 77),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146),(N 165)], trans = 47},
++{fin = [(N 90),(N 146)], trans = 48},
++{fin = [(N 90),(N 146)], trans = 49},
++{fin = [(N 67),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146),(N 165)], trans = 51},
++{fin = [(N 90),(N 146)], trans = 52},
++{fin = [(N 90),(N 146)], trans = 53},
++{fin = [(N 90),(N 146)], trans = 54},
++{fin = [(N 62),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146)], trans = 56},
++{fin = [(N 56),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146),(N 165)], trans = 58},
++{fin = [(N 52),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146),(N 165)], trans = 60},
++{fin = [(N 90),(N 146)], trans = 61},
++{fin = [(N 90),(N 146)], trans = 62},
++{fin = [(N 90),(N 146)], trans = 63},
++{fin = [(N 90),(N 146)], trans = 64},
++{fin = [(N 90),(N 146)], trans = 65},
++{fin = [(N 49),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146),(N 165)], trans = 67},
++{fin = [(N 90),(N 146)], trans = 68},
++{fin = [(N 41),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146),(N 165)], trans = 70},
++{fin = [(N 90),(N 146)], trans = 71},
++{fin = [(N 31),(N 90),(N 146)], trans = 72},
++{fin = [(N 90),(N 146)], trans = 73},
++{fin = [(N 37),(N 90),(N 146)], trans = 18},
++{fin = [(N 90),(N 146),(N 165)], trans = 75},
++{fin = [(N 90),(N 146)], trans = 76},
++{fin = [(N 23),(N 90),(N 146)], trans = 18},
++{fin = [(N 27),(N 90),(N 146)], trans = 18},
++{fin = [(N 146),(N 165)], trans = 79},
++{fin = [(N 146)], trans = 80},
++{fin = [(N 146)], trans = 81},
++{fin = [(N 146)], trans = 82},
++{fin = [(N 13),(N 146)], trans = 21},
++{fin = [(N 19),(N 165)], trans = 0},
++{fin = [(N 17),(N 165)], trans = 0},
++{fin = [(N 146),(N 165)], trans = 21},
++{fin = [(N 165)], trans = 87},
++{fin = [(N 146)], trans = 88},
++{fin = [], trans = 87},
++{fin = [(N 146)], trans = 88},
++{fin = [], trans = 91},
++{fin = [], trans = 92},
++{fin = [], trans = 93},
++{fin = [], trans = 94},
++{fin = [], trans = 95},
++{fin = [], trans = 96},
++{fin = [(N 146),(N 165)], trans = 21},
++{fin = [(N 15),(N 165)], trans = 0},
++{fin = [(N 165)], trans = 99},
++{fin = [(N 163)], trans = 100},
++{fin = [], trans = 101},
++{fin = [], trans = 102},
++{fin = [], trans = 103},
++{fin = [], trans = 104},
++{fin = [], trans = 105},
++{fin = [(N 160)], trans = 105},
++{fin = [(N 165)], trans = 26},
++{fin = [(N 148),(N 165)], trans = 0},
++{fin = [(N 2),(N 165)], trans = 109},
++{fin = [(N 2)], trans = 109},
++{fin = [(N 7),(N 165)], trans = 111},
++{fin = [(N 7)], trans = 0},
++{fin = [(N 203)], trans = 0},
++{fin = [(N 203)], trans = 114},
++{fin = [(N 201)], trans = 0},
++{fin = [(N 203)], trans = 116},
++{fin = [(N 196)], trans = 0},
++{fin = [(N 198)], trans = 0},
++{fin = [(N 276)], trans = 0},
++{fin = [(N 274),(N 276)], trans = 0},
++{fin = [(N 266),(N 274),(N 276)], trans = 121},
++{fin = [(N 226)], trans = 0},
++{fin = [], trans = 123},
++{fin = [], trans = 124},
++{fin = [], trans = 125},
++{fin = [], trans = 126},
++{fin = [(N 246)], trans = 0},
++{fin = [(N 223)], trans = 0},
++{fin = [(N 220)], trans = 0},
++{fin = [(N 217)], trans = 0},
++{fin = [(N 214)], trans = 0},
++{fin = [(N 211)], trans = 0},
++{fin = [(N 208)], trans = 0},
++{fin = [], trans = 134},
++{fin = [(N 234)], trans = 0},
++{fin = [(N 230),(N 234)], trans = 0},
++{fin = [(N 252)], trans = 0},
++{fin = [], trans = 138},
++{fin = [], trans = 139},
++{fin = [(N 239)], trans = 0},
++{fin = [(N 249)], trans = 0},
++{fin = [(N 258)], trans = 142},
++{fin = [(N 264)], trans = 143},
++{fin = [(N 264)], trans = 0},
++{fin = [(N 205),(N 274),(N 276)], trans = 0},
++{fin = [(N 271),(N 276)], trans = 146},
++{fin = [(N 271)], trans = 0},
++{fin = [(N 288)], trans = 0},
++{fin = [(N 286),(N 288)], trans = 0},
++{fin = [(N 284),(N 288)], trans = 150},
++{fin = [(N 284)], trans = 150},
++{fin = [(N 281),(N 288)], trans = 152},
++{fin = [(N 281)], trans = 0},
++{fin = [(N 193)], trans = 0},
++{fin = [(N 168),(N 193)], trans = 155},
++{fin = [(N 168)], trans = 155},
++{fin = [(N 193)], trans = 157},
++{fin = [(N 191)], trans = 0},
++{fin = [(N 175)], trans = 0},
++{fin = [(N 173),(N 175)], trans = 160},
++{fin = [(N 173)], trans = 160},
++{fin = [(N 170),(N 175)], trans = 0},
++{fin = [(N 193)], trans = 163},
++{fin = [(N 178),(N 191)], trans = 0},
++{fin = [(N 182),(N 193)], trans = 0},
++{fin = [(N 193)], trans = 166},
++{fin = [(N 182)], trans = 0},
++{fin = [], trans = 166},
++{fin = [(N 184),(N 193)], trans = 169},
++{fin = [(N 184)], trans = 169},
++{fin = [(N 184),(N 193)], trans = 171},
++{fin = [(N 184),(N 191)], trans = 169},
++{fin = [(N 193)], trans = 173},
++{fin = [], trans = 174},
++{fin = [(N 188)], trans = 0}])
++end
++structure StartStates =
++	struct
++	datatype yystartstate = STARTSTATE of int
++
++(* start state definitions *)
++
++val A = STARTSTATE 3;
++val F = STARTSTATE 7;
++val INITIAL = STARTSTATE 1;
++val L = STARTSTATE 9;
++val LL = STARTSTATE 11;
++val LLC = STARTSTATE 13;
++val LLCQ = STARTSTATE 15;
++val S = STARTSTATE 5;
++
++end
++type result = UserDeclarations.lexresult
++	exception LexerError (* raised if illegal leaf action tried *)
++end
++
++structure YYPosInt : INTEGER = Int
++fun makeLexer yyinput =
++let	val yygone0= YYPosInt.fromInt ~1
++	val yyb = ref "\n" 		(* buffer *)
++	val yybl = ref 1		(*buffer length *)
++	val yybufpos = ref 1		(* location of next character to use *)
++	val yygone = ref yygone0	(* position in file of beginning of buffer *)
++	val yydone = ref false		(* eof found yet? *)
++	val yybegin = ref 1		(*Current 'start state' for lexer *)
++
++	val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
++		 yybegin := x
++
++fun lex (yyarg as ((*#line 83.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*){source}(*#line 1435.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)) =
++let fun continue() : Internal.result = 
++  let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0) =
++	let fun action (i,nil) = raise LexError
++	| action (i,nil::l) = action (i-1,l)
++	| action (i,(node::acts)::l) =
++		case node of
++		    Internal.N yyk => 
++			(let fun yymktext() = substring(!yyb,i0,i-i0)
++			     val yypos = YYPosInt.+(YYPosInt.fromInt i0, !yygone)
++			fun REJECT() = action(i,acts::l)
++			open UserDeclarations Internal.StartStates
++ in (yybufpos := i; case yyk of 
++
++			(* Application actions *)
++
++  13 => ((*#line 108.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.PRIM, source, yypos, yypos + 4)(*#line 1452.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 146 => let val yytext=yymktext() in (*#line 130.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok' (Tokens.FILE, yytext, source, yypos)(*#line 1454.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 148 => ((*#line 132.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)charlist := [""]
++                    ; stringStart := Source.getPos (source, yypos)
++                    ; YYBEGIN S
++                    ; continue ()(*#line 1459.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 15 => ((*#line 109.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.COMMA, source, yypos, yypos + 1)(*#line 1461.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 160 => ((*#line 137.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN L
++                    ; commentStart := Source.getPos (source, yypos)
++                    ; commentLevel := 1
++                    ; continue ()(*#line 1466.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 163 => ((*#line 141.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN A
++                    ; commentLevel := 1
++                    ; commentStart := Source.getPos (source, yypos)
++                    ; continue ()(*#line 1471.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 165 => ((*#line 145.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)error (source, yypos, yypos + 1, "illegal token") ;
++                    continue ()(*#line 1474.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 168 => let val yytext=yymktext() in (*#line 148.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN LL
++                    ; (lineNum := valOf (Int.fromString yytext)
++                       ; colNum := 1)
++                      handle Overflow => YYBEGIN A
++                    ; continue ()(*#line 1480.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 17 => ((*#line 110.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.SEMICOLON, source, yypos, yypos + 1)(*#line 1482.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 170 => ((*#line 153.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)(* cheat: take n > 0 dots *) continue ()(*#line 1484.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 173 => let val yytext=yymktext() in (*#line 154.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN LLC
++                    ; (colNum := valOf (Int.fromString yytext))
++                      handle Overflow => YYBEGIN A
++                    ; continue ()(*#line 1489.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 175 => ((*#line 158.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN LLC; continue ()
++                (* note hack, since ml-lex chokes on the empty string for 0* *)(*#line 1492.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 178 => ((*#line 160.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN INITIAL
++                    ; lineDirective (source, NONE, yypos + 2)
++                    ; commentLevel := 0; charlist := []; continue ()(*#line 1496.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 182 => ((*#line 163.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN LLCQ; continue ()(*#line 1498.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 184 => let val yytext=yymktext() in (*#line 164.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)lineFile := yytext; continue ()(*#line 1500.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 188 => ((*#line 165.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN INITIAL
++                    ; lineDirective (source, SOME (!lineFile), yypos + 3)
++                    ; commentLevel := 0; charlist := []; continue ()(*#line 1504.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 19 => ((*#line 111.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.EQUALOP, source, yypos, yypos + 1)(*#line 1506.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 191 => ((*#line 169.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN INITIAL; commentLevel := 0; charlist := []; continue ()(*#line 1508.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 193 => ((*#line 170.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN A; continue ()(*#line 1510.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 196 => ((*#line 172.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)inc commentLevel; continue ()(*#line 1512.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 198 => ((*#line 173.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)Source.newline (source, yypos) ; continue ()(*#line 1514.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 2 => ((*#line 105.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)continue ()(*#line 1516.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 201 => ((*#line 174.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)dec commentLevel
++                    ; if 0 = !commentLevel then YYBEGIN INITIAL else ()
++                    ; continue ()(*#line 1520.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 203 => ((*#line 177.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)continue ()(*#line 1522.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 205 => ((*#line 179.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)let
++                       val s = concat (rev (!charlist))
++                       val _ = charlist := nil
++                       fun make (t, v) =
++                          t (v, !stringStart, Source.getPos (source, yypos + 1))
++                    in YYBEGIN INITIAL
++                       ; make (Tokens.STRING, s)
++                    end(*#line 1531.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 208 => ((*#line 187.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar #"\a"; continue ()(*#line 1533.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 211 => ((*#line 188.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar #"\b"; continue ()(*#line 1535.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 214 => ((*#line 189.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar #"\f"; continue ()(*#line 1537.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 217 => ((*#line 190.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar #"\n"; continue ()(*#line 1539.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 220 => ((*#line 191.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar #"\r"; continue ()(*#line 1541.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 223 => ((*#line 192.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar #"\t"; continue ()(*#line 1543.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 226 => ((*#line 193.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar #"\v"; continue ()(*#line 1545.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 23 => ((*#line 112.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.ANN, source, yypos, yypos + 3)(*#line 1547.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 230 => let val yytext=yymktext() in (*#line 194.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addChar (Char.chr(Char.ord(String.sub(yytext, 2))
++                                      -Char.ord #"@"))
++                    ; continue ()(*#line 1551.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 234 => ((*#line 197.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)error (source, yypos, yypos + 2,
++                           "illegal control escape; must be one of @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_")
++                    ; continue ()(*#line 1555.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 239 => let val yytext=yymktext() in (*#line 200.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)let
++                       val x =
++                          Char.ord(String.sub(yytext, 1)) * 100
++                          + Char.ord(String.sub(yytext, 2)) * 10
++                          + Char.ord(String.sub(yytext, 3))
++                          - (Char.ord #"0") * 111
++                    in (if x > 255
++                           then stringError (source, yypos,
++                                             "illegal ascii escape")
++                        else addChar(Char.chr x);
++                           continue ())
++                    end(*#line 1568.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 246 => let val yytext=yymktext() in (*#line 213.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)let
++                       val x = 
++                          StringCvt.scanString
++                          (Pervasive.Int.scan StringCvt.HEX)
++                          (String.substring (yytext, 2, 4))
++                       fun err () =
++                          stringError (source, yypos,
++                                       "illegal unicode escape")
++                    in (case x of
++                          SOME x => if x > 255
++                                       then err()
++                                    else addChar(Char.chr x)
++                        | _ => err())
++                        ; continue ()
++                    end(*#line 1584.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 249 => ((*#line 228.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addString "\""; continue ()(*#line 1586.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 252 => ((*#line 229.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addString "\\"; continue ()(*#line 1588.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 258 => ((*#line 230.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN F; continue ()(*#line 1590.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 264 => ((*#line 231.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)Source.newline (source, yypos) ; YYBEGIN F ; continue ()(*#line 1592.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 266 => ((*#line 232.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)stringError (source, yypos, "illegal string escape")
++                    ; continue ()(*#line 1595.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 27 => ((*#line 113.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.AND, source, yypos, yypos + 3)(*#line 1597.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 271 => ((*#line 234.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)Source.newline (source, yypos)
++                    ; stringError (source, yypos, "unclosed string")
++                    ; continue ()(*#line 1601.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 274 => let val yytext=yymktext() in (*#line 238.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)addString yytext; continue ()(*#line 1603.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| 276 => ((*#line 239.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)stringError (source, yypos + 1, "illegal character in string")
++                    ; continue ()(*#line 1606.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 281 => ((*#line 242.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)Source.newline (source, yypos) ; continue ()(*#line 1608.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 284 => ((*#line 243.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)continue ()(*#line 1610.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 286 => ((*#line 244.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)YYBEGIN S
++                    ; stringStart := Source.getPos (source, yypos)
++                    ; continue ()(*#line 1614.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 288 => ((*#line 247.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)stringError (source, yypos, "unclosed string")
++                    ; continue ()(*#line 1617.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 31 => ((*#line 114.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.BAS, source, yypos, yypos + 3)(*#line 1619.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 37 => ((*#line 116.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.BASIS, source, yypos, yypos + 5)(*#line 1621.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 41 => ((*#line 117.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.END, source, yypos, yypos + 3)(*#line 1623.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 49 => ((*#line 119.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.FUNCTOR, source, yypos, yypos + 7)(*#line 1625.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 52 => ((*#line 120.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.IN, source, yypos, yypos + 2)(*#line 1627.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 56 => ((*#line 121.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.LET, source, yypos, yypos + 3)(*#line 1629.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 62 => ((*#line 123.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.LOCAL, source, yypos, yypos + 5)(*#line 1631.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 67 => ((*#line 124.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.OPEN, source, yypos, yypos + 4)(*#line 1633.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 7 => ((*#line 106.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)Source.newline (source, yypos); continue ()(*#line 1635.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 77 => ((*#line 126.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.SIGNATURE, source, yypos, yypos + 9)(*#line 1637.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 87 => ((*#line 128.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok (Tokens.STRUCTURE, source, yypos, yypos + 9)(*#line 1639.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++)
++| 90 => let val yytext=yymktext() in (*#line 129.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex"*)tok' (Tokens.ID, yytext, source, yypos)(*#line 1641.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/mlb.lex.sml"*)
++ end
++| _ => raise Internal.LexerError
++
++		) end )
++
++	val {fin,trans} = Vector.sub(Internal.tab, s)
++	val NewAcceptingLeaves = fin::AcceptingLeaves
++	in if l = !yybl then
++	     if trans = #trans(Vector.sub(Internal.tab,0))
++	       then action(l,NewAcceptingLeaves
++) else	    let val newchars= if !yydone then "" else yyinput 1024
++	    in if (size newchars)=0
++		  then (yydone := true;
++		        if (l=i0) then UserDeclarations.eof yyarg
++		                  else action(l,NewAcceptingLeaves))
++		  else (if i0=l then yyb := newchars
++		     else yyb := substring(!yyb,i0,l-i0)^newchars;
++		     yygone := YYPosInt.+(!yygone, YYPosInt.fromInt i0);
++		     yybl := size (!yyb);
++		     scan (s,AcceptingLeaves,l-i0,0))
++	    end
++	  else let val NewChar = Char.ord(CharVector.sub(!yyb,l))
++		val NewChar = if NewChar<128 then NewChar else 128
++		val NewState = Char.ord(CharVector.sub(trans,NewChar))
++		in if NewState=0 then action(l,NewAcceptingLeaves)
++		else scan(NewState,NewAcceptingLeaves,l+1,i0)
++	end
++	end
++(*
++	val start= if substring(!yyb,!yybufpos-1,1)="\n"
++then !yybegin+1 else !yybegin
++*)
++	in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos)
++    end
++in continue end
++  in lex
++  end
++end
+diff -urN mlton-20100608~/mlton/front-end/ml.grm.desc mlton-20100608/mlton/front-end/ml.grm.desc
+--- mlton-20100608~/mlton/front-end/ml.grm.desc	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/ml.grm.desc	2013-04-22 09:58:07.848216261 -0400
+@@ -0,0 +1,9205 @@
++1 shift/reduce conflict
++
++error:  state 170: shift/reduce conflict (shift BAR, reduce by rule 196)
++
++state 0:
++
++	program : . expsAndTopdecs 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ABSTYPE	shift 57
++	ASTERISK	shift 56
++	CASE	shift 55
++	DATATYPE	shift 54
++	EQUALOP	shift 53
++	EXCEPTION	shift 52
++	FN	shift 51
++	FUN	shift 50
++	FUNCTOR	shift 49
++	HASH	shift 48
++	IF	shift 47
++	INFIX	shift 46
++	INFIXR	shift 45
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LOCAL	shift 41
++	LPAREN	shift 40
++	NONFIX	shift 39
++	OP	shift 38
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	RAISE	shift 35
++	SEMICOLON	shift 34
++	SIGNATURE	shift 33
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	decnolocal	goto 16
++	exp	goto 15
++	expnode	goto 14
++	expsAndTopdecs	goto 13
++	fixity	goto 12
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	program	goto 607
++	strdec	goto 6
++	strdecnode	goto 5
++	topdec	goto 4
++	topdecnode	goto 3
++	topdecs	goto 2
++	word	goto 1
++
++	.	reduce by rule 3
++
++
++state 1:
++
++	const' : word .  (reduce by rule 299)
++
++
++
++	.	reduce by rule 299
++
++
++state 2:
++
++	expsAndTopdecs : topdecs .  (reduce by rule 2)
++
++
++
++	.	reduce by rule 2
++
++
++state 3:
++
++	topdec : topdecnode .  (reduce by rule 6)
++
++
++
++	.	reduce by rule 6
++
++
++state 4:
++
++	topdecs : topdec . topdecs 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	FUNCTOR	shift 49
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 34
++	SIGNATURE	shift 33
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	strdec	goto 6
++	strdecnode	goto 5
++	topdec	goto 4
++	topdecnode	goto 3
++	topdecs	goto 64
++
++	.	reduce by rule 3
++
++
++state 5:
++
++	strdec : strdecnode .  (reduce by rule 14)
++
++
++
++	.	reduce by rule 14
++
++
++state 6:
++
++	topdecnode : strdec .  (reduce by rule 7)
++
++
++
++	.	reduce by rule 7
++
++
++state 7:
++
++	app_exp : longvid . app_exp1 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	EQUALOP	shift 53
++	HASH	shift 48
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 66
++	app_exp1	goto 65
++	const	goto 18
++	const'	goto 17
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	reduce by rule 217
++
++
++state 8:
++
++	longid : longidNoAsterisk .  (reduce by rule 309)
++
++
++
++	.	reduce by rule 309
++
++
++state 9:
++
++	longvid : longidEqual .  (reduce by rule 330)
++
++
++
++	.	reduce by rule 330
++
++
++state 10:
++
++	longidEqual : longid .  (reduce by rule 312)
++
++
++
++	.	reduce by rule 312
++
++
++state 11:
++
++	const' : int .  (reduce by rule 298)
++
++
++
++	.	reduce by rule 298
++
++
++state 12:
++
++	decnolocal : fixity . vids 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	EQUALOP	shift 73
++
++	id	goto 72
++	idEqual	goto 71
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	vid	goto 68
++	vids	goto 67
++
++	.	error
++
++
++state 13:
++
++	program : expsAndTopdecs .  (reduce by rule 0)
++
++
++
++	.	reduce by rule 0
++
++
++state 14:
++
++	exp : expnode .  (reduce by rule 204)
++
++
++
++	.	reduce by rule 204
++
++
++state 15:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expsAndTopdecs : exp . SEMICOLON expsAndTopdecs 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++	SEMICOLON	shift 75
++
++
++	.	error
++
++
++state 16:
++
++	strdecnode : decnolocal .  (reduce by rule 17)
++
++
++
++	.	reduce by rule 17
++
++
++state 17:
++
++	const : const' .  (reduce by rule 297)
++
++
++
++	.	reduce by rule 297
++
++
++state 18:
++
++	aexp : const .  (reduce by rule 220)
++
++
++
++	.	reduce by rule 220
++
++
++state 19:
++
++	expnode : app_exp .  (reduce by rule 209)
++
++
++
++	.	reduce by rule 209
++
++
++state 20:
++
++	app_exp : aexp . app_exp1 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	EQUALOP	shift 53
++	HASH	shift 48
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 66
++	app_exp1	goto 80
++	const	goto 18
++	const'	goto 17
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	reduce by rule 217
++
++
++state 21:
++
++	aexp : PRIM . string COLON ty SEMICOLON 
++
++	STRING	shift 82
++
++	string	goto 81
++
++	.	error
++
++
++state 22:
++
++	aexp : SYMBOL . string symattributes COLON ty SEMICOLON 
++	aexp : SYMBOL . ASTERISK COLON ty SEMICOLON 
++
++	STRING	shift 82
++	ASTERISK	shift 84
++
++	string	goto 83
++
++	.	error
++
++
++state 23:
++
++	aexp : IMPORT . string ieattributes COLON ty SEMICOLON 
++	aexp : IMPORT . ASTERISK ieattributes COLON ty SEMICOLON 
++
++	STRING	shift 82
++	ASTERISK	shift 86
++
++	string	goto 85
++
++	.	error
++
++
++state 24:
++
++	aexp : EXPORT . string ieattributes COLON ty SEMICOLON 
++
++	STRING	shift 82
++
++	string	goto 87
++
++	.	error
++
++
++state 25:
++
++	aexp : ADDRESS . string symattributes COLON ty SEMICOLON 
++
++	STRING	shift 82
++
++	string	goto 88
++
++	.	error
++
++
++state 26:
++
++	aexp : CONST . string COLON ty SEMICOLON 
++
++	STRING	shift 82
++
++	string	goto 89
++
++	.	error
++
++
++state 27:
++
++	aexp : COMMAND_LINE_CONST . string COLON ty EQUALOP constOrBool SEMICOLON 
++
++	STRING	shift 82
++
++	string	goto 90
++
++	.	error
++
++
++state 28:
++
++	aexp : BUILD_CONST . string COLON ty SEMICOLON 
++
++	STRING	shift 82
++
++	string	goto 91
++
++	.	error
++
++
++state 29:
++
++	expnode : WHILE . exp DO exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 92
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 30:
++
++	decnolocal : VAL . valbindTop 
++	decnolocal : VAL . tyvarseq valbindTop 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	TYVAR	shift 111
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 108
++	OP	shift 107
++	REC	shift 106
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 98
++	patnode	goto 97
++	tyvar	goto 96
++	tyvarseq	goto 95
++	valbind	goto 94
++	valbindTop	goto 93
++	word	goto 1
++
++	.	error
++
++
++state 31:
++
++	decnolocal : TYPE . typBind 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	typBind	goto 115
++	typBind'	goto 114
++	tyvar	goto 96
++	tyvars	goto 113
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 32:
++
++	strdecnode : STRUCTURE . strbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 119
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	strbinds	goto 118
++	strid	goto 117
++
++	.	error
++
++
++state 33:
++
++	topdecnode : SIGNATURE . sigbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigbinds	goto 121
++	sigid	goto 120
++
++	.	error
++
++
++state 34:
++
++	topdecs : SEMICOLON . expsAndTopdecs 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ABSTYPE	shift 57
++	ASTERISK	shift 56
++	CASE	shift 55
++	DATATYPE	shift 54
++	EQUALOP	shift 53
++	EXCEPTION	shift 52
++	FN	shift 51
++	FUN	shift 50
++	FUNCTOR	shift 49
++	HASH	shift 48
++	IF	shift 47
++	INFIX	shift 46
++	INFIXR	shift 45
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LOCAL	shift 41
++	LPAREN	shift 40
++	NONFIX	shift 39
++	OP	shift 38
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	RAISE	shift 35
++	SEMICOLON	shift 34
++	SIGNATURE	shift 33
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	decnolocal	goto 16
++	exp	goto 15
++	expnode	goto 14
++	expsAndTopdecs	goto 123
++	fixity	goto 12
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	strdec	goto 6
++	strdecnode	goto 5
++	topdec	goto 4
++	topdecnode	goto 3
++	topdecs	goto 2
++	word	goto 1
++
++	.	reduce by rule 3
++
++
++state 35:
++
++	expnode : RAISE . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 124
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 36:
++
++	decnolocal : OVERLOAD . priority var COLON ty AS longvidands 
++
++	INT	shift 127
++
++	digit	goto 126
++	priority	goto 125
++
++	.	reduce by rule 173
++
++
++state 37:
++
++	decnolocal : OPEN . longstrids 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++
++	longid	goto 130
++	longidNoAsterisk	goto 8
++	longstrid	goto 129
++	longstrids	goto 128
++
++	.	error
++
++
++state 38:
++
++	aexp : OP . longvid 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	EQUALOP	shift 53
++
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 131
++
++	.	error
++
++
++state 39:
++
++	fixity : NONFIX .  (reduce by rule 172)
++
++
++
++	.	reduce by rule 172
++
++
++state 40:
++
++	aexp : LPAREN . RPAREN 
++	aexp : LPAREN . expnode RPAREN 
++	aexp : LPAREN . exp_ps RPAREN 
++	aexp : LPAREN . exp_2c RPAREN 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	RPAREN	shift 136
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 135
++	exp_2c	goto 134
++	exp_ps	goto 133
++	expnode	goto 132
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 41:
++
++	strdecnode : LOCAL . strdecs IN strdecs END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 140
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	strdec	goto 139
++	strdecnode	goto 5
++	strdecs	goto 138
++	strdecsnode	goto 137
++
++	.	reduce by rule 11
++
++
++state 42:
++
++	aexp : LET . decs IN exp END 
++	aexp : LET . decs IN exp_ps END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 146
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 145
++	TYPE	shift 31
++	VAL	shift 30
++
++	dec	goto 144
++	decnode	goto 143
++	decnolocal	goto 142
++	decs	goto 141
++	fixity	goto 12
++
++	.	reduce by rule 110
++
++
++state 43:
++
++	aexp : LBRACKET . exp_list RBRACKET 
++	aexp : LBRACKET . RBRACKET 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	RBRACKET	shift 149
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 148
++	exp_list	goto 147
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 44:
++
++	aexp : LBRACE . elabels RBRACE 
++	aexp : LBRACE . RBRACE 
++
++	INT	shift 62
++	LONGID	shift 61
++	ASTERISK	shift 74
++	RBRACE	shift 155
++
++	elabel	goto 154
++	elabels	goto 153
++	field	goto 152
++	id	goto 151
++	idNoAsterisk	goto 70
++	int	goto 150
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 45:
++
++	fixity : INFIXR .  (reduce by rule 170)
++	fixity : INFIXR . digit 
++
++	INT	shift 127
++
++	digit	goto 156
++
++	.	reduce by rule 170
++
++
++state 46:
++
++	fixity : INFIX .  (reduce by rule 168)
++	fixity : INFIX . digit 
++
++	INT	shift 127
++
++	digit	goto 157
++
++	.	reduce by rule 168
++
++
++state 47:
++
++	expnode : IF . exp THEN exp ELSE exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 158
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 48:
++
++	aexp : HASH . field 
++
++	INT	shift 62
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	field	goto 159
++	id	goto 151
++	idNoAsterisk	goto 70
++	int	goto 150
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 49:
++
++	topdecnode : FUNCTOR . funbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	fctid	goto 162
++	funbinds	goto 161
++	id	goto 160
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 50:
++
++	decnolocal : FUN . funs 
++	decnolocal : FUN . tyvarseq funs 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	TYVAR	shift 111
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 108
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 168
++	clause	goto 167
++	clauses	goto 166
++	clausesTop	goto 165
++	const	goto 101
++	const'	goto 17
++	funs	goto 164
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	tyvar	goto 96
++	tyvarseq	goto 163
++	word	goto 1
++
++	.	error
++
++
++state 51:
++
++	expnode : FN . match 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	match	goto 172
++	pat	goto 171
++	patnode	goto 97
++	rule	goto 170
++	rules	goto 169
++	word	goto 1
++
++	.	error
++
++
++state 52:
++
++	decnolocal : EXCEPTION . ebs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	OP	shift 179
++
++	con	goto 178
++	eb	goto 177
++	ebs	goto 176
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	opcon	goto 174
++
++	.	error
++
++
++state 53:
++
++	longidEqual : EQUALOP .  (reduce by rule 313)
++
++
++
++	.	reduce by rule 313
++
++
++state 54:
++
++	decnolocal : DATATYPE . datatypeRhs 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	datBind	goto 187
++	datatypeRhs	goto 186
++	datatypeRhsnode	goto 185
++	db	goto 184
++	dbs	goto 183
++	dbs'	goto 182
++	repl	goto 181
++	tyvar	goto 96
++	tyvars	goto 180
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 55:
++
++	expnode : CASE . exp OF match 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 188
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 56:
++
++	longid : ASTERISK .  (reduce by rule 310)
++
++
++
++	.	reduce by rule 310
++
++
++state 57:
++
++	decnolocal : ABSTYPE . datBind WITH decs END 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	datBind	goto 190
++	db	goto 184
++	dbs	goto 183
++	dbs'	goto 182
++	tyvar	goto 96
++	tyvars	goto 189
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 58:
++
++	word : WORD .  (reduce by rule 176)
++
++
++
++	.	reduce by rule 176
++
++
++state 59:
++
++	const' : STRING .  (reduce by rule 301)
++
++
++
++	.	reduce by rule 301
++
++
++state 60:
++
++	const' : REAL .  (reduce by rule 300)
++
++
++
++	.	reduce by rule 300
++
++
++state 61:
++
++	longidNoAsterisk : LONGID .  (reduce by rule 311)
++
++
++
++	.	reduce by rule 311
++
++
++state 62:
++
++	int : INT .  (reduce by rule 175)
++
++
++
++	.	reduce by rule 175
++
++
++state 63:
++
++	const' : CHAR .  (reduce by rule 302)
++
++
++
++	.	reduce by rule 302
++
++
++state 64:
++
++	topdecs : topdec topdecs .  (reduce by rule 4)
++
++
++
++	.	reduce by rule 4
++
++
++state 65:
++
++	app_exp : longvid app_exp1 .  (reduce by rule 216)
++
++
++
++	.	reduce by rule 216
++
++
++state 66:
++
++	app_exp1 : app_exp .  (reduce by rule 218)
++
++
++
++	.	reduce by rule 218
++
++
++state 67:
++
++	decnolocal : fixity vids .  (reduce by rule 125)
++
++
++
++	.	reduce by rule 125
++
++
++state 68:
++
++	vids : vid .  (reduce by rule 316)
++	vids : vid . vids 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	EQUALOP	shift 73
++
++	id	goto 72
++	idEqual	goto 71
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	vid	goto 68
++	vids	goto 191
++
++	.	reduce by rule 316
++
++
++state 69:
++
++	idNoAsterisk : longidNoAsterisk .  (reduce by rule 304)
++
++
++
++	.	reduce by rule 304
++
++
++state 70:
++
++	id : idNoAsterisk .  (reduce by rule 305)
++
++
++
++	.	reduce by rule 305
++
++
++state 71:
++
++	vid : idEqual .  (reduce by rule 314)
++
++
++
++	.	reduce by rule 314
++
++
++state 72:
++
++	idEqual : id .  (reduce by rule 307)
++
++
++
++	.	reduce by rule 307
++
++
++state 73:
++
++	idEqual : EQUALOP .  (reduce by rule 308)
++
++
++
++	.	reduce by rule 308
++
++
++state 74:
++
++	id : ASTERISK .  (reduce by rule 306)
++
++
++
++	.	reduce by rule 306
++
++
++state 75:
++
++	expsAndTopdecs : exp SEMICOLON . expsAndTopdecs 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ABSTYPE	shift 57
++	ASTERISK	shift 56
++	CASE	shift 55
++	DATATYPE	shift 54
++	EQUALOP	shift 53
++	EXCEPTION	shift 52
++	FN	shift 51
++	FUN	shift 50
++	FUNCTOR	shift 49
++	HASH	shift 48
++	IF	shift 47
++	INFIX	shift 46
++	INFIXR	shift 45
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LOCAL	shift 41
++	LPAREN	shift 40
++	NONFIX	shift 39
++	OP	shift 38
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	RAISE	shift 35
++	SEMICOLON	shift 34
++	SIGNATURE	shift 33
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	decnolocal	goto 16
++	exp	goto 15
++	expnode	goto 14
++	expsAndTopdecs	goto 192
++	fixity	goto 12
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	strdec	goto 6
++	strdecnode	goto 5
++	topdec	goto 4
++	topdecnode	goto 3
++	topdecs	goto 2
++	word	goto 1
++
++	.	reduce by rule 3
++
++
++state 76:
++
++	expnode : exp ORELSE . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 193
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 77:
++
++	expnode : exp HANDLE . match 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	match	goto 194
++	pat	goto 171
++	patnode	goto 97
++	rule	goto 170
++	rules	goto 169
++	word	goto 1
++
++	.	error
++
++
++state 78:
++
++	expnode : exp COLON . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 199
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 79:
++
++	expnode : exp ANDALSO . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 205
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 80:
++
++	app_exp : aexp app_exp1 .  (reduce by rule 215)
++
++
++
++	.	reduce by rule 215
++
++
++state 81:
++
++	aexp : PRIM string . COLON ty SEMICOLON 
++
++	COLON	shift 206
++
++
++	.	error
++
++
++state 82:
++
++	string : STRING .  (reduce by rule 303)
++
++
++
++	.	reduce by rule 303
++
++
++state 83:
++
++	aexp : SYMBOL string . symattributes COLON ty SEMICOLON 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 208
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	symattributes	goto 207
++
++	.	reduce by rule 244
++
++
++state 84:
++
++	aexp : SYMBOL ASTERISK . COLON ty SEMICOLON 
++
++	COLON	shift 209
++
++
++	.	error
++
++
++state 85:
++
++	aexp : IMPORT string . ieattributes COLON ty SEMICOLON 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	ieattributes	goto 211
++	id	goto 210
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	reduce by rule 242
++
++
++state 86:
++
++	aexp : IMPORT ASTERISK . ieattributes COLON ty SEMICOLON 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	ieattributes	goto 212
++	id	goto 210
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	reduce by rule 242
++
++
++state 87:
++
++	aexp : EXPORT string . ieattributes COLON ty SEMICOLON 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	ieattributes	goto 213
++	id	goto 210
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	reduce by rule 242
++
++
++state 88:
++
++	aexp : ADDRESS string . symattributes COLON ty SEMICOLON 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 208
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	symattributes	goto 214
++
++	.	reduce by rule 244
++
++
++state 89:
++
++	aexp : CONST string . COLON ty SEMICOLON 
++
++	COLON	shift 215
++
++
++	.	error
++
++
++state 90:
++
++	aexp : COMMAND_LINE_CONST string . COLON ty EQUALOP constOrBool SEMICOLON 
++
++	COLON	shift 216
++
++
++	.	error
++
++
++state 91:
++
++	aexp : BUILD_CONST string . COLON ty SEMICOLON 
++
++	COLON	shift 217
++
++
++	.	error
++
++
++state 92:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expnode : WHILE exp . DO exp 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	DO	shift 218
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	error
++
++
++state 93:
++
++	decnolocal : VAL valbindTop .  (reduce by rule 116)
++
++
++
++	.	reduce by rule 116
++
++
++state 94:
++
++	valbindTop : valbind .  (reduce by rule 127)
++
++
++
++	.	reduce by rule 127
++
++
++state 95:
++
++	decnolocal : VAL tyvarseq . valbindTop 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	REC	shift 106
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 98
++	patnode	goto 97
++	valbind	goto 94
++	valbindTop	goto 219
++	word	goto 1
++
++	.	error
++
++
++state 96:
++
++	tyvarseq : tyvar .  (reduce by rule 150)
++
++
++
++	.	reduce by rule 150
++
++
++state 97:
++
++	pat : patnode .  (reduce by rule 250)
++
++
++
++	.	reduce by rule 250
++
++
++state 98:
++
++	patnode : pat . AS pat 
++	patnode : pat . COLON ty 
++	valbind : pat . EQUALOP exp valbindRest 
++
++	AS	shift 222
++	COLON	shift 221
++	EQUALOP	shift 220
++
++
++	.	error
++
++
++state 99:
++
++	apatnode : longvidNoEqual .  (reduce by rule 257)
++
++
++
++	.	reduce by rule 257
++
++
++state 100:
++
++	longvidNoEqual : longid .  (reduce by rule 331)
++
++
++
++	.	reduce by rule 331
++
++
++state 101:
++
++	apatnode : const .  (reduce by rule 259)
++
++
++
++	.	reduce by rule 259
++
++
++state 102:
++
++	patnode : apats .  (reduce by rule 253)
++
++
++
++	.	reduce by rule 253
++
++
++state 103:
++
++	apat : apatnode .  (reduce by rule 256)
++
++
++
++	.	reduce by rule 256
++
++
++state 104:
++
++	apats : apat .  (reduce by rule 254)
++	apats : apat . apats 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 223
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	word	goto 1
++
++	.	reduce by rule 254
++
++
++state 105:
++
++	apatnode : WILD .  (reduce by rule 260)
++
++
++
++	.	reduce by rule 260
++
++
++state 106:
++
++	valbind : REC . rvalbind 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	REC	shift 226
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 225
++	patnode	goto 97
++	rvalbind	goto 224
++	word	goto 1
++
++	.	error
++
++
++state 107:
++
++	apatnode : OP . longvid 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	EQUALOP	shift 53
++
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 227
++
++	.	error
++
++
++state 108:
++
++	apatnode : LPAREN . pats RPAREN 
++	tyvarseq : LPAREN . tyvar_pc RPAREN 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	TYVAR	shift 111
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 231
++	patnode	goto 97
++	pats	goto 230
++	tyvar	goto 229
++	tyvar_pc	goto 228
++	word	goto 1
++
++	.	reduce by rule 265
++
++
++state 109:
++
++	apatnode : LBRACKET . pats RBRACKET 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 231
++	patnode	goto 97
++	pats	goto 232
++	word	goto 1
++
++	.	reduce by rule 265
++
++
++state 110:
++
++	apatnode : LBRACE . RBRACE 
++	apatnode : LBRACE . patitems RBRACE 
++
++	INT	shift 62
++	LONGID	shift 61
++	ASTERISK	shift 74
++	DOTDOTDOT	shift 239
++	RBRACE	shift 238
++
++	field	goto 237
++	id	goto 236
++	idNoAsterisk	goto 70
++	int	goto 150
++	longidNoAsterisk	goto 69
++	patitem	goto 235
++	patitems	goto 234
++	vidNoEqual	goto 233
++
++	.	error
++
++
++state 111:
++
++	tyvar : TYVAR .  (reduce by rule 321)
++
++
++
++	.	reduce by rule 321
++
++
++state 112:
++
++	tyvars : tyvarseq .  (reduce by rule 148)
++
++
++
++	.	reduce by rule 148
++
++
++state 113:
++
++	typBind' : tyvars . tycon EQUALOP ty typBind'' 
++
++	LONGID	shift 61
++
++	idNoAsterisk	goto 241
++	longidNoAsterisk	goto 69
++	tycon	goto 240
++
++	.	error
++
++
++state 114:
++
++	typBind : typBind' .  (reduce by rule 144)
++
++
++
++	.	reduce by rule 144
++
++
++state 115:
++
++	decnolocal : TYPE typBind .  (reduce by rule 120)
++
++
++
++	.	reduce by rule 120
++
++
++state 116:
++
++	tyvarseq : LPAREN . tyvar_pc RPAREN 
++
++	TYVAR	shift 111
++
++	tyvar	goto 229
++	tyvar_pc	goto 228
++
++	.	error
++
++
++state 117:
++
++	strbinds : strid . sigconst EQUALOP strbinds' 
++
++	COLON	shift 244
++	COLONGT	shift 243
++
++	sigconst	goto 242
++
++	.	reduce by rule 59
++
++
++state 118:
++
++	strdecnode : STRUCTURE strbinds .  (reduce by rule 15)
++
++
++
++	.	reduce by rule 15
++
++
++state 119:
++
++	strid : id .  (reduce by rule 324)
++
++
++
++	.	reduce by rule 324
++
++
++state 120:
++
++	sigbinds : sigid . EQUALOP sigexp' sigbinds' 
++
++	EQUALOP	shift 245
++
++
++	.	error
++
++
++state 121:
++
++	topdecnode : SIGNATURE sigbinds .  (reduce by rule 8)
++
++
++
++	.	reduce by rule 8
++
++
++state 122:
++
++	sigid : id .  (reduce by rule 325)
++
++
++
++	.	reduce by rule 325
++
++
++state 123:
++
++	topdecs : SEMICOLON expsAndTopdecs .  (reduce by rule 5)
++
++
++
++	.	reduce by rule 5
++
++
++state 124:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expnode : RAISE exp .  (reduce by rule 214)
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 214
++
++
++state 125:
++
++	decnolocal : OVERLOAD priority . var COLON ty AS longvidands 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	EQUALOP	shift 73
++
++	id	goto 72
++	idEqual	goto 247
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	var	goto 246
++
++	.	error
++
++
++state 126:
++
++	priority : digit .  (reduce by rule 174)
++
++
++
++	.	reduce by rule 174
++
++
++state 127:
++
++	digit : INT .  (reduce by rule 177)
++
++
++
++	.	reduce by rule 177
++
++
++state 128:
++
++	decnolocal : OPEN longstrids .  (reduce by rule 124)
++
++
++
++	.	reduce by rule 124
++
++
++state 129:
++
++	longstrids : longstrid .  (reduce by rule 334)
++	longstrids : longstrid . longstrids 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++
++	longid	goto 130
++	longidNoAsterisk	goto 8
++	longstrid	goto 129
++	longstrids	goto 248
++
++	.	reduce by rule 334
++
++
++state 130:
++
++	longstrid : longid .  (reduce by rule 333)
++
++
++
++	.	reduce by rule 333
++
++
++state 131:
++
++	aexp : OP longvid .  (reduce by rule 219)
++
++
++
++	.	reduce by rule 219
++
++
++state 132:
++
++	aexp : LPAREN expnode . RPAREN 
++	exp : expnode .  (reduce by rule 204)
++
++	RPAREN	shift 249
++
++
++	.	reduce by rule 204
++
++
++state 133:
++
++	aexp : LPAREN exp_ps . RPAREN 
++
++	RPAREN	shift 250
++
++
++	.	error
++
++
++state 134:
++
++	aexp : LPAREN exp_2c . RPAREN 
++
++	RPAREN	shift 251
++
++
++	.	error
++
++
++state 135:
++
++	exp_2c : exp . COMMA exp_2c 
++	exp_2c : exp . COMMA exp 
++	exp_ps : exp . SEMICOLON exp 
++	exp_ps : exp . SEMICOLON exp_ps 
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	COMMA	shift 253
++	HANDLE	shift 77
++	ORELSE	shift 76
++	SEMICOLON	shift 252
++
++
++	.	error
++
++
++state 136:
++
++	aexp : LPAREN RPAREN .  (reduce by rule 224)
++
++
++
++	.	reduce by rule 224
++
++
++state 137:
++
++	strdecs : strdecsnode .  (reduce by rule 10)
++
++
++
++	.	reduce by rule 10
++
++
++state 138:
++
++	strdecnode : LOCAL strdecs . IN strdecs END 
++
++	IN	shift 254
++
++
++	.	error
++
++
++state 139:
++
++	strdecsnode : strdec . strdecs 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 140
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	strdec	goto 139
++	strdecnode	goto 5
++	strdecs	goto 255
++	strdecsnode	goto 137
++
++	.	reduce by rule 11
++
++
++state 140:
++
++	strdecsnode : SEMICOLON . strdecs 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 140
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	strdec	goto 139
++	strdecnode	goto 5
++	strdecs	goto 256
++	strdecsnode	goto 137
++
++	.	reduce by rule 11
++
++
++state 141:
++
++	aexp : LET decs . IN exp END 
++	aexp : LET decs . IN exp_ps END 
++
++	IN	shift 257
++
++
++	.	error
++
++
++state 142:
++
++	decnode : decnolocal .  (reduce by rule 114)
++
++
++
++	.	reduce by rule 114
++
++
++state 143:
++
++	dec : decnode .  (reduce by rule 113)
++
++
++
++	.	reduce by rule 113
++
++
++state 144:
++
++	decs : dec . decs 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 146
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 145
++	TYPE	shift 31
++	VAL	shift 30
++
++	dec	goto 144
++	decnode	goto 143
++	decnolocal	goto 142
++	decs	goto 258
++	fixity	goto 12
++
++	.	reduce by rule 110
++
++
++state 145:
++
++	decs : SEMICOLON . decs 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 146
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 145
++	TYPE	shift 31
++	VAL	shift 30
++
++	dec	goto 144
++	decnode	goto 143
++	decnolocal	goto 142
++	decs	goto 259
++	fixity	goto 12
++
++	.	reduce by rule 110
++
++
++state 146:
++
++	decnode : LOCAL . decs IN decs END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 146
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 145
++	TYPE	shift 31
++	VAL	shift 30
++
++	dec	goto 144
++	decnode	goto 143
++	decnolocal	goto 142
++	decs	goto 260
++	fixity	goto 12
++
++	.	reduce by rule 110
++
++
++state 147:
++
++	aexp : LBRACKET exp_list . RBRACKET 
++
++	RBRACKET	shift 261
++
++
++	.	error
++
++
++state 148:
++
++	exp_list : exp .  (reduce by rule 248)
++	exp_list : exp . COMMA exp_list 
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	COMMA	shift 262
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 248
++
++
++state 149:
++
++	aexp : LBRACKET RBRACKET .  (reduce by rule 229)
++
++
++
++	.	reduce by rule 229
++
++
++state 150:
++
++	field : int .  (reduce by rule 323)
++
++
++
++	.	reduce by rule 323
++
++
++state 151:
++
++	field : id .  (reduce by rule 322)
++
++
++
++	.	reduce by rule 322
++
++
++state 152:
++
++	elabel : field . EQUALOP exp 
++
++	EQUALOP	shift 263
++
++
++	.	error
++
++
++state 153:
++
++	aexp : LBRACE elabels . RBRACE 
++
++	RBRACE	shift 264
++
++
++	.	error
++
++
++state 154:
++
++	elabels : elabel . COMMA elabels 
++	elabels : elabel .  (reduce by rule 201)
++
++	COMMA	shift 265
++
++
++	.	reduce by rule 201
++
++
++state 155:
++
++	aexp : LBRACE RBRACE .  (reduce by rule 223)
++
++
++
++	.	reduce by rule 223
++
++
++state 156:
++
++	fixity : INFIXR digit .  (reduce by rule 171)
++
++
++
++	.	reduce by rule 171
++
++
++state 157:
++
++	fixity : INFIX digit .  (reduce by rule 169)
++
++
++
++	.	reduce by rule 169
++
++
++state 158:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expnode : IF exp . THEN exp ELSE exp 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++	THEN	shift 266
++
++
++	.	error
++
++
++state 159:
++
++	aexp : HASH field .  (reduce by rule 221)
++
++
++
++	.	reduce by rule 221
++
++
++state 160:
++
++	fctid : id .  (reduce by rule 328)
++
++
++
++	.	reduce by rule 328
++
++
++state 161:
++
++	topdecnode : FUNCTOR funbinds .  (reduce by rule 9)
++
++
++
++	.	reduce by rule 9
++
++
++state 162:
++
++	funbinds : fctid . LPAREN fctarg RPAREN sigconst EQUALOP funbinds' 
++
++	LPAREN	shift 267
++
++
++	.	error
++
++
++state 163:
++
++	decnolocal : FUN tyvarseq . funs 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 168
++	clause	goto 167
++	clauses	goto 166
++	clausesTop	goto 165
++	const	goto 101
++	const'	goto 17
++	funs	goto 268
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	word	goto 1
++
++	.	error
++
++
++state 164:
++
++	decnolocal : FUN funs .  (reduce by rule 118)
++
++
++
++	.	reduce by rule 118
++
++
++state 165:
++
++	funs : clausesTop .  (reduce by rule 138)
++	funs : clausesTop . AND funs 
++
++	AND	shift 269
++
++
++	.	reduce by rule 138
++
++
++state 166:
++
++	clausesTop : clauses .  (reduce by rule 140)
++
++
++
++	.	reduce by rule 140
++
++
++state 167:
++
++	clauses : clause .  (reduce by rule 141)
++	clauses : clause . BAR clauses 
++
++	BAR	shift 270
++
++
++	.	reduce by rule 141
++
++
++state 168:
++
++	clause : apats . constraint EQUALOP exp 
++
++	COLON	shift 272
++
++	constraint	goto 271
++
++	.	reduce by rule 136
++
++
++state 169:
++
++	match : rules .  (reduce by rule 195)
++
++
++
++	.	reduce by rule 195
++
++error:  state 170: shift/reduce conflict (shift BAR, reduce by rule 196)
++
++state 170:
++
++	rules : rule .  (reduce by rule 196)
++	rules : rule . BAR rules 
++
++	BAR	shift 273
++
++
++	.	reduce by rule 196
++
++
++state 171:
++
++	patnode : pat . AS pat 
++	patnode : pat . COLON ty 
++	rule : pat . DARROW exp 
++
++	AS	shift 222
++	COLON	shift 221
++	DARROW	shift 274
++
++
++	.	error
++
++
++state 172:
++
++	expnode : FN match .  (reduce by rule 210)
++
++
++
++	.	reduce by rule 210
++
++
++state 173:
++
++	apatnode : LPAREN . pats RPAREN 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 231
++	patnode	goto 97
++	pats	goto 230
++	word	goto 1
++
++	.	reduce by rule 265
++
++
++state 174:
++
++	eb : opcon . ebrhs 
++
++	EQUALOP	shift 278
++	OF	shift 277
++
++	ebrhs	goto 276
++	ebrhsnode	goto 275
++
++	.	reduce by rule 164
++
++
++state 175:
++
++	con : id .  (reduce by rule 319)
++
++
++
++	.	reduce by rule 319
++
++
++state 176:
++
++	decnolocal : EXCEPTION ebs .  (reduce by rule 123)
++
++
++
++	.	reduce by rule 123
++
++
++state 177:
++
++	ebs : eb .  (reduce by rule 160)
++	ebs : eb . AND ebs 
++
++	AND	shift 279
++
++
++	.	reduce by rule 160
++
++
++state 178:
++
++	opcon : con .  (reduce by rule 158)
++
++
++
++	.	reduce by rule 158
++
++
++state 179:
++
++	opcon : OP . con 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	con	goto 280
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 180:
++
++	db : tyvars . tycon EQUALOP constrs 
++	repl : tyvars . tycon EQUALOP DATATYPE longtycon 
++
++	LONGID	shift 61
++
++	idNoAsterisk	goto 241
++	longidNoAsterisk	goto 69
++	tycon	goto 281
++
++	.	error
++
++
++state 181:
++
++	datatypeRhsnode : repl .  (reduce by rule 180)
++
++
++
++	.	reduce by rule 180
++
++
++state 182:
++
++	dbs : dbs' .  (reduce by rule 187)
++
++
++
++	.	reduce by rule 187
++
++
++state 183:
++
++	datBind : dbs . withtypes 
++
++	WITHTYPE	shift 283
++
++	withtypes	goto 282
++
++	.	reduce by rule 191
++
++
++state 184:
++
++	dbs' : db .  (reduce by rule 188)
++	dbs' : db . AND dbs' 
++
++	AND	shift 284
++
++
++	.	reduce by rule 188
++
++
++state 185:
++
++	datatypeRhs : datatypeRhsnode .  (reduce by rule 178)
++
++
++
++	.	reduce by rule 178
++
++
++state 186:
++
++	decnolocal : DATATYPE datatypeRhs .  (reduce by rule 121)
++
++
++
++	.	reduce by rule 121
++
++
++state 187:
++
++	datatypeRhsnode : datBind .  (reduce by rule 181)
++
++
++
++	.	reduce by rule 181
++
++
++state 188:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expnode : CASE exp . OF match 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++	OF	shift 285
++
++
++	.	error
++
++
++state 189:
++
++	db : tyvars . tycon EQUALOP constrs 
++
++	LONGID	shift 61
++
++	idNoAsterisk	goto 241
++	longidNoAsterisk	goto 69
++	tycon	goto 286
++
++	.	error
++
++
++state 190:
++
++	decnolocal : ABSTYPE datBind . WITH decs END 
++
++	WITH	shift 287
++
++
++	.	error
++
++
++state 191:
++
++	vids : vid vids .  (reduce by rule 317)
++
++
++
++	.	reduce by rule 317
++
++
++state 192:
++
++	expsAndTopdecs : exp SEMICOLON expsAndTopdecs .  (reduce by rule 1)
++
++
++
++	.	reduce by rule 1
++
++
++state 193:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp ORELSE exp .  (reduce by rule 206)
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++
++
++	.	reduce by rule 206
++
++
++state 194:
++
++	expnode : exp HANDLE match .  (reduce by rule 205)
++
++
++
++	.	reduce by rule 205
++
++
++state 195:
++
++	ty'node : tyvar .  (reduce by rule 281)
++
++
++
++	.	reduce by rule 281
++
++
++state 196:
++
++	ty : tynode .  (reduce by rule 276)
++
++
++
++	.	reduce by rule 276
++
++
++state 197:
++
++	ty' : ty'node .  (reduce by rule 280)
++	tynode : ty'node .  (reduce by rule 279)
++
++	LONGID	reduce by rule 280
++	ABSTYPE	reduce by rule 279
++	AND	reduce by rule 279
++	ANDALSO	reduce by rule 279
++	ARROW	reduce by rule 279
++	AS	reduce by rule 279
++	ASTERISK	reduce by rule 280
++	BAR	reduce by rule 279
++	COLON	reduce by rule 279
++	COLONGT	reduce by rule 279
++	COMMA	reduce by rule 279
++	DATATYPE	reduce by rule 279
++	ELSE	reduce by rule 279
++	END	reduce by rule 279
++	EOF	reduce by rule 279
++	EQUALOP	reduce by rule 279
++	EQTYPE	reduce by rule 279
++	EXCEPTION	reduce by rule 279
++	DO	reduce by rule 279
++	DARROW	reduce by rule 279
++	FUN	reduce by rule 279
++	FUNCTOR	reduce by rule 279
++	HANDLE	reduce by rule 279
++	IN	reduce by rule 279
++	INCLUDE	reduce by rule 279
++	INFIX	reduce by rule 279
++	INFIXR	reduce by rule 279
++	LOCAL	reduce by rule 279
++	NONFIX	reduce by rule 279
++	ORELSE	reduce by rule 279
++	OF	reduce by rule 279
++	OPEN	reduce by rule 279
++	OVERLOAD	reduce by rule 279
++	RBRACE	reduce by rule 279
++	RBRACKET	reduce by rule 279
++	RPAREN	reduce by rule 279
++	SEMICOLON	reduce by rule 279
++	SHARING	reduce by rule 279
++	SIGNATURE	reduce by rule 279
++	STRUCTURE	reduce by rule 279
++	THEN	reduce by rule 279
++	TYPE	reduce by rule 279
++	VAL	reduce by rule 279
++	WHERE	reduce by rule 279
++	WITH	reduce by rule 279
++	WITHTYPE	reduce by rule 279
++
++
++	.	error
++
++
++state 198:
++
++	tuple_ty : ty' . ASTERISK tuple_ty 
++	tuple_ty : ty' . ASTERISK ty' 
++	ty'node : ty' . longtycon 
++
++	LONGID	shift 61
++	ASTERISK	shift 289
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 288
++
++	.	error
++
++
++state 199:
++
++	expnode : exp COLON ty .  (reduce by rule 208)
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 208
++
++
++state 200:
++
++	tynode : tuple_ty .  (reduce by rule 277)
++
++
++
++	.	reduce by rule 277
++
++
++state 201:
++
++	ty'node : longtycon .  (reduce by rule 287)
++
++
++
++	.	reduce by rule 287
++
++
++state 202:
++
++	longtycon : longidNoAsterisk .  (reduce by rule 329)
++
++
++
++	.	reduce by rule 329
++
++
++state 203:
++
++	ty'node : LPAREN . ty0_pc RPAREN longtycon 
++	ty'node : LPAREN . ty RPAREN 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 292
++	ty'	goto 198
++	ty'node	goto 197
++	ty0_pc	goto 291
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 204:
++
++	ty'node : LBRACE . tlabels RBRACE 
++	ty'node : LBRACE . RBRACE 
++
++	INT	shift 62
++	LONGID	shift 61
++	ASTERISK	shift 74
++	RBRACE	shift 296
++
++	field	goto 295
++	id	goto 151
++	idNoAsterisk	goto 70
++	int	goto 150
++	longidNoAsterisk	goto 69
++	tlabel	goto 294
++	tlabels	goto 293
++
++	.	error
++
++
++state 205:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp ANDALSO exp .  (reduce by rule 207)
++	expnode : exp . COLON ty 
++
++	COLON	shift 78
++
++
++	.	reduce by rule 207
++
++
++state 206:
++
++	aexp : PRIM string COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 297
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 207:
++
++	aexp : SYMBOL string symattributes . COLON ty SEMICOLON 
++
++	COLON	shift 298
++
++
++	.	error
++
++
++state 208:
++
++	symattributes : id . symattributes 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 208
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	symattributes	goto 299
++
++	.	reduce by rule 244
++
++
++state 209:
++
++	aexp : SYMBOL ASTERISK COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 300
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 210:
++
++	ieattributes : id . ieattributes 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	ieattributes	goto 301
++	id	goto 210
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	reduce by rule 242
++
++
++state 211:
++
++	aexp : IMPORT string ieattributes . COLON ty SEMICOLON 
++
++	COLON	shift 302
++
++
++	.	error
++
++
++state 212:
++
++	aexp : IMPORT ASTERISK ieattributes . COLON ty SEMICOLON 
++
++	COLON	shift 303
++
++
++	.	error
++
++
++state 213:
++
++	aexp : EXPORT string ieattributes . COLON ty SEMICOLON 
++
++	COLON	shift 304
++
++
++	.	error
++
++
++state 214:
++
++	aexp : ADDRESS string symattributes . COLON ty SEMICOLON 
++
++	COLON	shift 305
++
++
++	.	error
++
++
++state 215:
++
++	aexp : CONST string COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 306
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 216:
++
++	aexp : COMMAND_LINE_CONST string COLON . ty EQUALOP constOrBool SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 307
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 217:
++
++	aexp : BUILD_CONST string COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 308
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 218:
++
++	expnode : WHILE exp DO . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 309
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 219:
++
++	decnolocal : VAL tyvarseq valbindTop .  (reduce by rule 117)
++
++
++
++	.	reduce by rule 117
++
++
++state 220:
++
++	valbind : pat EQUALOP . exp valbindRest 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 310
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 221:
++
++	patnode : pat COLON . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 311
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 222:
++
++	patnode : pat AS . pat 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 312
++	patnode	goto 97
++	word	goto 1
++
++	.	error
++
++
++state 223:
++
++	apats : apat apats .  (reduce by rule 255)
++
++
++
++	.	reduce by rule 255
++
++
++state 224:
++
++	valbind : REC rvalbind .  (reduce by rule 129)
++
++
++
++	.	reduce by rule 129
++
++
++state 225:
++
++	patnode : pat . AS pat 
++	patnode : pat . COLON ty 
++	rvalbind : pat . EQUALOP FN match rvalbindRest 
++
++	AS	shift 222
++	COLON	shift 221
++	EQUALOP	shift 313
++
++
++	.	error
++
++
++state 226:
++
++	rvalbind : REC . rvalbind 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	REC	shift 226
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 225
++	patnode	goto 97
++	rvalbind	goto 314
++	word	goto 1
++
++	.	error
++
++
++state 227:
++
++	apatnode : OP longvid .  (reduce by rule 258)
++
++
++
++	.	reduce by rule 258
++
++
++state 228:
++
++	tyvarseq : LPAREN tyvar_pc . RPAREN 
++
++	RPAREN	shift 315
++
++
++	.	error
++
++
++state 229:
++
++	tyvar_pc : tyvar .  (reduce by rule 152)
++	tyvar_pc : tyvar . COMMA tyvar_pc 
++
++	COMMA	shift 316
++
++
++	.	reduce by rule 152
++
++
++state 230:
++
++	apatnode : LPAREN pats . RPAREN 
++
++	RPAREN	shift 317
++
++
++	.	error
++
++
++state 231:
++
++	patnode : pat . AS pat 
++	patnode : pat . COLON ty 
++	pats : pat . commapats 
++
++	AS	shift 222
++	COLON	shift 221
++	COMMA	shift 319
++
++	commapats	goto 318
++
++	.	reduce by rule 267
++
++
++state 232:
++
++	apatnode : LBRACKET pats . RBRACKET 
++
++	RBRACKET	shift 320
++
++
++	.	error
++
++
++state 233:
++
++	patitem : vidNoEqual . constraint opaspat 
++
++	COLON	shift 272
++
++	constraint	goto 321
++
++	.	reduce by rule 136
++
++
++state 234:
++
++	apatnode : LBRACE patitems . RBRACE 
++
++	RBRACE	shift 322
++
++
++	.	error
++
++
++state 235:
++
++	patitems : patitem . COMMA patitems 
++	patitems : patitem .  (reduce by rule 270)
++
++	COMMA	shift 323
++
++
++	.	reduce by rule 270
++
++
++state 236:
++
++	field : id .  (reduce by rule 322)
++	vidNoEqual : id .  (reduce by rule 315)
++
++	AS	reduce by rule 315
++	COLON	reduce by rule 315
++	COMMA	reduce by rule 315
++	EQUALOP	reduce by rule 322
++	RBRACE	reduce by rule 315
++
++
++	.	error
++
++
++state 237:
++
++	patitem : field . EQUALOP pat 
++
++	EQUALOP	shift 324
++
++
++	.	error
++
++
++state 238:
++
++	apatnode : LBRACE RBRACE .  (reduce by rule 263)
++
++
++
++	.	reduce by rule 263
++
++
++state 239:
++
++	patitems : DOTDOTDOT .  (reduce by rule 271)
++
++
++
++	.	reduce by rule 271
++
++
++state 240:
++
++	typBind' : tyvars tycon . EQUALOP ty typBind'' 
++
++	EQUALOP	shift 325
++
++
++	.	error
++
++
++state 241:
++
++	tycon : idNoAsterisk .  (reduce by rule 320)
++
++
++
++	.	reduce by rule 320
++
++
++state 242:
++
++	strbinds : strid sigconst . EQUALOP strbinds' 
++
++	EQUALOP	shift 326
++
++
++	.	error
++
++
++state 243:
++
++	sigconst : COLONGT . sigexp 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp	goto 330
++	sigexp'	goto 329
++	sigexp'node	goto 328
++	sigid	goto 327
++
++	.	error
++
++
++state 244:
++
++	sigconst : COLON . sigexp 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp	goto 332
++	sigexp'	goto 329
++	sigexp'node	goto 328
++	sigid	goto 327
++
++	.	error
++
++
++state 245:
++
++	sigbinds : sigid EQUALOP . sigexp' sigbinds' 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp'	goto 333
++	sigexp'node	goto 328
++	sigid	goto 327
++
++	.	error
++
++
++state 246:
++
++	decnolocal : OVERLOAD priority var . COLON ty AS longvidands 
++
++	COLON	shift 334
++
++
++	.	error
++
++
++state 247:
++
++	var : idEqual .  (reduce by rule 318)
++
++
++
++	.	reduce by rule 318
++
++
++state 248:
++
++	longstrids : longstrid longstrids .  (reduce by rule 335)
++
++
++
++	.	reduce by rule 335
++
++
++state 249:
++
++	aexp : LPAREN expnode RPAREN .  (reduce by rule 225)
++
++
++
++	.	reduce by rule 225
++
++
++state 250:
++
++	aexp : LPAREN exp_ps RPAREN .  (reduce by rule 226)
++
++
++
++	.	reduce by rule 226
++
++
++state 251:
++
++	aexp : LPAREN exp_2c RPAREN .  (reduce by rule 227)
++
++
++
++	.	reduce by rule 227
++
++
++state 252:
++
++	exp_ps : exp SEMICOLON . exp 
++	exp_ps : exp SEMICOLON . exp_ps 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 336
++	exp_ps	goto 335
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 253:
++
++	exp_2c : exp COMMA . exp_2c 
++	exp_2c : exp COMMA . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 338
++	exp_2c	goto 337
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 254:
++
++	strdecnode : LOCAL strdecs IN . strdecs END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 140
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	strdec	goto 139
++	strdecnode	goto 5
++	strdecs	goto 339
++	strdecsnode	goto 137
++
++	.	reduce by rule 11
++
++
++state 255:
++
++	strdecsnode : strdec strdecs .  (reduce by rule 13)
++
++
++
++	.	reduce by rule 13
++
++
++state 256:
++
++	strdecsnode : SEMICOLON strdecs .  (reduce by rule 12)
++
++
++
++	.	reduce by rule 12
++
++
++state 257:
++
++	aexp : LET decs IN . exp END 
++	aexp : LET decs IN . exp_ps END 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 341
++	exp_ps	goto 340
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 258:
++
++	decs : dec decs .  (reduce by rule 111)
++
++
++
++	.	reduce by rule 111
++
++
++state 259:
++
++	decs : SEMICOLON decs .  (reduce by rule 112)
++
++
++
++	.	reduce by rule 112
++
++
++state 260:
++
++	decnode : LOCAL decs . IN decs END 
++
++	IN	shift 342
++
++
++	.	error
++
++
++state 261:
++
++	aexp : LBRACKET exp_list RBRACKET .  (reduce by rule 228)
++
++
++
++	.	reduce by rule 228
++
++
++state 262:
++
++	exp_list : exp COMMA . exp_list 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 148
++	exp_list	goto 343
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 263:
++
++	elabel : field EQUALOP . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 344
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 264:
++
++	aexp : LBRACE elabels RBRACE .  (reduce by rule 222)
++
++
++
++	.	reduce by rule 222
++
++
++state 265:
++
++	elabels : elabel COMMA . elabels 
++
++	INT	shift 62
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	elabel	goto 154
++	elabels	goto 345
++	field	goto 152
++	id	goto 151
++	idNoAsterisk	goto 70
++	int	goto 150
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 266:
++
++	expnode : IF exp THEN . exp ELSE exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 346
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 267:
++
++	funbinds : fctid LPAREN . fctarg RPAREN sigconst EQUALOP funbinds' 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	DATATYPE	shift 361
++	EQTYPE	shift 360
++	EXCEPTION	shift 359
++	INCLUDE	shift 358
++	SEMICOLON	shift 357
++	SHARING	shift 356
++	STRUCTURE	shift 355
++	TYPE	shift 354
++	VAL	shift 353
++
++	fctarg	goto 352
++	id	goto 119
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sharespec	goto 351
++	spec	goto 350
++	specnode	goto 349
++	specs	goto 348
++	strid	goto 347
++
++	.	reduce by rule 62
++
++
++state 268:
++
++	decnolocal : FUN tyvarseq funs .  (reduce by rule 119)
++
++
++
++	.	reduce by rule 119
++
++
++state 269:
++
++	funs : clausesTop AND . funs 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 168
++	clause	goto 167
++	clauses	goto 166
++	clausesTop	goto 165
++	const	goto 101
++	const'	goto 17
++	funs	goto 362
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	word	goto 1
++
++	.	error
++
++
++state 270:
++
++	clauses : clause BAR . clauses 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 168
++	clause	goto 167
++	clauses	goto 363
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	word	goto 1
++
++	.	error
++
++
++state 271:
++
++	clause : apats constraint . EQUALOP exp 
++
++	EQUALOP	shift 364
++
++
++	.	error
++
++
++state 272:
++
++	constraint : COLON . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 365
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 273:
++
++	rules : rule BAR . rules 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 171
++	patnode	goto 97
++	rule	goto 170
++	rules	goto 366
++	word	goto 1
++
++	.	error
++
++
++state 274:
++
++	rule : pat DARROW . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 367
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 275:
++
++	ebrhs : ebrhsnode .  (reduce by rule 163)
++
++
++
++	.	reduce by rule 163
++
++
++state 276:
++
++	eb : opcon ebrhs .  (reduce by rule 162)
++
++
++
++	.	reduce by rule 162
++
++
++state 277:
++
++	ebrhsnode : OF . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 368
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 278:
++
++	ebrhsnode : EQUALOP . longcon 
++	ebrhsnode : EQUALOP . OP longcon 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	OP	shift 371
++
++	longcon	goto 370
++	longid	goto 369
++	longidNoAsterisk	goto 8
++
++	.	error
++
++
++state 279:
++
++	ebs : eb AND . ebs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	OP	shift 179
++
++	con	goto 178
++	eb	goto 177
++	ebs	goto 372
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	opcon	goto 174
++
++	.	error
++
++
++state 280:
++
++	opcon : OP con .  (reduce by rule 159)
++
++
++
++	.	reduce by rule 159
++
++
++state 281:
++
++	db : tyvars tycon . EQUALOP constrs 
++	repl : tyvars tycon . EQUALOP DATATYPE longtycon 
++
++	EQUALOP	shift 373
++
++
++	.	error
++
++
++state 282:
++
++	datBind : dbs withtypes .  (reduce by rule 185)
++
++
++
++	.	reduce by rule 185
++
++
++state 283:
++
++	withtypes : WITHTYPE . typBind 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	typBind	goto 374
++	typBind'	goto 114
++	tyvar	goto 96
++	tyvars	goto 113
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 284:
++
++	dbs' : db AND . dbs' 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	db	goto 184
++	dbs'	goto 375
++	tyvar	goto 96
++	tyvars	goto 189
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 285:
++
++	expnode : CASE exp OF . match 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	match	goto 376
++	pat	goto 171
++	patnode	goto 97
++	rule	goto 170
++	rules	goto 169
++	word	goto 1
++
++	.	error
++
++
++state 286:
++
++	db : tyvars tycon . EQUALOP constrs 
++
++	EQUALOP	shift 377
++
++
++	.	error
++
++
++state 287:
++
++	decnolocal : ABSTYPE datBind WITH . decs END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 146
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 145
++	TYPE	shift 31
++	VAL	shift 30
++
++	dec	goto 144
++	decnode	goto 143
++	decnolocal	goto 142
++	decs	goto 378
++	fixity	goto 12
++
++	.	reduce by rule 110
++
++
++state 288:
++
++	ty'node : ty' longtycon .  (reduce by rule 286)
++
++
++
++	.	reduce by rule 286
++
++
++state 289:
++
++	tuple_ty : ty' ASTERISK . tuple_ty 
++	tuple_ty : ty' ASTERISK . ty' 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 381
++	ty'	goto 380
++	ty'node	goto 379
++	tyvar	goto 195
++
++	.	error
++
++
++state 290:
++
++	tynode : ty ARROW . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 382
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 291:
++
++	ty'node : LPAREN ty0_pc . RPAREN longtycon 
++
++	RPAREN	shift 383
++
++
++	.	error
++
++
++state 292:
++
++	ty'node : LPAREN ty . RPAREN 
++	ty0_pc : ty . COMMA ty 
++	ty0_pc : ty . COMMA ty0_pc 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	COMMA	shift 385
++	RPAREN	shift 384
++
++
++	.	error
++
++
++state 293:
++
++	ty'node : LBRACE tlabels . RBRACE 
++
++	RBRACE	shift 386
++
++
++	.	error
++
++
++state 294:
++
++	tlabels : tlabel . COMMA tlabels 
++	tlabels : tlabel .  (reduce by rule 290)
++
++	COMMA	shift 387
++
++
++	.	reduce by rule 290
++
++
++state 295:
++
++	tlabel : field . COLON ty 
++
++	COLON	shift 388
++
++
++	.	error
++
++
++state 296:
++
++	ty'node : LBRACE RBRACE .  (reduce by rule 283)
++
++
++
++	.	reduce by rule 283
++
++
++state 297:
++
++	aexp : PRIM string COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 389
++
++
++	.	error
++
++
++state 298:
++
++	aexp : SYMBOL string symattributes COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 390
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 299:
++
++	symattributes : id symattributes .  (reduce by rule 245)
++
++
++
++	.	reduce by rule 245
++
++
++state 300:
++
++	aexp : SYMBOL ASTERISK COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 391
++
++
++	.	error
++
++
++state 301:
++
++	ieattributes : id ieattributes .  (reduce by rule 243)
++
++
++
++	.	reduce by rule 243
++
++
++state 302:
++
++	aexp : IMPORT string ieattributes COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 392
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 303:
++
++	aexp : IMPORT ASTERISK ieattributes COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 393
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 304:
++
++	aexp : EXPORT string ieattributes COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 394
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 305:
++
++	aexp : ADDRESS string symattributes COLON . ty SEMICOLON 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 395
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 306:
++
++	aexp : CONST string COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 396
++
++
++	.	error
++
++
++state 307:
++
++	aexp : COMMAND_LINE_CONST string COLON ty . EQUALOP constOrBool SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	EQUALOP	shift 397
++
++
++	.	error
++
++
++state 308:
++
++	aexp : BUILD_CONST string COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 398
++
++
++	.	error
++
++
++state 309:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expnode : WHILE exp DO exp .  (reduce by rule 212)
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 212
++
++
++state 310:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	valbind : pat EQUALOP exp . valbindRest 
++
++	AND	shift 400
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++	valbindRest	goto 399
++
++	.	reduce by rule 130
++
++
++state 311:
++
++	patnode : pat COLON ty .  (reduce by rule 252)
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 252
++
++
++state 312:
++
++	patnode : pat . AS pat 
++	patnode : pat AS pat .  (reduce by rule 251)
++	patnode : pat . COLON ty 
++
++	AS	shift 222
++	COLON	shift 221
++
++
++	.	reduce by rule 251
++
++
++state 313:
++
++	rvalbind : pat EQUALOP . FN match rvalbindRest 
++
++	FN	shift 401
++
++
++	.	error
++
++
++state 314:
++
++	rvalbind : REC rvalbind .  (reduce by rule 132)
++
++
++
++	.	reduce by rule 132
++
++
++state 315:
++
++	tyvarseq : LPAREN tyvar_pc RPAREN .  (reduce by rule 151)
++
++
++
++	.	reduce by rule 151
++
++
++state 316:
++
++	tyvar_pc : tyvar COMMA . tyvar_pc 
++
++	TYVAR	shift 111
++
++	tyvar	goto 229
++	tyvar_pc	goto 402
++
++	.	error
++
++
++state 317:
++
++	apatnode : LPAREN pats RPAREN .  (reduce by rule 261)
++
++
++
++	.	reduce by rule 261
++
++
++state 318:
++
++	pats : pat commapats .  (reduce by rule 266)
++
++
++
++	.	reduce by rule 266
++
++
++state 319:
++
++	commapats : COMMA . pat commapats 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 403
++	patnode	goto 97
++	word	goto 1
++
++	.	error
++
++
++state 320:
++
++	apatnode : LBRACKET pats RBRACKET .  (reduce by rule 262)
++
++
++
++	.	reduce by rule 262
++
++
++state 321:
++
++	patitem : vidNoEqual constraint . opaspat 
++
++	AS	shift 405
++
++	opaspat	goto 404
++
++	.	reduce by rule 274
++
++
++state 322:
++
++	apatnode : LBRACE patitems RBRACE .  (reduce by rule 264)
++
++
++
++	.	reduce by rule 264
++
++
++state 323:
++
++	patitems : patitem COMMA . patitems 
++
++	INT	shift 62
++	LONGID	shift 61
++	ASTERISK	shift 74
++	DOTDOTDOT	shift 239
++
++	field	goto 237
++	id	goto 236
++	idNoAsterisk	goto 70
++	int	goto 150
++	longidNoAsterisk	goto 69
++	patitem	goto 235
++	patitems	goto 406
++	vidNoEqual	goto 233
++
++	.	error
++
++
++state 324:
++
++	patitem : field EQUALOP . pat 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 407
++	patnode	goto 97
++	word	goto 1
++
++	.	error
++
++
++state 325:
++
++	typBind' : tyvars tycon EQUALOP . ty typBind'' 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 408
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 326:
++
++	strbinds : strid sigconst EQUALOP . strbinds' 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	LET	shift 417
++	STRUCT	shift 416
++
++	longid	goto 415
++	longidNoAsterisk	goto 8
++	strbinds'	goto 414
++	strexp	goto 413
++	strexp1	goto 412
++	strexp2	goto 411
++	strexp2node	goto 410
++	strexpnode	goto 409
++
++	.	error
++
++
++state 327:
++
++	sigexp'node : sigid .  (reduce by rule 51)
++
++
++
++	.	reduce by rule 51
++
++
++state 328:
++
++	sigexp' : sigexp'node .  (reduce by rule 50)
++
++
++
++	.	reduce by rule 50
++
++
++state 329:
++
++	sigexp : sigexp' .  (reduce by rule 40)
++	sigexp : sigexp' . wherespecs 
++
++	WHERE	shift 420
++
++	wherespecs	goto 419
++	wherespecs'	goto 418
++
++	.	reduce by rule 40
++
++
++state 330:
++
++	sigconst : COLONGT sigexp .  (reduce by rule 61)
++
++
++
++	.	reduce by rule 61
++
++
++state 331:
++
++	sigexp'node : SIG . specs END 
++
++	DATATYPE	shift 361
++	EQTYPE	shift 360
++	EXCEPTION	shift 359
++	INCLUDE	shift 358
++	SEMICOLON	shift 357
++	SHARING	shift 356
++	STRUCTURE	shift 355
++	TYPE	shift 354
++	VAL	shift 353
++
++	sharespec	goto 351
++	spec	goto 350
++	specnode	goto 349
++	specs	goto 421
++
++	.	reduce by rule 62
++
++
++state 332:
++
++	sigconst : COLON sigexp .  (reduce by rule 60)
++
++
++
++	.	reduce by rule 60
++
++
++state 333:
++
++	sigbinds : sigid EQUALOP sigexp' . sigbinds' 
++
++	AND	shift 424
++	WHERE	shift 423
++
++	sigbinds'	goto 422
++
++	.	reduce by rule 53
++
++
++state 334:
++
++	decnolocal : OVERLOAD priority var COLON . ty AS longvidands 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 425
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 335:
++
++	exp_ps : exp SEMICOLON exp_ps .  (reduce by rule 203)
++
++
++
++	.	reduce by rule 203
++
++
++state 336:
++
++	exp_ps : exp . SEMICOLON exp 
++	exp_ps : exp SEMICOLON exp .  (reduce by rule 202)
++	exp_ps : exp . SEMICOLON exp_ps 
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++	SEMICOLON	shift 252
++
++
++	.	reduce by rule 202
++
++
++state 337:
++
++	exp_2c : exp COMMA exp_2c .  (reduce by rule 246)
++
++
++
++	.	reduce by rule 246
++
++
++state 338:
++
++	exp_2c : exp . COMMA exp_2c 
++	exp_2c : exp . COMMA exp 
++	exp_2c : exp COMMA exp .  (reduce by rule 247)
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	COMMA	shift 253
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 247
++
++
++state 339:
++
++	strdecnode : LOCAL strdecs IN strdecs . END 
++
++	END	shift 426
++
++
++	.	error
++
++
++state 340:
++
++	aexp : LET decs IN exp_ps . END 
++
++	END	shift 427
++
++
++	.	error
++
++
++state 341:
++
++	aexp : LET decs IN exp . END 
++	exp_ps : exp . SEMICOLON exp 
++	exp_ps : exp . SEMICOLON exp_ps 
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	END	shift 428
++	HANDLE	shift 77
++	ORELSE	shift 76
++	SEMICOLON	shift 252
++
++
++	.	error
++
++
++state 342:
++
++	decnode : LOCAL decs IN . decs END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 146
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 145
++	TYPE	shift 31
++	VAL	shift 30
++
++	dec	goto 144
++	decnode	goto 143
++	decnolocal	goto 142
++	decs	goto 429
++	fixity	goto 12
++
++	.	reduce by rule 110
++
++
++state 343:
++
++	exp_list : exp COMMA exp_list .  (reduce by rule 249)
++
++
++
++	.	reduce by rule 249
++
++
++state 344:
++
++	elabel : field EQUALOP exp .  (reduce by rule 199)
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 199
++
++
++state 345:
++
++	elabels : elabel COMMA elabels .  (reduce by rule 200)
++
++
++
++	.	reduce by rule 200
++
++
++state 346:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expnode : IF exp THEN exp . ELSE exp 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	ELSE	shift 430
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	error
++
++
++state 347:
++
++	fctarg : strid . COLON sigexp 
++
++	COLON	shift 431
++
++
++	.	error
++
++
++state 348:
++
++	fctarg : specs .  (reduce by rule 109)
++
++
++
++	.	reduce by rule 109
++
++
++state 349:
++
++	spec : specnode .  (reduce by rule 65)
++
++
++
++	.	reduce by rule 65
++
++
++state 350:
++
++	specs : spec . specs 
++
++	DATATYPE	shift 361
++	EQTYPE	shift 360
++	EXCEPTION	shift 359
++	INCLUDE	shift 358
++	SEMICOLON	shift 357
++	SHARING	shift 356
++	STRUCTURE	shift 355
++	TYPE	shift 354
++	VAL	shift 353
++
++	sharespec	goto 351
++	spec	goto 350
++	specnode	goto 349
++	specs	goto 432
++
++	.	reduce by rule 62
++
++
++state 351:
++
++	specnode : sharespec .  (reduce by rule 75)
++
++
++
++	.	reduce by rule 75
++
++
++state 352:
++
++	funbinds : fctid LPAREN fctarg . RPAREN sigconst EQUALOP funbinds' 
++
++	RPAREN	shift 433
++
++
++	.	error
++
++
++state 353:
++
++	specnode : VAL . valdescs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	EQUALOP	shift 73
++
++	id	goto 72
++	idEqual	goto 247
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	valdesc	goto 436
++	valdescs	goto 435
++	var	goto 434
++
++	.	error
++
++
++state 354:
++
++	specnode : TYPE . typdescs 
++	specnode : TYPE . typBind 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	typBind	goto 440
++	typBind'	goto 114
++	typdesc	goto 439
++	typdescs	goto 438
++	tyvar	goto 96
++	tyvars	goto 437
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 355:
++
++	specnode : STRUCTURE . strdescs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 119
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	strdescs	goto 442
++	strid	goto 441
++
++	.	error
++
++
++state 356:
++
++	sharespec : SHARING . TYPE longtyconeqns 
++	sharespec : SHARING . longstrideqns 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	TYPE	shift 445
++
++	longid	goto 130
++	longidNoAsterisk	goto 8
++	longstrid	goto 444
++	longstrideqns	goto 443
++
++	.	error
++
++
++state 357:
++
++	specs : SEMICOLON . specs 
++
++	DATATYPE	shift 361
++	EQTYPE	shift 360
++	EXCEPTION	shift 359
++	INCLUDE	shift 358
++	SEMICOLON	shift 357
++	SHARING	shift 356
++	STRUCTURE	shift 355
++	TYPE	shift 354
++	VAL	shift 353
++
++	sharespec	goto 351
++	spec	goto 350
++	specnode	goto 349
++	specs	goto 446
++
++	.	reduce by rule 62
++
++
++state 358:
++
++	specnode : INCLUDE . sigexp 
++	specnode : INCLUDE . sigid sigids 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp	goto 448
++	sigexp'	goto 329
++	sigexp'node	goto 328
++	sigid	goto 447
++
++	.	error
++
++
++state 359:
++
++	specnode : EXCEPTION . exndescs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	con	goto 451
++	exndesc	goto 450
++	exndescs	goto 449
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 360:
++
++	specnode : EQTYPE . typdescs 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	typdesc	goto 439
++	typdescs	goto 453
++	tyvar	goto 96
++	tyvars	goto 452
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 361:
++
++	specnode : DATATYPE . datatypeRhsNoWithtype 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	datBindNoWithtype	goto 458
++	datatypeRhsNoWithtype	goto 457
++	datatypeRhsnodeNoWithtype	goto 456
++	db	goto 184
++	dbs	goto 455
++	dbs'	goto 182
++	repl	goto 454
++	tyvar	goto 96
++	tyvars	goto 180
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 362:
++
++	funs : clausesTop AND funs .  (reduce by rule 139)
++
++
++
++	.	reduce by rule 139
++
++
++state 363:
++
++	clauses : clause BAR clauses .  (reduce by rule 142)
++
++
++
++	.	reduce by rule 142
++
++
++state 364:
++
++	clause : apats constraint EQUALOP . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 459
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 365:
++
++	constraint : COLON ty .  (reduce by rule 137)
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 137
++
++
++state 366:
++
++	rules : rule BAR rules .  (reduce by rule 197)
++
++
++
++	.	reduce by rule 197
++
++
++state 367:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	rule : pat DARROW exp .  (reduce by rule 198)
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 198
++
++
++state 368:
++
++	ebrhsnode : OF ty .  (reduce by rule 165)
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 165
++
++
++state 369:
++
++	longcon : longid .  (reduce by rule 332)
++
++
++
++	.	reduce by rule 332
++
++
++state 370:
++
++	ebrhsnode : EQUALOP longcon .  (reduce by rule 166)
++
++
++
++	.	reduce by rule 166
++
++
++state 371:
++
++	ebrhsnode : EQUALOP OP . longcon 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++
++	longcon	goto 460
++	longid	goto 369
++	longidNoAsterisk	goto 8
++
++	.	error
++
++
++state 372:
++
++	ebs : eb AND ebs .  (reduce by rule 161)
++
++
++
++	.	reduce by rule 161
++
++
++state 373:
++
++	db : tyvars tycon EQUALOP . constrs 
++	repl : tyvars tycon EQUALOP . DATATYPE longtycon 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	DATATYPE	shift 464
++	OP	shift 179
++
++	con	goto 178
++	constr	goto 463
++	constrs	goto 462
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	opcon	goto 461
++
++	.	error
++
++
++state 374:
++
++	withtypes : WITHTYPE typBind .  (reduce by rule 192)
++
++
++
++	.	reduce by rule 192
++
++
++state 375:
++
++	dbs' : db AND dbs' .  (reduce by rule 189)
++
++
++
++	.	reduce by rule 189
++
++
++state 376:
++
++	expnode : CASE exp OF match .  (reduce by rule 211)
++
++
++
++	.	reduce by rule 211
++
++
++state 377:
++
++	db : tyvars tycon EQUALOP . constrs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	OP	shift 179
++
++	con	goto 178
++	constr	goto 463
++	constrs	goto 462
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	opcon	goto 461
++
++	.	error
++
++
++state 378:
++
++	decnolocal : ABSTYPE datBind WITH decs . END 
++
++	END	shift 465
++
++
++	.	error
++
++
++state 379:
++
++	ty' : ty'node .  (reduce by rule 280)
++
++
++
++	.	reduce by rule 280
++
++
++state 380:
++
++	tuple_ty : ty' . ASTERISK tuple_ty 
++	tuple_ty : ty' . ASTERISK ty' 
++	tuple_ty : ty' ASTERISK ty' .  (reduce by rule 292)
++	ty'node : ty' . longtycon 
++
++	LONGID	shift 61
++	ASTERISK	shift 289
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 288
++
++	.	reduce by rule 292
++
++
++state 381:
++
++	tuple_ty : ty' ASTERISK tuple_ty .  (reduce by rule 291)
++
++
++
++	.	reduce by rule 291
++
++
++state 382:
++
++	tynode : ty . ARROW ty 
++	tynode : ty ARROW ty .  (reduce by rule 278)
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 278
++
++
++state 383:
++
++	ty'node : LPAREN ty0_pc RPAREN . longtycon 
++
++	LONGID	shift 61
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 466
++
++	.	error
++
++
++state 384:
++
++	ty'node : LPAREN ty RPAREN .  (reduce by rule 285)
++
++
++
++	.	reduce by rule 285
++
++
++state 385:
++
++	ty0_pc : ty COMMA . ty 
++	ty0_pc : ty COMMA . ty0_pc 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 468
++	ty'	goto 198
++	ty'node	goto 197
++	ty0_pc	goto 467
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 386:
++
++	ty'node : LBRACE tlabels RBRACE .  (reduce by rule 282)
++
++
++
++	.	reduce by rule 282
++
++
++state 387:
++
++	tlabels : tlabel COMMA . tlabels 
++
++	INT	shift 62
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	field	goto 295
++	id	goto 151
++	idNoAsterisk	goto 70
++	int	goto 150
++	longidNoAsterisk	goto 69
++	tlabel	goto 294
++	tlabels	goto 469
++
++	.	error
++
++
++state 388:
++
++	tlabel : field COLON . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 470
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 389:
++
++	aexp : PRIM string COLON ty SEMICOLON .  (reduce by rule 239)
++
++
++
++	.	reduce by rule 239
++
++
++state 390:
++
++	aexp : SYMBOL string symattributes COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 471
++
++
++	.	error
++
++
++state 391:
++
++	aexp : SYMBOL ASTERISK COLON ty SEMICOLON .  (reduce by rule 241)
++
++
++
++	.	reduce by rule 241
++
++
++state 392:
++
++	aexp : IMPORT string ieattributes COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 472
++
++
++	.	error
++
++
++state 393:
++
++	aexp : IMPORT ASTERISK ieattributes COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 473
++
++
++	.	error
++
++
++state 394:
++
++	aexp : EXPORT string ieattributes COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 474
++
++
++	.	error
++
++
++state 395:
++
++	aexp : ADDRESS string symattributes COLON ty . SEMICOLON 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	SEMICOLON	shift 475
++
++
++	.	error
++
++
++state 396:
++
++	aexp : CONST string COLON ty SEMICOLON .  (reduce by rule 235)
++
++
++
++	.	reduce by rule 235
++
++
++state 397:
++
++	aexp : COMMAND_LINE_CONST string COLON ty EQUALOP . constOrBool SEMICOLON 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 74
++
++	const	goto 478
++	const'	goto 17
++	constOrBool	goto 477
++	id	goto 476
++	idNoAsterisk	goto 70
++	int	goto 11
++	longidNoAsterisk	goto 69
++	word	goto 1
++
++	.	error
++
++
++state 398:
++
++	aexp : BUILD_CONST string COLON ty SEMICOLON .  (reduce by rule 233)
++
++
++
++	.	reduce by rule 233
++
++
++state 399:
++
++	valbind : pat EQUALOP exp valbindRest .  (reduce by rule 128)
++
++
++
++	.	reduce by rule 128
++
++
++state 400:
++
++	valbindRest : AND . valbind 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	REC	shift 106
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 98
++	patnode	goto 97
++	valbind	goto 479
++	word	goto 1
++
++	.	error
++
++
++state 401:
++
++	rvalbind : pat EQUALOP FN . match rvalbindRest 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	match	goto 480
++	pat	goto 171
++	patnode	goto 97
++	rule	goto 170
++	rules	goto 169
++	word	goto 1
++
++	.	error
++
++
++state 402:
++
++	tyvar_pc : tyvar COMMA tyvar_pc .  (reduce by rule 153)
++
++
++
++	.	reduce by rule 153
++
++
++state 403:
++
++	commapats : COMMA pat . commapats 
++	patnode : pat . AS pat 
++	patnode : pat . COLON ty 
++
++	AS	shift 222
++	COLON	shift 221
++	COMMA	shift 319
++
++	commapats	goto 481
++
++	.	reduce by rule 267
++
++
++state 404:
++
++	patitem : vidNoEqual constraint opaspat .  (reduce by rule 273)
++
++
++
++	.	reduce by rule 273
++
++
++state 405:
++
++	opaspat : AS . pat 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 482
++	patnode	goto 97
++	word	goto 1
++
++	.	error
++
++
++state 406:
++
++	patitems : patitem COMMA patitems .  (reduce by rule 269)
++
++
++
++	.	reduce by rule 269
++
++
++state 407:
++
++	patitem : field EQUALOP pat .  (reduce by rule 272)
++	patnode : pat . AS pat 
++	patnode : pat . COLON ty 
++
++	AS	shift 222
++	COLON	shift 221
++
++
++	.	reduce by rule 272
++
++
++state 408:
++
++	tynode : ty . ARROW ty 
++	typBind' : tyvars tycon EQUALOP ty . typBind'' 
++
++	AND	shift 484
++	ARROW	shift 290
++
++	typBind''	goto 483
++
++	.	reduce by rule 146
++
++
++state 409:
++
++	strexp : strexpnode .  (reduce by rule 27)
++
++
++
++	.	reduce by rule 27
++
++
++state 410:
++
++	strexp2 : strexp2node .  (reduce by rule 33)
++	strexpnode : strexp2node .  (reduce by rule 30)
++
++	ABSTYPE	reduce by rule 33
++	AND	reduce by rule 33
++	COLON	reduce by rule 30
++	COLONGT	reduce by rule 30
++	DATATYPE	reduce by rule 33
++	END	reduce by rule 33
++	EOF	reduce by rule 33
++	EXCEPTION	reduce by rule 33
++	FUN	reduce by rule 33
++	FUNCTOR	reduce by rule 33
++	IN	reduce by rule 33
++	INFIX	reduce by rule 33
++	INFIXR	reduce by rule 33
++	LOCAL	reduce by rule 33
++	NONFIX	reduce by rule 33
++	OPEN	reduce by rule 33
++	OVERLOAD	reduce by rule 33
++	RPAREN	reduce by rule 33
++	SEMICOLON	reduce by rule 33
++	SIGNATURE	reduce by rule 33
++	STRUCTURE	reduce by rule 33
++	TYPE	reduce by rule 33
++	VAL	reduce by rule 33
++
++
++	.	error
++
++
++state 411:
++
++	strbinds' : strexp2 . strbinds'2 
++
++	AND	shift 486
++
++	strbinds'2	goto 485
++
++	.	reduce by rule 25
++
++
++state 412:
++
++	strbinds' : strexp1 . strbinds'1 
++	strexpnode : strexp1 .  (reduce by rule 28)
++	strexpnode : strexp1 . wherespecs 
++
++	ABSTYPE	reduce by rule 25
++	AND	shift 486
++	COLON	reduce by rule 28
++	COLONGT	reduce by rule 28
++	DATATYPE	reduce by rule 25
++	END	reduce by rule 25
++	EOF	reduce by rule 25
++	EXCEPTION	reduce by rule 25
++	FUN	reduce by rule 25
++	FUNCTOR	reduce by rule 25
++	IN	reduce by rule 25
++	INFIX	reduce by rule 25
++	INFIXR	reduce by rule 25
++	LOCAL	reduce by rule 25
++	NONFIX	reduce by rule 25
++	OPEN	reduce by rule 25
++	OVERLOAD	reduce by rule 25
++	RPAREN	reduce by rule 25
++	SEMICOLON	reduce by rule 25
++	SIGNATURE	reduce by rule 25
++	STRUCTURE	reduce by rule 25
++	TYPE	reduce by rule 25
++	VAL	reduce by rule 25
++	WHERE	shift 490
++
++	strbinds'1	goto 489
++	strbinds'2	goto 488
++	wherespecs	goto 487
++	wherespecs'	goto 418
++
++	.	error
++
++
++state 413:
++
++	strexp1 : strexp . COLON sigexp' 
++	strexp1 : strexp . COLONGT sigexp' 
++
++	COLON	shift 492
++	COLONGT	shift 491
++
++
++	.	error
++
++
++state 414:
++
++	strbinds : strid sigconst EQUALOP strbinds' .  (reduce by rule 18)
++
++
++
++	.	reduce by rule 18
++
++
++state 415:
++
++	strexp2node : longid .  (reduce by rule 34)
++	strexp2node : longid . arg_fct 
++
++	LPAREN	shift 494
++
++	arg_fct	goto 493
++
++	.	reduce by rule 34
++
++
++state 416:
++
++	strexp2node : STRUCT . strdecs END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 140
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	strdec	goto 139
++	strdecnode	goto 5
++	strdecs	goto 495
++	strdecsnode	goto 137
++
++	.	reduce by rule 11
++
++
++state 417:
++
++	strexp2node : LET . strdecs IN strexp END 
++
++	ABSTYPE	shift 57
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 140
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	strdec	goto 139
++	strdecnode	goto 5
++	strdecs	goto 496
++	strdecsnode	goto 137
++
++	.	reduce by rule 11
++
++
++state 418:
++
++	wherespecs : wherespecs' .  (reduce by rule 42)
++
++
++
++	.	reduce by rule 42
++
++
++state 419:
++
++	sigexp : sigexp' wherespecs .  (reduce by rule 41)
++
++
++
++	.	reduce by rule 41
++
++
++state 420:
++
++	wherespecs' : WHERE . wherespec 
++	wherespecs' : WHERE . wherespec wherespecs' 
++	wherespecs' : WHERE . wherespec andspecs 
++
++	TYPE	shift 498
++
++	wherespec	goto 497
++
++	.	error
++
++
++state 421:
++
++	sigexp'node : SIG specs . END 
++
++	END	shift 499
++
++
++	.	error
++
++
++state 422:
++
++	sigbinds : sigid EQUALOP sigexp' sigbinds' .  (reduce by rule 49)
++
++
++
++	.	reduce by rule 49
++
++
++state 423:
++
++	sigbinds' : WHERE . wherespec sigbinds'' 
++
++	TYPE	shift 498
++
++	wherespec	goto 500
++
++	.	error
++
++
++state 424:
++
++	sigbinds' : AND . sigbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigbinds	goto 501
++	sigid	goto 120
++
++	.	error
++
++
++state 425:
++
++	decnolocal : OVERLOAD priority var COLON ty . AS longvidands 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	AS	shift 502
++
++
++	.	error
++
++
++state 426:
++
++	strdecnode : LOCAL strdecs IN strdecs END .  (reduce by rule 16)
++
++
++
++	.	reduce by rule 16
++
++
++state 427:
++
++	aexp : LET decs IN exp_ps END .  (reduce by rule 231)
++
++
++
++	.	reduce by rule 231
++
++
++state 428:
++
++	aexp : LET decs IN exp END .  (reduce by rule 230)
++
++
++
++	.	reduce by rule 230
++
++
++state 429:
++
++	decnode : LOCAL decs IN decs . END 
++
++	END	shift 503
++
++
++	.	error
++
++
++state 430:
++
++	expnode : IF exp THEN exp ELSE . exp 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	CASE	shift 55
++	EQUALOP	shift 53
++	FN	shift 51
++	HASH	shift 48
++	IF	shift 47
++	LBRACE	shift 44
++	LBRACKET	shift 43
++	LET	shift 42
++	LPAREN	shift 40
++	OP	shift 38
++	RAISE	shift 35
++	WHILE	shift 29
++	BUILD_CONST	shift 28
++	COMMAND_LINE_CONST	shift 27
++	CONST	shift 26
++	ADDRESS	shift 25
++	EXPORT	shift 24
++	IMPORT	shift 23
++	SYMBOL	shift 22
++	PRIM	shift 21
++
++	aexp	goto 20
++	app_exp	goto 19
++	const	goto 18
++	const'	goto 17
++	exp	goto 504
++	expnode	goto 14
++	int	goto 11
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvid	goto 7
++	word	goto 1
++
++	.	error
++
++
++state 431:
++
++	fctarg : strid COLON . sigexp 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp	goto 505
++	sigexp'	goto 329
++	sigexp'node	goto 328
++	sigid	goto 327
++
++	.	error
++
++
++state 432:
++
++	specs : spec specs .  (reduce by rule 64)
++
++
++
++	.	reduce by rule 64
++
++
++state 433:
++
++	funbinds : fctid LPAREN fctarg RPAREN . sigconst EQUALOP funbinds' 
++
++	COLON	shift 244
++	COLONGT	shift 243
++
++	sigconst	goto 506
++
++	.	reduce by rule 59
++
++
++state 434:
++
++	valdesc : var . COLON ty 
++
++	COLON	shift 507
++
++
++	.	error
++
++
++state 435:
++
++	specnode : VAL valdescs .  (reduce by rule 66)
++
++
++
++	.	reduce by rule 66
++
++
++state 436:
++
++	valdescs : valdesc .  (reduce by rule 91)
++	valdescs : valdesc . AND valdescs 
++
++	AND	shift 508
++
++
++	.	reduce by rule 91
++
++
++state 437:
++
++	typBind' : tyvars . tycon EQUALOP ty typBind'' 
++	typdesc : tyvars . tycon 
++
++	LONGID	shift 61
++
++	idNoAsterisk	goto 241
++	longidNoAsterisk	goto 69
++	tycon	goto 509
++
++	.	error
++
++
++state 438:
++
++	specnode : TYPE typdescs .  (reduce by rule 67)
++
++
++
++	.	reduce by rule 67
++
++
++state 439:
++
++	typdescs : typdesc .  (reduce by rule 88)
++	typdescs : typdesc . AND typdescs 
++
++	AND	shift 510
++
++
++	.	reduce by rule 88
++
++
++state 440:
++
++	specnode : TYPE typBind .  (reduce by rule 68)
++
++
++
++	.	reduce by rule 68
++
++
++state 441:
++
++	strdescs : strid . COLON sigexp' strdescs' 
++
++	COLON	shift 511
++
++
++	.	error
++
++
++state 442:
++
++	specnode : STRUCTURE strdescs .  (reduce by rule 72)
++
++
++
++	.	reduce by rule 72
++
++
++state 443:
++
++	sharespec : SHARING longstrideqns .  (reduce by rule 77)
++
++
++
++	.	reduce by rule 77
++
++
++state 444:
++
++	longstrideqns : longstrid . EQUALOP longstrid 
++	longstrideqns : longstrid . EQUALOP longstrideqns 
++
++	EQUALOP	shift 512
++
++
++	.	error
++
++
++state 445:
++
++	sharespec : SHARING TYPE . longtyconeqns 
++
++	LONGID	shift 61
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 514
++	longtyconeqns	goto 513
++
++	.	error
++
++
++state 446:
++
++	specs : SEMICOLON specs .  (reduce by rule 63)
++
++
++
++	.	reduce by rule 63
++
++
++state 447:
++
++	sigexp'node : sigid .  (reduce by rule 51)
++	specnode : INCLUDE sigid . sigids 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigid	goto 516
++	sigids	goto 515
++
++	.	reduce by rule 51
++
++
++state 448:
++
++	specnode : INCLUDE sigexp .  (reduce by rule 73)
++
++
++
++	.	reduce by rule 73
++
++
++state 449:
++
++	specnode : EXCEPTION exndescs .  (reduce by rule 71)
++
++
++
++	.	reduce by rule 71
++
++
++state 450:
++
++	exndescs : exndesc .  (reduce by rule 94)
++	exndescs : exndesc . AND exndescs 
++
++	AND	shift 517
++
++
++	.	reduce by rule 94
++
++
++state 451:
++
++	exndesc : con . tyOpt 
++
++	OF	shift 519
++
++	tyOpt	goto 518
++
++	.	reduce by rule 97
++
++
++state 452:
++
++	typdesc : tyvars . tycon 
++
++	LONGID	shift 61
++
++	idNoAsterisk	goto 241
++	longidNoAsterisk	goto 69
++	tycon	goto 520
++
++	.	error
++
++
++state 453:
++
++	specnode : EQTYPE typdescs .  (reduce by rule 69)
++
++
++
++	.	reduce by rule 69
++
++
++state 454:
++
++	datatypeRhsnodeNoWithtype : repl .  (reduce by rule 182)
++
++
++
++	.	reduce by rule 182
++
++
++state 455:
++
++	datBindNoWithtype : dbs .  (reduce by rule 186)
++
++
++
++	.	reduce by rule 186
++
++
++state 456:
++
++	datatypeRhsNoWithtype : datatypeRhsnodeNoWithtype .  (reduce by rule 179)
++
++
++
++	.	reduce by rule 179
++
++
++state 457:
++
++	specnode : DATATYPE datatypeRhsNoWithtype .  (reduce by rule 70)
++
++
++
++	.	reduce by rule 70
++
++
++state 458:
++
++	datatypeRhsnodeNoWithtype : datBindNoWithtype .  (reduce by rule 183)
++
++
++
++	.	reduce by rule 183
++
++
++state 459:
++
++	clause : apats constraint EQUALOP exp .  (reduce by rule 143)
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 143
++
++
++state 460:
++
++	ebrhsnode : EQUALOP OP longcon .  (reduce by rule 167)
++
++
++
++	.	reduce by rule 167
++
++
++state 461:
++
++	constr : opcon .  (reduce by rule 156)
++	constr : opcon . OF ty 
++
++	OF	shift 521
++
++
++	.	reduce by rule 156
++
++
++state 462:
++
++	db : tyvars tycon EQUALOP constrs .  (reduce by rule 190)
++
++
++
++	.	reduce by rule 190
++
++
++state 463:
++
++	constrs : constr .  (reduce by rule 154)
++	constrs : constr . BAR constrs 
++
++	BAR	shift 522
++
++
++	.	reduce by rule 154
++
++
++state 464:
++
++	repl : tyvars tycon EQUALOP DATATYPE . longtycon 
++
++	LONGID	shift 61
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 523
++
++	.	error
++
++
++state 465:
++
++	decnolocal : ABSTYPE datBind WITH decs END .  (reduce by rule 122)
++
++
++
++	.	reduce by rule 122
++
++
++state 466:
++
++	ty'node : LPAREN ty0_pc RPAREN longtycon .  (reduce by rule 284)
++
++
++
++	.	reduce by rule 284
++
++
++state 467:
++
++	ty0_pc : ty COMMA ty0_pc .  (reduce by rule 294)
++
++
++
++	.	reduce by rule 294
++
++
++state 468:
++
++	ty0_pc : ty . COMMA ty 
++	ty0_pc : ty COMMA ty .  (reduce by rule 293)
++	ty0_pc : ty . COMMA ty0_pc 
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++	COMMA	shift 385
++
++
++	.	reduce by rule 293
++
++
++state 469:
++
++	tlabels : tlabel COMMA tlabels .  (reduce by rule 289)
++
++
++
++	.	reduce by rule 289
++
++
++state 470:
++
++	tlabel : field COLON ty .  (reduce by rule 288)
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 288
++
++
++state 471:
++
++	aexp : SYMBOL string symattributes COLON ty SEMICOLON .  (reduce by rule 240)
++
++
++
++	.	reduce by rule 240
++
++
++state 472:
++
++	aexp : IMPORT string ieattributes COLON ty SEMICOLON .  (reduce by rule 237)
++
++
++
++	.	reduce by rule 237
++
++
++state 473:
++
++	aexp : IMPORT ASTERISK ieattributes COLON ty SEMICOLON .  (reduce by rule 238)
++
++
++
++	.	reduce by rule 238
++
++
++state 474:
++
++	aexp : EXPORT string ieattributes COLON ty SEMICOLON .  (reduce by rule 236)
++
++
++
++	.	reduce by rule 236
++
++
++state 475:
++
++	aexp : ADDRESS string symattributes COLON ty SEMICOLON .  (reduce by rule 232)
++
++
++
++	.	reduce by rule 232
++
++
++state 476:
++
++	constOrBool : id .  (reduce by rule 296)
++
++
++
++	.	reduce by rule 296
++
++
++state 477:
++
++	aexp : COMMAND_LINE_CONST string COLON ty EQUALOP constOrBool . SEMICOLON 
++
++	SEMICOLON	shift 524
++
++
++	.	error
++
++
++state 478:
++
++	constOrBool : const .  (reduce by rule 295)
++
++
++
++	.	reduce by rule 295
++
++
++state 479:
++
++	valbindRest : AND valbind .  (reduce by rule 131)
++
++
++
++	.	reduce by rule 131
++
++
++state 480:
++
++	rvalbind : pat EQUALOP FN match . rvalbindRest 
++
++	AND	shift 526
++
++	rvalbindRest	goto 525
++
++	.	reduce by rule 134
++
++
++state 481:
++
++	commapats : COMMA pat commapats .  (reduce by rule 268)
++
++
++
++	.	reduce by rule 268
++
++
++state 482:
++
++	opaspat : AS pat .  (reduce by rule 275)
++	patnode : pat . AS pat 
++	patnode : pat . COLON ty 
++
++	AS	shift 222
++	COLON	shift 221
++
++
++	.	reduce by rule 275
++
++
++state 483:
++
++	typBind' : tyvars tycon EQUALOP ty typBind'' .  (reduce by rule 145)
++
++
++
++	.	reduce by rule 145
++
++
++state 484:
++
++	typBind'' : AND . typBind' 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	typBind'	goto 527
++	tyvar	goto 96
++	tyvars	goto 113
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 485:
++
++	strbinds' : strexp2 strbinds'2 .  (reduce by rule 20)
++
++
++
++	.	reduce by rule 20
++
++
++state 486:
++
++	strbinds'2 : AND . strbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 119
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	strbinds	goto 528
++	strid	goto 117
++
++	.	error
++
++
++state 487:
++
++	strexpnode : strexp1 wherespecs .  (reduce by rule 29)
++
++
++
++	.	reduce by rule 29
++
++
++state 488:
++
++	strbinds'1 : strbinds'2 .  (reduce by rule 21)
++
++
++
++	.	reduce by rule 21
++
++
++state 489:
++
++	strbinds' : strexp1 strbinds'1 .  (reduce by rule 19)
++
++
++
++	.	reduce by rule 19
++
++
++state 490:
++
++	strbinds'1 : WHERE . wherespec strbinds'1' 
++	wherespecs' : WHERE . wherespec 
++	wherespecs' : WHERE . wherespec wherespecs' 
++	wherespecs' : WHERE . wherespec andspecs 
++
++	TYPE	shift 498
++
++	wherespec	goto 529
++
++	.	error
++
++
++state 491:
++
++	strexp1 : strexp COLONGT . sigexp' 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp'	goto 530
++	sigexp'node	goto 328
++	sigid	goto 327
++
++	.	error
++
++
++state 492:
++
++	strexp1 : strexp COLON . sigexp' 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp'	goto 531
++	sigexp'node	goto 328
++	sigid	goto 327
++
++	.	error
++
++
++state 493:
++
++	strexp2node : longid arg_fct .  (reduce by rule 36)
++
++
++
++	.	reduce by rule 36
++
++
++state 494:
++
++	arg_fct : LPAREN . strexp RPAREN 
++	arg_fct : LPAREN . strdecs RPAREN 
++
++	LONGID	shift 61
++	ABSTYPE	shift 57
++	ASTERISK	shift 56
++	DATATYPE	shift 54
++	EXCEPTION	shift 52
++	FUN	shift 50
++	INFIX	shift 46
++	INFIXR	shift 45
++	LET	shift 417
++	LOCAL	shift 41
++	NONFIX	shift 39
++	OPEN	shift 37
++	OVERLOAD	shift 36
++	SEMICOLON	shift 140
++	STRUCT	shift 416
++	STRUCTURE	shift 32
++	TYPE	shift 31
++	VAL	shift 30
++
++	decnolocal	goto 16
++	fixity	goto 12
++	longid	goto 415
++	longidNoAsterisk	goto 8
++	strdec	goto 139
++	strdecnode	goto 5
++	strdecs	goto 535
++	strdecsnode	goto 137
++	strexp	goto 534
++	strexp1	goto 533
++	strexp2node	goto 532
++	strexpnode	goto 409
++
++	.	reduce by rule 11
++
++
++state 495:
++
++	strexp2node : STRUCT strdecs . END 
++
++	END	shift 536
++
++
++	.	error
++
++
++state 496:
++
++	strexp2node : LET strdecs . IN strexp END 
++
++	IN	shift 537
++
++
++	.	error
++
++
++state 497:
++
++	wherespecs' : WHERE wherespec .  (reduce by rule 43)
++	wherespecs' : WHERE wherespec . wherespecs' 
++	wherespecs' : WHERE wherespec . andspecs 
++
++	AND	shift 540
++	WHERE	shift 420
++
++	andspecs	goto 539
++	wherespecs'	goto 538
++
++	.	reduce by rule 43
++
++
++state 498:
++
++	wherespec : TYPE . tyvars longtycon EQUALOP ty 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	tyvar	goto 96
++	tyvars	goto 541
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 499:
++
++	sigexp'node : SIG specs END .  (reduce by rule 52)
++
++
++
++	.	reduce by rule 52
++
++
++state 500:
++
++	sigbinds' : WHERE wherespec . sigbinds'' 
++
++	AND	shift 544
++	WHERE	shift 423
++
++	sigbinds'	goto 543
++	sigbinds''	goto 542
++
++	.	reduce by rule 53
++
++
++state 501:
++
++	sigbinds' : AND sigbinds .  (reduce by rule 54)
++
++
++
++	.	reduce by rule 54
++
++
++state 502:
++
++	decnolocal : OVERLOAD priority var COLON ty AS . longvidands 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	EQUALOP	shift 53
++
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvidands	goto 546
++	longvid	goto 545
++
++	.	error
++
++
++state 503:
++
++	decnode : LOCAL decs IN decs END .  (reduce by rule 115)
++
++
++
++	.	reduce by rule 115
++
++
++state 504:
++
++	expnode : exp . HANDLE match 
++	expnode : exp . ORELSE exp 
++	expnode : exp . ANDALSO exp 
++	expnode : exp . COLON ty 
++	expnode : IF exp THEN exp ELSE exp .  (reduce by rule 213)
++
++	ANDALSO	shift 79
++	COLON	shift 78
++	HANDLE	shift 77
++	ORELSE	shift 76
++
++
++	.	reduce by rule 213
++
++
++state 505:
++
++	fctarg : strid COLON sigexp .  (reduce by rule 108)
++
++
++
++	.	reduce by rule 108
++
++
++state 506:
++
++	funbinds : fctid LPAREN fctarg RPAREN sigconst . EQUALOP funbinds' 
++
++	EQUALOP	shift 547
++
++
++	.	error
++
++
++state 507:
++
++	valdesc : var COLON . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 548
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 508:
++
++	valdescs : valdesc AND . valdescs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	EQUALOP	shift 73
++
++	id	goto 72
++	idEqual	goto 247
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	valdesc	goto 436
++	valdescs	goto 549
++	var	goto 434
++
++	.	error
++
++
++state 509:
++
++	typBind' : tyvars tycon . EQUALOP ty typBind'' 
++	typdesc : tyvars tycon .  (reduce by rule 90)
++
++	EQUALOP	shift 325
++
++
++	.	reduce by rule 90
++
++
++state 510:
++
++	typdescs : typdesc AND . typdescs 
++
++	TYVAR	shift 111
++	LPAREN	shift 116
++
++	typdesc	goto 439
++	typdescs	goto 550
++	tyvar	goto 96
++	tyvars	goto 452
++	tyvarseq	goto 112
++
++	.	reduce by rule 149
++
++
++state 511:
++
++	strdescs : strid COLON . sigexp' strdescs' 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	SIG	shift 331
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigexp'	goto 551
++	sigexp'node	goto 328
++	sigid	goto 327
++
++	.	error
++
++
++state 512:
++
++	longstrideqns : longstrid EQUALOP . longstrid 
++	longstrideqns : longstrid EQUALOP . longstrideqns 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++
++	longid	goto 130
++	longidNoAsterisk	goto 8
++	longstrid	goto 553
++	longstrideqns	goto 552
++
++	.	error
++
++
++state 513:
++
++	sharespec : SHARING TYPE longtyconeqns .  (reduce by rule 76)
++
++
++
++	.	reduce by rule 76
++
++
++state 514:
++
++	longtyconeqns : longtycon . EQUALOP longtycon 
++	longtyconeqns : longtycon . EQUALOP longtyconeqns 
++
++	EQUALOP	shift 554
++
++
++	.	error
++
++
++state 515:
++
++	specnode : INCLUDE sigid sigids .  (reduce by rule 74)
++
++
++
++	.	reduce by rule 74
++
++
++state 516:
++
++	sigids : sigid .  (reduce by rule 326)
++	sigids : sigid . sigids 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigid	goto 516
++	sigids	goto 555
++
++	.	reduce by rule 326
++
++
++state 517:
++
++	exndescs : exndesc AND . exndescs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	con	goto 451
++	exndesc	goto 450
++	exndescs	goto 556
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 518:
++
++	exndesc : con tyOpt .  (reduce by rule 96)
++
++
++
++	.	reduce by rule 96
++
++
++state 519:
++
++	tyOpt : OF . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 557
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 520:
++
++	typdesc : tyvars tycon .  (reduce by rule 90)
++
++
++
++	.	reduce by rule 90
++
++
++state 521:
++
++	constr : opcon OF . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 558
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 522:
++
++	constrs : constr BAR . constrs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	OP	shift 179
++
++	con	goto 178
++	constr	goto 463
++	constrs	goto 559
++	id	goto 175
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	opcon	goto 461
++
++	.	error
++
++
++state 523:
++
++	repl : tyvars tycon EQUALOP DATATYPE longtycon .  (reduce by rule 184)
++
++
++
++	.	reduce by rule 184
++
++
++state 524:
++
++	aexp : COMMAND_LINE_CONST string COLON ty EQUALOP constOrBool SEMICOLON .  (reduce by rule 234)
++
++
++
++	.	reduce by rule 234
++
++
++state 525:
++
++	rvalbind : pat EQUALOP FN match rvalbindRest .  (reduce by rule 133)
++
++
++
++	.	reduce by rule 133
++
++
++state 526:
++
++	rvalbindRest : AND . rvalbind 
++
++	CHAR	shift 63
++	INT	shift 62
++	LONGID	shift 61
++	REAL	shift 60
++	STRING	shift 59
++	WORD	shift 58
++	ASTERISK	shift 56
++	LBRACE	shift 110
++	LBRACKET	shift 109
++	LPAREN	shift 173
++	OP	shift 107
++	REC	shift 226
++	WILD	shift 105
++
++	apat	goto 104
++	apatnode	goto 103
++	apats	goto 102
++	const	goto 101
++	const'	goto 17
++	int	goto 11
++	longid	goto 100
++	longidNoAsterisk	goto 8
++	longvidNoEqual	goto 99
++	pat	goto 225
++	patnode	goto 97
++	rvalbind	goto 560
++	word	goto 1
++
++	.	error
++
++
++state 527:
++
++	typBind'' : AND typBind' .  (reduce by rule 147)
++
++
++
++	.	reduce by rule 147
++
++
++state 528:
++
++	strbinds'2 : AND strbinds .  (reduce by rule 26)
++
++
++
++	.	reduce by rule 26
++
++
++state 529:
++
++	strbinds'1 : WHERE wherespec . strbinds'1' 
++	wherespecs' : WHERE wherespec .  (reduce by rule 43)
++	wherespecs' : WHERE wherespec . wherespecs' 
++	wherespecs' : WHERE wherespec . andspecs 
++
++	ABSTYPE	reduce by rule 25
++	AND	shift 563
++	COLON	reduce by rule 43
++	COLONGT	reduce by rule 43
++	DATATYPE	reduce by rule 25
++	END	reduce by rule 25
++	EOF	reduce by rule 25
++	EXCEPTION	reduce by rule 25
++	FUN	reduce by rule 25
++	FUNCTOR	reduce by rule 25
++	IN	reduce by rule 25
++	INFIX	reduce by rule 25
++	INFIXR	reduce by rule 25
++	LOCAL	reduce by rule 25
++	NONFIX	reduce by rule 25
++	OPEN	reduce by rule 25
++	OVERLOAD	reduce by rule 25
++	RPAREN	reduce by rule 25
++	SEMICOLON	reduce by rule 25
++	SIGNATURE	reduce by rule 25
++	STRUCTURE	reduce by rule 25
++	TYPE	reduce by rule 25
++	VAL	reduce by rule 25
++	WHERE	shift 490
++
++	andspecs	goto 539
++	strbinds'1	goto 562
++	strbinds'1'	goto 561
++	strbinds'2	goto 488
++	wherespecs'	goto 538
++
++	.	error
++
++
++state 530:
++
++	strexp1 : strexp COLONGT sigexp' .  (reduce by rule 32)
++
++
++
++	.	reduce by rule 32
++
++
++state 531:
++
++	strexp1 : strexp COLON sigexp' .  (reduce by rule 31)
++
++
++
++	.	reduce by rule 31
++
++
++state 532:
++
++	strexpnode : strexp2node .  (reduce by rule 30)
++
++
++
++	.	reduce by rule 30
++
++
++state 533:
++
++	strexpnode : strexp1 .  (reduce by rule 28)
++	strexpnode : strexp1 . wherespecs 
++
++	WHERE	shift 420
++
++	wherespecs	goto 487
++	wherespecs'	goto 418
++
++	.	reduce by rule 28
++
++
++state 534:
++
++	arg_fct : LPAREN strexp . RPAREN 
++	strexp1 : strexp . COLON sigexp' 
++	strexp1 : strexp . COLONGT sigexp' 
++
++	COLON	shift 492
++	COLONGT	shift 491
++	RPAREN	shift 564
++
++
++	.	error
++
++
++state 535:
++
++	arg_fct : LPAREN strdecs . RPAREN 
++
++	RPAREN	shift 565
++
++
++	.	error
++
++
++state 536:
++
++	strexp2node : STRUCT strdecs END .  (reduce by rule 35)
++
++
++
++	.	reduce by rule 35
++
++
++state 537:
++
++	strexp2node : LET strdecs IN . strexp END 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	LET	shift 417
++	STRUCT	shift 416
++
++	longid	goto 415
++	longidNoAsterisk	goto 8
++	strexp	goto 566
++	strexp1	goto 533
++	strexp2node	goto 532
++	strexpnode	goto 409
++
++	.	error
++
++
++state 538:
++
++	wherespecs' : WHERE wherespec wherespecs' .  (reduce by rule 44)
++
++
++
++	.	reduce by rule 44
++
++
++state 539:
++
++	wherespecs' : WHERE wherespec andspecs .  (reduce by rule 45)
++
++
++
++	.	reduce by rule 45
++
++
++state 540:
++
++	andspecs : AND . wherespec 
++	andspecs : AND . wherespec andspecs 
++	andspecs : AND . wherespec wherespecs' 
++
++	TYPE	shift 498
++
++	wherespec	goto 567
++
++	.	error
++
++
++state 541:
++
++	wherespec : TYPE tyvars . longtycon EQUALOP ty 
++
++	LONGID	shift 61
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 568
++
++	.	error
++
++
++state 542:
++
++	sigbinds' : WHERE wherespec sigbinds'' .  (reduce by rule 55)
++
++
++
++	.	reduce by rule 55
++
++
++state 543:
++
++	sigbinds'' : sigbinds' .  (reduce by rule 56)
++
++
++
++	.	reduce by rule 56
++
++
++state 544:
++
++	sigbinds' : AND . sigbinds 
++	sigbinds'' : AND . wherespec sigbinds'' 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	TYPE	shift 498
++
++	id	goto 122
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	sigbinds	goto 501
++	sigid	goto 120
++	wherespec	goto 569
++
++	.	error
++
++
++state 545:
++
++	longvidands : longvid .  (reduce by rule 193)
++	longvidands : longvid . AND longvidands 
++
++	AND	shift 570
++
++
++	.	reduce by rule 193
++
++
++state 546:
++
++	decnolocal : OVERLOAD priority var COLON ty AS longvidands .  (reduce by rule 126)
++
++
++
++	.	reduce by rule 126
++
++
++state 547:
++
++	funbinds : fctid LPAREN fctarg RPAREN sigconst EQUALOP . funbinds' 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	LET	shift 417
++	STRUCT	shift 416
++
++	funbinds'	goto 573
++	longid	goto 415
++	longidNoAsterisk	goto 8
++	strexp	goto 413
++	strexp1	goto 572
++	strexp2	goto 571
++	strexp2node	goto 410
++	strexpnode	goto 409
++
++	.	error
++
++
++state 548:
++
++	tynode : ty . ARROW ty 
++	valdesc : var COLON ty .  (reduce by rule 93)
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 93
++
++
++state 549:
++
++	valdescs : valdesc AND valdescs .  (reduce by rule 92)
++
++
++
++	.	reduce by rule 92
++
++
++state 550:
++
++	typdescs : typdesc AND typdescs .  (reduce by rule 89)
++
++
++
++	.	reduce by rule 89
++
++
++state 551:
++
++	strdescs : strid COLON sigexp' . strdescs' 
++
++	AND	shift 576
++	WHERE	shift 575
++
++	strdescs'	goto 574
++
++	.	reduce by rule 83
++
++
++state 552:
++
++	longstrideqns : longstrid EQUALOP longstrideqns .  (reduce by rule 79)
++
++
++
++	.	reduce by rule 79
++
++
++state 553:
++
++	longstrideqns : longstrid . EQUALOP longstrid 
++	longstrideqns : longstrid EQUALOP longstrid .  (reduce by rule 78)
++	longstrideqns : longstrid . EQUALOP longstrideqns 
++
++	EQUALOP	shift 512
++
++
++	.	reduce by rule 78
++
++
++state 554:
++
++	longtyconeqns : longtycon EQUALOP . longtycon 
++	longtyconeqns : longtycon EQUALOP . longtyconeqns 
++
++	LONGID	shift 61
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 578
++	longtyconeqns	goto 577
++
++	.	error
++
++
++state 555:
++
++	sigids : sigid sigids .  (reduce by rule 327)
++
++
++
++	.	reduce by rule 327
++
++
++state 556:
++
++	exndescs : exndesc AND exndescs .  (reduce by rule 95)
++
++
++
++	.	reduce by rule 95
++
++
++state 557:
++
++	tyOpt : OF ty .  (reduce by rule 98)
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 98
++
++
++state 558:
++
++	constr : opcon OF ty .  (reduce by rule 157)
++	tynode : ty . ARROW ty 
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 157
++
++
++state 559:
++
++	constrs : constr BAR constrs .  (reduce by rule 155)
++
++
++
++	.	reduce by rule 155
++
++
++state 560:
++
++	rvalbindRest : AND rvalbind .  (reduce by rule 135)
++
++
++
++	.	reduce by rule 135
++
++
++state 561:
++
++	strbinds'1 : WHERE wherespec strbinds'1' .  (reduce by rule 22)
++
++
++
++	.	reduce by rule 22
++
++
++state 562:
++
++	strbinds'1' : strbinds'1 .  (reduce by rule 23)
++
++
++
++	.	reduce by rule 23
++
++
++state 563:
++
++	andspecs : AND . wherespec 
++	andspecs : AND . wherespec andspecs 
++	andspecs : AND . wherespec wherespecs' 
++	strbinds'1' : AND . wherespec strbinds'1' 
++	strbinds'2 : AND . strbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	TYPE	shift 498
++
++	id	goto 119
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	strbinds	goto 528
++	strid	goto 117
++	wherespec	goto 579
++
++	.	error
++
++
++state 564:
++
++	arg_fct : LPAREN strexp RPAREN .  (reduce by rule 38)
++
++
++
++	.	reduce by rule 38
++
++
++state 565:
++
++	arg_fct : LPAREN strdecs RPAREN .  (reduce by rule 39)
++
++
++
++	.	reduce by rule 39
++
++
++state 566:
++
++	strexp1 : strexp . COLON sigexp' 
++	strexp1 : strexp . COLONGT sigexp' 
++	strexp2node : LET strdecs IN strexp . END 
++
++	COLON	shift 492
++	COLONGT	shift 491
++	END	shift 580
++
++
++	.	error
++
++
++state 567:
++
++	andspecs : AND wherespec .  (reduce by rule 46)
++	andspecs : AND wherespec . andspecs 
++	andspecs : AND wherespec . wherespecs' 
++
++	AND	shift 540
++	WHERE	shift 420
++
++	andspecs	goto 582
++	wherespecs'	goto 581
++
++	.	reduce by rule 46
++
++
++state 568:
++
++	wherespec : TYPE tyvars longtycon . EQUALOP ty 
++
++	EQUALOP	shift 583
++
++
++	.	error
++
++
++state 569:
++
++	sigbinds'' : AND wherespec . sigbinds'' 
++
++	AND	shift 544
++	WHERE	shift 423
++
++	sigbinds'	goto 543
++	sigbinds''	goto 584
++
++	.	reduce by rule 53
++
++
++state 570:
++
++	longvidands : longvid AND . longvidands 
++
++	LONGID	shift 61
++	ASTERISK	shift 56
++	EQUALOP	shift 53
++
++	longid	goto 10
++	longidEqual	goto 9
++	longidNoAsterisk	goto 8
++	longvidands	goto 585
++	longvid	goto 545
++
++	.	error
++
++
++state 571:
++
++	funbinds' : strexp2 . funbinds'2 
++
++	AND	shift 587
++
++	funbinds'2	goto 586
++
++	.	reduce by rule 104
++
++
++state 572:
++
++	funbinds' : strexp1 . funbinds'1 
++	strexpnode : strexp1 .  (reduce by rule 28)
++	strexpnode : strexp1 . wherespecs 
++
++	ABSTYPE	reduce by rule 104
++	AND	shift 587
++	COLON	reduce by rule 28
++	COLONGT	reduce by rule 28
++	DATATYPE	reduce by rule 104
++	EOF	reduce by rule 104
++	EXCEPTION	reduce by rule 104
++	FUN	reduce by rule 104
++	FUNCTOR	reduce by rule 104
++	INFIX	reduce by rule 104
++	INFIXR	reduce by rule 104
++	LOCAL	reduce by rule 104
++	NONFIX	reduce by rule 104
++	OPEN	reduce by rule 104
++	OVERLOAD	reduce by rule 104
++	SEMICOLON	reduce by rule 104
++	SIGNATURE	reduce by rule 104
++	STRUCTURE	reduce by rule 104
++	TYPE	reduce by rule 104
++	VAL	reduce by rule 104
++	WHERE	shift 590
++
++	funbinds'1	goto 589
++	funbinds'2	goto 588
++	wherespecs	goto 487
++	wherespecs'	goto 418
++
++	.	error
++
++
++state 573:
++
++	funbinds : fctid LPAREN fctarg RPAREN sigconst EQUALOP funbinds' .  (reduce by rule 99)
++
++
++
++	.	reduce by rule 99
++
++
++state 574:
++
++	strdescs : strid COLON sigexp' strdescs' .  (reduce by rule 82)
++
++
++
++	.	reduce by rule 82
++
++
++state 575:
++
++	strdescs' : WHERE . wherespec strdescs'' 
++
++	TYPE	shift 498
++
++	wherespec	goto 591
++
++	.	error
++
++
++state 576:
++
++	strdescs' : AND . strdescs 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	id	goto 119
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	strdescs	goto 592
++	strid	goto 441
++
++	.	error
++
++
++state 577:
++
++	longtyconeqns : longtycon EQUALOP longtyconeqns .  (reduce by rule 81)
++
++
++
++	.	reduce by rule 81
++
++
++state 578:
++
++	longtyconeqns : longtycon . EQUALOP longtycon 
++	longtyconeqns : longtycon EQUALOP longtycon .  (reduce by rule 80)
++	longtyconeqns : longtycon . EQUALOP longtyconeqns 
++
++	EQUALOP	shift 554
++
++
++	.	reduce by rule 80
++
++
++state 579:
++
++	andspecs : AND wherespec .  (reduce by rule 46)
++	andspecs : AND wherespec . andspecs 
++	andspecs : AND wherespec . wherespecs' 
++	strbinds'1' : AND wherespec . strbinds'1' 
++
++	ABSTYPE	reduce by rule 25
++	AND	shift 563
++	COLON	reduce by rule 46
++	COLONGT	reduce by rule 46
++	DATATYPE	reduce by rule 25
++	END	reduce by rule 25
++	EOF	reduce by rule 25
++	EXCEPTION	reduce by rule 25
++	FUN	reduce by rule 25
++	FUNCTOR	reduce by rule 25
++	IN	reduce by rule 25
++	INFIX	reduce by rule 25
++	INFIXR	reduce by rule 25
++	LOCAL	reduce by rule 25
++	NONFIX	reduce by rule 25
++	OPEN	reduce by rule 25
++	OVERLOAD	reduce by rule 25
++	RPAREN	reduce by rule 25
++	SEMICOLON	reduce by rule 25
++	SIGNATURE	reduce by rule 25
++	STRUCTURE	reduce by rule 25
++	TYPE	reduce by rule 25
++	VAL	reduce by rule 25
++	WHERE	shift 490
++
++	andspecs	goto 582
++	strbinds'1	goto 562
++	strbinds'1'	goto 593
++	strbinds'2	goto 488
++	wherespecs'	goto 581
++
++	.	error
++
++
++state 580:
++
++	strexp2node : LET strdecs IN strexp END .  (reduce by rule 37)
++
++
++
++	.	reduce by rule 37
++
++
++state 581:
++
++	andspecs : AND wherespec wherespecs' .  (reduce by rule 48)
++
++
++
++	.	reduce by rule 48
++
++
++state 582:
++
++	andspecs : AND wherespec andspecs .  (reduce by rule 47)
++
++
++
++	.	reduce by rule 47
++
++
++state 583:
++
++	wherespec : TYPE tyvars longtycon EQUALOP . ty 
++
++	LONGID	shift 61
++	TYVAR	shift 111
++	LBRACE	shift 204
++	LPAREN	shift 203
++
++	longidNoAsterisk	goto 202
++	longtycon	goto 201
++	tuple_ty	goto 200
++	ty	goto 594
++	ty'	goto 198
++	ty'node	goto 197
++	tynode	goto 196
++	tyvar	goto 195
++
++	.	error
++
++
++state 584:
++
++	sigbinds'' : AND wherespec sigbinds'' .  (reduce by rule 57)
++
++
++
++	.	reduce by rule 57
++
++
++state 585:
++
++	longvidands : longvid AND longvidands .  (reduce by rule 194)
++
++
++
++	.	reduce by rule 194
++
++
++state 586:
++
++	funbinds' : strexp2 funbinds'2 .  (reduce by rule 101)
++
++
++
++	.	reduce by rule 101
++
++
++state 587:
++
++	funbinds'2 : AND . funbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++
++	fctid	goto 162
++	funbinds	goto 595
++	id	goto 160
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++
++	.	error
++
++
++state 588:
++
++	funbinds'1 : funbinds'2 .  (reduce by rule 102)
++
++
++
++	.	reduce by rule 102
++
++
++state 589:
++
++	funbinds' : strexp1 funbinds'1 .  (reduce by rule 100)
++
++
++
++	.	reduce by rule 100
++
++
++state 590:
++
++	funbinds'1 : WHERE . wherespec funbinds'1' 
++	wherespecs' : WHERE . wherespec 
++	wherespecs' : WHERE . wherespec wherespecs' 
++	wherespecs' : WHERE . wherespec andspecs 
++
++	TYPE	shift 498
++
++	wherespec	goto 596
++
++	.	error
++
++
++state 591:
++
++	strdescs' : WHERE wherespec . strdescs'' 
++
++	AND	shift 599
++	WHERE	shift 575
++
++	strdescs'	goto 598
++	strdescs''	goto 597
++
++	.	reduce by rule 83
++
++
++state 592:
++
++	strdescs' : AND strdescs .  (reduce by rule 84)
++
++
++
++	.	reduce by rule 84
++
++
++state 593:
++
++	strbinds'1' : AND wherespec strbinds'1' .  (reduce by rule 24)
++
++
++
++	.	reduce by rule 24
++
++
++state 594:
++
++	tynode : ty . ARROW ty 
++	wherespec : TYPE tyvars longtycon EQUALOP ty .  (reduce by rule 58)
++
++	ARROW	shift 290
++
++
++	.	reduce by rule 58
++
++
++state 595:
++
++	funbinds'2 : AND funbinds .  (reduce by rule 105)
++
++
++
++	.	reduce by rule 105
++
++
++state 596:
++
++	funbinds'1 : WHERE wherespec . funbinds'1' 
++	wherespecs' : WHERE wherespec .  (reduce by rule 43)
++	wherespecs' : WHERE wherespec . wherespecs' 
++	wherespecs' : WHERE wherespec . andspecs 
++
++	ABSTYPE	reduce by rule 104
++	AND	shift 602
++	COLON	reduce by rule 43
++	COLONGT	reduce by rule 43
++	DATATYPE	reduce by rule 104
++	EOF	reduce by rule 104
++	EXCEPTION	reduce by rule 104
++	FUN	reduce by rule 104
++	FUNCTOR	reduce by rule 104
++	INFIX	reduce by rule 104
++	INFIXR	reduce by rule 104
++	LOCAL	reduce by rule 104
++	NONFIX	reduce by rule 104
++	OPEN	reduce by rule 104
++	OVERLOAD	reduce by rule 104
++	SEMICOLON	reduce by rule 104
++	SIGNATURE	reduce by rule 104
++	STRUCTURE	reduce by rule 104
++	TYPE	reduce by rule 104
++	VAL	reduce by rule 104
++	WHERE	shift 590
++
++	andspecs	goto 539
++	funbinds'1	goto 601
++	funbinds'1'	goto 600
++	funbinds'2	goto 588
++	wherespecs'	goto 538
++
++	.	error
++
++
++state 597:
++
++	strdescs' : WHERE wherespec strdescs'' .  (reduce by rule 85)
++
++
++
++	.	reduce by rule 85
++
++
++state 598:
++
++	strdescs'' : strdescs' .  (reduce by rule 86)
++
++
++
++	.	reduce by rule 86
++
++
++state 599:
++
++	strdescs' : AND . strdescs 
++	strdescs'' : AND . wherespec strdescs'' 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	TYPE	shift 498
++
++	id	goto 119
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	strdescs	goto 592
++	strid	goto 441
++	wherespec	goto 603
++
++	.	error
++
++
++state 600:
++
++	funbinds'1 : WHERE wherespec funbinds'1' .  (reduce by rule 103)
++
++
++
++	.	reduce by rule 103
++
++
++state 601:
++
++	funbinds'1' : funbinds'1 .  (reduce by rule 106)
++
++
++
++	.	reduce by rule 106
++
++
++state 602:
++
++	andspecs : AND . wherespec 
++	andspecs : AND . wherespec andspecs 
++	andspecs : AND . wherespec wherespecs' 
++	funbinds'1' : AND . wherespec funbinds'1' 
++	funbinds'2 : AND . funbinds 
++
++	LONGID	shift 61
++	ASTERISK	shift 74
++	TYPE	shift 498
++
++	fctid	goto 162
++	funbinds	goto 595
++	id	goto 160
++	idNoAsterisk	goto 70
++	longidNoAsterisk	goto 69
++	wherespec	goto 604
++
++	.	error
++
++
++state 603:
++
++	strdescs'' : AND wherespec . strdescs'' 
++
++	AND	shift 599
++	WHERE	shift 575
++
++	strdescs'	goto 598
++	strdescs''	goto 605
++
++	.	reduce by rule 83
++
++
++state 604:
++
++	andspecs : AND wherespec .  (reduce by rule 46)
++	andspecs : AND wherespec . andspecs 
++	andspecs : AND wherespec . wherespecs' 
++	funbinds'1' : AND wherespec . funbinds'1' 
++
++	ABSTYPE	reduce by rule 104
++	AND	shift 602
++	COLON	reduce by rule 46
++	COLONGT	reduce by rule 46
++	DATATYPE	reduce by rule 104
++	EOF	reduce by rule 104
++	EXCEPTION	reduce by rule 104
++	FUN	reduce by rule 104
++	FUNCTOR	reduce by rule 104
++	INFIX	reduce by rule 104
++	INFIXR	reduce by rule 104
++	LOCAL	reduce by rule 104
++	NONFIX	reduce by rule 104
++	OPEN	reduce by rule 104
++	OVERLOAD	reduce by rule 104
++	SEMICOLON	reduce by rule 104
++	SIGNATURE	reduce by rule 104
++	STRUCTURE	reduce by rule 104
++	TYPE	reduce by rule 104
++	VAL	reduce by rule 104
++	WHERE	shift 590
++
++	andspecs	goto 582
++	funbinds'1	goto 601
++	funbinds'1'	goto 606
++	funbinds'2	goto 588
++	wherespecs'	goto 581
++
++	.	error
++
++
++state 605:
++
++	strdescs'' : AND wherespec strdescs'' .  (reduce by rule 87)
++
++
++
++	.	reduce by rule 87
++
++
++state 606:
++
++	funbinds'1' : AND wherespec funbinds'1' .  (reduce by rule 107)
++
++
++
++	.	reduce by rule 107
++
++
++state 607:
++
++
++	EOF	accept
++
++
++	.	error
++
++882 of 2617 action table entries left after compaction
++1472 goto table entries
+diff -urN mlton-20100608~/mlton/front-end/ml.grm.sig mlton-20100608/mlton/front-end/ml.grm.sig
+--- mlton-20100608~/mlton/front-end/ml.grm.sig	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/ml.grm.sig	2013-04-22 09:58:07.845216222 -0400
+@@ -0,0 +1,88 @@
++signature ML_TOKENS =
++sig
++type ('a,'b) token
++type svalue
++val PRIM:  'a * 'a -> (svalue,'a) token
++val SYMBOL:  'a * 'a -> (svalue,'a) token
++val IMPORT:  'a * 'a -> (svalue,'a) token
++val EXPORT:  'a * 'a -> (svalue,'a) token
++val ADDRESS:  'a * 'a -> (svalue,'a) token
++val CONST:  'a * 'a -> (svalue,'a) token
++val COMMAND_LINE_CONST:  'a * 'a -> (svalue,'a) token
++val BUILD_CONST:  'a * 'a -> (svalue,'a) token
++val WITHTYPE:  'a * 'a -> (svalue,'a) token
++val WITH:  'a * 'a -> (svalue,'a) token
++val WILD:  'a * 'a -> (svalue,'a) token
++val WHILE:  'a * 'a -> (svalue,'a) token
++val WHERE:  'a * 'a -> (svalue,'a) token
++val VAL:  'a * 'a -> (svalue,'a) token
++val TYPE:  'a * 'a -> (svalue,'a) token
++val THEN:  'a * 'a -> (svalue,'a) token
++val STRUCTURE:  'a * 'a -> (svalue,'a) token
++val STRUCT:  'a * 'a -> (svalue,'a) token
++val SIGNATURE:  'a * 'a -> (svalue,'a) token
++val SIG:  'a * 'a -> (svalue,'a) token
++val SHARING:  'a * 'a -> (svalue,'a) token
++val SEMICOLON:  'a * 'a -> (svalue,'a) token
++val RPAREN:  'a * 'a -> (svalue,'a) token
++val REC:  'a * 'a -> (svalue,'a) token
++val RBRACKET:  'a * 'a -> (svalue,'a) token
++val RBRACE:  'a * 'a -> (svalue,'a) token
++val RAISE:  'a * 'a -> (svalue,'a) token
++val OVERLOAD:  'a * 'a -> (svalue,'a) token
++val OPEN:  'a * 'a -> (svalue,'a) token
++val OP:  'a * 'a -> (svalue,'a) token
++val OF:  'a * 'a -> (svalue,'a) token
++val ORELSE:  'a * 'a -> (svalue,'a) token
++val NONFIX:  'a * 'a -> (svalue,'a) token
++val LPAREN:  'a * 'a -> (svalue,'a) token
++val LOCAL:  'a * 'a -> (svalue,'a) token
++val LET:  'a * 'a -> (svalue,'a) token
++val LBRACKET:  'a * 'a -> (svalue,'a) token
++val LBRACE:  'a * 'a -> (svalue,'a) token
++val INFIXR:  'a * 'a -> (svalue,'a) token
++val INFIX:  'a * 'a -> (svalue,'a) token
++val INCLUDE:  'a * 'a -> (svalue,'a) token
++val IN:  'a * 'a -> (svalue,'a) token
++val IF:  'a * 'a -> (svalue,'a) token
++val HASH:  'a * 'a -> (svalue,'a) token
++val HANDLE:  'a * 'a -> (svalue,'a) token
++val FUNCTOR:  'a * 'a -> (svalue,'a) token
++val FUN:  'a * 'a -> (svalue,'a) token
++val FN:  'a * 'a -> (svalue,'a) token
++val DARROW:  'a * 'a -> (svalue,'a) token
++val DO:  'a * 'a -> (svalue,'a) token
++val EXCEPTION:  'a * 'a -> (svalue,'a) token
++val EQTYPE:  'a * 'a -> (svalue,'a) token
++val EQUALOP:  'a * 'a -> (svalue,'a) token
++val EOF:  'a * 'a -> (svalue,'a) token
++val END:  'a * 'a -> (svalue,'a) token
++val ELSE:  'a * 'a -> (svalue,'a) token
++val DOTDOTDOT:  'a * 'a -> (svalue,'a) token
++val DATATYPE:  'a * 'a -> (svalue,'a) token
++val COMMA:  'a * 'a -> (svalue,'a) token
++val COLONGT:  'a * 'a -> (svalue,'a) token
++val COLON:  'a * 'a -> (svalue,'a) token
++val CASE:  'a * 'a -> (svalue,'a) token
++val BAR:  'a * 'a -> (svalue,'a) token
++val ASTERISK:  'a * 'a -> (svalue,'a) token
++val AS:  'a * 'a -> (svalue,'a) token
++val ARROW:  'a * 'a -> (svalue,'a) token
++val ANDALSO:  'a * 'a -> (svalue,'a) token
++val AND:  'a * 'a -> (svalue,'a) token
++val ABSTYPE:  'a * 'a -> (svalue,'a) token
++val WORD: ({ digits:string,radix:StringCvt.radix } ) *  'a * 'a -> (svalue,'a) token
++val TYVAR: (string) *  'a * 'a -> (svalue,'a) token
++val STRING: (IntInf.t vector) *  'a * 'a -> (svalue,'a) token
++val REAL: (string) *  'a * 'a -> (svalue,'a) token
++val LONGID: (string) *  'a * 'a -> (svalue,'a) token
++val INT: ({ digits:string,negate:bool,radix:StringCvt.radix } ) *  'a * 'a -> (svalue,'a) token
++val CHAR: (IntInf.t) *  'a * 'a -> (svalue,'a) token
++end
++signature ML_LRVALS=
++sig
++structure Tokens : ML_TOKENS
++structure ParserData:PARSER_DATA
++sharing type ParserData.Token.token = Tokens.token
++sharing type ParserData.svalue = Tokens.svalue
++end
+diff -urN mlton-20100608~/mlton/front-end/ml.grm.sml mlton-20100608/mlton/front-end/ml.grm.sml
+--- mlton-20100608~/mlton/front-end/ml.grm.sml	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/ml.grm.sml	2013-04-22 09:58:07.845216222 -0400
+@@ -0,0 +1,4438 @@
++functor MLLrValsFun (structure Token: TOKEN
++                              structure Ast: AST) = 
++struct
++structure ParserData=
++struct
++structure Header = 
++struct
++(*#line 1.2 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(* Heavily modified from SML/NJ sources by sweeks at sweeks.com *)
++
++(* ml.grm
++ *
++ * Copyright 1989,1992 by AT&T Bell Laboratories
++ *)
++
++fun reg (left, right) = Region.make {left = left, right = right}
++fun error (reg, msg) = Control.error (reg, Layout.str msg, Layout.empty)
++
++open Ast
++structure Field = Record.Field
++structure Srecord = SortedRecord
++
++structure Type =
++   struct
++      open Type
++
++      val tuple = Record o Srecord.tuple
++
++      val unit = tuple (Vector.new0 ())
++
++      fun arrow (t1, t2) = Con (Longtycon.arrow, Vector.new2 (t1, t2))
++   end
++
++structure DatBind =
++   struct
++      open DatBind
++
++      fun make (dbs, withtypes, left, right) =
++         makeRegion' (T {datatypes = dbs, withtypes = withtypes},
++                      left, right)
++   end
++
++structure Pat =
++   struct
++      open Pat
++
++      fun tuple ps =
++         if 1 = Vector.length ps
++            then node (Vector.sub (ps, 0))
++         else Tuple ps
++
++      val unit = tuple (Vector.new0 ())
++
++      val bogus = unit
++
++      fun makeAs (p1: t, p2: t): node =
++         let
++            fun err () =
++               error (Pat.region p1, "must have variable to left in as pattern")
++            fun fixopVar (p : t) =
++               case node p of
++                  FlatApp ps =>
++                     if 1 = Vector.length ps
++                        then (case node (Vector.sub (ps, 0)) of
++                                 Var {fixop,name} =>
++                                    (case Longvid.split name of
++                                        ([], vid) =>
++                                           SOME (fixop, Vid.toVar vid)
++                                      | _ =>
++                                           let
++                                              val () = err ()
++                                           in
++                                              SOME (Fixop.None, Var.bogus)
++                                           end)
++                               | _ => NONE)
++                     else NONE
++                | _ => NONE
++         in
++            case fixopVar p1 of
++               SOME (fixop, var) =>
++                  Layered {fixop = fixop, var = var,
++                           constraint = NONE,
++                           pat = p2}
++             | NONE =>
++                  case node p1 of
++                     Pat.Constraint (p, t) =>
++                        (case fixopVar p of
++                            SOME (fixop, var) =>
++                               Layered {fixop = fixop, var = var,
++                                        constraint = SOME t,
++                                        pat = p2}
++                          | _ => (err (); bogus))
++                   | _ => (err (); bogus)
++         end
++   end
++
++structure Exp =
++   struct
++      open Exp
++
++      fun tuple es =
++         if 1 = Vector.length es
++            then node (Vector.sub (es, 0))
++         else Record (Record.tuple es)
++
++      val unit = tuple (Vector.new0 ())
++   end
++
++structure Dec =
++   struct
++      open Dec
++
++      fun sequence (d1: t, d2: t): t =
++         makeRegion (case (node d1, node d2) of
++                        (SeqDec d1, SeqDec d2) => SeqDec (Vector.concat [d1, d2])
++                      | (SeqDec d1, _) =>
++                           SeqDec (Vector.concat [d1, Vector.new1 d2])
++                      | (_, SeqDec d2) =>
++                           SeqDec (Vector.concat [Vector.new1 d1, d2])
++                      | _ => SeqDec (Vector.new2 (d1, d2)),
++                     Region.append (region d1, region d2))
++   end
++
++structure Spec =
++   struct
++      open Spec
++
++      (* Some of this mess is so that a sharing equation captures as
++       * many specs as possible in its scope.
++       *)
++      fun seq (s: t, s': t): t =
++         let
++            fun reg s'' = makeRegion (s'', Region.append (region s, region s'))
++         in
++            case (node s, node s') of
++               (Empty, _) => s'
++             | (_, Empty) => s
++             | (_, Seq (s1, s2)) => reg (Seq (seq (s, s1), s2))
++             | (_, Sharing {spec, equations}) =>
++                  reg (Sharing {spec = seq (s, spec), equations = equations})
++             | _ => reg (Seq (s, s'))
++         end
++
++(*      val seq = Trace.trace2 ("Spec.seq", layout, layout, layout) seq *)
++   end
++
++fun consTopdec (d, dss) =
++   case dss of
++      [] => [[d]]
++    | ds :: dss => (d :: ds) :: dss
++
++type rule = Pat.t * Exp.t
++type clause = {pats : Pat.t vector,
++               resultType : Type.t option,
++               body : Exp.t}
++type clauses = clause vector
++type eb = Con.t * EbRhs.t
++type db = {tyvars: Tyvar.t vector,
++           tycon: Tycon.t,
++           cons: (Con.t * Type.t option) vector}
++
++type strdesc = Strid.t * Sigexp.t
++
++type wherespec = {tyvars: Tyvar.t vector,
++                  longtycon: Longtycon.t,
++                  ty: Type.t}
++
++type typdesc =  {tyvars: Tyvar.t vector,
++                 tycon: Tycon.t}
++
++type valdesc = Var.t * Type.t
++
++type exndesc = Con.t * Type.t option
++
++type strbind = {name: Strid.t,
++                def: Strexp.t,
++                constraint: SigConst.t}
++
++type sigbind = Sigid.t * Sigexp.t
++
++type funbind = {name : Fctid.t,
++                arg : FctArg.t,
++                result : SigConst.t,
++                body : Strexp.t}
++
++type vb = {pat: Pat.t,
++           exp: Exp.t}
++
++type rvb = {pat: Pat.t,
++            match: Match.t}
++
++fun ensureNonqualified (ss: Symbol.t list, r: Region.t): Symbol.t * Region.t =
++   case ss of
++      [s] => (s, r)
++    | _ => (error (r, "expected nonqualified id")
++            ; (Symbol.bogus, r))
++
++fun cons1 (x, (l, r, y)) = (x :: l, r, y)
++
++fun augment (id, sigexp, (wherespecs, right, binds)) =
++   (id, Sigexp.wheree (sigexp, Vector.fromList wherespecs,
++                       Region.extendRight (Sigexp.region sigexp, right)))
++   :: binds
++
++fun 'a augment1 ((strexp: Strexp.t,
++                  makesigconst: Sigexp.t -> SigConst.t,
++                  sigexp: Sigexp.t),
++                 (wherespecs: wherespec list,
++                  right: SourcePos.t,
++                  z: 'a)): Strexp.t * 'a =
++   (Strexp.makeRegion
++    (Strexp.Constrained
++     (strexp, makesigconst (Sigexp.wheree
++                            (sigexp, Vector.fromList wherespecs,
++                             Region.extendRight (Sigexp.region sigexp, right)))),
++     Region.extendRight (Strexp.region strexp, right)),
++    z)
++
++type 'a whereAnd = wherespec list * SourcePos.t * 'a list
++
++  
++(*#line 221.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++end
++structure LrTable = Token.LrTable
++structure Token = Token
++local open LrTable in 
++val table=let val actionRows =
++"\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\006\000\113\000\007\000\060\000\013\000\058\000\
++\\039\000\112\000\040\000\111\000\043\000\110\000\047\000\109\000\
++\\053\000\108\000\066\000\107\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\006\000\113\000\007\000\060\000\013\000\058\000\
++\\039\000\112\000\040\000\111\000\043\000\110\000\047\000\109\000\
++\\066\000\107\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\015\000\057\000\
++\\024\000\055\000\029\000\053\000\033\000\050\000\034\000\049\000\
++\\039\000\046\000\040\000\045\000\041\000\044\000\043\000\042\000\
++\\047\000\040\000\050\000\037\000\052\000\151\000\065\000\031\000\
++\\069\000\030\000\070\000\029\000\071\000\028\000\072\000\027\000\
++\\073\000\026\000\074\000\025\000\075\000\024\000\076\000\023\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\015\000\057\000\
++\\024\000\055\000\029\000\053\000\033\000\050\000\034\000\049\000\
++\\039\000\046\000\040\000\045\000\041\000\044\000\043\000\042\000\
++\\047\000\040\000\050\000\037\000\054\000\138\000\065\000\031\000\
++\\069\000\030\000\070\000\029\000\071\000\028\000\072\000\027\000\
++\\073\000\026\000\074\000\025\000\075\000\024\000\076\000\023\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\015\000\057\000\
++\\024\000\055\000\029\000\053\000\033\000\050\000\034\000\049\000\
++\\039\000\046\000\040\000\045\000\041\000\044\000\043\000\042\000\
++\\047\000\040\000\050\000\037\000\065\000\031\000\069\000\030\000\
++\\070\000\029\000\071\000\028\000\072\000\027\000\073\000\026\000\
++\\074\000\025\000\075\000\024\000\076\000\023\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\
++\\040\000\111\000\043\000\175\000\047\000\109\000\053\000\108\000\
++\\066\000\107\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\
++\\040\000\111\000\043\000\175\000\047\000\109\000\053\000\228\000\
++\\066\000\107\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\
++\\040\000\111\000\043\000\175\000\047\000\109\000\066\000\107\000\000\000\
++\\001\000\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\076\000\000\000\
++\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\000\000\
++\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\020\000\241\000\000\000\
++\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\020\000\241\000\
++\\051\000\240\000\000\000\
++\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\051\000\157\000\000\000\
++\\001\000\002\000\064\000\003\000\063\000\013\000\076\000\051\000\042\001\000\000\
++\\001\000\003\000\122\003\008\000\121\003\009\000\121\003\010\000\121\003\
++\\011\000\121\003\012\000\121\003\013\000\122\003\014\000\121\003\
++\\016\000\121\003\017\000\121\003\018\000\121\003\019\000\121\003\
++\\021\000\121\003\022\000\121\003\023\000\121\003\024\000\121\003\
++\\025\000\121\003\026\000\121\003\027\000\121\003\028\000\121\003\
++\\030\000\121\003\031\000\121\003\032\000\121\003\035\000\121\003\
++\\036\000\121\003\037\000\121\003\038\000\121\003\042\000\121\003\
++\\044\000\121\003\045\000\121\003\046\000\121\003\048\000\121\003\
++\\049\000\121\003\051\000\121\003\052\000\121\003\054\000\121\003\
++\\055\000\121\003\056\000\121\003\058\000\121\003\060\000\121\003\
++\\061\000\121\003\062\000\121\003\063\000\121\003\064\000\121\003\
++\\067\000\121\003\068\000\121\003\000\000\
++\\001\000\003\000\063\000\000\000\
++\\001\000\003\000\063\000\006\000\113\000\039\000\206\000\043\000\205\000\000\000\
++\\001\000\003\000\063\000\013\000\058\000\000\000\
++\\001\000\003\000\063\000\013\000\058\000\024\000\055\000\000\000\
++\\001\000\003\000\063\000\013\000\058\000\041\000\163\001\059\000\162\001\000\000\
++\\001\000\003\000\063\000\013\000\058\000\047\000\117\001\000\000\
++\\001\000\003\000\063\000\013\000\058\000\062\000\191\001\000\000\
++\\001\000\003\000\063\000\013\000\076\000\000\000\
++\\001\000\003\000\063\000\013\000\076\000\019\000\210\001\047\000\181\000\000\000\
++\\001\000\003\000\063\000\013\000\076\000\024\000\075\000\000\000\
++\\001\000\003\000\063\000\013\000\076\000\047\000\181\000\000\000\
++\\001\000\003\000\063\000\013\000\076\000\057\000\077\001\000\000\
++\\001\000\003\000\063\000\013\000\076\000\062\000\244\001\000\000\
++\\001\000\003\000\063\000\013\000\035\001\000\000\
++\\001\000\005\000\084\000\000\000\
++\\001\000\005\000\084\000\013\000\086\000\000\000\
++\\001\000\005\000\084\000\013\000\088\000\000\000\
++\\001\000\006\000\113\000\000\000\
++\\001\000\008\000\123\002\009\000\232\001\016\000\126\002\017\000\126\002\
++\\019\000\123\002\022\000\123\002\023\000\123\002\026\000\123\002\
++\\030\000\123\002\031\000\123\002\035\000\123\002\037\000\123\002\
++\\038\000\123\002\042\000\123\002\044\000\123\002\048\000\123\002\
++\\049\000\123\002\054\000\123\002\055\000\123\002\058\000\123\002\
++\\060\000\123\002\062\000\123\002\063\000\123\002\064\000\236\001\000\000\
++\\001\000\008\000\123\002\009\000\053\002\016\000\141\002\017\000\141\002\
++\\019\000\123\002\022\000\123\002\023\000\123\002\026\000\123\002\
++\\030\000\123\002\031\000\123\002\035\000\123\002\037\000\123\002\
++\\038\000\123\002\042\000\123\002\044\000\123\002\048\000\123\002\
++\\049\000\123\002\054\000\123\002\055\000\123\002\058\000\123\002\
++\\060\000\123\002\062\000\123\002\063\000\123\002\064\000\236\001\000\000\
++\\001\000\008\000\123\002\009\000\053\002\016\000\144\002\017\000\144\002\
++\\019\000\123\002\022\000\123\002\023\000\123\002\026\000\123\002\
++\\030\000\123\002\031\000\123\002\035\000\123\002\037\000\123\002\
++\\038\000\123\002\042\000\123\002\044\000\123\002\048\000\123\002\
++\\049\000\123\002\054\000\123\002\055\000\123\002\058\000\123\002\
++\\060\000\123\002\062\000\123\002\063\000\123\002\064\000\236\001\000\000\
++\\001\000\008\000\131\002\009\000\131\002\016\000\128\002\017\000\128\002\
++\\019\000\131\002\022\000\131\002\023\000\131\002\026\000\131\002\
++\\030\000\131\002\031\000\131\002\035\000\131\002\037\000\131\002\
++\\038\000\131\002\042\000\131\002\044\000\131\002\048\000\131\002\
++\\049\000\131\002\054\000\131\002\055\000\131\002\058\000\131\002\
++\\060\000\131\002\062\000\131\002\063\000\131\002\000\000\
++\\001\000\008\000\202\002\009\000\077\002\016\000\126\002\017\000\126\002\
++\\019\000\202\002\023\000\202\002\026\000\202\002\030\000\202\002\
++\\031\000\202\002\037\000\202\002\038\000\202\002\042\000\202\002\
++\\044\000\202\002\048\000\202\002\049\000\202\002\055\000\202\002\
++\\058\000\202\002\060\000\202\002\062\000\202\002\063\000\202\002\
++\\064\000\080\002\000\000\
++\\001\000\008\000\202\002\009\000\092\002\016\000\141\002\017\000\141\002\
++\\019\000\202\002\023\000\202\002\026\000\202\002\030\000\202\002\
++\\031\000\202\002\037\000\202\002\038\000\202\002\042\000\202\002\
++\\044\000\202\002\048\000\202\002\049\000\202\002\055\000\202\002\
++\\058\000\202\002\060\000\202\002\062\000\202\002\063\000\202\002\
++\\064\000\080\002\000\000\
++\\001\000\008\000\202\002\009\000\092\002\016\000\144\002\017\000\144\002\
++\\019\000\202\002\023\000\202\002\026\000\202\002\030\000\202\002\
++\\031\000\202\002\037\000\202\002\038\000\202\002\042\000\202\002\
++\\044\000\202\002\048\000\202\002\049\000\202\002\055\000\202\002\
++\\058\000\202\002\060\000\202\002\062\000\202\002\063\000\202\002\
++\\064\000\080\002\000\000\
++\\001\000\010\000\081\000\016\000\080\000\018\000\255\000\032\000\079\000\
++\\045\000\078\000\055\000\254\000\000\000\
++\\001\000\010\000\081\000\016\000\080\000\021\000\176\001\032\000\079\000\
++\\045\000\078\000\000\000\
++\\001\000\010\000\081\000\016\000\080\000\022\000\174\001\032\000\079\000\
++\\045\000\078\000\055\000\254\000\000\000\
++\\001\000\010\000\081\000\016\000\080\000\027\000\220\000\032\000\079\000\
++\\045\000\078\000\000\000\
++\\001\000\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\
++\\046\000\031\001\000\000\
++\\001\000\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\
++\\055\000\077\000\000\000\
++\\001\000\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\
++\\061\000\012\001\000\000\
++\\001\000\011\000\036\001\012\000\248\001\000\000\
++\\001\000\011\000\036\001\018\000\131\001\054\000\130\001\000\000\
++\\001\000\011\000\036\001\024\000\143\001\000\000\
++\\001\000\011\000\036\001\055\000\135\001\000\000\
++\\001\000\011\000\036\001\055\000\137\001\000\000\
++\\001\000\011\000\036\001\055\000\142\001\000\000\
++\\001\000\011\000\036\001\055\000\144\001\000\000\
++\\001\000\011\000\036\001\055\000\217\001\000\000\
++\\001\000\011\000\036\001\055\000\218\001\000\000\
++\\001\000\011\000\036\001\055\000\219\001\000\000\
++\\001\000\011\000\036\001\055\000\220\001\000\000\
++\\001\000\011\000\036\001\055\000\221\001\000\000\
++\\001\000\012\000\157\003\016\000\157\003\018\000\157\003\024\000\164\003\
++\\051\000\157\003\000\000\
++\\001\000\012\000\224\000\016\000\223\000\024\000\222\000\000\000\
++\\001\000\012\000\224\000\016\000\223\000\024\000\059\001\000\000\
++\\001\000\012\000\224\000\016\000\223\000\028\000\020\001\000\000\
++\\001\000\016\000\208\000\000\000\
++\\001\000\016\000\211\000\000\000\
++\\001\000\016\000\217\000\000\000\
++\\001\000\016\000\218\000\000\000\
++\\001\000\016\000\219\000\000\000\
++\\001\000\016\000\044\001\000\000\
++\\001\000\016\000\048\001\000\000\
++\\001\000\016\000\049\001\000\000\
++\\001\000\016\000\050\001\000\000\
++\\001\000\016\000\051\001\000\000\
++\\001\000\016\000\080\001\000\000\
++\\001\000\016\000\134\001\000\000\
++\\001\000\016\000\177\001\000\000\
++\\001\000\016\000\238\001\017\000\237\001\000\000\
++\\001\000\016\000\238\001\017\000\237\001\022\000\070\002\000\000\
++\\001\000\016\000\238\001\017\000\237\001\054\000\054\002\000\000\
++\\001\000\016\000\253\001\000\000\
++\\001\000\016\000\001\002\000\000\
++\\001\000\022\000\172\001\000\000\
++\\001\000\022\000\173\001\000\000\
++\\001\000\022\000\211\001\000\000\
++\\001\000\022\000\245\001\000\000\
++\\001\000\022\000\249\001\000\000\
++\\001\000\022\000\026\002\000\000\
++\\001\000\023\000\000\000\000\000\
++\\001\000\024\000\247\000\000\000\
++\\001\000\024\000\009\001\000\000\
++\\001\000\024\000\070\001\000\000\
++\\001\000\024\000\071\001\000\000\
++\\001\000\024\000\072\001\000\000\
++\\001\000\024\000\110\001\000\000\
++\\001\000\024\000\119\001\000\000\
++\\001\000\024\000\123\001\000\000\
++\\001\000\024\000\002\002\000\000\
++\\001\000\024\000\037\002\000\000\
++\\001\000\024\000\044\002\000\000\
++\\001\000\024\000\073\002\000\000\
++\\001\000\029\000\147\001\000\000\
++\\001\000\035\000\000\001\000\000\
++\\001\000\035\000\003\001\000\000\
++\\001\000\035\000\088\001\000\000\
++\\001\000\035\000\027\002\000\000\
++\\001\000\043\000\013\001\000\000\
++\\001\000\051\000\010\001\000\000\
++\\001\000\051\000\068\001\000\000\
++\\001\000\051\000\132\001\000\000\
++\\001\000\052\000\007\001\000\000\
++\\001\000\052\000\066\001\000\000\
++\\001\000\054\000\252\000\000\000\
++\\001\000\054\000\253\000\000\000\
++\\001\000\054\000\061\001\000\000\
++\\001\000\054\000\063\001\000\000\
++\\001\000\054\000\129\001\000\000\
++\\001\000\054\000\179\001\000\000\
++\\001\000\054\000\055\002\000\000\
++\\001\000\055\000\014\002\000\000\
++\\001\000\062\000\244\001\000\000\
++\\001\000\067\000\033\001\000\000\
++\\098\002\000\000\
++\\099\002\000\000\
++\\100\002\000\000\
++\\101\002\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\008\000\059\000\013\000\058\000\
++\\015\000\057\000\019\000\056\000\024\000\055\000\026\000\054\000\
++\\029\000\053\000\030\000\052\000\031\000\051\000\033\000\050\000\
++\\034\000\049\000\037\000\048\000\038\000\047\000\039\000\046\000\
++\\040\000\045\000\041\000\044\000\042\000\043\000\043\000\042\000\
++\\044\000\041\000\047\000\040\000\048\000\039\000\049\000\038\000\
++\\050\000\037\000\055\000\036\000\058\000\035\000\060\000\034\000\
++\\062\000\033\000\063\000\032\000\065\000\031\000\069\000\030\000\
++\\070\000\029\000\071\000\028\000\072\000\027\000\073\000\026\000\
++\\074\000\025\000\075\000\024\000\076\000\023\000\000\000\
++\\101\002\008\000\059\000\019\000\056\000\026\000\054\000\030\000\052\000\
++\\031\000\051\000\037\000\048\000\038\000\047\000\042\000\043\000\
++\\044\000\041\000\048\000\039\000\049\000\038\000\055\000\036\000\
++\\058\000\035\000\060\000\034\000\062\000\033\000\063\000\032\000\000\000\
++\\102\002\000\000\
++\\103\002\000\000\
++\\104\002\000\000\
++\\105\002\000\000\
++\\106\002\000\000\
++\\107\002\000\000\
++\\108\002\000\000\
++\\109\002\003\000\063\000\008\000\059\000\013\000\058\000\019\000\056\000\
++\\026\000\054\000\030\000\052\000\037\000\048\000\038\000\047\000\
++\\041\000\163\001\042\000\043\000\044\000\041\000\048\000\039\000\
++\\049\000\038\000\055\000\142\000\059\000\162\001\060\000\034\000\
++\\062\000\033\000\063\000\032\000\000\000\
++\\109\002\008\000\059\000\019\000\056\000\026\000\054\000\030\000\052\000\
++\\037\000\048\000\038\000\047\000\042\000\043\000\044\000\041\000\
++\\048\000\039\000\049\000\038\000\055\000\142\000\060\000\034\000\
++\\062\000\033\000\063\000\032\000\000\000\
++\\110\002\000\000\
++\\111\002\000\000\
++\\112\002\000\000\
++\\113\002\000\000\
++\\114\002\000\000\
++\\115\002\000\000\
++\\116\002\000\000\
++\\117\002\000\000\
++\\118\002\000\000\
++\\119\002\000\000\
++\\120\002\000\000\
++\\121\002\000\000\
++\\122\002\000\000\
++\\123\002\009\000\232\001\000\000\
++\\124\002\000\000\
++\\125\002\000\000\
++\\126\002\064\000\166\001\000\000\
++\\127\002\000\000\
++\\128\002\000\000\
++\\129\002\000\000\
++\\130\002\000\000\
++\\132\002\043\000\240\001\000\000\
++\\133\002\000\000\
++\\134\002\000\000\
++\\135\002\000\000\
++\\136\002\000\000\
++\\137\002\000\000\
++\\138\002\064\000\166\001\000\000\
++\\139\002\000\000\
++\\140\002\000\000\
++\\141\002\009\000\030\002\064\000\166\001\000\000\
++\\142\002\000\000\
++\\143\002\000\000\
++\\144\002\009\000\030\002\064\000\166\001\000\000\
++\\145\002\000\000\
++\\146\002\000\000\
++\\147\002\000\000\
++\\148\002\000\000\
++\\149\002\000\000\
++\\149\002\003\000\063\000\013\000\076\000\000\000\
++\\150\002\000\000\
++\\151\002\009\000\170\001\064\000\169\001\000\000\
++\\151\002\009\000\034\002\064\000\169\001\000\000\
++\\152\002\000\000\
++\\153\002\000\000\
++\\154\002\000\000\
++\\155\002\000\000\
++\\156\002\011\000\036\001\000\000\
++\\157\002\016\000\246\000\017\000\245\000\000\000\
++\\158\002\000\000\
++\\159\002\000\000\
++\\160\002\003\000\063\000\013\000\076\000\019\000\107\001\025\000\106\001\
++\\026\000\105\001\036\000\104\001\055\000\103\001\056\000\102\001\
++\\060\000\101\001\062\000\100\001\063\000\099\001\000\000\
++\\160\002\019\000\107\001\025\000\106\001\026\000\105\001\036\000\104\001\
++\\055\000\103\001\056\000\102\001\060\000\101\001\062\000\100\001\
++\\063\000\099\001\000\000\
++\\161\002\000\000\
++\\162\002\000\000\
++\\163\002\000\000\
++\\164\002\000\000\
++\\165\002\000\000\
++\\166\002\000\000\
++\\167\002\000\000\
++\\168\002\000\000\
++\\169\002\000\000\
++\\170\002\000\000\
++\\171\002\000\000\
++\\172\002\000\000\
++\\173\002\000\000\
++\\174\002\000\000\
++\\175\002\000\000\
++\\176\002\024\000\002\002\000\000\
++\\177\002\000\000\
++\\178\002\024\000\044\002\000\000\
++\\179\002\000\000\
++\\180\002\000\000\
++\\181\002\009\000\066\002\064\000\065\002\000\000\
++\\181\002\009\000\089\002\064\000\065\002\000\000\
++\\182\002\000\000\
++\\183\002\000\000\
++\\184\002\000\000\
++\\185\002\000\000\
++\\186\002\009\000\000\002\000\000\
++\\187\002\000\000\
++\\188\002\000\000\
++\\188\002\024\000\071\001\000\000\
++\\189\002\009\000\254\001\000\000\
++\\190\002\000\000\
++\\191\002\011\000\036\001\000\000\
++\\192\002\009\000\007\002\000\000\
++\\193\002\000\000\
++\\194\002\000\000\
++\\195\002\046\000\009\002\000\000\
++\\196\002\011\000\036\001\000\000\
++\\197\002\000\000\
++\\198\002\000\000\
++\\199\002\000\000\
++\\200\002\000\000\
++\\201\002\000\000\
++\\202\002\009\000\077\002\000\000\
++\\203\002\000\000\
++\\204\002\000\000\
++\\205\002\000\000\
++\\206\002\000\000\
++\\207\002\000\000\
++\\208\002\008\000\059\000\019\000\056\000\026\000\054\000\030\000\052\000\
++\\037\000\048\000\038\000\047\000\042\000\148\000\044\000\041\000\
++\\048\000\039\000\049\000\038\000\055\000\147\000\062\000\033\000\
++\\063\000\032\000\000\000\
++\\209\002\000\000\
++\\210\002\000\000\
++\\211\002\000\000\
++\\212\002\000\000\
++\\213\002\000\000\
++\\214\002\000\000\
++\\215\002\000\000\
++\\216\002\000\000\
++\\217\002\000\000\
++\\218\002\000\000\
++\\219\002\000\000\
++\\220\002\000\000\
++\\221\002\000\000\
++\\222\002\000\000\
++\\223\002\000\000\
++\\224\002\000\000\
++\\225\002\000\000\
++\\226\002\000\000\
++\\227\002\000\000\
++\\228\002\009\000\146\001\010\000\081\000\016\000\080\000\032\000\079\000\
++\\045\000\078\000\000\000\
++\\229\002\000\000\
++\\230\002\000\000\
++\\231\002\000\000\
++\\232\002\009\000\016\002\000\000\
++\\233\002\000\000\
++\\234\002\016\000\018\001\000\000\
++\\235\002\011\000\036\001\000\000\
++\\236\002\009\000\015\001\000\000\
++\\237\002\000\000\
++\\238\002\000\000\
++\\239\002\014\000\016\001\000\000\
++\\240\002\000\000\
++\\241\002\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\
++\\242\002\000\000\
++\\243\002\000\000\
++\\244\002\009\000\230\001\011\000\036\001\000\000\
++\\245\002\000\000\
++\\246\002\000\000\
++\\247\002\006\000\113\000\043\000\118\000\000\000\
++\\248\002\000\000\
++\\249\002\000\000\
++\\250\002\018\000\062\001\000\000\
++\\251\002\000\000\
++\\252\002\014\000\012\002\000\000\
++\\253\002\000\000\
++\\254\002\046\000\011\002\000\000\
++\\255\002\011\000\036\001\000\000\
++\\000\003\000\000\
++\\001\003\000\000\
++\\002\003\009\000\025\001\000\000\
++\\003\003\000\000\
++\\004\003\000\000\
++\\005\003\000\000\
++\\006\003\024\000\024\001\046\000\023\001\000\000\
++\\007\003\011\000\036\001\000\000\
++\\008\003\000\000\
++\\009\003\000\000\
++\\010\003\002\000\129\000\000\000\
++\\011\003\000\000\
++\\012\003\002\000\129\000\000\000\
++\\013\003\000\000\
++\\014\003\000\000\
++\\015\003\002\000\129\000\000\000\
++\\016\003\000\000\
++\\017\003\000\000\
++\\018\003\000\000\
++\\019\003\000\000\
++\\020\003\000\000\
++\\021\003\000\000\
++\\022\003\000\000\
++\\023\003\000\000\
++\\024\003\000\000\
++\\025\003\000\000\
++\\026\003\000\000\
++\\027\003\000\000\
++\\028\003\000\000\
++\\029\003\000\000\
++\\030\003\009\000\030\001\000\000\
++\\031\003\000\000\
++\\032\003\000\000\
++\\033\003\068\000\029\001\000\000\
++\\034\003\000\000\
++\\035\003\009\000\060\002\000\000\
++\\036\003\000\000\
++\\037\003\000\000\
++\\038\003\014\000\019\001\000\000\
++\\039\003\000\000\
++\\040\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\
++\\041\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\
++\\042\003\000\000\
++\\043\003\018\000\011\001\000\000\
++\\044\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\
++\\055\000\254\000\000\000\
++\\045\003\000\000\
++\\046\003\000\000\
++\\046\003\054\000\251\000\000\000\
++\\047\003\000\000\
++\\048\003\010\000\081\000\016\000\080\000\000\000\
++\\049\003\016\000\080\000\000\000\
++\\050\003\011\000\036\001\000\000\
++\\051\003\000\000\
++\\052\003\000\000\
++\\053\003\000\000\
++\\054\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\
++\\055\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\
++\\056\003\010\000\081\000\016\000\080\000\032\000\079\000\045\000\078\000\000\000\
++\\057\003\000\000\
++\\058\003\000\000\
++\\059\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\024\000\055\000\
++\\033\000\050\000\039\000\046\000\040\000\045\000\041\000\044\000\
++\\043\000\042\000\047\000\040\000\069\000\030\000\070\000\029\000\
++\\071\000\028\000\072\000\027\000\073\000\026\000\074\000\025\000\
++\\075\000\024\000\076\000\023\000\000\000\
++\\060\003\000\000\
++\\061\003\000\000\
++\\062\003\000\000\
++\\063\003\000\000\
++\\064\003\000\000\
++\\065\003\000\000\
++\\066\003\000\000\
++\\067\003\000\000\
++\\068\003\000\000\
++\\069\003\000\000\
++\\070\003\000\000\
++\\071\003\000\000\
++\\072\003\000\000\
++\\073\003\000\000\
++\\074\003\000\000\
++\\075\003\000\000\
++\\076\003\000\000\
++\\077\003\000\000\
++\\078\003\000\000\
++\\079\003\000\000\
++\\080\003\000\000\
++\\081\003\000\000\
++\\082\003\000\000\
++\\083\003\000\000\
++\\084\003\003\000\063\000\013\000\076\000\000\000\
++\\085\003\000\000\
++\\086\003\003\000\063\000\013\000\076\000\000\000\
++\\087\003\000\000\
++\\088\003\000\000\
++\\089\003\010\000\081\000\016\000\080\000\018\000\255\000\032\000\079\000\
++\\045\000\078\000\000\000\
++\\090\003\010\000\081\000\016\000\080\000\018\000\008\001\032\000\079\000\
++\\045\000\078\000\000\000\
++\\091\003\000\000\
++\\092\003\000\000\
++\\093\003\012\000\224\000\016\000\223\000\000\000\
++\\094\003\011\000\036\001\000\000\
++\\095\003\000\000\
++\\096\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\
++\\040\000\111\000\043\000\175\000\047\000\109\000\066\000\107\000\000\000\
++\\097\003\000\000\
++\\098\003\000\000\
++\\099\003\000\000\
++\\100\003\000\000\
++\\101\003\000\000\
++\\102\003\000\000\
++\\103\003\000\000\
++\\104\003\000\000\
++\\105\003\000\000\
++\\106\003\000\000\
++\\107\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\006\000\113\000\007\000\060\000\013\000\058\000\
++\\039\000\112\000\040\000\111\000\043\000\175\000\047\000\109\000\
++\\066\000\107\000\000\000\
++\\107\003\001\000\065\000\002\000\064\000\003\000\063\000\004\000\062\000\
++\\005\000\061\000\007\000\060\000\013\000\058\000\039\000\112\000\
++\\040\000\111\000\043\000\175\000\047\000\109\000\066\000\107\000\000\000\
++\\108\003\000\000\
++\\109\003\012\000\224\000\016\000\223\000\018\000\065\001\000\000\
++\\110\003\000\000\
++\\111\003\000\000\
++\\112\003\018\000\069\001\000\000\
++\\113\003\000\000\
++\\114\003\012\000\224\000\016\000\223\000\000\000\
++\\115\003\000\000\
++\\116\003\012\000\151\001\000\000\
++\\117\003\012\000\224\000\016\000\223\000\000\000\
++\\118\003\000\000\
++\\119\003\000\000\
++\\120\003\011\000\036\001\000\000\
++\\122\003\000\000\
++\\123\003\000\000\
++\\124\003\000\000\
++\\125\003\000\000\
++\\126\003\000\000\
++\\127\003\000\000\
++\\128\003\000\000\
++\\129\003\000\000\
++\\130\003\011\000\036\001\000\000\
++\\131\003\000\000\
++\\132\003\018\000\133\001\000\000\
++\\133\003\000\000\
++\\134\003\003\000\063\000\013\000\035\001\000\000\
++\\135\003\011\000\036\001\018\000\131\001\000\000\
++\\136\003\000\000\
++\\137\003\000\000\
++\\138\003\000\000\
++\\139\003\000\000\
++\\140\003\000\000\
++\\141\003\000\000\
++\\142\003\000\000\
++\\143\003\000\000\
++\\144\003\000\000\
++\\145\003\000\000\
++\\146\003\000\000\
++\\147\003\000\000\
++\\148\003\000\000\
++\\149\003\000\000\
++\\150\003\000\000\
++\\151\003\000\000\
++\\152\003\000\000\
++\\153\003\000\000\
++\\154\003\000\000\
++\\155\003\000\000\
++\\156\003\000\000\
++\\158\003\003\000\063\000\013\000\076\000\024\000\075\000\000\000\
++\\159\003\000\000\
++\\160\003\000\000\
++\\161\003\000\000\
++\\162\003\000\000\
++\\163\003\000\000\
++\\164\003\000\000\
++\\165\003\000\000\
++\\166\003\000\000\
++\\167\003\000\000\
++\\168\003\003\000\063\000\013\000\076\000\000\000\
++\\169\003\000\000\
++\\170\003\000\000\
++\\171\003\000\000\
++\\172\003\000\000\
++\\173\003\000\000\
++\\174\003\000\000\
++\\175\003\000\000\
++\\176\003\003\000\063\000\013\000\058\000\000\000\
++\\177\003\000\000\
++\"
++val actionRowNumbers =
++"\124\000\171\001\123\000\128\000\
++\\125\000\137\000\129\000\089\001\
++\\181\001\201\001\184\001\170\001\
++\\024\000\121\000\075\001\045\000\
++\\140\000\169\001\092\001\081\001\
++\\089\001\029\000\030\000\031\000\
++\\029\000\029\000\029\000\029\000\
++\\029\000\004\000\000\000\020\001\
++\\022\000\022\000\124\000\004\000\
++\\044\001\017\000\018\000\043\001\
++\\003\000\134\000\237\000\002\000\
++\\012\000\041\001\039\001\004\000\
++\\009\000\022\000\001\000\007\000\
++\\025\000\185\001\020\001\004\000\
++\\182\001\020\001\047\001\173\001\
++\\172\001\183\001\046\001\174\001\
++\\126\000\088\001\090\001\252\000\
++\\187\001\176\001\177\001\186\001\
++\\179\001\180\001\178\001\124\000\
++\\004\000\007\000\016\000\004\000\
++\\087\001\063\000\175\001\116\001\
++\\064\000\114\001\114\001\114\001\
++\\116\001\065\000\066\000\067\000\
++\\043\000\243\000\254\000\005\000\
++\\021\001\122\001\060\000\129\001\
++\\202\001\131\001\125\001\128\001\
++\\126\001\132\001\006\000\018\000\
++\\137\001\138\001\011\000\192\001\
++\\019\001\015\000\015\001\247\000\
++\\032\000\183\000\138\000\195\001\
++\\088\000\130\000\196\001\127\000\
++\\086\001\024\000\045\001\048\001\
++\\251\000\205\001\204\001\091\001\
++\\076\001\111\000\112\000\040\000\
++\\096\001\132\000\101\000\134\000\
++\\134\000\102\000\241\000\240\000\
++\\237\000\237\000\237\000\109\000\
++\\120\001\101\001\194\001\193\001\
++\\089\000\106\000\072\001\095\001\
++\\042\001\040\001\046\000\093\001\
++\\199\001\131\000\105\000\007\000\
++\\245\000\009\001\011\001\012\001\
++\\007\001\066\001\067\001\062\000\
++\\082\001\138\001\035\001\190\001\
++\\250\000\031\001\029\001\022\000\
++\\015\000\051\001\058\001\062\001\
++\\059\001\049\001\248\000\052\001\
++\\044\000\015\000\120\000\188\001\
++\\122\000\078\001\077\001\153\001\
++\\149\001\014\000\028\000\080\001\
++\\150\001\159\001\200\001\016\000\
++\\013\000\079\001\016\000\068\000\
++\\116\001\016\000\114\001\069\000\
++\\070\000\071\000\072\000\016\000\
++\\016\000\016\000\004\000\244\000\
++\\004\000\016\000\007\000\127\001\
++\\000\001\061\000\006\000\130\001\
++\\113\000\023\001\114\000\140\001\
++\\110\000\007\001\107\000\143\001\
++\\059\000\090\000\135\001\144\001\
++\\091\000\191\001\092\000\026\000\
++\\026\000\026\000\073\000\189\001\
++\\206\001\097\001\098\001\099\001\
++\\004\000\004\000\134\000\136\000\
++\\135\000\004\000\238\000\239\000\
++\\103\000\100\001\004\000\004\000\
++\\094\001\009\000\004\000\186\000\
++\\246\000\007\000\007\000\093\000\
++\\016\000\007\000\004\000\034\001\
++\\033\001\016\000\020\000\025\000\
++\\030\001\094\000\056\001\020\001\
++\\020\001\007\000\095\000\237\000\
++\\158\001\016\000\016\000\115\000\
++\\048\000\108\000\162\001\074\000\
++\\155\001\050\000\016\000\117\001\
++\\051\000\115\001\016\000\016\000\
++\\016\000\016\000\052\000\049\000\
++\\053\000\084\001\001\001\124\001\
++\\123\001\100\000\003\001\022\001\
++\\032\000\133\001\139\001\007\000\
++\\134\001\147\001\136\001\010\000\
++\\007\000\016\000\019\000\173\000\
++\\172\000\162\000\185\000\187\000\
++\\184\000\176\000\016\000\074\001\
++\\073\001\118\001\119\001\081\000\
++\\082\000\042\000\237\000\121\001\
++\\070\001\071\001\041\000\075\000\
++\\236\000\190\000\187\000\200\000\
++\\116\000\024\000\020\001\022\000\
++\\021\000\187\000\026\000\022\000\
++\\020\001\020\001\010\001\013\001\
++\\004\000\008\001\068\001\069\001\
++\\036\001\203\001\037\001\017\000\
++\\032\001\023\000\063\001\060\001\
++\\083\001\025\000\083\000\152\001\
++\\164\001\163\001\151\001\015\000\
++\\157\001\016\000\154\001\009\000\
++\\016\000\111\001\054\000\113\001\
++\\055\000\056\000\057\000\058\000\
++\\107\001\008\000\105\001\255\000\
++\\005\000\007\000\024\001\140\001\
++\\146\001\007\000\142\001\145\001\
++\\017\001\150\000\036\000\148\000\
++\\033\000\076\000\141\000\156\000\
++\\134\000\134\000\164\000\163\000\
++\\119\000\084\000\171\000\119\000\
++\\022\000\047\000\139\000\103\001\
++\\102\001\085\000\004\000\026\000\
++\\189\000\183\000\079\000\191\000\
++\\218\000\015\000\192\000\214\000\
++\\193\000\080\000\197\000\202\000\
++\\096\000\015\000\188\000\174\000\
++\\198\000\196\000\221\000\224\000\
++\\015\000\194\000\053\001\057\001\
++\\050\001\195\000\054\001\014\001\
++\\038\001\027\001\061\001\025\001\
++\\015\000\249\000\156\001\166\001\
++\\165\001\161\001\160\001\112\001\
++\\109\001\110\001\108\001\104\001\
++\\168\001\118\000\167\001\002\001\
++\\005\001\141\001\148\001\016\001\
++\\020\001\143\000\022\000\152\000\
++\\144\000\142\000\119\000\026\000\
++\\026\000\158\000\133\000\086\000\
++\\104\000\165\000\020\001\175\000\
++\\177\000\178\000\018\000\242\000\
++\\085\001\235\000\097\000\016\000\
++\\024\000\217\000\020\001\026\000\
++\\017\000\201\000\098\000\199\000\
++\\197\001\022\000\223\000\016\000\
++\\216\000\016\000\025\000\055\001\
++\\106\001\004\001\006\000\018\001\
++\\149\000\034\000\155\000\154\000\
++\\153\000\151\000\078\000\117\000\
++\\157\000\019\000\166\000\167\000\
++\\119\000\015\000\179\000\180\000\
++\\027\000\064\001\253\000\019\000\
++\\220\000\219\000\215\000\208\000\
++\\204\000\203\000\015\000\198\001\
++\\222\000\225\000\028\001\026\001\
++\\006\001\145\000\146\000\027\000\
++\\160\000\161\000\077\000\168\000\
++\\099\000\177\000\018\000\231\000\
++\\037\000\226\000\207\000\119\000\
++\\022\000\206\000\205\000\035\000\
++\\159\000\170\000\169\000\016\000\
++\\181\000\065\001\228\000\022\000\
++\\229\000\227\000\119\000\209\000\
++\\210\000\147\000\182\000\232\000\
++\\038\000\211\000\212\000\027\000\
++\\230\000\233\000\027\000\209\000\
++\\039\000\213\000\234\000\087\000"
++val gotoT =
++"\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\033\000\016\000\045\000\015\000\049\000\014\000\050\000\013\000\
++\\054\000\012\000\064\000\011\000\066\000\010\000\067\000\009\000\
++\\068\000\008\000\075\000\007\000\088\000\095\002\116\000\006\000\
++\\117\000\005\000\133\000\004\000\134\000\003\000\135\000\002\000\
++\\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\033\000\016\000\054\000\012\000\116\000\006\000\117\000\005\000\
++\\133\000\004\000\134\000\003\000\135\000\064\000\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\066\000\008\000\065\000\016\000\018\000\
++\\017\000\017\000\064\000\011\000\066\000\010\000\067\000\009\000\
++\\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\061\000\072\000\062\000\071\000\063\000\070\000\068\000\069\000\
++\\160\000\068\000\162\000\067\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\066\000\008\000\080\000\016\000\018\000\
++\\017\000\017\000\064\000\011\000\066\000\010\000\067\000\009\000\
++\\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\129\000\081\000\000\000\
++\\129\000\083\000\000\000\
++\\129\000\085\000\000\000\
++\\129\000\087\000\000\000\
++\\129\000\088\000\000\000\
++\\129\000\089\000\000\000\
++\\129\000\090\000\000\000\
++\\129\000\091\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\092\000\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\098\000\085\000\097\000\150\000\096\000\
++\\153\000\095\000\154\000\094\000\156\000\093\000\167\000\001\000\000\000\
++\\145\000\115\000\146\000\114\000\150\000\096\000\152\000\113\000\
++\\153\000\112\000\000\000\
++\\061\000\119\000\063\000\070\000\068\000\069\000\111\000\118\000\
++\\128\000\117\000\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\098\000\121\000\
++\\106\000\120\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\033\000\016\000\045\000\015\000\049\000\014\000\050\000\123\000\
++\\054\000\012\000\064\000\011\000\066\000\010\000\067\000\009\000\
++\\068\000\008\000\075\000\007\000\116\000\006\000\117\000\005\000\
++\\133\000\004\000\134\000\003\000\135\000\002\000\167\000\001\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\124\000\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\036\000\126\000\087\000\125\000\000\000\
++\\066\000\130\000\068\000\008\000\069\000\129\000\071\000\128\000\000\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\075\000\131\000\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\135\000\046\000\134\000\048\000\133\000\049\000\132\000\
++\\064\000\011\000\066\000\010\000\067\000\009\000\068\000\008\000\
++\\075\000\007\000\167\000\001\000\000\000\
++\\033\000\016\000\054\000\012\000\116\000\139\000\117\000\005\000\
++\\118\000\138\000\119\000\137\000\000\000\
++\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\141\000\
++\\054\000\012\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\148\000\047\000\147\000\049\000\014\000\064\000\011\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\075\000\007\000\
++\\167\000\001\000\000\000\
++\\041\000\154\000\042\000\153\000\053\000\152\000\061\000\151\000\
++\\063\000\070\000\064\000\150\000\068\000\069\000\000\000\
++\\036\000\156\000\000\000\
++\\036\000\157\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\158\000\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\053\000\159\000\061\000\151\000\063\000\070\000\064\000\150\000\
++\\068\000\069\000\000\000\
++\\052\000\162\000\055\000\161\000\061\000\160\000\063\000\070\000\
++\\068\000\069\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\
++\\012\000\166\000\013\000\165\000\016\000\101\000\017\000\017\000\
++\\060\000\164\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\150\000\096\000\153\000\163\000\167\000\001\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\077\000\172\000\081\000\171\000\085\000\097\000\
++\\090\000\170\000\091\000\169\000\167\000\001\000\000\000\
++\\015\000\178\000\037\000\177\000\040\000\176\000\061\000\175\000\
++\\063\000\070\000\068\000\069\000\079\000\174\000\000\000\
++\\000\000\
++\\022\000\187\000\024\000\186\000\026\000\185\000\028\000\184\000\
++\\029\000\183\000\030\000\182\000\089\000\181\000\150\000\096\000\
++\\152\000\180\000\153\000\112\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\188\000\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\000\000\
++\\022\000\190\000\028\000\184\000\029\000\183\000\030\000\182\000\
++\\150\000\096\000\152\000\189\000\153\000\112\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\061\000\072\000\062\000\071\000\063\000\070\000\068\000\069\000\
++\\160\000\068\000\162\000\191\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\033\000\016\000\045\000\015\000\049\000\014\000\050\000\192\000\
++\\054\000\012\000\064\000\011\000\066\000\010\000\067\000\009\000\
++\\068\000\008\000\075\000\007\000\116\000\006\000\117\000\005\000\
++\\133\000\004\000\134\000\003\000\135\000\002\000\167\000\001\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\193\000\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\077\000\194\000\081\000\171\000\085\000\097\000\
++\\090\000\170\000\091\000\169\000\167\000\001\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\199\000\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\205\000\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\061\000\208\000\063\000\070\000\068\000\069\000\130\000\207\000\000\000\
++\\000\000\
++\\010\000\211\000\061\000\210\000\063\000\070\000\068\000\069\000\000\000\
++\\010\000\212\000\061\000\210\000\063\000\070\000\068\000\069\000\000\000\
++\\010\000\213\000\061\000\210\000\063\000\070\000\068\000\069\000\000\000\
++\\061\000\208\000\063\000\070\000\068\000\069\000\130\000\214\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\098\000\085\000\097\000\154\000\094\000\
++\\156\000\219\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\223\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\167\000\001\000\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\225\000\085\000\097\000\092\000\224\000\
++\\167\000\001\000\000\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\075\000\227\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\231\000\085\000\097\000\086\000\230\000\
++\\150\000\229\000\151\000\228\000\167\000\001\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\231\000\085\000\097\000\086\000\232\000\
++\\167\000\001\000\000\000\
++\\053\000\237\000\061\000\236\000\063\000\070\000\064\000\150\000\
++\\068\000\069\000\083\000\235\000\084\000\234\000\161\000\233\000\000\000\
++\\000\000\
++\\000\000\
++\\063\000\241\000\068\000\069\000\143\000\240\000\000\000\
++\\000\000\
++\\000\000\
++\\150\000\229\000\151\000\228\000\000\000\
++\\101\000\242\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\061\000\072\000\062\000\247\000\063\000\070\000\068\000\069\000\
++\\159\000\246\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\066\000\130\000\068\000\008\000\069\000\129\000\071\000\248\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\033\000\016\000\054\000\012\000\116\000\139\000\117\000\005\000\
++\\118\000\255\000\119\000\137\000\000\000\
++\\033\000\016\000\054\000\012\000\116\000\139\000\117\000\005\000\
++\\118\000\000\001\119\000\137\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\002\001\
++\\054\000\012\000\000\000\
++\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\003\001\
++\\054\000\012\000\000\000\
++\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\004\001\
++\\054\000\012\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\
++\\012\000\166\000\013\000\165\000\016\000\101\000\017\000\017\000\
++\\060\000\012\001\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\019\000\015\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\231\000\085\000\097\000\086\000\230\000\
++\\167\000\001\000\000\000\
++\\038\000\020\001\039\000\019\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\015\000\024\001\061\000\175\000\063\000\070\000\068\000\069\000\000\000\
++\\063\000\241\000\068\000\069\000\143\000\025\001\000\000\
++\\000\000\
++\\000\000\
++\\166\000\026\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\063\000\241\000\068\000\069\000\143\000\030\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\032\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\036\001\
++\\138\000\198\000\139\000\197\000\140\000\035\001\144\000\196\000\
++\\150\000\195\000\000\000\
++\\053\000\039\001\061\000\151\000\063\000\070\000\064\000\150\000\
++\\068\000\069\000\131\000\038\001\132\000\037\001\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\041\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\061\000\208\000\063\000\070\000\068\000\069\000\130\000\043\001\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\044\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\010\000\045\001\061\000\210\000\063\000\070\000\068\000\069\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\050\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\051\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\052\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\053\001\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\054\001\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\055\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\056\001\085\000\097\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\225\000\085\000\097\000\092\000\058\001\
++\\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\014\000\062\001\000\000\
++\\000\000\
++\\019\000\065\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\102\000\074\001\
++\\103\000\073\001\104\000\072\001\106\000\071\001\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\102\000\076\001\
++\\103\000\073\001\104\000\072\001\106\000\071\001\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\077\001\
++\\104\000\072\001\106\000\071\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\080\001\048\000\079\001\049\000\014\000\064\000\011\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\075\000\007\000\
++\\167\000\001\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\082\001\046\000\081\001\049\000\014\000\064\000\011\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\075\000\007\000\
++\\167\000\001\000\000\000\
++\\033\000\016\000\054\000\012\000\116\000\139\000\117\000\005\000\
++\\118\000\083\001\119\000\137\000\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\085\001\048\000\084\001\049\000\014\000\064\000\011\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\075\000\007\000\
++\\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\148\000\047\000\087\001\049\000\014\000\064\000\011\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\075\000\007\000\
++\\167\000\001\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\088\001\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\000\000\
++\\041\000\154\000\042\000\089\001\053\000\152\000\061\000\151\000\
++\\063\000\070\000\064\000\150\000\068\000\069\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\090\001\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\051\000\096\001\061\000\119\000\063\000\070\000\068\000\069\000\
++\\097\000\095\001\108\000\094\001\109\000\093\001\110\000\092\001\
++\\128\000\091\001\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\
++\\012\000\166\000\013\000\165\000\016\000\101\000\017\000\017\000\
++\\060\000\106\001\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\167\000\001\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\168\000\011\000\167\000\
++\\012\000\107\001\016\000\101\000\017\000\017\000\064\000\011\000\
++\\066\000\100\000\068\000\008\000\076\000\099\000\167\000\001\000\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\109\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\171\000\085\000\097\000\090\000\170\000\
++\\091\000\110\001\167\000\001\000\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\111\001\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\112\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\065\000\114\001\066\000\113\001\068\000\008\000\000\000\
++\\015\000\178\000\037\000\177\000\040\000\116\001\061\000\175\000\
++\\063\000\070\000\068\000\069\000\079\000\174\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\145\000\118\001\146\000\114\000\150\000\096\000\152\000\113\000\
++\\153\000\112\000\000\000\
++\\028\000\184\000\030\000\119\001\150\000\096\000\152\000\189\000\
++\\153\000\112\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\077\000\120\001\081\000\171\000\085\000\097\000\
++\\090\000\170\000\091\000\169\000\167\000\001\000\000\000\
++\\000\000\
++\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\122\001\
++\\054\000\012\000\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\125\001\138\000\124\001\
++\\139\000\123\001\150\000\195\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\126\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\134\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\136\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\137\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\138\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\139\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\155\000\143\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\150\000\229\000\151\000\146\001\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\147\001\085\000\097\000\167\000\001\000\000\000\
++\\000\000\
++\\078\000\148\001\000\000\
++\\000\000\
++\\053\000\237\000\061\000\236\000\063\000\070\000\064\000\150\000\
++\\068\000\069\000\083\000\235\000\084\000\150\001\161\000\233\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\151\001\085\000\097\000\167\000\001\000\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\152\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\066\000\159\001\068\000\008\000\112\000\158\001\123\000\157\001\
++\\124\000\156\001\125\000\155\001\126\000\154\001\127\000\153\001\000\000\
++\\000\000\
++\\000\000\
++\\164\000\163\001\165\000\162\001\000\000\
++\\000\000\
++\\097\000\095\001\108\000\094\001\109\000\093\001\110\000\165\001\000\000\
++\\000\000\
++\\099\000\166\001\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\169\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\031\000\144\000\032\000\143\000\033\000\142\000\034\000\173\001\
++\\054\000\012\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\097\000\095\001\108\000\094\001\109\000\093\001\110\000\176\001\000\000\
++\\000\000\
++\\000\000\
++\\061\000\072\000\062\000\247\000\063\000\070\000\068\000\069\000\
++\\157\000\180\001\158\000\179\001\159\000\178\001\000\000\
++\\145\000\184\001\146\000\114\000\148\000\183\001\149\000\182\001\
++\\150\000\096\000\152\000\181\001\153\000\112\000\000\000\
++\\061\000\119\000\063\000\070\000\068\000\069\000\120\000\186\001\
++\\128\000\185\001\000\000\
++\\066\000\130\000\068\000\008\000\069\000\188\001\070\000\187\001\000\000\
++\\097\000\095\001\108\000\094\001\109\000\093\001\110\000\190\001\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\102\000\192\001\
++\\103\000\073\001\104\000\072\001\106\000\191\001\000\000\
++\\015\000\195\001\043\000\194\001\044\000\193\001\061\000\175\000\
++\\063\000\070\000\068\000\069\000\000\000\
++\\148\000\183\001\149\000\197\001\150\000\096\000\152\000\196\001\
++\\153\000\112\000\000\000\
++\\023\000\202\001\025\000\201\001\027\000\200\001\028\000\184\000\
++\\029\000\199\001\030\000\182\000\089\000\198\001\150\000\096\000\
++\\152\000\180\000\153\000\112\000\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\203\001\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\065\000\204\001\066\000\113\001\068\000\008\000\000\000\
++\\000\000\
++\\015\000\178\000\018\000\207\001\020\000\206\001\061\000\175\000\
++\\063\000\070\000\068\000\069\000\079\000\205\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\015\000\178\000\018\000\207\001\020\000\206\001\061\000\175\000\
++\\063\000\070\000\068\000\069\000\079\000\205\001\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\032\001\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\210\001\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\212\001\
++\\138\000\198\000\139\000\197\000\140\000\211\001\144\000\196\000\
++\\150\000\195\000\000\000\
++\\000\000\
++\\053\000\039\001\061\000\151\000\063\000\070\000\064\000\150\000\
++\\068\000\069\000\131\000\038\001\132\000\213\001\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\214\001\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\016\000\222\001\017\000\017\000\021\000\221\001\061\000\220\001\
++\\063\000\070\000\064\000\011\000\068\000\069\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\098\000\085\000\097\000\154\000\223\001\
++\\167\000\001\000\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\077\000\224\001\081\000\171\000\085\000\097\000\
++\\090\000\170\000\091\000\169\000\167\000\001\000\000\000\
++\\000\000\
++\\014\000\225\001\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\226\001\085\000\097\000\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\147\000\227\001\000\000\
++\\000\000\
++\\000\000\
++\\115\000\229\001\000\000\
++\\113\000\233\001\115\000\232\001\164\000\231\001\165\000\162\001\000\000\
++\\000\000\
++\\000\000\
++\\009\000\237\001\000\000\
++\\033\000\016\000\054\000\012\000\116\000\139\000\117\000\005\000\
++\\118\000\239\001\119\000\137\000\000\000\
++\\033\000\016\000\054\000\012\000\116\000\139\000\117\000\005\000\
++\\118\000\240\001\119\000\137\000\000\000\
++\\000\000\
++\\000\000\
++\\163\000\241\001\000\000\
++\\000\000\
++\\000\000\
++\\163\000\244\001\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\098\000\245\001\
++\\106\000\120\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\001\000\020\000\007\000\019\000\016\000\018\000\017\000\017\000\
++\\045\000\248\001\049\000\014\000\064\000\011\000\066\000\010\000\
++\\067\000\009\000\068\000\008\000\075\000\007\000\167\000\001\000\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\102\000\249\001\
++\\103\000\073\001\104\000\072\001\106\000\071\001\000\000\
++\\000\000\
++\\101\000\250\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\063\000\241\000\068\000\069\000\143\000\253\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\002\002\073\000\001\002\000\000\
++\\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\106\000\004\002\
++\\107\000\003\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\142\000\006\002\000\000\
++\\063\000\241\000\068\000\069\000\143\000\008\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\011\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\093\000\013\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\146\000\015\002\150\000\096\000\152\000\113\000\153\000\112\000\000\000\
++\\000\000\
++\\061\000\119\000\063\000\070\000\068\000\069\000\111\000\016\002\
++\\128\000\117\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\163\000\017\002\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\018\002\
++\\104\000\072\001\106\000\071\001\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\019\002\
++\\104\000\072\001\106\000\071\001\000\000\
++\\000\000\
++\\033\000\016\000\054\000\012\000\066\000\159\001\068\000\008\000\
++\\116\000\139\000\117\000\005\000\118\000\023\002\119\000\137\000\
++\\123\000\022\002\124\000\021\002\126\000\020\002\127\000\153\001\000\000\
++\\000\000\
++\\000\000\
++\\002\000\027\002\165\000\026\002\000\000\
++\\150\000\096\000\152\000\029\002\153\000\112\000\000\000\
++\\000\000\
++\\099\000\031\002\100\000\030\002\000\000\
++\\000\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\074\000\034\002\
++\\075\000\033\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\036\002\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\061\000\072\000\062\000\247\000\063\000\070\000\068\000\069\000\
++\\157\000\180\001\158\000\037\002\159\000\178\001\000\000\
++\\000\000\
++\\148\000\183\001\149\000\038\002\150\000\096\000\152\000\196\001\
++\\153\000\112\000\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\103\000\039\002\
++\\104\000\072\001\106\000\071\001\000\000\
++\\066\000\130\000\068\000\008\000\069\000\041\002\070\000\040\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\106\000\004\002\
++\\107\000\043\002\000\000\
++\\015\000\195\001\043\000\194\001\044\000\044\002\061\000\175\000\
++\\063\000\070\000\068\000\069\000\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\045\002\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\046\002\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\015\000\178\000\018\000\207\001\020\000\047\002\061\000\175\000\
++\\063\000\070\000\068\000\069\000\079\000\205\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\104\000\005\000\103\000\006\000\102\000\016\000\101\000\
++\\017\000\017\000\064\000\011\000\066\000\100\000\068\000\008\000\
++\\076\000\099\000\081\000\225\000\085\000\097\000\092\000\048\002\
++\\167\000\001\000\000\000\
++\\000\000\
++\\000\000\
++\\002\000\027\002\113\000\050\002\114\000\049\002\115\000\232\001\
++\\165\000\026\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\164\000\231\001\165\000\162\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\066\000\159\001\068\000\008\000\123\000\054\002\124\000\021\002\
++\\126\000\020\002\127\000\153\001\000\000\
++\\000\000\
++\\000\000\
++\\163\000\055\002\000\000\
++\\068\000\202\000\072\000\056\002\000\000\
++\\000\000\
++\\000\000\
++\\061\000\122\000\063\000\070\000\068\000\069\000\098\000\245\001\
++\\106\000\120\000\163\000\057\002\000\000\
++\\000\000\
++\\000\000\
++\\056\000\061\002\066\000\159\001\068\000\008\000\123\000\157\001\
++\\124\000\060\002\125\000\059\002\126\000\154\001\127\000\153\001\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\121\000\062\002\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\066\002\073\000\065\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\061\000\119\000\063\000\070\000\068\000\069\000\111\000\016\002\
++\\128\000\117\000\163\000\067\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\002\000\070\002\165\000\069\002\000\000\
++\\000\000\
++\\099\000\031\002\100\000\072\002\000\000\
++\\066\000\010\000\067\000\009\000\068\000\008\000\074\000\073\002\
++\\075\000\033\002\000\000\
++\\059\000\074\002\000\000\
++\\057\000\077\002\059\000\076\002\164\000\231\001\165\000\162\001\000\000\
++\\000\000\
++\\000\000\
++\\163\000\079\002\000\000\
++\\061\000\119\000\063\000\070\000\068\000\069\000\120\000\080\002\
++\\128\000\185\001\000\000\
++\\000\000\
++\\000\000\
++\\002\000\070\002\113\000\050\002\114\000\081\002\115\000\232\001\
++\\165\000\069\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\068\000\202\000\072\000\201\000\136\000\200\000\137\000\082\002\
++\\138\000\198\000\139\000\197\000\144\000\196\000\150\000\195\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\052\000\162\000\055\000\083\002\061\000\160\000\063\000\070\000\
++\\068\000\069\000\000\000\
++\\000\000\
++\\000\000\
++\\163\000\084\002\000\000\
++\\121\000\086\002\122\000\085\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\002\000\027\002\057\000\089\002\058\000\088\002\059\000\076\002\
++\\165\000\026\002\000\000\
++\\000\000\
++\\000\000\
++\\061\000\119\000\063\000\070\000\068\000\069\000\120\000\080\002\
++\\128\000\185\001\163\000\091\002\000\000\
++\\000\000\
++\\000\000\
++\\052\000\162\000\055\000\083\002\061\000\160\000\063\000\070\000\
++\\068\000\069\000\163\000\092\002\000\000\
++\\121\000\086\002\122\000\093\002\000\000\
++\\002\000\070\002\057\000\089\002\058\000\094\002\059\000\076\002\
++\\165\000\069\002\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\"
++val numstates = 608
++val numrules = 336
++val s = ref "" and index = ref 0
++val string_to_int = fn () => 
++let val i = !index
++in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
++end
++val string_to_list = fn s' =>
++    let val len = String.size s'
++        fun f () =
++           if !index < len then string_to_int() :: f()
++           else nil
++   in index := 0; s := s'; f ()
++   end
++val string_to_pairlist = fn (conv_key,conv_entry) =>
++     let fun f () =
++         case string_to_int()
++         of 0 => EMPTY
++          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
++     in f
++     end
++val string_to_pairlist_default = fn (conv_key,conv_entry) =>
++    let val conv_row = string_to_pairlist(conv_key,conv_entry)
++    in fn () =>
++       let val default = conv_entry(string_to_int())
++           val row = conv_row()
++       in (row,default)
++       end
++   end
++val string_to_table = fn (convert_row,s') =>
++    let val len = String.size s'
++        fun f ()=
++           if !index < len then convert_row() :: f()
++           else nil
++     in (s := s'; index := 0; f ())
++     end
++local
++  val memo = Array.array(numstates+numrules,ERROR)
++  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
++       fun f i =
++            if i=numstates then g i
++            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
++          in f 0 handle Subscript => ()
++          end
++in
++val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
++end
++val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
++val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
++val actionRowNumbers = string_to_list actionRowNumbers
++val actionT = let val actionRowLookUp=
++let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
++in Array.fromList(map actionRowLookUp actionRowNumbers)
++end
++in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
++numStates=numstates,initialState=STATE 0}
++end
++end
++local open Header in
++type pos = SourcePos.t
++type arg = unit
++structure MlyValue = 
++struct
++datatype svalue = VOID | ntVOID of unit ->  unit | WORD of unit ->  ({ digits:string,radix:StringCvt.radix } ) | TYVAR of unit ->  (string) | STRING of unit ->  (IntInf.t vector) | REAL of unit ->  (string) | LONGID of unit ->  (string) | INT of unit ->  ({ digits:string,negate:bool,radix:StringCvt.radix } ) | CHAR of unit ->  (IntInf.t) | word of unit ->  (IntInf.t) | withtypes of unit ->  (TypBind.t) | wherespecs' of unit ->  (wherespec list) | wherespecs of unit ->  (wherespec vector) | wherespec of unit ->  (wherespec) | vids of unit ->  (Vid.t list) | vidNoEqual of unit ->  (Vid.t) | vid of unit ->  (Vid.t) | var of unit ->  (Var.t) | valdescs of unit ->  (valdesc list) | valdesc of unit ->  (valdesc) | valbindTop of unit ->  (vb vector*rvb vector) | valbindRest of unit ->  (vb list*rvb list) | valbind of unit ->  (vb list*rvb list) | tyvarseq of unit ->  (Tyvar.t vector) | tyvars of unit ->  (Tyvar.t vector) | tyvar_pc of unit ->  (Tyvar.t list) | tyvar of unit ->  (T
 yvar.t) | typdescs of unit ->  (typdesc list) | typdesc of unit ->  (typdesc) | typBind'' of unit ->  ({ def:Type.t,tycon:Tycon.t,tyvars:Tyvar.t vector }  list) | typBind' of unit ->  ({ def:Type.t,tycon:Tycon.t,tyvars:Tyvar.t vector }  list) | typBind of unit ->  (TypBind.t) | tynode of unit ->  (Type.node) | tycon of unit ->  (Tycon.t) | tyOpt of unit ->  (Type.t option) | ty1 of unit ->  (Type.t) | ty0_pc of unit ->  (Type.t list) | ty'node of unit ->  (Type.node) | ty' of unit ->  (Type.t) | ty of unit ->  (Type.t) | tuple_ty of unit ->  (Type.t list) | topdecs of unit ->  (Topdec.t list list) | topdecnode of unit ->  (Topdec.node) | topdec of unit ->  (Topdec.t) | tlabels of unit ->  ( ( Field.t * Type.t )  list) | tlabel of unit ->  ( ( Field.t * Type.t ) ) | symattributes of unit ->  (PrimKind.SymbolAttribute.t list) | string of unit ->  (string) | strid of unit ->  (Strid.t) | strexpnode of unit ->  (Strexp.node) | strexp2node of unit ->  (Strexp.node) | strexp2 of u
 nit ->  (Strexp.t) | strexp1 of unit ->  (Strexp.t* ( Sigexp.t -> SigConst.t ) *Sigexp.t) | strexp of unit ->  (Strexp.t) | strdescs'' of unit ->  (strdesc whereAnd) | strdescs' of unit ->  (strdesc whereAnd) | strdescs of unit ->  (strdesc list) | strdecsnode of unit ->  (Strdec.node) | strdecs of unit ->  (Strdec.t) | strdecnode of unit ->  (Strdec.node) | strdec of unit ->  (Strdec.t) | strbinds'2 of unit ->  (strbind list) | strbinds'1' of unit ->  (strbind whereAnd) | strbinds'1 of unit ->  (strbind whereAnd) | strbinds' of unit ->  (Strexp.t*strbind list) | strbinds of unit ->  (strbind list) | specs of unit ->  (Spec.t) | specnode of unit ->  (Spec.node) | spec of unit ->  (Spec.t) | sigids of unit ->  (Sigid.t list) | sigid of unit ->  (Sigid.t) | sigexpnode of unit ->  (Sigexp.node) | sigexp'node of unit ->  (Sigexp.node) | sigexp' of unit ->  (Sigexp.t) | sigexp of unit ->  (Sigexp.t) | sigconst of unit ->  (SigConst.t) | sigbinds'' of unit ->  (sigbind whereAnd) |
  sigbinds' of unit ->  (sigbind whereAnd) | sigbinds of unit ->  (sigbind list) | sharespec of unit ->  (Equation.node) | sdecsPlus of unit ->  (Dec.t) | sdecs of unit ->  (Dec.t) | sdec of unit ->  (Dec.t) | rvalbindRest of unit ->  (rvb list) | rvalbind of unit ->  (rvb list) | rules of unit ->  (rule list) | rule of unit ->  (rule) | repl of unit ->  (DatatypeRhs.node) | program of unit ->  (Program.t) | priority of unit ->  (Priority.t) | pats of unit ->  (Pat.t list) | patnode of unit ->  (Pat.node) | patitems of unit ->  ( ( (Field.t * Pat.Item.t) list * bool ) ) | patitem of unit ->  ( ( Field.t * Pat.Item.t ) ) | pat_2c of unit ->  (Pat.t list) | pat of unit ->  (Pat.t) | ot_list of unit ->  (Exp.t list) | opcon of unit ->  (Con.t) | opaspat of unit ->  (Pat.t option) | match of unit ->  (Match.t) | longvidNoEqual of unit ->  (Longvid.t) | longvid of unit ->  (Longvid.t) | longvidands of unit ->  (Longvid.t list) | longtyconeqns of unit ->  (Longtycon.t list) | longt
 ycon of unit ->  (Longtycon.t) | longstrids of unit ->  (Longstrid.t list) | longstrideqns of unit ->  (Longstrid.t list) | longstrid of unit ->  (Longstrid.t) | longidNoAsterisk of unit ->  (Symbol.t list*Region.t) | longidEqual of unit ->  (Symbol.t list*Region.t) | longid of unit ->  (Symbol.t list*Region.t) | longcon of unit ->  (Longcon.t) | int of unit ->  (IntInf.t) | idNoAsterisk of unit ->  (Symbol.t*Region.t) | idEqual of unit ->  (Symbol.t*Region.t) | id of unit ->  (Symbol.t*Region.t) | funs of unit ->  (clauses list) | funbinds'2 of unit ->  (funbind list) | funbinds'1' of unit ->  (funbind whereAnd) | funbinds'1 of unit ->  (funbind whereAnd) | funbinds' of unit ->  (Strexp.t*funbind list) | funbinds of unit ->  (funbind list) | fixity of unit ->  (Fixity.t) | field of unit ->  (Field.t) | fctid of unit ->  (Fctid.t) | fctarg of unit ->  (FctArg.node) | expsAndTopdecs of unit ->  (Topdec.t list list) | expnode of unit ->  (Exp.node) | exp_ps of unit ->  (Exp.t 
 list) | exp_list of unit ->  (Exp.t list) | exp_2c of unit ->  (Exp.t list) | exp of unit ->  (Exp.t) | exndescs of unit ->  (exndesc list) | exndesc of unit ->  (exndesc) | elabels of unit ->  ( ( Field.t * Exp.t )  list) | elabel of unit ->  ( ( Field.t * Exp.t ) ) | ebs of unit ->  (eb list) | ebrhsnode of unit ->  (EbRhs.node) | ebrhs of unit ->  (EbRhs.t) | eb of unit ->  (eb) | digit of unit ->  (int) | decsnode of unit ->  (Dec.node) | decs of unit ->  (Dec.t) | decnolocal of unit ->  (Dec.node) | decnode of unit ->  (Dec.node) | dec of unit ->  (Dec.t) | dbs' of unit ->  (db list) | dbs of unit ->  (db vector) | db of unit ->  (db) | datatypeRhsnodeNoWithtype of unit ->  (DatatypeRhs.node) | datatypeRhsnode of unit ->  (DatatypeRhs.node) | datatypeRhsNoWithtype of unit ->  (DatatypeRhs.t) | datatypeRhs of unit ->  (DatatypeRhs.t) | datBindNoWithtype of unit ->  (DatBind.t) | datBind of unit ->  (DatBind.t) | constOrBool of unit ->  (Const.t) | constrs of unit ->  ( (
  Con.t * Type.t option )  list) | constraint of unit ->  (Type.t option) | constr of unit ->  (Con.t*Type.t option) | const' of unit ->  (Const.node) | const of unit ->  (Const.t) | con of unit ->  (Con.t) | commapats of unit ->  (Pat.t list) | clausesTop of unit ->  (clauses) | clauses of unit ->  (clause list) | clause of unit ->  (clause) | ieattributes of unit ->  (PrimKind.ImportExportAttribute.t list) | arg_fct of unit ->  (Strexp.t) | app_exp1 of unit ->  (Exp.t list) | app_exp of unit ->  (Exp.t list) | apats of unit ->  (Pat.t list) | apatnode of unit ->  (Pat.node) | apat' of unit ->  (Pat.t) | apat of unit ->  (Pat.t) | andspecs of unit ->  (wherespec list) | aexp of unit ->  (Exp.node)
++end
++type svalue = MlyValue.svalue
++type result = Program.t
++end
++structure EC=
++struct
++open LrTable
++infix 5 $$
++fun x $$ y = y::x
++val is_keyword =
++fn (T 7) => true | (T 8) => true | (T 11) => true | (T 14) => true | (T 18) => true | (T 19) => true | (T 20) => true | (T 21) => true | (T 24) => true | (T 25) => true | (T 26) => true | (T 27) => true | (T 28) => true | (T 29) => true | (T 30) => true | (T 31) => true | (T 33) => true | (T 34) => true | (T 35) => true | (T 36) => true | (T 37) => true | (T 40) => true | (T 41) => true | (T 43) => true | (T 45) => true | (T 46) => true | (T 47) => true | (T 48) => true | (T 49) => true | (T 52) => true | (T 55) => true | (T 56) => true | (T 57) => true | (T 58) => true | (T 59) => true | (T 60) => true | (T 61) => true | (T 62) => true | (T 64) => true | (T 63) => true | (T 66) => true | (T 67) => true | (T 44) => true | (T 9) => true | _ => false
++val preferred_change : (term list * term list) list = 
++(nil
++,nil
++ $$ (T 62))::
++(nil
++,nil
++ $$ (T 60))::
++(nil
++,nil
++ $$ (T 20))::
++(nil
++,nil
++ $$ (T 42))::
++(nil
++,nil
++ $$ (T 54))::
++(nil
++ $$ (T 27),nil
++ $$ (T 23))::
++(nil
++ $$ (T 23),nil
++ $$ (T 27))::
++(nil
++ $$ (T 8),nil
++ $$ (T 9))::
++(nil
++ $$ (T 15),nil
++ $$ (T 45))::
++(nil
++ $$ (T 54),nil
++ $$ (T 17))::
++(nil
++ $$ (T 17),nil
++ $$ (T 54))::
++(nil
++,nil
++ $$ (T 21) $$ (T 2) $$ (T 34))::
++(nil
++,nil
++ $$ (T 2) $$ (T 20))::
++nil
++val noShift = 
++fn (T 22) => true | _ => false
++val showTerminal =
++fn (T 0) => "CHAR"
++  | (T 1) => "INT"
++  | (T 2) => "LONGID"
++  | (T 3) => "REAL"
++  | (T 4) => "STRING"
++  | (T 5) => "TYVAR"
++  | (T 6) => "WORD"
++  | (T 7) => "ABSTYPE"
++  | (T 8) => "AND"
++  | (T 9) => "ANDALSO"
++  | (T 10) => "ARROW"
++  | (T 11) => "AS"
++  | (T 12) => "ASTERISK"
++  | (T 13) => "BAR"
++  | (T 14) => "CASE"
++  | (T 15) => "COLON"
++  | (T 16) => "COLONGT"
++  | (T 17) => "COMMA"
++  | (T 18) => "DATATYPE"
++  | (T 19) => "DOTDOTDOT"
++  | (T 20) => "ELSE"
++  | (T 21) => "END"
++  | (T 22) => "EOF"
++  | (T 23) => "EQUALOP"
++  | (T 24) => "EQTYPE"
++  | (T 25) => "EXCEPTION"
++  | (T 26) => "DO"
++  | (T 27) => "DARROW"
++  | (T 28) => "FN"
++  | (T 29) => "FUN"
++  | (T 30) => "FUNCTOR"
++  | (T 31) => "HANDLE"
++  | (T 32) => "HASH"
++  | (T 33) => "IF"
++  | (T 34) => "IN"
++  | (T 35) => "INCLUDE"
++  | (T 36) => "INFIX"
++  | (T 37) => "INFIXR"
++  | (T 38) => "LBRACE"
++  | (T 39) => "LBRACKET"
++  | (T 40) => "LET"
++  | (T 41) => "LOCAL"
++  | (T 42) => "LPAREN"
++  | (T 43) => "NONFIX"
++  | (T 44) => "ORELSE"
++  | (T 45) => "OF"
++  | (T 46) => "OP"
++  | (T 47) => "OPEN"
++  | (T 48) => "OVERLOAD"
++  | (T 49) => "RAISE"
++  | (T 50) => "RBRACE"
++  | (T 51) => "RBRACKET"
++  | (T 52) => "REC"
++  | (T 53) => "RPAREN"
++  | (T 54) => "SEMICOLON"
++  | (T 55) => "SHARING"
++  | (T 56) => "SIG"
++  | (T 57) => "SIGNATURE"
++  | (T 58) => "STRUCT"
++  | (T 59) => "STRUCTURE"
++  | (T 60) => "THEN"
++  | (T 61) => "TYPE"
++  | (T 62) => "VAL"
++  | (T 63) => "WHERE"
++  | (T 64) => "WHILE"
++  | (T 65) => "WILD"
++  | (T 66) => "WITH"
++  | (T 67) => "WITHTYPE"
++  | (T 68) => "BUILD_CONST"
++  | (T 69) => "COMMAND_LINE_CONST"
++  | (T 70) => "CONST"
++  | (T 71) => "ADDRESS"
++  | (T 72) => "EXPORT"
++  | (T 73) => "IMPORT"
++  | (T 74) => "SYMBOL"
++  | (T 75) => "PRIM"
++  | _ => "bogus-term"
++local open Header in
++val errtermvalue=
++fn (T 0) => MlyValue.CHAR(fn () => (IntInf.fromInt (Char.ord #"a"))) | 
++(T 1) => MlyValue.INT(fn () => ({digits = "0", negate = false, radix = StringCvt.DEC})) | 
++(T 2) => MlyValue.LONGID(fn () => ("bogus")) | 
++(T 3) => MlyValue.REAL(fn () => ("13.0")) | 
++(T 4) => MlyValue.STRING(fn () => (Vector.fromList [])) | 
++(T 5) => MlyValue.TYVAR(fn () => ("'a")) | 
++(T 6) => MlyValue.WORD(fn () => ({digits = "0", radix = StringCvt.DEC})) | 
++_ => MlyValue.VOID
++end
++val terms : term list = nil
++ $$ (T 75) $$ (T 74) $$ (T 73) $$ (T 72) $$ (T 71) $$ (T 70) $$ (T 69) $$ (T 68) $$ (T 67) $$ (T 66) $$ (T 65) $$ (T 64) $$ (T 63) $$ (T 62) $$ (T 61) $$ (T 60) $$ (T 59) $$ (T 58) $$ (T 57) $$ (T 56) $$ (T 55) $$ (T 54) $$ (T 53) $$ (T 52) $$ (T 51) $$ (T 50) $$ (T 49) $$ (T 48) $$ (T 47) $$ (T 46) $$ (T 45) $$ (T 44) $$ (T 43) $$ (T 42) $$ (T 41) $$ (T 40) $$ (T 39) $$ (T 38) $$ (T 37) $$ (T 36) $$ (T 35) $$ (T 34) $$ (T 33) $$ (T 32) $$ (T 31) $$ (T 30) $$ (T 29) $$ (T 28) $$ (T 27) $$ (T 26) $$ (T 25) $$ (T 24) $$ (T 23) $$ (T 22) $$ (T 21) $$ (T 20) $$ (T 19) $$ (T 18) $$ (T 17) $$ (T 16) $$ (T 15) $$ (T 14) $$ (T 13) $$ (T 12) $$ (T 11) $$ (T 10) $$ (T 9) $$ (T 8) $$ (T 7)end
++structure Actions =
++struct 
++exception mlyAction of int
++local open Header in
++val actions = 
++fn (i392,defaultPos,stack,
++    (()):arg) =>
++case (i392,stack)
++of  ( 0, ( ( _, ( MlyValue.expsAndTopdecs expsAndTopdecs1, expsAndTopdecs1left, expsAndTopdecs1right)) :: rest671)) => let val  result = MlyValue.program (fn _ => let val  (expsAndTopdecs as expsAndTopdecs1) = expsAndTopdecs1 ()
++ in ((*#line 455.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Program.T expsAndTopdecs(*#line 2034.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 87, ( result, expsAndTopdecs1left, expsAndTopdecs1right), rest671)
++end
++|  ( 1, ( ( _, ( MlyValue.expsAndTopdecs expsAndTopdecs1, _, expsAndTopdecs1right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.expsAndTopdecs (fn _ => let val  (exp as exp1) = exp1 ()
++ val  (expsAndTopdecs as expsAndTopdecs1) = expsAndTopdecs1 ()
++ in ((*#line 458.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[Topdec.fromExp exp] :: expsAndTopdecs(*#line 2040.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 49, ( result, exp1left, expsAndTopdecs1right), rest671)
++end
++|  ( 2, ( ( _, ( MlyValue.topdecs topdecs1, topdecs1left, topdecs1right)) :: rest671)) => let val  result = MlyValue.expsAndTopdecs (fn _ => let val  (topdecs as topdecs1) = topdecs1 ()
++ in ((*#line 459.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)topdecs(*#line 2047.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 49, ( result, topdecs1left, topdecs1right), rest671)
++end
++|  ( 3, ( rest671)) => let val  result = MlyValue.topdecs (fn _ => ((*#line 462.8 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 2053.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 134, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 4, ( ( _, ( MlyValue.topdecs topdecs1, _, topdecs1right)) :: ( _, ( MlyValue.topdec topdec1, topdec1left, _)) :: rest671)) => let val  result = MlyValue.topdecs (fn _ => let val  (topdec as topdec1) = topdec1 ()
++ val  (topdecs as topdecs1) = topdecs1 ()
++ in ((*#line 463.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)consTopdec (topdec, topdecs)(*#line 2057.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 134, ( result, topdec1left, topdecs1right), rest671)
++end
++|  ( 5, ( ( _, ( MlyValue.expsAndTopdecs expsAndTopdecs1, _, expsAndTopdecs1right)) :: ( _, ( _, SEMICOLON1left, _)) :: rest671)) => let val  result = MlyValue.topdecs (fn _ => let val  (expsAndTopdecs as expsAndTopdecs1) = expsAndTopdecs1 ()
++ in ((*#line 464.31 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[] :: expsAndTopdecs(*#line 2064.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 134, ( result, SEMICOLON1left, expsAndTopdecs1right), rest671)
++end
++|  ( 6, ( ( _, ( MlyValue.topdecnode topdecnode1, (topdecnodeleft as topdecnode1left), (topdecnoderight as topdecnode1right))) :: rest671)) => let val  result = MlyValue.topdec (fn _ => let val  (topdecnode as topdecnode1) = topdecnode1 ()
++ in ((*#line 466.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Topdec.makeRegion' (topdecnode,
++                                         topdecnodeleft,
++                                         topdecnoderight)(*#line 2070.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 132, ( result, topdecnode1left, topdecnode1right), rest671)
++end
++|  ( 7, ( ( _, ( MlyValue.strdec strdec1, strdec1left, strdec1right)) :: rest671)) => let val  result = MlyValue.topdecnode (fn _ => let val  (strdec as strdec1) = strdec1 ()
++ in ((*#line 472.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Topdec.Strdec strdec(*#line 2078.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 133, ( result, strdec1left, strdec1right), rest671)
++end
++|  ( 8, ( ( _, ( MlyValue.sigbinds sigbinds1, _, sigbinds1right)) :: ( _, ( _, SIGNATURE1left, _)) :: rest671)) => let val  result = MlyValue.topdecnode (fn _ => let val  (sigbinds as sigbinds1) = sigbinds1 ()
++ in ((*#line 474.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++         val sigbinds = Vector.fromList sigbinds
++         val d = Topdec.Signature sigbinds
++      in
++         d
++      end(*#line 2084.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 133, ( result, SIGNATURE1left, sigbinds1right), rest671)
++end
++|  ( 9, ( ( _, ( MlyValue.funbinds funbinds1, _, funbinds1right)) :: ( _, ( _, FUNCTOR1left, _)) :: rest671)) => let val  result = MlyValue.topdecnode (fn _ => let val  (funbinds as funbinds1) = funbinds1 ()
++ in ((*#line 481.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Topdec.Functor (Vector.fromList funbinds)(*#line 2095.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 133, ( result, FUNCTOR1left, funbinds1right), rest671)
++end
++|  ( 10, ( ( _, ( MlyValue.strdecsnode strdecsnode1, (strdecsnodeleft as strdecsnode1left), (strdecsnoderight as strdecsnode1right))) :: rest671)) => let val  result = MlyValue.strdecs (fn _ => let val  (strdecsnode as strdecsnode1) = strdecsnode1 ()
++ in ((*#line 487.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strdec.makeRegion'
++                       (strdecsnode, strdecsnodeleft, strdecsnoderight)(*#line 2101.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 117, ( result, strdecsnode1left, strdecsnode1right), rest671)
++end
++|  ( 11, ( rest671)) => let val  result = MlyValue.strdecsnode (fn _ => ((*#line 490.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strdec.Seq [](*#line 2108.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 118, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 12, ( ( _, ( MlyValue.strdecs strdecs1, _, strdecs1right)) :: ( _, ( _, SEMICOLON1left, _)) :: rest671)) => let val  result = MlyValue.strdecsnode (fn _ => let val  (strdecs as strdecs1) = strdecs1 ()
++ in ((*#line 491.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strdec.Seq [strdecs](*#line 2112.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 118, ( result, SEMICOLON1left, strdecs1right), rest671)
++end
++|  ( 13, ( ( _, ( MlyValue.strdecs strdecs1, _, strdecs1right)) :: ( _, ( MlyValue.strdec strdec1, strdec1left, _)) :: rest671)) => let val  result = MlyValue.strdecsnode (fn _ => let val  (strdec as strdec1) = strdec1 ()
++ val  (strdecs as strdecs1) = strdecs1 ()
++ in ((*#line 492.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strdec.Seq [strdec, strdecs](*#line 2118.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 118, ( result, strdec1left, strdecs1right), rest671)
++end
++|  ( 14, ( ( _, ( MlyValue.strdecnode strdecnode1, (strdecnodeleft as strdecnode1left), (strdecnoderight as strdecnode1right))) :: rest671)) => let val  result = MlyValue.strdec (fn _ => let val  (strdecnode as strdecnode1) = strdecnode1 ()
++ in ((*#line 494.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strdec.makeRegion' (strdecnode,
++                                         strdecnodeleft, strdecnoderight)(*#line 2125.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 115, ( result, strdecnode1left, strdecnode1right), rest671)
++end
++|  ( 15, ( ( _, ( MlyValue.strbinds strbinds1, _, strbinds1right)) :: ( _, ( _, STRUCTURE1left, _)) :: rest671)) => let val  result = MlyValue.strdecnode (fn _ => let val  (strbinds as strbinds1) = strbinds1 ()
++ in ((*#line 499.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++         val strbinds = Vector.fromList strbinds
++         val d = Strdec.Structure strbinds
++
++
++
++      in
++         d
++      end(*#line 2132.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 116, ( result, STRUCTURE1left, strbinds1right), rest671)
++end
++|  ( 16, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.strdecs strdecs2, _, _)) :: _ :: ( _, ( MlyValue.strdecs strdecs1, _, _)) :: ( _, ( _, LOCAL1left, _)) :: rest671)) => let val  result = MlyValue.strdecnode (fn _ => let val  strdecs1 = strdecs1 ()
++ val  strdecs2 = strdecs2 ()
++ in ((*#line 508.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strdec.Local (strdecs1, strdecs2)(*#line 2146.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 116, ( result, LOCAL1left, END1right), rest671)
++end
++|  ( 17, ( ( _, ( MlyValue.decnolocal decnolocal1, (decnolocalleft as decnolocal1left), (decnolocalright as decnolocal1right))) :: rest671)) => let val  result = MlyValue.strdecnode (fn _ => let val  (decnolocal as decnolocal1) = decnolocal1 ()
++ in ((*#line 510.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strdec.Core (Dec.makeRegion' (decnolocal,
++                                    decnolocalleft, decnolocalright))(*#line 2153.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 116, ( result, decnolocal1left, decnolocal1right), rest671)
++end
++|  ( 18, ( ( _, ( MlyValue.strbinds' strbinds'1, _, strbinds'1right)) :: _ :: ( _, ( MlyValue.sigconst sigconst1, _, _)) :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val  result = MlyValue.strbinds (fn _ => let val  (strid as strid1) = strid1 ()
++ val  (sigconst as sigconst1) = sigconst1 ()
++ val  (strbinds' as strbinds'1) = strbinds'1 ()
++ in ((*#line 514.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let val (def,strbinds) = strbinds'
++            in {name = strid, def = def, constraint = sigconst}
++               :: strbinds
++            end(*#line 2160.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 110, ( result, strid1left, strbinds'1right), rest671)
++end
++|  ( 19, ( ( _, ( MlyValue.strbinds'1 strbinds'11, _, strbinds'11right)) :: ( _, ( MlyValue.strexp1 strexp11, strexp11left, _)) :: rest671)) => let val  result = MlyValue.strbinds' (fn _ => let val  (strexp1 as strexp11) = strexp11 ()
++ val  (strbinds'1 as strbinds'11) = strbinds'11 ()
++ in ((*#line 519.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)augment1 (strexp1, strbinds'1)(*#line 2171.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 111, ( result, strexp11left, strbinds'11right), rest671)
++end
++|  ( 20, ( ( _, ( MlyValue.strbinds'2 strbinds'21, _, strbinds'21right)) :: ( _, ( MlyValue.strexp2 strexp21, strexp21left, _)) :: rest671)) => let val  result = MlyValue.strbinds' (fn _ => let val  (strexp2 as strexp21) = strexp21 ()
++ val  (strbinds'2 as strbinds'21) = strbinds'21 ()
++ in ((*#line 520.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(strexp2,strbinds'2)(*#line 2178.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 111, ( result, strexp21left, strbinds'21right), rest671)
++end
++|  ( 21, ( ( _, ( MlyValue.strbinds'2 strbinds'21, (strbinds'2left as strbinds'21left), strbinds'21right)) :: rest671)) => let val  result = MlyValue.strbinds'1 (fn _ => let val  (strbinds'2 as strbinds'21) = strbinds'21 ()
++ in ((*#line 522.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([], strbinds'2left, strbinds'2)(*#line 2185.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 112, ( result, strbinds'21left, strbinds'21right), rest671)
++end
++|  ( 22, ( ( _, ( MlyValue.strbinds'1' strbinds'1'1, _, strbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val  result = MlyValue.strbinds'1 (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (strbinds'1' as strbinds'1'1) = strbinds'1'1 ()
++ in ((*#line 523.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec,strbinds'1')(*#line 2191.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 112, ( result, WHERE1left, strbinds'1'1right), rest671)
++end
++|  ( 23, ( ( _, ( MlyValue.strbinds'1 strbinds'11, strbinds'11left, strbinds'11right)) :: rest671)) => let val  result = MlyValue.strbinds'1' (fn _ => let val  (strbinds'1 as strbinds'11) = strbinds'11 ()
++ in ((*#line 525.43 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)strbinds'1(*#line 2198.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 113, ( result, strbinds'11left, strbinds'11right), rest671)
++end
++|  ( 24, ( ( _, ( MlyValue.strbinds'1' strbinds'1'1, _, strbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.strbinds'1' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (strbinds'1' as strbinds'1'1) = strbinds'1'1 ()
++ in ((*#line 526.43 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec,strbinds'1')(*#line 2204.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 113, ( result, AND1left, strbinds'1'1right), rest671)
++end
++|  ( 25, ( rest671)) => let val  result = MlyValue.strbinds'2 (fn _ => ((*#line 528.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 2211.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 114, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 26, ( ( _, ( MlyValue.strbinds strbinds1, _, strbinds1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.strbinds'2 (fn _ => let val  (strbinds as strbinds1) = strbinds1 ()
++ in ((*#line 529.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)strbinds(*#line 2215.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 114, ( result, AND1left, strbinds1right), rest671)
++end
++|  ( 27, ( ( _, ( MlyValue.strexpnode strexpnode1, (strexpnodeleft as strexpnode1left), (strexpnoderight as strexpnode1right))) :: rest671)) => let val  result = MlyValue.strexp (fn _ => let val  (strexpnode as strexpnode1) = strexpnode1 ()
++ in ((*#line 531.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strexp.makeRegion' (strexpnode,
++                                        strexpnodeleft, strexpnoderight)(*#line 2221.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 122, ( result, strexpnode1left, strexpnode1right), rest671)
++end
++|  ( 28, ( ( _, ( MlyValue.strexp1 strexp11, strexp11left, strexp11right)) :: rest671)) => let val  result = MlyValue.strexpnode (fn _ => let val  (strexp1 as strexp11) = strexp11 ()
++ in ((*#line 536.6 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++        val (strexp, sigconst, sigexp) = strexp1
++     in
++        Strexp.Constrained (strexp, sigconst sigexp)
++     end(*#line 2228.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 126, ( result, strexp11left, strexp11right), rest671)
++end
++|  ( 29, ( ( _, ( MlyValue.wherespecs wherespecs1, _, (wherespecsright as wherespecs1right))) :: ( _, ( MlyValue.strexp1 strexp11, strexp11left, _)) :: rest671)) => let val  result = MlyValue.strexpnode (fn _ => let val  (strexp1 as strexp11) = strexp11 ()
++ val  (wherespecs as wherespecs1) = wherespecs1 ()
++ in ((*#line 542.6 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++        val (strexp,sigconst,sigexp) = strexp1
++     in
++        Strexp.Constrained
++        (strexp,
++         sigconst (Sigexp.wheree
++                   (sigexp, wherespecs,
++                    Region.extendRight (Sigexp.region sigexp,
++                                        wherespecsright))))
++     end(*#line 2238.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 126, ( result, strexp11left, wherespecs1right), rest671)
++end
++|  ( 30, ( ( _, ( MlyValue.strexp2node strexp2node1, strexp2node1left, strexp2node1right)) :: rest671)) => let val  result = MlyValue.strexpnode (fn _ => let val  (strexp2node as strexp2node1) = strexp2node1 ()
++ in ((*#line 553.6 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)strexp2node(*#line 2254.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 126, ( result, strexp2node1left, strexp2node1right), rest671)
++end
++|  ( 31, ( ( _, ( MlyValue.sigexp' sigexp'1, _, sigexp'1right)) :: _ :: ( _, ( MlyValue.strexp strexp1, strexp1left, _)) :: rest671)) => let val  result = MlyValue.strexp1 (fn _ => let val  (strexp as strexp1) = strexp1 ()
++ val  (sigexp' as sigexp'1) = sigexp'1 ()
++ in ((*#line 555.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(strexp,SigConst.Transparent,sigexp')(*#line 2260.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 123, ( result, strexp1left, sigexp'1right), rest671)
++end
++|  ( 32, ( ( _, ( MlyValue.sigexp' sigexp'1, _, sigexp'1right)) :: _ :: ( _, ( MlyValue.strexp strexp1, strexp1left, _)) :: rest671)) => let val  result = MlyValue.strexp1 (fn _ => let val  (strexp as strexp1) = strexp1 ()
++ val  (sigexp' as sigexp'1) = sigexp'1 ()
++ in ((*#line 556.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(strexp,SigConst.Opaque,sigexp')(*#line 2267.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 123, ( result, strexp1left, sigexp'1right), rest671)
++end
++|  ( 33, ( ( _, ( MlyValue.strexp2node strexp2node1, (strexp2nodeleft as strexp2node1left), (strexp2noderight as strexp2node1right))) :: rest671)) => let val  result = MlyValue.strexp2 (fn _ => let val  (strexp2node as strexp2node1) = strexp2node1 ()
++ in ((*#line 558.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strexp.makeRegion'
++                       (strexp2node, strexp2nodeleft, strexp2noderight)(*#line 2274.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 124, ( result, strexp2node1left, strexp2node1right), rest671)
++end
++|  ( 34, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right)) :: rest671)) => let val  result = MlyValue.strexp2node (fn _ => let val  (longid as longid1) = longid1 ()
++ in ((*#line 562.39 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strexp.Var (Longstrid.fromSymbols longid)(*#line 2281.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 125, ( result, longid1left, longid1right), rest671)
++end
++|  ( 35, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.strdecs strdecs1, _, _)) :: ( _, ( _, STRUCT1left, _)) :: rest671)) => let val  result = MlyValue.strexp2node (fn _ => let val  (strdecs as strdecs1) = strdecs1 ()
++ in ((*#line 563.39 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strexp.Struct strdecs(*#line 2287.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 125, ( result, STRUCT1left, END1right), rest671)
++end
++|  ( 36, ( ( _, ( MlyValue.arg_fct arg_fct1, _, arg_fct1right)) :: ( _, ( MlyValue.longid longid1, longid1left, _)) :: rest671)) => let val  result = MlyValue.strexp2node (fn _ => let val  (longid as longid1) = longid1 ()
++ val  (arg_fct as arg_fct1) = arg_fct1 ()
++ in ((*#line 565.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strexp.App (Fctid.fromSymbol (ensureNonqualified longid), arg_fct)(*#line 2293.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 125, ( result, longid1left, arg_fct1right), rest671)
++end
++|  ( 37, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.strexp strexp1, _, _)) :: _ :: ( _, ( MlyValue.strdecs strdecs1, _, _)) :: ( _, ( _, LET1left, _)) :: rest671)) => let val  result = MlyValue.strexp2node (fn _ => let val  (strdecs as strdecs1) = strdecs1 ()
++ val  (strexp as strexp1) = strexp1 ()
++ in ((*#line 566.39 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strexp.Let (strdecs,strexp)(*#line 2300.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 125, ( result, LET1left, END1right), rest671)
++end
++|  ( 38, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.strexp strexp1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.arg_fct (fn _ => let val  (strexp as strexp1) = strexp1 ()
++ in ((*#line 568.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)strexp(*#line 2307.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 8, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 39, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.strdecs strdecs1, strdecsleft, strdecsright)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.arg_fct (fn _ => let val  (strdecs as strdecs1) = strdecs1 ()
++ in ((*#line 569.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strexp.makeRegion'
++                                  (Strexp.Struct strdecs,
++                                   strdecsleft, strdecsright)(*#line 2313.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 8, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 40, ( ( _, ( MlyValue.sigexp' sigexp'1, sigexp'1left, sigexp'1right)) :: rest671)) => let val  result = MlyValue.sigexp (fn _ => let val  (sigexp' as sigexp'1) = sigexp'1 ()
++ in ((*#line 579.6 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)sigexp'(*#line 2321.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 101, ( result, sigexp'1left, sigexp'1right), rest671)
++end
++|  ( 41, ( ( _, ( MlyValue.wherespecs wherespecs1, _, (wherespecsright as wherespecs1right))) :: ( _, ( MlyValue.sigexp' sigexp'1, (sigexp'left as sigexp'1left), _)) :: rest671)) => let val  result = MlyValue.sigexp (fn _ => let val  (sigexp' as sigexp'1) = sigexp'1 ()
++ val  (wherespecs as wherespecs1) = wherespecs1 ()
++ in ((*#line 581.6 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Sigexp.wheree (sigexp', wherespecs, reg (sigexp'left, wherespecsright))(*#line 2327.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 101, ( result, sigexp'1left, wherespecs1right), rest671)
++end
++|  ( 42, ( ( _, ( MlyValue.wherespecs' wherespecs'1, wherespecs'1left, wherespecs'1right)) :: rest671)) => let val  result = MlyValue.wherespecs (fn _ => let val  (wherespecs' as wherespecs'1) = wherespecs'1 ()
++ in ((*#line 583.27 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Vector.fromList wherespecs'(*#line 2334.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 163, ( result, wherespecs'1left, wherespecs'1right), rest671)
++end
++|  ( 43, ( ( _, ( MlyValue.wherespec wherespec1, _, wherespec1right)) :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val  result = MlyValue.wherespecs' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ in ((*#line 586.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[wherespec](*#line 2340.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 164, ( result, WHERE1left, wherespec1right), rest671)
++end
++|  ( 44, ( ( _, ( MlyValue.wherespecs' wherespecs'1, _, wherespecs'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val  result = MlyValue.wherespecs' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (wherespecs' as wherespecs'1) = wherespecs'1 ()
++ in ((*#line 587.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)wherespec :: wherespecs'(*#line 2346.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 164, ( result, WHERE1left, wherespecs'1right), rest671)
++end
++|  ( 45, ( ( _, ( MlyValue.andspecs andspecs1, _, andspecs1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val  result = MlyValue.wherespecs' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (andspecs as andspecs1) = andspecs1 ()
++ in ((*#line 588.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)wherespec :: andspecs(*#line 2353.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 164, ( result, WHERE1left, andspecs1right), rest671)
++end
++|  ( 46, ( ( _, ( MlyValue.wherespec wherespec1, _, wherespec1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.andspecs (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ in ((*#line 591.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[wherespec](*#line 2360.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, AND1left, wherespec1right), rest671)
++end
++|  ( 47, ( ( _, ( MlyValue.andspecs andspecs1, _, andspecs1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.andspecs (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (andspecs as andspecs1) = andspecs1 ()
++ in ((*#line 592.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)wherespec :: andspecs(*#line 2366.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, AND1left, andspecs1right), rest671)
++end
++|  ( 48, ( ( _, ( MlyValue.wherespecs' wherespecs'1, _, wherespecs'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.andspecs (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (wherespecs' as wherespecs'1) = wherespecs'1 ()
++ in ((*#line 593.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)wherespec :: wherespecs'(*#line 2373.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, AND1left, wherespecs'1right), rest671)
++end
++|  ( 49, ( ( _, ( MlyValue.sigbinds' sigbinds'1, _, sigbinds'1right)) :: ( _, ( MlyValue.sigexp' sigexp'1, _, _)) :: _ :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ val  (sigexp' as sigexp'1) = sigexp'1 ()
++ val  (sigbinds' as sigbinds'1) = sigbinds'1 ()
++ in ((*#line 595.45 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)augment (sigid, sigexp', sigbinds')(*#line 2380.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 97, ( result, sigid1left, sigbinds'1right), rest671)
++end
++|  ( 50, ( ( _, ( MlyValue.sigexp'node sigexp'node1, (sigexp'nodeleft as sigexp'node1left), (sigexp'noderight as sigexp'node1right))) :: rest671)) => let val  result = MlyValue.sigexp' (fn _ => let val  (sigexp'node as sigexp'node1) = sigexp'node1 ()
++ in ((*#line 597.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Sigexp.makeRegion' (sigexp'node,
++                                          sigexp'nodeleft,
++                                          sigexp'noderight)(*#line 2388.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 102, ( result, sigexp'node1left, sigexp'node1right), rest671)
++end
++|  ( 51, ( ( _, ( MlyValue.sigid sigid1, sigid1left, sigid1right)) :: rest671)) => let val  result = MlyValue.sigexp'node (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ in ((*#line 601.43 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Sigexp.Var sigid(*#line 2396.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 103, ( result, sigid1left, sigid1right), rest671)
++end
++|  ( 52, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.specs specs1, _, _)) :: ( _, ( _, SIG1left, _)) :: rest671)) => let val  result = MlyValue.sigexp'node (fn _ => let val  (specs as specs1) = specs1 ()
++ in ((*#line 602.43 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Sigexp.Spec specs(*#line 2402.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 103, ( result, SIG1left, END1right), rest671)
++end
++|  ( 53, ( rest671)) => let val  result = MlyValue.sigbinds' (fn _ => ((*#line 604.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([], defaultPos, [])(*#line 2408.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 98, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 54, ( ( _, ( MlyValue.sigbinds sigbinds1, _, sigbinds1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds' (fn _ => let val  (sigbinds as sigbinds1) = sigbinds1 ()
++ in ((*#line 605.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([], defaultPos, sigbinds)(*#line 2412.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 98, ( result, AND1left, sigbinds1right), rest671)
++end
++|  ( 55, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (sigbinds'' as sigbinds''1) = sigbinds''1 ()
++ in ((*#line 606.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec,sigbinds'')(*#line 2418.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 98, ( result, WHERE1left, sigbinds''1right), rest671)
++end
++|  ( 56, ( ( _, ( MlyValue.sigbinds' sigbinds'1, sigbinds'1left, sigbinds'1right)) :: rest671)) => let val  result = MlyValue.sigbinds'' (fn _ => let val  (sigbinds' as sigbinds'1) = sigbinds'1 ()
++ in ((*#line 608.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)sigbinds'(*#line 2425.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 99, ( result, sigbinds'1left, sigbinds'1right), rest671)
++end
++|  ( 57, ( ( _, ( MlyValue.sigbinds'' sigbinds''1, _, sigbinds''1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.sigbinds'' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (sigbinds'' as sigbinds''1) = sigbinds''1 ()
++ in ((*#line 609.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec,sigbinds'')(*#line 2431.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 99, ( result, AND1left, sigbinds''1right), rest671)
++end
++|  ( 58, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( MlyValue.longtycon longtycon1, _, _)) :: ( _, ( MlyValue.tyvars tyvars1, _, _)) :: ( _, ( _, TYPE1left, _)) :: rest671)) => let val  result = MlyValue.wherespec (fn _ => let val  (tyvars as tyvars1) = tyvars1 ()
++ val  (longtycon as longtycon1) = longtycon1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 611.49 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*){tyvars = tyvars,
++                                                 longtycon = longtycon,
++                                                 ty = ty}(*#line 2438.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 162, ( result, TYPE1left, ty1right), rest671)
++end
++|  ( 59, ( rest671)) => let val  result = MlyValue.sigconst (fn _ => ((*#line 615.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)SigConst.None(*#line 2448.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 100, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 60, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: ( _, ( _, COLON1left, _)) :: rest671)) => let val  result = MlyValue.sigconst (fn _ => let val  (sigexp as sigexp1) = sigexp1 ()
++ in ((*#line 616.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)SigConst.Transparent sigexp(*#line 2452.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 100, ( result, COLON1left, sigexp1right), rest671)
++end
++|  ( 61, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: ( _, ( _, COLONGT1left, _)) :: rest671)) => let val  result = MlyValue.sigconst (fn _ => let val  (sigexp as sigexp1) = sigexp1 ()
++ in ((*#line 617.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)SigConst.Opaque sigexp(*#line 2458.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 100, ( result, COLONGT1left, sigexp1right), rest671)
++end
++|  ( 62, ( rest671)) => let val  result = MlyValue.specs (fn _ => ((*#line 619.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.makeRegion (Spec.Empty, Region.bogus)(*#line 2464.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 109, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 63, ( ( _, ( MlyValue.specs specs1, _, specs1right)) :: ( _, ( _, SEMICOLON1left, _)) :: rest671)) => let val  result = MlyValue.specs (fn _ => let val  (specs as specs1) = specs1 ()
++ in ((*#line 620.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)specs(*#line 2468.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 109, ( result, SEMICOLON1left, specs1right), rest671)
++end
++|  ( 64, ( ( _, ( MlyValue.specs specs1, _, specs1right)) :: ( _, ( MlyValue.spec spec1, spec1left, _)) :: rest671)) => let val  result = MlyValue.specs (fn _ => let val  (spec as spec1) = spec1 ()
++ val  (specs as specs1) = specs1 ()
++ in ((*#line 621.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.seq (spec, specs)(*#line 2474.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 109, ( result, spec1left, specs1right), rest671)
++end
++|  ( 65, ( ( _, ( MlyValue.specnode specnode1, (specnodeleft as specnode1left), (specnoderight as specnode1right))) :: rest671)) => let val  result = MlyValue.spec (fn _ => let val  (specnode as specnode1) = specnode1 ()
++ in ((*#line 623.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.makeRegion' (specnode, specnodeleft, specnoderight)(*#line 2481.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 107, ( result, specnode1left, specnode1right), rest671)
++end
++|  ( 66, ( ( _, ( MlyValue.valdescs valdescs1, _, valdescs1right)) :: ( _, ( _, VAL1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (valdescs as valdescs1) = valdescs1 ()
++ in ((*#line 625.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.Val (Vector.fromList valdescs)(*#line 2487.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, VAL1left, valdescs1right), rest671)
++end
++|  ( 67, ( ( _, ( MlyValue.typdescs typdescs1, _, typdescs1right)) :: ( _, ( _, TYPE1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (typdescs as typdescs1) = typdescs1 ()
++ in ((*#line 626.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.Type (Vector.fromList typdescs)(*#line 2493.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, TYPE1left, typdescs1right), rest671)
++end
++|  ( 68, ( ( _, ( MlyValue.typBind typBind1, _, typBind1right)) :: ( _, ( _, TYPE1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (typBind as typBind1) = typBind1 ()
++ in ((*#line 627.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.TypeDefs typBind(*#line 2499.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, TYPE1left, typBind1right), rest671)
++end
++|  ( 69, ( ( _, ( MlyValue.typdescs typdescs1, _, typdescs1right)) :: ( _, ( _, EQTYPE1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (typdescs as typdescs1) = typdescs1 ()
++ in ((*#line 628.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.Eqtype (Vector.fromList typdescs)(*#line 2505.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, EQTYPE1left, typdescs1right), rest671)
++end
++|  ( 70, ( ( _, ( MlyValue.datatypeRhsNoWithtype datatypeRhsNoWithtype1, _, datatypeRhsNoWithtype1right)) :: ( _, ( _, DATATYPE1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (datatypeRhsNoWithtype as datatypeRhsNoWithtype1) = datatypeRhsNoWithtype1 ()
++ in ((*#line 629.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.Datatype datatypeRhsNoWithtype(*#line 2511.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, DATATYPE1left, datatypeRhsNoWithtype1right), rest671)
++end
++|  ( 71, ( ( _, ( MlyValue.exndescs exndescs1, _, exndescs1right)) :: ( _, ( _, EXCEPTION1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (exndescs as exndescs1) = exndescs1 ()
++ in ((*#line 630.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.Exception (Vector.fromList exndescs)(*#line 2517.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, EXCEPTION1left, exndescs1right), rest671)
++end
++|  ( 72, ( ( _, ( MlyValue.strdescs strdescs1, _, strdescs1right)) :: ( _, ( _, STRUCTURE1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (strdescs as strdescs1) = strdescs1 ()
++ in ((*#line 631.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.Structure (Vector.fromList strdescs)(*#line 2523.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, STRUCTURE1left, strdescs1right), rest671)
++end
++|  ( 73, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: ( _, ( _, INCLUDE1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (sigexp as sigexp1) = sigexp1 ()
++ in ((*#line 632.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.IncludeSigexp sigexp(*#line 2529.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, INCLUDE1left, sigexp1right), rest671)
++end
++|  ( 74, ( ( _, ( MlyValue.sigids sigids1, _, sigids1right)) :: ( _, ( MlyValue.sigid sigid1, _, _)) :: ( _, ( _, INCLUDE1left, _)) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ val  (sigids as sigids1) = sigids1 ()
++ in ((*#line 634.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.IncludeSigids (Vector.fromList (sigid :: sigids)) (*#line 2535.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, INCLUDE1left, sigids1right), rest671)
++end
++|  ( 75, ( ( _, ( MlyValue.sharespec sharespec1, (sharespecleft as sharespec1left), (sharespecright as sharespec1right))) :: rest671)) => let val  result = MlyValue.specnode (fn _ => let val  (sharespec as sharespec1) = sharespec1 ()
++ in ((*#line 636.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Spec.Sharing {spec = Spec.makeRegion' (Spec.Empty,
++                                                   sharespecleft,
++                                                   sharespecright),
++                          equations = (Vector.new1
++                                       (Equation.makeRegion' (sharespec,
++                                                              sharespecleft,
++                                                              sharespecright)))}(*#line 2542.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 108, ( result, sharespec1left, sharespec1right), rest671)
++end
++|  ( 76, ( ( _, ( MlyValue.longtyconeqns longtyconeqns1, _, longtyconeqns1right)) :: _ :: ( _, ( _, SHARING1left, _)) :: rest671)) => let val  result = MlyValue.sharespec (fn _ => let val  (longtyconeqns as longtyconeqns1) = longtyconeqns1 ()
++ in ((*#line 644.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Equation.Type longtyconeqns(*#line 2554.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 96, ( result, SHARING1left, longtyconeqns1right), rest671)
++end
++|  ( 77, ( ( _, ( MlyValue.longstrideqns longstrideqns1, _, longstrideqns1right)) :: ( _, ( _, SHARING1left, _)) :: rest671)) => let val  result = MlyValue.sharespec (fn _ => let val  (longstrideqns as longstrideqns1) = longstrideqns1 ()
++ in ((*#line 645.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Equation.Structure longstrideqns(*#line 2560.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 96, ( result, SHARING1left, longstrideqns1right), rest671)
++end
++|  ( 78, ( ( _, ( MlyValue.longstrid longstrid2, _, longstrid2right)) :: _ :: ( _, ( MlyValue.longstrid longstrid1, longstrid1left, _)) :: rest671)) => let val  result = MlyValue.longstrideqns (fn _ => let val  longstrid1 = longstrid1 ()
++ val  longstrid2 = longstrid2 ()
++ in ((*#line 647.46 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[longstrid1,longstrid2](*#line 2566.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 69, ( result, longstrid1left, longstrid2right), rest671)
++end
++|  ( 79, ( ( _, ( MlyValue.longstrideqns longstrideqns1, _, longstrideqns1right)) :: _ :: ( _, ( MlyValue.longstrid longstrid1, longstrid1left, _)) :: rest671)) => let val  result = MlyValue.longstrideqns (fn _ => let val  (longstrid as longstrid1) = longstrid1 ()
++ val  (longstrideqns as longstrideqns1) = longstrideqns1 ()
++ in ((*#line 648.50 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)longstrid :: longstrideqns(*#line 2573.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 69, ( result, longstrid1left, longstrideqns1right), rest671)
++end
++|  ( 80, ( ( _, ( MlyValue.longtycon longtycon2, _, longtycon2right)) :: _ :: ( _, ( MlyValue.longtycon longtycon1, longtycon1left, _)) :: rest671)) => let val  result = MlyValue.longtyconeqns (fn _ => let val  longtycon1 = longtycon1 ()
++ val  longtycon2 = longtycon2 ()
++ in ((*#line 650.46 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[longtycon1,longtycon2](*#line 2580.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 72, ( result, longtycon1left, longtycon2right), rest671)
++end
++|  ( 81, ( ( _, ( MlyValue.longtyconeqns longtyconeqns1, _, longtyconeqns1right)) :: _ :: ( _, ( MlyValue.longtycon longtycon1, longtycon1left, _)) :: rest671)) => let val  result = MlyValue.longtyconeqns (fn _ => let val  (longtycon as longtycon1) = longtycon1 ()
++ val  (longtyconeqns as longtyconeqns1) = longtyconeqns1 ()
++ in ((*#line 651.50 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)longtycon :: longtyconeqns(*#line 2587.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 72, ( result, longtycon1left, longtyconeqns1right), rest671)
++end
++|  ( 82, ( ( _, ( MlyValue.strdescs' strdescs'1, _, strdescs'1right)) :: ( _, ( MlyValue.sigexp' sigexp'1, _, _)) :: _ :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val  result = MlyValue.strdescs (fn _ => let val  (strid as strid1) = strid1 ()
++ val  (sigexp' as sigexp'1) = sigexp'1 ()
++ val  (strdescs' as strdescs'1) = strdescs'1 ()
++ in ((*#line 653.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)augment (strid, sigexp', strdescs')(*#line 2594.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 119, ( result, strid1left, strdescs'1right), rest671)
++end
++|  ( 83, ( rest671)) => let val  result = MlyValue.strdescs' (fn _ => ((*#line 655.42 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([], defaultPos, [])(*#line 2602.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 120, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 84, ( ( _, ( MlyValue.strdescs strdescs1, _, strdescs1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.strdescs' (fn _ => let val  (strdescs as strdescs1) = strdescs1 ()
++ in ((*#line 656.42 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([], defaultPos, strdescs)(*#line 2606.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 120, ( result, AND1left, strdescs1right), rest671)
++end
++|  ( 85, ( ( _, ( MlyValue.strdescs'' strdescs''1, _, strdescs''1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val  result = MlyValue.strdescs' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (strdescs'' as strdescs''1) = strdescs''1 ()
++ in ((*#line 657.42 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec, strdescs'')(*#line 2612.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 120, ( result, WHERE1left, strdescs''1right), rest671)
++end
++|  ( 86, ( ( _, ( MlyValue.strdescs' strdescs'1, strdescs'1left, strdescs'1right)) :: rest671)) => let val  result = MlyValue.strdescs'' (fn _ => let val  (strdescs' as strdescs'1) = strdescs'1 ()
++ in ((*#line 659.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)strdescs'(*#line 2619.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 121, ( result, strdescs'1left, strdescs'1right), rest671)
++end
++|  ( 87, ( ( _, ( MlyValue.strdescs'' strdescs''1, _, strdescs''1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.strdescs'' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (strdescs'' as strdescs''1) = strdescs''1 ()
++ in ((*#line 660.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec, strdescs'')(*#line 2625.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 121, ( result, AND1left, strdescs''1right), rest671)
++end
++|  ( 88, ( ( _, ( MlyValue.typdesc typdesc1, typdesc1left, typdesc1right)) :: rest671)) => let val  result = MlyValue.typdescs (fn _ => let val  (typdesc as typdesc1) = typdesc1 ()
++ in ((*#line 662.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[typdesc](*#line 2632.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 148, ( result, typdesc1left, typdesc1right), rest671)
++end
++|  ( 89, ( ( _, ( MlyValue.typdescs typdescs1, _, typdescs1right)) :: _ :: ( _, ( MlyValue.typdesc typdesc1, typdesc1left, _)) :: rest671)) => let val  result = MlyValue.typdescs (fn _ => let val  (typdesc as typdesc1) = typdesc1 ()
++ val  (typdescs as typdescs1) = typdescs1 ()
++ in ((*#line 663.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)typdesc :: typdescs(*#line 2638.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 148, ( result, typdesc1left, typdescs1right), rest671)
++end
++|  ( 90, ( ( _, ( MlyValue.tycon tycon1, _, tycon1right)) :: ( _, ( MlyValue.tyvars tyvars1, tyvars1left, _)) :: rest671)) => let val  result = MlyValue.typdesc (fn _ => let val  (tyvars as tyvars1) = tyvars1 ()
++ val  (tycon as tycon1) = tycon1 ()
++ in ((*#line 665.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*){tyvars = tyvars,
++                         tycon = tycon}(*#line 2645.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 147, ( result, tyvars1left, tycon1right), rest671)
++end
++|  ( 91, ( ( _, ( MlyValue.valdesc valdesc1, valdesc1left, valdesc1right)) :: rest671)) => let val  result = MlyValue.valdescs (fn _ => let val  (valdesc as valdesc1) = valdesc1 ()
++ in ((*#line 668.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[valdesc](*#line 2653.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 157, ( result, valdesc1left, valdesc1right), rest671)
++end
++|  ( 92, ( ( _, ( MlyValue.valdescs valdescs1, _, valdescs1right)) :: _ :: ( _, ( MlyValue.valdesc valdesc1, valdesc1left, _)) :: rest671)) => let val  result = MlyValue.valdescs (fn _ => let val  (valdesc as valdesc1) = valdesc1 ()
++ val  (valdescs as valdescs1) = valdescs1 ()
++ in ((*#line 669.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)valdesc :: valdescs(*#line 2659.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 157, ( result, valdesc1left, valdescs1right), rest671)
++end
++|  ( 93, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( MlyValue.var var1, var1left, _)) :: rest671)) => let val  result = MlyValue.valdesc (fn _ => let val  (var as var1) = var1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 671.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Con.ensureSpecify (Vid.toCon (Vid.fromVar var))
++                         ; (var, ty)(*#line 2666.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 156, ( result, var1left, ty1right), rest671)
++end
++|  ( 94, ( ( _, ( MlyValue.exndesc exndesc1, exndesc1left, exndesc1right)) :: rest671)) => let val  result = MlyValue.exndescs (fn _ => let val  (exndesc as exndesc1) = exndesc1 ()
++ in ((*#line 674.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[exndesc](*#line 2674.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 43, ( result, exndesc1left, exndesc1right), rest671)
++end
++|  ( 95, ( ( _, ( MlyValue.exndescs exndescs1, _, exndescs1right)) :: _ :: ( _, ( MlyValue.exndesc exndesc1, exndesc1left, _)) :: rest671)) => let val  result = MlyValue.exndescs (fn _ => let val  (exndesc as exndesc1) = exndesc1 ()
++ val  (exndescs as exndescs1) = exndescs1 ()
++ in ((*#line 675.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)exndesc :: exndescs(*#line 2680.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 43, ( result, exndesc1left, exndescs1right), rest671)
++end
++|  ( 96, ( ( _, ( MlyValue.tyOpt tyOpt1, _, tyOpt1right)) :: ( _, ( MlyValue.con con1, con1left, _)) :: rest671)) => let val  result = MlyValue.exndesc (fn _ => let val  (con as con1) = con1 ()
++ val  (tyOpt as tyOpt1) = tyOpt1 ()
++ in ((*#line 677.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Con.ensureSpecify con; (con, tyOpt)(*#line 2687.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 42, ( result, con1left, tyOpt1right), rest671)
++end
++|  ( 97, ( rest671)) => let val  result = MlyValue.tyOpt (fn _ => ((*#line 679.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)NONE(*#line 2694.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 141, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 98, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: ( _, ( _, OF1left, _)) :: rest671)) => let val  result = MlyValue.tyOpt (fn _ => let val  (ty as ty1) = ty1 ()
++ in ((*#line 680.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)SOME ty(*#line 2698.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 141, ( result, OF1left, ty1right), rest671)
++end
++|  ( 99, ( ( _, ( MlyValue.funbinds' funbinds'1, _, funbinds'1right)) :: _ :: ( _, ( MlyValue.sigconst sigconst1, _, _)) :: _ :: ( _, ( MlyValue.fctarg fctarg1, fctargleft, fctargright)) :: _ :: ( _, ( MlyValue.fctid fctid1, fctid1left, _)) :: rest671)) => let val  result = MlyValue.funbinds (fn _ => let val  (fctid as fctid1) = fctid1 ()
++ val  (fctarg as fctarg1) = fctarg1 ()
++ val  (sigconst as sigconst1) = sigconst1 ()
++ val  (funbinds' as funbinds'1) = funbinds'1 ()
++ in ((*#line 687.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let val (strexp,funbinds) = funbinds'
++            in {name = fctid,
++                arg = FctArg.makeRegion' (fctarg, fctargleft, fctargright),
++                result = sigconst,
++                body = strexp}
++               :: funbinds
++            end(*#line 2704.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 54, ( result, fctid1left, funbinds'1right), rest671)
++end
++|  ( 100, ( ( _, ( MlyValue.funbinds'1 funbinds'11, _, funbinds'11right)) :: ( _, ( MlyValue.strexp1 strexp11, strexp11left, _)) :: rest671)) => let val  result = MlyValue.funbinds' (fn _ => let val  (strexp1 as strexp11) = strexp11 ()
++ val  (funbinds'1 as funbinds'11) = funbinds'11 ()
++ in ((*#line 695.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)augment1 (strexp1, funbinds'1)(*#line 2719.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 55, ( result, strexp11left, funbinds'11right), rest671)
++end
++|  ( 101, ( ( _, ( MlyValue.funbinds'2 funbinds'21, _, funbinds'21right)) :: ( _, ( MlyValue.strexp2 strexp21, strexp21left, _)) :: rest671)) => let val  result = MlyValue.funbinds' (fn _ => let val  (strexp2 as strexp21) = strexp21 ()
++ val  (funbinds'2 as funbinds'21) = funbinds'21 ()
++ in ((*#line 696.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(strexp2, funbinds'2)(*#line 2726.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 55, ( result, strexp21left, funbinds'21right), rest671)
++end
++|  ( 102, ( ( _, ( MlyValue.funbinds'2 funbinds'21, (funbinds'2left as funbinds'21left), funbinds'21right)) :: rest671)) => let val  result = MlyValue.funbinds'1 (fn _ => let val  (funbinds'2 as funbinds'21) = funbinds'21 ()
++ in ((*#line 698.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[], funbinds'2left, funbinds'2(*#line 2733.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 56, ( result, funbinds'21left, funbinds'21right), rest671)
++end
++|  ( 103, ( ( _, ( MlyValue.funbinds'1' funbinds'1'1, _, funbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, WHERE1left, _)) :: rest671)) => let val  result = MlyValue.funbinds'1 (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (funbinds'1' as funbinds'1'1) = funbinds'1'1 ()
++ in ((*#line 699.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec,funbinds'1')(*#line 2739.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 56, ( result, WHERE1left, funbinds'1'1right), rest671)
++end
++|  ( 104, ( rest671)) => let val  result = MlyValue.funbinds'2 (fn _ => ((*#line 701.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 2746.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 58, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 105, ( ( _, ( MlyValue.funbinds funbinds1, _, funbinds1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.funbinds'2 (fn _ => let val  (funbinds as funbinds1) = funbinds1 ()
++ in ((*#line 702.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)funbinds(*#line 2750.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 58, ( result, AND1left, funbinds1right), rest671)
++end
++|  ( 106, ( ( _, ( MlyValue.funbinds'1 funbinds'11, funbinds'11left, funbinds'11right)) :: rest671)) => let val  result = MlyValue.funbinds'1' (fn _ => let val  (funbinds'1 as funbinds'11) = funbinds'11 ()
++ in ((*#line 704.43 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)funbinds'1(*#line 2756.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 57, ( result, funbinds'11left, funbinds'11right), rest671)
++end
++|  ( 107, ( ( _, ( MlyValue.funbinds'1' funbinds'1'1, _, funbinds'1'1right)) :: ( _, ( MlyValue.wherespec wherespec1, _, _)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.funbinds'1' (fn _ => let val  (wherespec as wherespec1) = wherespec1 ()
++ val  (funbinds'1' as funbinds'1'1) = funbinds'1'1 ()
++ in ((*#line 705.43 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)cons1 (wherespec,funbinds'1')(*#line 2762.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 57, ( result, AND1left, funbinds'1'1right), rest671)
++end
++|  ( 108, ( ( _, ( MlyValue.sigexp sigexp1, _, sigexp1right)) :: _ :: ( _, ( MlyValue.strid strid1, strid1left, _)) :: rest671)) => let val  result = MlyValue.fctarg (fn _ => let val  (strid as strid1) = strid1 ()
++ val  (sigexp as sigexp1) = sigexp1 ()
++ in ((*#line 707.31 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)FctArg.Structure (strid, sigexp)(*#line 2769.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 50, ( result, strid1left, sigexp1right), rest671)
++end
++|  ( 109, ( ( _, ( MlyValue.specs specs1, specs1left, specs1right)) :: rest671)) => let val  result = MlyValue.fctarg (fn _ => let val  (specs as specs1) = specs1 ()
++ in ((*#line 708.31 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)FctArg.Spec specs(*#line 2776.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 50, ( result, specs1left, specs1right), rest671)
++end
++|  ( 110, ( rest671)) => let val  result = MlyValue.decs (fn _ => ((*#line 714.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.makeRegion' (Dec.SeqDec (Vector.new0 ()),
++                                          defaultPos, defaultPos)(*#line 2782.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 33, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 111, ( ( _, ( MlyValue.decs decs1, _, decs1right)) :: ( _, ( MlyValue.dec dec1, dec1left, _)) :: rest671)) => let val  result = MlyValue.decs (fn _ => let val  (dec as dec1) = dec1 ()
++ val  (decs as decs1) = decs1 ()
++ in ((*#line 716.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.sequence (dec,decs)(*#line 2787.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 33, ( result, dec1left, decs1right), rest671)
++end
++|  ( 112, ( ( _, ( MlyValue.decs decs1, _, decs1right)) :: ( _, ( _, SEMICOLON1left, _)) :: rest671)) => let val  result = MlyValue.decs (fn _ => let val  (decs as decs1) = decs1 ()
++ in ((*#line 717.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)decs(*#line 2794.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 33, ( result, SEMICOLON1left, decs1right), rest671)
++end
++|  ( 113, ( ( _, ( MlyValue.decnode decnode1, (decnodeleft as decnode1left), (decnoderight as decnode1right))) :: rest671)) => let val  result = MlyValue.dec (fn _ => let val  (decnode as decnode1) = decnode1 ()
++ in ((*#line 719.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.makeRegion' (decnode, decnodeleft, decnoderight)(*#line 2800.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 30, ( result, decnode1left, decnode1right), rest671)
++end
++|  ( 114, ( ( _, ( MlyValue.decnolocal decnolocal1, decnolocal1left, decnolocal1right)) :: rest671)) => let val  result = MlyValue.decnode (fn _ => let val  (decnolocal as decnolocal1) = decnolocal1 ()
++ in ((*#line 721.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)decnolocal(*#line 2806.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 31, ( result, decnolocal1left, decnolocal1right), rest671)
++end
++|  ( 115, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.decs decs2, _, _)) :: _ :: ( _, ( MlyValue.decs decs1, _, _)) :: ( _, ( _, LOCAL1left, _)) :: rest671)) => let val  result = MlyValue.decnode (fn _ => let val  decs1 = decs1 ()
++ val  decs2 = decs2 ()
++ in ((*#line 722.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Local (decs1,decs2)(*#line 2812.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 31, ( result, LOCAL1left, END1right), rest671)
++end
++|  ( 116, ( ( _, ( MlyValue.valbindTop valbindTop1, _, valbindTop1right)) :: ( _, ( _, VAL1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (valbindTop as valbindTop1) = valbindTop1 ()
++ in ((*#line 725.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Val {tyvars = Vector.new0 (),
++                                            vbs = #1 valbindTop,
++                                            rvbs = #2 valbindTop}(*#line 2819.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, VAL1left, valbindTop1right), rest671)
++end
++|  ( 117, ( ( _, ( MlyValue.valbindTop valbindTop1, _, valbindTop1right)) :: ( _, ( MlyValue.tyvarseq tyvarseq1, _, _)) :: ( _, ( _, VAL1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (tyvarseq as tyvarseq1) = tyvarseq1 ()
++ val  (valbindTop as valbindTop1) = valbindTop1 ()
++ in ((*#line 728.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Val {tyvars = tyvarseq,
++                                             vbs = #1 valbindTop,
++                                             rvbs = #2 valbindTop}(*#line 2827.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, VAL1left, valbindTop1right), rest671)
++end
++|  ( 118, ( ( _, ( MlyValue.funs funs1, _, funs1right)) :: ( _, ( _, FUN1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (funs as funs1) = funs1 ()
++ in ((*#line 731.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Fun (Vector.new0 (), Vector.fromList funs)(*#line 2836.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, FUN1left, funs1right), rest671)
++end
++|  ( 119, ( ( _, ( MlyValue.funs funs1, _, funs1right)) :: ( _, ( MlyValue.tyvarseq tyvarseq1, _, _)) :: ( _, ( _, FUN1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (tyvarseq as tyvarseq1) = tyvarseq1 ()
++ val  (funs as funs1) = funs1 ()
++ in ((*#line 732.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Fun (tyvarseq, Vector.fromList funs)(*#line 2842.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, FUN1left, funs1right), rest671)
++end
++|  ( 120, ( ( _, ( MlyValue.typBind typBind1, _, typBind1right)) :: ( _, ( _, TYPE1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (typBind as typBind1) = typBind1 ()
++ in ((*#line 733.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Type typBind(*#line 2849.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, TYPE1left, typBind1right), rest671)
++end
++|  ( 121, ( ( _, ( MlyValue.datatypeRhs datatypeRhs1, _, datatypeRhs1right)) :: ( _, ( _, DATATYPE1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (datatypeRhs as datatypeRhs1) = datatypeRhs1 ()
++ in ((*#line 734.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Datatype datatypeRhs(*#line 2855.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, DATATYPE1left, datatypeRhs1right), rest671)
++end
++|  ( 122, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.decs decs1, _, _)) :: _ :: ( _, ( MlyValue.datBind datBind1, _, _)) :: ( _, ( _, ABSTYPE1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (datBind as datBind1) = datBind1 ()
++ val  (decs as decs1) = decs1 ()
++ in ((*#line 735.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Abstype {datBind = datBind,
++                                                        body = decs}(*#line 2861.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, ABSTYPE1left, END1right), rest671)
++end
++|  ( 123, ( ( _, ( MlyValue.ebs ebs1, _, ebs1right)) :: ( _, ( _, EXCEPTION1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (ebs as ebs1) = ebs1 ()
++ in ((*#line 738.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Exception (Vector.fromList ebs)(*#line 2869.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, EXCEPTION1left, ebs1right), rest671)
++end
++|  ( 124, ( ( _, ( MlyValue.longstrids longstrids1, _, longstrids1right)) :: ( _, ( _, OPEN1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (longstrids as longstrids1) = longstrids1 ()
++ in ((*#line 739.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Open (Vector.fromList longstrids)(*#line 2875.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, OPEN1left, longstrids1right), rest671)
++end
++|  ( 125, ( ( _, ( MlyValue.vids vids1, _, vids1right)) :: ( _, ( MlyValue.fixity fixity1, fixity1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (fixity as fixity1) = fixity1 ()
++ val  (vids as vids1) = vids1 ()
++ in ((*#line 740.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Fix {fixity = fixity,
++                                          ops = Vector.fromList vids}(*#line 2881.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, fixity1left, vids1right), rest671)
++end
++|  ( 126, ( ( _, ( MlyValue.longvidands longvidands1, _, longvidands1right)) :: _ :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.var var1, _, _)) :: ( _, ( MlyValue.priority priority1, _, _)) :: ( _, ( _, OVERLOAD1left, _)) :: rest671)) => let val  result = MlyValue.decnolocal (fn _ => let val  (priority as priority1) = priority1 ()
++ val  (var as var1) = var1 ()
++ val  (ty as ty1) = ty1 ()
++ val  (longvidands as longvidands1) = longvidands1 ()
++ in ((*#line 743.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Dec.Overload (priority, 
++                                               var,
++                                               Vector.new0 (),
++                                               ty,
++                                               Vector.fromList longvidands)(*#line 2889.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 32, ( result, OVERLOAD1left, longvidands1right), rest671)
++end
++|  ( 127, ( ( _, ( MlyValue.valbind valbind1, valbind1left, valbind1right)) :: rest671)) => let val  result = MlyValue.valbindTop (fn _ => let val  (valbind as valbind1) = valbind1 ()
++ in ((*#line 749.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++                         val (vbs, rvbs) = valbind
++                      in
++                         (Vector.fromList vbs,
++                          Vector.fromList rvbs)
++                      end(*#line 2902.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 155, ( result, valbind1left, valbind1right), rest671)
++end
++|  ( 128, ( ( _, ( MlyValue.valbindRest valbindRest1, _, valbindRest1right)) :: ( _, ( MlyValue.exp exp1, _, _)) :: _ :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val  result = MlyValue.valbind (fn _ => let val  (pat as pat1) = pat1 ()
++ val  (exp as exp1) = exp1 ()
++ val  (valbindRest as valbindRest1) = valbindRest1 ()
++ in ((*#line 757.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++              val (vbs, rvbs) = valbindRest
++           in
++              ({pat = pat, exp = exp} :: vbs,
++               rvbs)
++           end(*#line 2913.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 153, ( result, pat1left, valbindRest1right), rest671)
++end
++|  ( 129, ( ( _, ( MlyValue.rvalbind rvalbind1, _, rvalbind1right)) :: ( _, ( _, REC1left, _)) :: rest671)) => let val  result = MlyValue.valbind (fn _ => let val  (rvalbind as rvalbind1) = rvalbind1 ()
++ in ((*#line 763.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([], rvalbind)(*#line 2926.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 153, ( result, REC1left, rvalbind1right), rest671)
++end
++|  ( 130, ( rest671)) => let val  result = MlyValue.valbindRest (fn _ => ((*#line 766.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([], [])(*#line 2932.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 154, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 131, ( ( _, ( MlyValue.valbind valbind1, _, valbind1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.valbindRest (fn _ => let val  (valbind as valbind1) = valbind1 ()
++ in ((*#line 767.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)valbind(*#line 2936.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 154, ( result, AND1left, valbind1right), rest671)
++end
++|  ( 132, ( ( _, ( MlyValue.rvalbind rvalbind1, _, rvalbind1right)) :: ( _, ( _, REC1left, _)) :: rest671)) => let val  result = MlyValue.rvalbind (fn _ => let val  (rvalbind as rvalbind1) = rvalbind1 ()
++ in ((*#line 769.41 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)rvalbind(*#line 2942.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 91, ( result, REC1left, rvalbind1right), rest671)
++end
++|  ( 133, ( ( _, ( MlyValue.rvalbindRest rvalbindRest1, _, rvalbindRest1right)) :: ( _, ( MlyValue.match match1, _, _)) :: _ :: _ :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val  result = MlyValue.rvalbind (fn _ => let val  (pat as pat1) = pat1 ()
++ val  (match as match1) = match1 ()
++ val  (rvalbindRest as rvalbindRest1) = rvalbindRest1 ()
++ in ((*#line 771.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*){pat = pat, match = match} :: rvalbindRest(*#line 2948.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 91, ( result, pat1left, rvalbindRest1right), rest671)
++end
++|  ( 134, ( rest671)) => let val  result = MlyValue.rvalbindRest (fn _ => ((*#line 773.31 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 2956.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 92, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 135, ( ( _, ( MlyValue.rvalbind rvalbind1, _, rvalbind1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.rvalbindRest (fn _ => let val  (rvalbind as rvalbind1) = rvalbind1 ()
++ in ((*#line 774.31 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)rvalbind(*#line 2960.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 92, ( result, AND1left, rvalbind1right), rest671)
++end
++|  ( 136, ( rest671)) => let val  result = MlyValue.constraint (fn _ => ((*#line 776.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)NONE(*#line 2966.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 18, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 137, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: ( _, ( _, COLON1left, _)) :: rest671)) => let val  result = MlyValue.constraint (fn _ => let val  (ty as ty1) = ty1 ()
++ in ((*#line 777.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)SOME ty(*#line 2970.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 18, ( result, COLON1left, ty1right), rest671)
++end
++|  ( 138, ( ( _, ( MlyValue.clausesTop clausesTop1, clausesTop1left, clausesTop1right)) :: rest671)) => let val  result = MlyValue.funs (fn _ => let val  (clausesTop as clausesTop1) = clausesTop1 ()
++ in ((*#line 779.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[clausesTop](*#line 2976.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 59, ( result, clausesTop1left, clausesTop1right), rest671)
++end
++|  ( 139, ( ( _, ( MlyValue.funs funs1, _, funs1right)) :: _ :: ( _, ( MlyValue.clausesTop clausesTop1, clausesTop1left, _)) :: rest671)) => let val  result = MlyValue.funs (fn _ => let val  (clausesTop as clausesTop1) = clausesTop1 ()
++ val  (funs as funs1) = funs1 ()
++ in ((*#line 780.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)clausesTop :: funs(*#line 2982.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 59, ( result, clausesTop1left, funs1right), rest671)
++end
++|  ( 140, ( ( _, ( MlyValue.clauses clauses1, clauses1left, clauses1right)) :: rest671)) => let val  result = MlyValue.clausesTop (fn _ => let val  (clauses as clauses1) = clauses1 ()
++ in ((*#line 782.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Vector.fromList clauses(*#line 2989.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 12, ( result, clauses1left, clauses1right), rest671)
++end
++|  ( 141, ( ( _, ( MlyValue.clause clause1, clause1left, clause1right)) :: rest671)) => let val  result = MlyValue.clauses (fn _ => let val  (clause as clause1) = clause1 ()
++ in ((*#line 784.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[clause](*#line 2995.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 11, ( result, clause1left, clause1right), rest671)
++end
++|  ( 142, ( ( _, ( MlyValue.clauses clauses1, _, clauses1right)) :: _ :: ( _, ( MlyValue.clause clause1, clause1left, _)) :: rest671)) => let val  result = MlyValue.clauses (fn _ => let val  (clause as clause1) = clause1 ()
++ val  (clauses as clauses1) = clauses1 ()
++ in ((*#line 785.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)clause :: clauses(*#line 3001.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 11, ( result, clause1left, clauses1right), rest671)
++end
++|  ( 143, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: _ :: ( _, ( MlyValue.constraint constraint1, _, _)) :: ( _, ( MlyValue.apats apats1, apats1left, _)) :: rest671)) => let val  result = MlyValue.clause (fn _ => let val  (apats as apats1) = apats1 ()
++ val  (constraint as constraint1) = constraint1 ()
++ val  (exp as exp1) = exp1 ()
++ in ((*#line 787.42 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*){pats = Vector.fromList apats,
++                                          resultType = constraint,
++                                          body = exp}(*#line 3008.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 10, ( result, apats1left, exp1right), rest671)
++end
++|  ( 144, ( ( _, ( MlyValue.typBind' typBind'1, (typBind'left as typBind'1left), (typBind'right as typBind'1right))) :: rest671)) => let val  result = MlyValue.typBind (fn _ => let val  (typBind' as typBind'1) = typBind'1 ()
++ in ((*#line 792.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++              val typBind = Vector.fromList typBind'
++              val b =
++                 TypBind.makeRegion'
++                 (TypBind.T typBind, typBind'left, typBind'right)
++           in
++              b
++           end(*#line 3018.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 144, ( result, typBind'1left, typBind'1right), rest671)
++end
++|  ( 145, ( ( _, ( MlyValue.typBind'' typBind''1, _, typBind''1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.tycon tycon1, _, _)) :: ( _, ( MlyValue.tyvars tyvars1, tyvars1left, _)) :: rest671)) => let val  result = MlyValue.typBind' (fn _ => let val  (tyvars as tyvars1) = tyvars1 ()
++ val  (tycon as tycon1) = tycon1 ()
++ val  (ty as ty1) = ty1 ()
++ val  (typBind'' as typBind''1) = typBind''1 ()
++ in ((*#line 802.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*){def = ty, tycon = tycon, tyvars = tyvars} :: typBind''(*#line 3031.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 145, ( result, tyvars1left, typBind''1right), rest671)
++end
++|  ( 146, ( rest671)) => let val  result = MlyValue.typBind'' (fn _ => ((*#line 804.28 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 3040.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 146, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 147, ( ( _, ( MlyValue.typBind' typBind'1, _, typBind'1right)) :: ( _, ( _, AND1left, _)) :: rest671)) => let val  result = MlyValue.typBind'' (fn _ => let val  (typBind' as typBind'1) = typBind'1 ()
++ in ((*#line 805.28 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)typBind'(*#line 3044.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 146, ( result, AND1left, typBind'1right), rest671)
++end
++|  ( 148, ( ( _, ( MlyValue.tyvarseq tyvarseq1, tyvarseq1left, tyvarseq1right)) :: rest671)) => let val  result = MlyValue.tyvars (fn _ => let val  (tyvarseq as tyvarseq1) = tyvarseq1 ()
++ in ((*#line 808.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)tyvarseq(*#line 3050.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 151, ( result, tyvarseq1left, tyvarseq1right), rest671)
++end
++|  ( 149, ( rest671)) => let val  result = MlyValue.tyvars (fn _ => ((*#line 809.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Vector.new0 ()(*#line 3056.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 151, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 150, ( ( _, ( MlyValue.tyvar tyvar1, tyvar1left, tyvar1right)) :: rest671)) => let val  result = MlyValue.tyvarseq (fn _ => let val  (tyvar as tyvar1) = tyvar1 ()
++ in ((*#line 811.36 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Vector.new1 tyvar(*#line 3060.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 152, ( result, tyvar1left, tyvar1right), rest671)
++end
++|  ( 151, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.tyvar_pc tyvar_pc1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.tyvarseq (fn _ => let val  (tyvar_pc as tyvar_pc1) = tyvar_pc1 ()
++ in ((*#line 813.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++              val v = Vector.fromList tyvar_pc
++              val () =
++                 reportDuplicates
++                 (v, {equals = Tyvar.sameName,
++                      layout = Tyvar.layout,
++                      name = "type variable",
++                      region = Tyvar.region,
++                      term = fn () => Layout.tuple (Vector.toListMap
++                                                    (v, Tyvar.layout))})
++           in
++              v
++           end(*#line 3066.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 152, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 152, ( ( _, ( MlyValue.tyvar tyvar1, tyvar1left, tyvar1right)) :: rest671)) => let val  result = MlyValue.tyvar_pc (fn _ => let val  (tyvar as tyvar1) = tyvar1 ()
++ in ((*#line 827.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[tyvar](*#line 3084.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 150, ( result, tyvar1left, tyvar1right), rest671)
++end
++|  ( 153, ( ( _, ( MlyValue.tyvar_pc tyvar_pc1, _, tyvar_pc1right)) :: _ :: ( _, ( MlyValue.tyvar tyvar1, tyvar1left, _)) :: rest671)) => let val  result = MlyValue.tyvar_pc (fn _ => let val  (tyvar as tyvar1) = tyvar1 ()
++ val  (tyvar_pc as tyvar_pc1) = tyvar_pc1 ()
++ in ((*#line 828.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)tyvar :: tyvar_pc(*#line 3090.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 150, ( result, tyvar1left, tyvar_pc1right), rest671)
++end
++|  ( 154, ( ( _, ( MlyValue.constr constr1, constr1left, constr1right)) :: rest671)) => let val  result = MlyValue.constrs (fn _ => let val  (constr as constr1) = constr1 ()
++ in ((*#line 830.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[constr](*#line 3097.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 19, ( result, constr1left, constr1right), rest671)
++end
++|  ( 155, ( ( _, ( MlyValue.constrs constrs1, _, constrs1right)) :: _ :: ( _, ( MlyValue.constr constr1, constr1left, _)) :: rest671)) => let val  result = MlyValue.constrs (fn _ => let val  (constr as constr1) = constr1 ()
++ val  (constrs as constrs1) = constrs1 ()
++ in ((*#line 831.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)constr :: constrs(*#line 3103.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 19, ( result, constr1left, constrs1right), rest671)
++end
++|  ( 156, ( ( _, ( MlyValue.opcon opcon1, opcon1left, opcon1right)) :: rest671)) => let val  result = MlyValue.constr (fn _ => let val  (opcon as opcon1) = opcon1 ()
++ in ((*#line 833.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)opcon, NONE(*#line 3110.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 17, ( result, opcon1left, opcon1right), rest671)
++end
++|  ( 157, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( MlyValue.opcon opcon1, opcon1left, _)) :: rest671)) => let val  result = MlyValue.constr (fn _ => let val  (opcon as opcon1) = opcon1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 834.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)opcon, SOME ty(*#line 3116.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 17, ( result, opcon1left, ty1right), rest671)
++end
++|  ( 158, ( ( _, ( MlyValue.con con1, con1left, con1right)) :: rest671)) => let val  result = MlyValue.opcon (fn _ => let val  (con as con1) = con1 ()
++ in ((*#line 836.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)con(*#line 3123.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 78, ( result, con1left, con1right), rest671)
++end
++|  ( 159, ( ( _, ( MlyValue.con con1, _, con1right)) :: ( _, ( _, OP1left, _)) :: rest671)) => let val  result = MlyValue.opcon (fn _ => let val  (con as con1) = con1 ()
++ in ((*#line 837.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)con(*#line 3129.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 78, ( result, OP1left, con1right), rest671)
++end
++|  ( 160, ( ( _, ( MlyValue.eb eb1, eb1left, eb1right)) :: rest671)) => let val  result = MlyValue.ebs (fn _ => let val  (eb as eb1) = eb1 ()
++ in ((*#line 839.28 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[eb](*#line 3135.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 39, ( result, eb1left, eb1right), rest671)
++end
++|  ( 161, ( ( _, ( MlyValue.ebs ebs1, _, ebs1right)) :: _ :: ( _, ( MlyValue.eb eb1, eb1left, _)) :: rest671)) => let val  result = MlyValue.ebs (fn _ => let val  (eb as eb1) = eb1 ()
++ val  (ebs as ebs1) = ebs1 ()
++ in ((*#line 840.28 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)eb::ebs(*#line 3141.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 39, ( result, eb1left, ebs1right), rest671)
++end
++|  ( 162, ( ( _, ( MlyValue.ebrhs ebrhs1, _, ebrhs1right)) :: ( _, ( MlyValue.opcon opcon1, opcon1left, _)) :: rest671)) => let val  result = MlyValue.eb (fn _ => let val  (opcon as opcon1) = opcon1 ()
++ val  (ebrhs as ebrhs1) = ebrhs1 ()
++ in ((*#line 842.28 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Con.ensureRedefine opcon; (opcon, ebrhs)(*#line 3148.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 36, ( result, opcon1left, ebrhs1right), rest671)
++end
++|  ( 163, ( ( _, ( MlyValue.ebrhsnode ebrhsnode1, (ebrhsnodeleft as ebrhsnode1left), (ebrhsnoderight as ebrhsnode1right))) :: rest671)) => let val  result = MlyValue.ebrhs (fn _ => let val  (ebrhsnode as ebrhsnode1) = ebrhsnode1 ()
++ in ((*#line 844.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)EbRhs.makeRegion' (ebrhsnode,
++                                     ebrhsnodeleft, ebrhsnoderight)(*#line 3155.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 37, ( result, ebrhsnode1left, ebrhsnode1right), rest671)
++end
++|  ( 164, ( rest671)) => let val  result = MlyValue.ebrhsnode (fn _ => ((*#line 847.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)EbRhs.Gen NONE(*#line 3162.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 38, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 165, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: ( _, ( _, OF1left, _)) :: rest671)) => let val  result = MlyValue.ebrhsnode (fn _ => let val  (ty as ty1) = ty1 ()
++ in ((*#line 848.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)EbRhs.Gen (SOME ty)(*#line 3166.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 38, ( result, OF1left, ty1right), rest671)
++end
++|  ( 166, ( ( _, ( MlyValue.longcon longcon1, _, longcon1right)) :: ( _, ( _, EQUALOP1left, _)) :: rest671)) => let val  result = MlyValue.ebrhsnode (fn _ => let val  (longcon as longcon1) = longcon1 ()
++ in ((*#line 849.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)EbRhs.Def longcon(*#line 3172.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 38, ( result, EQUALOP1left, longcon1right), rest671)
++end
++|  ( 167, ( ( _, ( MlyValue.longcon longcon1, _, longcon1right)) :: _ :: ( _, ( _, EQUALOP1left, _)) :: rest671)) => let val  result = MlyValue.ebrhsnode (fn _ => let val  (longcon as longcon1) = longcon1 ()
++ in ((*#line 850.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)EbRhs.Def longcon(*#line 3178.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 38, ( result, EQUALOP1left, longcon1right), rest671)
++end
++|  ( 168, ( ( _, ( _, INFIX1left, INFIX1right)) :: rest671)) => let val  result = MlyValue.fixity (fn _ => ((*#line 852.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Fixity.Infix NONE(*#line 3184.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 53, ( result, INFIX1left, INFIX1right), rest671)
++end
++|  ( 169, ( ( _, ( MlyValue.digit digit1, _, digit1right)) :: ( _, ( _, INFIX1left, _)) :: rest671)) => let val  result = MlyValue.fixity (fn _ => let val  (digit as digit1) = digit1 ()
++ in ((*#line 853.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Fixity.Infix (SOME digit)(*#line 3188.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 53, ( result, INFIX1left, digit1right), rest671)
++end
++|  ( 170, ( ( _, ( _, INFIXR1left, INFIXR1right)) :: rest671)) => let val  result = MlyValue.fixity (fn _ => ((*#line 854.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Fixity.Infixr NONE(*#line 3194.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 53, ( result, INFIXR1left, INFIXR1right), rest671)
++end
++|  ( 171, ( ( _, ( MlyValue.digit digit1, _, digit1right)) :: ( _, ( _, INFIXR1left, _)) :: rest671)) => let val  result = MlyValue.fixity (fn _ => let val  (digit as digit1) = digit1 ()
++ in ((*#line 855.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Fixity.Infixr (SOME digit)(*#line 3198.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 53, ( result, INFIXR1left, digit1right), rest671)
++end
++|  ( 172, ( ( _, ( _, NONFIX1left, NONFIX1right)) :: rest671)) => let val  result = MlyValue.fixity (fn _ => ((*#line 856.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Fixity.Nonfix(*#line 3204.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 53, ( result, NONFIX1left, NONFIX1right), rest671)
++end
++|  ( 173, ( rest671)) => let val  result = MlyValue.priority (fn _ => ((*#line 858.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Priority.T NONE(*#line 3208.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 86, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 174, ( ( _, ( MlyValue.digit digit1, digit1left, digit1right)) :: rest671)) => let val  result = MlyValue.priority (fn _ => let val  (digit as digit1) = digit1 ()
++ in ((*#line 859.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Priority.T (SOME digit)(*#line 3212.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 86, ( result, digit1left, digit1right), rest671)
++end
++|  ( 175, ( ( _, ( MlyValue.INT INT1, INT1left, INT1right)) :: rest671)) => let val  result = MlyValue.int (fn _ => let val  (INT as INT1) = INT1 ()
++ in ((*#line 862.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++       val {digits, negate, radix} = INT
++    in
++       case StringCvt.scanString (fn r => IntInf.scan (radix, r)) digits of
++          NONE => Error.bug "parser saw invalid int"
++        | SOME i => if negate then ~ i else i
++    end(*#line 3218.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 63, ( result, INT1left, INT1right), rest671)
++end
++|  ( 176, ( ( _, ( MlyValue.WORD WORD1, WORD1left, WORD1right)) :: rest671)) => let val  result = MlyValue.word (fn _ => let val  (WORD as WORD1) = WORD1 ()
++ in ((*#line 871.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++       val {digits, radix} = WORD
++    in
++       case StringCvt.scanString (fn r => IntInf.scan (radix, r)) digits of
++          NONE => Error.bug "parser saw invalid word"
++        | SOME i => i
++    end(*#line 3230.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 166, ( result, WORD1left, WORD1right), rest671)
++end
++|  ( 177, ( ( _, ( MlyValue.INT INT1, (INTleft as INT1left), (INTright as INT1right))) :: rest671)) => let val  result = MlyValue.digit (fn _ => let val  (INT as INT1) = INT1 ()
++ in ((*#line 880.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++       val {digits, negate, radix} = INT
++    in
++       if 1 = String.size digits andalso not negate andalso radix = StringCvt.DEC
++          then valOf (Int.fromString digits)
++       else let
++               open Layout
++               val _ = 
++                  Control.error (reg (INTleft, INTright),
++                                 str "invalid digit in infix declaration",
++                                 empty)
++            in
++               0
++            end
++    end(*#line 3242.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 35, ( result, INT1left, INT1right), rest671)
++end
++|  ( 178, ( ( _, ( MlyValue.datatypeRhsnode datatypeRhsnode1, (datatypeRhsnodeleft as datatypeRhsnode1left), (datatypeRhsnoderight as datatypeRhsnode1right))) :: rest671)) => let val  result = MlyValue.datatypeRhs (fn _ => let val  (datatypeRhsnode as datatypeRhsnode1) = datatypeRhsnode1 ()
++ in ((*#line 898.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)DatatypeRhs.makeRegion' (datatypeRhsnode,
++                               datatypeRhsnodeleft, datatypeRhsnoderight)(*#line 3262.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 23, ( result, datatypeRhsnode1left, datatypeRhsnode1right), rest671)
++end
++|  ( 179, ( ( _, ( MlyValue.datatypeRhsnodeNoWithtype datatypeRhsnodeNoWithtype1, (datatypeRhsnodeNoWithtypeleft as datatypeRhsnodeNoWithtype1left), (datatypeRhsnodeNoWithtyperight as datatypeRhsnodeNoWithtype1right))) :: rest671)) => let val  result = MlyValue.datatypeRhsNoWithtype (fn _ => let val  (datatypeRhsnodeNoWithtype as datatypeRhsnodeNoWithtype1) = datatypeRhsnodeNoWithtype1 ()
++ in ((*#line 903.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)DatatypeRhs.makeRegion' (datatypeRhsnodeNoWithtype,
++                               datatypeRhsnodeNoWithtypeleft,
++                               datatypeRhsnodeNoWithtyperight)(*#line 3269.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 24, ( result, datatypeRhsnodeNoWithtype1left, datatypeRhsnodeNoWithtype1right), rest671)
++end
++|  ( 180, ( ( _, ( MlyValue.repl repl1, repl1left, repl1right)) :: rest671)) => let val  result = MlyValue.datatypeRhsnode (fn _ => let val  (repl as repl1) = repl1 ()
++ in ((*#line 908.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)repl(*#line 3277.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 25, ( result, repl1left, repl1right), rest671)
++end
++|  ( 181, ( ( _, ( MlyValue.datBind datBind1, datBind1left, datBind1right)) :: rest671)) => let val  result = MlyValue.datatypeRhsnode (fn _ => let val  (datBind as datBind1) = datBind1 ()
++ in ((*#line 909.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)DatatypeRhs.DatBind datBind(*#line 3283.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 25, ( result, datBind1left, datBind1right), rest671)
++end
++|  ( 182, ( ( _, ( MlyValue.repl repl1, repl1left, repl1right)) :: rest671)) => let val  result = MlyValue.datatypeRhsnodeNoWithtype (fn _ => let val  (repl as repl1) = repl1 ()
++ in ((*#line 912.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)repl(*#line 3289.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 26, ( result, repl1left, repl1right), rest671)
++end
++|  ( 183, ( ( _, ( MlyValue.datBindNoWithtype datBindNoWithtype1, datBindNoWithtype1left, datBindNoWithtype1right)) :: rest671)) => let val  result = MlyValue.datatypeRhsnodeNoWithtype (fn _ => let val  (datBindNoWithtype as datBindNoWithtype1) = datBindNoWithtype1 ()
++ in ((*#line 913.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)DatatypeRhs.DatBind datBindNoWithtype(*#line 3295.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 26, ( result, datBindNoWithtype1left, datBindNoWithtype1right), rest671)
++end
++|  ( 184, ( ( _, ( MlyValue.longtycon longtycon1, _, longtycon1right)) :: _ :: _ :: ( _, ( MlyValue.tycon tycon1, _, _)) :: ( _, ( MlyValue.tyvars tyvars1, (tyvarsleft as tyvars1left), tyvarsright)) :: rest671)) => let val  result = MlyValue.repl (fn _ => let val  (tyvars as tyvars1) = tyvars1 ()
++ val  (tycon as tycon1) = tycon1 ()
++ val  (longtycon as longtycon1) = longtycon1 ()
++ in ((*#line 916.9 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)if Vector.isEmpty tyvars
++           then ()
++        else error (reg (tyvarsleft, tyvarsright),
++                    "nonempty tyvars in datatype repl")
++        ; DatatypeRhs.Repl {lhs = tycon, rhs = longtycon}(*#line 3301.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 88, ( result, tyvars1left, longtycon1right), rest671)
++end
++|  ( 185, ( ( _, ( MlyValue.withtypes withtypes1, _, (withtypesright as withtypes1right))) :: ( _, ( MlyValue.dbs dbs1, (dbsleft as dbs1left), _)) :: rest671)) => let val  result = MlyValue.datBind (fn _ => let val  (dbs as dbs1) = dbs1 ()
++ val  (withtypes as withtypes1) = withtypes1 ()
++ in ((*#line 924.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)DatBind.make (dbs, withtypes, dbsleft, withtypesright)(*#line 3313.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 21, ( result, dbs1left, withtypes1right), rest671)
++end
++|  ( 186, ( ( _, ( MlyValue.dbs dbs1, (dbsleft as dbs1left), (dbsright as dbs1right))) :: rest671)) => let val  result = MlyValue.datBindNoWithtype (fn _ => let val  (dbs as dbs1) = dbs1 ()
++ in ((*#line 928.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)DatBind.make (dbs, TypBind.empty, dbsleft, dbsright)(*#line 3320.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 22, ( result, dbs1left, dbs1right), rest671)
++end
++|  ( 187, ( ( _, ( MlyValue.dbs' dbs'1, dbs'1left, dbs'1right)) :: rest671)) => let val  result = MlyValue.dbs (fn _ => let val  (dbs' as dbs'1) = dbs'1 ()
++ in ((*#line 930.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Vector.fromList dbs'(*#line 3326.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 28, ( result, dbs'1left, dbs'1right), rest671)
++end
++|  ( 188, ( ( _, ( MlyValue.db db1, db1left, db1right)) :: rest671)) => let val  result = MlyValue.dbs' (fn _ => let val  (db as db1) = db1 ()
++ in ((*#line 934.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[db](*#line 3332.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 29, ( result, db1left, db1right), rest671)
++end
++|  ( 189, ( ( _, ( MlyValue.dbs' dbs'1, _, dbs'1right)) :: _ :: ( _, ( MlyValue.db db1, db1left, _)) :: rest671)) => let val  result = MlyValue.dbs' (fn _ => let val  (db as db1) = db1 ()
++ val  (dbs' as dbs'1) = dbs'1 ()
++ in ((*#line 936.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)db :: dbs'(*#line 3338.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 29, ( result, db1left, dbs'1right), rest671)
++end
++|  ( 190, ( ( _, ( MlyValue.constrs constrs1, _, constrs1right)) :: _ :: ( _, ( MlyValue.tycon tycon1, _, _)) :: ( _, ( MlyValue.tyvars tyvars1, tyvars1left, _)) :: rest671)) => let val  result = MlyValue.db (fn _ => let val  (tyvars as tyvars1) = tyvars1 ()
++ val  (tycon as tycon1) = tycon1 ()
++ val  (constrs as constrs1) = constrs1 ()
++ in ((*#line 939.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*){cons = Vector.fromList constrs,
++       tycon = tycon,
++       tyvars = tyvars}(*#line 3345.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 27, ( result, tyvars1left, constrs1right), rest671)
++end
++|  ( 191, ( rest671)) => let val  result = MlyValue.withtypes (fn _ => ((*#line 945.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)TypBind.empty(*#line 3355.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 165, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 192, ( ( _, ( MlyValue.typBind typBind1, _, typBind1right)) :: ( _, ( _, WITHTYPE1left, _)) :: rest671)) => let val  result = MlyValue.withtypes (fn _ => let val  (typBind as typBind1) = typBind1 ()
++ in ((*#line 947.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)typBind(*#line 3359.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 165, ( result, WITHTYPE1left, typBind1right), rest671)
++end
++|  ( 193, ( ( _, ( MlyValue.longvid longvid1, longvid1left, longvid1right)) :: rest671)) => let val  result = MlyValue.longvidands (fn _ => let val  (longvid as longvid1) = longvid1 ()
++ in ((*#line 949.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[longvid](*#line 3365.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 73, ( result, longvid1left, longvid1right), rest671)
++end
++|  ( 194, ( ( _, ( MlyValue.longvidands longvidands1, _, longvidands1right)) :: _ :: ( _, ( MlyValue.longvid longvid1, longvid1left, _)) :: rest671)) => let val  result = MlyValue.longvidands (fn _ => let val  (longvid as longvid1) = longvid1 ()
++ val  (longvidands as longvidands1) = longvidands1 ()
++ in ((*#line 950.40 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)longvid :: longvidands(*#line 3371.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 73, ( result, longvid1left, longvidands1right), rest671)
++end
++|  ( 195, ( ( _, ( MlyValue.rules rules1, (rulesleft as rules1left), (rulesright as rules1right))) :: rest671)) => let val  result = MlyValue.match (fn _ => let val  (rules as rules1) = rules1 ()
++ in ((*#line 952.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Match.makeRegion' (Match.T (Vector.fromList rules),
++                                            rulesleft, rulesright)(*#line 3378.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 76, ( result, rules1left, rules1right), rest671)
++end
++|  ( 196, ( ( _, ( MlyValue.rule rule1, rule1left, rule1right)) :: rest671)) => let val  result = MlyValue.rules (fn _ => let val  (rule as rule1) = rule1 ()
++ in ((*#line 955.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[rule](*#line 3385.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 90, ( result, rule1left, rule1right), rest671)
++end
++|  ( 197, ( ( _, ( MlyValue.rules rules1, _, rules1right)) :: _ :: ( _, ( MlyValue.rule rule1, rule1left, _)) :: rest671)) => let val  result = MlyValue.rules (fn _ => let val  (rule as rule1) = rule1 ()
++ val  (rules as rules1) = rules1 ()
++ in ((*#line 956.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)rule :: rules(*#line 3391.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 90, ( result, rule1left, rules1right), rest671)
++end
++|  ( 198, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: _ :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val  result = MlyValue.rule (fn _ => let val  (pat as pat1) = pat1 ()
++ val  (exp as exp1) = exp1 ()
++ in ((*#line 958.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(pat,exp)(*#line 3398.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 89, ( result, pat1left, exp1right), rest671)
++end
++|  ( 199, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: _ :: ( _, ( MlyValue.field field1, field1left, _)) :: rest671)) => let val  result = MlyValue.elabel (fn _ => let val  (field as field1) = field1 ()
++ val  (exp as exp1) = exp1 ()
++ in ((*#line 960.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)field,exp(*#line 3405.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 40, ( result, field1left, exp1right), rest671)
++end
++|  ( 200, ( ( _, ( MlyValue.elabels elabels1, _, elabels1right)) :: _ :: ( _, ( MlyValue.elabel elabel1, elabel1left, _)) :: rest671)) => let val  result = MlyValue.elabels (fn _ => let val  (elabel as elabel1) = elabel1 ()
++ val  (elabels as elabels1) = elabels1 ()
++ in ((*#line 962.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)elabel :: elabels(*#line 3412.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 41, ( result, elabel1left, elabels1right), rest671)
++end
++|  ( 201, ( ( _, ( MlyValue.elabel elabel1, elabel1left, elabel1right)) :: rest671)) => let val  result = MlyValue.elabels (fn _ => let val  (elabel as elabel1) = elabel1 ()
++ in ((*#line 963.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[elabel](*#line 3419.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 41, ( result, elabel1left, elabel1right), rest671)
++end
++|  ( 202, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.exp_ps (fn _ => let val  exp1 = exp1 ()
++ val  exp2 = exp2 ()
++ in ((*#line 965.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[exp1, exp2](*#line 3425.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 47, ( result, exp1left, exp2right), rest671)
++end
++|  ( 203, ( ( _, ( MlyValue.exp_ps exp_ps1, _, exp_ps1right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.exp_ps (fn _ => let val  (exp as exp1) = exp1 ()
++ val  (exp_ps as exp_ps1) = exp_ps1 ()
++ in ((*#line 966.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)exp :: exp_ps(*#line 3432.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 47, ( result, exp1left, exp_ps1right), rest671)
++end
++|  ( 204, ( ( _, ( MlyValue.expnode expnode1, (expnodeleft as expnode1left), (expnoderight as expnode1right))) :: rest671)) => let val  result = MlyValue.exp (fn _ => let val  (expnode as expnode1) = expnode1 ()
++ in ((*#line 968.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.makeRegion' (expnode, expnodeleft, expnoderight)(*#line 3439.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 44, ( result, expnode1left, expnode1right), rest671)
++end
++|  ( 205, ( ( _, ( MlyValue.match match1, _, match1right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  (exp as exp1) = exp1 ()
++ val  (match as match1) = match1 ()
++ in ((*#line 970.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Handle (exp, match)(*#line 3445.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, exp1left, match1right), rest671)
++end
++|  ( 206, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  exp1 = exp1 ()
++ val  exp2 = exp2 ()
++ in ((*#line 971.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Orelse (exp1, exp2)(*#line 3452.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, exp1left, exp2right), rest671)
++end
++|  ( 207, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  exp1 = exp1 ()
++ val  exp2 = exp2 ()
++ in ((*#line 972.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Andalso (exp1, exp2)(*#line 3459.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, exp1left, exp2right), rest671)
++end
++|  ( 208, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  (exp as exp1) = exp1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 973.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Constraint (exp, ty)(*#line 3466.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, exp1left, ty1right), rest671)
++end
++|  ( 209, ( ( _, ( MlyValue.app_exp app_exp1, app_exp1left, app_exp1right)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  (app_exp as app_exp1) = app_exp1 ()
++ in ((*#line 974.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.FlatApp (Vector.fromList app_exp)(*#line 3473.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, app_exp1left, app_exp1right), rest671)
++end
++|  ( 210, ( ( _, ( MlyValue.match match1, _, match1right)) :: ( _, ( _, FN1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  (match as match1) = match1 ()
++ in ((*#line 975.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Fn match(*#line 3479.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, FN1left, match1right), rest671)
++end
++|  ( 211, ( ( _, ( MlyValue.match match1, _, match1right)) :: _ :: ( _, ( MlyValue.exp exp1, _, _)) :: ( _, ( _, CASE1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  (exp as exp1) = exp1 ()
++ val  (match as match1) = match1 ()
++ in ((*#line 976.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Case (exp, match)(*#line 3485.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, CASE1left, match1right), rest671)
++end
++|  ( 212, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( MlyValue.exp exp1, _, _)) :: ( _, ( _, WHILE1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  exp1 = exp1 ()
++ val  exp2 = exp2 ()
++ in ((*#line 977.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.While {test = exp1, expr = exp2}(*#line 3492.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, WHILE1left, exp2right), rest671)
++end
++|  ( 213, ( ( _, ( MlyValue.exp exp3, _, exp3right)) :: _ :: ( _, ( MlyValue.exp exp2, _, _)) :: _ :: ( _, ( MlyValue.exp exp1, _, _)) :: ( _, ( _, IF1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  exp1 = exp1 ()
++ val  exp2 = exp2 ()
++ val  exp3 = exp3 ()
++ in ((*#line 978.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.If (exp1, exp2, exp3)(*#line 3499.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, IF1left, exp3right), rest671)
++end
++|  ( 214, ( ( _, ( MlyValue.exp exp1, _, exp1right)) :: ( _, ( _, RAISE1left, _)) :: rest671)) => let val  result = MlyValue.expnode (fn _ => let val  (exp as exp1) = exp1 ()
++ in ((*#line 979.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Raise exp(*#line 3507.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 48, ( result, RAISE1left, exp1right), rest671)
++end
++|  ( 215, ( ( _, ( MlyValue.app_exp1 app_exp11, _, app_exp11right)) :: ( _, ( MlyValue.aexp aexp1, (aexpleft as aexp1left), aexpright)) :: rest671)) => let val  result = MlyValue.app_exp (fn _ => let val  (aexp as aexp1) = aexp1 ()
++ val  (app_exp1 as app_exp11) = app_exp11 ()
++ in ((*#line 981.30 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.makeRegion' (aexp, aexpleft, aexpright)
++                             :: app_exp1(*#line 3513.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 6, ( result, aexp1left, app_exp11right), rest671)
++end
++|  ( 216, ( ( _, ( MlyValue.app_exp1 app_exp11, _, app_exp11right)) :: ( _, ( MlyValue.longvid longvid1, (longvidleft as longvid1left), longvidright)) :: rest671)) => let val  result = MlyValue.app_exp (fn _ => let val  (longvid as longvid1) = longvid1 ()
++ val  (app_exp1 as app_exp11) = app_exp11 ()
++ in ((*#line 983.30 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.makeRegion' (Exp.Var {name = longvid,
++                                                       fixop = Fixop.None},
++                                             longvidleft, longvidright)
++                             :: app_exp1(*#line 3521.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 6, ( result, longvid1left, app_exp11right), rest671)
++end
++|  ( 217, ( rest671)) => let val  result = MlyValue.app_exp1 (fn _ => ((*#line 988.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 3531.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 7, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 218, ( ( _, ( MlyValue.app_exp app_exp1, app_exp1left, app_exp1right)) :: rest671)) => let val  result = MlyValue.app_exp1 (fn _ => let val  (app_exp as app_exp1) = app_exp1 ()
++ in ((*#line 989.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)app_exp(*#line 3535.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, app_exp1left, app_exp1right), rest671)
++end
++|  ( 219, ( ( _, ( MlyValue.longvid longvid1, _, longvid1right)) :: ( _, ( _, OP1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (longvid as longvid1) = longvid1 ()
++ in ((*#line 991.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Var {name = longvid,
++                                          fixop = Fixop.Op}(*#line 3541.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, OP1left, longvid1right), rest671)
++end
++|  ( 220, ( ( _, ( MlyValue.const const1, const1left, const1right)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (const as const1) = const1 ()
++ in ((*#line 993.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Const const(*#line 3548.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, const1left, const1right), rest671)
++end
++|  ( 221, ( ( _, ( MlyValue.field field1, _, field1right)) :: ( _, ( _, HASH1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (field as field1) = field1 ()
++ in ((*#line 994.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Selector field(*#line 3554.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, HASH1left, field1right), rest671)
++end
++|  ( 222, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.elabels elabels1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (elabels as elabels1) = elabels1 ()
++ in ((*#line 996.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Record (Record.fromVector (Vector.fromList elabels))(*#line 3560.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 223, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => ((*#line 997.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.unit(*#line 3566.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 0, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 224, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => ((*#line 998.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.unit(*#line 3570.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 225, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.expnode expnode1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (expnode as expnode1) = expnode1 ()
++ in ((*#line 999.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)expnode(*#line 3574.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 226, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.exp_ps exp_ps1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (exp_ps as exp_ps1) = exp_ps1 ()
++ in ((*#line 1000.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Seq (Vector.fromList exp_ps)(*#line 3580.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 227, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.exp_2c exp_2c1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (exp_2c as exp_2c1) = exp_2c1 ()
++ in ((*#line 1001.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.tuple (Vector.fromList exp_2c)(*#line 3586.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 228, ( ( _, ( _, _, RBRACKET1right)) :: ( _, ( MlyValue.exp_list exp_list1, _, _)) :: ( _, ( _, LBRACKET1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (exp_list as exp_list1) = exp_list1 ()
++ in ((*#line 1002.40 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.List (Vector.fromList exp_list)(*#line 3592.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, LBRACKET1left, RBRACKET1right), rest671)
++end
++|  ( 229, ( ( _, ( _, _, RBRACKET1right)) :: ( _, ( _, LBRACKET1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => ((*#line 1003.40 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.List (Vector.new0 ())(*#line 3598.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 0, ( result, LBRACKET1left, RBRACKET1right), rest671)
++end
++|  ( 230, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.exp exp1, _, _)) :: _ :: ( _, ( MlyValue.decs decs1, _, _)) :: ( _, ( _, LET1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (decs as decs1) = decs1 ()
++ val  (exp as exp1) = exp1 ()
++ in ((*#line 1004.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Let (decs, exp)(*#line 3602.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, LET1left, END1right), rest671)
++end
++|  ( 231, ( ( _, ( _, _, END1right)) :: ( _, ( MlyValue.exp_ps exp_ps1, exp_psleft, exp_psright)) :: _ :: ( _, ( MlyValue.decs decs1, _, _)) :: ( _, ( _, LET1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (decs as decs1) = decs1 ()
++ val  (exp_ps as exp_ps1) = exp_ps1 ()
++ in ((*#line 1006.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Let (decs, Exp.makeRegion' (Exp.Seq (Vector.fromList exp_ps),
++                                             exp_psleft,
++                                             exp_psright))(*#line 3609.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, LET1left, END1right), rest671)
++end
++|  ( 232, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.symattributes symattributes1, _, _)) :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, ADDRESS1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (symattributes as symattributes1) = symattributes1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1010.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.Address {attributes = symattributes,
++                                       name = string,
++                                       ty = ty})(*#line 3618.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, ADDRESS1left, SEMICOLON1right), rest671)
++end
++|  ( 233, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, BUILD_CONST1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1014.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.BuildConst {name = string, ty = ty})(*#line 3628.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, BUILD_CONST1left, SEMICOLON1right), rest671)
++end
++|  ( 234, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.constOrBool constOrBool1, _, _)) :: _ :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, COMMAND_LINE_CONST1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (ty as ty1) = ty1 ()
++ val  (constOrBool as constOrBool1) = constOrBool1 ()
++ in ((*#line 1016.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.CommandLineConst {name = string,
++                                                ty = ty,
++                                                value = constOrBool})(*#line 3635.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, COMMAND_LINE_CONST1left, SEMICOLON1right), rest671)
++end
++|  ( 235, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, CONST1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1020.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.Const {name = string, ty = ty})(*#line 3645.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, CONST1left, SEMICOLON1right), rest671)
++end
++|  ( 236, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.ieattributes ieattributes1, _, _)) :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, EXPORT1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (ieattributes as ieattributes1) = ieattributes1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1022.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.Export {attributes = ieattributes,
++                                      name = string,
++                                      ty = ty})(*#line 3652.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, EXPORT1left, SEMICOLON1right), rest671)
++end
++|  ( 237, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.ieattributes ieattributes1, _, _)) :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, IMPORT1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (ieattributes as ieattributes1) = ieattributes1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1026.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.Import {attributes = ieattributes,
++                                      name = string,
++                                      ty = ty})(*#line 3662.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, IMPORT1left, SEMICOLON1right), rest671)
++end
++|  ( 238, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.ieattributes ieattributes1, _, _)) :: _ :: ( _, ( _, IMPORT1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (ieattributes as ieattributes1) = ieattributes1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1030.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.IImport {attributes = ieattributes,
++                                       ty = ty})(*#line 3672.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, IMPORT1left, SEMICOLON1right), rest671)
++end
++|  ( 239, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, PRIM1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1033.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.Prim {name = string,
++                                    ty = ty})(*#line 3680.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, PRIM1left, SEMICOLON1right), rest671)
++end
++|  ( 240, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: ( _, ( MlyValue.symattributes symattributes1, _, _)) :: ( _, ( MlyValue.string string1, _, _)) :: ( _, ( _, SYMBOL1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (string as string1) = string1 ()
++ val  (symattributes as symattributes1) = symattributes1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1036.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.Symbol {attributes = symattributes,
++                                      name = string,
++                                      ty = ty})(*#line 3688.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, SYMBOL1left, SEMICOLON1right), rest671)
++end
++|  ( 241, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: _ :: _ :: ( _, ( _, SYMBOL1left, _)) :: rest671)) => let val  result = MlyValue.aexp (fn _ => let val  (ty as ty1) = ty1 ()
++ in ((*#line 1040.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Exp.Prim (PrimKind.ISymbol {ty = ty})(*#line 3698.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, SYMBOL1left, SEMICOLON1right), rest671)
++end
++|  ( 242, ( rest671)) => let val  result = MlyValue.ieattributes (fn _ => ((*#line 1044.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 3704.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 9, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 243, ( ( _, ( MlyValue.ieattributes ieattributes1, _, ieattributes1right)) :: ( _, ( MlyValue.id id1, (idleft as id1left), idright)) :: rest671)) => let val  result = MlyValue.ieattributes (fn _ => let val  (id as id1) = id1 ()
++ val  (ieattributes as ieattributes1) = ieattributes1 ()
++ in ((*#line 1046.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++         val id = Symbol.toString (#1 id)
++      in
++         case id of
++            "cdecl" => PrimKind.ImportExportAttribute.Cdecl :: ieattributes
++          | "external" => PrimKind.ImportExportAttribute.External :: ieattributes
++          | "private" => PrimKind.ImportExportAttribute.Private :: ieattributes
++          | "public" => PrimKind.ImportExportAttribute.Public :: ieattributes
++          | "stdcall" => PrimKind.ImportExportAttribute.Stdcall :: ieattributes
++          | _ => (error (reg (idleft, idright), concat ["invalid attribute: ", id])
++                  ; ieattributes)
++      end(*#line 3708.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 9, ( result, id1left, ieattributes1right), rest671)
++end
++|  ( 244, ( rest671)) => let val  result = MlyValue.symattributes (fn _ => ((*#line 1061.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 3726.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 129, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 245, ( ( _, ( MlyValue.symattributes symattributes1, _, symattributes1right)) :: ( _, ( MlyValue.id id1, (idleft as id1left), idright)) :: rest671)) => let val  result = MlyValue.symattributes (fn _ => let val  (id as id1) = id1 ()
++ val  (symattributes as symattributes1) = symattributes1 ()
++ in ((*#line 1063.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++         val id = Symbol.toString (#1 id)
++      in
++         case id of
++            "alloc" => PrimKind.SymbolAttribute.Alloc :: symattributes
++          | "external" => PrimKind.SymbolAttribute.External :: symattributes
++          | "private" => PrimKind.SymbolAttribute.Private :: symattributes
++          | "public" => PrimKind.SymbolAttribute.Public :: symattributes
++          | _ => (error (reg (idleft, idright), concat ["invalid attribute: ", id])
++                  ; symattributes)
++      end(*#line 3730.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 129, ( result, id1left, symattributes1right), rest671)
++end
++|  ( 246, ( ( _, ( MlyValue.exp_2c exp_2c1, _, exp_2c1right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.exp_2c (fn _ => let val  (exp as exp1) = exp1 ()
++ val  (exp_2c as exp_2c1) = exp_2c1 ()
++ in ((*#line 1075.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)exp :: exp_2c(*#line 3747.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 45, ( result, exp1left, exp_2c1right), rest671)
++end
++|  ( 247, ( ( _, ( MlyValue.exp exp2, _, exp2right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.exp_2c (fn _ => let val  exp1 = exp1 ()
++ val  exp2 = exp2 ()
++ in ((*#line 1076.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[exp1, exp2](*#line 3754.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 45, ( result, exp1left, exp2right), rest671)
++end
++|  ( 248, ( ( _, ( MlyValue.exp exp1, exp1left, exp1right)) :: rest671)) => let val  result = MlyValue.exp_list (fn _ => let val  (exp as exp1) = exp1 ()
++ in ((*#line 1078.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[exp](*#line 3761.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 46, ( result, exp1left, exp1right), rest671)
++end
++|  ( 249, ( ( _, ( MlyValue.exp_list exp_list1, _, exp_list1right)) :: _ :: ( _, ( MlyValue.exp exp1, exp1left, _)) :: rest671)) => let val  result = MlyValue.exp_list (fn _ => let val  (exp as exp1) = exp1 ()
++ val  (exp_list as exp_list1) = exp_list1 ()
++ in ((*#line 1079.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)exp :: exp_list(*#line 3767.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 46, ( result, exp1left, exp_list1right), rest671)
++end
++|  ( 250, ( ( _, ( MlyValue.patnode patnode1, (patnodeleft as patnode1left), (patnoderight as patnode1right))) :: rest671)) => let val  result = MlyValue.pat (fn _ => let val  (patnode as patnode1) = patnode1 ()
++ in ((*#line 1085.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.makeRegion' (patnode, patnodeleft, patnoderight)(*#line 3774.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 80, ( result, patnode1left, patnode1right), rest671)
++end
++|  ( 251, ( ( _, ( MlyValue.pat pat2, _, pat2right)) :: _ :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val  result = MlyValue.patnode (fn _ => let val  pat1 = pat1 ()
++ val  pat2 = pat2 ()
++ in ((*#line 1087.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.makeAs (pat1, pat2)(*#line 3780.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 84, ( result, pat1left, pat2right), rest671)
++end
++|  ( 252, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val  result = MlyValue.patnode (fn _ => let val  (pat as pat1) = pat1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1088.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.Constraint (pat, ty)(*#line 3787.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 84, ( result, pat1left, ty1right), rest671)
++end
++|  ( 253, ( ( _, ( MlyValue.apats apats1, apats1left, apats1right)) :: rest671)) => let val  result = MlyValue.patnode (fn _ => let val  (apats as apats1) = apats1 ()
++ in ((*#line 1089.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.FlatApp (Vector.fromList apats)(*#line 3794.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 84, ( result, apats1left, apats1right), rest671)
++end
++|  ( 254, ( ( _, ( MlyValue.apat apat1, apat1left, apat1right)) :: rest671)) => let val  result = MlyValue.apats (fn _ => let val  (apat as apat1) = apat1 ()
++ in ((*#line 1091.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[apat](*#line 3800.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 5, ( result, apat1left, apat1right), rest671)
++end
++|  ( 255, ( ( _, ( MlyValue.apats apats1, _, apats1right)) :: ( _, ( MlyValue.apat apat1, apat1left, _)) :: rest671)) => let val  result = MlyValue.apats (fn _ => let val  (apat as apat1) = apat1 ()
++ val  (apats as apats1) = apats1 ()
++ in ((*#line 1092.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)apat :: apats(*#line 3806.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 5, ( result, apat1left, apats1right), rest671)
++end
++|  ( 256, ( ( _, ( MlyValue.apatnode apatnode1, (apatnodeleft as apatnode1left), (apatnoderight as apatnode1right))) :: rest671)) => let val  result = MlyValue.apat (fn _ => let val  (apatnode as apatnode1) = apatnode1 ()
++ in ((*#line 1094.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.makeRegion' (apatnode, apatnodeleft, apatnoderight)(*#line 3813.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 2, ( result, apatnode1left, apatnode1right), rest671)
++end
++|  ( 257, ( ( _, ( MlyValue.longvidNoEqual longvidNoEqual1, longvidNoEqual1left, longvidNoEqual1right)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => let val  (longvidNoEqual as longvidNoEqual1) = longvidNoEqual1 ()
++ in ((*#line 1096.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.Var {name = longvidNoEqual,
++                                           fixop = Fixop.None}(*#line 3819.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, longvidNoEqual1left, longvidNoEqual1right), rest671)
++end
++|  ( 258, ( ( _, ( MlyValue.longvid longvid1, _, longvid1right)) :: ( _, ( _, OP1left, _)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => let val  (longvid as longvid1) = longvid1 ()
++ in ((*#line 1098.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.Var {name = longvid,
++                                           fixop = Fixop.Op}(*#line 3826.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, OP1left, longvid1right), rest671)
++end
++|  ( 259, ( ( _, ( MlyValue.const const1, const1left, const1right)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => let val  (const as const1) = const1 ()
++ in ((*#line 1101.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++              val _ =
++                 case Const.node const of
++                    Const.Real r =>
++                       let
++                          open Layout
++                       in
++                          Control.error
++                          (Const.region const,
++                           seq [str "real constants are not allowed in patterns: ",
++                                Const.layout const],
++                           empty)
++                       end
++                    | _ => ()
++           in
++              Pat.Const const
++           end(*#line 3833.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, const1left, const1right), rest671)
++end
++|  ( 260, ( ( _, ( _, WILD1left, WILD1right)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => ((*#line 1118.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.Wild(*#line 3855.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 4, ( result, WILD1left, WILD1right), rest671)
++end
++|  ( 261, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.pats pats1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => let val  (pats as pats1) = pats1 ()
++ in ((*#line 1119.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.tuple (Vector.fromList pats)(*#line 3859.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 262, ( ( _, ( _, _, RBRACKET1right)) :: ( _, ( MlyValue.pats pats1, _, _)) :: ( _, ( _, LBRACKET1left, _)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => let val  (pats as pats1) = pats1 ()
++ in ((*#line 1120.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.List (Vector.fromList pats)(*#line 3865.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, LBRACKET1left, RBRACKET1right), rest671)
++end
++|  ( 263, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => ((*#line 1121.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Pat.unit(*#line 3871.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 4, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 264, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.patitems patitems1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.apatnode (fn _ => let val  (patitems as patitems1) = patitems1 ()
++ in ((*#line 1123.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++              val (items, flexible) = patitems
++           in
++              Pat.Record {flexible = flexible,
++                          items = Vector.fromList items}
++           end(*#line 3875.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 265, ( rest671)) => let val  result = MlyValue.pats (fn _ => ((*#line 1130.8 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 3886.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 85, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 266, ( ( _, ( MlyValue.commapats commapats1, _, commapats1right)) :: ( _, ( MlyValue.pat pat1, pat1left, _)) :: rest671)) => let val  result = MlyValue.pats (fn _ => let val  (pat as pat1) = pat1 ()
++ val  (commapats as commapats1) = commapats1 ()
++ in ((*#line 1131.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)pat :: commapats(*#line 3890.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 85, ( result, pat1left, commapats1right), rest671)
++end
++|  ( 267, ( rest671)) => let val  result = MlyValue.commapats (fn _ => ((*#line 1133.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[](*#line 3897.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 13, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 268, ( ( _, ( MlyValue.commapats commapats1, _, commapats1right)) :: ( _, ( MlyValue.pat pat1, _, _)) :: ( _, ( _, COMMA1left, _)) :: rest671)) => let val  result = MlyValue.commapats (fn _ => let val  (pat as pat1) = pat1 ()
++ val  (commapats as commapats1) = commapats1 ()
++ in ((*#line 1134.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)pat :: commapats(*#line 3901.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 13, ( result, COMMA1left, commapats1right), rest671)
++end
++|  ( 269, ( ( _, ( MlyValue.patitems patitems1, _, patitems1right)) :: _ :: ( _, ( MlyValue.patitem patitem1, patitem1left, _)) :: rest671)) => let val  result = MlyValue.patitems (fn _ => let val  (patitem as patitem1) = patitem1 ()
++ val  (patitems as patitems1) = patitems1 ()
++ in ((*#line 1136.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let val (items, f) = patitems
++                                    in (patitem :: items, f)
++                                    end(*#line 3908.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 83, ( result, patitem1left, patitems1right), rest671)
++end
++|  ( 270, ( ( _, ( MlyValue.patitem patitem1, patitem1left, patitem1right)) :: rest671)) => let val  result = MlyValue.patitems (fn _ => let val  (patitem as patitem1) = patitem1 ()
++ in ((*#line 1139.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[patitem], false(*#line 3917.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 83, ( result, patitem1left, patitem1right), rest671)
++end
++|  ( 271, ( ( _, ( _, DOTDOTDOT1left, DOTDOTDOT1right)) :: rest671)) => let val  result = MlyValue.patitems (fn _ => ((*#line 1140.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[], true(*#line 3923.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 83, ( result, DOTDOTDOT1left, DOTDOTDOT1right), rest671)
++end
++|  ( 272, ( ( _, ( MlyValue.pat pat1, _, pat1right)) :: _ :: ( _, ( MlyValue.field field1, field1left, _)) :: rest671)) => let val  result = MlyValue.patitem (fn _ => let val  (field as field1) = field1 ()
++ val  (pat as pat1) = pat1 ()
++ in ((*#line 1144.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(field, Pat.Item.Field pat)(*#line 3927.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 82, ( result, field1left, pat1right), rest671)
++end
++|  ( 273, ( ( _, ( MlyValue.opaspat opaspat1, _, opaspat1right)) :: ( _, ( MlyValue.constraint constraint1, _, _)) :: ( _, ( MlyValue.vidNoEqual vidNoEqual1, vidNoEqual1left, _)) :: rest671)) => let val  result = MlyValue.patitem (fn _ => let val  (vidNoEqual as vidNoEqual1) = vidNoEqual1 ()
++ val  (constraint as constraint1) = constraint1 ()
++ val  (opaspat as opaspat1) = opaspat1 ()
++ in ((*#line 1146.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Field.Symbol (Vid.toSymbol vidNoEqual),
++      Pat.Item.Vid (vidNoEqual, constraint, opaspat)(*#line 3934.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 82, ( result, vidNoEqual1left, opaspat1right), rest671)
++end
++|  ( 274, ( rest671)) => let val  result = MlyValue.opaspat (fn _ => ((*#line 1149.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)NONE(*#line 3943.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 77, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 275, ( ( _, ( MlyValue.pat pat1, _, pat1right)) :: ( _, ( _, AS1left, _)) :: rest671)) => let val  result = MlyValue.opaspat (fn _ => let val  (pat as pat1) = pat1 ()
++ in ((*#line 1150.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)SOME pat(*#line 3947.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 77, ( result, AS1left, pat1right), rest671)
++end
++|  ( 276, ( ( _, ( MlyValue.tynode tynode1, (tynodeleft as tynode1left), (tynoderight as tynode1right))) :: rest671)) => let val  result = MlyValue.ty (fn _ => let val  (tynode as tynode1) = tynode1 ()
++ in ((*#line 1156.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.makeRegion' (tynode, tynodeleft, tynoderight)(*#line 3953.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 136, ( result, tynode1left, tynode1right), rest671)
++end
++|  ( 277, ( ( _, ( MlyValue.tuple_ty tuple_ty1, tuple_ty1left, tuple_ty1right)) :: rest671)) => let val  result = MlyValue.tynode (fn _ => let val  (tuple_ty as tuple_ty1) = tuple_ty1 ()
++ in ((*#line 1158.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.tuple (Vector.fromList tuple_ty)(*#line 3959.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 143, ( result, tuple_ty1left, tuple_ty1right), rest671)
++end
++|  ( 278, ( ( _, ( MlyValue.ty ty2, _, ty2right)) :: _ :: ( _, ( MlyValue.ty ty1, ty1left, _)) :: rest671)) => let val  result = MlyValue.tynode (fn _ => let val  ty1 = ty1 ()
++ val  ty2 = ty2 ()
++ in ((*#line 1159.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.arrow (ty1, ty2)(*#line 3965.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 143, ( result, ty1left, ty2right), rest671)
++end
++|  ( 279, ( ( _, ( MlyValue.ty'node ty'node1, ty'node1left, ty'node1right)) :: rest671)) => let val  result = MlyValue.tynode (fn _ => let val  (ty'node as ty'node1) = ty'node1 ()
++ in ((*#line 1160.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)ty'node(*#line 3972.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 143, ( result, ty'node1left, ty'node1right), rest671)
++end
++|  ( 280, ( ( _, ( MlyValue.ty'node ty'node1, (ty'nodeleft as ty'node1left), (ty'noderight as ty'node1right))) :: rest671)) => let val  result = MlyValue.ty' (fn _ => let val  (ty'node as ty'node1) = ty'node1 ()
++ in ((*#line 1162.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.makeRegion' (ty'node, ty'nodeleft, ty'noderight)(*#line 3978.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 137, ( result, ty'node1left, ty'node1right), rest671)
++end
++|  ( 281, ( ( _, ( MlyValue.tyvar tyvar1, tyvar1left, tyvar1right)) :: rest671)) => let val  result = MlyValue.ty'node (fn _ => let val  (tyvar as tyvar1) = tyvar1 ()
++ in ((*#line 1164.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.Var tyvar(*#line 3984.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 138, ( result, tyvar1left, tyvar1right), rest671)
++end
++|  ( 282, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.tlabels tlabels1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.ty'node (fn _ => let val  (tlabels as tlabels1) = tlabels1 ()
++ in ((*#line 1166.12 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.Record (Srecord.fromVector (Vector.fromList tlabels))(*#line 3990.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 138, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 283, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.ty'node (fn _ => ((*#line 1167.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.unit(*#line 3996.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 138, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 284, ( ( _, ( MlyValue.longtycon longtycon1, _, longtycon1right)) :: _ :: ( _, ( MlyValue.ty0_pc ty0_pc1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.ty'node (fn _ => let val  (ty0_pc as ty0_pc1) = ty0_pc1 ()
++ val  (longtycon as longtycon1) = longtycon1 ()
++ in ((*#line 1168.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.Con (longtycon,
++                                                     Vector.fromList ty0_pc)(*#line 4000.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 138, ( result, LPAREN1left, longtycon1right), rest671)
++end
++|  ( 285, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.ty ty1, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let val  result = MlyValue.ty'node (fn _ => let val  (ty as ty1) = ty1 ()
++ in ((*#line 1170.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.node ty(*#line 4008.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 138, ( result, LPAREN1left, RPAREN1right), rest671)
++end
++|  ( 286, ( ( _, ( MlyValue.longtycon longtycon1, _, longtycon1right)) :: ( _, ( MlyValue.ty' ty'1, ty'1left, _)) :: rest671)) => let val  result = MlyValue.ty'node (fn _ => let val  (ty' as ty'1) = ty'1 ()
++ val  (longtycon as longtycon1) = longtycon1 ()
++ in ((*#line 1171.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.Con (longtycon,
++                                                     Vector.new1 ty')(*#line 4014.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 138, ( result, ty'1left, longtycon1right), rest671)
++end
++|  ( 287, ( ( _, ( MlyValue.longtycon longtycon1, longtycon1left, longtycon1right)) :: rest671)) => let val  result = MlyValue.ty'node (fn _ => let val  (longtycon as longtycon1) = longtycon1 ()
++ in ((*#line 1173.44 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Type.Con (longtycon,
++                                                     Vector.new0 ())(*#line 4022.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 138, ( result, longtycon1left, longtycon1right), rest671)
++end
++|  ( 288, ( ( _, ( MlyValue.ty ty1, _, ty1right)) :: _ :: ( _, ( MlyValue.field field1, field1left, _)) :: rest671)) => let val  result = MlyValue.tlabel (fn _ => let val  (field as field1) = field1 ()
++ val  (ty as ty1) = ty1 ()
++ in ((*#line 1176.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)field, ty(*#line 4029.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 130, ( result, field1left, ty1right), rest671)
++end
++|  ( 289, ( ( _, ( MlyValue.tlabels tlabels1, _, tlabels1right)) :: _ :: ( _, ( MlyValue.tlabel tlabel1, tlabel1left, _)) :: rest671)) => let val  result = MlyValue.tlabels (fn _ => let val  (tlabel as tlabel1) = tlabel1 ()
++ val  (tlabels as tlabels1) = tlabels1 ()
++ in ((*#line 1178.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)tlabel :: tlabels(*#line 4036.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 131, ( result, tlabel1left, tlabels1right), rest671)
++end
++|  ( 290, ( ( _, ( MlyValue.tlabel tlabel1, tlabel1left, tlabel1right)) :: rest671)) => let val  result = MlyValue.tlabels (fn _ => let val  (tlabel as tlabel1) = tlabel1 ()
++ in ((*#line 1179.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[tlabel](*#line 4043.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 131, ( result, tlabel1left, tlabel1right), rest671)
++end
++|  ( 291, ( ( _, ( MlyValue.tuple_ty tuple_ty1, _, tuple_ty1right)) :: _ :: ( _, ( MlyValue.ty' ty'1, ty'1left, _)) :: rest671)) => let val  result = MlyValue.tuple_ty (fn _ => let val  (ty' as ty'1) = ty'1 ()
++ val  (tuple_ty as tuple_ty1) = tuple_ty1 ()
++ in ((*#line 1181.42 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)ty' :: tuple_ty(*#line 4049.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 135, ( result, ty'1left, tuple_ty1right), rest671)
++end
++|  ( 292, ( ( _, ( MlyValue.ty' ty'2, _, ty'2right)) :: _ :: ( _, ( MlyValue.ty' ty'1, ty'1left, _)) :: rest671)) => let val  result = MlyValue.tuple_ty (fn _ => let val  ty'1 = ty'1 ()
++ val  ty'2 = ty'2 ()
++ in ((*#line 1182.42 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[ty'1, ty'2](*#line 4056.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 135, ( result, ty'1left, ty'2right), rest671)
++end
++|  ( 293, ( ( _, ( MlyValue.ty ty2, _, ty2right)) :: _ :: ( _, ( MlyValue.ty ty1, ty1left, _)) :: rest671)) => let val  result = MlyValue.ty0_pc (fn _ => let val  ty1 = ty1 ()
++ val  ty2 = ty2 ()
++ in ((*#line 1184.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[ty1, ty2](*#line 4063.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 139, ( result, ty1left, ty2right), rest671)
++end
++|  ( 294, ( ( _, ( MlyValue.ty0_pc ty0_pc1, _, ty0_pc1right)) :: _ :: ( _, ( MlyValue.ty ty1, ty1left, _)) :: rest671)) => let val  result = MlyValue.ty0_pc (fn _ => let val  (ty as ty1) = ty1 ()
++ val  (ty0_pc as ty0_pc1) = ty0_pc1 ()
++ in ((*#line 1185.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)ty :: ty0_pc(*#line 4070.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 139, ( result, ty1left, ty0_pc1right), rest671)
++end
++|  ( 295, ( ( _, ( MlyValue.const const1, const1left, const1right)) :: rest671)) => let val  result = MlyValue.constOrBool (fn _ => let val  (const as const1) = const1 ()
++ in ((*#line 1192.13 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)const(*#line 4077.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 20, ( result, const1left, const1right), rest671)
++end
++|  ( 296, ( ( _, ( MlyValue.id id1, (idleft as id1left), (idright as id1right))) :: rest671)) => let val  result = MlyValue.constOrBool (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1193.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++            fun ok b = Const.makeRegion (Const.Bool b, reg (idleft, idright))
++         in            
++            case Symbol.toString (#1 id) of
++               "false" => ok false
++             | "true" => ok true
++             | s => (error (#2 id, concat ["unknown boolean constant: ", s])
++                     ; ok false)
++         end(*#line 4083.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 20, ( result, id1left, id1right), rest671)
++end
++|  ( 297, ( ( _, ( MlyValue.const' const'1, (const'left as const'1left), (const'right as const'1right))) :: rest671)) => let val  result = MlyValue.const (fn _ => let val  (const' as const'1) = const'1 ()
++ in ((*#line 1203.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Const.makeRegion
++                                 (const', reg (const'left, const'right))(*#line 4097.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 15, ( result, const'1left, const'1right), rest671)
++end
++|  ( 298, ( ( _, ( MlyValue.int int1, int1left, int1right)) :: rest671)) => let val  result = MlyValue.const' (fn _ => let val  (int as int1) = int1 ()
++ in ((*#line 1206.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Const.Int int(*#line 4104.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, int1left, int1right), rest671)
++end
++|  ( 299, ( ( _, ( MlyValue.word word1, word1left, word1right)) :: rest671)) => let val  result = MlyValue.const' (fn _ => let val  (word as word1) = word1 ()
++ in ((*#line 1207.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Const.Word word(*#line 4110.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, word1left, word1right), rest671)
++end
++|  ( 300, ( ( _, ( MlyValue.REAL REAL1, REAL1left, REAL1right)) :: rest671)) => let val  result = MlyValue.const' (fn _ => let val  (REAL as REAL1) = REAL1 ()
++ in ((*#line 1208.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Const.Real REAL(*#line 4116.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, REAL1left, REAL1right), rest671)
++end
++|  ( 301, ( ( _, ( MlyValue.STRING STRING1, STRING1left, STRING1right)) :: rest671)) => let val  result = MlyValue.const' (fn _ => let val  (STRING as STRING1) = STRING1 ()
++ in ((*#line 1209.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Const.String STRING(*#line 4122.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, STRING1left, STRING1right), rest671)
++end
++|  ( 302, ( ( _, ( MlyValue.CHAR CHAR1, CHAR1left, CHAR1right)) :: rest671)) => let val  result = MlyValue.const' (fn _ => let val  (CHAR as CHAR1) = CHAR1 ()
++ in ((*#line 1210.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Const.Char CHAR(*#line 4128.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, CHAR1left, CHAR1right), rest671)
++end
++|  ( 303, ( ( _, ( MlyValue.STRING STRING1, STRING1left, STRING1right)) :: rest671)) => let val  result = MlyValue.string (fn _ => let val  (STRING as STRING1) = STRING1 ()
++ in ((*#line 1212.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)CharVector.tabulate
++                  (Vector.length STRING, fn i =>
++                   Char.fromInt (Int.fromIntInf (Vector.sub (STRING, i))))(*#line 4134.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 128, ( result, STRING1left, STRING1right), rest671)
++end
++|  ( 304, ( ( _, ( MlyValue.longidNoAsterisk longidNoAsterisk1, longidNoAsterisk1left, longidNoAsterisk1right)) :: rest671)) => let val  result = MlyValue.idNoAsterisk (fn _ => let val  (longidNoAsterisk as longidNoAsterisk1) = longidNoAsterisk1 ()
++ in ((*#line 1216.34 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)ensureNonqualified longidNoAsterisk(*#line 4142.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 62, ( result, longidNoAsterisk1left, longidNoAsterisk1right), rest671)
++end
++|  ( 305, ( ( _, ( MlyValue.idNoAsterisk idNoAsterisk1, idNoAsterisk1left, idNoAsterisk1right)) :: rest671)) => let val  result = MlyValue.id (fn _ => let val  (idNoAsterisk as idNoAsterisk1) = idNoAsterisk1 ()
++ in ((*#line 1218.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)idNoAsterisk(*#line 4148.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 60, ( result, idNoAsterisk1left, idNoAsterisk1right), rest671)
++end
++|  ( 306, ( ( _, ( _, (ASTERISKleft as ASTERISK1left), (ASTERISKright as ASTERISK1right))) :: rest671)) => let val  result = MlyValue.id (fn _ => ((*#line 1219.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(Symbol.asterisk, reg (ASTERISKleft, ASTERISKright))(*#line 4154.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 60, ( result, ASTERISK1left, ASTERISK1right), rest671)
++end
++|  ( 307, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.idEqual (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1221.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)id(*#line 4158.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 61, ( result, id1left, id1right), rest671)
++end
++|  ( 308, ( ( _, ( _, (EQUALOPleft as EQUALOP1left), (EQUALOPright as EQUALOP1right))) :: rest671)) => let val  result = MlyValue.idEqual (fn _ => ((*#line 1222.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)(Symbol.equal, reg (EQUALOPleft, EQUALOPright))(*#line 4164.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 61, ( result, EQUALOP1left, EQUALOP1right), rest671)
++end
++|  ( 309, ( ( _, ( MlyValue.longidNoAsterisk longidNoAsterisk1, longidNoAsterisk1left, longidNoAsterisk1right)) :: rest671)) => let val  result = MlyValue.longid (fn _ => let val  (longidNoAsterisk as longidNoAsterisk1) = longidNoAsterisk1 ()
++ in ((*#line 1225.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)longidNoAsterisk(*#line 4168.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 65, ( result, longidNoAsterisk1left, longidNoAsterisk1right), rest671)
++end
++|  ( 310, ( ( _, ( _, (ASTERISKleft as ASTERISK1left), (ASTERISKright as ASTERISK1right))) :: rest671)) => let val  result = MlyValue.longid (fn _ => ((*#line 1226.17 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([Symbol.asterisk], reg (ASTERISKleft, ASTERISKright))(*#line 4174.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 65, ( result, ASTERISK1left, ASTERISK1right), rest671)
++end
++|  ( 311, ( ( _, ( MlyValue.LONGID LONGID1, (LONGIDleft as LONGID1left), (LONGIDright as LONGID1right))) :: rest671)) => let val  result = MlyValue.longidNoAsterisk (fn _ => let val  (LONGID as LONGID1) = LONGID1 ()
++ in ((*#line 1230.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++         val syms = List.map (String.split (LONGID, #"."), Symbol.fromString)
++      in
++         (syms, reg (LONGIDleft, LONGIDright))
++      end(*#line 4178.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 67, ( result, LONGID1left, LONGID1right), rest671)
++end
++|  ( 312, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right)) :: rest671)) => let val  result = MlyValue.longidEqual (fn _ => let val  (longid as longid1) = longid1 ()
++ in ((*#line 1236.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)longid(*#line 4188.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 66, ( result, longid1left, longid1right), rest671)
++end
++|  ( 313, ( ( _, ( _, (EQUALOPleft as EQUALOP1left), (EQUALOPright as EQUALOP1right))) :: rest671)) => let val  result = MlyValue.longidEqual (fn _ => ((*#line 1237.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)([Symbol.equal], reg (EQUALOPleft, EQUALOPright))(*#line 4194.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++))
++ in ( LrTable.NT 66, ( result, EQUALOP1left, EQUALOP1right), rest671)
++end
++|  ( 314, ( ( _, ( MlyValue.idEqual idEqual1, idEqual1left, idEqual1right)) :: rest671)) => let val  result = MlyValue.vid (fn _ => let val  (idEqual as idEqual1) = idEqual1 ()
++ in ((*#line 1239.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Vid.fromSymbol idEqual(*#line 4198.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 159, ( result, idEqual1left, idEqual1right), rest671)
++end
++|  ( 315, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.vidNoEqual (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1240.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Vid.fromSymbol id(*#line 4204.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 160, ( result, id1left, id1right), rest671)
++end
++|  ( 316, ( ( _, ( MlyValue.vid vid1, vid1left, vid1right)) :: rest671)) => let val  result = MlyValue.vids (fn _ => let val  (vid as vid1) = vid1 ()
++ in ((*#line 1241.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[vid](*#line 4210.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 161, ( result, vid1left, vid1right), rest671)
++end
++|  ( 317, ( ( _, ( MlyValue.vids vids1, _, vids1right)) :: ( _, ( MlyValue.vid vid1, vid1left, _)) :: rest671)) => let val  result = MlyValue.vids (fn _ => let val  (vid as vid1) = vid1 ()
++ val  (vids as vids1) = vids1 ()
++ in ((*#line 1242.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)vid::vids(*#line 4216.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 161, ( result, vid1left, vids1right), rest671)
++end
++|  ( 318, ( ( _, ( MlyValue.idEqual idEqual1, idEqual1left, idEqual1right)) :: rest671)) => let val  result = MlyValue.var (fn _ => let val  (idEqual as idEqual1) = idEqual1 ()
++ in ((*#line 1243.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Var.fromSymbol idEqual(*#line 4223.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 158, ( result, idEqual1left, idEqual1right), rest671)
++end
++|  ( 319, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.con (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1244.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Con.fromSymbol id(*#line 4229.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 14, ( result, id1left, id1right), rest671)
++end
++|  ( 320, ( ( _, ( MlyValue.idNoAsterisk idNoAsterisk1, idNoAsterisk1left, idNoAsterisk1right)) :: rest671)) => let val  result = MlyValue.tycon (fn _ => let val  (idNoAsterisk as idNoAsterisk1) = idNoAsterisk1 ()
++ in ((*#line 1245.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Tycon.fromSymbol idNoAsterisk(*#line 4235.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 142, ( result, idNoAsterisk1left, idNoAsterisk1right), rest671)
++end
++|  ( 321, ( ( _, ( MlyValue.TYVAR TYVAR1, (TYVARleft as TYVAR1left), (TYVARright as TYVAR1right))) :: rest671)) => let val  result = MlyValue.tyvar (fn _ => let val  (TYVAR as TYVAR1) = TYVAR1 ()
++ in ((*#line 1246.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Tyvar.newString (TYVAR, {left = TYVARleft,
++                                                         right = TYVARright})(*#line 4241.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 149, ( result, TYVAR1left, TYVAR1right), rest671)
++end
++|  ( 322, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.field (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1248.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Field.Symbol (#1 id)(*#line 4248.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 52, ( result, id1left, id1right), rest671)
++end
++|  ( 323, ( ( _, ( MlyValue.int int1, (intleft as int1left), (intright as int1right))) :: rest671)) => let val  result = MlyValue.field (fn _ => let val  (int as int1) = int1 ()
++ in ((*#line 1249.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)let
++                                   val int =
++                                      IntInf.toInt int
++                                      handle Exn.Overflow =>
++                                         (error (reg (intleft, intright),
++                                                 "field too huge")
++                                          ; 0)
++                                in
++                                   Field.Int
++                                   (if int <= 0
++                                       then (error (reg (intleft, intright),
++                                                    "nonpositive field")
++                                             ; ~1)
++                                    else
++                                       int - 1)
++                                end(*#line 4254.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 52, ( result, int1left, int1right), rest671)
++end
++|  ( 324, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.strid (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1266.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Strid.fromSymbol id(*#line 4275.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 127, ( result, id1left, id1right), rest671)
++end
++|  ( 325, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.sigid (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1267.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Sigid.fromSymbol id(*#line 4281.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 105, ( result, id1left, id1right), rest671)
++end
++|  ( 326, ( ( _, ( MlyValue.sigid sigid1, sigid1left, sigid1right)) :: rest671)) => let val  result = MlyValue.sigids (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ in ((*#line 1268.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[sigid](*#line 4287.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 106, ( result, sigid1left, sigid1right), rest671)
++end
++|  ( 327, ( ( _, ( MlyValue.sigids sigids1, _, sigids1right)) :: ( _, ( MlyValue.sigid sigid1, sigid1left, _)) :: rest671)) => let val  result = MlyValue.sigids (fn _ => let val  (sigid as sigid1) = sigid1 ()
++ val  (sigids as sigids1) = sigids1 ()
++ in ((*#line 1269.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)sigid :: sigids(*#line 4293.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 106, ( result, sigid1left, sigids1right), rest671)
++end
++|  ( 328, ( ( _, ( MlyValue.id id1, id1left, id1right)) :: rest671)) => let val  result = MlyValue.fctid (fn _ => let val  (id as id1) = id1 ()
++ in ((*#line 1270.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Fctid.fromSymbol id(*#line 4300.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 51, ( result, id1left, id1right), rest671)
++end
++|  ( 329, ( ( _, ( MlyValue.longidNoAsterisk longidNoAsterisk1, longidNoAsterisk1left, longidNoAsterisk1right)) :: rest671)) => let val  result = MlyValue.longtycon (fn _ => let val  (longidNoAsterisk as longidNoAsterisk1) = longidNoAsterisk1 ()
++ in ((*#line 1272.31 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Longtycon.fromSymbols longidNoAsterisk(*#line 4306.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 71, ( result, longidNoAsterisk1left, longidNoAsterisk1right), rest671)
++end
++|  ( 330, ( ( _, ( MlyValue.longidEqual longidEqual1, longidEqual1left, longidEqual1right)) :: rest671)) => let val  result = MlyValue.longvid (fn _ => let val  (longidEqual as longidEqual1) = longidEqual1 ()
++ in ((*#line 1273.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Longvid.fromSymbols longidEqual(*#line 4312.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 74, ( result, longidEqual1left, longidEqual1right), rest671)
++end
++|  ( 331, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right)) :: rest671)) => let val  result = MlyValue.longvidNoEqual (fn _ => let val  (longid as longid1) = longid1 ()
++ in ((*#line 1274.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Longvid.fromSymbols longid(*#line 4318.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 75, ( result, longid1left, longid1right), rest671)
++end
++|  ( 332, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right)) :: rest671)) => let val  result = MlyValue.longcon (fn _ => let val  (longid as longid1) = longid1 ()
++ in ((*#line 1275.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Longcon.fromSymbols longid(*#line 4324.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 64, ( result, longid1left, longid1right), rest671)
++end
++|  ( 333, ( ( _, ( MlyValue.longid longid1, longid1left, longid1right)) :: rest671)) => let val  result = MlyValue.longstrid (fn _ => let val  (longid as longid1) = longid1 ()
++ in ((*#line 1276.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)Longstrid.fromSymbols longid(*#line 4330.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 68, ( result, longid1left, longid1right), rest671)
++end
++|  ( 334, ( ( _, ( MlyValue.longstrid longstrid1, longstrid1left, longstrid1right)) :: rest671)) => let val  result = MlyValue.longstrids (fn _ => let val  (longstrid as longstrid1) = longstrid1 ()
++ in ((*#line 1278.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)[longstrid](*#line 4336.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 70, ( result, longstrid1left, longstrid1right), rest671)
++end
++|  ( 335, ( ( _, ( MlyValue.longstrids longstrids1, _, longstrids1right)) :: ( _, ( MlyValue.longstrid longstrid1, longstrid1left, _)) :: rest671)) => let val  result = MlyValue.longstrids (fn _ => let val  (longstrid as longstrid1) = longstrid1 ()
++ val  (longstrids as longstrids1) = longstrids1 ()
++ in ((*#line 1279.37 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm"*)longstrid :: longstrids(*#line 4342.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 70, ( result, longstrid1left, longstrids1right), rest671)
++end
++| _ => raise (mlyAction i392)
++end
++val void = MlyValue.VOID
++val extract = fn a => (fn MlyValue.program x => x
++| _ => let exception ParseInternal
++	in raise ParseInternal end) a ()
++end
++end
++structure Tokens : ML_TOKENS =
++struct
++type svalue = ParserData.svalue
++type ('a,'b) token = ('a,'b) Token.token
++fun CHAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(ParserData.MlyValue.CHAR (fn () => i),p1,p2))
++fun INT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(ParserData.MlyValue.INT (fn () => i),p1,p2))
++fun LONGID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(ParserData.MlyValue.LONGID (fn () => i),p1,p2))
++fun REAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(ParserData.MlyValue.REAL (fn () => i),p1,p2))
++fun STRING (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(ParserData.MlyValue.STRING (fn () => i),p1,p2))
++fun TYVAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(ParserData.MlyValue.TYVAR (fn () => i),p1,p2))
++fun WORD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(ParserData.MlyValue.WORD (fn () => i),p1,p2))
++fun ABSTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(ParserData.MlyValue.VOID,p1,p2))
++fun AND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(ParserData.MlyValue.VOID,p1,p2))
++fun ANDALSO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(ParserData.MlyValue.VOID,p1,p2))
++fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(ParserData.MlyValue.VOID,p1,p2))
++fun AS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(ParserData.MlyValue.VOID,p1,p2))
++fun ASTERISK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(ParserData.MlyValue.VOID,p1,p2))
++fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(ParserData.MlyValue.VOID,p1,p2))
++fun CASE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(ParserData.MlyValue.VOID,p1,p2))
++fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(ParserData.MlyValue.VOID,p1,p2))
++fun COLONGT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(ParserData.MlyValue.VOID,p1,p2))
++fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(ParserData.MlyValue.VOID,p1,p2))
++fun DATATYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(ParserData.MlyValue.VOID,p1,p2))
++fun DOTDOTDOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(ParserData.MlyValue.VOID,p1,p2))
++fun ELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(ParserData.MlyValue.VOID,p1,p2))
++fun END (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(ParserData.MlyValue.VOID,p1,p2))
++fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(ParserData.MlyValue.VOID,p1,p2))
++fun EQUALOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(ParserData.MlyValue.VOID,p1,p2))
++fun EQTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(ParserData.MlyValue.VOID,p1,p2))
++fun EXCEPTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(ParserData.MlyValue.VOID,p1,p2))
++fun DO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(ParserData.MlyValue.VOID,p1,p2))
++fun DARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(ParserData.MlyValue.VOID,p1,p2))
++fun FN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(ParserData.MlyValue.VOID,p1,p2))
++fun FUN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(ParserData.MlyValue.VOID,p1,p2))
++fun FUNCTOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(ParserData.MlyValue.VOID,p1,p2))
++fun HANDLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(ParserData.MlyValue.VOID,p1,p2))
++fun HASH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(ParserData.MlyValue.VOID,p1,p2))
++fun IF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(ParserData.MlyValue.VOID,p1,p2))
++fun IN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(ParserData.MlyValue.VOID,p1,p2))
++fun INCLUDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(ParserData.MlyValue.VOID,p1,p2))
++fun INFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(ParserData.MlyValue.VOID,p1,p2))
++fun INFIXR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(ParserData.MlyValue.VOID,p1,p2))
++fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(ParserData.MlyValue.VOID,p1,p2))
++fun LBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(ParserData.MlyValue.VOID,p1,p2))
++fun LET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(ParserData.MlyValue.VOID,p1,p2))
++fun LOCAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(ParserData.MlyValue.VOID,p1,p2))
++fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,(ParserData.MlyValue.VOID,p1,p2))
++fun NONFIX (p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,(ParserData.MlyValue.VOID,p1,p2))
++fun ORELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,(ParserData.MlyValue.VOID,p1,p2))
++fun OF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,(ParserData.MlyValue.VOID,p1,p2))
++fun OP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,(ParserData.MlyValue.VOID,p1,p2))
++fun OPEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,(ParserData.MlyValue.VOID,p1,p2))
++fun OVERLOAD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,(ParserData.MlyValue.VOID,p1,p2))
++fun RAISE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,(ParserData.MlyValue.VOID,p1,p2))
++fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,(ParserData.MlyValue.VOID,p1,p2))
++fun RBRACKET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,(ParserData.MlyValue.VOID,p1,p2))
++fun REC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,(ParserData.MlyValue.VOID,p1,p2))
++fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,(ParserData.MlyValue.VOID,p1,p2))
++fun SEMICOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,(ParserData.MlyValue.VOID,p1,p2))
++fun SHARING (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,(ParserData.MlyValue.VOID,p1,p2))
++fun SIG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,(ParserData.MlyValue.VOID,p1,p2))
++fun SIGNATURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,(ParserData.MlyValue.VOID,p1,p2))
++fun STRUCT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,(ParserData.MlyValue.VOID,p1,p2))
++fun STRUCTURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,(ParserData.MlyValue.VOID,p1,p2))
++fun THEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,(ParserData.MlyValue.VOID,p1,p2))
++fun TYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,(ParserData.MlyValue.VOID,p1,p2))
++fun VAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,(ParserData.MlyValue.VOID,p1,p2))
++fun WHERE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,(ParserData.MlyValue.VOID,p1,p2))
++fun WHILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,(ParserData.MlyValue.VOID,p1,p2))
++fun WILD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,(ParserData.MlyValue.VOID,p1,p2))
++fun WITH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,(ParserData.MlyValue.VOID,p1,p2))
++fun WITHTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,(ParserData.MlyValue.VOID,p1,p2))
++fun BUILD_CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,(ParserData.MlyValue.VOID,p1,p2))
++fun COMMAND_LINE_CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 69,(ParserData.MlyValue.VOID,p1,p2))
++fun CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,(ParserData.MlyValue.VOID,p1,p2))
++fun ADDRESS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,(ParserData.MlyValue.VOID,p1,p2))
++fun EXPORT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,(ParserData.MlyValue.VOID,p1,p2))
++fun IMPORT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,(ParserData.MlyValue.VOID,p1,p2))
++fun SYMBOL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,(ParserData.MlyValue.VOID,p1,p2))
++fun PRIM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 75,(ParserData.MlyValue.VOID,p1,p2))
++end
++end
+diff -urN mlton-20100608~/mlton/front-end/ml.lex.sml mlton-20100608/mlton/front-end/ml.lex.sml
+--- mlton-20100608~/mlton/front-end/ml.lex.sml	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/front-end/ml.lex.sml	2013-04-22 09:58:07.996218162 -0400
+@@ -0,0 +1,5782 @@
++(*#line 117.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)functor MLLexFun (structure Tokens : ML_TOKENS)(*#line 1.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++=
++   struct
++    structure UserDeclarations =
++      struct
++(*#line 1.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)(* Heavily modified from the SML/NJ sources by sweeks at sweeks.com. *)
++
++(* ml.lex
++ *
++ * Copyright 1989 by AT&T Bell Laboratories
++ *
++ * $Log: ml.lex,v $
++ * Revision 1.3  1997/05/22  20:17:22  jhr
++ * Changed lexer to accept "1e1" style floating-point literals.
++ *
++ * Revision 1.2  1997/01/28  23:20:40  jhr
++ * Integer and word literals are now represented by IntInf.int (instead of
++ * as strings).
++ *
++ *)
++
++type svalue = Tokens.svalue
++type pos = SourcePos.t
++type lexresult = (svalue, pos) Tokens.token
++type lexarg = {source: Source.t}
++type arg = lexarg
++type ('a,'b) token = ('a,'b) Tokens.token
++
++val charlist: IntInf.t list ref = ref []
++val colNum: int ref = ref 0
++val commentLevel: int ref = ref 0
++val commentStart = ref SourcePos.bogus
++val lineFile: File.t ref = ref ""
++val lineNum: int ref = ref 0
++val stringStart = ref SourcePos.bogus
++val stringtype = ref false
++
++fun lineDirective (source, file, yypos) =
++   Source.lineDirective (source, file,
++                         {lineNum = !lineNum,
++                          lineStart = yypos - !colNum})
++
++fun addString (s: string) =
++   charlist :=
++   String.fold (s, !charlist, fn (c, ac) => Int.toIntInf (Char.ord c) :: ac)
++
++fun addChar (c: char) = addString (String.fromChar c)
++
++fun inc (ri as ref (i: int)) = ri := i + 1
++
++fun dec (ri as ref (i: int)) = ri := i - 1
++
++fun error (source, left, right, msg) = 
++   Control.errorStr (Region.make {left = Source.getPos (source, left),
++                                  right = Source.getPos (source, right)},
++                     msg)
++
++fun stringError (source, right, msg) =
++   Control.errorStr (Region.make {left = !stringStart,
++                                  right = Source.getPos (source, right)},
++                     msg)
++
++fun addOrd (i: IntInf.t): unit = List.push (charlist, i)
++
++fun addHexEscape (s: string, source, yypos): unit =
++   case StringCvt.scanString (Pervasive.IntInf.scan StringCvt.HEX) s of
++      NONE => stringError (source, yypos, "illegal unicode escape")
++    | SOME i => addOrd i
++
++val eof: lexarg -> lexresult =
++   fn {source, ...} =>
++   let
++      val pos = Source.lineStart source
++      val _ =
++         if !commentLevel > 0
++            then Control.errorStr (Region.make {left = !commentStart,
++                                                right = pos},
++                                   "unclosed comment")
++         else ()
++   in
++      Tokens.EOF (pos, pos)
++   end
++
++val size = String.size
++
++fun tok (t, s, l, r) =
++   let
++      val l = Source.getPos (s, l)
++      val r = Source.getPos (s, r)
++      val _ =
++         if true
++            then ()
++         else
++            print (concat ["tok (",
++                           SourcePos.toString l,
++                           ", " ,
++                           SourcePos.toString r,
++                           ")\n"])
++   in
++      t (l, r)
++   end
++
++fun tok' (t, x, s, l) = tok (fn (l, r) => t (x, l, r), s, l, l + size x)
++
++fun int (yytext, drop, source, yypos, {negate: bool}, radix) =
++   Tokens.INT ({digits = String.dropPrefix (yytext, drop),
++                negate = negate,
++                radix = radix},
++               Source.getPos (source, yypos),
++               Source.getPos (source, yypos + size yytext))
++
++fun word (yytext, drop, source, yypos, radix) =
++   Tokens.WORD ({digits = String.dropPrefix (yytext, drop),
++                 radix = radix},
++                Source.getPos (source, yypos),
++                Source.getPos (source, yypos + size yytext))
++
++
++(*#line 119.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++end (* end of user routines *)
++exception LexError (* raised if illegal leaf action tried *)
++structure Internal =
++	struct
++
++datatype yyfinstate = N of int
++type statedata = {fin : yyfinstate list, trans: int Vector.vector}
++(* transition & final state table *)
++val tab = let
++fun decode s k =
++  let val k' = k + k
++      val hi = Char.ord(String.sub(s, k'))
++      val lo = Char.ord(String.sub(s, k' + 1))
++  in hi * 256 + lo end
++val s = [ 
++ (0,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (1,129, 
++"\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\
++\\000\017\001\041\001\044\000\017\001\041\001\043\000\017\000\017\
++\\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\
++\\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\
++\\001\041\000\190\001\040\001\038\000\190\000\190\000\190\001\036\
++\\001\028\001\027\000\190\000\190\001\026\001\024\001\021\000\190\
++\\001\014\001\012\001\012\001\012\001\012\001\012\001\012\001\012\
++\\001\012\001\012\001\010\001\009\000\190\001\007\000\190\000\190\
++\\000\190\000\038\000\038\000\038\000\038\000\038\000\038\000\038\
++\\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\
++\\000\038\000\038\000\038\000\038\000\038\000\038\000\038\000\038\
++\\000\038\000\038\000\038\001\006\000\190\001\005\000\190\000\191\
++\\000\190\000\176\000\038\000\172\000\163\000\144\000\136\000\038\
++\\000\130\000\118\000\038\000\038\000\111\000\038\000\105\000\095\
++\\000\038\000\038\000\088\000\065\000\058\000\038\000\055\000\040\
++\\000\038\000\038\000\038\000\037\000\036\000\035\000\018\000\017\
++\\000\017"
++),
++ (3,129, 
++"\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\050\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\048\001\045\001\046\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045\001\045\001\045\001\045\001\045\001\045\001\045\001\045\
++\\001\045"
++),
++ (5,129, 
++"\001\051\001\051\001\051\001\051\001\051\001\051\001\051\001\051\
++\\001\051\001\051\001\088\001\051\001\051\001\087\001\051\001\051\
++\\001\051\001\051\001\051\001\051\001\051\001\051\001\051\001\051\
++\\001\051\001\051\001\051\001\051\001\051\001\051\001\051\001\051\
++\\001\052\001\052\001\086\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\053\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\052\
++\\001\052\001\052\001\052\001\052\001\052\001\052\001\052\001\051\
++\\001\051"
++),
++ (7,129, 
++"\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\091\001\094\001\089\001\091\001\093\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\091\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\090\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089\001\089\001\089\001\089\001\089\001\089\001\089\001\089\
++\\001\089"
++),
++ (9,129, 
++"\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\000\000\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\098\001\095\001\095\001\095\001\095\001\095\
++\\001\096\001\096\001\096\001\096\001\096\001\096\001\096\001\096\
++\\001\096\001\096\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095"
++),
++ (11,129, 
++"\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\000\000\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\103\001\100\
++\\001\101\001\101\001\101\001\101\001\101\001\101\001\101\001\101\
++\\001\101\001\101\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100\001\100\001\100\001\100\001\100\001\100\001\100\001\100\
++\\001\100"
++),
++ (13,129, 
++"\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\107\000\000\001\095\001\107\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\107\001\095\001\106\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\104\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095\001\095\001\095\001\095\001\095\001\095\001\095\001\095\
++\\001\095"
++),
++ (15,129, 
++"\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\111\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\114\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\112\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110\001\110\001\110\001\110\001\110\001\110\001\110\001\110\
++\\001\110"
++),
++ (18,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\
++\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\
++\\000\032\000\023\000\023\000\023\000\023\000\023\000\023\000\023\
++\\000\023\000\023\000\019\000\000\000\019\000\019\000\019\000\019\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\000"
++),
++ (19,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\
++\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\019\000\000\000\019\000\019\000\019\000\019\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\000"
++),
++ (20,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\021\000\000\000\021\000\021\000\021\000\021\000\000\
++\\000\000\000\000\000\021\000\021\000\000\000\021\000\000\000\021\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\021\000\000\000\021\000\021\000\021\000\021\
++\\000\021\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\000\000\021\000\000\000\021\000\000\
++\\000\021\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\000\000\021\000\000\000\021\000\000\
++\\000\000"
++),
++ (21,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\021\000\000\000\021\000\021\000\021\000\021\000\000\
++\\000\000\000\000\000\021\000\021\000\000\000\021\000\020\000\021\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\021\000\000\000\021\000\021\000\021\000\021\
++\\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\021\000\000\000\021\000\000\
++\\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\021\000\000\000\021\000\000\
++\\000\000"
++),
++ (22,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\000\000\000\000\000\000\000\000\022\
++\\000\000\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\
++\\000\022\000\022\000\022\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (23,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\
++\\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\
++\\000\023\000\023\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (24,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\
++\\000\026\000\026\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\025\000\000\
++\\000\000"
++),
++ (25,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\
++\\000\026\000\026\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (27,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\
++\\000\028\000\028\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (28,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\
++\\000\028\000\028\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\029\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\029\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (29,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\
++\\000\031\000\031\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\030\000\000\
++\\000\000"
++),
++ (30,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\031\000\031\000\031\000\031\000\031\000\031\000\031\000\031\
++\\000\031\000\031\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (32,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\
++\\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\
++\\000\023\000\023\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (33,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\034\000\034\000\034\000\034\000\034\000\034\000\034\000\034\
++\\000\034\000\034\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\034\000\034\000\034\000\034\000\034\000\034\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\034\000\034\000\034\000\034\000\034\000\034\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (38,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (40,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\048\000\041\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (41,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\042\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (42,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\043\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (43,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\044\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (44,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\045\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (45,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\046\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (46,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\047\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (48,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\052\000\039\000\039\
++\\000\039\000\049\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (49,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\050\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (50,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\051\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (52,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\053\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (53,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\054\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (55,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\056\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (56,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\057\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (58,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\062\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\059\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (59,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\060\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (60,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\061\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (62,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\063\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (63,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\064\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (65,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\082\000\074\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\066\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (66,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\067\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (67,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\068\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (68,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\069\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (69,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\070\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (70,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\071\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (71,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\072\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (72,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\073\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (74,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\075\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (75,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\076\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (76,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\077\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (77,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\078\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (78,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\079\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (79,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\080\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (80,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\081\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (82,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\083\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (83,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\084\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (84,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\085\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (85,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\086\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (86,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\087\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (88,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\091\000\039\000\039\000\039\000\089\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (89,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\090\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (91,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\092\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (92,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\093\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (93,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\094\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (95,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\104\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\101\000\039\000\096\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (96,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\097\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (97,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\098\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (98,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\099\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (99,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\100\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (101,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\102\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (102,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\103\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (105,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\106\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (106,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\107\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (107,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\108\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (108,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\109\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (109,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\110\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (111,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\116\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\112\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (112,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\113\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (113,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\114\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (114,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\115\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (116,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\117\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (118,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\129\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\119\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (119,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\124\000\039\000\039\000\120\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (120,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\121\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (121,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\122\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (122,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\123\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (124,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\125\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (125,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\126\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (126,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\127\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (127,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\128\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (130,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\131\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (131,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\132\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (132,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\133\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (133,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\134\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (134,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\135\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (136,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\143\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\137\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (137,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\138\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (138,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\139\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (139,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\140\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (140,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\141\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (141,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\142\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (144,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\160\000\039\000\158\000\039\
++\\000\039\000\153\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\145\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (145,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\146\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (146,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\147\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (147,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\148\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (148,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\149\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (149,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\150\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (150,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\151\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (151,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\152\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (153,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\154\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (154,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\155\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (155,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\156\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (156,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\157\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (158,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\159\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (160,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\161\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (161,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\162\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (163,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\165\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\164\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (165,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\166\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (166,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\167\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (167,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\168\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (168,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\169\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (169,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\170\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (170,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\171\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (172,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\173\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (173,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\174\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (174,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\175\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (176,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\184\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\178\000\039\
++\\000\039\000\039\000\039\000\177\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (178,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\179\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (179,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\180\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (180,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\181\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (181,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\182\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (182,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\183\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (184,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\185\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (185,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\186\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (186,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\187\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (187,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\188\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (188,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\039\
++\\000\000\000\039\000\039\000\039\000\039\000\189\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\039\000\039\000\039\000\039\000\039\
++\\000\039\000\039\000\039\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (191,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\254\000\243\000\222\000\000\000\216\000\000\000\000\
++\\000\000\000\210\000\000\000\000\000\000\000\000\000\000\000\202\
++\\000\198\000\000\000\000\000\192\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (192,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (193,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\194\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (194,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\195\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (195,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (196,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (198,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\199\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (199,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (200,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (202,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\203\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (203,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\204\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (204,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\205\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (205,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (206,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\207\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (207,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\208\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (208,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (210,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\211\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (211,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (212,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (213,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\214\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (214,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\215\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (216,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (217,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (218,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\219\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (219,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\220\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (220,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\221\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (222,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (223,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\227\000\224\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (224,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\225\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (225,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\226\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (227,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\228\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (228,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\229\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (229,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\230\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (230,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\231\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (231,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\232\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (232,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (233,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\234\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (234,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\235\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (235,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\236\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (236,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\237\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (237,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\238\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (238,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (239,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (240,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\241\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (241,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (243,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (244,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (245,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (246,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\247\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (247,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (248,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (249,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\250\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (250,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\251\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (251,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\252\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (252,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (254,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\255\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (255,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (256,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\001\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (257,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (258,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\001\003\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (259,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\001\004\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (263,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\
++\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\019\000\000\000\019\000\019\001\008\000\019\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\000"
++),
++ (266,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\
++\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\019\000\000\000\019\000\019\001\011\000\019\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\000"
++),
++ (268,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\
++\\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\
++\\001\013\001\013\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (270,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\
++\\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\
++\\001\013\001\013\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\
++\\001\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (271,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\
++\\001\016\001\016\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\016\001\016\001\016\001\016\001\016\001\016\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\016\001\016\001\016\001\016\001\016\001\016\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (273,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\020\001\020\001\020\001\020\001\020\001\020\001\020\001\020\
++\\001\020\001\020\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (274,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\019\001\019\001\019\001\019\001\019\001\019\001\019\001\019\
++\\001\019\001\019\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\019\001\019\001\019\001\019\001\019\001\019\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\019\001\019\001\019\001\019\001\019\001\019\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (276,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\020\001\020\001\020\001\020\001\020\001\020\001\020\001\020\
++\\001\020\001\020\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (277,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\001\022\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (278,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (280,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\019\000\000\000\019\000\019\000\019\000\019\000\000\
++\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\019\000\000\000\019\000\019\001\025\000\019\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\000"
++),
++ (284,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (285,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\001\030\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (286,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\001\031\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (287,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\032\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (288,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\001\033\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (289,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\001\034\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (290,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\035\000\000\000\000\001\035\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\035\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (292,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\037\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\
++\\001\037\001\037\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\037\001\037\001\037\001\037\001\037\001\037\001\037\
++\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\
++\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\
++\\001\037\001\037\001\037\000\000\000\000\000\000\000\000\001\037\
++\\000\000\001\037\001\037\001\037\001\037\001\037\001\037\001\037\
++\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\
++\\001\037\001\037\001\037\001\037\001\037\001\037\001\037\001\037\
++\\001\037\001\037\001\037\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (294,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\019\001\039\000\019\000\019\000\019\000\019\000\000\
++\\000\000\000\000\000\019\000\019\000\000\000\019\000\020\000\019\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\019\000\000\000\019\000\019\000\019\000\019\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\019\000\000\000\019\000\000\
++\\000\000"
++),
++ (297,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\042\000\000\000\000\001\042\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\042\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (299,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\044\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (302,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\047\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (304,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\049\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (309,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\083\001\085\000\000\001\083\001\084\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\083\000\000\001\082\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\079\001\079\001\079\001\079\001\079\001\079\001\079\001\079\
++\\001\079\001\079\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\001\070\000\000\000\000\
++\\000\000\000\000\000\000\000\000\001\069\000\000\001\066\000\000\
++\\000\000\001\065\001\064\000\000\000\000\000\000\001\063\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\001\062\000\000\
++\\000\000\000\000\001\061\000\000\001\060\001\055\001\054\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (311,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\056\001\056\001\056\001\056\001\056\001\056\001\056\001\056\
++\\001\056\001\056\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\056\001\056\001\056\001\056\001\056\001\056\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\056\001\056\001\056\001\056\001\056\001\056\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (312,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\057\001\057\001\057\001\057\001\057\001\057\001\057\001\057\
++\\001\057\001\057\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\057\001\057\001\057\001\057\001\057\001\057\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\057\001\057\001\057\001\057\001\057\001\057\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (313,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\058\001\058\001\058\001\058\001\058\001\058\001\058\001\058\
++\\001\058\001\058\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\058\001\058\001\058\001\058\001\058\001\058\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\058\001\058\001\058\001\058\001\058\001\058\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (314,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\059\001\059\001\059\001\059\001\059\001\059\001\059\001\059\
++\\001\059\001\059\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\059\001\059\001\059\001\059\001\059\001\059\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\059\001\059\001\059\001\059\001\059\001\059\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (322,129, 
++"\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\000\000\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\
++\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\
++\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\
++\\001\068\001\068\001\068\001\068\001\068\001\068\001\068\001\068\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067\001\067\001\067\001\067\001\067\001\067\001\067\001\067\
++\\001\067"
++),
++ (326,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\071\001\071\001\071\001\071\001\071\001\071\001\071\001\071\
++\\001\071\001\071\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\071\001\071\001\071\001\071\001\071\001\071\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\071\001\071\001\071\001\071\001\071\001\071\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (327,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\072\001\072\001\072\001\072\001\072\001\072\001\072\001\072\
++\\001\072\001\072\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\072\001\072\001\072\001\072\001\072\001\072\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\072\001\072\001\072\001\072\001\072\001\072\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (328,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\073\001\073\001\073\001\073\001\073\001\073\001\073\001\073\
++\\001\073\001\073\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\073\001\073\001\073\001\073\001\073\001\073\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\073\001\073\001\073\001\073\001\073\001\073\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (329,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\074\001\074\001\074\001\074\001\074\001\074\001\074\001\074\
++\\001\074\001\074\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\074\001\074\001\074\001\074\001\074\001\074\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\074\001\074\001\074\001\074\001\074\001\074\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (330,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\075\001\075\001\075\001\075\001\075\001\075\001\075\001\075\
++\\001\075\001\075\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\075\001\075\001\075\001\075\001\075\001\075\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\075\001\075\001\075\001\075\001\075\001\075\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (331,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\076\001\076\001\076\001\076\001\076\001\076\001\076\001\076\
++\\001\076\001\076\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\076\001\076\001\076\001\076\001\076\001\076\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\076\001\076\001\076\001\076\001\076\001\076\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (332,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\077\001\077\001\077\001\077\001\077\001\077\001\077\001\077\
++\\001\077\001\077\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\077\001\077\001\077\001\077\001\077\001\077\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\077\001\077\001\077\001\077\001\077\001\077\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (333,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\078\001\078\001\078\001\078\001\078\001\078\001\078\001\078\
++\\001\078\001\078\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\078\001\078\001\078\001\078\001\078\001\078\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\078\001\078\001\078\001\078\001\078\001\078\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (335,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\080\001\080\001\080\001\080\001\080\001\080\001\080\001\080\
++\\001\080\001\080\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (336,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\081\001\081\001\081\001\081\001\081\001\081\001\081\001\081\
++\\001\081\001\081\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (339,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\083\000\000\000\000\001\083\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\083\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (340,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\085\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (343,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\088\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (347,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\092\000\000\000\000\001\092\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\092\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (349,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\094\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (352,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\097\001\097\001\097\001\097\001\097\001\097\001\097\001\097\
++\\001\097\001\097\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (354,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\099\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (357,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\102\001\102\001\102\001\102\001\102\001\102\001\102\001\102\
++\\001\102\001\102\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (360,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\105\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (363,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\109\000\000\000\000\001\109\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\001\109\000\000\001\108\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (366,129, 
++"\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\000\000\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111"
++),
++ (368,129, 
++"\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\000\000\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\113\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111\001\111\001\111\001\111\001\111\001\111\001\111\001\111\
++\\001\111"
++),
++ (370,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\001\115\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++ (371,129, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\001\116\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000"
++),
++(0, 0, "")]
++fun f(n, i, x) = (n, Vector.tabulate(i, decode x)) 
++val s = map f (rev (tl (rev s))) 
++exception LexHackingError 
++fun look ((j,x)::r, i: int) = if i = j then x else look(r, i) 
++  | look ([], i) = raise LexHackingError
++fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} 
++in Vector.fromList(map g 
++[{fin = [], trans = 0},
++{fin = [(N 2)], trans = 1},
++{fin = [(N 2)], trans = 1},
++{fin = [], trans = 3},
++{fin = [], trans = 3},
++{fin = [], trans = 5},
++{fin = [], trans = 5},
++{fin = [(N 592)], trans = 7},
++{fin = [(N 592)], trans = 7},
++{fin = [], trans = 9},
++{fin = [], trans = 9},
++{fin = [], trans = 11},
++{fin = [], trans = 11},
++{fin = [], trans = 13},
++{fin = [], trans = 13},
++{fin = [(N 481)], trans = 15},
++{fin = [(N 481)], trans = 15},
++{fin = [(N 462)], trans = 0},
++{fin = [(N 391),(N 462)], trans = 18},
++{fin = [(N 391)], trans = 19},
++{fin = [], trans = 20},
++{fin = [(N 391)], trans = 21},
++{fin = [(N 391)], trans = 22},
++{fin = [(N 418)], trans = 23},
++{fin = [], trans = 24},
++{fin = [], trans = 25},
++{fin = [(N 411)], trans = 25},
++{fin = [], trans = 27},
++{fin = [(N 411)], trans = 28},
++{fin = [], trans = 29},
++{fin = [], trans = 30},
++{fin = [(N 411)], trans = 30},
++{fin = [(N 418)], trans = 32},
++{fin = [], trans = 33},
++{fin = [(N 429)], trans = 33},
++{fin = [(N 104),(N 462)], trans = 0},
++{fin = [(N 120),(N 391),(N 462)], trans = 19},
++{fin = [(N 102),(N 462)], trans = 0},
++{fin = [(N 391),(N 462)], trans = 38},
++{fin = [(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 40},
++{fin = [(N 391)], trans = 41},
++{fin = [(N 391)], trans = 42},
++{fin = [(N 350),(N 391)], trans = 43},
++{fin = [(N 391)], trans = 44},
++{fin = [(N 391)], trans = 45},
++{fin = [(N 391)], trans = 46},
++{fin = [(N 359),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 48},
++{fin = [(N 391)], trans = 49},
++{fin = [(N 391)], trans = 50},
++{fin = [(N 345),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 52},
++{fin = [(N 391)], trans = 53},
++{fin = [(N 339),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 55},
++{fin = [(N 391)], trans = 56},
++{fin = [(N 333),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 58},
++{fin = [(N 391)], trans = 59},
++{fin = [(N 391)], trans = 60},
++{fin = [(N 329),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 62},
++{fin = [(N 391)], trans = 63},
++{fin = [(N 324),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 65},
++{fin = [(N 391)], trans = 66},
++{fin = [(N 391)], trans = 67},
++{fin = [(N 391)], trans = 68},
++{fin = [(N 391)], trans = 69},
++{fin = [(N 309),(N 391)], trans = 70},
++{fin = [(N 391)], trans = 71},
++{fin = [(N 391)], trans = 72},
++{fin = [(N 319),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 74},
++{fin = [(N 292),(N 391)], trans = 75},
++{fin = [(N 391)], trans = 76},
++{fin = [(N 391)], trans = 77},
++{fin = [(N 391)], trans = 78},
++{fin = [(N 391)], trans = 79},
++{fin = [(N 391)], trans = 80},
++{fin = [(N 302),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 82},
++{fin = [(N 391)], trans = 83},
++{fin = [(N 391)], trans = 84},
++{fin = [(N 391)], trans = 85},
++{fin = [(N 391)], trans = 86},
++{fin = [(N 288),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 88},
++{fin = [(N 391)], trans = 89},
++{fin = [(N 280),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 91},
++{fin = [(N 391)], trans = 92},
++{fin = [(N 391)], trans = 93},
++{fin = [(N 276),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 95},
++{fin = [(N 391)], trans = 96},
++{fin = [(N 391)], trans = 97},
++{fin = [(N 391)], trans = 98},
++{fin = [(N 391)], trans = 99},
++{fin = [(N 366),(N 391)], trans = 38},
++{fin = [(N 265),(N 391)], trans = 101},
++{fin = [(N 391)], trans = 102},
++{fin = [(N 270),(N 391)], trans = 38},
++{fin = [(N 262),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 105},
++{fin = [(N 391)], trans = 106},
++{fin = [(N 391)], trans = 107},
++{fin = [(N 391)], trans = 108},
++{fin = [(N 391)], trans = 109},
++{fin = [(N 259),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 111},
++{fin = [(N 391)], trans = 112},
++{fin = [(N 391)], trans = 113},
++{fin = [(N 391)], trans = 114},
++{fin = [(N 252),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 116},
++{fin = [(N 246),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 118},
++{fin = [(N 221),(N 391)], trans = 119},
++{fin = [(N 391)], trans = 120},
++{fin = [(N 391)], trans = 121},
++{fin = [(N 235),(N 391)], trans = 122},
++{fin = [(N 242),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 124},
++{fin = [(N 391)], trans = 125},
++{fin = [(N 391)], trans = 126},
++{fin = [(N 391)], trans = 127},
++{fin = [(N 229),(N 391)], trans = 38},
++{fin = [(N 218),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 130},
++{fin = [(N 391)], trans = 131},
++{fin = [(N 391)], trans = 132},
++{fin = [(N 391)], trans = 133},
++{fin = [(N 391)], trans = 134},
++{fin = [(N 215),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 136},
++{fin = [(N 391)], trans = 137},
++{fin = [(N 200),(N 391)], trans = 138},
++{fin = [(N 391)], trans = 139},
++{fin = [(N 391)], trans = 140},
++{fin = [(N 391)], trans = 141},
++{fin = [(N 208),(N 391)], trans = 38},
++{fin = [(N 196),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 144},
++{fin = [(N 391)], trans = 145},
++{fin = [(N 391)], trans = 146},
++{fin = [(N 391)], trans = 147},
++{fin = [(N 391)], trans = 148},
++{fin = [(N 391)], trans = 149},
++{fin = [(N 391)], trans = 150},
++{fin = [(N 391)], trans = 151},
++{fin = [(N 190),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 153},
++{fin = [(N 391)], trans = 154},
++{fin = [(N 391)], trans = 155},
++{fin = [(N 391)], trans = 156},
++{fin = [(N 180),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 158},
++{fin = [(N 173),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 160},
++{fin = [(N 391)], trans = 161},
++{fin = [(N 169),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 163},
++{fin = [(N 193),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 165},
++{fin = [(N 391)], trans = 166},
++{fin = [(N 391)], trans = 167},
++{fin = [(N 391)], trans = 168},
++{fin = [(N 391)], trans = 169},
++{fin = [(N 391)], trans = 170},
++{fin = [(N 164),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 172},
++{fin = [(N 391)], trans = 173},
++{fin = [(N 391)], trans = 174},
++{fin = [(N 155),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 176},
++{fin = [(N 150),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 178},
++{fin = [(N 139),(N 391)], trans = 179},
++{fin = [(N 391)], trans = 180},
++{fin = [(N 391)], trans = 181},
++{fin = [(N 391)], trans = 182},
++{fin = [(N 374),(N 391)], trans = 38},
++{fin = [(N 391)], trans = 184},
++{fin = [(N 391)], trans = 185},
++{fin = [(N 391)], trans = 186},
++{fin = [(N 391)], trans = 187},
++{fin = [(N 391)], trans = 188},
++{fin = [(N 147),(N 391)], trans = 38},
++{fin = [(N 391),(N 462)], trans = 19},
++{fin = [(N 98),(N 462)], trans = 191},
++{fin = [], trans = 192},
++{fin = [], trans = 193},
++{fin = [], trans = 194},
++{fin = [], trans = 195},
++{fin = [], trans = 196},
++{fin = [(N 90)], trans = 0},
++{fin = [], trans = 198},
++{fin = [], trans = 199},
++{fin = [], trans = 200},
++{fin = [(N 96)], trans = 0},
++{fin = [], trans = 202},
++{fin = [], trans = 203},
++{fin = [], trans = 204},
++{fin = [], trans = 205},
++{fin = [], trans = 206},
++{fin = [], trans = 207},
++{fin = [], trans = 208},
++{fin = [(N 82)], trans = 0},
++{fin = [], trans = 210},
++{fin = [], trans = 211},
++{fin = [], trans = 212},
++{fin = [], trans = 213},
++{fin = [], trans = 214},
++{fin = [(N 72)], trans = 0},
++{fin = [], trans = 216},
++{fin = [], trans = 217},
++{fin = [], trans = 218},
++{fin = [], trans = 219},
++{fin = [], trans = 220},
++{fin = [(N 64)], trans = 0},
++{fin = [], trans = 222},
++{fin = [], trans = 223},
++{fin = [], trans = 224},
++{fin = [], trans = 225},
++{fin = [(N 56)], trans = 0},
++{fin = [], trans = 227},
++{fin = [], trans = 228},
++{fin = [], trans = 229},
++{fin = [], trans = 230},
++{fin = [], trans = 231},
++{fin = [], trans = 232},
++{fin = [], trans = 233},
++{fin = [], trans = 234},
++{fin = [], trans = 235},
++{fin = [], trans = 236},
++{fin = [], trans = 237},
++{fin = [], trans = 238},
++{fin = [], trans = 239},
++{fin = [], trans = 240},
++{fin = [], trans = 241},
++{fin = [(N 49)], trans = 0},
++{fin = [], trans = 243},
++{fin = [], trans = 244},
++{fin = [], trans = 245},
++{fin = [], trans = 246},
++{fin = [], trans = 247},
++{fin = [], trans = 248},
++{fin = [], trans = 249},
++{fin = [], trans = 250},
++{fin = [], trans = 251},
++{fin = [], trans = 252},
++{fin = [(N 29)], trans = 0},
++{fin = [], trans = 254},
++{fin = [], trans = 255},
++{fin = [], trans = 256},
++{fin = [], trans = 257},
++{fin = [], trans = 258},
++{fin = [], trans = 259},
++{fin = [(N 16)], trans = 0},
++{fin = [(N 108),(N 462)], trans = 0},
++{fin = [(N 106),(N 462)], trans = 0},
++{fin = [(N 127),(N 391),(N 462)], trans = 263},
++{fin = [(N 135),(N 391)], trans = 19},
++{fin = [(N 110),(N 462)], trans = 0},
++{fin = [(N 122),(N 391),(N 462)], trans = 266},
++{fin = [(N 125),(N 391)], trans = 19},
++{fin = [(N 414),(N 462)], trans = 268},
++{fin = [(N 414)], trans = 268},
++{fin = [(N 414),(N 462)], trans = 270},
++{fin = [], trans = 271},
++{fin = [(N 423)], trans = 271},
++{fin = [], trans = 273},
++{fin = [], trans = 274},
++{fin = [(N 440)], trans = 274},
++{fin = [(N 434)], trans = 276},
++{fin = [(N 462)], trans = 277},
++{fin = [], trans = 278},
++{fin = [(N 118)], trans = 0},
++{fin = [(N 391),(N 462)], trans = 280},
++{fin = [(N 132),(N 391)], trans = 19},
++{fin = [(N 100),(N 462)], trans = 0},
++{fin = [(N 114),(N 462)], trans = 0},
++{fin = [(N 112),(N 462)], trans = 284},
++{fin = [(N 460)], trans = 285},
++{fin = [], trans = 286},
++{fin = [], trans = 287},
++{fin = [], trans = 288},
++{fin = [], trans = 289},
++{fin = [], trans = 290},
++{fin = [(N 457)], trans = 290},
++{fin = [(N 377),(N 462)], trans = 292},
++{fin = [(N 377)], trans = 292},
++{fin = [(N 129),(N 391),(N 462)], trans = 294},
++{fin = [(N 445)], trans = 0},
++{fin = [(N 442),(N 462)], trans = 0},
++{fin = [(N 2),(N 462)], trans = 297},
++{fin = [(N 2)], trans = 297},
++{fin = [(N 7),(N 462)], trans = 299},
++{fin = [(N 7)], trans = 0},
++{fin = [(N 500)], trans = 0},
++{fin = [(N 500)], trans = 302},
++{fin = [(N 498)], trans = 0},
++{fin = [(N 500)], trans = 304},
++{fin = [(N 493)], trans = 0},
++{fin = [(N 495)], trans = 0},
++{fin = [(N 584)], trans = 0},
++{fin = [(N 582),(N 584)], trans = 0},
++{fin = [(N 574),(N 582),(N 584)], trans = 309},
++{fin = [(N 523)], trans = 0},
++{fin = [], trans = 311},
++{fin = [], trans = 312},
++{fin = [], trans = 313},
++{fin = [], trans = 314},
++{fin = [(N 543)], trans = 0},
++{fin = [(N 520)], trans = 0},
++{fin = [(N 517)], trans = 0},
++{fin = [(N 514)], trans = 0},
++{fin = [(N 511)], trans = 0},
++{fin = [(N 508)], trans = 0},
++{fin = [(N 505)], trans = 0},
++{fin = [], trans = 322},
++{fin = [(N 531)], trans = 0},
++{fin = [(N 527),(N 531)], trans = 0},
++{fin = [(N 560)], trans = 0},
++{fin = [], trans = 326},
++{fin = [], trans = 327},
++{fin = [], trans = 328},
++{fin = [], trans = 329},
++{fin = [], trans = 330},
++{fin = [], trans = 331},
++{fin = [], trans = 332},
++{fin = [], trans = 333},
++{fin = [(N 554)], trans = 0},
++{fin = [], trans = 335},
++{fin = [], trans = 336},
++{fin = [(N 536)], trans = 0},
++{fin = [(N 557)], trans = 0},
++{fin = [(N 566)], trans = 339},
++{fin = [(N 572)], trans = 340},
++{fin = [(N 572)], trans = 0},
++{fin = [(N 502),(N 582),(N 584)], trans = 0},
++{fin = [(N 579),(N 584)], trans = 343},
++{fin = [(N 579)], trans = 0},
++{fin = [(N 596)], trans = 0},
++{fin = [(N 594),(N 596)], trans = 0},
++{fin = [(N 592),(N 596)], trans = 347},
++{fin = [(N 592)], trans = 347},
++{fin = [(N 589),(N 596)], trans = 349},
++{fin = [(N 589)], trans = 0},
++{fin = [(N 490)], trans = 0},
++{fin = [(N 465),(N 490)], trans = 352},
++{fin = [(N 465)], trans = 352},
++{fin = [(N 490)], trans = 354},
++{fin = [(N 488)], trans = 0},
++{fin = [(N 472)], trans = 0},
++{fin = [(N 470),(N 472)], trans = 357},
++{fin = [(N 470)], trans = 357},
++{fin = [(N 467),(N 472)], trans = 0},
++{fin = [(N 490)], trans = 360},
++{fin = [(N 475),(N 488)], trans = 0},
++{fin = [(N 479),(N 490)], trans = 0},
++{fin = [(N 490)], trans = 363},
++{fin = [(N 479)], trans = 0},
++{fin = [], trans = 363},
++{fin = [(N 481),(N 490)], trans = 366},
++{fin = [(N 481)], trans = 366},
++{fin = [(N 481),(N 490)], trans = 368},
++{fin = [(N 481),(N 488)], trans = 366},
++{fin = [(N 490)], trans = 370},
++{fin = [], trans = 371},
++{fin = [(N 485)], trans = 0}])
++end
++structure StartStates =
++	struct
++	datatype yystartstate = STARTSTATE of int
++
++(* start state definitions *)
++
++val A = STARTSTATE 3;
++val F = STARTSTATE 7;
++val INITIAL = STARTSTATE 1;
++val L = STARTSTATE 9;
++val LL = STARTSTATE 11;
++val LLC = STARTSTATE 13;
++val LLCQ = STARTSTATE 15;
++val S = STARTSTATE 5;
++
++end
++type result = UserDeclarations.lexresult
++	exception LexerError (* raised if illegal leaf action tried *)
++end
++
++structure YYPosInt : INTEGER = Int
++fun makeLexer yyinput =
++let	val yygone0= YYPosInt.fromInt ~1
++	val yyb = ref "\n" 		(* buffer *)
++	val yybl = ref 1		(*buffer length *)
++	val yybufpos = ref 1		(* location of next character to use *)
++	val yygone = ref yygone0	(* position in file of beginning of buffer *)
++	val yydone = ref false		(* eof found yet? *)
++	val yybegin = ref 1		(*Current 'start state' for lexer *)
++
++	val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
++		 yybegin := x
++
++fun lex (yyarg as ((*#line 118.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*){source}(*#line 5414.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)) =
++let fun continue() : Internal.result = 
++  let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0) =
++	let fun action (i,nil) = raise LexError
++	| action (i,nil::l) = action (i-1,l)
++	| action (i,(node::acts)::l) =
++		case node of
++		    Internal.N yyk => 
++			(let fun yymktext() = substring(!yyb,i0,i-i0)
++			     val yypos = YYPosInt.+(YYPosInt.fromInt i0, !yygone)
++			fun REJECT() = action(i,acts::l)
++			open UserDeclarations Internal.StartStates
++ in (yybufpos := i; case yyk of 
++
++			(* Application actions *)
++
++  100 => ((*#line 159.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.COMMA, source, yypos, yypos + 1)(*#line 5431.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 102 => ((*#line 160.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.LBRACE, source, yypos, yypos + 1)(*#line 5433.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 104 => ((*#line 161.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.RBRACE, source, yypos, yypos + 1)(*#line 5435.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 106 => ((*#line 162.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.LBRACKET, source, yypos, yypos + 1)(*#line 5437.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 108 => ((*#line 163.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.RBRACKET, source, yypos, yypos + 1)(*#line 5439.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 110 => ((*#line 164.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.SEMICOLON, source, yypos, yypos + 1)(*#line 5441.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 112 => ((*#line 165.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.LPAREN, source, yypos, yypos + 1)(*#line 5443.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 114 => ((*#line 166.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.RPAREN, source, yypos, yypos + 1)(*#line 5445.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 118 => ((*#line 167.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.DOTDOTDOT, source, yypos, yypos + 3)(*#line 5447.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 120 => ((*#line 168.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.BAR, source, yypos, yypos + 1)(*#line 5449.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 122 => ((*#line 169.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.COLON, source, yypos, yypos + 1)(*#line 5451.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 125 => ((*#line 170.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.COLONGT, source, yypos, yypos + 1)(*#line 5453.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 127 => ((*#line 171.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.EQUALOP, source, yypos, yypos + 1)(*#line 5455.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 129 => ((*#line 172.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.HASH, source, yypos, yypos + 1)(*#line 5457.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 132 => ((*#line 173.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.ARROW, source, yypos, yypos + 2)(*#line 5459.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 135 => ((*#line 174.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.DARROW, source, yypos, yypos + 2)(*#line 5461.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 139 => ((*#line 175.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.AND, source, yypos, yypos + 3)(*#line 5463.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 147 => ((*#line 176.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.ABSTYPE, source, yypos, yypos + 7)(*#line 5465.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 150 => ((*#line 177.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.AS, source, yypos, yypos + 2)(*#line 5467.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 155 => ((*#line 178.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.CASE, source, yypos, yypos + 4)(*#line 5469.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 16 => let val yytext=yymktext() in (*#line 141.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.ADDRESS, source, yypos, yypos + size yytext)(*#line 5471.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 164 => ((*#line 179.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.DATATYPE, source, yypos, yypos + 8)(*#line 5473.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 169 => ((*#line 180.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.ELSE, source, yypos, yypos + 4)(*#line 5475.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 173 => ((*#line 181.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.END, source, yypos, yypos + 3)(*#line 5477.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 180 => ((*#line 182.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.EQTYPE, source, yypos, yypos + 6)(*#line 5479.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 190 => ((*#line 183.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.EXCEPTION, source, yypos, yypos + 9)(*#line 5481.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 193 => ((*#line 184.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.DO, source, yypos, yypos + 2)(*#line 5483.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 196 => ((*#line 185.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.FN, source, yypos, yypos + 2)(*#line 5485.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 2 => ((*#line 138.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)continue ()(*#line 5487.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 200 => ((*#line 186.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.FUN, source, yypos, yypos + 3)(*#line 5489.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 208 => ((*#line 187.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.FUNCTOR, source, yypos, yypos + 7)(*#line 5491.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 215 => ((*#line 188.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.HANDLE, source, yypos, yypos + 6)(*#line 5493.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 218 => ((*#line 189.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.IF, source, yypos, yypos + 2)(*#line 5495.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 221 => ((*#line 190.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.IN, source, yypos, yypos + 2)(*#line 5497.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 229 => ((*#line 191.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.INCLUDE, source, yypos, yypos + 7)(*#line 5499.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 235 => ((*#line 192.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.INFIX, source, yypos, yypos + 5)(*#line 5501.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 242 => ((*#line 193.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.INFIXR, source, yypos, yypos + 6)(*#line 5503.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 246 => ((*#line 194.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.LET, source, yypos, yypos + 3)(*#line 5505.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 252 => ((*#line 195.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.LOCAL, source, yypos, yypos + 5)(*#line 5507.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 259 => ((*#line 196.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.NONFIX, source, yypos, yypos + 6)(*#line 5509.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 262 => ((*#line 197.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.OF, source, yypos, yypos + 2)(*#line 5511.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 265 => ((*#line 198.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.OP, source, yypos, yypos + 2)(*#line 5513.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 270 => ((*#line 199.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.OPEN, source, yypos, yypos + 4)(*#line 5515.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 276 => ((*#line 200.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.RAISE, source, yypos, yypos + 5)(*#line 5517.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 280 => ((*#line 201.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.REC, source, yypos, yypos + 3)(*#line 5519.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 288 => ((*#line 202.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.SHARING, source, yypos, yypos + 7)(*#line 5521.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 29 => let val yytext=yymktext() in (*#line 143.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.BUILD_CONST, source, yypos, yypos + size yytext)(*#line 5523.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 292 => ((*#line 203.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.SIG, source, yypos, yypos + 3)(*#line 5525.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 302 => ((*#line 204.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.SIGNATURE, source, yypos, yypos + 9)(*#line 5527.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 309 => ((*#line 205.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.STRUCT, source, yypos, yypos + 6)(*#line 5529.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 319 => ((*#line 206.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.STRUCTURE, source, yypos, yypos + 9)(*#line 5531.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 324 => ((*#line 207.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.THEN, source, yypos, yypos + 4)(*#line 5533.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 329 => ((*#line 208.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.TYPE, source, yypos, yypos + 4)(*#line 5535.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 333 => ((*#line 209.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.VAL, source, yypos, yypos + 3)(*#line 5537.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 339 => ((*#line 210.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.WHERE, source, yypos, yypos + 5)(*#line 5539.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 345 => ((*#line 211.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.WHILE, source, yypos, yypos + 5)(*#line 5541.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 350 => ((*#line 212.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.WITH, source, yypos, yypos + 4)(*#line 5543.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 359 => ((*#line 213.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.WITHTYPE, source, yypos, yypos + 8)(*#line 5545.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 366 => ((*#line 214.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.ORELSE, source, yypos, yypos + 6)(*#line 5547.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 374 => ((*#line 215.24 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.ANDALSO, source, yypos, yypos + 7)(*#line 5549.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 377 => let val yytext=yymktext() in (*#line 216.29 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok' (Tokens.TYVAR, yytext, source, yypos)(*#line 5551.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 391 => let val yytext=yymktext() in (*#line 218.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)case yytext of
++       "*" => tok (Tokens.ASTERISK, source, yypos, yypos + 1)
++     | _ => tok' (Tokens.LONGID, yytext, source, yypos)(*#line 5555.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 411 => let val yytext=yymktext() in (*#line 221.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok' (Tokens.REAL, yytext, source, yypos)(*#line 5557.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 414 => let val yytext=yymktext() in (*#line 223.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)int (yytext, 0, source, yypos, {negate = false}, StringCvt.DEC)(*#line 5559.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 418 => let val yytext=yymktext() in (*#line 225.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)int (yytext, 1, source, yypos, {negate = true}, StringCvt.DEC)(*#line 5561.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 423 => let val yytext=yymktext() in (*#line 227.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)int (yytext, 2, source, yypos, {negate = false}, StringCvt.HEX)(*#line 5563.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 429 => let val yytext=yymktext() in (*#line 229.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)int (yytext, 3, source, yypos, {negate = true}, StringCvt.HEX)(*#line 5565.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 434 => let val yytext=yymktext() in (*#line 231.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)word (yytext, 2, source, yypos, StringCvt.DEC)(*#line 5567.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 440 => let val yytext=yymktext() in (*#line 233.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)word (yytext, 3, source, yypos, StringCvt.HEX)(*#line 5569.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 442 => ((*#line 234.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)charlist := []
++                    ; stringStart := Source.getPos (source, yypos)
++                    ; stringtype := true
++                    ; YYBEGIN S
++                    ; continue ()(*#line 5575.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 445 => ((*#line 239.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)charlist := []
++                    ; stringStart := Source.getPos (source, yypos)
++                    ; stringtype := false
++                    ; YYBEGIN S
++                    ; continue ()(*#line 5581.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 457 => ((*#line 245.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN L
++                    ; commentStart := Source.getPos (source, yypos)
++                    ; commentLevel := 1
++                    ; continue ()(*#line 5586.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 460 => ((*#line 249.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN A
++                    ; commentLevel := 1
++                    ; commentStart := Source.getPos (source, yypos)
++                    ; continue ()(*#line 5591.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 462 => ((*#line 253.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)error (source, yypos, yypos + 1, "illegal token") ;
++                    continue ()(*#line 5594.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 465 => let val yytext=yymktext() in (*#line 256.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN LL
++                    ; (lineNum := valOf (Int.fromString yytext)
++                       ; colNum := 1)
++                      handle Overflow => YYBEGIN A
++                    ; continue ()(*#line 5600.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 467 => ((*#line 261.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)(* cheat: take n > 0 dots *) continue ()(*#line 5602.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 470 => let val yytext=yymktext() in (*#line 262.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN LLC
++                    ; (colNum := valOf (Int.fromString yytext))
++                      handle Overflow => YYBEGIN A
++                    ; continue ()(*#line 5607.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 472 => ((*#line 266.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN LLC; continue ()
++                (* note hack, since ml-lex chokes on the empty string for 0* *)(*#line 5610.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 475 => ((*#line 268.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN INITIAL
++                    ; lineDirective (source, NONE, yypos + 2)
++                    ; commentLevel := 0; charlist := []; continue ()(*#line 5614.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 479 => ((*#line 271.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN LLCQ; continue ()(*#line 5616.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 481 => let val yytext=yymktext() in (*#line 272.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)lineFile := yytext; continue ()(*#line 5618.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 485 => ((*#line 273.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN INITIAL
++                    ; lineDirective (source, SOME (!lineFile), yypos + 3)
++                    ; commentLevel := 0; charlist := []; continue ()(*#line 5622.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 488 => ((*#line 276.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN INITIAL; commentLevel := 0; charlist := []; continue ()(*#line 5624.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 49 => let val yytext=yymktext() in (*#line 145.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.COMMAND_LINE_CONST, source, yypos, yypos + size yytext)(*#line 5626.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 490 => ((*#line 277.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN A; continue ()(*#line 5628.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 493 => ((*#line 279.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)inc commentLevel; continue ()(*#line 5630.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 495 => ((*#line 280.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)Source.newline (source, yypos) ; continue ()(*#line 5632.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 498 => ((*#line 281.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)dec commentLevel
++                    ; if 0 = !commentLevel then YYBEGIN INITIAL else ()
++                    ; continue ()(*#line 5636.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 500 => ((*#line 284.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)continue ()(*#line 5638.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 502 => ((*#line 286.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)let
++                       val s = Vector.fromListRev (!charlist)
++                       val _ = charlist := nil
++                       fun make (t, v) =
++                          t (v, !stringStart, Source.getPos (source, yypos + 1))
++                       val () = YYBEGIN INITIAL
++                    in
++                       if !stringtype
++                          then make (Tokens.STRING, s)
++                       else
++                          make (Tokens.CHAR,
++                                if 1 <> Vector.length s
++                                   then (error
++                                         (source, yypos, yypos + 1,
++                                          "character constant not length 1")
++                                         ; 0)
++                                else Vector.sub (s, 0))
++                    end(*#line 5657.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 505 => ((*#line 304.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar #"\a"; continue ()(*#line 5659.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 508 => ((*#line 305.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar #"\b"; continue ()(*#line 5661.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 511 => ((*#line 306.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar #"\f"; continue ()(*#line 5663.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 514 => ((*#line 307.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar #"\n"; continue ()(*#line 5665.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 517 => ((*#line 308.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar #"\r"; continue ()(*#line 5667.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 520 => ((*#line 309.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar #"\t"; continue ()(*#line 5669.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 523 => ((*#line 310.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar #"\v"; continue ()(*#line 5671.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 527 => let val yytext=yymktext() in (*#line 311.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addChar (Char.chr(Char.ord(String.sub(yytext, 2))
++                                      -Char.ord #"@"));
++                    continue ()(*#line 5675.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 531 => ((*#line 315.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)error (source, yypos, yypos + 2,
++                "illegal control escape; must be one of @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_");
++        continue ()(*#line 5679.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 536 => let val yytext=yymktext() in (*#line 318.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)let
++                       fun c (i, scale) =
++                          scale * (Char.ord (String.sub (yytext, i))
++                                   - Char.ord #"0")
++                       val () = addOrd (IntInf.fromInt
++                                        (c (1, 100) + c (2, 10) + c (3, 1)))
++                    in
++                       continue ()
++                    end(*#line 5689.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 543 => let val yytext=yymktext() in (*#line 327.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addHexEscape (String.substring (yytext, 2, 4),
++                                      source, yypos)
++                        ; continue ()(*#line 5693.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 554 => let val yytext=yymktext() in (*#line 330.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addHexEscape (String.substring (yytext, 2, 8),
++                                      source, yypos)
++                        ; continue ()(*#line 5697.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 557 => ((*#line 333.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addString "\""; continue ()(*#line 5699.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 56 => let val yytext=yymktext() in (*#line 147.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.CONST, source, yypos, yypos + size yytext)(*#line 5701.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 560 => ((*#line 334.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addString "\\"; continue ()(*#line 5703.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 566 => ((*#line 335.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN F; continue ()(*#line 5705.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 572 => ((*#line 336.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)Source.newline (source, yypos + 1) ; YYBEGIN F ; continue ()(*#line 5707.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 574 => ((*#line 337.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)stringError (source, yypos, "illegal string escape")
++                    ; continue ()(*#line 5710.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 579 => ((*#line 339.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)Source.newline (source, yypos)
++                    ; stringError (source, yypos, "unclosed string")
++                    ; continue ()(*#line 5714.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 582 => let val yytext=yymktext() in (*#line 342.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)addString yytext; continue ()(*#line 5716.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 584 => ((*#line 343.11 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)stringError (source, yypos + 1, "illegal character in string")
++          ; continue ()(*#line 5719.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 589 => ((*#line 346.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)Source.newline (source, yypos) ; continue ()(*#line 5721.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 592 => ((*#line 347.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)continue ()(*#line 5723.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 594 => ((*#line 348.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)YYBEGIN S
++                    ; stringStart := Source.getPos (source, yypos)
++                    ; continue ()(*#line 5727.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 596 => ((*#line 351.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)stringError (source, yypos, "unclosed string")
++                    ; continue ()(*#line 5730.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 64 => let val yytext=yymktext() in (*#line 149.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.EXPORT, source, yypos, yypos + size yytext)(*#line 5732.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 7 => ((*#line 139.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)Source.newline (source, yypos); continue ()(*#line 5734.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| 72 => let val yytext=yymktext() in (*#line 151.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.IMPORT, source, yypos, yypos + size yytext)(*#line 5736.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 82 => let val yytext=yymktext() in (*#line 153.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.OVERLOAD, source, yypos, yypos + size yytext)(*#line 5738.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 90 => let val yytext=yymktext() in (*#line 155.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.SYMBOL, source, yypos, yypos + size yytext)(*#line 5740.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 96 => let val yytext=yymktext() in (*#line 157.5 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.PRIM, source, yypos, yypos + size yytext)(*#line 5742.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++ end
++| 98 => ((*#line 158.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex"*)tok (Tokens.WILD, source, yypos, yypos + 1)(*#line 5744.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlton/front-end/ml.lex.sml"*)
++)
++| _ => raise Internal.LexerError
++
++		) end )
++
++	val {fin,trans} = Vector.sub(Internal.tab, s)
++	val NewAcceptingLeaves = fin::AcceptingLeaves
++	in if l = !yybl then
++	     if trans = #trans(Vector.sub(Internal.tab,0))
++	       then action(l,NewAcceptingLeaves
++) else	    let val newchars= if !yydone then "" else yyinput 1024
++	    in if (size newchars)=0
++		  then (yydone := true;
++		        if (l=i0) then UserDeclarations.eof yyarg
++		                  else action(l,NewAcceptingLeaves))
++		  else (if i0=l then yyb := newchars
++		     else yyb := substring(!yyb,i0,l-i0)^newchars;
++		     yygone := YYPosInt.+(!yygone, YYPosInt.fromInt i0);
++		     yybl := size (!yyb);
++		     scan (s,AcceptingLeaves,l-i0,0))
++	    end
++	  else let val NewChar = Char.ord(CharVector.sub(!yyb,l))
++		val NewChar = if NewChar<128 then NewChar else 128
++		val NewState = Vector.sub(trans, NewChar)
++		in if NewState=0 then action(l,NewAcceptingLeaves)
++		else scan(NewState,NewAcceptingLeaves,l+1,i0)
++	end
++	end
++(*
++	val start= if substring(!yyb,!yybufpos-1,1)="\n"
++then !yybegin+1 else !yybegin
++*)
++	in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos)
++    end
++in continue end
++  in lex
++  end
++end
+diff -urN mlton-20100608~/mlton/mlton-polyml.use mlton-20100608/mlton/mlton-polyml.use
+--- mlton-20100608~/mlton/mlton-polyml.use	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlton/mlton-polyml.use	2013-04-22 09:58:08.359222826 -0400
+@@ -0,0 +1,613 @@
++use "../lib/stubs/basis-stubs-for-polyml/int.sml";
++use "../lib/stubs/basis-stubs-for-polyml/real.sml";
++use "../lib/stubs/basis-stubs-for-polyml/unsafe.sig";
++use "../lib/stubs/basis-stubs-for-polyml/unsafe.sml";
++use "../lib/stubs/basis-stubs-for-polyml/word.sml";
++use "../lib/mlyacc-lib/base.sig";
++use "../lib/mlyacc-lib/join.sml";
++use "../lib/mlyacc-lib/lrtable.sml";
++use "../lib/mlyacc-lib/stream.sml";
++use "../lib/mlyacc-lib/parser2.sml";
++use "../lib/stubs/mlton-stubs-for-polyml/mlton.sml";
++use "../lib/stubs/mlton-stubs/io.sig";
++use "../lib/stubs/mlton-stubs/thread.sig";
++use "../lib/stubs/mlton-stubs/thread.sml";
++use "../lib/stubs/mlton-stubs/array.sig";
++use "../lib/stubs/mlton-stubs/bin-io.sig";
++use "../lib/stubs/mlton-stubs/cont.sig";
++use "../lib/stubs/mlton-stubs/exn.sig";
++use "../lib/stubs/mlton-stubs/finalizable.sig";
++use "../lib/stubs/mlton-stubs/gc.sig";
++use "../lib/stubs/mlton-stubs/itimer.sig";
++use "../lib/stubs/mlton-stubs/platform.sig";
++use "../lib/stubs/mlton-stubs/proc-env.sig";
++use "../lib/stubs/mlton-stubs/process.sig";
++use "../lib/stubs/mlton-stubs/profile.sig";
++use "../lib/stubs/mlton-stubs/random.sig";
++use "../lib/stubs/mlton-stubs/rusage.sig";
++use "../lib/stubs/mlton-stubs/signal.sig";
++use "../lib/stubs/mlton-stubs/socket.sig";
++use "../lib/stubs/mlton-stubs/text-io.sig";
++use "../lib/stubs/mlton-stubs/vector.sig";
++use "../lib/stubs/mlton-stubs/weak.sig";
++use "../lib/stubs/mlton-stubs/word.sig";
++use "../lib/stubs/mlton-stubs/world.sig";
++use "../lib/stubs/mlton-stubs/random.sml";
++use "../lib/stubs/mlton-stubs/mlton.sig";
++use "../lib/stubs/mlton-stubs/mlton.sml";
++use "../lib/mlton/pervasive/pervasive.sml";
++use "../lib/mlton/basic/error.sig";
++use "../lib/mlton/basic/error.sml";
++use "../lib/mlton/basic/exn0.sml";
++use "../lib/mlton/basic/outstream0.sml";
++use "../lib/mlton/basic/layout.sig";
++use "../lib/mlton/basic/relation0.sml";
++use "../lib/mlton/basic/char0.sig";
++use "../lib/mlton/basic/char0.sml";
++use "../lib/mlton/basic/string0.sml";
++use "../lib/mlton/basic/layout.sml";
++use "../lib/mlton/basic/substring.sig";
++use "../lib/mlton/basic/assert.sig";
++use "../lib/mlton/basic/assert.sml";
++use "../lib/mlton/basic/list.sig";
++use "../lib/mlton/basic/fold.sig";
++use "../lib/mlton/basic/fold.fun";
++use "../lib/mlton/basic/list.sml";
++use "../lib/mlton/basic/word.sig";
++use "../lib/mlton/basic/word8.sml";
++use "../lib/mlton/basic/max-pow-2-that-divides.fun";
++use "../lib/mlton/basic/word.sml";
++use "../lib/mlton/basic/string1.sml";
++use "../lib/mlton/basic/substring.sml";
++use "../lib/mlton/basic/outstream.sig";
++use "../lib/mlton/basic/outstream.sml";
++use "../lib/mlton/basic/relation.sig";
++use "../lib/mlton/basic/relation.sml";
++use "../lib/mlton/basic/order0.sig";
++use "../lib/mlton/basic/order.sig";
++use "../lib/mlton/basic/time.sig";
++use "../lib/mlton/basic/time.sml";
++use "../lib/mlton/basic/instream.sig";
++use "../lib/mlton/basic/char.sig";
++use "../lib/mlton/basic/computation.sig";
++use "../lib/mlton/basic/trace.sig";
++use "../lib/mlton/basic/exn.sig";
++use "../lib/mlton/basic/exn.sml";
++use "../lib/mlton/basic/date.sig";
++use "../lib/mlton/basic/date.sml";
++use "../lib/mlton/basic/pid.sig";
++use "../lib/mlton/basic/option.sig";
++use "../lib/mlton/basic/option.sml";
++use "../lib/mlton/basic/pid.sml";
++use "../lib/mlton/basic/intermediate-computation.sig";
++use "../lib/mlton/basic/instream0.sml";
++use "../lib/mlton/basic/intermediate-computation.sml";
++use "../lib/mlton/basic/string-map.sig";
++use "../lib/mlton/basic/string-map.sml";
++use "../lib/mlton/basic/t.sig";
++use "../lib/mlton/basic/unit.sig";
++use "../lib/mlton/basic/unit.sml";
++use "../lib/mlton/basic/trace.sml";
++use "../lib/mlton/basic/bool.sig";
++use "../lib/mlton/basic/bool.sml";
++use "../lib/mlton/basic/char.sml";
++use "../lib/mlton/basic/string.sig";
++use "../lib/mlton/basic/stream.sig";
++use "../lib/mlton/basic/promise.sig";
++use "../lib/mlton/basic/promise.sml";
++use "../lib/mlton/basic/stream.sml";
++use "../lib/mlton/basic/ring.sig";
++use "../lib/mlton/basic/ring-with-identity.sig";
++use "../lib/mlton/basic/euclidean-ring.sig";
++use "../lib/mlton/basic/integer.sig";
++use "../lib/mlton/basic/euclidean-ring.fun";
++use "../lib/mlton/basic/ring.fun";
++use "../lib/mlton/basic/ordered-ring.sig";
++use "../lib/mlton/basic/ordered-ring.fun";
++use "../lib/mlton/basic/power.sml";
++use "../lib/mlton/basic/ring-with-identity.fun";
++use "../lib/mlton/basic/integer.fun";
++use "../lib/mlton/basic/int.sml";
++use "../lib/mlton/basic/real.sig";
++use "../lib/mlton/basic/field.sig";
++use "../lib/mlton/basic/field.fun";
++use "../lib/mlton/basic/ordered-field.sig";
++use "../lib/mlton/basic/ordered-field.fun";
++use "../lib/mlton/basic/real.sml";
++use "../lib/mlton/basic/random.sig";
++use "../lib/mlton/basic/random.sml";
++use "../lib/mlton/basic/vector.sig";
++use "../lib/mlton/basic/vector.fun";
++use "../lib/mlton/basic/vector.sml";
++use "../lib/mlton/basic/array.sig";
++use "../lib/mlton/basic/array.fun";
++use "../lib/mlton/basic/array.sml";
++use "../lib/mlton/basic/binary-search.sig";
++use "../lib/mlton/basic/binary-search.sml";
++use "../lib/mlton/basic/hash-set.sig";
++use "../lib/mlton/basic/hash-set.sml";
++use "../lib/mlton/basic/string.sml";
++use "../lib/mlton/basic/instream.sml";
++use "../lib/mlton/basic/file.sig";
++use "../lib/mlton/basic/file.sml";
++use "../lib/mlton/basic/signal.sml";
++use "../lib/mlton/basic/process.sig";
++use "../lib/mlton/basic/dir.sig";
++use "../lib/mlton/basic/dir.sml";
++use "../lib/mlton/basic/function.sig";
++use "../lib/mlton/basic/function.sml";
++use "../lib/mlton/basic/file-desc.sig";
++use "../lib/mlton/basic/file-desc.sml";
++use "../lib/mlton/basic/process.sml";
++use "../lib/mlton/basic/append-list.sig";
++use "../lib/mlton/basic/append-list.sml";
++use "../lib/mlton/basic/property-list.sig";
++use "../lib/mlton/basic/ref.sig";
++use "../lib/mlton/basic/ref.sml";
++use "../lib/mlton/basic/het-container.sig";
++use "../lib/mlton/basic/property-list.fun";
++use "../lib/mlton/basic/het-container.fun";
++use "../lib/mlton/basic/property.sig";
++use "../lib/mlton/basic/property.fun";
++use "../lib/mlton/basic/dot-color.sml";
++use "../lib/mlton/basic/dot.sig";
++use "../lib/mlton/basic/dot.sml";
++use "../lib/mlton/basic/tree.sig";
++use "../lib/mlton/basic/counter.sig";
++use "../lib/mlton/basic/counter.sml";
++use "../lib/mlton/basic/tree.sml";
++use "../lib/mlton/basic/int-inf.sig";
++use "../lib/mlton/basic/int-inf.sml";
++use "../lib/mlton/basic/control.sig";
++use "../lib/mlton/basic/control.fun";
++use "../lib/mlton/basic/queue.sig";
++use "../lib/mlton/basic/two-list-queue.sml";
++use "../lib/mlton/basic/array2.sig";
++use "../lib/mlton/basic/array2.sml";
++use "../lib/mlton/basic/env.sig";
++use "../lib/mlton/basic/env.fun";
++use "../lib/mlton/basic/unique-id.sig";
++use "../lib/mlton/basic/unique-id.fun";
++use "../lib/mlton/basic/clearable-promise.sig";
++use "../lib/mlton/basic/clearable-promise.sml";
++use "../lib/mlton/basic/justify.sig";
++use "../lib/mlton/basic/justify.sml";
++use "../lib/mlton/basic/directed-graph.sig";
++use "../lib/mlton/basic/directed-graph.sml";
++use "../lib/mlton/basic/large-word.sml";
++use "../lib/mlton/basic/quick-sort.sig";
++use "../lib/mlton/basic/insertion-sort.sig";
++use "../lib/mlton/basic/insertion-sort.sml";
++use "../lib/mlton/basic/quick-sort.sml";
++use "../lib/mlton/basic/unique-set.sig";
++use "../lib/mlton/basic/unique-set.fun";
++use "../lib/mlton/basic/fixed-point.sig";
++use "../lib/mlton/basic/fixed-point.sml";
++use "../lib/mlton/basic/mono-vector.fun";
++use "../lib/mlton/basic/result.sig";
++use "../lib/mlton/basic/result.sml";
++use "../lib/mlton/basic/regexp.sig";
++use "../lib/mlton/basic/regexp.sml";
++use "../lib/mlton/basic/popt.sig";
++use "../lib/mlton/basic/popt.sml";
++use "../lib/mlton/basic/sexp.sig";
++use "../lib/mlton/basic/sexp.sml";
++use "../lib/mlton/basic/choice-pattern.sig";
++use "../lib/mlton/basic/choice-pattern.sml";
++use "../lib/mlton/basic/escape.sig";
++use "../lib/mlton/basic/escape.sml";
++use "../lib/mlton/basic/buffer.sig";
++use "../lib/mlton/basic/buffer.sml";
++use "../lib/mlton/basic/base64.sig";
++use "../lib/mlton/basic/base64.sml";
++use "../lib/mlton/set/disjoint.sig";
++use "../lib/mlton/set/disjoint.fun";
++use "../lib/mlton/set/set.sig";
++use "../lib/mlton/set/unordered.fun";
++use "../lib/mlton/set/ordered-unique-set.fun";
++use "../lib/mlton/env/mono-env.sig";
++use "../lib/mlton/env/basic-env-to-env.fun";
++use "../lib/mlton/env/mono-env.fun";
++use "../lib/mlton/env/finite-function.sig";
++use "../lib/mlton/env/poly-cache.sig";
++use "../lib/mlton/env/poly-cache.fun";
++use "control/bits.sml";
++use "control/control-flags.sig";
++use "control/control-flags.sml";
++use "control/source-pos.sig";
++use "control/source-pos.sml";
++use "control/region.sig";
++use "control/region.sml";
++use "control/source.sig";
++use "control/source.sml";
++use "control/version.sml";
++use "control/control.sig";
++use "control/control.sml";
++use "control/system.sig";
++use "control/system.sml";
++use "control/pretty.sig";
++use "control/pretty.sml";
++use "ast/admits-equality.sig";
++use "ast/admits-equality.fun";
++use "ast/wrapped.sig";
++use "ast/ast-const.sig";
++use "ast/ast-const.fun";
++use "ast/symbol.sig";
++use "ast/symbol.fun";
++use "ast/ast-id.sig";
++use "ast/ast-id.fun";
++use "ast/field.sig";
++use "ast/field.fun";
++use "ast/char-size.sig";
++use "ast/char-size.fun";
++use "ast/int-size.sig";
++use "ast/int-size.fun";
++use "ast/longid.sig";
++use "ast/longid.fun";
++use "ast/prim-cons.sig";
++use "ast/prim-cons.fun";
++use "ast/real-size.sig";
++use "ast/real-size.fun";
++use "ast/word-size.sig";
++use "ast/word-size.fun";
++use "ast/tycon-kind.sig";
++use "ast/tycon-kind.fun";
++use "ast/prim-tycons.sig";
++use "ast/prim-tycons.fun";
++use "ast/record.sig";
++use "ast/record.fun";
++use "ast/tyvar.sig";
++use "ast/tyvar.fun";
++use "ast/ast-atoms.sig";
++use "ast/ast-atoms.fun";
++use "ast/ast-core.sig";
++use "ast/ast-core.fun";
++use "ast/ast-modules.sig";
++use "ast/ast-modules.fun";
++use "ast/ast-programs.sig";
++use "ast/ast-programs.fun";
++use "ast/ast-mlbs.sig";
++use "ast/ast-mlbs.fun";
++use "ast/ast.sig";
++use "ast/ast.fun";
++use "atoms/id.sig";
++use "atoms/id.fun";
++use "atoms/con-.sig";
++use "atoms/con-.fun";
++use "atoms/word-x.sig";
++use "atoms/word-x.fun";
++use "atoms/real-x.sig";
++use "atoms/real-x.fun";
++use "atoms/word-x-vector.sig";
++use "atoms/word-x-vector.fun";
++use "atoms/c-type.sig";
++use "atoms/c-type.fun";
++use "atoms/label.sig";
++use "atoms/c-function.sig";
++use "atoms/c-function.fun";
++use "atoms/const-type.sig";
++use "atoms/const-type.fun";
++use "atoms/const.sig";
++use "atoms/const.fun";
++use "atoms/prim.sig";
++use "atoms/prim.fun";
++use "atoms/ffi.sig";
++use "atoms/ffi.fun";
++use "atoms/func.sig";
++use "atoms/generic-scheme.sig";
++use "atoms/generic-scheme.fun";
++use "atoms/profile-label.sig";
++use "atoms/profile-label.fun";
++use "atoms/source-info.sig";
++use "atoms/source-info.fun";
++use "atoms/profile-exp.sig";
++use "atoms/profile-exp.fun";
++use "atoms/tycon.sig";
++use "atoms/tycon.fun";
++use "atoms/type-ops.sig";
++use "atoms/type-ops.fun";
++use "atoms/use-name.fun";
++use "atoms/var.sig";
++use "atoms/var.fun";
++use "atoms/atoms.sig";
++use "atoms/atoms.fun";
++use "atoms/hash-type.sig";
++use "atoms/hash-type.fun";
++use "ssa/equatable.sig";
++use "ssa/equatable.sml";
++use "ssa/ssa-tree.sig";
++use "ssa/ssa-tree2.sig";
++use "ssa/ssa-tree.fun";
++use "ssa/ssa-tree2.fun";
++use "ssa/direct-exp.sig";
++use "ssa/direct-exp.fun";
++use "ssa/analyze.sig";
++use "ssa/analyze2.sig";
++use "ssa/analyze.fun";
++use "ssa/analyze2.fun";
++use "ssa/type-check.sig";
++use "ssa/type-check2.sig";
++use "ssa/type-check.fun";
++use "ssa/type-check2.fun";
++use "ssa/prepasses.sig";
++use "ssa/prepasses2.sig";
++use "ssa/prepasses.fun";
++use "ssa/prepasses2.fun";
++use "ssa/shrink.sig";
++use "ssa/shrink2.sig";
++use "ssa/shrink.fun";
++use "ssa/shrink2.fun";
++use "ssa/flat-lattice.sig";
++use "ssa/flat-lattice.fun";
++use "ssa/n-point-lattice.sig";
++use "ssa/n-point-lattice.fun";
++use "ssa/two-point-lattice.sig";
++use "ssa/two-point-lattice.fun";
++use "ssa/three-point-lattice.sig";
++use "ssa/three-point-lattice.fun";
++use "ssa/common-arg.sig";
++use "ssa/common-arg.fun";
++use "ssa/common-block.sig";
++use "ssa/common-block.fun";
++use "ssa/common-subexp.sig";
++use "ssa/common-subexp.fun";
++use "ssa/global.sig";
++use "ssa/global.fun";
++use "ssa/multi.sig";
++use "ssa/multi.fun";
++use "ssa/combine-conversions.sig";
++use "ssa/combine-conversions.fun";
++use "ssa/constant-propagation.sig";
++use "ssa/constant-propagation.fun";
++use "ssa/contify.sig";
++use "ssa/contify.fun";
++use "ssa/deep-flatten.sig";
++use "ssa/deep-flatten.fun";
++use "ssa/flatten.sig";
++use "ssa/flatten.fun";
++use "ssa/inline.sig";
++use "ssa/inline.fun";
++use "ssa/introduce-loops.sig";
++use "ssa/introduce-loops.fun";
++use "ssa/restore.sig";
++use "ssa/restore.fun";
++use "ssa/known-case.sig";
++use "ssa/known-case.fun";
++use "ssa/local-flatten.sig";
++use "ssa/local-flatten.fun";
++use "ssa/local-ref.sig";
++use "ssa/local-ref.fun";
++use "ssa/loop-invariant.sig";
++use "ssa/loop-invariant.fun";
++use "ssa/poly-equal.sig";
++use "ssa/poly-equal.fun";
++use "ssa/poly-hash.sig";
++use "ssa/poly-hash.fun";
++use "ssa/profile.sig";
++use "ssa/profile.fun";
++use "ssa/profile2.sig";
++use "ssa/profile2.fun";
++use "ssa/redundant-tests.sig";
++use "ssa/redundant-tests.fun";
++use "ssa/redundant.sig";
++use "ssa/redundant.fun";
++use "ssa/ref-flatten.sig";
++use "ssa/ref-flatten.fun";
++use "ssa/remove-unused.sig";
++use "ssa/remove-unused2.sig";
++use "ssa/remove-unused.fun";
++use "ssa/remove-unused2.fun";
++use "ssa/simplify-types.sig";
++use "ssa/simplify-types.fun";
++use "ssa/useless.sig";
++use "ssa/useless.fun";
++use "ssa/zone.sig";
++use "ssa/zone.fun";
++use "ssa/simplify.sig";
++use "ssa/simplify2.sig";
++use "ssa/simplify.fun";
++use "ssa/simplify2.fun";
++use "ssa/ssa.sig";
++use "ssa/ssa2.sig";
++use "ssa/ssa.fun";
++use "ssa/ssa2.fun";
++use "ssa/ssa-to-ssa2.sig";
++use "ssa/ssa-to-ssa2.fun";
++use "backend/runtime.sig";
++use "backend/runtime.fun";
++use "backend/objptr-tycon.sig";
++use "backend/objptr-tycon.fun";
++use "backend/object-type.sig";
++use "backend/scale.sig";
++use "backend/scale.fun";
++use "backend/rep-type.sig";
++use "backend/rep-type.fun";
++use "backend/switch.sig";
++use "backend/switch.fun";
++use "backend/err.sml";
++use "backend/rssa.sig";
++use "backend/rssa.fun";
++use "backend/machine.sig";
++use "backend/machine.fun";
++use "backend/representation.sig";
++use "backend/packed-representation.fun";
++use "backend/ssa-to-rssa.sig";
++use "backend/ssa-to-rssa.fun";
++use "backend/implement-handlers.sig";
++use "backend/implement-handlers.fun";
++use "backend/implement-profiling.sig";
++use "backend/implement-profiling.fun";
++use "backend/limit-check.sig";
++use "backend/limit-check.fun";
++use "backend/signal-check.sig";
++use "backend/signal-check.fun";
++use "backend/live.sig";
++use "backend/live.fun";
++use "backend/allocate-registers.sig";
++use "backend/allocate-registers.fun";
++use "backend/equivalence-graph.sig";
++use "backend/equivalence-graph.fun";
++use "backend/chunkify.sig";
++use "backend/chunkify.fun";
++use "backend/parallel-move.sig";
++use "backend/parallel-move.fun";
++use "backend/backend.sig";
++use "backend/backend.fun";
++use "xml/xml-type.sig";
++use "xml/xml-tree.sig";
++use "xml/xml-tree.fun";
++use "xml/type-check.sig";
++use "xml/type-check.fun";
++use "xml/scc-funs.sig";
++use "xml/scc-funs.fun";
++use "xml/simplify-types.sig";
++use "xml/simplify-types.fun";
++use "xml/shrink.sig";
++use "xml/shrink.fun";
++use "xml/xml-simplify.sig";
++use "xml/xml-simplify.fun";
++use "xml/xml.sig";
++use "xml/xml.fun";
++use "xml/sxml-exns.sig";
++use "xml/monomorphise.sig";
++use "xml/monomorphise.fun";
++use "xml/sxml-tree.sig";
++use "xml/implement-exceptions.sig";
++use "xml/implement-exceptions.fun";
++use "xml/implement-suffix.sig";
++use "xml/implement-suffix.fun";
++use "xml/polyvariance.sig";
++use "xml/polyvariance.fun";
++use "xml/cps-transform.sig";
++use "xml/cps-transform.fun";
++use "xml/sxml-simplify.sig";
++use "xml/sxml-simplify.fun";
++use "xml/sxml.sig";
++use "xml/sxml.fun";
++use "closure-convert/abstract-value.sig";
++use "closure-convert/abstract-value.fun";
++use "closure-convert/globalize.sig";
++use "closure-convert/globalize.fun";
++use "closure-convert/lambda-free.sig";
++use "closure-convert/lambda-free.fun";
++use "closure-convert/closure-convert.sig";
++use "closure-convert/closure-convert.fun";
++use "cm/lexer.sig";
++use "cm/lexer.sml";
++use "cm/parse.sig";
++use "cm/parse.sml";
++use "cm/cm.sig";
++use "cm/cm.sml";
++use "codegen/c-codegen/c-codegen.sig";
++use "codegen/c-codegen/c-codegen.fun";
++use "codegen/amd64-codegen/peephole.sig";
++use "codegen/amd64-codegen/peephole.fun";
++use "codegen/amd64-codegen/amd64.sig";
++use "codegen/amd64-codegen/amd64.fun";
++use "codegen/amd64-codegen/amd64-pseudo.sig";
++use "codegen/amd64-codegen/amd64-mlton-basic.sig";
++use "codegen/amd64-codegen/amd64-mlton-basic.fun";
++use "codegen/amd64-codegen/amd64-liveness.sig";
++use "codegen/amd64-codegen/amd64-liveness.fun";
++use "codegen/amd64-codegen/amd64-mlton.sig";
++use "codegen/amd64-codegen/amd64-mlton.fun";
++use "codegen/amd64-codegen/amd64-allocate-registers.sig";
++use "codegen/amd64-codegen/amd64-allocate-registers.fun";
++use "codegen/amd64-codegen/amd64-entry-transfer.sig";
++use "codegen/amd64-codegen/amd64-entry-transfer.fun";
++use "codegen/amd64-codegen/amd64-jump-info.sig";
++use "codegen/amd64-codegen/amd64-jump-info.fun";
++use "codegen/amd64-codegen/amd64-loop-info.sig";
++use "codegen/amd64-codegen/amd64-loop-info.fun";
++use "codegen/amd64-codegen/amd64-live-transfers.sig";
++use "codegen/amd64-codegen/amd64-live-transfers.fun";
++use "codegen/amd64-codegen/amd64-generate-transfers.sig";
++use "codegen/amd64-codegen/amd64-generate-transfers.fun";
++use "codegen/amd64-codegen/amd64-simplify.sig";
++use "codegen/amd64-codegen/amd64-simplify.fun";
++use "codegen/amd64-codegen/amd64-translate.sig";
++use "codegen/amd64-codegen/amd64-translate.fun";
++use "codegen/amd64-codegen/amd64-codegen.sig";
++use "codegen/amd64-codegen/amd64-codegen.fun";
++use "codegen/bytecode/bytecode.sig";
++use "codegen/bytecode/bytecode.fun";
++use "codegen/x86-codegen/peephole.sig";
++use "codegen/x86-codegen/peephole.fun";
++use "codegen/x86-codegen/x86.sig";
++use "codegen/x86-codegen/x86.fun";
++use "codegen/x86-codegen/x86-pseudo.sig";
++use "codegen/x86-codegen/x86-mlton-basic.sig";
++use "codegen/x86-codegen/x86-mlton-basic.fun";
++use "codegen/x86-codegen/x86-liveness.sig";
++use "codegen/x86-codegen/x86-liveness.fun";
++use "codegen/x86-codegen/x86-mlton.sig";
++use "codegen/x86-codegen/x86-mlton.fun";
++use "codegen/x86-codegen/x86-allocate-registers.sig";
++use "codegen/x86-codegen/x86-allocate-registers.fun";
++use "codegen/x86-codegen/x86-entry-transfer.sig";
++use "codegen/x86-codegen/x86-entry-transfer.fun";
++use "codegen/x86-codegen/x86-jump-info.sig";
++use "codegen/x86-codegen/x86-jump-info.fun";
++use "codegen/x86-codegen/x86-loop-info.sig";
++use "codegen/x86-codegen/x86-loop-info.fun";
++use "codegen/x86-codegen/x86-live-transfers.sig";
++use "codegen/x86-codegen/x86-live-transfers.fun";
++use "codegen/x86-codegen/x86-generate-transfers.sig";
++use "codegen/x86-codegen/x86-generate-transfers.fun";
++use "codegen/x86-codegen/x86-simplify.sig";
++use "codegen/x86-codegen/x86-simplify.fun";
++use "codegen/x86-codegen/x86-translate.sig";
++use "codegen/x86-codegen/x86-translate.fun";
++use "codegen/x86-codegen/x86-codegen.sig";
++use "codegen/x86-codegen/x86-codegen.fun";
++use "core-ml/core-ml.sig";
++use "core-ml/core-ml.fun";
++use "core-ml/dead-code.sig";
++use "core-ml/dead-code.fun";
++use "match-compile/nested-pat.sig";
++use "match-compile/nested-pat.fun";
++use "match-compile/match-compile.sig";
++use "match-compile/match-compile.fun";
++use "defunctorize/defunctorize.sig";
++use "defunctorize/defunctorize.fun";
++use "elaborate/decs.sig";
++use "elaborate/decs.fun";
++use "elaborate/type-env.sig";
++use "elaborate/type-env.fun";
++use "elaborate/interface.sig";
++use "elaborate/interface.fun";
++use "elaborate/elaborate-env.sig";
++use "elaborate/elaborate-env.fun";
++use "elaborate/precedence-parse.sig";
++use "elaborate/precedence-parse.fun";
++use "elaborate/scope.sig";
++use "elaborate/scope.fun";
++use "elaborate/elaborate-core.sig";
++use "elaborate/elaborate-core.fun";
++use "elaborate/elaborate-sigexp.sig";
++use "elaborate/elaborate-sigexp.fun";
++use "elaborate/elaborate-modules.sig";
++use "elaborate/elaborate-modules.fun";
++use "elaborate/elaborate-programs.sig";
++use "elaborate/elaborate-programs.fun";
++use "elaborate/elaborate-mlbs.sig";
++use "elaborate/elaborate-mlbs.fun";
++use "elaborate/elaborate.sig";
++use "elaborate/elaborate.fun";
++use "front-end/ml.grm.sig";
++use "front-end/ml.grm.sml";
++use "front-end/ml.lex.sml";
++use "front-end/front-end.sig";
++use "front-end/front-end.fun";
++use "front-end/mlb.grm.sig";
++use "front-end/mlb.grm.sml";
++use "front-end/mlb.lex.sml";
++use "front-end/mlb-front-end.sig";
++use "front-end/mlb-front-end.fun";
++use "main/lookup-constant.sig";
++use "main/lookup-constant.fun";
++use "main/compile.sig";
++use "main/compile.fun";
++use "main/main.sig";
++use "main/main.fun";
++use "main/main.sml";
+diff -urN mlton-20100608~/mlyacc/src/yacc.grm.sig mlton-20100608/mlyacc/src/yacc.grm.sig
+--- mlton-20100608~/mlyacc/src/yacc.grm.sig	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlyacc/src/yacc.grm.sig	2013-04-22 09:58:08.403223391 -0400
+@@ -0,0 +1,54 @@
++signature Mlyacc_TOKENS =
++sig
++type ('a,'b) token
++type svalue
++val BOGUS_VALUE:  'a * 'a -> (svalue,'a) token
++val UNKNOWN: (string) *  'a * 'a -> (svalue,'a) token
++val VALUE:  'a * 'a -> (svalue,'a) token
++val VERBOSE:  'a * 'a -> (svalue,'a) token
++val TYVAR: (string) *  'a * 'a -> (svalue,'a) token
++val TERM:  'a * 'a -> (svalue,'a) token
++val START:  'a * 'a -> (svalue,'a) token
++val SUBST:  'a * 'a -> (svalue,'a) token
++val RPAREN:  'a * 'a -> (svalue,'a) token
++val RBRACE:  'a * 'a -> (svalue,'a) token
++val PROG: (string) *  'a * 'a -> (svalue,'a) token
++val PREFER:  'a * 'a -> (svalue,'a) token
++val PREC_TAG:  'a * 'a -> (svalue,'a) token
++val PREC: (Header.prec) *  'a * 'a -> (svalue,'a) token
++val PERCENT_TOKEN_SIG_INFO:  'a * 'a -> (svalue,'a) token
++val PERCENT_ARG:  'a * 'a -> (svalue,'a) token
++val PERCENT_POS:  'a * 'a -> (svalue,'a) token
++val PERCENT_PURE:  'a * 'a -> (svalue,'a) token
++val PERCENT_EOP:  'a * 'a -> (svalue,'a) token
++val OF:  'a * 'a -> (svalue,'a) token
++val NOSHIFT:  'a * 'a -> (svalue,'a) token
++val NONTERM:  'a * 'a -> (svalue,'a) token
++val NODEFAULT:  'a * 'a -> (svalue,'a) token
++val NAME:  'a * 'a -> (svalue,'a) token
++val LPAREN:  'a * 'a -> (svalue,'a) token
++val LBRACE:  'a * 'a -> (svalue,'a) token
++val KEYWORD:  'a * 'a -> (svalue,'a) token
++val INT: (string) *  'a * 'a -> (svalue,'a) token
++val PERCENT_HEADER:  'a * 'a -> (svalue,'a) token
++val IDDOT: (string) *  'a * 'a -> (svalue,'a) token
++val ID: (string*Header.pos) *  'a * 'a -> (svalue,'a) token
++val HEADER: (string) *  'a * 'a -> (svalue,'a) token
++val FOR:  'a * 'a -> (svalue,'a) token
++val EOF:  'a * 'a -> (svalue,'a) token
++val DELIMITER:  'a * 'a -> (svalue,'a) token
++val COMMA:  'a * 'a -> (svalue,'a) token
++val COLON:  'a * 'a -> (svalue,'a) token
++val CHANGE:  'a * 'a -> (svalue,'a) token
++val BAR:  'a * 'a -> (svalue,'a) token
++val BLOCK:  'a * 'a -> (svalue,'a) token
++val ASTERISK:  'a * 'a -> (svalue,'a) token
++val ARROW:  'a * 'a -> (svalue,'a) token
++end
++signature Mlyacc_LRVALS=
++sig
++structure Tokens : Mlyacc_TOKENS
++structure ParserData:PARSER_DATA
++sharing type ParserData.Token.token = Tokens.token
++sharing type ParserData.svalue = Tokens.svalue
++end
+diff -urN mlton-20100608~/mlyacc/src/yacc.grm.sml mlton-20100608/mlyacc/src/yacc.grm.sml
+--- mlton-20100608~/mlyacc/src/yacc.grm.sml	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlyacc/src/yacc.grm.sml	2013-04-22 09:58:08.403223391 -0400
+@@ -0,0 +1,838 @@
++
++functor MlyaccLrValsFun(structure Hdr : HEADER
++                          where type prec = Header.prec
++                        structure Token : TOKEN)
++ = 
++struct
++structure ParserData=
++struct
++structure Header = 
++struct
++(*#line 1.2 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)(* Modified by Vesa Karvonen on 2007-12-18.
++ * Create line directives in output.
++ *)
++(* ML-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi *)
++
++(* parser for the ML parser generator *)
++
++open Hdr
++
++(*#line 20.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++end
++structure LrTable = Token.LrTable
++structure Token = Token
++local open LrTable in 
++val table=let val actionRows =
++"\
++\\001\000\001\000\076\000\000\000\
++\\001\000\005\000\025\000\008\000\024\000\014\000\023\000\016\000\022\000\
++\\019\000\021\000\020\000\020\000\021\000\019\000\022\000\018\000\
++\\024\000\017\000\025\000\016\000\026\000\015\000\027\000\014\000\
++\\028\000\013\000\029\000\012\000\031\000\011\000\035\000\010\000\
++\\036\000\009\000\037\000\008\000\039\000\007\000\040\000\006\000\000\000\
++\\001\000\006\000\063\000\000\000\
++\\001\000\006\000\074\000\000\000\
++\\001\000\006\000\086\000\000\000\
++\\001\000\006\000\098\000\000\000\
++\\001\000\007\000\085\000\033\000\084\000\000\000\
++\\001\000\009\000\000\000\000\000\
++\\001\000\010\000\061\000\000\000\
++\\001\000\011\000\003\000\000\000\
++\\001\000\012\000\026\000\000\000\
++\\001\000\012\000\028\000\000\000\
++\\001\000\012\000\029\000\000\000\
++\\001\000\012\000\032\000\000\000\
++\\001\000\012\000\044\000\013\000\043\000\000\000\
++\\001\000\012\000\044\000\013\000\043\000\017\000\042\000\032\000\041\000\
++\\038\000\040\000\000\000\
++\\001\000\012\000\048\000\000\000\
++\\001\000\012\000\053\000\000\000\
++\\001\000\012\000\071\000\015\000\070\000\000\000\
++\\001\000\012\000\071\000\015\000\070\000\033\000\069\000\000\000\
++\\001\000\012\000\077\000\000\000\
++\\001\000\012\000\080\000\000\000\
++\\001\000\012\000\101\000\000\000\
++\\001\000\032\000\036\000\000\000\
++\\001\000\032\000\037\000\000\000\
++\\001\000\032\000\050\000\000\000\
++\\001\000\032\000\057\000\000\000\
++\\001\000\032\000\100\000\000\000\
++\\001\000\032\000\104\000\000\000\
++\\106\000\012\000\053\000\000\000\
++\\107\000\000\000\
++\\108\000\000\000\
++\\109\000\004\000\058\000\000\000\
++\\110\000\004\000\058\000\000\000\
++\\111\000\000\000\
++\\112\000\000\000\
++\\113\000\000\000\
++\\114\000\000\000\
++\\115\000\000\000\
++\\116\000\000\000\
++\\117\000\000\000\
++\\118\000\000\000\
++\\119\000\000\000\
++\\120\000\000\000\
++\\121\000\000\000\
++\\122\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
++\\123\000\000\000\
++\\124\000\000\000\
++\\125\000\000\000\
++\\126\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
++\\127\000\000\000\
++\\128\000\000\000\
++\\129\000\004\000\075\000\000\000\
++\\130\000\000\000\
++\\131\000\000\000\
++\\132\000\004\000\060\000\000\000\
++\\133\000\000\000\
++\\134\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
++\\135\000\023\000\091\000\000\000\
++\\136\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
++\\137\000\023\000\059\000\000\000\
++\\138\000\004\000\094\000\000\000\
++\\139\000\000\000\
++\\140\000\000\000\
++\\141\000\000\000\
++\\142\000\012\000\034\000\000\000\
++\\143\000\000\000\
++\\144\000\000\000\
++\\145\000\000\000\
++\\146\000\000\000\
++\\147\000\000\000\
++\\148\000\000\000\
++\\149\000\000\000\
++\\150\000\000\000\
++\\151\000\012\000\044\000\013\000\043\000\000\000\
++\\152\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
++\\153\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
++\\154\000\001\000\066\000\002\000\065\000\012\000\044\000\013\000\043\000\000\000\
++\\155\000\000\000\
++\\156\000\000\000\
++\\157\000\000\000\
++\\158\000\000\000\
++\\159\000\000\000\
++\\160\000\030\000\096\000\000\000\
++\"
++val actionRowNumbers =
++"\009\000\031\000\001\000\030\000\
++\\010\000\046\000\011\000\012\000\
++\\013\000\065\000\065\000\023\000\
++\\024\000\015\000\048\000\065\000\
++\\065\000\011\000\047\000\016\000\
++\\065\000\025\000\017\000\065\000\
++\\026\000\032\000\060\000\035\000\
++\\055\000\040\000\008\000\038\000\
++\\065\000\034\000\043\000\002\000\
++\\049\000\073\000\068\000\071\000\
++\\019\000\014\000\078\000\036\000\
++\\041\000\033\000\044\000\037\000\
++\\042\000\029\000\063\000\003\000\
++\\052\000\039\000\000\000\050\000\
++\\020\000\015\000\013\000\021\000\
++\\064\000\015\000\072\000\015\000\
++\\015\000\006\000\004\000\070\000\
++\\081\000\080\000\079\000\062\000\
++\\065\000\065\000\065\000\058\000\
++\\059\000\054\000\056\000\045\000\
++\\074\000\075\000\069\000\018\000\
++\\015\000\061\000\083\000\051\000\
++\\053\000\015\000\005\000\077\000\
++\\065\000\027\000\022\000\057\000\
++\\015\000\083\000\066\000\082\000\
++\\076\000\028\000\067\000\007\000"
++val gotoT =
++"\
++\\001\000\103\000\000\000\
++\\006\000\002\000\000\000\
++\\005\000\003\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\002\000\025\000\000\000\
++\\000\000\
++\\013\000\029\000\014\000\028\000\000\000\
++\\003\000\031\000\000\000\
++\\003\000\033\000\000\000\
++\\000\000\
++\\000\000\
++\\007\000\037\000\017\000\036\000\000\000\
++\\000\000\
++\\003\000\043\000\000\000\
++\\003\000\044\000\000\000\
++\\002\000\045\000\000\000\
++\\000\000\
++\\000\000\
++\\003\000\047\000\000\000\
++\\000\000\
++\\010\000\050\000\011\000\049\000\000\000\
++\\003\000\054\000\015\000\053\000\016\000\052\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\060\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\007\000\062\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\004\000\066\000\008\000\065\000\000\000\
++\\007\000\070\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\010\000\071\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\007\000\037\000\017\000\076\000\000\000\
++\\013\000\077\000\014\000\028\000\000\000\
++\\000\000\
++\\000\000\
++\\007\000\037\000\017\000\079\000\000\000\
++\\000\000\
++\\007\000\037\000\017\000\080\000\000\000\
++\\007\000\037\000\017\000\081\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\\003\000\086\000\009\000\085\000\000\000\
++\\003\000\054\000\015\000\087\000\016\000\052\000\000\000\
++\\003\000\088\000\000\000\
++\\000\000\
++\\007\000\062\000\000\000\
++\\000\000\
++\\000\000\
++\\007\000\062\000\000\000\
++\\007\000\062\000\000\000\
++\\007\000\062\000\000\000\
++\\000\000\
++\\004\000\090\000\000\000\
++\\007\000\037\000\017\000\091\000\000\000\
++\\000\000\
++\\012\000\093\000\000\000\
++\\000\000\
++\\000\000\
++\\007\000\037\000\017\000\095\000\000\000\
++\\000\000\
++\\007\000\062\000\000\000\
++\\003\000\097\000\000\000\
++\\000\000\
++\\000\000\
++\\007\000\062\000\000\000\
++\\007\000\037\000\017\000\100\000\000\000\
++\\012\000\101\000\000\000\
++\\000\000\
++\\000\000\
++\\007\000\062\000\000\000\
++\\000\000\
++\\000\000\
++\\000\000\
++\"
++val numstates = 104
++val numrules = 55
++val s = ref "" and index = ref 0
++val string_to_int = fn () => 
++let val i = !index
++in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
++end
++val string_to_list = fn s' =>
++    let val len = String.size s'
++        fun f () =
++           if !index < len then string_to_int() :: f()
++           else nil
++   in index := 0; s := s'; f ()
++   end
++val string_to_pairlist = fn (conv_key,conv_entry) =>
++     let fun f () =
++         case string_to_int()
++         of 0 => EMPTY
++          | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
++     in f
++     end
++val string_to_pairlist_default = fn (conv_key,conv_entry) =>
++    let val conv_row = string_to_pairlist(conv_key,conv_entry)
++    in fn () =>
++       let val default = conv_entry(string_to_int())
++           val row = conv_row()
++       in (row,default)
++       end
++   end
++val string_to_table = fn (convert_row,s') =>
++    let val len = String.size s'
++        fun f ()=
++           if !index < len then convert_row() :: f()
++           else nil
++     in (s := s'; index := 0; f ())
++     end
++local
++  val memo = Array.array(numstates+numrules,ERROR)
++  val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
++       fun f i =
++            if i=numstates then g i
++            else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
++          in f 0 handle Subscript => ()
++          end
++in
++val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
++end
++val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
++val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
++val actionRowNumbers = string_to_list actionRowNumbers
++val actionT = let val actionRowLookUp=
++let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
++in Array.fromList(map actionRowLookUp actionRowNumbers)
++end
++in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
++numStates=numstates,initialState=STATE 0}
++end
++end
++local open Header in
++type pos = pos
++type arg = Hdr.inputSource
++structure MlyValue = 
++struct
++datatype svalue = VOID | ntVOID of unit ->  unit | UNKNOWN of unit ->  (string) | TYVAR of unit ->  (string) | PROG of unit ->  (string) | PREC of unit ->  (Header.prec) | INT of unit ->  (string) | IDDOT of unit ->  (string) | ID of unit ->  (string*Header.pos) | HEADER of unit ->  (string) | TY of unit ->  (string) | CHANGE_DEC of unit ->  ( ( Hdr.symbol list * Hdr.symbol list ) ) | CHANGE_DECL of unit ->  ( ( Hdr.symbol list * Hdr.symbol list )  list) | SUBST_DEC of unit ->  ( ( Hdr.symbol list * Hdr.symbol list ) ) | SUBST_DECL of unit ->  ( ( Hdr.symbol list * Hdr.symbol list )  list) | G_RULE_PREC of unit ->  (Hdr.symbol option) | G_RULE_LIST of unit ->  (Hdr.rule list) | G_RULE of unit ->  (Hdr.rule list) | RHS_LIST of unit ->  ({ rhs:Hdr.symbol list,code:{ text:string,pos:Header.pos } ,prec:Hdr.symbol option }  list) | RECORD_LIST of unit ->  (string) | QUAL_ID of unit ->  (string) | MPC_DECLS of unit ->  (Hdr.declData) | MPC_DECL of unit ->  (Hdr.declData) | LABEL 
 of unit ->  (string) | ID_LIST of unit ->  (Hdr.symbol list) | CONSTR_LIST of unit ->  ( ( Hdr.symbol * Hdr.ty option )  list) | BEGIN of unit ->  (string*Hdr.declData* ( Hdr.rule list ) )
++end
++type svalue = MlyValue.svalue
++type result = string*Hdr.declData* ( Hdr.rule list ) 
++end
++structure EC=
++struct
++open LrTable
++infix 5 $$
++fun x $$ y = y::x
++val is_keyword =
++fn _ => false
++val preferred_change : (term list * term list) list = 
++nil
++val noShift = 
++fn (T 8) => true | _ => false
++val showTerminal =
++fn (T 0) => "ARROW"
++  | (T 1) => "ASTERISK"
++  | (T 2) => "BLOCK"
++  | (T 3) => "BAR"
++  | (T 4) => "CHANGE"
++  | (T 5) => "COLON"
++  | (T 6) => "COMMA"
++  | (T 7) => "DELIMITER"
++  | (T 8) => "EOF"
++  | (T 9) => "FOR"
++  | (T 10) => "HEADER"
++  | (T 11) => "ID"
++  | (T 12) => "IDDOT"
++  | (T 13) => "PERCENT_HEADER"
++  | (T 14) => "INT"
++  | (T 15) => "KEYWORD"
++  | (T 16) => "LBRACE"
++  | (T 17) => "LPAREN"
++  | (T 18) => "NAME"
++  | (T 19) => "NODEFAULT"
++  | (T 20) => "NONTERM"
++  | (T 21) => "NOSHIFT"
++  | (T 22) => "OF"
++  | (T 23) => "PERCENT_EOP"
++  | (T 24) => "PERCENT_PURE"
++  | (T 25) => "PERCENT_POS"
++  | (T 26) => "PERCENT_ARG"
++  | (T 27) => "PERCENT_TOKEN_SIG_INFO"
++  | (T 28) => "PREC"
++  | (T 29) => "PREC_TAG"
++  | (T 30) => "PREFER"
++  | (T 31) => "PROG"
++  | (T 32) => "RBRACE"
++  | (T 33) => "RPAREN"
++  | (T 34) => "SUBST"
++  | (T 35) => "START"
++  | (T 36) => "TERM"
++  | (T 37) => "TYVAR"
++  | (T 38) => "VERBOSE"
++  | (T 39) => "VALUE"
++  | (T 40) => "UNKNOWN"
++  | (T 41) => "BOGUS_VALUE"
++  | _ => "bogus-term"
++local open Header in
++val errtermvalue=
++fn _ => MlyValue.VOID
++end
++val terms : term list = nil
++ $$ (T 41) $$ (T 39) $$ (T 38) $$ (T 36) $$ (T 35) $$ (T 34) $$ (T 33) $$ (T 32) $$ (T 30) $$ (T 29) $$ (T 27) $$ (T 26) $$ (T 25) $$ (T 24) $$ (T 23) $$ (T 22) $$ (T 21) $$ (T 20) $$ (T 19) $$ (T 18) $$ (T 17) $$ (T 16) $$ (T 15) $$ (T 13) $$ (T 9) $$ (T 8) $$ (T 7) $$ (T 6) $$ (T 5) $$ (T 4) $$ (T 3) $$ (T 2) $$ (T 1) $$ (T 0)end
++structure Actions =
++struct 
++exception mlyAction of int
++local open Header in
++val actions = 
++fn (i392,defaultPos,stack,
++    (inputSource):arg) =>
++case (i392,stack)
++of  ( 0, ( ( _, ( MlyValue.G_RULE_LIST G_RULE_LIST1, _, G_RULE_LIST1right)) :: _ :: ( _, ( MlyValue.MPC_DECLS MPC_DECLS1, _, _)) :: ( _, ( MlyValue.HEADER HEADER1, HEADER1left, _)) :: rest671)) => let val  result = MlyValue.BEGIN (fn _ => let val  (HEADER as HEADER1) = HEADER1 ()
++ val  (MPC_DECLS as MPC_DECLS1) = MPC_DECLS1 ()
++ val  (G_RULE_LIST as G_RULE_LIST1) = G_RULE_LIST1 ()
++ in ((*#line 58.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)HEADER,MPC_DECLS,rev G_RULE_LIST(*#line 388.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 0, ( result, HEADER1left, G_RULE_LIST1right), rest671)
++end
++|  ( 1, ( ( _, ( MlyValue.MPC_DECL MPC_DECL1, MPC_DECLleft, MPC_DECL1right)) :: ( _, ( MlyValue.MPC_DECLS MPC_DECLS1, MPC_DECLS1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECLS (fn _ => let val  (MPC_DECLS as MPC_DECLS1) = MPC_DECLS1 ()
++ val  (MPC_DECL as MPC_DECL1) = MPC_DECL1 ()
++ in ((*#line 61.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)join_decls(MPC_DECLS,MPC_DECL,inputSource,MPC_DECLleft)(*#line 396.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 5, ( result, MPC_DECLS1left, MPC_DECL1right), rest671)
++end
++|  ( 2, ( rest671)) => let val  result = MlyValue.MPC_DECLS (fn _ => ((*#line 63.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,nonterm=NONE,term=NONE,eop=nil,control=nil,
++                   keyword=nil,change=nil,
++                   value=nil}(*#line 403.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++))
++ in ( LrTable.NT 5, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 3, ( ( _, ( MlyValue.CONSTR_LIST CONSTR_LIST1, _, CONSTR_LIST1right)) :: ( _, ( _, TERM1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (CONSTR_LIST as CONSTR_LIST1) = CONSTR_LIST1 ()
++ in ((*#line 68.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL { prec=nil,nonterm=NONE,
++               term = SOME CONSTR_LIST, eop =nil,control=nil,
++                change=nil,keyword=nil,
++                value=nil}(*#line 409.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, TERM1left, CONSTR_LIST1right), rest671)
++end
++|  ( 4, ( ( _, ( MlyValue.CONSTR_LIST CONSTR_LIST1, _, CONSTR_LIST1right)) :: ( _, ( _, NONTERM1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (CONSTR_LIST as CONSTR_LIST1) = CONSTR_LIST1 ()
++ in ((*#line 74.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL { prec=nil,control=nil,nonterm= SOME CONSTR_LIST,
++               term = NONE, eop=nil,change=nil,keyword=nil,
++               value=nil}(*#line 418.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, NONTERM1left, CONSTR_LIST1right), rest671)
++end
++|  ( 5, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, ( MlyValue.PREC PREC1, PREC1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (PREC as PREC1) = PREC1 ()
++ val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ in ((*#line 79.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec= [(PREC,ID_LIST)],control=nil,
++              nonterm=NONE,term=NONE,eop=nil,change=nil,
++              keyword=nil,value=nil}(*#line 426.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, PREC1left, ID_LIST1right), rest671)
++end
++|  ( 6, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: ( _, ( _, START1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (ID as ID1) = ID1 ()
++ in ((*#line 84.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[START_SYM (symbolMake ID)],nonterm=NONE,
++               term = NONE, eop = nil,change=nil,keyword=nil,
++               value=nil}(*#line 435.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, START1left, ID1right), rest671)
++end
++|  ( 7, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, ( _, PERCENT_EOP1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ in ((*#line 89.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,
++                eop=ID_LIST, change=nil,keyword=nil,
++                value=nil}(*#line 443.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, PERCENT_EOP1left, ID_LIST1right), rest671)
++end
++|  ( 8, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, ( _, KEYWORD1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ in ((*#line 94.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
++                change=nil,keyword=ID_LIST,
++                value=nil}(*#line 451.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, KEYWORD1left, ID_LIST1right), rest671)
++end
++|  ( 9, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, ( _, PREFER1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ in ((*#line 99.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
++                    change=map (fn i=>([],[i])) ID_LIST,keyword=nil,
++                    value=nil}(*#line 459.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, PREFER1left, ID_LIST1right), rest671)
++end
++|  ( 10, ( ( _, ( MlyValue.CHANGE_DECL CHANGE_DECL1, _, CHANGE_DECL1right)) :: ( _, ( _, CHANGE1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (CHANGE_DECL as CHANGE_DECL1) = CHANGE_DECL1 ()
++ in ((*#line 104.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
++                change=CHANGE_DECL,keyword=nil,
++                value=nil}(*#line 467.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, CHANGE1left, CHANGE_DECL1right), rest671)
++end
++|  ( 11, ( ( _, ( MlyValue.SUBST_DECL SUBST_DECL1, _, SUBST_DECL1right)) :: ( _, ( _, SUBST1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (SUBST_DECL as SUBST_DECL1) = SUBST_DECL1 ()
++ in ((*#line 108.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=nil,nonterm=NONE,term=NONE,eop=nil,
++                change=SUBST_DECL,keyword=nil,
++                value=nil}(*#line 475.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, SUBST1left, SUBST_DECL1right), rest671)
++end
++|  ( 12, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, ( _, NOSHIFT1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ in ((*#line 112.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[NSHIFT ID_LIST],nonterm=NONE,term=NONE,
++                    eop=nil,change=nil,keyword=nil,
++                    value=nil}(*#line 483.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, NOSHIFT1left, ID_LIST1right), rest671)
++end
++|  ( 13, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( _, PERCENT_HEADER1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (PROG as PROG1) = PROG1 ()
++ in ((*#line 116.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[FUNCTOR PROG],nonterm=NONE,term=NONE,
++                    eop=nil,change=nil,keyword=nil,
++                    value=nil}(*#line 491.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, PERCENT_HEADER1left, PROG1right), rest671)
++end
++|  ( 14, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( _, PERCENT_TOKEN_SIG_INFO1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (PROG as PROG1) = PROG1 ()
++ in ((*#line 120.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[TOKEN_SIG_INFO PROG],
++                    nonterm=NONE,term=NONE,
++                    eop=nil,change=nil,keyword=nil,
++                    value=nil}(*#line 499.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, PERCENT_TOKEN_SIG_INFO1left, PROG1right), rest671)
++end
++|  ( 15, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: ( _, ( _, NAME1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (ID as ID1) = ID1 ()
++ in ((*#line 125.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[PARSER_NAME (symbolMake ID)],
++                    nonterm=NONE,term=NONE,
++                    eop=nil,change=nil,keyword=nil, value=nil}(*#line 508.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, NAME1left, ID1right), rest671)
++end
++|  ( 16, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( MlyValue.PROG PROG1, _, _)) :: ( _, ( _, PERCENT_ARG1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (PROG as PROG1) = PROG1 ()
++ val  (TY as TY1) = TY1 ()
++ in ((*#line 130.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[PARSE_ARG(PROG,TY)],nonterm=NONE,
++                    term=NONE,eop=nil,change=nil,keyword=nil,
++                     value=nil}(*#line 516.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, PERCENT_ARG1left, TY1right), rest671)
++end
++|  ( 17, ( ( _, ( _, VERBOSE1left, VERBOSE1right)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => ((*#line 135.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[Hdr.VERBOSE],
++                nonterm=NONE,term=NONE,eop=nil,
++                change=nil,keyword=nil,
++                value=nil}(*#line 525.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++))
++ in ( LrTable.NT 4, ( result, VERBOSE1left, VERBOSE1right), rest671)
++end
++|  ( 18, ( ( _, ( _, NODEFAULT1left, NODEFAULT1right)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => ((*#line 140.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[Hdr.NODEFAULT],
++                nonterm=NONE,term=NONE,eop=nil,
++                change=nil,keyword=nil,
++                value=nil}(*#line 532.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++))
++ in ( LrTable.NT 4, ( result, NODEFAULT1left, NODEFAULT1right), rest671)
++end
++|  ( 19, ( ( _, ( _, PERCENT_PURE1left, PERCENT_PURE1right)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => ((*#line 145.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[Hdr.PURE],
++                nonterm=NONE,term=NONE,eop=nil,
++                change=nil,keyword=nil,
++                value=nil}(*#line 539.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++))
++ in ( LrTable.NT 4, ( result, PERCENT_PURE1left, PERCENT_PURE1right), rest671)
++end
++|  ( 20, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: ( _, ( _, PERCENT_POS1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (TY as TY1) = TY1 ()
++ in ((*#line 150.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=[Hdr.POS TY],
++                nonterm=NONE,term=NONE,eop=nil,
++                change=nil,keyword=nil,
++                value=nil}(*#line 546.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, PERCENT_POS1left, TY1right), rest671)
++end
++|  ( 21, ( ( _, ( MlyValue.PROG PROG1, _, PROG1right)) :: ( _, ( MlyValue.ID ID1, _, _)) :: ( _, ( _, VALUE1left, _)) :: rest671)) => let val  result = MlyValue.MPC_DECL (fn _ => let val  (ID as ID1) = ID1 ()
++ val  (PROG as PROG1) = PROG1 ()
++ in ((*#line 155.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)DECL {prec=nil,control=nil,
++                nonterm=NONE,term=NONE,eop=nil,
++                change=nil,keyword=nil,
++                value=[(symbolMake ID,PROG)]}(*#line 555.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 4, ( result, VALUE1left, PROG1right), rest671)
++end
++|  ( 22, ( ( _, ( MlyValue.CHANGE_DECL CHANGE_DECL1, _, CHANGE_DECL1right)) :: _ :: ( _, ( MlyValue.CHANGE_DEC CHANGE_DEC1, CHANGE_DEC1left, _)) :: rest671)) => let val  result = MlyValue.CHANGE_DECL (fn _ => let val  (CHANGE_DEC as CHANGE_DEC1) = CHANGE_DEC1 ()
++ val  (CHANGE_DECL as CHANGE_DECL1) = CHANGE_DECL1 ()
++ in ((*#line 161.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)CHANGE_DEC :: CHANGE_DECL(*#line 565.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 14, ( result, CHANGE_DEC1left, CHANGE_DECL1right), rest671)
++end
++|  ( 23, ( ( _, ( MlyValue.CHANGE_DEC CHANGE_DEC1, CHANGE_DEC1left, CHANGE_DEC1right)) :: rest671)) => let val  result = MlyValue.CHANGE_DECL (fn _ => let val  (CHANGE_DEC as CHANGE_DEC1) = CHANGE_DEC1 ()
++ in ((*#line 163.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)[CHANGE_DEC](*#line 572.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 14, ( result, CHANGE_DEC1left, CHANGE_DEC1right), rest671)
++end
++|  ( 24, ( ( _, ( MlyValue.ID_LIST ID_LIST2, _, ID_LIST2right)) :: _ :: ( _, ( MlyValue.ID_LIST ID_LIST1, ID_LIST1left, _)) :: rest671)) => let val  result = MlyValue.CHANGE_DEC (fn _ => let val  ID_LIST1 = ID_LIST1 ()
++ val  ID_LIST2 = ID_LIST2 ()
++ in ((*#line 166.20 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)ID_LIST1, ID_LIST2(*#line 578.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 15, ( result, ID_LIST1left, ID_LIST2right), rest671)
++end
++|  ( 25, ( ( _, ( MlyValue.SUBST_DECL SUBST_DECL1, _, SUBST_DECL1right)) :: _ :: ( _, ( MlyValue.SUBST_DEC SUBST_DEC1, SUBST_DEC1left, _)) :: rest671)) => let val  result = MlyValue.SUBST_DECL (fn _ => let val  (SUBST_DEC as SUBST_DEC1) = SUBST_DEC1 ()
++ val  (SUBST_DECL as SUBST_DECL1) = SUBST_DECL1 ()
++ in ((*#line 169.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)SUBST_DEC :: SUBST_DECL(*#line 585.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 12, ( result, SUBST_DEC1left, SUBST_DECL1right), rest671)
++end
++|  ( 26, ( ( _, ( MlyValue.SUBST_DEC SUBST_DEC1, SUBST_DEC1left, SUBST_DEC1right)) :: rest671)) => let val  result = MlyValue.SUBST_DECL (fn _ => let val  (SUBST_DEC as SUBST_DEC1) = SUBST_DEC1 ()
++ in ((*#line 171.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)[SUBST_DEC](*#line 592.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 12, ( result, SUBST_DEC1left, SUBST_DEC1right), rest671)
++end
++|  ( 27, ( ( _, ( MlyValue.ID ID2, _, ID2right)) :: _ :: ( _, ( MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val  result = MlyValue.SUBST_DEC (fn _ => let val  ID1 = ID1 ()
++ val  ID2 = ID2 ()
++ in ((*#line 174.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)[symbolMake ID2],[symbolMake ID1](*#line 598.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 13, ( result, ID1left, ID2right), rest671)
++end
++|  ( 28, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( MlyValue.ID ID1, _, _)) :: _ :: ( _, ( MlyValue.CONSTR_LIST CONSTR_LIST1, CONSTR_LIST1left, _)) :: rest671)) => let val  result = MlyValue.CONSTR_LIST (fn _ => let val  (CONSTR_LIST as CONSTR_LIST1) = CONSTR_LIST1 ()
++ val  (ID as ID1) = ID1 ()
++ val  (TY as TY1) = TY1 ()
++ in ((*#line 177.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)(symbolMake ID,SOME (tyMake TY))::CONSTR_LIST(*#line 605.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, CONSTR_LIST1left, TY1right), rest671)
++end
++|  ( 29, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: _ :: ( _, ( MlyValue.CONSTR_LIST CONSTR_LIST1, CONSTR_LIST1left, _)) :: rest671)) => let val  result = MlyValue.CONSTR_LIST (fn _ => let val  (CONSTR_LIST as CONSTR_LIST1) = CONSTR_LIST1 ()
++ val  (ID as ID1) = ID1 ()
++ in ((*#line 180.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)(symbolMake ID,NONE)::CONSTR_LIST(*#line 613.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, CONSTR_LIST1left, ID1right), rest671)
++end
++|  ( 30, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val  result = MlyValue.CONSTR_LIST (fn _ => let val  (ID as ID1) = ID1 ()
++ val  (TY as TY1) = TY1 ()
++ in ((*#line 182.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)[(symbolMake ID,SOME (tyMake TY))](*#line 620.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, ID1left, TY1right), rest671)
++end
++|  ( 31, ( ( _, ( MlyValue.ID ID1, ID1left, ID1right)) :: rest671)) => let val  result = MlyValue.CONSTR_LIST (fn _ => let val  (ID as ID1) = ID1 ()
++ in ((*#line 184.15 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)[(symbolMake ID,NONE)](*#line 627.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 1, ( result, ID1left, ID1right), rest671)
++end
++|  ( 32, ( ( _, ( MlyValue.RHS_LIST RHS_LIST1, _, RHS_LIST1right)) :: _ :: ( _, ( MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val  result = MlyValue.G_RULE (fn _ => let val  (ID as ID1) = ID1 ()
++ val  (RHS_LIST as RHS_LIST1) = RHS_LIST1 ()
++ in ((*#line 187.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)map (fn {rhs,code,prec} =>
++                  Hdr.RULE {lhs=symbolMake ID,rhs=rhs,
++                               code=code,prec=prec})
++         RHS_LIST(*#line 633.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 9, ( result, ID1left, RHS_LIST1right), rest671)
++end
++|  ( 33, ( ( _, ( MlyValue.G_RULE G_RULE1, _, G_RULE1right)) :: ( _, ( MlyValue.G_RULE_LIST G_RULE_LIST1, G_RULE_LIST1left, _)) :: rest671)) => let val  result = MlyValue.G_RULE_LIST (fn _ => let val  (G_RULE_LIST as G_RULE_LIST1) = G_RULE_LIST1 ()
++ val  (G_RULE as G_RULE1) = G_RULE1 ()
++ in ((*#line 192.35 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)G_RULE at G_RULE_LIST(*#line 643.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 10, ( result, G_RULE_LIST1left, G_RULE1right), rest671)
++end
++|  ( 34, ( ( _, ( MlyValue.G_RULE G_RULE1, G_RULE1left, G_RULE1right)) :: rest671)) => let val  result = MlyValue.G_RULE_LIST (fn _ => let val  (G_RULE as G_RULE1) = G_RULE1 ()
++ in ((*#line 193.27 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)G_RULE(*#line 650.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 10, ( result, G_RULE1left, G_RULE1right), rest671)
++end
++|  ( 35, ( ( _, ( MlyValue.ID_LIST ID_LIST1, _, ID_LIST1right)) :: ( _, ( MlyValue.ID ID1, ID1left, _)) :: rest671)) => let val  result = MlyValue.ID_LIST (fn _ => let val  (ID as ID1) = ID1 ()
++ val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ in ((*#line 195.23 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)symbolMake ID :: ID_LIST(*#line 656.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 2, ( result, ID1left, ID_LIST1right), rest671)
++end
++|  ( 36, ( rest671)) => let val  result = MlyValue.ID_LIST (fn _ => ((*#line 196.19 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)nil(*#line 663.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++))
++ in ( LrTable.NT 2, ( result, defaultPos, defaultPos), rest671)
++end
++|  ( 37, ( ( _, ( MlyValue.PROG PROG1, PROGleft, PROG1right)) :: ( _, ( MlyValue.G_RULE_PREC G_RULE_PREC1, _, _)) :: ( _, ( MlyValue.ID_LIST ID_LIST1, ID_LIST1left, _)) :: rest671)) => let val  result = MlyValue.RHS_LIST (fn _ => let val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ val  (G_RULE_PREC as G_RULE_PREC1) = G_RULE_PREC1 ()
++ val  (PROG as PROG1) = PROG1 ()
++ in ((*#line 199.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)[{rhs=ID_LIST,code={text=PROG,pos=PROGleft},prec=G_RULE_PREC}](*#line 667.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 8, ( result, ID_LIST1left, PROG1right), rest671)
++end
++|  ( 38, ( ( _, ( MlyValue.PROG PROG1, PROGleft, PROG1right)) :: ( _, ( MlyValue.G_RULE_PREC G_RULE_PREC1, _, _)) :: ( _, ( MlyValue.ID_LIST ID_LIST1, _, _)) :: _ :: ( _, ( MlyValue.RHS_LIST RHS_LIST1, RHS_LIST1left, _)) :: rest671)) => let val  result = MlyValue.RHS_LIST (fn _ => let val  (RHS_LIST as RHS_LIST1) = RHS_LIST1 ()
++ val  (ID_LIST as ID_LIST1) = ID_LIST1 ()
++ val  (G_RULE_PREC as G_RULE_PREC1) = G_RULE_PREC1 ()
++ val  (PROG as PROG1) = PROG1 ()
++ in ((*#line 202.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*){rhs=ID_LIST,code={text=PROG,pos=PROGleft},prec=G_RULE_PREC}::RHS_LIST(*#line 675.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 8, ( result, RHS_LIST1left, PROG1right), rest671)
++end
++|  ( 39, ( ( _, ( MlyValue.TYVAR TYVAR1, TYVAR1left, TYVAR1right)) :: rest671)) => let val  result = MlyValue.TY (fn _ => let val  (TYVAR as TYVAR1) = TYVAR1 ()
++ in ((*#line 205.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)TYVAR(*#line 684.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, TYVAR1left, TYVAR1right), rest671)
++end
++|  ( 40, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.RECORD_LIST RECORD_LIST1, _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.TY (fn _ => let val  (RECORD_LIST as RECORD_LIST1) = RECORD_LIST1 ()
++ in ((*#line 207.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)"{ "^RECORD_LIST^" } "(*#line 690.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 41, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val  result = MlyValue.TY (fn _ => ((*#line 209.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)"{}"(*#line 696.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++))
++ in ( LrTable.NT 16, ( result, LBRACE1left, RBRACE1right), rest671)
++end
++|  ( 42, ( ( _, ( MlyValue.PROG PROG1, PROG1left, PROG1right)) :: rest671)) => let val  result = MlyValue.TY (fn _ => let val  (PROG as PROG1) = PROG1 ()
++ in ((*#line 211.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)" ( "^PROG^" ) "(*#line 700.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, PROG1left, PROG1right), rest671)
++end
++|  ( 43, ( ( _, ( MlyValue.QUAL_ID QUAL_ID1, _, QUAL_ID1right)) :: ( _, ( MlyValue.TY TY1, TY1left, _)) :: rest671)) => let val  result = MlyValue.TY (fn _ => let val  (TY as TY1) = TY1 ()
++ val  (QUAL_ID as QUAL_ID1) = QUAL_ID1 ()
++ in ((*#line 213.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)TY^" "^QUAL_ID(*#line 706.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, TY1left, QUAL_ID1right), rest671)
++end
++|  ( 44, ( ( _, ( MlyValue.QUAL_ID QUAL_ID1, QUAL_ID1left, QUAL_ID1right)) :: rest671)) => let val  result = MlyValue.TY (fn _ => let val  (QUAL_ID as QUAL_ID1) = QUAL_ID1 ()
++ in ((*#line 215.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)QUAL_ID(*#line 713.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, QUAL_ID1left, QUAL_ID1right), rest671)
++end
++|  ( 45, ( ( _, ( MlyValue.TY TY2, _, TY2right)) :: _ :: ( _, ( MlyValue.TY TY1, TY1left, _)) :: rest671)) => let val  result = MlyValue.TY (fn _ => let val  TY1 = TY1 ()
++ val  TY2 = TY2 ()
++ in ((*#line 217.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)TY1^"*"^TY2(*#line 719.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, TY1left, TY2right), rest671)
++end
++|  ( 46, ( ( _, ( MlyValue.TY TY2, _, TY2right)) :: _ :: ( _, ( MlyValue.TY TY1, TY1left, _)) :: rest671)) => let val  result = MlyValue.TY (fn _ => let val  TY1 = TY1 ()
++ val  TY2 = TY2 ()
++ in ((*#line 219.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)TY1 ^ " -> " ^ TY2(*#line 726.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 16, ( result, TY1left, TY2right), rest671)
++end
++|  ( 47, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( MlyValue.LABEL LABEL1, _, _)) :: _ :: ( _, ( MlyValue.RECORD_LIST RECORD_LIST1, RECORD_LIST1left, _)) :: rest671)) => let val  result = MlyValue.RECORD_LIST (fn _ => let val  (RECORD_LIST as RECORD_LIST1) = RECORD_LIST1 ()
++ val  (LABEL as LABEL1) = LABEL1 ()
++ val  (TY as TY1) = TY1 ()
++ in ((*#line 222.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)RECORD_LIST^","^LABEL^":"^TY(*#line 733.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, RECORD_LIST1left, TY1right), rest671)
++end
++|  ( 48, ( ( _, ( MlyValue.TY TY1, _, TY1right)) :: _ :: ( _, ( MlyValue.LABEL LABEL1, LABEL1left, _)) :: rest671)) => let val  result = MlyValue.RECORD_LIST (fn _ => let val  (LABEL as LABEL1) = LABEL1 ()
++ val  (TY as TY1) = TY1 ()
++ in ((*#line 224.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)LABEL^":"^TY(*#line 741.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 7, ( result, LABEL1left, TY1right), rest671)
++end
++|  ( 49, ( ( _, ( MlyValue.ID ID1, ID1left, ID1right)) :: rest671)) => let val  result = MlyValue.QUAL_ID (fn _ => let val  (ID as ID1) = ID1 ()
++ in ((*#line 226.18 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)(fn (a,_) => a) ID(*#line 748.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 6, ( result, ID1left, ID1right), rest671)
++end
++|  ( 50, ( ( _, ( MlyValue.QUAL_ID QUAL_ID1, _, QUAL_ID1right)) :: ( _, ( MlyValue.IDDOT IDDOT1, IDDOT1left, _)) :: rest671)) => let val  result = MlyValue.QUAL_ID (fn _ => let val  (IDDOT as IDDOT1) = IDDOT1 ()
++ val  (QUAL_ID as QUAL_ID1) = QUAL_ID1 ()
++ in ((*#line 227.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)IDDOT^QUAL_ID(*#line 754.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 6, ( result, IDDOT1left, QUAL_ID1right), rest671)
++end
++|  ( 51, ( ( _, ( MlyValue.ID ID1, ID1left, ID1right)) :: rest671)) => let val  result = MlyValue.LABEL (fn _ => let val  (ID as ID1) = ID1 ()
++ in ((*#line 229.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)(fn (a,_) => a) ID(*#line 761.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 3, ( result, ID1left, ID1right), rest671)
++end
++|  ( 52, ( ( _, ( MlyValue.INT INT1, INT1left, INT1right)) :: rest671)) => let val  result = MlyValue.LABEL (fn _ => let val  (INT as INT1) = INT1 ()
++ in ((*#line 230.14 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)INT(*#line 767.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 3, ( result, INT1left, INT1right), rest671)
++end
++|  ( 53, ( ( _, ( MlyValue.ID ID1, _, ID1right)) :: ( _, ( _, PREC_TAG1left, _)) :: rest671)) => let val  result = MlyValue.G_RULE_PREC (fn _ => let val  (ID as ID1) = ID1 ()
++ in ((*#line 232.28 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)SOME (symbolMake ID)(*#line 773.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++)
++end)
++ in ( LrTable.NT 11, ( result, PREC_TAG1left, ID1right), rest671)
++end
++|  ( 54, ( rest671)) => let val  result = MlyValue.G_RULE_PREC (fn _ => ((*#line 234.16 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm"*)NONE(*#line 779.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.grm.sml"*)
++))
++ in ( LrTable.NT 11, ( result, defaultPos, defaultPos), rest671)
++end
++| _ => raise (mlyAction i392)
++end
++val void = MlyValue.VOID
++val extract = fn a => (fn MlyValue.BEGIN x => x
++| _ => let exception ParseInternal
++	in raise ParseInternal end) a ()
++end
++end
++structure Tokens : Mlyacc_TOKENS =
++struct
++type svalue = ParserData.svalue
++type ('a,'b) token = ('a,'b) Token.token
++fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(ParserData.MlyValue.VOID,p1,p2))
++fun ASTERISK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(ParserData.MlyValue.VOID,p1,p2))
++fun BLOCK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(ParserData.MlyValue.VOID,p1,p2))
++fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(ParserData.MlyValue.VOID,p1,p2))
++fun CHANGE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(ParserData.MlyValue.VOID,p1,p2))
++fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(ParserData.MlyValue.VOID,p1,p2))
++fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(ParserData.MlyValue.VOID,p1,p2))
++fun DELIMITER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(ParserData.MlyValue.VOID,p1,p2))
++fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(ParserData.MlyValue.VOID,p1,p2))
++fun FOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(ParserData.MlyValue.VOID,p1,p2))
++fun HEADER (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(ParserData.MlyValue.HEADER (fn () => i),p1,p2))
++fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(ParserData.MlyValue.ID (fn () => i),p1,p2))
++fun IDDOT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(ParserData.MlyValue.IDDOT (fn () => i),p1,p2))
++fun PERCENT_HEADER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(ParserData.MlyValue.VOID,p1,p2))
++fun INT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(ParserData.MlyValue.INT (fn () => i),p1,p2))
++fun KEYWORD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(ParserData.MlyValue.VOID,p1,p2))
++fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(ParserData.MlyValue.VOID,p1,p2))
++fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(ParserData.MlyValue.VOID,p1,p2))
++fun NAME (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(ParserData.MlyValue.VOID,p1,p2))
++fun NODEFAULT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(ParserData.MlyValue.VOID,p1,p2))
++fun NONTERM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(ParserData.MlyValue.VOID,p1,p2))
++fun NOSHIFT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(ParserData.MlyValue.VOID,p1,p2))
++fun OF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(ParserData.MlyValue.VOID,p1,p2))
++fun PERCENT_EOP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(ParserData.MlyValue.VOID,p1,p2))
++fun PERCENT_PURE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(ParserData.MlyValue.VOID,p1,p2))
++fun PERCENT_POS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(ParserData.MlyValue.VOID,p1,p2))
++fun PERCENT_ARG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(ParserData.MlyValue.VOID,p1,p2))
++fun PERCENT_TOKEN_SIG_INFO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(ParserData.MlyValue.VOID,p1,p2))
++fun PREC (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(ParserData.MlyValue.PREC (fn () => i),p1,p2))
++fun PREC_TAG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(ParserData.MlyValue.VOID,p1,p2))
++fun PREFER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(ParserData.MlyValue.VOID,p1,p2))
++fun PROG (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(ParserData.MlyValue.PROG (fn () => i),p1,p2))
++fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(ParserData.MlyValue.VOID,p1,p2))
++fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(ParserData.MlyValue.VOID,p1,p2))
++fun SUBST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(ParserData.MlyValue.VOID,p1,p2))
++fun START (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(ParserData.MlyValue.VOID,p1,p2))
++fun TERM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(ParserData.MlyValue.VOID,p1,p2))
++fun TYVAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(ParserData.MlyValue.TYVAR (fn () => i),p1,p2))
++fun VERBOSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(ParserData.MlyValue.VOID,p1,p2))
++fun VALUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(ParserData.MlyValue.VOID,p1,p2))
++fun UNKNOWN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(ParserData.MlyValue.UNKNOWN (fn () => i),p1,p2))
++fun BOGUS_VALUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(ParserData.MlyValue.VOID,p1,p2))
++end
++end
+diff -urN mlton-20100608~/mlyacc/src/yacc.lex.sml mlton-20100608/mlyacc/src/yacc.lex.sml
+--- mlton-20100608~/mlyacc/src/yacc.lex.sml	1969-12-31 19:00:00.000000000 -0500
++++ mlton-20100608/mlyacc/src/yacc.lex.sml	2013-04-22 09:58:08.395223288 -0400
+@@ -0,0 +1,954 @@
++(*#line 62.10 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)
++functor LexMLYACC(structure Tokens : Mlyacc_TOKENS
++                  structure Hdr : HEADER (* = Header *)
++                    where type prec = Header.prec
++                      and type inputSource = Header.inputSource) : ARG_LEXER
++(*#line 6.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++=
++   struct
++    structure UserDeclarations =
++      struct
++(*#line 1.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)(* Modified by Vesa Karvonen on 2007-12-18.
++ * Create line directives in output.
++ *)
++(* ML-Yacc Parser Generator (c) 1989 Andrew W. Appel, David R. Tarditi
++
++   yacc.lex: Lexer specification
++ *)
++
++structure Tokens = Tokens
++type svalue = Tokens.svalue
++type pos = Header.pos
++type ('a,'b) token = ('a,'b) Tokens.token
++type lexresult = (svalue,pos) token
++
++type lexarg = Hdr.inputSource
++type arg = lexarg
++
++open Tokens
++val error = Hdr.error
++val text = Hdr.text
++
++val pcount = ref 0
++val commentLevel = ref 0
++val actionstart = ref {line = 1, col = 0}
++
++fun linePos () = {line = !(#line Hdr.pos), col = 0}
++fun pos pos = {line = !(#line Hdr.pos), col = pos - !(#start Hdr.pos)}
++
++val eof = fn i => (if (!pcount)>0 then
++                        error i (!actionstart)
++                              " eof encountered in action beginning here !"
++                   else (); EOF(linePos (), linePos ()))
++
++val Add = fn s => (text := s::(!text))
++
++
++local val dict = [("%prec",PREC_TAG),("%term",TERM),
++               ("%nonterm",NONTERM), ("%eop",PERCENT_EOP),("%start",START),
++               ("%prefer",PREFER),("%subst",SUBST),("%change",CHANGE),
++               ("%keyword",KEYWORD),("%name",NAME),
++               ("%verbose",VERBOSE), ("%nodefault",NODEFAULT),
++               ("%value",VALUE), ("%noshift",NOSHIFT),
++               ("%header",PERCENT_HEADER),("%pure",PERCENT_PURE),
++               ("%token_sig_info",PERCENT_TOKEN_SIG_INFO),
++               ("%arg",PERCENT_ARG),
++               ("%pos",PERCENT_POS)]
++in
++fun lookup (s,left,right) = let
++       fun f ((a,d)::b) = if a=s then d(left,right) else f b
++         | f nil = UNKNOWN(s,left,right)
++       in
++          f dict
++       end
++end
++
++fun inc (ri as ref i) = (ri := i+1)
++fun dec (ri as ref i) = (ri := i-1)
++
++fun incLineNum pos = (inc (#line Hdr.pos) ; #start Hdr.pos := pos)
++
++(*#line 71.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++end (* end of user routines *)
++exception LexError (* raised if illegal leaf action tried *)
++structure Internal =
++	struct
++
++datatype yyfinstate = N of int
++type statedata = {fin : yyfinstate list, trans: string}
++(* transition & final state table *)
++val tab = let
++val s = [ 
++ (0, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (1, 
++"\015\015\015\015\015\015\015\015\015\015\022\015\015\021\015\015\
++\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
++\\015\015\015\015\015\019\015\015\017\015\015\015\015\015\015\015\
++\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
++\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
++\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
++\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
++\\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
++\\015"
++),
++ (3, 
++"\023\023\023\023\023\023\023\023\023\066\069\023\023\068\023\023\
++\\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\023\
++\\066\023\023\023\023\046\023\044\042\023\041\023\040\038\023\023\
++\\036\036\036\036\036\036\036\036\036\036\035\023\023\023\023\023\
++\\023\027\027\027\027\027\027\027\027\027\027\027\027\027\027\027\
++\\027\027\027\027\027\027\027\027\027\027\027\023\023\023\023\023\
++\\023\027\027\027\027\027\032\027\027\027\027\027\027\027\027\030\
++\\027\027\027\027\027\027\027\027\027\027\027\026\025\024\023\023\
++\\023"
++),
++ (5, 
++"\070\070\070\070\070\070\070\070\070\070\022\070\070\075\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\074\070\070\070\070\070\072\071\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070"
++),
++ (7, 
++"\076\076\076\076\076\076\076\076\076\078\022\076\076\080\076\076\
++\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\
++\\078\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\
++\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\
++\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\
++\\076\076\076\076\076\076\076\076\076\076\076\076\077\076\076\076\
++\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\
++\\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\076\
++\\076"
++),
++ (9, 
++"\081\081\081\081\081\081\081\081\081\081\022\081\081\075\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\085\084\082\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081"
++),
++ (11, 
++"\087\087\087\087\087\087\087\087\087\087\095\087\087\094\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\093\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\088\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087"
++),
++ (13, 
++"\096\096\096\096\096\096\096\096\096\096\022\096\096\075\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\100\099\097\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096"
++),
++ (15, 
++"\016\016\016\016\016\016\016\016\016\016\000\016\016\000\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\000\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016"
++),
++ (17, 
++"\016\016\016\016\016\016\016\016\016\016\000\016\016\000\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\000\016\016\016\016\018\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\016\
++\\016"
++),
++ (19, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (21, 
++"\000\000\000\000\000\000\000\000\000\000\022\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (27, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\
++\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\
++\\000"
++),
++ (30, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\
++\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\
++\\000\028\028\028\028\028\031\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\
++\\000"
++),
++ (32, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\
++\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\033\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\
++\\000"
++),
++ (33, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\028\000\000\000\000\000\000\029\000\
++\\028\028\028\028\028\028\028\028\028\028\000\000\000\000\000\000\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\028\028\028\028\028\028\028\028\028\000\000\000\000\028\
++\\000\028\028\028\028\028\028\028\028\028\028\028\028\028\028\028\
++\\028\028\034\028\028\028\028\028\028\028\028\000\000\000\000\000\
++\\000"
++),
++ (36, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\037\037\037\037\037\037\037\037\037\037\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (38, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\039\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (42, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\043\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (44, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\045\000\000\000\000\000\000\000\000\
++\\045\045\045\045\045\045\045\045\045\045\000\000\000\000\000\000\
++\\000\045\045\045\045\045\045\045\045\045\045\045\045\045\045\045\
++\\045\045\045\045\045\045\045\045\045\045\045\000\000\000\000\045\
++\\000\045\045\045\045\045\045\045\045\045\045\045\045\045\045\045\
++\\045\045\045\045\045\045\045\045\045\045\045\000\000\000\000\000\
++\\000"
++),
++ (46, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\065\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\061\047\053\047\
++\\047\047\048\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (47, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (48, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\049\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (49, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\050\047\047\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (50, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\051\047\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (51, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\047\052\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (53, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\054\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (54, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\055\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (55, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\056\047\047\047\047\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (56, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\057\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (57, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\058\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (58, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\059\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (59, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\060\047\047\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (61, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\062\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (62, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\063\047\047\047\047\047\047\047\047\047\
++\\047\047\047\047\047\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (63, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\047\
++\\000\047\047\047\047\047\047\047\047\047\047\047\047\047\047\047\
++\\047\047\047\047\064\047\047\047\047\047\047\000\000\000\000\000\
++\\000"
++),
++ (66, 
++"\000\000\000\000\000\000\000\000\000\067\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\067\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (68, 
++"\000\000\000\000\000\000\000\000\000\000\069\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (70, 
++"\070\070\070\070\070\070\070\070\070\070\000\070\070\000\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\000\070\070\070\070\070\000\000\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\070\
++\\070"
++),
++ (72, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\073\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (78, 
++"\000\000\000\000\000\000\000\000\000\079\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\079\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (81, 
++"\081\081\081\081\081\081\081\081\081\081\000\081\081\000\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\000\000\000\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\081\
++\\081"
++),
++ (82, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\083\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (85, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\086\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (87, 
++"\087\087\087\087\087\087\087\087\087\087\000\087\087\000\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\000\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\000\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\087\
++\\087"
++),
++ (88, 
++"\000\000\000\000\000\000\000\000\000\090\092\000\000\091\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\090\000\089\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (91, 
++"\000\000\000\000\000\000\000\000\000\000\092\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (94, 
++"\000\000\000\000\000\000\000\000\000\000\095\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (96, 
++"\096\096\096\096\096\096\096\096\096\096\000\096\096\000\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\000\000\000\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\096\
++\\096"
++),
++ (97, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\098\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++ (100, 
++"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\101\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
++\\000"
++),
++(0, "")]
++fun f x = x 
++val s = map f (rev (tl (rev s))) 
++exception LexHackingError 
++fun look ((j,x)::r, i: int) = if i = j then x else look(r, i) 
++  | look ([], i) = raise LexHackingError
++fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} 
++in Vector.fromList(map g 
++[{fin = [], trans = 0},
++{fin = [], trans = 1},
++{fin = [], trans = 1},
++{fin = [], trans = 3},
++{fin = [], trans = 3},
++{fin = [], trans = 5},
++{fin = [], trans = 5},
++{fin = [], trans = 7},
++{fin = [], trans = 7},
++{fin = [], trans = 9},
++{fin = [], trans = 9},
++{fin = [], trans = 11},
++{fin = [], trans = 11},
++{fin = [], trans = 13},
++{fin = [], trans = 13},
++{fin = [(N 11),(N 21)], trans = 15},
++{fin = [(N 11)], trans = 15},
++{fin = [(N 11),(N 21)], trans = 17},
++{fin = [(N 2),(N 11)], trans = 15},
++{fin = [(N 21)], trans = 19},
++{fin = [(N 14)], trans = 0},
++{fin = [(N 19),(N 21)], trans = 21},
++{fin = [(N 19)], trans = 0},
++{fin = [(N 100)], trans = 0},
++{fin = [(N 42),(N 100)], trans = 0},
++{fin = [(N 93),(N 100)], trans = 0},
++{fin = [(N 40),(N 100)], trans = 0},
++{fin = [(N 96),(N 100)], trans = 27},
++{fin = [(N 96)], trans = 27},
++{fin = [(N 83)], trans = 0},
++{fin = [(N 96),(N 100)], trans = 30},
++{fin = [(N 34),(N 96)], trans = 27},
++{fin = [(N 96),(N 100)], trans = 32},
++{fin = [(N 96)], trans = 33},
++{fin = [(N 38),(N 96)], trans = 27},
++{fin = [(N 91),(N 100)], trans = 0},
++{fin = [(N 86),(N 100)], trans = 36},
++{fin = [(N 86)], trans = 36},
++{fin = [(N 100)], trans = 38},
++{fin = [(N 49)], trans = 0},
++{fin = [(N 44),(N 100)], trans = 0},
++{fin = [(N 46),(N 100)], trans = 0},
++{fin = [(N 98),(N 100)], trans = 42},
++{fin = [(N 5)], trans = 0},
++{fin = [(N 79),(N 100)], trans = 44},
++{fin = [(N 79)], trans = 44},
++{fin = [(N 100)], trans = 46},
++{fin = [(N 76)], trans = 47},
++{fin = [(N 76)], trans = 48},
++{fin = [(N 76)], trans = 49},
++{fin = [(N 76)], trans = 50},
++{fin = [(N 76)], trans = 51},
++{fin = [(N 62),(N 76)], trans = 47},
++{fin = [(N 76)], trans = 53},
++{fin = [(N 76)], trans = 54},
++{fin = [(N 76)], trans = 55},
++{fin = [(N 76)], trans = 56},
++{fin = [(N 76)], trans = 57},
++{fin = [(N 76)], trans = 58},
++{fin = [(N 76)], trans = 59},
++{fin = [(N 72),(N 76)], trans = 47},
++{fin = [(N 76)], trans = 61},
++{fin = [(N 76)], trans = 62},
++{fin = [(N 76)], trans = 63},
++{fin = [(N 55),(N 76)], trans = 47},
++{fin = [(N 89)], trans = 0},
++{fin = [(N 31),(N 100)], trans = 66},
++{fin = [(N 31)], trans = 66},
++{fin = [(N 26),(N 100)], trans = 68},
++{fin = [(N 26)], trans = 0},
++{fin = [(N 109)], trans = 70},
++{fin = [(N 104)], trans = 0},
++{fin = [(N 102)], trans = 72},
++{fin = [(N 8)], trans = 0},
++{fin = [(N 106)], trans = 0},
++{fin = [(N 19)], trans = 21},
++{fin = [(N 162)], trans = 0},
++{fin = [(N 160),(N 162)], trans = 0},
++{fin = [(N 158),(N 162)], trans = 78},
++{fin = [(N 158)], trans = 78},
++{fin = [(N 19),(N 162)], trans = 21},
++{fin = [(N 120)], trans = 81},
++{fin = [(N 111)], trans = 82},
++{fin = [(N 114)], trans = 0},
++{fin = [(N 111)], trans = 0},
++{fin = [(N 111)], trans = 85},
++{fin = [(N 117)], trans = 0},
++{fin = [(N 143)], trans = 87},
++{fin = [(N 135)], trans = 88},
++{fin = [(N 146)], trans = 0},
++{fin = [(N 155)], trans = 0},
++{fin = [(N 152)], trans = 91},
++{fin = [(N 152)], trans = 0},
++{fin = [(N 133)], trans = 0},
++{fin = [(N 140)], trans = 94},
++{fin = [(N 140)], trans = 0},
++{fin = [(N 131)], trans = 96},
++{fin = [(N 122)], trans = 97},
++{fin = [(N 125)], trans = 0},
++{fin = [(N 122)], trans = 0},
++{fin = [(N 122)], trans = 100},
++{fin = [(N 128)], trans = 0}])
++end
++structure StartStates =
++	struct
++	datatype yystartstate = STARTSTATE of int
++
++(* start state definitions *)
++
++val A = STARTSTATE 3;
++val CODE = STARTSTATE 5;
++val COMMENT = STARTSTATE 9;
++val EMPTYCOMMENT = STARTSTATE 13;
++val F = STARTSTATE 7;
++val INITIAL = STARTSTATE 1;
++val STRING = STARTSTATE 11;
++
++end
++type result = UserDeclarations.lexresult
++	exception LexerError (* raised if illegal leaf action tried *)
++end
++
++structure YYPosInt : INTEGER = Int
++fun makeLexer yyinput =
++let	val yygone0= YYPosInt.fromInt ~1
++	val yyb = ref "\n" 		(* buffer *)
++	val yybl = ref 1		(*buffer length *)
++	val yybufpos = ref 1		(* location of next character to use *)
++	val yygone = ref yygone0	(* position in file of beginning of buffer *)
++	val yydone = ref false		(* eof found yet? *)
++	val yybegin = ref 1		(*Current 'start state' for lexer *)
++
++	val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
++		 yybegin := x
++
++fun lex (yyarg as ((*#line 68.7 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)inputSource(*#line 786.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)) =
++let fun continue() : Internal.result = 
++  let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0) =
++	let fun action (i,nil) = raise LexError
++	| action (i,nil::l) = action (i-1,l)
++	| action (i,(node::acts)::l) =
++		case node of
++		    Internal.N yyk => 
++			(let fun yymktext() = substring(!yyb,i0,i-i0)
++			     val yypos = YYPosInt.+(YYPosInt.fromInt i0, !yygone)
++			open UserDeclarations Internal.StartStates
++ in (yybufpos := i; case yyk of 
++
++			(* Application actions *)
++
++  100 => let val yytext=yymktext() in (*#line 109.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)UNKNOWN(yytext,pos yypos,pos yypos)(*#line 802.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 102 => let val yytext=yymktext() in (*#line 110.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)inc pcount; Add yytext; continue()(*#line 804.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 104 => let val yytext=yymktext() in (*#line 111.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)dec pcount;
++                    if !pcount = 0 then
++                         PROG (concat (rev (!text)),!actionstart,pos yypos)
++                    else (Add yytext; continue())(*#line 809.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 106 => let val yytext=yymktext() in (*#line 115.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; YYBEGIN STRING; continue()(*#line 811.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 109 => let val yytext=yymktext() in (*#line 116.25 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 813.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 11 => let val yytext=yymktext() in (*#line 82.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 815.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 111 => let val yytext=yymktext() in (*#line 118.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 817.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 114 => let val yytext=yymktext() in (*#line 119.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; dec commentLevel;
++                    if !commentLevel=0
++                         then BOGUS_VALUE(pos yypos,pos yypos)
++                         else continue()
++                   (*#line 823.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 117 => let val yytext=yymktext() in (*#line 124.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; inc commentLevel; continue()(*#line 825.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 120 => let val yytext=yymktext() in (*#line 125.28 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 827.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 122 => ((*#line 127.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)continue()(*#line 829.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 125 => ((*#line 128.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)dec commentLevel;
++                          if !commentLevel=0 then YYBEGIN A else ();
++                          continue ()(*#line 833.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 128 => ((*#line 131.26 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)inc commentLevel; continue()(*#line 835.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 131 => ((*#line 132.33 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)continue()(*#line 837.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 133 => let val yytext=yymktext() in (*#line 134.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; YYBEGIN CODE; continue()(*#line 839.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 135 => let val yytext=yymktext() in (*#line 135.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 841.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 14 => ((*#line 83.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)YYBEGIN A; HEADER (concat (rev (!text)),pos yypos,pos yypos)(*#line 843.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 140 => let val yytext=yymktext() in (*#line 136.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; error inputSource (pos yypos) "unclosed string";
++                    incLineNum yypos; YYBEGIN CODE; continue()(*#line 846.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 143 => let val yytext=yymktext() in (*#line 138.27 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 848.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 146 => let val yytext=yymktext() in (*#line 139.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 850.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 152 => let val yytext=yymktext() in (*#line 140.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; incLineNum yypos; YYBEGIN F; continue()(*#line 852.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 155 => let val yytext=yymktext() in (*#line 141.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; YYBEGIN F; continue()(*#line 854.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 158 => let val yytext=yymktext() in (*#line 143.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 856.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 160 => let val yytext=yymktext() in (*#line 144.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; YYBEGIN STRING; continue()(*#line 858.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 162 => let val yytext=yymktext() in (*#line 145.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; error inputSource (pos yypos) "unclosed string";
++                    YYBEGIN CODE; continue()(*#line 861.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 19 => let val yytext=yymktext() in (*#line 84.49 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; incLineNum yypos; continue()(*#line 863.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 2 => let val yytext=yymktext() in (*#line 77.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; YYBEGIN COMMENT; commentLevel := 1;
++                    continue() before YYBEGIN INITIAL(*#line 866.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 21 => let val yytext=yymktext() in (*#line 85.22 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; continue()(*#line 868.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 26 => ((*#line 87.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)incLineNum yypos; continue ()(*#line 870.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 31 => ((*#line 88.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)continue()(*#line 872.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 34 => ((*#line 89.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)OF(pos yypos,pos yypos)(*#line 874.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 38 => ((*#line 90.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)FOR(pos yypos,pos yypos)(*#line 876.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 40 => ((*#line 91.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)LBRACE(pos yypos,pos yypos)(*#line 878.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 42 => ((*#line 92.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)RBRACE(pos yypos,pos yypos)(*#line 880.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 44 => ((*#line 93.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)COMMA(pos yypos,pos yypos)(*#line 882.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 46 => ((*#line 94.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)ASTERISK(pos yypos,pos yypos)(*#line 884.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 49 => ((*#line 95.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)ARROW(pos yypos,pos yypos)(*#line 886.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 5 => ((*#line 79.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)YYBEGIN EMPTYCOMMENT; commentLevel := 1; continue()(*#line 888.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 55 => ((*#line 96.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)PREC(Hdr.LEFT,pos yypos,pos yypos)(*#line 890.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 62 => ((*#line 97.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)PREC(Hdr.RIGHT,pos yypos,pos yypos)(*#line 892.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 72 => ((*#line 98.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)PREC(Hdr.NONASSOC,pos yypos,pos yypos)(*#line 894.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 76 => let val yytext=yymktext() in (*#line 99.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)lookup(yytext,pos yypos,pos yypos)(*#line 896.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 79 => let val yytext=yymktext() in (*#line 100.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)TYVAR(yytext,pos yypos,pos yypos)(*#line 898.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 8 => let val yytext=yymktext() in (*#line 80.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)Add yytext; YYBEGIN COMMENT; commentLevel := 1;
++                    continue() before YYBEGIN CODE(*#line 901.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 83 => let val yytext=yymktext() in (*#line 101.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)IDDOT(yytext,pos yypos,pos yypos)(*#line 903.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 86 => let val yytext=yymktext() in (*#line 102.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)INT (yytext,pos yypos,pos yypos)(*#line 905.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 89 => ((*#line 103.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)DELIMITER(pos yypos,pos yypos)(*#line 907.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 91 => ((*#line 104.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)COLON(pos yypos,pos yypos)(*#line 909.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 93 => ((*#line 105.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)BAR(pos yypos,pos yypos)(*#line 911.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| 96 => let val yytext=yymktext() in (*#line 106.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)ID ((yytext,pos yypos),pos yypos,pos yypos)(*#line 913.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++ end
++| 98 => ((*#line 107.21 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex"*)pcount := 1; actionstart := pos yypos;
++                    text := nil; YYBEGIN CODE; continue() before YYBEGIN A(*#line 916.1 "/home/agoode/fedora-git/mlton/mlton-20100608/mlyacc/src/yacc.lex.sml"*)
++)
++| _ => raise Internal.LexerError
++
++		) end )
++
++	val {fin,trans} = Vector.sub(Internal.tab, s)
++	val NewAcceptingLeaves = fin::AcceptingLeaves
++	in if l = !yybl then
++	     if trans = #trans(Vector.sub(Internal.tab,0))
++	       then action(l,NewAcceptingLeaves
++) else	    let val newchars= if !yydone then "" else yyinput 1024
++	    in if (size newchars)=0
++		  then (yydone := true;
++		        if (l=i0) then UserDeclarations.eof yyarg
++		                  else action(l,NewAcceptingLeaves))
++		  else (if i0=l then yyb := newchars
++		     else yyb := substring(!yyb,i0,l-i0)^newchars;
++		     yygone := YYPosInt.+(!yygone, YYPosInt.fromInt i0);
++		     yybl := size (!yyb);
++		     scan (s,AcceptingLeaves,l-i0,0))
++	    end
++	  else let val NewChar = Char.ord(CharVector.sub(!yyb,l))
++		val NewChar = if NewChar<128 then NewChar else 128
++		val NewState = Char.ord(CharVector.sub(trans,NewChar))
++		in if NewState=0 then action(l,NewAcceptingLeaves)
++		else scan(NewState,NewAcceptingLeaves,l+1,i0)
++	end
++	end
++(*
++	val start= if substring(!yyb,!yybufpos-1,1)="\n"
++then !yybegin+1 else !yybegin
++*)
++	in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos)
++    end
++in continue end
++  in lex
++  end
++end
diff --git a/mlton.spec b/mlton.spec
index cb733a7..d43ad45 100644
--- a/mlton.spec
+++ b/mlton.spec
@@ -1,8 +1,8 @@
-%global mlton_bootstrap 0
+%global mlton_bootstrap 1
 
 Name:		mlton
 Version:	20100608
-Release:	15%{?dist}
+Release:	16%{?dist}
 Summary:	Optimizing compiler for Standard ML
 
 Group:		Development/Languages
@@ -17,17 +17,11 @@ Patch3:		mlton-20100608-ppc64-platform.patch
 
 BuildRequires:	gmp-devel htmldoc tex(latex)
 
-%ifarch ppc
-%global mlton_bootstrap 1
-Source1:	mlton-20100608.ppc.tar.xz
-%endif
-
-%ifarch ppc64
-%global mlton_bootstrap 1
-Source1:	mlton-20100608.ppc64.tar.xz
-%endif
-
-%if !%{mlton_bootstrap}
+%if %{mlton_bootstrap}
+# generated from a system with mlton installed using ./generate-additional-mlton-source.sh
+Patch100:	mlton-%{version}-generated.patch
+BuildRequires:	polyml
+%else
 BuildRequires:	mlton
 %endif
 
@@ -71,22 +65,29 @@ multiprecision library, and lots of useful libraries.
 %patch3 -p1
 
 %if %{mlton_bootstrap}
-%setup -T -D -q -a 1
-sed -i 's/\(^lib=\).*$/\1\$MLTON_BOOTSTRAP_DIR\/%{_lib}\/mlton/g'  \
-	usr/bin/mlton
+# create bootstrap directory
+cd ..
+cp -av %{name}-%{version} %{name}-%{version}-bootstrap
+
+# add generated files
+cd %{name}-%{version}-bootstrap
+%patch100 -p1
 %endif
 
 
 %build
 %if %{mlton_bootstrap}
-export MLTON_BOOTSTRAP_DIR=$(pwd)/usr
-export PATH="${PATH}":$MLTON_BOOTSTRAP_DIR/bin
+# build the polyml-based bootstrap!
+cd ../%{name}-%{version}-bootstrap
+make dirs runtime polyml-mlton basis-no-check script mlbpathmap constants libraries tools
+export PATH=$PATH:$(pwd)/build/bin
+cd ../%{name}-%{version}
 %endif
 
 # https://github.com/MLton/mlton/issues/6
 # MLton needs quite a bit of memory to build, and by default uses 70% of
 # physical memory as the heap limit. This fails on 32-bit builds with
-# more than ~4.2GB of physical memory, due to address space exhaustion.
+# more than ~5.5GB of physical memory, due to address space exhaustion.
 %if %{__isa_bits} == 32
 # Some 32-bit builders have only 1GB of ram.
 %define runtime_args "max-heap 700M"
@@ -114,6 +115,9 @@ rm -rf $RPM_BUILD_ROOT%{_libdir}/mlton/sml/ckit-lib/regression
 
 
 %changelog
+* Mon Apr 22 2013 Adam Goode <adam at spicenitz.org> - 20100608-16
+- Scrap all the arch-specific bootstrapping, use polyml to do it
+
 * Sun Apr 21 2013 Adam Goode <adam at spicenitz.org> - 20100608-15
 - Try a more generalized bootstrap approach
 
diff --git a/sources b/sources
index e8e3327..59227cc 100644
--- a/sources
+++ b/sources
@@ -1,3 +1 @@
 8c53b68492a8aa41de06d35dc0e9d8fa  mlton-20100608.src.tgz
-e86ad7f99c4215bafa514ec59b2feba8  mlton-20100608.ppc64.tar.xz
-87e3ced9fc2f0a896860bd63c232af4b  mlton-20100608.ppc.tar.xz


More information about the scm-commits mailing list