src/HOL/TPTP/TPTP_Parser/tptp_lexyacc.ML
author sultana
Wed, 04 Apr 2012 16:29:16 +0100
changeset 47357 15e579392a68
parent 47316 15428dd82b54
child 47358 26c4e431ef05
permissions -rw-r--r--
refactored tptp yacc to bring close to official spec;


(******************************************************************)
(* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *)
(* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *)
(* GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT *)
(******************************************************************)

(*
  This file is produced from the parser generated by ML-Yacc from the
  source files tptp.lex and tptp.yacc.
*)
signature TPTP_TOKENS =
sig
type ('a,'b) token
type svalue
val LET_TT:  'a * 'a -> (svalue,'a) token
val LET_FT:  'a * 'a -> (svalue,'a) token
val LET_FF:  'a * 'a -> (svalue,'a) token
val LET_TF:  'a * 'a -> (svalue,'a) token
val ITE_T:  'a * 'a -> (svalue,'a) token
val ITE_F:  'a * 'a -> (svalue,'a) token
val CNF:  'a * 'a -> (svalue,'a) token
val FOF:  'a * 'a -> (svalue,'a) token
val TFF:  'a * 'a -> (svalue,'a) token
val THF:  'a * 'a -> (svalue,'a) token
val LET_TERM:  'a * 'a -> (svalue,'a) token
val SUBTYPE:  'a * 'a -> (svalue,'a) token
val ATOMIC_SYSTEM_WORD: (string) *  'a * 'a -> (svalue,'a) token
val ATOMIC_DEFINED_WORD: (string) *  'a * 'a -> (svalue,'a) token
val DEP_PROD:  'a * 'a -> (svalue,'a) token
val DEP_SUM:  'a * 'a -> (svalue,'a) token
val GENTZEN_ARROW:  'a * 'a -> (svalue,'a) token
val TIMES:  'a * 'a -> (svalue,'a) token
val PLUS:  'a * 'a -> (svalue,'a) token
val OPERATOR_EXISTS:  'a * 'a -> (svalue,'a) token
val OPERATOR_FORALL:  'a * 'a -> (svalue,'a) token
val DEFIN_CHOICE:  'a * 'a -> (svalue,'a) token
val INDEF_CHOICE:  'a * 'a -> (svalue,'a) token
val DUD:  'a * 'a -> (svalue,'a) token
val DISTINCT_OBJECT: (string) *  'a * 'a -> (svalue,'a) token
val COMMENT: (string) *  'a * 'a -> (svalue,'a) token
val LOWER_WORD: (string) *  'a * 'a -> (svalue,'a) token
val UPPER_WORD: (string) *  'a * 'a -> (svalue,'a) token
val SINGLE_QUOTED: (string) *  'a * 'a -> (svalue,'a) token
val DOT_DECIMAL: (string) *  'a * 'a -> (svalue,'a) token
val UNSIGNED_INTEGER: (string) *  'a * 'a -> (svalue,'a) token
val SIGNED_INTEGER: (string) *  'a * 'a -> (svalue,'a) token
val RATIONAL: (string) *  'a * 'a -> (svalue,'a) token
val REAL: (string) *  'a * 'a -> (svalue,'a) token
val DTFF:  'a * 'a -> (svalue,'a) token
val DFOT:  'a * 'a -> (svalue,'a) token
val DCNF:  'a * 'a -> (svalue,'a) token
val DFOF:  'a * 'a -> (svalue,'a) token
val DTHF:  'a * 'a -> (svalue,'a) token
val EOF:  'a * 'a -> (svalue,'a) token
val VLINE:  'a * 'a -> (svalue,'a) token
val TOK_TYPE:  'a * 'a -> (svalue,'a) token
val TOK_TRUE:  'a * 'a -> (svalue,'a) token
val TOK_RAT:  'a * 'a -> (svalue,'a) token
val TOK_REAL:  'a * 'a -> (svalue,'a) token
val TOK_INT:  'a * 'a -> (svalue,'a) token
val TOK_O:  'a * 'a -> (svalue,'a) token
val TOK_I:  'a * 'a -> (svalue,'a) token
val TOK_FALSE:  'a * 'a -> (svalue,'a) token
val TILDE:  'a * 'a -> (svalue,'a) token
val RPAREN:  'a * 'a -> (svalue,'a) token
val RBRKT:  'a * 'a -> (svalue,'a) token
val QUESTION:  'a * 'a -> (svalue,'a) token
val PPLUS:  'a * 'a -> (svalue,'a) token
val PERIOD:  'a * 'a -> (svalue,'a) token
val NOR:  'a * 'a -> (svalue,'a) token
val XOR:  'a * 'a -> (svalue,'a) token
val NEQUALS:  'a * 'a -> (svalue,'a) token
val NAND:  'a * 'a -> (svalue,'a) token
val MMINUS:  'a * 'a -> (svalue,'a) token
val MAP_TO:  'a * 'a -> (svalue,'a) token
val LPAREN:  'a * 'a -> (svalue,'a) token
val LBRKT:  'a * 'a -> (svalue,'a) token
val LAMBDA:  'a * 'a -> (svalue,'a) token
val INCLUDE:  'a * 'a -> (svalue,'a) token
val IMPLIES:  'a * 'a -> (svalue,'a) token
val IFF:  'a * 'a -> (svalue,'a) token
val FI:  'a * 'a -> (svalue,'a) token
val ARROW:  'a * 'a -> (svalue,'a) token
val LET:  'a * 'a -> (svalue,'a) token
val EXCLAMATION:  'a * 'a -> (svalue,'a) token
val EQUALS:  'a * 'a -> (svalue,'a) token
val COMMA:  'a * 'a -> (svalue,'a) token
val COLON:  'a * 'a -> (svalue,'a) token
val CARET:  'a * 'a -> (svalue,'a) token
val AT_SIGN:  'a * 'a -> (svalue,'a) token
val AMPERSAND:  'a * 'a -> (svalue,'a) token
end
signature TPTP_LRVALS=
sig
structure Tokens : TPTP_TOKENS
structure ParserData:PARSER_DATA
sharing type ParserData.Token.token = Tokens.token
sharing type ParserData.svalue = Tokens.svalue
end
functor TPTPLexFun(structure Tokens: TPTP_TOKENS)=
   struct
    structure UserDeclarations =
      struct
(*  Title:      HOL/TPTP/TPTP_Parser/tptp.lex
    Author:     Nik Sultana, Cambridge University Computer Laboratory

 Notes:
 * Omit %full in definitions to restrict alphabet to ascii.
 * Could include %posarg to ensure that start counting character positions from
   0, but it would punish performance.
 * %s AF F COMMENT; -- could improve by making stateful.

 Acknowledgements:
 * Geoff Sutcliffe for help with TPTP.
 * Timothy Bourke for his tips on getting ML-Yacc working with Poly/ML.
 * An early version of this was ported from the specification shipped with
   Leo-II, written by Frank Theiss.
 * Some boilerplate bits were taken from the ml-yacc/ml-lex manual by Roger Price.
 * Jasmin Blanchette and Makarius Wenzel for help with Isabelle integration.
*)

structure T = Tokens
type pos = int             (* Position in file *)
type lineNo = int
type svalue = T.svalue
type ('a,'b) token = ('a,'b) T.token
type lexresult = (svalue,pos) token
type lexarg = string
type arg = lexarg
val col = Unsynchronized.ref 0;
val linep = Unsynchronized.ref 1;         (* Line pointer *)
val eolpos = Unsynchronized.ref 0;

val badCh : string * string * int * int -> unit = fn
    (file_name, bad, line, col) =>
    TextIO.output(TextIO.stdOut, file_name ^ "["
          ^ Int.toString line ^ "." ^ Int.toString col
          ^ "] Invalid character \"" ^ bad ^ "\"\n");

val eof = fn file_name =>
  let
    val result = T.EOF (!linep,!col);
    val _ = linep := 0;
  in result end
(*here could check whether file ended prematurely:
 see if have open brackets, or if we're in some state other than INITIAL*)

val count_commentlines : string -> unit = fn str =>
  let
    val str' = String.explode str
    val newlines = List.filter (fn x => x = #"\n") str'
  in linep := (!linep) + (List.length newlines) end

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, 
"\000\000\000\000\000\000\000\000\000\144\146\000\000\145\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\144\140\134\000\102\090\089\083\082\081\080\078\077\072\070\057\
\\048\048\048\048\048\048\048\048\048\048\045\000\039\037\036\033\
\\030\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\028\000\027\026\000\
\\000\007\007\023\007\007\020\007\007\013\007\007\007\007\007\007\
\\007\007\007\007\008\007\007\007\007\007\007\000\006\000\003\000\
\\000"
),
 (3, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\
\\000"
),
 (7, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (8, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\011\007\009\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (9, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\010\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (11, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\012\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (13, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\014\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (14, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\015\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (15, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\007\007\007\007\007\007\016\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (16, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\017\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (17, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\018\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\
\\000"
),
 (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\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\019\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\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\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\021\
\\007\007\007\007\007\007\007\007\007\007\007\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\000\000\000\000\000\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\022\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\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\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\024\007\
\\007\007\007\007\007\007\007\007\007\007\007\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\000\000\000\000\000\000\000\
\\007\007\007\007\007\007\007\007\007\007\000\000\000\000\000\000\
\\000\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\000\000\000\000\007\
\\000\007\007\007\007\007\025\007\007\007\007\007\007\007\007\007\
\\007\007\007\007\007\007\007\007\007\007\007\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\000\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\000\000\000\000\000\000\000\032\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"
),
 (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\000\000\000\035\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\038\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\044\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\040\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\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\041\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\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\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"
),
 (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\000\000\000\000\000\000\000\000\000\047\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\046\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\051\049\
\\048\048\048\048\048\048\048\048\048\048\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\
\\050\050\050\050\050\050\050\050\050\050\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\
\\052\052\052\052\052\052\052\052\052\052\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\
\\052\052\052\052\052\052\052\052\052\052\000\000\000\000\000\000\
\\000\000\000\000\000\053\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\053\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\055\000\055\000\000\
\\054\054\054\054\054\054\054\054\054\054\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\
\\054\054\054\054\054\054\054\054\054\054\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\
\\056\056\056\056\056\056\056\056\056\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\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\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\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
 (58, 
"\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\059\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058"
),
 (59, 
"\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\059\058\058\058\058\060\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\058\
\\058"
),
 (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\000\064\000\000\000\000\000\000\000\000\000\061\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\062\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
 (62, 
"\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\063\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062"
),
 (63, 
"\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\063\062\062\062\062\060\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\062\
\\062"
),
 (64, 
"\064\064\064\064\064\064\064\064\064\064\000\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\065\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064"
),
 (65, 
"\064\064\064\064\064\064\064\064\064\064\000\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\066\064\064\064\064\065\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\064\
\\064"
),
 (66, 
"\066\066\066\066\066\066\066\066\066\066\062\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\069\066\066\066\066\067\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066"
),
 (67, 
"\066\066\066\066\066\066\066\066\066\066\062\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\068\066\066\066\066\067\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066"
),
 (69, 
"\066\066\066\066\066\066\066\066\066\066\062\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\069\066\066\066\066\065\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\066\
\\066"
),
 (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\000\000\000\000\000\000\000\000\000\000\000\000\
\\071\071\071\071\071\071\071\071\071\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\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\075\000\000\
\\074\074\074\074\074\074\074\074\074\074\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"
),
 (74, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\051\049\
\\074\074\074\074\074\074\074\074\074\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\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
 (78, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\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\
\\074\074\074\074\074\074\074\074\074\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\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
 (83, 
"\000\000\000\000\000\000\000\000\000\084\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\084\000\000\000\000\000\000\000\084\084\000\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\088\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\000\
\\000"
),
 (84, 
"\000\000\000\000\000\000\000\000\000\084\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\084\000\000\000\000\000\000\087\084\084\000\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\085\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\000\
\\000"
),
 (85, 
"\000\000\000\000\000\000\000\000\000\084\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\084\000\000\000\000\000\000\086\084\084\000\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\085\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\
\\084\084\084\084\084\084\084\084\084\084\084\084\084\084\084\000\
\\000"
),
 (90, 
"\090\090\090\090\090\090\090\090\090\090\000\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\101\090\090\090\090\090\090\090\090\090\091\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090"
),
 (91, 
"\090\090\090\090\090\090\090\090\090\090\000\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\101\090\090\090\090\092\090\090\090\090\091\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\090\
\\090"
),
 (92, 
"\092\092\092\092\092\092\092\092\092\092\062\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\096\092\092\092\092\095\092\092\092\092\093\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092"
),
 (93, 
"\092\092\092\092\092\092\092\092\092\092\062\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\096\092\092\092\092\094\092\092\092\092\093\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092"
),
 (95, 
"\092\092\092\092\092\092\092\092\092\092\062\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\096\092\092\092\092\095\092\092\092\092\091\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\092\
\\092"
),
 (96, 
"\096\096\096\096\096\096\096\096\096\096\062\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\099\096\096\096\096\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"
),
 (97, 
"\096\096\096\096\096\096\096\096\096\096\062\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\098\096\096\096\096\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"
),
 (99, 
"\096\096\096\096\096\096\096\096\096\096\062\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\099\096\096\096\096\100\
\\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"
),
 (100, 
"\101\101\101\101\101\101\101\101\101\101\000\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\096\101\101\101\101\100\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101"
),
 (101, 
"\101\101\101\101\101\101\101\101\101\101\000\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\100\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\101\
\\101"
),
 (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\132\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\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\103\129\103\103\125\103\103\119\103\103\109\103\103\103\
\\103\103\103\103\104\103\103\103\103\103\103\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\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\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\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\107\103\105\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\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\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\106\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (107, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\108\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (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\000\000\000\000\000\000\000\000\000\000\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\110\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\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\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\111\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (111, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\112\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\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\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\116\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\113\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (113, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\115\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\114\103\103\103\103\103\103\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\000\000\000\000\000\000\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\118\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\117\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (119, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\120\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (120, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\121\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (121, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\122\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (122, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\124\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\123\103\103\103\103\103\103\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\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\126\
\\103\103\103\103\103\103\103\103\103\103\103\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\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\128\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\127\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (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\
\\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\130\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (130, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\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\103\103\103\103\103\103\103\103\103\000\000\000\000\000\000\
\\000\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\103\
\\000\103\103\103\103\103\131\103\103\103\103\103\103\103\103\103\
\\103\103\103\103\103\103\103\103\103\103\103\000\000\000\000\000\
\\000"
),
 (132, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\133\133\133\133\133\133\133\133\133\133\133\133\133\133\133\
\\133\133\133\133\133\133\133\133\133\133\133\000\000\000\000\000\
\\000"
),
 (133, 
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\133\133\133\133\133\133\133\133\133\133\000\000\000\000\000\000\
\\000\133\133\133\133\133\133\133\133\133\133\133\133\133\133\133\
\\133\133\133\133\133\133\133\133\133\133\133\000\000\000\000\133\
\\000\133\133\133\133\133\133\133\133\133\133\133\133\133\133\133\
\\133\133\133\133\133\133\133\133\133\133\133\000\000\000\000\000\
\\000"
),
 (134, 
"\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\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\135\135\135\135\139\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\
\\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\135\
\\135\135\138\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\135\135\135\135\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\135\135\
\\135"
),
 (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\135\137\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\135\135\135\135\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\135\135\
\\135"
),
 (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\143\000\000\000\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\141\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000"
),
 (144, 
"\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\
\\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"
),
 (145, 
"\000\000\000\000\000\000\000\000\000\000\146\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
\\000\000\000\000\000\000\000\000\000\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 = [(N 84)], trans = 3},
{fin = [(N 71)], trans = 0},
{fin = [(N 61)], trans = 0},
{fin = [(N 86)], trans = 0},
{fin = [(N 283)], trans = 7},
{fin = [(N 283)], trans = 8},
{fin = [(N 283)], trans = 9},
{fin = [(N 186),(N 283)], trans = 7},
{fin = [(N 283)], trans = 11},
{fin = [(N 198),(N 283)], trans = 7},
{fin = [(N 283)], trans = 13},
{fin = [(N 283)], trans = 14},
{fin = [(N 283)], trans = 15},
{fin = [(N 283)], trans = 16},
{fin = [(N 283)], trans = 17},
{fin = [(N 283)], trans = 18},
{fin = [(N 206),(N 283)], trans = 7},
{fin = [(N 283)], trans = 20},
{fin = [(N 283)], trans = 21},
{fin = [(N 190),(N 283)], trans = 7},
{fin = [(N 283)], trans = 23},
{fin = [(N 283)], trans = 24},
{fin = [(N 194),(N 283)], trans = 7},
{fin = [(N 25)], trans = 0},
{fin = [(N 80)], trans = 0},
{fin = [(N 50)], trans = 0},
{fin = [(N 157)], trans = 29},
{fin = [(N 23)], trans = 30},
{fin = [(N 15)], trans = 0},
{fin = [(N 12)], trans = 0},
{fin = [(N 78)], trans = 33},
{fin = [(N 21)], trans = 0},
{fin = [(N 315)], trans = 0},
{fin = [(N 38)], trans = 0},
{fin = [(N 31)], trans = 37},
{fin = [(N 48)], trans = 0},
{fin = [], trans = 39},
{fin = [], trans = 40},
{fin = [(N 68)], trans = 0},
{fin = [(N 41)], trans = 42},
{fin = [(N 45)], trans = 0},
{fin = [(N 309)], trans = 0},
{fin = [(N 27)], trans = 45},
{fin = [(N 36)], trans = 0},
{fin = [(N 318)], trans = 0},
{fin = [(N 126)], trans = 48},
{fin = [], trans = 49},
{fin = [(N 104)], trans = 49},
{fin = [], trans = 51},
{fin = [(N 119)], trans = 52},
{fin = [], trans = 53},
{fin = [(N 119)], trans = 54},
{fin = [], trans = 55},
{fin = [(N 119)], trans = 55},
{fin = [], trans = 57},
{fin = [], trans = 58},
{fin = [], trans = 59},
{fin = [(N 182)], trans = 60},
{fin = [], trans = 61},
{fin = [], trans = 62},
{fin = [], trans = 63},
{fin = [(N 182)], trans = 64},
{fin = [(N 182)], trans = 65},
{fin = [(N 182)], trans = 66},
{fin = [(N 182)], trans = 67},
{fin = [(N 182)], trans = 66},
{fin = [(N 182)], trans = 69},
{fin = [(N 73)], trans = 70},
{fin = [(N 130)], trans = 70},
{fin = [], trans = 72},
{fin = [(N 55)], trans = 0},
{fin = [(N 123)], trans = 74},
{fin = [(N 58)], trans = 75},
{fin = [(N 306)], trans = 0},
{fin = [(N 29)], trans = 0},
{fin = [(N 300)], trans = 78},
{fin = [(N 76)], trans = 0},
{fin = [(N 302)], trans = 0},
{fin = [(N 82)], trans = 0},
{fin = [(N 52)], trans = 0},
{fin = [], trans = 83},
{fin = [], trans = 84},
{fin = [], trans = 85},
{fin = [(N 151)], trans = 84},
{fin = [(N 151)], trans = 0},
{fin = [], trans = 85},
{fin = [(N 9)], trans = 0},
{fin = [(N 182)], trans = 90},
{fin = [(N 182)], trans = 91},
{fin = [(N 182)], trans = 92},
{fin = [(N 182)], trans = 93},
{fin = [(N 182)], trans = 92},
{fin = [(N 182)], trans = 95},
{fin = [(N 182)], trans = 96},
{fin = [(N 182)], trans = 97},
{fin = [(N 182)], trans = 96},
{fin = [(N 182)], trans = 99},
{fin = [(N 182)], trans = 100},
{fin = [(N 182)], trans = 101},
{fin = [], trans = 102},
{fin = [(N 298)], trans = 103},
{fin = [(N 298)], trans = 104},
{fin = [(N 298)], trans = 105},
{fin = [(N 211),(N 298)], trans = 103},
{fin = [(N 298)], trans = 107},
{fin = [(N 231),(N 298)], trans = 103},
{fin = [(N 298)], trans = 109},
{fin = [(N 298)], trans = 110},
{fin = [(N 298)], trans = 111},
{fin = [(N 298)], trans = 112},
{fin = [(N 298)], trans = 113},
{fin = [(N 277),(N 298)], trans = 103},
{fin = [(N 253),(N 298)], trans = 103},
{fin = [(N 298)], trans = 116},
{fin = [(N 269),(N 298)], trans = 103},
{fin = [(N 261),(N 298)], trans = 103},
{fin = [(N 298)], trans = 119},
{fin = [(N 298)], trans = 120},
{fin = [(N 298)], trans = 121},
{fin = [(N 298)], trans = 122},
{fin = [(N 245),(N 298)], trans = 103},
{fin = [(N 238),(N 298)], trans = 103},
{fin = [(N 298)], trans = 125},
{fin = [(N 298)], trans = 126},
{fin = [(N 226),(N 298)], trans = 103},
{fin = [(N 216),(N 298)], trans = 103},
{fin = [(N 298)], trans = 129},
{fin = [(N 298)], trans = 130},
{fin = [(N 221),(N 298)], trans = 103},
{fin = [], trans = 132},
{fin = [(N 291)], trans = 133},
{fin = [], trans = 134},
{fin = [], trans = 135},
{fin = [], trans = 136},
{fin = [(N 95)], trans = 135},
{fin = [(N 95)], trans = 0},
{fin = [], trans = 136},
{fin = [(N 33)], trans = 140},
{fin = [(N 312)], trans = 0},
{fin = [(N 64)], trans = 0},
{fin = [(N 18)], trans = 0},
{fin = [(N 2)], trans = 144},
{fin = [(N 7)], trans = 145},
{fin = [(N 7)], trans = 0}])
end
structure StartStates =
	struct
	datatype yystartstate = STARTSTATE of int

(* start state definitions *)

val INITIAL = STARTSTATE 1;

end
type result = UserDeclarations.lexresult
	exception LexerError (* raised if illegal leaf action tried *)
end

fun makeLexer yyinput =
let	val yygone0=1
	val yyb = Unsynchronized.ref "\n" 		(* buffer *)
	val yybl = Unsynchronized.ref 1		(*buffer length *)
	val yybufpos = Unsynchronized.ref 1		(* location of next character to use *)
	val yygone = Unsynchronized.ref yygone0	(* position in file of beginning of buffer *)
	val yydone = Unsynchronized.ref false		(* eof found yet? *)
	val yybegin = Unsynchronized.ref 1		(*Current 'start state' for lexer *)

	val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
		 yybegin := x

fun lex (yyarg as (file_name:string)) =
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 = i0+ !yygone
			open UserDeclarations Internal.StartStates
 in (yybufpos := i; case yyk of 

			(* Application actions *)

  104 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.RATIONAL(yytext,!linep,!col) end
| 119 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.REAL(yytext,!linep,!col) end
| 12 => (col:=yypos-(!eolpos); T.INDEF_CHOICE(!linep,!col))
| 123 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.SIGNED_INTEGER(yytext,!linep,!col) end
| 126 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.UNSIGNED_INTEGER(yytext,!linep,!col) end
| 130 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.DOT_DECIMAL(yytext,!linep,!col) end
| 15 => (col:=yypos-(!eolpos); T.DEFIN_CHOICE(!linep,!col))
| 151 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.SINGLE_QUOTED(yytext,!linep,!col) end
| 157 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.UPPER_WORD(yytext,!linep,!col) end
| 18 => (col:=yypos-(!eolpos); T.OPERATOR_FORALL(!linep,!col))
| 182 => let val yytext=yymktext() in col:=yypos-(!eolpos); count_commentlines yytext;T.COMMENT(yytext,!linep,!col) end
| 186 => (col:=yypos-(!eolpos); T.THF(!linep,!col))
| 190 => (col:=yypos-(!eolpos); T.FOF(!linep,!col))
| 194 => (col:=yypos-(!eolpos); T.CNF(!linep,!col))
| 198 => (col:=yypos-(!eolpos); T.TFF(!linep,!col))
| 2 => let val yytext=yymktext() in col:=(!col)+size yytext; continue ()  end
| 206 => (col:=yypos-(!eolpos); T.INCLUDE(!linep,!col))
| 21 => (col:=yypos-(!eolpos); T.OPERATOR_EXISTS(!linep,!col))
| 211 => (col:=yypos-(!eolpos); T.DTHF(!linep,!col))
| 216 => (col:=yypos-(!eolpos); T.DFOF(!linep,!col))
| 221 => (col:=yypos-(!eolpos); T.DCNF(!linep,!col))
| 226 => (col:=yypos-(!eolpos); T.DFOT(!linep,!col))
| 23 => (col:=yypos-(!eolpos); T.AT_SIGN(!linep,!col))
| 231 => (col:=yypos-(!eolpos); T.DTFF(!linep,!col))
| 238 => (col:=yypos-(!eolpos); T.ITE_F(!linep,!col))
| 245 => (col:=yypos-(!eolpos); T.ITE_T(!linep,!col))
| 25 => (col:=yypos-(!eolpos); T.CARET(!linep,!col))
| 253 => (col:=yypos-(!eolpos); T.LET_TF(!linep,!col))
| 261 => (col:=yypos-(!eolpos); T.LET_FF(!linep,!col))
| 269 => (col:=yypos-(!eolpos); T.LET_FT(!linep,!col))
| 27 => (col:=yypos-(!eolpos); T.COLON(!linep,!col))
| 277 => (col:=yypos-(!eolpos); T.LET_TT(!linep,!col))
| 283 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.LOWER_WORD(yytext,!linep,!col) end
| 29 => (col:=yypos-(!eolpos); T.COMMA(!linep,!col))
| 291 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.ATOMIC_SYSTEM_WORD(yytext,!linep,!col) end
| 298 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.ATOMIC_DEFINED_WORD(yytext,!linep,!col) end
| 300 => (col:=yypos-(!eolpos); T.PLUS(!linep,!col))
| 302 => (col:=yypos-(!eolpos); T.TIMES(!linep,!col))
| 306 => (col:=yypos-(!eolpos); T.GENTZEN_ARROW(!linep,!col))
| 309 => (col:=yypos-(!eolpos); T.SUBTYPE(!linep,!col))
| 31 => (col:=yypos-(!eolpos); T.EQUALS(!linep,!col))
| 312 => (col:=yypos-(!eolpos); T.DEP_PROD(!linep,!col))
| 315 => (col:=yypos-(!eolpos); T.DEP_SUM(!linep,!col))
| 318 => (col:=yypos-(!eolpos); T.LET_TERM(!linep,!col))
| 33 => (col:=yypos-(!eolpos); T.EXCLAMATION(!linep,!col))
| 36 => (col:=yypos-(!eolpos); T.LET(!linep,!col))
| 38 => (col:=yypos-(!eolpos); T.ARROW(!linep,!col))
| 41 => (col:=yypos-(!eolpos); T.FI(!linep,!col))
| 45 => (col:=yypos-(!eolpos); T.IFF(!linep,!col))
| 48 => (col:=yypos-(!eolpos); T.IMPLIES(!linep,!col))
| 50 => (col:=yypos-(!eolpos); T.LBRKT(!linep,!col))
| 52 => (col:=yypos-(!eolpos); T.LPAREN(!linep,!col))
| 55 => (col:=yypos-(!eolpos); T.MAP_TO(!linep,!col))
| 58 => (col:=yypos-(!eolpos); T.MMINUS(!linep,!col))
| 61 => (col:=yypos-(!eolpos); T.NAND(!linep,!col))
| 64 => (col:=yypos-(!eolpos); T.NEQUALS(!linep,!col))
| 68 => (col:=yypos-(!eolpos); T.XOR(!linep,!col))
| 7 => let val yytext=yymktext() in linep:=(!linep)+1;
                   eolpos:=yypos+size yytext; continue () end
| 71 => (col:=yypos-(!eolpos); T.NOR(!linep,!col))
| 73 => (col:=yypos-(!eolpos); T.PERIOD(!linep,!col))
| 76 => (col:=yypos-(!eolpos); T.PPLUS(!linep,!col))
| 78 => (col:=yypos-(!eolpos); T.QUESTION(!linep,!col))
| 80 => (col:=yypos-(!eolpos); T.RBRKT(!linep,!col))
| 82 => (col:=yypos-(!eolpos); T.RPAREN(!linep,!col))
| 84 => (col:=yypos-(!eolpos); T.TILDE(!linep,!col))
| 86 => (col:=yypos-(!eolpos); T.VLINE(!linep,!col))
| 9 => (col:=yypos-(!eolpos); T.AMPERSAND(!linep,!col))
| 95 => let val yytext=yymktext() in col:=yypos-(!eolpos); T.DISTINCT_OBJECT(yytext,!linep,!col) 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 := !yygone+i0;
		     yybl := size (!yyb);
		     scan (s,AcceptingLeaves,l-i0,0))
	    end
	  else let val NewChar = Char.ord(String.sub(!yyb,l))
		val NewChar = if NewChar<128 then NewChar else 128
		val NewState = Char.ord(String.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
functor TPTPLrValsFun(structure Token : TOKEN)
 : sig structure ParserData : PARSER_DATA
       structure Tokens : TPTP_TOKENS
   end
 = 
struct
structure ParserData=
struct
structure Header = 
struct
open TPTP_Syntax

exception UNRECOGNISED_SYMBOL of string * string

exception UNRECOGNISED_ROLE of string
fun classify_role role =
  case role of
    "axiom" => Role_Axiom
  | "hypothesis" => Role_Hypothesis
  | "definition" => Role_Definition
  | "assumption" => Role_Assumption
  | "lemma" => Role_Lemma
  | "theorem" => Role_Theorem
  | "conjecture" => Role_Conjecture
  | "negated_conjecture" => Role_Negated_Conjecture
  | "plain" => Role_Plain
  | "fi_domain" => Role_Fi_Domain
  | "fi_functors" => Role_Fi_Functors
  | "fi_predicates" => Role_Fi_Predicates
  | "type" => Role_Type
  | "unknown" => Role_Unknown
  | thing => raise (UNRECOGNISED_ROLE thing)

fun extract_quant_info (Quant (quantifier, vars, tptp_formula)) =
  (quantifier, vars, tptp_formula)


end
structure LrTable = Token.LrTable
structure Token = Token
local open LrTable in 
val table=let val actionRows =
"\
\\001\000\001\000\050\002\002\000\050\002\004\000\067\002\005\000\050\002\
\\006\000\050\002\009\000\050\002\010\000\050\002\011\000\050\002\
\\012\000\050\002\019\000\050\002\020\000\050\002\021\000\050\002\
\\022\000\050\002\026\000\050\002\027\000\050\002\037\000\050\002\
\\059\000\050\002\060\000\050\002\000\000\
\\001\000\001\000\053\002\002\000\053\002\004\000\068\002\005\000\053\002\
\\006\000\053\002\009\000\053\002\010\000\053\002\011\000\053\002\
\\012\000\053\002\019\000\053\002\020\000\053\002\021\000\053\002\
\\022\000\053\002\026\000\053\002\027\000\053\002\037\000\053\002\
\\059\000\053\002\060\000\053\002\000\000\
\\001\000\001\000\217\002\005\000\217\002\006\000\232\002\010\000\217\002\
\\011\000\217\002\012\000\217\002\019\000\217\002\020\000\232\002\
\\021\000\217\002\022\000\217\002\026\000\217\002\027\000\217\002\
\\037\000\217\002\000\000\
\\001\000\001\000\220\002\005\000\220\002\006\000\243\002\010\000\220\002\
\\011\000\220\002\012\000\220\002\019\000\220\002\020\000\243\002\
\\021\000\220\002\022\000\220\002\026\000\220\002\027\000\220\002\
\\037\000\220\002\000\000\
\\001\000\001\000\227\002\005\000\227\002\006\000\234\002\010\000\227\002\
\\011\000\227\002\012\000\227\002\019\000\227\002\020\000\234\002\
\\021\000\227\002\022\000\227\002\026\000\227\002\027\000\227\002\
\\037\000\227\002\000\000\
\\001\000\001\000\237\002\004\000\128\002\005\000\237\002\006\000\237\002\
\\010\000\237\002\011\000\237\002\012\000\237\002\016\000\220\000\
\\019\000\237\002\020\000\237\002\021\000\237\002\022\000\237\002\
\\027\000\237\002\037\000\237\002\000\000\
\\001\000\001\000\250\002\004\000\129\002\005\000\250\002\006\000\250\002\
\\010\000\250\002\011\000\250\002\012\000\250\002\016\000\215\000\
\\019\000\250\002\020\000\250\002\021\000\250\002\022\000\250\002\
\\027\000\250\002\037\000\250\002\000\000\
\\001\000\001\000\209\000\003\000\208\000\006\000\207\000\007\000\122\000\
\\010\000\206\000\011\000\205\000\012\000\204\000\013\000\035\000\
\\015\000\203\000\016\000\202\000\019\000\201\000\020\000\200\000\
\\021\000\199\000\022\000\198\000\025\000\119\000\028\000\118\000\
\\037\000\197\000\044\000\099\000\045\000\098\000\046\000\034\000\
\\047\000\033\000\049\000\032\000\050\000\097\000\051\000\031\000\
\\053\000\096\000\055\000\196\000\056\000\195\000\057\000\194\000\
\\058\000\193\000\062\000\192\000\063\000\191\000\064\000\095\000\
\\065\000\094\000\068\000\030\000\069\000\029\000\070\000\028\000\
\\071\000\027\000\072\000\190\000\073\000\093\000\074\000\189\000\
\\076\000\092\000\077\000\091\000\000\000\
\\001\000\001\000\209\000\003\000\208\000\006\000\207\000\007\000\122\000\
\\010\000\206\000\011\000\205\000\012\000\204\000\013\000\035\000\
\\016\000\031\001\019\000\201\000\020\000\200\000\021\000\199\000\
\\022\000\198\000\025\000\119\000\026\000\030\001\028\000\118\000\
\\037\000\197\000\044\000\099\000\045\000\098\000\046\000\034\000\
\\047\000\033\000\049\000\032\000\050\000\097\000\051\000\031\000\
\\053\000\096\000\055\000\196\000\056\000\195\000\057\000\194\000\
\\058\000\193\000\062\000\192\000\063\000\191\000\064\000\095\000\
\\065\000\094\000\068\000\030\000\069\000\029\000\070\000\028\000\
\\071\000\027\000\072\000\190\000\073\000\093\000\074\000\189\000\
\\076\000\092\000\077\000\091\000\000\000\
\\001\000\001\000\209\000\003\000\208\000\006\000\207\000\007\000\122\000\
\\010\000\206\000\011\000\205\000\012\000\204\000\013\000\035\000\
\\016\000\031\001\019\000\201\000\020\000\200\000\021\000\199\000\
\\022\000\198\000\025\000\119\000\028\000\118\000\037\000\197\000\
\\044\000\099\000\045\000\098\000\046\000\034\000\047\000\033\000\
\\049\000\032\000\050\000\097\000\051\000\031\000\053\000\096\000\
\\055\000\196\000\056\000\195\000\057\000\194\000\058\000\193\000\
\\062\000\192\000\063\000\191\000\064\000\095\000\065\000\094\000\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\
\\072\000\190\000\073\000\093\000\074\000\189\000\076\000\092\000\
\\077\000\091\000\000\000\
\\001\000\001\000\209\000\003\000\208\000\006\000\207\000\007\000\122\000\
\\010\000\206\000\011\000\205\000\012\000\204\000\013\000\035\000\
\\016\000\108\001\019\000\201\000\020\000\200\000\021\000\199\000\
\\022\000\198\000\025\000\119\000\028\000\118\000\037\000\197\000\
\\044\000\099\000\045\000\098\000\046\000\034\000\047\000\033\000\
\\049\000\032\000\050\000\097\000\051\000\031\000\053\000\096\000\
\\055\000\196\000\056\000\195\000\057\000\194\000\058\000\193\000\
\\062\000\192\000\063\000\191\000\064\000\095\000\065\000\094\000\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\
\\072\000\190\000\073\000\093\000\074\000\189\000\076\000\092\000\
\\077\000\091\000\000\000\
\\001\000\001\000\013\001\002\000\012\001\005\000\032\002\006\000\207\000\
\\009\000\071\002\010\000\206\000\011\000\205\000\012\000\204\000\
\\019\000\201\000\020\000\200\000\021\000\199\000\022\000\198\000\
\\026\000\032\002\027\000\032\002\037\000\011\001\059\000\071\002\
\\060\000\071\002\000\000\
\\001\000\003\000\208\000\007\000\122\000\025\000\119\000\055\000\196\000\
\\056\000\195\000\062\000\192\000\063\000\191\000\000\000\
\\001\000\004\000\248\000\000\000\
\\001\000\004\000\014\001\000\000\
\\001\000\004\000\203\001\000\000\
\\001\000\004\000\215\001\000\000\
\\001\000\004\000\222\001\000\000\
\\001\000\004\000\253\001\000\000\
\\001\000\005\000\130\002\009\000\137\002\027\000\130\002\000\000\
\\001\000\005\000\041\000\000\000\
\\001\000\005\000\042\000\000\000\
\\001\000\005\000\043\000\000\000\
\\001\000\005\000\044\000\000\000\
\\001\000\005\000\054\000\000\000\
\\001\000\005\000\055\000\000\000\
\\001\000\005\000\056\000\000\000\
\\001\000\005\000\057\000\000\000\
\\001\000\005\000\156\001\000\000\
\\001\000\005\000\157\001\000\000\
\\001\000\005\000\158\001\000\000\
\\001\000\005\000\175\001\000\000\
\\001\000\005\000\176\001\000\000\
\\001\000\005\000\177\001\000\000\
\\001\000\005\000\185\001\000\000\
\\001\000\005\000\186\001\000\000\
\\001\000\005\000\236\001\000\000\
\\001\000\005\000\247\001\000\000\
\\001\000\005\000\250\001\000\000\
\\001\000\006\000\207\000\000\000\
\\001\000\006\000\207\000\020\000\200\000\000\000\
\\001\000\007\000\122\000\013\000\035\000\015\000\121\000\016\000\120\000\
\\025\000\119\000\028\000\118\000\044\000\099\000\045\000\098\000\
\\046\000\034\000\047\000\033\000\049\000\032\000\050\000\097\000\
\\051\000\031\000\053\000\096\000\064\000\095\000\065\000\094\000\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\
\\073\000\093\000\076\000\092\000\077\000\091\000\000\000\
\\001\000\007\000\122\000\013\000\035\000\015\000\149\000\016\000\148\000\
\\025\000\119\000\028\000\118\000\044\000\099\000\045\000\098\000\
\\046\000\034\000\047\000\033\000\049\000\032\000\050\000\097\000\
\\051\000\031\000\053\000\096\000\064\000\095\000\065\000\094\000\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\
\\072\000\147\000\073\000\093\000\074\000\146\000\075\000\145\000\
\\076\000\092\000\077\000\091\000\000\000\
\\001\000\007\000\122\000\013\000\035\000\016\000\236\000\025\000\119\000\
\\026\000\241\000\028\000\118\000\044\000\099\000\045\000\098\000\
\\046\000\034\000\047\000\033\000\049\000\032\000\050\000\097\000\
\\051\000\031\000\053\000\096\000\064\000\095\000\065\000\094\000\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\
\\073\000\093\000\076\000\092\000\077\000\091\000\000\000\
\\001\000\007\000\122\000\013\000\035\000\016\000\236\000\025\000\119\000\
\\028\000\118\000\044\000\099\000\045\000\098\000\046\000\034\000\
\\047\000\033\000\049\000\032\000\050\000\097\000\051\000\031\000\
\\053\000\096\000\064\000\095\000\065\000\094\000\068\000\030\000\
\\069\000\029\000\070\000\028\000\071\000\027\000\073\000\093\000\
\\076\000\092\000\077\000\091\000\000\000\
\\001\000\007\000\122\000\013\000\035\000\016\000\252\000\025\000\119\000\
\\026\000\005\001\028\000\118\000\044\000\099\000\045\000\098\000\
\\046\000\034\000\047\000\033\000\049\000\032\000\050\000\097\000\
\\051\000\031\000\053\000\096\000\064\000\095\000\065\000\094\000\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\
\\072\000\147\000\073\000\093\000\074\000\146\000\075\000\145\000\
\\076\000\092\000\077\000\091\000\000\000\
\\001\000\007\000\122\000\013\000\035\000\016\000\252\000\025\000\119\000\
\\028\000\118\000\044\000\099\000\045\000\098\000\046\000\034\000\
\\047\000\033\000\049\000\032\000\050\000\097\000\051\000\031\000\
\\053\000\096\000\064\000\095\000\065\000\094\000\068\000\030\000\
\\069\000\029\000\070\000\028\000\071\000\027\000\072\000\147\000\
\\073\000\093\000\074\000\146\000\075\000\145\000\076\000\092\000\
\\077\000\091\000\000\000\
\\001\000\007\000\122\000\025\000\119\000\000\000\
\\001\000\009\000\138\002\027\000\149\002\060\000\149\002\000\000\
\\001\000\009\000\017\001\059\000\016\001\060\000\015\001\000\000\
\\001\000\009\000\164\001\000\000\
\\001\000\013\000\035\000\015\000\048\001\026\000\151\001\039\000\047\001\
\\040\000\046\001\041\000\045\001\042\000\044\001\043\000\043\001\
\\044\000\099\000\045\000\098\000\046\000\034\000\047\000\033\000\
\\049\000\032\000\050\000\097\000\051\000\031\000\053\000\042\001\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\000\000\
\\001\000\013\000\035\000\015\000\048\001\039\000\047\001\040\000\046\001\
\\041\000\045\001\042\000\044\001\043\000\043\001\044\000\099\000\
\\045\000\098\000\046\000\034\000\047\000\033\000\049\000\032\000\
\\050\000\097\000\051\000\031\000\053\000\042\001\068\000\030\000\
\\069\000\029\000\070\000\028\000\071\000\027\000\000\000\
\\001\000\013\000\035\000\016\000\101\000\028\000\100\000\044\000\099\000\
\\045\000\098\000\046\000\034\000\047\000\033\000\049\000\032\000\
\\050\000\097\000\051\000\031\000\053\000\096\000\064\000\095\000\
\\065\000\094\000\068\000\030\000\069\000\029\000\070\000\028\000\
\\071\000\027\000\073\000\093\000\076\000\092\000\077\000\091\000\000\000\
\\001\000\013\000\035\000\016\000\091\001\049\000\032\000\050\000\097\000\
\\051\000\031\000\063\000\090\001\064\000\089\001\068\000\030\000\
\\069\000\029\000\070\000\028\000\071\000\027\000\000\000\
\\001\000\013\000\035\000\016\000\171\001\049\000\032\000\050\000\097\000\
\\051\000\031\000\063\000\090\001\064\000\089\001\068\000\030\000\
\\069\000\029\000\070\000\028\000\071\000\027\000\000\000\
\\001\000\013\000\035\000\016\000\003\002\049\000\032\000\050\000\097\000\
\\051\000\031\000\064\000\089\001\068\000\030\000\069\000\029\000\
\\070\000\028\000\071\000\027\000\000\000\
\\001\000\013\000\035\000\016\000\008\002\049\000\032\000\050\000\097\000\
\\051\000\031\000\064\000\089\001\068\000\030\000\069\000\029\000\
\\070\000\028\000\071\000\027\000\000\000\
\\001\000\013\000\035\000\016\000\010\002\049\000\032\000\050\000\097\000\
\\051\000\031\000\064\000\089\001\068\000\030\000\069\000\029\000\
\\070\000\028\000\071\000\027\000\000\000\
\\001\000\013\000\035\000\028\000\100\000\044\000\099\000\045\000\098\000\
\\046\000\034\000\047\000\033\000\049\000\032\000\050\000\097\000\
\\051\000\031\000\053\000\096\000\064\000\095\000\065\000\094\000\
\\068\000\030\000\069\000\029\000\070\000\028\000\071\000\027\000\
\\073\000\093\000\076\000\092\000\077\000\091\000\000\000\
\\001\000\013\000\035\000\044\000\099\000\045\000\098\000\046\000\034\000\
\\047\000\033\000\049\000\032\000\050\000\097\000\051\000\031\000\
\\053\000\096\000\064\000\095\000\065\000\094\000\068\000\030\000\
\\069\000\029\000\070\000\028\000\071\000\027\000\073\000\093\000\
\\076\000\092\000\077\000\091\000\000\000\
\\001\000\013\000\035\000\046\000\034\000\047\000\033\000\049\000\032\000\
\\051\000\031\000\068\000\030\000\069\000\029\000\070\000\028\000\
\\071\000\027\000\000\000\
\\001\000\013\000\035\000\049\000\032\000\050\000\097\000\051\000\031\000\
\\064\000\089\001\068\000\030\000\069\000\029\000\070\000\028\000\
\\071\000\027\000\000\000\
\\001\000\013\000\035\000\049\000\032\000\051\000\031\000\068\000\030\000\
\\069\000\029\000\070\000\028\000\071\000\027\000\000\000\
\\001\000\015\000\053\000\000\000\
\\001\000\015\000\121\000\000\000\
\\001\000\015\000\149\000\000\000\
\\001\000\015\000\203\000\000\000\
\\001\000\015\000\234\000\000\000\
\\001\000\015\000\250\000\000\000\
\\001\000\015\000\021\001\000\000\
\\001\000\015\000\048\001\000\000\
\\001\000\015\000\166\001\000\000\
\\001\000\016\000\018\000\000\000\
\\001\000\016\000\019\000\000\000\
\\001\000\016\000\020\000\000\000\
\\001\000\016\000\021\000\000\000\
\\001\000\016\000\023\000\000\000\
\\001\000\016\000\221\000\000\000\
\\001\000\016\000\222\000\000\000\
\\001\000\016\000\223\000\000\000\
\\001\000\016\000\253\000\000\000\
\\001\000\016\000\254\000\000\000\
\\001\000\016\000\255\000\000\000\
\\001\000\016\000\024\001\000\000\
\\001\000\016\000\025\001\000\000\
\\001\000\016\000\144\001\000\000\
\\001\000\016\000\145\001\000\000\
\\001\000\016\000\146\001\000\000\
\\001\000\016\000\147\001\000\000\
\\001\000\016\000\148\001\000\000\
\\001\000\023\000\058\000\000\000\
\\001\000\023\000\139\001\000\000\
\\001\000\023\000\159\001\000\000\
\\001\000\023\000\163\001\000\000\
\\001\000\023\000\179\001\000\000\
\\001\000\026\000\210\000\000\000\
\\001\000\026\000\074\001\000\000\
\\001\000\026\000\104\001\000\000\
\\001\000\026\000\138\001\000\000\
\\001\000\026\000\160\001\000\000\
\\001\000\026\000\172\001\000\000\
\\001\000\026\000\181\001\000\000\
\\001\000\026\000\198\001\000\000\
\\001\000\026\000\240\001\000\000\
\\001\000\027\000\052\000\000\000\
\\001\000\027\000\033\001\000\000\
\\001\000\027\000\061\001\037\000\214\000\000\000\
\\001\000\027\000\062\001\000\000\
\\001\000\027\000\071\001\000\000\
\\001\000\027\000\072\001\000\000\
\\001\000\027\000\075\001\000\000\
\\001\000\027\000\100\001\000\000\
\\001\000\027\000\101\001\000\000\
\\001\000\027\000\102\001\000\000\
\\001\000\027\000\105\001\000\000\
\\001\000\027\000\135\001\000\000\
\\001\000\027\000\136\001\000\000\
\\001\000\027\000\152\001\000\000\
\\001\000\027\000\154\001\000\000\
\\001\000\027\000\155\001\000\000\
\\001\000\027\000\184\001\000\000\
\\001\000\027\000\209\001\000\000\
\\001\000\027\000\211\001\000\000\
\\001\000\027\000\213\001\060\000\212\001\000\000\
\\001\000\027\000\221\001\000\000\
\\001\000\027\000\227\001\000\000\
\\001\000\027\000\228\001\000\000\
\\001\000\027\000\229\001\000\000\
\\001\000\027\000\230\001\000\000\
\\001\000\027\000\231\001\000\000\
\\001\000\027\000\232\001\000\000\
\\001\000\027\000\234\001\000\000\
\\001\000\027\000\235\001\000\000\
\\001\000\027\000\238\001\000\000\
\\001\000\027\000\243\001\060\000\212\001\000\000\
\\001\000\027\000\245\001\000\000\
\\001\000\027\000\246\001\000\000\
\\001\000\027\000\249\001\000\000\
\\001\000\027\000\000\002\000\000\
\\001\000\027\000\004\002\000\000\
\\001\000\027\000\005\002\000\000\
\\001\000\027\000\009\002\000\000\
\\001\000\038\000\000\000\000\000\
\\001\000\049\000\040\000\000\000\
\\001\000\050\000\097\000\000\000\
\\001\000\051\000\048\000\000\000\
\\001\000\061\000\233\000\000\000\
\\001\000\061\000\249\000\000\000\
\\001\000\061\000\020\001\000\000\
\\012\002\000\000\
\\013\002\000\000\
\\014\002\000\000\
\\015\002\013\000\016\000\052\000\015\000\068\000\014\000\069\000\013\000\
\\070\000\012\000\071\000\011\000\000\000\
\\016\002\000\000\
\\017\002\000\000\
\\018\002\000\000\
\\019\002\000\000\
\\020\002\000\000\
\\021\002\000\000\
\\022\002\000\000\
\\023\002\000\000\
\\024\002\000\000\
\\025\002\000\000\
\\026\002\000\000\
\\027\002\005\000\213\000\000\000\
\\028\002\000\000\
\\029\002\000\000\
\\030\002\000\000\
\\031\002\000\000\
\\033\002\000\000\
\\034\002\000\000\
\\035\002\000\000\
\\036\002\000\000\
\\037\002\000\000\
\\038\002\000\000\
\\039\002\037\000\007\001\000\000\
\\040\002\001\000\008\001\000\000\
\\041\002\002\000\009\001\000\000\
\\042\002\000\000\
\\043\002\000\000\
\\044\002\000\000\
\\045\002\000\000\
\\046\002\000\000\
\\047\002\000\000\
\\048\002\000\000\
\\049\002\000\000\
\\050\002\000\000\
\\051\002\000\000\
\\052\002\000\000\
\\053\002\000\000\
\\054\002\000\000\
\\055\002\005\000\182\001\000\000\
\\056\002\000\000\
\\057\002\000\000\
\\058\002\004\000\183\001\000\000\
\\059\002\000\000\
\\060\002\000\000\
\\061\002\000\000\
\\062\002\000\000\
\\063\002\000\000\
\\064\002\000\000\
\\065\002\000\000\
\\066\002\000\000\
\\069\002\000\000\
\\070\002\000\000\
\\071\002\000\000\
\\072\002\000\000\
\\073\002\060\000\018\001\000\000\
\\074\002\059\000\019\001\000\000\
\\075\002\009\000\017\001\000\000\
\\076\002\000\000\
\\077\002\000\000\
\\078\002\000\000\
\\079\002\000\000\
\\080\002\000\000\
\\081\002\000\000\
\\082\002\000\000\
\\083\002\000\000\
\\084\002\000\000\
\\085\002\005\000\137\001\000\000\
\\086\002\000\000\
\\087\002\000\000\
\\088\002\000\000\
\\089\002\000\000\
\\090\002\000\000\
\\091\002\001\000\247\000\010\000\206\000\011\000\205\000\012\000\204\000\
\\019\000\201\000\021\000\199\000\022\000\198\000\037\000\246\000\000\000\
\\092\002\000\000\
\\093\002\000\000\
\\094\002\000\000\
\\095\002\037\000\243\000\000\000\
\\096\002\001\000\244\000\000\000\
\\097\002\000\000\
\\098\002\000\000\
\\099\002\000\000\
\\100\002\000\000\
\\101\002\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\005\000\173\001\000\000\
\\109\002\000\000\
\\110\002\000\000\
\\111\002\004\000\174\001\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\000\000\
\\124\002\000\000\
\\125\002\005\000\103\001\000\000\
\\126\002\000\000\
\\127\002\000\000\
\\131\002\000\000\
\\132\002\000\000\
\\133\002\000\000\
\\134\002\000\000\
\\135\002\000\000\
\\136\002\000\000\
\\137\002\000\000\
\\137\002\060\000\210\001\000\000\
\\138\002\000\000\
\\139\002\016\000\165\001\000\000\
\\140\002\000\000\
\\141\002\000\000\
\\142\002\000\000\
\\143\002\005\000\239\001\000\000\
\\144\002\000\000\
\\145\002\000\000\
\\146\002\000\000\
\\147\002\000\000\
\\148\002\000\000\
\\150\002\000\000\
\\151\002\000\000\
\\152\002\000\000\
\\153\002\001\000\232\000\010\000\206\000\011\000\205\000\012\000\204\000\
\\019\000\201\000\021\000\199\000\022\000\198\000\037\000\231\000\000\000\
\\154\002\000\000\
\\155\002\000\000\
\\156\002\000\000\
\\157\002\037\000\228\000\000\000\
\\158\002\001\000\229\000\000\000\
\\159\002\000\000\
\\160\002\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\005\000\161\001\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\005\000\073\001\000\000\
\\177\002\000\000\
\\178\002\000\000\
\\179\002\037\000\214\000\000\000\
\\180\002\000\000\
\\181\002\000\000\
\\182\002\000\000\
\\183\002\000\000\
\\184\002\000\000\
\\185\002\000\000\
\\186\002\000\000\
\\187\002\016\000\022\001\000\000\
\\188\002\000\000\
\\189\002\000\000\
\\190\002\000\000\
\\191\002\000\000\
\\192\002\000\000\
\\193\002\000\000\
\\194\002\000\000\
\\195\002\000\000\
\\196\002\000\000\
\\197\002\000\000\
\\198\002\000\000\
\\199\002\000\000\
\\200\002\000\000\
\\201\002\000\000\
\\202\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\000\000\
\\209\002\000\000\
\\210\002\000\000\
\\211\002\000\000\
\\212\002\000\000\
\\214\002\000\000\
\\215\002\000\000\
\\216\002\000\000\
\\218\002\000\000\
\\219\002\000\000\
\\223\002\000\000\
\\224\002\000\000\
\\225\002\000\000\
\\226\002\000\000\
\\228\002\000\000\
\\229\002\000\000\
\\230\002\000\000\
\\231\002\000\000\
\\232\002\000\000\
\\233\002\000\000\
\\234\002\000\000\
\\235\002\000\000\
\\235\002\066\000\023\001\000\000\
\\236\002\000\000\
\\237\002\000\000\
\\237\002\016\000\220\000\000\000\
\\238\002\000\000\
\\239\002\000\000\
\\240\002\000\000\
\\241\002\000\000\
\\242\002\000\000\
\\243\002\000\000\
\\244\002\000\000\
\\245\002\000\000\
\\246\002\016\000\216\000\000\000\
\\247\002\000\000\
\\248\002\000\000\
\\249\002\000\000\
\\250\002\016\000\215\000\000\000\
\\251\002\000\000\
\\252\002\000\000\
\\253\002\005\000\153\001\000\000\
\\254\002\000\000\
\\255\002\000\000\
\\000\003\000\000\
\\001\003\000\000\
\\002\003\000\000\
\\003\003\005\000\143\001\000\000\
\\004\003\000\000\
\\005\003\000\000\
\\006\003\000\000\
\\007\003\005\000\046\000\000\000\
\\008\003\000\000\
\\009\003\005\000\211\000\000\000\
\\010\003\004\000\140\001\000\000\
\\011\003\000\000\
\\012\003\000\000\
\\013\003\016\000\141\001\000\000\
\\014\003\000\000\
\\015\003\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\005\000\197\001\000\000\
\\029\003\000\000\
\\030\003\000\000\
\\031\003\000\000\
\\032\003\000\000\
\\033\003\000\000\
\\034\003\000\000\
\\035\003\000\000\
\\036\003\000\000\
\\037\003\000\000\
\\038\003\000\000\
\\039\003\000\000\
\\040\003\000\000\
\\041\003\000\000\
\\042\003\000\000\
\\043\003\000\000\
\"
val actionRowNumbers =
"\153\000\150\000\153\000\155\000\
\\154\000\156\000\157\000\158\000\
\\159\000\073\000\074\000\075\000\
\\076\000\153\000\077\000\151\000\
\\061\000\061\000\061\000\061\000\
\\152\000\144\000\158\001\157\001\
\\020\000\164\001\163\001\162\001\
\\161\001\159\001\160\001\166\001\
\\167\001\165\001\021\000\022\000\
\\023\000\135\001\171\001\146\000\
\\146\000\146\000\146\000\105\000\
\\064\000\024\000\166\000\025\000\
\\026\000\027\000\091\000\061\000\
\\053\000\041\000\042\000\007\000\
\\133\001\096\000\137\001\101\001\
\\165\000\055\001\056\001\060\001\
\\058\001\089\001\090\001\092\001\
\\093\001\091\001\100\001\098\001\
\\002\000\105\001\103\001\111\001\
\\112\001\003\000\116\001\004\000\
\\120\001\122\001\118\001\040\000\
\\109\001\168\001\113\001\099\001\
\\110\001\078\000\079\000\080\000\
\\123\001\119\001\114\001\124\001\
\\170\001\169\001\060\000\059\000\
\\165\000\026\001\028\001\030\001\
\\031\001\033\001\034\001\029\001\
\\039\001\040\001\027\001\147\000\
\\047\001\068\000\044\000\041\001\
\\087\001\078\001\041\000\043\000\
\\077\001\240\000\165\000\222\000\
\\225\000\227\000\228\000\230\000\
\\231\000\226\000\236\000\237\000\
\\223\000\013\000\239\000\224\000\
\\148\000\249\000\069\000\046\000\
\\238\000\006\000\005\000\081\000\
\\082\000\083\000\042\000\045\000\
\\165\000\167\000\169\000\172\000\
\\173\000\176\000\177\000\178\000\
\\011\000\185\000\186\000\170\000\
\\014\000\171\000\049\000\174\000\
\\207\000\208\000\209\000\000\000\
\\189\000\188\000\168\000\149\000\
\\199\000\070\000\061\001\063\001\
\\065\001\073\001\062\001\074\001\
\\072\001\071\001\102\001\106\001\
\\115\001\104\001\198\000\084\000\
\\085\000\067\001\068\001\076\001\
\\075\001\070\001\069\001\085\001\
\\083\001\082\001\097\001\084\001\
\\007\000\008\000\080\001\079\001\
\\081\001\096\001\066\001\086\001\
\\134\001\061\000\106\000\052\000\
\\059\000\060\000\060\000\060\000\
\\060\000\095\001\060\000\047\000\
\\047\000\046\000\059\001\039\000\
\\107\000\108\000\044\000\044\000\
\\044\000\044\000\044\000\065\000\
\\145\000\046\001\044\000\109\000\
\\110\000\052\001\097\000\050\001\
\\111\000\046\000\046\000\046\000\
\\046\000\046\000\054\000\066\000\
\\145\000\248\000\046\000\047\000\
\\047\000\046\000\112\000\113\000\
\\114\000\004\001\098\000\001\001\
\\115\000\010\000\010\000\010\000\
\\010\000\010\000\010\000\010\000\
\\009\000\010\000\010\000\010\000\
\\010\000\010\000\067\000\145\000\
\\009\000\063\000\012\000\009\000\
\\116\000\117\000\220\000\099\000\
\\218\000\009\000\136\001\092\000\
\\142\001\146\001\144\001\143\001\
\\138\001\141\001\131\001\140\001\
\\145\001\086\000\087\000\088\000\
\\089\000\090\000\051\000\057\001\
\\118\000\125\001\119\000\094\001\
\\064\001\120\000\028\000\253\000\
\\029\000\254\000\030\000\054\001\
\\093\000\036\001\038\001\032\001\
\\035\001\037\001\048\001\100\000\
\\044\001\042\001\049\001\044\000\
\\051\001\094\000\233\000\235\000\
\\229\000\232\000\234\000\008\001\
\\005\001\050\000\019\000\007\001\
\\017\001\019\001\016\001\088\001\
\\072\000\055\000\255\000\101\000\
\\243\000\245\000\246\000\031\000\
\\032\000\033\000\241\000\006\001\
\\000\001\046\000\002\001\095\000\
\\180\000\187\000\009\000\182\000\
\\184\000\175\000\179\000\183\000\
\\181\000\205\000\203\000\206\000\
\\212\000\214\000\210\000\211\000\
\\213\000\215\000\216\000\102\000\
\\192\000\194\000\195\000\121\000\
\\204\000\108\001\034\000\202\000\
\\035\000\001\000\217\000\009\000\
\\219\000\163\000\052\000\052\000\
\\164\000\071\000\042\000\060\000\
\\053\000\041\000\007\000\156\001\
\\103\000\154\001\121\001\060\000\
\\117\001\107\001\060\000\060\000\
\\060\000\162\000\015\000\145\000\
\\053\001\161\000\062\000\062\000\
\\145\000\122\000\014\001\123\000\
\\124\000\055\000\016\000\145\000\
\\062\000\042\000\042\000\046\000\
\\003\001\160\000\125\000\017\000\
\\145\000\009\000\197\000\007\000\
\\009\000\221\000\139\001\126\000\
\\130\001\132\001\127\000\128\000\
\\129\000\130\000\131\000\052\000\
\\153\001\126\001\132\000\133\000\
\\036\000\044\000\045\001\022\001\
\\134\000\020\001\104\000\010\001\
\\062\000\023\001\062\000\015\001\
\\135\000\046\000\244\000\247\000\
\\136\000\137\000\037\000\190\000\
\\010\000\193\000\196\000\138\000\
\\038\000\147\001\149\001\152\001\
\\151\001\150\001\148\001\155\001\
\\129\001\128\001\060\000\043\001\
\\018\001\062\000\018\000\024\001\
\\025\001\048\000\242\000\252\000\
\\251\000\046\000\191\000\201\000\
\\009\000\139\000\021\001\056\000\
\\140\000\141\000\127\001\009\001\
\\011\001\057\000\250\000\200\000\
\\013\001\142\000\058\000\012\001\
\\058\000\143\000"
val gotoT =
"\
\\128\000\008\000\129\000\007\000\130\000\006\000\131\000\005\000\
\\132\000\004\000\133\000\003\000\134\000\002\000\135\000\001\000\
\\136\000\009\002\000\000\
\\000\000\
\\128\000\008\000\129\000\007\000\130\000\006\000\131\000\005\000\
\\132\000\004\000\133\000\003\000\134\000\002\000\135\000\015\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\128\000\008\000\129\000\007\000\130\000\006\000\131\000\005\000\
\\132\000\004\000\133\000\003\000\134\000\002\000\135\000\020\000\000\000\
\\000\000\
\\000\000\
\\002\000\024\000\009\000\023\000\014\000\022\000\000\000\
\\002\000\034\000\009\000\023\000\014\000\022\000\000\000\
\\002\000\035\000\009\000\023\000\014\000\022\000\000\000\
\\002\000\036\000\009\000\023\000\014\000\022\000\000\000\
\\000\000\
\\018\000\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\
\\004\000\043\000\000\000\
\\000\000\
\\127\000\045\000\000\000\
\\127\000\047\000\000\000\
\\127\000\048\000\000\000\
\\127\000\049\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\058\000\003\000\057\000\009\000\023\000\014\000\022\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\064\000\055\000\063\000\057\000\062\000\058\000\061\000\
\\059\000\060\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\061\000\111\000\062\000\110\000\063\000\109\000\065\000\108\000\
\\066\000\107\000\067\000\106\000\068\000\105\000\069\000\104\000\
\\070\000\103\000\071\000\102\000\072\000\101\000\073\000\100\000\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\142\000\020\000\083\000\022\000\082\000\023\000\141\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\074\000\136\000\076\000\135\000\077\000\134\000\083\000\133\000\
\\084\000\132\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\123\000\097\000\122\000\138\000\121\000\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\098\000\171\000\100\000\170\000\101\000\169\000\
\\102\000\168\000\103\000\167\000\104\000\166\000\105\000\165\000\
\\106\000\164\000\107\000\163\000\108\000\162\000\110\000\161\000\
\\111\000\160\000\112\000\159\000\113\000\158\000\117\000\157\000\
\\118\000\156\000\119\000\155\000\120\000\154\000\121\000\153\000\
\\122\000\152\000\123\000\151\000\124\000\150\000\125\000\149\000\
\\126\000\148\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\001\000\210\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\036\000\217\000\037\000\216\000\038\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\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\223\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\222\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\064\000\055\000\063\000\057\000\062\000\058\000\224\000\
\\144\000\059\000\000\000\
\\001\000\225\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\050\000\228\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\233\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\061\000\111\000\062\000\236\000\063\000\109\000\065\000\108\000\
\\066\000\107\000\067\000\106\000\068\000\105\000\069\000\104\000\
\\070\000\103\000\071\000\102\000\072\000\235\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\060\000\238\000\063\000\109\000\065\000\108\000\066\000\107\000\
\\067\000\106\000\068\000\105\000\069\000\104\000\070\000\103\000\
\\071\000\102\000\072\000\237\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\001\000\240\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\050\000\243\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\249\000\
\\138\000\121\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\142\000\020\000\083\000\022\000\082\000\023\000\141\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\074\000\136\000\076\000\000\001\077\000\134\000\083\000\133\000\
\\084\000\255\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\254\000\138\000\121\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\075\000\002\001\077\000\134\000\085\000\131\000\089\000\130\000\
\\090\000\129\000\091\000\128\000\092\000\127\000\093\000\126\000\
\\094\000\125\000\095\000\124\000\096\000\001\001\138\000\121\000\
\\144\000\059\000\000\000\
\\001\000\004\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\036\000\181\000\037\000\180\000\050\000\177\000\053\000\008\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\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\098\000\171\000\100\000\025\001\101\000\169\000\
\\102\000\168\000\103\000\167\000\104\000\166\000\105\000\165\000\
\\106\000\164\000\107\000\163\000\108\000\162\000\110\000\161\000\
\\111\000\160\000\112\000\159\000\113\000\158\000\117\000\157\000\
\\118\000\156\000\119\000\155\000\120\000\154\000\121\000\153\000\
\\122\000\152\000\123\000\151\000\124\000\150\000\125\000\024\001\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\099\000\027\001\101\000\169\000\102\000\168\000\
\\103\000\167\000\104\000\166\000\105\000\165\000\106\000\164\000\
\\107\000\163\000\108\000\162\000\110\000\161\000\111\000\160\000\
\\112\000\159\000\113\000\158\000\117\000\157\000\118\000\156\000\
\\119\000\155\000\120\000\154\000\121\000\153\000\122\000\152\000\
\\123\000\151\000\124\000\150\000\125\000\026\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\002\000\058\000\003\000\030\001\009\000\023\000\014\000\022\000\000\000\
\\000\000\
\\006\000\039\001\008\000\038\001\009\000\037\001\010\000\036\001\
\\011\000\035\001\012\000\034\001\013\000\033\001\014\000\085\000\
\\016\000\032\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\064\000\055\000\063\000\057\000\047\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\049\001\021\000\048\001\022\000\082\000\
\\023\000\081\000\024\000\080\000\025\000\185\000\026\000\078\000\
\\027\000\184\000\028\000\076\000\029\000\075\000\030\000\074\000\
\\031\000\073\000\032\000\182\000\033\000\071\000\034\000\070\000\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\049\001\021\000\050\001\022\000\082\000\
\\023\000\081\000\024\000\080\000\025\000\185\000\026\000\078\000\
\\027\000\184\000\028\000\076\000\029\000\075\000\030\000\074\000\
\\031\000\073\000\032\000\182\000\033\000\071\000\034\000\070\000\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\051\001\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\052\001\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\144\000\059\000\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\049\001\021\000\053\001\022\000\082\000\
\\023\000\081\000\024\000\080\000\025\000\185\000\026\000\078\000\
\\027\000\184\000\028\000\076\000\029\000\075\000\030\000\074\000\
\\031\000\073\000\032\000\182\000\033\000\071\000\034\000\070\000\
\\144\000\059\000\000\000\
\\051\000\138\000\089\000\055\001\139\000\054\001\000\000\
\\051\000\138\000\089\000\057\001\140\000\056\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\058\001\138\000\121\000\144\000\059\000\000\000\
\\000\000\
\\036\000\217\000\038\000\215\000\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\061\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\062\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\063\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\064\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\065\001\144\000\059\000\000\000\
\\061\000\066\001\000\000\
\\011\000\068\001\064\000\067\001\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\107\000\067\000\106\000\
\\068\000\105\000\069\000\104\000\070\000\103\000\071\000\102\000\
\\072\000\235\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\074\001\
\\138\000\121\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\075\001\
\\138\000\121\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\076\001\
\\138\000\121\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\077\001\
\\138\000\121\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\078\001\
\\138\000\121\000\144\000\059\000\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\079\000\083\001\
\\080\000\082\001\081\000\081\001\082\000\080\001\141\000\079\001\000\000\
\\074\000\090\001\000\000\
\\011\000\094\001\086\000\093\001\087\000\092\001\088\000\091\001\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\254\000\138\000\121\000\144\000\059\000\000\000\
\\051\000\138\000\089\000\057\001\140\000\095\001\000\000\
\\051\000\138\000\089\000\055\001\139\000\096\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\097\001\138\000\121\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\104\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\107\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\108\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\109\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\110\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\111\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\112\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\109\000\114\001\110\000\161\000\111\000\160\000\
\\112\000\159\000\113\000\158\000\117\000\157\000\118\000\156\000\
\\119\000\155\000\120\000\154\000\121\000\153\000\122\000\152\000\
\\123\000\151\000\124\000\150\000\125\000\113\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\108\000\116\001\113\000\158\000\117\000\157\000\118\000\115\001\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\108\000\117\001\113\000\158\000\117\000\157\000\118\000\115\001\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\106\000\119\001\108\000\118\001\113\000\158\000\117\000\157\000\
\\118\000\115\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\108\000\120\001\113\000\158\000\117\000\157\000\118\000\115\001\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\108\000\121\001\113\000\158\000\117\000\157\000\118\000\115\001\
\\144\000\059\000\000\000\
\\098\000\122\001\000\000\
\\011\000\126\001\114\000\125\001\115\000\124\001\116\000\123\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\110\000\161\000\111\000\160\000\112\000\159\000\
\\113\000\158\000\117\000\157\000\118\000\156\000\119\000\155\000\
\\120\000\154\000\121\000\153\000\122\000\152\000\123\000\151\000\
\\124\000\150\000\125\000\127\001\144\000\059\000\000\000\
\\009\000\088\000\019\000\129\001\031\000\128\001\000\000\
\\051\000\176\000\054\000\173\000\117\000\131\001\137\000\130\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\110\000\161\000\111\000\160\000\112\000\159\000\
\\113\000\158\000\117\000\157\000\118\000\156\000\119\000\155\000\
\\120\000\154\000\121\000\153\000\122\000\152\000\123\000\151\000\
\\124\000\150\000\125\000\132\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\110\000\161\000\111\000\160\000\112\000\159\000\
\\113\000\158\000\117\000\157\000\118\000\156\000\119\000\155\000\
\\120\000\154\000\121\000\153\000\122\000\152\000\123\000\151\000\
\\124\000\150\000\125\000\024\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\005\000\140\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\006\000\039\001\007\000\148\001\008\000\147\001\009\000\037\001\
\\010\000\036\001\011\000\035\001\012\000\034\001\013\000\033\001\
\\014\000\085\000\016\000\032\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\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\060\000\160\001\063\000\109\000\065\000\108\000\066\000\107\000\
\\067\000\106\000\068\000\105\000\069\000\104\000\070\000\103\000\
\\071\000\102\000\072\000\237\000\144\000\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\
\\009\000\086\001\011\000\085\001\047\000\084\001\078\000\168\001\
\\079\000\167\001\080\000\166\001\081\000\081\001\141\000\165\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\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\075\000\176\001\077\000\134\000\085\000\131\000\089\000\130\000\
\\090\000\129\000\091\000\128\000\092\000\127\000\093\000\126\000\
\\094\000\125\000\095\000\124\000\096\000\001\001\138\000\121\000\
\\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\110\000\161\000\111\000\160\000\112\000\159\000\
\\113\000\158\000\117\000\157\000\118\000\156\000\119\000\155\000\
\\120\000\154\000\121\000\153\000\122\000\152\000\123\000\151\000\
\\124\000\150\000\125\000\178\001\144\000\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\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\099\000\185\001\101\000\169\000\102\000\168\000\
\\103\000\167\000\104\000\166\000\105\000\165\000\106\000\164\000\
\\107\000\163\000\108\000\162\000\110\000\161\000\111\000\160\000\
\\112\000\159\000\113\000\158\000\117\000\157\000\118\000\156\000\
\\119\000\155\000\120\000\154\000\121\000\153\000\122\000\152\000\
\\123\000\151\000\124\000\150\000\125\000\026\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\006\000\039\001\008\000\186\001\009\000\037\001\010\000\036\001\
\\011\000\035\001\012\000\034\001\013\000\033\001\014\000\085\000\
\\016\000\032\001\000\000\
\\006\000\039\001\007\000\187\001\008\000\147\001\009\000\037\001\
\\010\000\036\001\011\000\035\001\012\000\034\001\013\000\033\001\
\\014\000\085\000\016\000\032\001\000\000\
\\000\000\
\\006\000\189\001\017\000\188\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\142\000\020\000\083\000\022\000\082\000\023\000\141\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\074\000\136\000\076\000\135\000\077\000\134\000\083\000\133\000\
\\084\000\132\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\123\000\097\000\190\001\138\000\121\000\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\191\001\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\064\000\055\000\063\000\057\000\062\000\058\000\061\000\
\\059\000\192\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\061\000\111\000\062\000\110\000\063\000\109\000\065\000\108\000\
\\066\000\107\000\067\000\106\000\068\000\105\000\069\000\104\000\
\\070\000\103\000\071\000\102\000\072\000\101\000\073\000\193\001\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\098\000\171\000\100\000\170\000\101\000\169\000\
\\102\000\168\000\103\000\167\000\104\000\166\000\105\000\165\000\
\\106\000\164\000\107\000\163\000\108\000\162\000\110\000\161\000\
\\111\000\160\000\112\000\159\000\113\000\158\000\117\000\157\000\
\\118\000\156\000\119\000\155\000\120\000\154\000\121\000\153\000\
\\122\000\152\000\123\000\151\000\124\000\150\000\125\000\149\000\
\\126\000\194\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\049\001\021\000\197\001\022\000\082\000\
\\023\000\081\000\024\000\080\000\025\000\185\000\026\000\078\000\
\\027\000\184\000\028\000\076\000\029\000\075\000\030\000\074\000\
\\031\000\073\000\032\000\182\000\033\000\071\000\034\000\070\000\
\\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\198\001\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\199\001\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\200\001\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\011\000\068\001\064\000\202\001\000\000\
\\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\080\000\203\001\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\080\000\205\001\
\\143\000\204\001\000\000\
\\011\000\094\001\086\000\093\001\087\000\092\001\088\000\206\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\078\000\212\001\
\\079\000\167\001\080\000\166\001\081\000\081\001\141\000\165\001\000\000\
\\000\000\
\\011\000\094\001\086\000\093\001\087\000\092\001\088\000\214\001\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\080\000\215\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\142\000\020\000\083\000\022\000\082\000\023\000\141\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\074\000\136\000\076\000\135\000\077\000\134\000\083\000\133\000\
\\084\000\132\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\123\000\097\000\216\001\138\000\121\000\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\142\000\020\000\083\000\022\000\082\000\023\000\141\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\074\000\136\000\076\000\135\000\077\000\134\000\083\000\133\000\
\\084\000\132\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\123\000\097\000\217\001\138\000\121\000\
\\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\218\001\138\000\121\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\011\000\126\001\114\000\125\001\115\000\124\001\116\000\221\001\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\109\000\222\001\110\000\161\000\111\000\160\000\
\\112\000\159\000\113\000\158\000\117\000\157\000\118\000\156\000\
\\119\000\155\000\120\000\154\000\121\000\153\000\122\000\152\000\
\\123\000\151\000\124\000\150\000\125\000\113\001\144\000\059\000\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\098\000\171\000\100\000\170\000\101\000\169\000\
\\102\000\168\000\103\000\167\000\104\000\166\000\105\000\165\000\
\\106\000\164\000\107\000\163\000\108\000\162\000\110\000\161\000\
\\111\000\160\000\112\000\159\000\113\000\158\000\117\000\157\000\
\\118\000\156\000\119\000\155\000\120\000\154\000\121\000\153\000\
\\122\000\152\000\123\000\151\000\124\000\150\000\125\000\149\000\
\\126\000\223\001\144\000\059\000\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\110\000\161\000\111\000\160\000\112\000\159\000\
\\113\000\158\000\117\000\157\000\118\000\156\000\119\000\155\000\
\\120\000\154\000\121\000\153\000\122\000\152\000\123\000\151\000\
\\124\000\150\000\125\000\224\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\006\000\039\001\007\000\231\001\008\000\147\001\009\000\037\001\
\\010\000\036\001\011\000\035\001\012\000\034\001\013\000\033\001\
\\014\000\085\000\016\000\032\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\115\000\046\000\114\000\051\000\113\000\055\000\112\000\
\\063\000\109\000\065\000\108\000\066\000\235\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\080\000\239\001\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\080\000\240\001\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\242\001\
\\138\000\121\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\105\001\
\\113\000\158\000\117\000\157\000\118\000\246\001\144\000\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\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\249\001\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\080\000\205\001\
\\143\000\250\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\083\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\079\000\026\000\078\000\027\000\077\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\073\000\
\\032\000\072\000\033\000\071\000\034\000\070\000\035\000\069\000\
\\039\000\068\000\042\000\067\000\043\000\066\000\044\000\065\000\
\\045\000\140\000\046\000\139\000\051\000\138\000\055\000\137\000\
\\077\000\134\000\085\000\131\000\089\000\130\000\090\000\129\000\
\\091\000\128\000\092\000\127\000\093\000\126\000\094\000\125\000\
\\095\000\124\000\096\000\252\001\138\000\121\000\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\009\000\088\000\011\000\087\000\012\000\086\000\014\000\085\000\
\\019\000\084\000\020\000\186\000\022\000\082\000\023\000\081\000\
\\024\000\080\000\025\000\185\000\026\000\078\000\027\000\184\000\
\\028\000\076\000\029\000\075\000\030\000\074\000\031\000\183\000\
\\032\000\182\000\033\000\071\000\034\000\070\000\036\000\181\000\
\\037\000\180\000\046\000\179\000\049\000\178\000\050\000\177\000\
\\051\000\176\000\052\000\175\000\053\000\174\000\054\000\173\000\
\\056\000\172\000\101\000\169\000\102\000\168\000\103\000\167\000\
\\104\000\166\000\105\000\165\000\106\000\164\000\107\000\163\000\
\\108\000\162\000\110\000\161\000\111\000\160\000\112\000\159\000\
\\113\000\158\000\117\000\157\000\118\000\156\000\119\000\155\000\
\\120\000\154\000\121\000\153\000\122\000\152\000\123\000\151\000\
\\124\000\150\000\125\000\253\001\144\000\059\000\000\000\
\\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\080\000\000\002\
\\142\000\255\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\079\000\005\002\
\\080\000\004\002\081\000\081\001\000\000\
\\000\000\
\\000\000\
\\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\078\000\168\001\
\\079\000\167\001\080\000\166\001\081\000\081\001\000\000\
\\000\000\
\\009\000\086\001\011\000\085\001\047\000\084\001\078\000\212\001\
\\079\000\167\001\080\000\166\001\081\000\081\001\000\000\
\\000\000\
\"
val numstates = 522
val numrules = 288
val s = Unsynchronized.ref "" and index = Unsynchronized.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 = int
type arg = string
structure MlyValue = 
struct
datatype svalue = VOID | ntVOID of unit
 | ATOMIC_SYSTEM_WORD of  (string) | ATOMIC_DEFINED_WORD of  (string)
 | DISTINCT_OBJECT of  (string) | COMMENT of  (string)
 | LOWER_WORD of  (string) | UPPER_WORD of  (string)
 | SINGLE_QUOTED of  (string) | DOT_DECIMAL of  (string)
 | UNSIGNED_INTEGER of  (string) | SIGNED_INTEGER of  (string)
 | RATIONAL of  (string) | REAL of  (string)
 | let_term of  (tptp_term) | tff_type_arguments of  (tptp_type list)
 | tff_monotype of  (tptp_type) | tff_quantified_type of  (tptp_type)
 | tff_let_formula_defn of  (tptp_let list)
 | tff_let_term_defn of  (tptp_let list) | tff_let of  (tptp_formula)
 | thf_let_defn of  (tptp_let list) | tptp of  (tptp_problem)
 | tptp_file of  (tptp_problem) | tptp_input of  (tptp_line)
 | include_ of  (tptp_line) | annotated_formula of  (tptp_line)
 | thf_annotated of  (tptp_line) | tff_annotated of  (tptp_line)
 | fof_annotated of  (tptp_line) | cnf_annotated of  (tptp_line)
 | formula_role of  (role) | thf_formula of  (tptp_formula)
 | thf_logic_formula of  (tptp_formula)
 | thf_binary_formula of  (tptp_formula)
 | thf_binary_pair of  (tptp_formula)
 | thf_binary_tuple of  (tptp_formula)
 | thf_or_formula of  (tptp_formula)
 | thf_and_formula of  (tptp_formula)
 | thf_apply_formula of  (tptp_formula)
 | thf_unitary_formula of  (tptp_formula)
 | thf_quantified_formula of  (tptp_formula)
 | thf_variable_list of  ( ( string * tptp_type option )  list)
 | thf_variable of  (string*tptp_type option)
 | thf_typed_variable of  (string*tptp_type option)
 | thf_unary_formula of  (tptp_formula)
 | thf_type_formula of  (tptp_formula*tptp_type)
 | thf_typeable_formula of  (tptp_formula)
 | thf_subtype of  (tptp_type) | thf_top_level_type of  (tptp_type)
 | thf_unitary_type of  (tptp_type) | thf_binary_type of  (tptp_type)
 | thf_mapping_type of  (tptp_type) | thf_xprod_type of  (tptp_type)
 | thf_union_type of  (tptp_type) | thf_atom of  (tptp_formula)
 | thf_let of  (tptp_formula) | thf_conditional of  (tptp_formula)
 | thf_sequent of  (tptp_formula)
 | thf_tuple_list of  (tptp_formula list)
 | thf_tuple of  (tptp_formula list) | tff_formula of  (tptp_formula)
 | tff_logic_formula of  (tptp_formula)
 | tff_binary_formula of  (tptp_formula)
 | tff_binary_nonassoc of  (tptp_formula)
 | tff_binary_assoc of  (tptp_formula)
 | tff_or_formula of  (tptp_formula)
 | tff_and_formula of  (tptp_formula)
 | tff_unitary_formula of  (tptp_formula)
 | tff_quantified_formula of  (tptp_formula)
 | tff_variable_list of  ( ( string * tptp_type option )  list)
 | tff_variable of  (string*tptp_type option)
 | tff_typed_variable of  (string*tptp_type option)
 | tff_unary_formula of  (tptp_formula)
 | tff_typed_atom of  (symbol*tptp_type option)
 | tff_untyped_atom of  (symbol*tptp_type option)
 | tff_top_level_type of  (tptp_type)
 | tff_unitary_type of  (tptp_type) | tff_atomic_type of  (tptp_type)
 | tff_mapping_type of  (tptp_type) | tff_xprod_type of  (tptp_type)
 | tff_conditional of  (tptp_formula) | tff_sequent of  (tptp_formula)
 | tff_tuple_list of  (tptp_formula list)
 | tff_tuple of  (tptp_formula list) | fof_formula of  (tptp_formula)
 | fof_logic_formula of  (tptp_formula)
 | fof_binary_formula of  (tptp_formula)
 | fof_binary_nonassoc of  (tptp_formula)
 | fof_binary_assoc of  (tptp_formula)
 | fof_or_formula of  (tptp_formula)
 | fof_and_formula of  (tptp_formula)
 | fof_unitary_formula of  (tptp_formula)
 | fof_quantified_formula of  (tptp_formula)
 | fof_variable_list of  (string list)
 | fof_unary_formula of  (tptp_formula)
 | fof_sequent of  (tptp_formula) | fof_tuple of  (tptp_formula list)
 | fof_tuple_list of  (tptp_formula list)
 | cnf_formula of  (tptp_formula) | disjunction of  (tptp_formula)
 | literal of  (tptp_formula) | thf_conn_term of  (symbol)
 | fol_infix_unary of  (tptp_formula)
 | thf_quantifier of  (quantifier) | thf_pair_connective of  (symbol)
 | thf_unary_connective of  (symbol) | fol_quantifier of  (quantifier)
 | binary_connective of  (symbol) | assoc_connective of  (symbol)
 | system_type of  (string) | defined_type of  (tptp_base_type)
 | unary_connective of  (symbol) | atomic_formula of  (tptp_formula)
 | plain_atomic_formula of  (tptp_formula)
 | defined_atomic_formula of  (tptp_formula)
 | defined_plain_formula of  (tptp_formula)
 | defined_pred of  (string) | defined_prop of  (string)
 | defined_infix_formula of  (tptp_formula)
 | defined_infix_pred of  (symbol) | infix_inequality of  (symbol)
 | infix_equality of  (symbol)
 | system_atomic_formula of  (tptp_formula)
 | conditional_term of  (tptp_term) | function_term of  (tptp_term)
 | plain_term of  (symbol*tptp_term list) | constant of  (symbol)
 | defined_term of  (tptp_term) | defined_atom of  (tptp_term)
 | defined_atomic_term of  (tptp_term)
 | defined_plain_term of  (symbol*tptp_term list)
 | defined_constant of  (symbol)
 | system_term of  (symbol*tptp_term list)
 | system_constant of  (symbol) | system_functor of  (symbol)
 | defined_functor of  (symbol) | arguments of  (tptp_term list)
 | term of  (tptp_term) | functor_ of  (symbol)
 | file_name of  (string) | useful_info of  (general_list)
 | general_function of  (general_data) | identifier of  (string)
 | integer of  (string) | formula_data of  (general_data)
 | number of  (number_kind*string) | variable_ of  (string)
 | general_data of  (general_data) | atomic_word of  (string)
 | general_term of  (general_term)
 | general_terms of  (general_term list)
 | general_list of  (general_list)
 | optional_info of  (general_term list)
 | formula_selection of  (string list) | name_list of  (string list)
 | name of  (string) | annotations of  (annotation option)
end
type svalue = MlyValue.svalue
type result = tptp_problem
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 37) => true | _ => false
val showTerminal =
fn (T 0) => "AMPERSAND"
  | (T 1) => "AT_SIGN"
  | (T 2) => "CARET"
  | (T 3) => "COLON"
  | (T 4) => "COMMA"
  | (T 5) => "EQUALS"
  | (T 6) => "EXCLAMATION"
  | (T 7) => "LET"
  | (T 8) => "ARROW"
  | (T 9) => "FI"
  | (T 10) => "IFF"
  | (T 11) => "IMPLIES"
  | (T 12) => "INCLUDE"
  | (T 13) => "LAMBDA"
  | (T 14) => "LBRKT"
  | (T 15) => "LPAREN"
  | (T 16) => "MAP_TO"
  | (T 17) => "MMINUS"
  | (T 18) => "NAND"
  | (T 19) => "NEQUALS"
  | (T 20) => "XOR"
  | (T 21) => "NOR"
  | (T 22) => "PERIOD"
  | (T 23) => "PPLUS"
  | (T 24) => "QUESTION"
  | (T 25) => "RBRKT"
  | (T 26) => "RPAREN"
  | (T 27) => "TILDE"
  | (T 28) => "TOK_FALSE"
  | (T 29) => "TOK_I"
  | (T 30) => "TOK_O"
  | (T 31) => "TOK_INT"
  | (T 32) => "TOK_REAL"
  | (T 33) => "TOK_RAT"
  | (T 34) => "TOK_TRUE"
  | (T 35) => "TOK_TYPE"
  | (T 36) => "VLINE"
  | (T 37) => "EOF"
  | (T 38) => "DTHF"
  | (T 39) => "DFOF"
  | (T 40) => "DCNF"
  | (T 41) => "DFOT"
  | (T 42) => "DTFF"
  | (T 43) => "REAL"
  | (T 44) => "RATIONAL"
  | (T 45) => "SIGNED_INTEGER"
  | (T 46) => "UNSIGNED_INTEGER"
  | (T 47) => "DOT_DECIMAL"
  | (T 48) => "SINGLE_QUOTED"
  | (T 49) => "UPPER_WORD"
  | (T 50) => "LOWER_WORD"
  | (T 51) => "COMMENT"
  | (T 52) => "DISTINCT_OBJECT"
  | (T 53) => "DUD"
  | (T 54) => "INDEF_CHOICE"
  | (T 55) => "DEFIN_CHOICE"
  | (T 56) => "OPERATOR_FORALL"
  | (T 57) => "OPERATOR_EXISTS"
  | (T 58) => "PLUS"
  | (T 59) => "TIMES"
  | (T 60) => "GENTZEN_ARROW"
  | (T 61) => "DEP_SUM"
  | (T 62) => "DEP_PROD"
  | (T 63) => "ATOMIC_DEFINED_WORD"
  | (T 64) => "ATOMIC_SYSTEM_WORD"
  | (T 65) => "SUBTYPE"
  | (T 66) => "LET_TERM"
  | (T 67) => "THF"
  | (T 68) => "TFF"
  | (T 69) => "FOF"
  | (T 70) => "CNF"
  | (T 71) => "ITE_F"
  | (T 72) => "ITE_T"
  | (T 73) => "LET_TF"
  | (T 74) => "LET_FF"
  | (T 75) => "LET_FT"
  | (T 76) => "LET_TT"
  | _ => "bogus-term"
local open Header in
val errtermvalue=
fn _ => MlyValue.VOID
end
val terms : term list = nil
 $$ (T 76) $$ (T 75) $$ (T 74) $$ (T 73) $$ (T 72) $$ (T 71) $$ (T 70)
 $$ (T 69) $$ (T 68) $$ (T 67) $$ (T 66) $$ (T 65) $$ (T 62) $$ (T 61)
 $$ (T 60) $$ (T 59) $$ (T 58) $$ (T 57) $$ (T 56) $$ (T 55) $$ (T 54)
 $$ (T 53) $$ (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) $$ (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,
    (file_name):arg) =>
case (i392,stack)
of  ( 0, ( ( _, ( MlyValue.tptp_file tptp_file, tptp_file1left, 
tptp_file1right)) :: rest671)) => let val  result = MlyValue.tptp (
( tptp_file ))
 in ( LrTable.NT 135, ( result, tptp_file1left, tptp_file1right), 
rest671)
end
|  ( 1, ( ( _, ( MlyValue.tptp_file tptp_file, _, tptp_file1right)) ::
 ( _, ( MlyValue.tptp_input tptp_input, tptp_input1left, _)) :: 
rest671)) => let val  result = MlyValue.tptp_file (
( tptp_input :: tptp_file ))
 in ( LrTable.NT 134, ( result, tptp_input1left, tptp_file1right), 
rest671)
end
|  ( 2, ( ( _, ( MlyValue.tptp_file tptp_file, _, tptp_file1right)) ::
 ( _, ( _, COMMENT1left, _)) :: rest671)) => let val  result = 
MlyValue.tptp_file (( tptp_file ))
 in ( LrTable.NT 134, ( result, COMMENT1left, tptp_file1right), 
rest671)
end
|  ( 3, ( rest671)) => let val  result = MlyValue.tptp_file (( [] ))
 in ( LrTable.NT 134, ( result, defaultPos, defaultPos), rest671)
end
|  ( 4, ( ( _, ( MlyValue.annotated_formula annotated_formula, 
annotated_formula1left, annotated_formula1right)) :: rest671)) => let
 val  result = MlyValue.tptp_input (( annotated_formula ))
 in ( LrTable.NT 133, ( result, annotated_formula1left, 
annotated_formula1right), rest671)
end
|  ( 5, ( ( _, ( MlyValue.include_ include_, include_1left, 
include_1right)) :: rest671)) => let val  result = MlyValue.tptp_input
 (( include_ ))
 in ( LrTable.NT 133, ( result, include_1left, include_1right), 
rest671)
end
|  ( 6, ( ( _, ( MlyValue.thf_annotated thf_annotated, 
thf_annotated1left, thf_annotated1right)) :: rest671)) => let val  
result = MlyValue.annotated_formula (( thf_annotated ))
 in ( LrTable.NT 131, ( result, thf_annotated1left, 
thf_annotated1right), rest671)
end
|  ( 7, ( ( _, ( MlyValue.tff_annotated tff_annotated, 
tff_annotated1left, tff_annotated1right)) :: rest671)) => let val  
result = MlyValue.annotated_formula (( tff_annotated ))
 in ( LrTable.NT 131, ( result, tff_annotated1left, 
tff_annotated1right), rest671)
end
|  ( 8, ( ( _, ( MlyValue.fof_annotated fof_annotated, 
fof_annotated1left, fof_annotated1right)) :: rest671)) => let val  
result = MlyValue.annotated_formula (( fof_annotated ))
 in ( LrTable.NT 131, ( result, fof_annotated1left, 
fof_annotated1right), rest671)
end
|  ( 9, ( ( _, ( MlyValue.cnf_annotated cnf_annotated, 
cnf_annotated1left, cnf_annotated1right)) :: rest671)) => let val  
result = MlyValue.annotated_formula (( cnf_annotated ))
 in ( LrTable.NT 131, ( result, cnf_annotated1left, 
cnf_annotated1right), rest671)
end
|  ( 10, ( ( _, ( _, _, PERIOD1right)) :: _ :: ( _, ( 
MlyValue.annotations annotations, _, _)) :: ( _, ( 
MlyValue.thf_formula thf_formula, _, _)) :: _ :: ( _, ( 
MlyValue.formula_role formula_role, _, _)) :: _ :: ( _, ( 
MlyValue.name name, _, _)) :: _ :: ( _, ( _, (THFleft as THF1left), 
THFright)) :: rest671)) => let val  result = MlyValue.thf_annotated (
(
  Annotated_Formula ((file_name, THFleft + 1, THFright + 1),
   THF, name, formula_role, thf_formula, annotations)
)
)
 in ( LrTable.NT 130, ( result, THF1left, PERIOD1right), rest671)
end
|  ( 11, ( ( _, ( _, _, PERIOD1right)) :: _ :: ( _, ( 
MlyValue.annotations annotations, _, _)) :: ( _, ( 
MlyValue.tff_formula tff_formula, _, _)) :: _ :: ( _, ( 
MlyValue.formula_role formula_role, _, _)) :: _ :: ( _, ( 
MlyValue.name name, _, _)) :: _ :: ( _, ( _, (TFFleft as TFF1left), 
TFFright)) :: rest671)) => let val  result = MlyValue.tff_annotated (
(
  Annotated_Formula ((file_name, TFFleft + 1, TFFright + 1),
   TFF, name, formula_role, tff_formula, annotations)
)
)
 in ( LrTable.NT 129, ( result, TFF1left, PERIOD1right), rest671)
end
|  ( 12, ( ( _, ( _, _, PERIOD1right)) :: _ :: ( _, ( 
MlyValue.annotations annotations, _, _)) :: ( _, ( 
MlyValue.fof_formula fof_formula, _, _)) :: _ :: ( _, ( 
MlyValue.formula_role formula_role, _, _)) :: _ :: ( _, ( 
MlyValue.name name, _, _)) :: _ :: ( _, ( _, (FOFleft as FOF1left), 
FOFright)) :: rest671)) => let val  result = MlyValue.fof_annotated (
(
  Annotated_Formula ((file_name, FOFleft + 1, FOFright + 1),
   FOF, name, formula_role, fof_formula, annotations)
)
)
 in ( LrTable.NT 128, ( result, FOF1left, PERIOD1right), rest671)
end
|  ( 13, ( ( _, ( _, _, PERIOD1right)) :: _ :: ( _, ( 
MlyValue.annotations annotations, _, _)) :: ( _, ( 
MlyValue.cnf_formula cnf_formula, _, _)) :: _ :: ( _, ( 
MlyValue.formula_role formula_role, _, _)) :: _ :: ( _, ( 
MlyValue.name name, _, _)) :: _ :: ( _, ( _, (CNFleft as CNF1left), 
CNFright)) :: rest671)) => let val  result = MlyValue.cnf_annotated (
(
  Annotated_Formula ((file_name, CNFleft + 1, CNFright + 1),
   CNF, name, formula_role, cnf_formula, annotations)
)
)
 in ( LrTable.NT 127, ( result, CNF1left, PERIOD1right), rest671)
end
|  ( 14, ( ( _, ( MlyValue.optional_info optional_info, _, 
optional_info1right)) :: ( _, ( MlyValue.general_term general_term, _,
 _)) :: ( _, ( _, COMMA1left, _)) :: rest671)) => let val  result = 
MlyValue.annotations (( SOME (general_term, optional_info) ))
 in ( LrTable.NT 0, ( result, COMMA1left, optional_info1right), 
rest671)
end
|  ( 15, ( rest671)) => let val  result = MlyValue.annotations (
( NONE ))
 in ( LrTable.NT 0, ( result, defaultPos, defaultPos), rest671)
end
|  ( 16, ( ( _, ( MlyValue.LOWER_WORD LOWER_WORD, LOWER_WORD1left, 
LOWER_WORD1right)) :: rest671)) => let val  result = 
MlyValue.formula_role (( classify_role LOWER_WORD ))
 in ( LrTable.NT 126, ( result, LOWER_WORD1left, LOWER_WORD1right), 
rest671)
end
|  ( 17, ( ( _, ( MlyValue.thf_logic_formula thf_logic_formula, 
thf_logic_formula1left, thf_logic_formula1right)) :: rest671)) => let
 val  result = MlyValue.thf_formula (( thf_logic_formula ))
 in ( LrTable.NT 125, ( result, thf_logic_formula1left, 
thf_logic_formula1right), rest671)
end
|  ( 18, ( ( _, ( MlyValue.thf_sequent thf_sequent, thf_sequent1left, 
thf_sequent1right)) :: rest671)) => let val  result = 
MlyValue.thf_formula (( thf_sequent ))
 in ( LrTable.NT 125, ( result, thf_sequent1left, thf_sequent1right), 
rest671)
end
|  ( 19, ( ( _, ( MlyValue.thf_binary_formula thf_binary_formula, 
thf_binary_formula1left, thf_binary_formula1right)) :: rest671)) =>
 let val  result = MlyValue.thf_logic_formula (( thf_binary_formula ))
 in ( LrTable.NT 124, ( result, thf_binary_formula1left, 
thf_binary_formula1right), rest671)
end
|  ( 20, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula, 
thf_unitary_formula1left, thf_unitary_formula1right)) :: rest671)) =>
 let val  result = MlyValue.thf_logic_formula (( thf_unitary_formula )
)
 in ( LrTable.NT 124, ( result, thf_unitary_formula1left, 
thf_unitary_formula1right), rest671)
end
|  ( 21, ( ( _, ( MlyValue.thf_type_formula thf_type_formula, 
thf_type_formula1left, thf_type_formula1right)) :: rest671)) => let
 val  result = MlyValue.thf_logic_formula (
( THF_typing thf_type_formula ))
 in ( LrTable.NT 124, ( result, thf_type_formula1left, 
thf_type_formula1right), rest671)
end
|  ( 22, ( ( _, ( MlyValue.thf_subtype thf_subtype, thf_subtype1left, 
thf_subtype1right)) :: rest671)) => let val  result = 
MlyValue.thf_logic_formula (( THF_type thf_subtype ))
 in ( LrTable.NT 124, ( result, thf_subtype1left, thf_subtype1right), 
rest671)
end
|  ( 23, ( ( _, ( MlyValue.thf_binary_pair thf_binary_pair, 
thf_binary_pair1left, thf_binary_pair1right)) :: rest671)) => let val 
 result = MlyValue.thf_binary_formula (( thf_binary_pair ))
 in ( LrTable.NT 123, ( result, thf_binary_pair1left, 
thf_binary_pair1right), rest671)
end
|  ( 24, ( ( _, ( MlyValue.thf_binary_tuple thf_binary_tuple, 
thf_binary_tuple1left, thf_binary_tuple1right)) :: rest671)) => let
 val  result = MlyValue.thf_binary_formula (( thf_binary_tuple ))
 in ( LrTable.NT 123, ( result, thf_binary_tuple1left, 
thf_binary_tuple1right), rest671)
end
|  ( 25, ( ( _, ( MlyValue.thf_binary_type thf_binary_type, 
thf_binary_type1left, thf_binary_type1right)) :: rest671)) => let val 
 result = MlyValue.thf_binary_formula (( THF_type thf_binary_type ))
 in ( LrTable.NT 123, ( result, thf_binary_type1left, 
thf_binary_type1right), rest671)
end
|  ( 26, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula2, _
, thf_unitary_formula2right)) :: ( _, ( MlyValue.thf_pair_connective 
thf_pair_connective, _, _)) :: ( _, ( MlyValue.thf_unitary_formula 
thf_unitary_formula1, thf_unitary_formula1left, _)) :: rest671)) =>
 let val  result = MlyValue.thf_binary_pair (
(
  Fmla (thf_pair_connective, [thf_unitary_formula1, thf_unitary_formula2])
)
)
 in ( LrTable.NT 122, ( result, thf_unitary_formula1left, 
thf_unitary_formula2right), rest671)
end
|  ( 27, ( ( _, ( MlyValue.thf_or_formula thf_or_formula, 
thf_or_formula1left, thf_or_formula1right)) :: rest671)) => let val  
result = MlyValue.thf_binary_tuple (( thf_or_formula ))
 in ( LrTable.NT 121, ( result, thf_or_formula1left, 
thf_or_formula1right), rest671)
end
|  ( 28, ( ( _, ( MlyValue.thf_and_formula thf_and_formula, 
thf_and_formula1left, thf_and_formula1right)) :: rest671)) => let val 
 result = MlyValue.thf_binary_tuple (( thf_and_formula ))
 in ( LrTable.NT 121, ( result, thf_and_formula1left, 
thf_and_formula1right), rest671)
end
|  ( 29, ( ( _, ( MlyValue.thf_apply_formula thf_apply_formula, 
thf_apply_formula1left, thf_apply_formula1right)) :: rest671)) => let
 val  result = MlyValue.thf_binary_tuple (( thf_apply_formula ))
 in ( LrTable.NT 121, ( result, thf_apply_formula1left, 
thf_apply_formula1right), rest671)
end
|  ( 30, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula2, _
, thf_unitary_formula2right)) :: _ :: ( _, ( 
MlyValue.thf_unitary_formula thf_unitary_formula1, 
thf_unitary_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_or_formula (
( Fmla (Interpreted_Logic Or, [thf_unitary_formula1, thf_unitary_formula2]) )
)
 in ( LrTable.NT 120, ( result, thf_unitary_formula1left, 
thf_unitary_formula2right), rest671)
end
|  ( 31, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula, _,
 thf_unitary_formula1right)) :: _ :: ( _, ( MlyValue.thf_or_formula 
thf_or_formula, thf_or_formula1left, _)) :: rest671)) => let val  
result = MlyValue.thf_or_formula (
( Fmla (Interpreted_Logic Or, [thf_or_formula, thf_unitary_formula]) )
)
 in ( LrTable.NT 120, ( result, thf_or_formula1left, 
thf_unitary_formula1right), rest671)
end
|  ( 32, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula2, _
, thf_unitary_formula2right)) :: _ :: ( _, ( 
MlyValue.thf_unitary_formula thf_unitary_formula1, 
thf_unitary_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_and_formula (
( Fmla (Interpreted_Logic And, [thf_unitary_formula1, thf_unitary_formula2]) )
)
 in ( LrTable.NT 119, ( result, thf_unitary_formula1left, 
thf_unitary_formula2right), rest671)
end
|  ( 33, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula, _,
 thf_unitary_formula1right)) :: _ :: ( _, ( MlyValue.thf_and_formula 
thf_and_formula, thf_and_formula1left, _)) :: rest671)) => let val  
result = MlyValue.thf_and_formula (
( Fmla (Interpreted_Logic And, [thf_and_formula, thf_unitary_formula]) )
)
 in ( LrTable.NT 119, ( result, thf_and_formula1left, 
thf_unitary_formula1right), rest671)
end
|  ( 34, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula2, _
, thf_unitary_formula2right)) :: _ :: ( _, ( 
MlyValue.thf_unitary_formula thf_unitary_formula1, 
thf_unitary_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_apply_formula (
( Fmla (Interpreted_ExtraLogic Apply, [thf_unitary_formula1, thf_unitary_formula2]) )
)
 in ( LrTable.NT 118, ( result, thf_unitary_formula1left, 
thf_unitary_formula2right), rest671)
end
|  ( 35, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula, _,
 thf_unitary_formula1right)) :: _ :: ( _, ( MlyValue.thf_apply_formula
 thf_apply_formula, thf_apply_formula1left, _)) :: rest671)) => let
 val  result = MlyValue.thf_apply_formula (
( Fmla (Interpreted_ExtraLogic Apply, [thf_apply_formula, thf_unitary_formula]) )
)
 in ( LrTable.NT 118, ( result, thf_apply_formula1left, 
thf_unitary_formula1right), rest671)
end
|  ( 36, ( ( _, ( MlyValue.thf_quantified_formula 
thf_quantified_formula, thf_quantified_formula1left, 
thf_quantified_formula1right)) :: rest671)) => let val  result = 
MlyValue.thf_unitary_formula (( thf_quantified_formula ))
 in ( LrTable.NT 117, ( result, thf_quantified_formula1left, 
thf_quantified_formula1right), rest671)
end
|  ( 37, ( ( _, ( MlyValue.thf_unary_formula thf_unary_formula, 
thf_unary_formula1left, thf_unary_formula1right)) :: rest671)) => let
 val  result = MlyValue.thf_unitary_formula (( thf_unary_formula ))
 in ( LrTable.NT 117, ( result, thf_unary_formula1left, 
thf_unary_formula1right), rest671)
end
|  ( 38, ( ( _, ( MlyValue.thf_atom thf_atom, thf_atom1left, 
thf_atom1right)) :: rest671)) => let val  result = 
MlyValue.thf_unitary_formula (( thf_atom ))
 in ( LrTable.NT 117, ( result, thf_atom1left, thf_atom1right), 
rest671)
end
|  ( 39, ( ( _, ( MlyValue.thf_conditional thf_conditional, 
thf_conditional1left, thf_conditional1right)) :: rest671)) => let val 
 result = MlyValue.thf_unitary_formula (( thf_conditional ))
 in ( LrTable.NT 117, ( result, thf_conditional1left, 
thf_conditional1right), rest671)
end
|  ( 40, ( ( _, ( MlyValue.thf_let thf_let, thf_let1left, 
thf_let1right)) :: rest671)) => let val  result = 
MlyValue.thf_unitary_formula (( thf_let ))
 in ( LrTable.NT 117, ( result, thf_let1left, thf_let1right), rest671)

end
|  ( 41, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.thf_logic_formula thf_logic_formula, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_unitary_formula (( thf_logic_formula ))
 in ( LrTable.NT 117, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 42, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula, _,
 thf_unitary_formula1right)) :: _ :: _ :: ( _, ( 
MlyValue.thf_variable_list thf_variable_list, _, _)) :: _ :: ( _, ( 
MlyValue.thf_quantifier thf_quantifier, thf_quantifier1left, _)) :: 
rest671)) => let val  result = MlyValue.thf_quantified_formula (
(
  Quant (thf_quantifier, thf_variable_list, thf_unitary_formula)
))
 in ( LrTable.NT 116, ( result, thf_quantifier1left, 
thf_unitary_formula1right), rest671)
end
|  ( 43, ( ( _, ( MlyValue.thf_variable thf_variable, 
thf_variable1left, thf_variable1right)) :: rest671)) => let val  
result = MlyValue.thf_variable_list (( [thf_variable] ))
 in ( LrTable.NT 115, ( result, thf_variable1left, thf_variable1right)
, rest671)
end
|  ( 44, ( ( _, ( MlyValue.thf_variable_list thf_variable_list, _, 
thf_variable_list1right)) :: _ :: ( _, ( MlyValue.thf_variable 
thf_variable, thf_variable1left, _)) :: rest671)) => let val  result =
 MlyValue.thf_variable_list (( thf_variable :: thf_variable_list ))
 in ( LrTable.NT 115, ( result, thf_variable1left, 
thf_variable_list1right), rest671)
end
|  ( 45, ( ( _, ( MlyValue.thf_typed_variable thf_typed_variable, 
thf_typed_variable1left, thf_typed_variable1right)) :: rest671)) =>
 let val  result = MlyValue.thf_variable (( thf_typed_variable ))
 in ( LrTable.NT 114, ( result, thf_typed_variable1left, 
thf_typed_variable1right), rest671)
end
|  ( 46, ( ( _, ( MlyValue.variable_ variable_, variable_1left, 
variable_1right)) :: rest671)) => let val  result = 
MlyValue.thf_variable (( (variable_, NONE) ))
 in ( LrTable.NT 114, ( result, variable_1left, variable_1right), 
rest671)
end
|  ( 47, ( ( _, ( MlyValue.thf_top_level_type thf_top_level_type, _, 
thf_top_level_type1right)) :: _ :: ( _, ( MlyValue.variable_ variable_
, variable_1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_typed_variable (( (variable_, SOME thf_top_level_type) ))
 in ( LrTable.NT 113, ( result, variable_1left, 
thf_top_level_type1right), rest671)
end
|  ( 48, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.thf_logic_formula thf_logic_formula, _, _)) :: _ :: ( _, ( 
MlyValue.thf_unary_connective thf_unary_connective, 
thf_unary_connective1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_unary_formula (
(
  Fmla (thf_unary_connective, [thf_logic_formula])
))
 in ( LrTable.NT 112, ( result, thf_unary_connective1left, 
RPAREN1right), rest671)
end
|  ( 49, ( ( _, ( MlyValue.term term, term1left, term1right)) :: 
rest671)) => let val  result = MlyValue.thf_atom (
( Atom (THF_Atom_term term) ))
 in ( LrTable.NT 102, ( result, term1left, term1right), rest671)
end
|  ( 50, ( ( _, ( MlyValue.thf_conn_term thf_conn_term, 
thf_conn_term1left, thf_conn_term1right)) :: rest671)) => let val  
result = MlyValue.thf_atom (
( Atom (THF_Atom_conn_term thf_conn_term) ))
 in ( LrTable.NT 102, ( result, thf_conn_term1left, 
thf_conn_term1right), rest671)
end
|  ( 51, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.thf_logic_formula thf_logic_formula3, _, _)) :: _ :: ( _, ( 
MlyValue.thf_logic_formula thf_logic_formula2, _, _)) :: _ :: ( _, ( 
MlyValue.thf_logic_formula thf_logic_formula1, _, _)) :: _ :: ( _, ( _
, ITE_F1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_conditional (
(
  Conditional (thf_logic_formula1, thf_logic_formula2, thf_logic_formula3)
)
)
 in ( LrTable.NT 100, ( result, ITE_F1left, RPAREN1right), rest671)

end
|  ( 52, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.thf_formula 
thf_formula, _, _)) :: _ :: ( _, ( MlyValue.thf_let_defn thf_let_defn,
 _, _)) :: _ :: ( _, ( _, LET_TF1left, _)) :: rest671)) => let val  
result = MlyValue.thf_let ((
  Let (thf_let_defn, thf_formula)
))
 in ( LrTable.NT 101, ( result, LET_TF1left, RPAREN1right), rest671)

end
|  ( 53, ( ( _, ( MlyValue.thf_quantified_formula 
thf_quantified_formula, thf_quantified_formula1left, 
thf_quantified_formula1right)) :: rest671)) => let val  result = 
MlyValue.thf_let_defn (
(
  let
    val (_, vars, fmla) = extract_quant_info thf_quantified_formula
  in [Let_fmla (hd vars, fmla)]
  end
)
)
 in ( LrTable.NT 136, ( result, thf_quantified_formula1left, 
thf_quantified_formula1right), rest671)
end
|  ( 54, ( ( _, ( MlyValue.thf_top_level_type thf_top_level_type, _, 
thf_top_level_type1right)) :: _ :: ( _, ( 
MlyValue.thf_typeable_formula thf_typeable_formula, 
thf_typeable_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_type_formula (
( (thf_typeable_formula, thf_top_level_type) ))
 in ( LrTable.NT 111, ( result, thf_typeable_formula1left, 
thf_top_level_type1right), rest671)
end
|  ( 55, ( ( _, ( MlyValue.thf_atom thf_atom, thf_atom1left, 
thf_atom1right)) :: rest671)) => let val  result = 
MlyValue.thf_typeable_formula (( thf_atom ))
 in ( LrTable.NT 110, ( result, thf_atom1left, thf_atom1right), 
rest671)
end
|  ( 56, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.thf_logic_formula thf_logic_formula, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.thf_typeable_formula (( thf_logic_formula ))
 in ( LrTable.NT 110, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 57, ( ( _, ( MlyValue.constant constant2, _, constant2right)) ::
 _ :: ( _, ( MlyValue.constant constant1, constant1left, _)) :: 
rest671)) => let val  result = MlyValue.thf_subtype (
( Subtype(constant1, constant2) ))
 in ( LrTable.NT 109, ( result, constant1left, constant2right), 
rest671)
end
|  ( 58, ( ( _, ( MlyValue.thf_logic_formula thf_logic_formula, 
thf_logic_formula1left, thf_logic_formula1right)) :: rest671)) => let
 val  result = MlyValue.thf_top_level_type (
( Fmla_type thf_logic_formula ))
 in ( LrTable.NT 108, ( result, thf_logic_formula1left, 
thf_logic_formula1right), rest671)
end
|  ( 59, ( ( _, ( MlyValue.thf_unitary_formula thf_unitary_formula, 
thf_unitary_formula1left, thf_unitary_formula1right)) :: rest671)) =>
 let val  result = MlyValue.thf_unitary_type (
( Fmla_type thf_unitary_formula ))
 in ( LrTable.NT 107, ( result, thf_unitary_formula1left, 
thf_unitary_formula1right), rest671)
end
|  ( 60, ( ( _, ( MlyValue.thf_mapping_type thf_mapping_type, 
thf_mapping_type1left, thf_mapping_type1right)) :: rest671)) => let
 val  result = MlyValue.thf_binary_type (( thf_mapping_type ))
 in ( LrTable.NT 106, ( result, thf_mapping_type1left, 
thf_mapping_type1right), rest671)
end
|  ( 61, ( ( _, ( MlyValue.thf_xprod_type thf_xprod_type, 
thf_xprod_type1left, thf_xprod_type1right)) :: rest671)) => let val  
result = MlyValue.thf_binary_type (( thf_xprod_type ))
 in ( LrTable.NT 106, ( result, thf_xprod_type1left, 
thf_xprod_type1right), rest671)
end
|  ( 62, ( ( _, ( MlyValue.thf_union_type thf_union_type, 
thf_union_type1left, thf_union_type1right)) :: rest671)) => let val  
result = MlyValue.thf_binary_type (( thf_union_type ))
 in ( LrTable.NT 106, ( result, thf_union_type1left, 
thf_union_type1right), rest671)
end
|  ( 63, ( ( _, ( MlyValue.thf_unitary_type thf_unitary_type2, _, 
thf_unitary_type2right)) :: _ :: ( _, ( MlyValue.thf_unitary_type 
thf_unitary_type1, thf_unitary_type1left, _)) :: rest671)) => let val 
 result = MlyValue.thf_mapping_type (
( Fn_type(thf_unitary_type1, thf_unitary_type2) ))
 in ( LrTable.NT 105, ( result, thf_unitary_type1left, 
thf_unitary_type2right), rest671)
end
|  ( 64, ( ( _, ( MlyValue.thf_mapping_type thf_mapping_type, _, 
thf_mapping_type1right)) :: _ :: ( _, ( MlyValue.thf_unitary_type 
thf_unitary_type, thf_unitary_type1left, _)) :: rest671)) => let val  
result = MlyValue.thf_mapping_type (
( Fn_type(thf_unitary_type, thf_mapping_type) ))
 in ( LrTable.NT 105, ( result, thf_unitary_type1left, 
thf_mapping_type1right), rest671)
end
|  ( 65, ( ( _, ( MlyValue.thf_unitary_type thf_unitary_type2, _, 
thf_unitary_type2right)) :: _ :: ( _, ( MlyValue.thf_unitary_type 
thf_unitary_type1, thf_unitary_type1left, _)) :: rest671)) => let val 
 result = MlyValue.thf_xprod_type (
( Prod_type(thf_unitary_type1, thf_unitary_type2) ))
 in ( LrTable.NT 104, ( result, thf_unitary_type1left, 
thf_unitary_type2right), rest671)
end
|  ( 66, ( ( _, ( MlyValue.thf_unitary_type thf_unitary_type, _, 
thf_unitary_type1right)) :: _ :: ( _, ( MlyValue.thf_xprod_type 
thf_xprod_type, thf_xprod_type1left, _)) :: rest671)) => let val  
result = MlyValue.thf_xprod_type (
( Prod_type(thf_xprod_type, thf_unitary_type) ))
 in ( LrTable.NT 104, ( result, thf_xprod_type1left, 
thf_unitary_type1right), rest671)
end
|  ( 67, ( ( _, ( MlyValue.thf_unitary_type thf_unitary_type2, _, 
thf_unitary_type2right)) :: _ :: ( _, ( MlyValue.thf_unitary_type 
thf_unitary_type1, thf_unitary_type1left, _)) :: rest671)) => let val 
 result = MlyValue.thf_union_type (
( Sum_type(thf_unitary_type1, thf_unitary_type2) ))
 in ( LrTable.NT 103, ( result, thf_unitary_type1left, 
thf_unitary_type2right), rest671)
end
|  ( 68, ( ( _, ( MlyValue.thf_unitary_type thf_unitary_type, _, 
thf_unitary_type1right)) :: _ :: ( _, ( MlyValue.thf_union_type 
thf_union_type, thf_union_type1left, _)) :: rest671)) => let val  
result = MlyValue.thf_union_type (
( Sum_type(thf_union_type, thf_unitary_type) ))
 in ( LrTable.NT 103, ( result, thf_union_type1left, 
thf_unitary_type1right), rest671)
end
|  ( 69, ( ( _, ( MlyValue.thf_tuple thf_tuple2, _, thf_tuple2right))
 :: _ :: ( _, ( MlyValue.thf_tuple thf_tuple1, thf_tuple1left, _)) :: 
rest671)) => let val  result = MlyValue.thf_sequent (
( Sequent(thf_tuple1, thf_tuple2) ))
 in ( LrTable.NT 99, ( result, thf_tuple1left, thf_tuple2right), 
rest671)
end
|  ( 70, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.thf_sequent 
thf_sequent, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let
 val  result = MlyValue.thf_sequent (( thf_sequent ))
 in ( LrTable.NT 99, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 71, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( _, LBRKT1left, _)) :: 
rest671)) => let val  result = MlyValue.thf_tuple (( [] ))
 in ( LrTable.NT 97, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 72, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( 
MlyValue.thf_tuple_list thf_tuple_list, _, _)) :: ( _, ( _, LBRKT1left
, _)) :: rest671)) => let val  result = MlyValue.thf_tuple (
( thf_tuple_list ))
 in ( LrTable.NT 97, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 73, ( ( _, ( MlyValue.thf_logic_formula thf_logic_formula, 
thf_logic_formula1left, thf_logic_formula1right)) :: rest671)) => let
 val  result = MlyValue.thf_tuple_list (( [thf_logic_formula] ))
 in ( LrTable.NT 98, ( result, thf_logic_formula1left, 
thf_logic_formula1right), rest671)
end
|  ( 74, ( ( _, ( MlyValue.thf_tuple_list thf_tuple_list, _, 
thf_tuple_list1right)) :: _ :: ( _, ( MlyValue.thf_logic_formula 
thf_logic_formula, thf_logic_formula1left, _)) :: rest671)) => let
 val  result = MlyValue.thf_tuple_list (
( thf_logic_formula :: thf_tuple_list ))
 in ( LrTable.NT 98, ( result, thf_logic_formula1left, 
thf_tuple_list1right), rest671)
end
|  ( 75, ( ( _, ( MlyValue.tff_logic_formula tff_logic_formula, 
tff_logic_formula1left, tff_logic_formula1right)) :: rest671)) => let
 val  result = MlyValue.tff_formula (( tff_logic_formula ))
 in ( LrTable.NT 96, ( result, tff_logic_formula1left, 
tff_logic_formula1right), rest671)
end
|  ( 76, ( ( _, ( MlyValue.tff_typed_atom tff_typed_atom, 
tff_typed_atom1left, tff_typed_atom1right)) :: rest671)) => let val  
result = MlyValue.tff_formula (
( Atom (TFF_Typed_Atom tff_typed_atom) ))
 in ( LrTable.NT 96, ( result, tff_typed_atom1left, 
tff_typed_atom1right), rest671)
end
|  ( 77, ( ( _, ( MlyValue.tff_sequent tff_sequent, tff_sequent1left, 
tff_sequent1right)) :: rest671)) => let val  result = 
MlyValue.tff_formula (( tff_sequent ))
 in ( LrTable.NT 96, ( result, tff_sequent1left, tff_sequent1right), 
rest671)
end
|  ( 78, ( ( _, ( MlyValue.tff_binary_formula tff_binary_formula, 
tff_binary_formula1left, tff_binary_formula1right)) :: rest671)) =>
 let val  result = MlyValue.tff_logic_formula (( tff_binary_formula ))
 in ( LrTable.NT 95, ( result, tff_binary_formula1left, 
tff_binary_formula1right), rest671)
end
|  ( 79, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula, 
tff_unitary_formula1left, tff_unitary_formula1right)) :: rest671)) =>
 let val  result = MlyValue.tff_logic_formula (( tff_unitary_formula )
)
 in ( LrTable.NT 95, ( result, tff_unitary_formula1left, 
tff_unitary_formula1right), rest671)
end
|  ( 80, ( ( _, ( MlyValue.tff_binary_nonassoc tff_binary_nonassoc, 
tff_binary_nonassoc1left, tff_binary_nonassoc1right)) :: rest671)) =>
 let val  result = MlyValue.tff_binary_formula (
( tff_binary_nonassoc ))
 in ( LrTable.NT 94, ( result, tff_binary_nonassoc1left, 
tff_binary_nonassoc1right), rest671)
end
|  ( 81, ( ( _, ( MlyValue.tff_binary_assoc tff_binary_assoc, 
tff_binary_assoc1left, tff_binary_assoc1right)) :: rest671)) => let
 val  result = MlyValue.tff_binary_formula (( tff_binary_assoc ))
 in ( LrTable.NT 94, ( result, tff_binary_assoc1left, 
tff_binary_assoc1right), rest671)
end
|  ( 82, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula2, _
, tff_unitary_formula2right)) :: ( _, ( MlyValue.binary_connective 
binary_connective, _, _)) :: ( _, ( MlyValue.tff_unitary_formula 
tff_unitary_formula1, tff_unitary_formula1left, _)) :: rest671)) =>
 let val  result = MlyValue.tff_binary_nonassoc (
( Fmla (binary_connective, [tff_unitary_formula1, tff_unitary_formula2]) )
)
 in ( LrTable.NT 93, ( result, tff_unitary_formula1left, 
tff_unitary_formula2right), rest671)
end
|  ( 83, ( ( _, ( MlyValue.tff_or_formula tff_or_formula, 
tff_or_formula1left, tff_or_formula1right)) :: rest671)) => let val  
result = MlyValue.tff_binary_assoc (( tff_or_formula ))
 in ( LrTable.NT 92, ( result, tff_or_formula1left, 
tff_or_formula1right), rest671)
end
|  ( 84, ( ( _, ( MlyValue.tff_and_formula tff_and_formula, 
tff_and_formula1left, tff_and_formula1right)) :: rest671)) => let val 
 result = MlyValue.tff_binary_assoc (( tff_and_formula ))
 in ( LrTable.NT 92, ( result, tff_and_formula1left, 
tff_and_formula1right), rest671)
end
|  ( 85, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula2, _
, tff_unitary_formula2right)) :: _ :: ( _, ( 
MlyValue.tff_unitary_formula tff_unitary_formula1, 
tff_unitary_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_or_formula (
( Fmla (Interpreted_Logic Or, [tff_unitary_formula1, tff_unitary_formula2]) )
)
 in ( LrTable.NT 91, ( result, tff_unitary_formula1left, 
tff_unitary_formula2right), rest671)
end
|  ( 86, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula, _,
 tff_unitary_formula1right)) :: _ :: ( _, ( MlyValue.tff_or_formula 
tff_or_formula, tff_or_formula1left, _)) :: rest671)) => let val  
result = MlyValue.tff_or_formula (
( Fmla (Interpreted_Logic Or, [tff_or_formula, tff_unitary_formula]) )
)
 in ( LrTable.NT 91, ( result, tff_or_formula1left, 
tff_unitary_formula1right), rest671)
end
|  ( 87, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula2, _
, tff_unitary_formula2right)) :: _ :: ( _, ( 
MlyValue.tff_unitary_formula tff_unitary_formula1, 
tff_unitary_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_and_formula (
( Fmla (Interpreted_Logic And, [tff_unitary_formula1, tff_unitary_formula2]) )
)
 in ( LrTable.NT 90, ( result, tff_unitary_formula1left, 
tff_unitary_formula2right), rest671)
end
|  ( 88, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula, _,
 tff_unitary_formula1right)) :: _ :: ( _, ( MlyValue.tff_and_formula 
tff_and_formula, tff_and_formula1left, _)) :: rest671)) => let val  
result = MlyValue.tff_and_formula (
( Fmla (Interpreted_Logic And, [tff_and_formula, tff_unitary_formula]) )
)
 in ( LrTable.NT 90, ( result, tff_and_formula1left, 
tff_unitary_formula1right), rest671)
end
|  ( 89, ( ( _, ( MlyValue.tff_quantified_formula 
tff_quantified_formula, tff_quantified_formula1left, 
tff_quantified_formula1right)) :: rest671)) => let val  result = 
MlyValue.tff_unitary_formula (( tff_quantified_formula ))
 in ( LrTable.NT 89, ( result, tff_quantified_formula1left, 
tff_quantified_formula1right), rest671)
end
|  ( 90, ( ( _, ( MlyValue.tff_unary_formula tff_unary_formula, 
tff_unary_formula1left, tff_unary_formula1right)) :: rest671)) => let
 val  result = MlyValue.tff_unitary_formula (( tff_unary_formula ))
 in ( LrTable.NT 89, ( result, tff_unary_formula1left, 
tff_unary_formula1right), rest671)
end
|  ( 91, ( ( _, ( MlyValue.atomic_formula atomic_formula, 
atomic_formula1left, atomic_formula1right)) :: rest671)) => let val  
result = MlyValue.tff_unitary_formula (( atomic_formula ))
 in ( LrTable.NT 89, ( result, atomic_formula1left, 
atomic_formula1right), rest671)
end
|  ( 92, ( ( _, ( MlyValue.tff_conditional tff_conditional, 
tff_conditional1left, tff_conditional1right)) :: rest671)) => let val 
 result = MlyValue.tff_unitary_formula (( tff_conditional ))
 in ( LrTable.NT 89, ( result, tff_conditional1left, 
tff_conditional1right), rest671)
end
|  ( 93, ( ( _, ( MlyValue.tff_let tff_let, tff_let1left, 
tff_let1right)) :: rest671)) => let val  result = 
MlyValue.tff_unitary_formula (( tff_let ))
 in ( LrTable.NT 89, ( result, tff_let1left, tff_let1right), rest671)

end
|  ( 94, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_logic_formula tff_logic_formula, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_unitary_formula (( tff_logic_formula ))
 in ( LrTable.NT 89, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 95, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula, _,
 tff_unitary_formula1right)) :: _ :: _ :: ( _, ( 
MlyValue.tff_variable_list tff_variable_list, _, _)) :: _ :: ( _, ( 
MlyValue.fol_quantifier fol_quantifier, fol_quantifier1left, _)) :: 
rest671)) => let val  result = MlyValue.tff_quantified_formula (
(
  Quant (fol_quantifier, tff_variable_list, tff_unitary_formula)
))
 in ( LrTable.NT 88, ( result, fol_quantifier1left, 
tff_unitary_formula1right), rest671)
end
|  ( 96, ( ( _, ( MlyValue.tff_variable tff_variable, 
tff_variable1left, tff_variable1right)) :: rest671)) => let val  
result = MlyValue.tff_variable_list (( [tff_variable] ))
 in ( LrTable.NT 87, ( result, tff_variable1left, tff_variable1right),
 rest671)
end
|  ( 97, ( ( _, ( MlyValue.tff_variable_list tff_variable_list, _, 
tff_variable_list1right)) :: _ :: ( _, ( MlyValue.tff_variable 
tff_variable, tff_variable1left, _)) :: rest671)) => let val  result =
 MlyValue.tff_variable_list (( tff_variable :: tff_variable_list ))
 in ( LrTable.NT 87, ( result, tff_variable1left, 
tff_variable_list1right), rest671)
end
|  ( 98, ( ( _, ( MlyValue.tff_typed_variable tff_typed_variable, 
tff_typed_variable1left, tff_typed_variable1right)) :: rest671)) =>
 let val  result = MlyValue.tff_variable (( tff_typed_variable ))
 in ( LrTable.NT 86, ( result, tff_typed_variable1left, 
tff_typed_variable1right), rest671)
end
|  ( 99, ( ( _, ( MlyValue.variable_ variable_, variable_1left, 
variable_1right)) :: rest671)) => let val  result = 
MlyValue.tff_variable (( (variable_, NONE) ))
 in ( LrTable.NT 86, ( result, variable_1left, variable_1right), 
rest671)
end
|  ( 100, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type, _, 
tff_atomic_type1right)) :: _ :: ( _, ( MlyValue.variable_ variable_, 
variable_1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_typed_variable (( (variable_, SOME tff_atomic_type) ))
 in ( LrTable.NT 85, ( result, variable_1left, tff_atomic_type1right),
 rest671)
end
|  ( 101, ( ( _, ( MlyValue.tff_unitary_formula tff_unitary_formula, _
, tff_unitary_formula1right)) :: ( _, ( MlyValue.unary_connective 
unary_connective, unary_connective1left, _)) :: rest671)) => let val  
result = MlyValue.tff_unary_formula (
( Fmla (unary_connective, [tff_unitary_formula]) ))
 in ( LrTable.NT 84, ( result, unary_connective1left, 
tff_unitary_formula1right), rest671)
end
|  ( 102, ( ( _, ( MlyValue.fol_infix_unary fol_infix_unary, 
fol_infix_unary1left, fol_infix_unary1right)) :: rest671)) => let val 
 result = MlyValue.tff_unary_formula (( fol_infix_unary ))
 in ( LrTable.NT 84, ( result, fol_infix_unary1left, 
fol_infix_unary1right), rest671)
end
|  ( 103, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_logic_formula tff_logic_formula3, _, _)) :: _ :: ( _, ( 
MlyValue.tff_logic_formula tff_logic_formula2, _, _)) :: _ :: ( _, ( 
MlyValue.tff_logic_formula tff_logic_formula1, _, _)) :: _ :: ( _, ( _
, ITE_F1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_conditional (
(
  Conditional (tff_logic_formula1, tff_logic_formula2, tff_logic_formula3)
)
)
 in ( LrTable.NT 76, ( result, ITE_F1left, RPAREN1right), rest671)
end
|  ( 104, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.tff_formula
 tff_formula, _, _)) :: _ :: ( _, ( MlyValue.tff_let_term_defn 
tff_let_term_defn, _, _)) :: _ :: ( _, ( _, LET_TF1left, _)) :: 
rest671)) => let val  result = MlyValue.tff_let (
(Let (tff_let_term_defn, tff_formula) ))
 in ( LrTable.NT 137, ( result, LET_TF1left, RPAREN1right), rest671)

end
|  ( 105, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.tff_formula
 tff_formula, _, _)) :: _ :: ( _, ( MlyValue.tff_let_formula_defn 
tff_let_formula_defn, _, _)) :: _ :: ( _, ( _, LET_FF1left, _)) :: 
rest671)) => let val  result = MlyValue.tff_let (
( Let (tff_let_formula_defn, tff_formula) ))
 in ( LrTable.NT 137, ( result, LET_FF1left, RPAREN1right), rest671)

end
|  ( 106, ( ( _, ( MlyValue.tff_quantified_formula 
tff_quantified_formula, tff_quantified_formula1left, 
tff_quantified_formula1right)) :: rest671)) => let val  result = 
MlyValue.tff_let_term_defn (
(
  let
    val (_, vars, fmla) = extract_quant_info tff_quantified_formula
  in [Let_fmla (hd vars, fmla)]
  end
)
)
 in ( LrTable.NT 138, ( result, tff_quantified_formula1left, 
tff_quantified_formula1right), rest671)
end
|  ( 107, ( ( _, ( MlyValue.tff_quantified_formula 
tff_quantified_formula, tff_quantified_formula1left, 
tff_quantified_formula1right)) :: rest671)) => let val  result = 
MlyValue.tff_let_formula_defn (
(
  let
    val (_, vars, fmla) = extract_quant_info tff_quantified_formula
  in [Let_fmla (hd vars, fmla)]
  end
)
)
 in ( LrTable.NT 139, ( result, tff_quantified_formula1left, 
tff_quantified_formula1right), rest671)
end
|  ( 108, ( ( _, ( MlyValue.tff_tuple tff_tuple2, _, tff_tuple2right))
 :: _ :: ( _, ( MlyValue.tff_tuple tff_tuple1, tff_tuple1left, _)) :: 
rest671)) => let val  result = MlyValue.tff_sequent (
( Sequent (tff_tuple1, tff_tuple2) ))
 in ( LrTable.NT 75, ( result, tff_tuple1left, tff_tuple2right), 
rest671)
end
|  ( 109, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.tff_sequent
 tff_sequent, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let
 val  result = MlyValue.tff_sequent (( tff_sequent ))
 in ( LrTable.NT 75, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 110, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( _, LBRKT1left, _)) ::
 rest671)) => let val  result = MlyValue.tff_tuple (( [] ))
 in ( LrTable.NT 73, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 111, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( 
MlyValue.tff_tuple_list tff_tuple_list, _, _)) :: ( _, ( _, LBRKT1left
, _)) :: rest671)) => let val  result = MlyValue.tff_tuple (
( tff_tuple_list ))
 in ( LrTable.NT 73, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 112, ( ( _, ( MlyValue.tff_tuple_list tff_tuple_list, _, 
tff_tuple_list1right)) :: _ :: ( _, ( MlyValue.tff_logic_formula 
tff_logic_formula, tff_logic_formula1left, _)) :: rest671)) => let
 val  result = MlyValue.tff_tuple_list (
( tff_logic_formula :: tff_tuple_list ))
 in ( LrTable.NT 74, ( result, tff_logic_formula1left, 
tff_tuple_list1right), rest671)
end
|  ( 113, ( ( _, ( MlyValue.tff_logic_formula tff_logic_formula, 
tff_logic_formula1left, tff_logic_formula1right)) :: rest671)) => let
 val  result = MlyValue.tff_tuple_list (( [tff_logic_formula] ))
 in ( LrTable.NT 74, ( result, tff_logic_formula1left, 
tff_logic_formula1right), rest671)
end
|  ( 114, ( ( _, ( MlyValue.tff_top_level_type tff_top_level_type, _, 
tff_top_level_type1right)) :: _ :: ( _, ( MlyValue.tff_untyped_atom 
tff_untyped_atom, tff_untyped_atom1left, _)) :: rest671)) => let val  
result = MlyValue.tff_typed_atom (
( (fst tff_untyped_atom, SOME tff_top_level_type) ))
 in ( LrTable.NT 83, ( result, tff_untyped_atom1left, 
tff_top_level_type1right), rest671)
end
|  ( 115, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_typed_atom tff_typed_atom, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_typed_atom (( tff_typed_atom ))
 in ( LrTable.NT 83, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 116, ( ( _, ( MlyValue.functor_ functor_, functor_1left, 
functor_1right)) :: rest671)) => let val  result = 
MlyValue.tff_untyped_atom (( (functor_, NONE) ))
 in ( LrTable.NT 82, ( result, functor_1left, functor_1right), rest671
)
end
|  ( 117, ( ( _, ( MlyValue.system_functor system_functor, 
system_functor1left, system_functor1right)) :: rest671)) => let val  
result = MlyValue.tff_untyped_atom (( (system_functor, NONE) ))
 in ( LrTable.NT 82, ( result, system_functor1left, 
system_functor1right), rest671)
end
|  ( 118, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type, 
tff_atomic_type1left, tff_atomic_type1right)) :: rest671)) => let val 
 result = MlyValue.tff_top_level_type (( tff_atomic_type ))
 in ( LrTable.NT 81, ( result, tff_atomic_type1left, 
tff_atomic_type1right), rest671)
end
|  ( 119, ( ( _, ( MlyValue.tff_mapping_type tff_mapping_type, 
tff_mapping_type1left, tff_mapping_type1right)) :: rest671)) => let
 val  result = MlyValue.tff_top_level_type (( tff_mapping_type ))
 in ( LrTable.NT 81, ( result, tff_mapping_type1left, 
tff_mapping_type1right), rest671)
end
|  ( 120, ( ( _, ( MlyValue.tff_quantified_type tff_quantified_type, 
tff_quantified_type1left, tff_quantified_type1right)) :: rest671)) =>
 let val  result = MlyValue.tff_top_level_type (
( tff_quantified_type ))
 in ( LrTable.NT 81, ( result, tff_quantified_type1left, 
tff_quantified_type1right), rest671)
end
|  ( 121, ( ( _, ( MlyValue.tff_monotype tff_monotype, _, 
tff_monotype1right)) :: _ :: _ :: ( _, ( MlyValue.tff_variable_list 
tff_variable_list, _, _)) :: _ :: ( _, ( _, DEP_PROD1left, _)) :: 
rest671)) => let val  result = MlyValue.tff_quantified_type (
(
       Fmla_type (Quant (Dep_Prod, tff_variable_list, THF_type tff_monotype))
)
)
 in ( LrTable.NT 140, ( result, DEP_PROD1left, tff_monotype1right), 
rest671)
end
|  ( 122, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_quantified_type tff_quantified_type, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_quantified_type (( tff_quantified_type ))
 in ( LrTable.NT 140, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 123, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type, 
tff_atomic_type1left, tff_atomic_type1right)) :: rest671)) => let val 
 result = MlyValue.tff_monotype (( tff_atomic_type ))
 in ( LrTable.NT 141, ( result, tff_atomic_type1left, 
tff_atomic_type1right), rest671)
end
|  ( 124, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_mapping_type tff_mapping_type, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_monotype (( tff_mapping_type ))
 in ( LrTable.NT 141, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 125, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type, 
tff_atomic_type1left, tff_atomic_type1right)) :: rest671)) => let val 
 result = MlyValue.tff_unitary_type (( tff_atomic_type ))
 in ( LrTable.NT 80, ( result, tff_atomic_type1left, 
tff_atomic_type1right), rest671)
end
|  ( 126, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_xprod_type tff_xprod_type, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_unitary_type (( tff_xprod_type ))
 in ( LrTable.NT 80, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 127, ( ( _, ( MlyValue.atomic_word atomic_word, atomic_word1left,
 atomic_word1right)) :: rest671)) => let val  result = 
MlyValue.tff_atomic_type (( Atom_type atomic_word ))
 in ( LrTable.NT 79, ( result, atomic_word1left, atomic_word1right), 
rest671)
end
|  ( 128, ( ( _, ( MlyValue.defined_type defined_type, 
defined_type1left, defined_type1right)) :: rest671)) => let val  
result = MlyValue.tff_atomic_type (( Defined_type defined_type ))
 in ( LrTable.NT 79, ( result, defined_type1left, defined_type1right),
 rest671)
end
|  ( 129, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_type_arguments tff_type_arguments, _, _)) :: _ :: ( _, ( 
MlyValue.atomic_word atomic_word, atomic_word1left, _)) :: rest671))
 => let val  result = MlyValue.tff_atomic_type (
( Fmla_type (Fmla (Uninterpreted atomic_word, (map THF_type tff_type_arguments))) )
)
 in ( LrTable.NT 79, ( result, atomic_word1left, RPAREN1right), 
rest671)
end
|  ( 130, ( ( _, ( MlyValue.variable_ variable_, variable_1left, 
variable_1right)) :: rest671)) => let val  result = 
MlyValue.tff_atomic_type (
( Fmla_type (Pred (Interpreted_ExtraLogic Apply, [Term_Var variable_])) )
)
 in ( LrTable.NT 79, ( result, variable_1left, variable_1right), 
rest671)
end
|  ( 131, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type, 
tff_atomic_type1left, tff_atomic_type1right)) :: rest671)) => let val 
 result = MlyValue.tff_type_arguments (( [tff_atomic_type]  ))
 in ( LrTable.NT 142, ( result, tff_atomic_type1left, 
tff_atomic_type1right), rest671)
end
|  ( 132, ( ( _, ( MlyValue.tff_type_arguments tff_type_arguments, _, 
tff_type_arguments1right)) :: _ :: ( _, ( MlyValue.tff_atomic_type 
tff_atomic_type, tff_atomic_type1left, _)) :: rest671)) => let val  
result = MlyValue.tff_type_arguments (
( tff_atomic_type :: tff_type_arguments ))
 in ( LrTable.NT 142, ( result, tff_atomic_type1left, 
tff_type_arguments1right), rest671)
end
|  ( 133, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type, _, 
tff_atomic_type1right)) :: _ :: ( _, ( MlyValue.tff_unitary_type 
tff_unitary_type, tff_unitary_type1left, _)) :: rest671)) => let val  
result = MlyValue.tff_mapping_type (
( Fn_type(tff_unitary_type, tff_atomic_type) ))
 in ( LrTable.NT 78, ( result, tff_unitary_type1left, 
tff_atomic_type1right), rest671)
end
|  ( 134, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_mapping_type tff_mapping_type, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_mapping_type (( tff_mapping_type ))
 in ( LrTable.NT 78, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 135, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type2, _, 
tff_atomic_type2right)) :: _ :: ( _, ( MlyValue.tff_atomic_type 
tff_atomic_type1, tff_atomic_type1left, _)) :: rest671)) => let val  
result = MlyValue.tff_xprod_type (
( Prod_type(tff_atomic_type1, tff_atomic_type2) ))
 in ( LrTable.NT 77, ( result, tff_atomic_type1left, 
tff_atomic_type2right), rest671)
end
|  ( 136, ( ( _, ( MlyValue.tff_atomic_type tff_atomic_type, _, 
tff_atomic_type1right)) :: _ :: ( _, ( MlyValue.tff_xprod_type 
tff_xprod_type, tff_xprod_type1left, _)) :: rest671)) => let val  
result = MlyValue.tff_xprod_type (
( Prod_type(tff_xprod_type, tff_atomic_type) ))
 in ( LrTable.NT 77, ( result, tff_xprod_type1left, 
tff_atomic_type1right), rest671)
end
|  ( 137, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.tff_xprod_type tff_xprod_type, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.tff_xprod_type (( tff_xprod_type ))
 in ( LrTable.NT 77, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 138, ( ( _, ( MlyValue.fof_logic_formula fof_logic_formula, 
fof_logic_formula1left, fof_logic_formula1right)) :: rest671)) => let
 val  result = MlyValue.fof_formula (( fof_logic_formula ))
 in ( LrTable.NT 72, ( result, fof_logic_formula1left, 
fof_logic_formula1right), rest671)
end
|  ( 139, ( ( _, ( MlyValue.fof_sequent fof_sequent, fof_sequent1left,
 fof_sequent1right)) :: rest671)) => let val  result = 
MlyValue.fof_formula (( fof_sequent ))
 in ( LrTable.NT 72, ( result, fof_sequent1left, fof_sequent1right), 
rest671)
end
|  ( 140, ( ( _, ( MlyValue.fof_binary_formula fof_binary_formula, 
fof_binary_formula1left, fof_binary_formula1right)) :: rest671)) =>
 let val  result = MlyValue.fof_logic_formula (( fof_binary_formula ))
 in ( LrTable.NT 71, ( result, fof_binary_formula1left, 
fof_binary_formula1right), rest671)
end
|  ( 141, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula, 
fof_unitary_formula1left, fof_unitary_formula1right)) :: rest671)) =>
 let val  result = MlyValue.fof_logic_formula (( fof_unitary_formula )
)
 in ( LrTable.NT 71, ( result, fof_unitary_formula1left, 
fof_unitary_formula1right), rest671)
end
|  ( 142, ( ( _, ( MlyValue.fof_binary_nonassoc fof_binary_nonassoc, 
fof_binary_nonassoc1left, fof_binary_nonassoc1right)) :: rest671)) =>
 let val  result = MlyValue.fof_binary_formula (
( fof_binary_nonassoc ))
 in ( LrTable.NT 70, ( result, fof_binary_nonassoc1left, 
fof_binary_nonassoc1right), rest671)
end
|  ( 143, ( ( _, ( MlyValue.fof_binary_assoc fof_binary_assoc, 
fof_binary_assoc1left, fof_binary_assoc1right)) :: rest671)) => let
 val  result = MlyValue.fof_binary_formula (( fof_binary_assoc ))
 in ( LrTable.NT 70, ( result, fof_binary_assoc1left, 
fof_binary_assoc1right), rest671)
end
|  ( 144, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula2,
 _, fof_unitary_formula2right)) :: ( _, ( MlyValue.binary_connective 
binary_connective, _, _)) :: ( _, ( MlyValue.fof_unitary_formula 
fof_unitary_formula1, fof_unitary_formula1left, _)) :: rest671)) =>
 let val  result = MlyValue.fof_binary_nonassoc (
(
  Fmla (binary_connective, [fof_unitary_formula1, fof_unitary_formula2] )
)
)
 in ( LrTable.NT 69, ( result, fof_unitary_formula1left, 
fof_unitary_formula2right), rest671)
end
|  ( 145, ( ( _, ( MlyValue.fof_or_formula fof_or_formula, 
fof_or_formula1left, fof_or_formula1right)) :: rest671)) => let val  
result = MlyValue.fof_binary_assoc (( fof_or_formula ))
 in ( LrTable.NT 68, ( result, fof_or_formula1left, 
fof_or_formula1right), rest671)
end
|  ( 146, ( ( _, ( MlyValue.fof_and_formula fof_and_formula, 
fof_and_formula1left, fof_and_formula1right)) :: rest671)) => let val 
 result = MlyValue.fof_binary_assoc (( fof_and_formula ))
 in ( LrTable.NT 68, ( result, fof_and_formula1left, 
fof_and_formula1right), rest671)
end
|  ( 147, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula2,
 _, fof_unitary_formula2right)) :: _ :: ( _, ( 
MlyValue.fof_unitary_formula fof_unitary_formula1, 
fof_unitary_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.fof_or_formula (
( Fmla (Interpreted_Logic Or, [fof_unitary_formula1, fof_unitary_formula2]) )
)
 in ( LrTable.NT 67, ( result, fof_unitary_formula1left, 
fof_unitary_formula2right), rest671)
end
|  ( 148, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula, _
, fof_unitary_formula1right)) :: _ :: ( _, ( MlyValue.fof_or_formula 
fof_or_formula, fof_or_formula1left, _)) :: rest671)) => let val  
result = MlyValue.fof_or_formula (
( Fmla (Interpreted_Logic Or, [fof_or_formula, fof_unitary_formula]) )
)
 in ( LrTable.NT 67, ( result, fof_or_formula1left, 
fof_unitary_formula1right), rest671)
end
|  ( 149, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula2,
 _, fof_unitary_formula2right)) :: _ :: ( _, ( 
MlyValue.fof_unitary_formula fof_unitary_formula1, 
fof_unitary_formula1left, _)) :: rest671)) => let val  result = 
MlyValue.fof_and_formula (
( Fmla (Interpreted_Logic And, [fof_unitary_formula1, fof_unitary_formula2]) )
)
 in ( LrTable.NT 66, ( result, fof_unitary_formula1left, 
fof_unitary_formula2right), rest671)
end
|  ( 150, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula, _
, fof_unitary_formula1right)) :: _ :: ( _, ( MlyValue.fof_and_formula 
fof_and_formula, fof_and_formula1left, _)) :: rest671)) => let val  
result = MlyValue.fof_and_formula (
( Fmla (Interpreted_Logic And, [fof_and_formula, fof_unitary_formula]) )
)
 in ( LrTable.NT 66, ( result, fof_and_formula1left, 
fof_unitary_formula1right), rest671)
end
|  ( 151, ( ( _, ( MlyValue.fof_quantified_formula 
fof_quantified_formula, fof_quantified_formula1left, 
fof_quantified_formula1right)) :: rest671)) => let val  result = 
MlyValue.fof_unitary_formula (( fof_quantified_formula ))
 in ( LrTable.NT 65, ( result, fof_quantified_formula1left, 
fof_quantified_formula1right), rest671)
end
|  ( 152, ( ( _, ( MlyValue.fof_unary_formula fof_unary_formula, 
fof_unary_formula1left, fof_unary_formula1right)) :: rest671)) => let
 val  result = MlyValue.fof_unitary_formula (( fof_unary_formula ))
 in ( LrTable.NT 65, ( result, fof_unary_formula1left, 
fof_unary_formula1right), rest671)
end
|  ( 153, ( ( _, ( MlyValue.atomic_formula atomic_formula, 
atomic_formula1left, atomic_formula1right)) :: rest671)) => let val  
result = MlyValue.fof_unitary_formula (( atomic_formula ))
 in ( LrTable.NT 65, ( result, atomic_formula1left, 
atomic_formula1right), rest671)
end
|  ( 154, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.fof_logic_formula fof_logic_formula, _, _)) :: ( _, ( _, 
LPAREN1left, _)) :: rest671)) => let val  result = 
MlyValue.fof_unitary_formula (( fof_logic_formula ))
 in ( LrTable.NT 65, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 155, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula, _
, fof_unitary_formula1right)) :: _ :: _ :: ( _, ( 
MlyValue.fof_variable_list fof_variable_list, _, _)) :: _ :: ( _, ( 
MlyValue.fol_quantifier fol_quantifier, fol_quantifier1left, _)) :: 
rest671)) => let val  result = MlyValue.fof_quantified_formula (
(
  Quant (fol_quantifier, map (fn v => (v, NONE)) fof_variable_list, fof_unitary_formula)
)
)
 in ( LrTable.NT 64, ( result, fol_quantifier1left, 
fof_unitary_formula1right), rest671)
end
|  ( 156, ( ( _, ( MlyValue.variable_ variable_, variable_1left, 
variable_1right)) :: rest671)) => let val  result = 
MlyValue.fof_variable_list (( [variable_] ))
 in ( LrTable.NT 63, ( result, variable_1left, variable_1right), 
rest671)
end
|  ( 157, ( ( _, ( MlyValue.fof_variable_list fof_variable_list, _, 
fof_variable_list1right)) :: _ :: ( _, ( MlyValue.variable_ variable_,
 variable_1left, _)) :: rest671)) => let val  result = 
MlyValue.fof_variable_list (( variable_ :: fof_variable_list ))
 in ( LrTable.NT 63, ( result, variable_1left, fof_variable_list1right
), rest671)
end
|  ( 158, ( ( _, ( MlyValue.fof_unitary_formula fof_unitary_formula, _
, fof_unitary_formula1right)) :: ( _, ( MlyValue.unary_connective 
unary_connective, unary_connective1left, _)) :: rest671)) => let val  
result = MlyValue.fof_unary_formula (
( Fmla (unary_connective, [fof_unitary_formula]) ))
 in ( LrTable.NT 62, ( result, unary_connective1left, 
fof_unitary_formula1right), rest671)
end
|  ( 159, ( ( _, ( MlyValue.fol_infix_unary fol_infix_unary, 
fol_infix_unary1left, fol_infix_unary1right)) :: rest671)) => let val 
 result = MlyValue.fof_unary_formula (( fol_infix_unary ))
 in ( LrTable.NT 62, ( result, fol_infix_unary1left, 
fol_infix_unary1right), rest671)
end
|  ( 160, ( ( _, ( MlyValue.fof_tuple fof_tuple2, _, fof_tuple2right))
 :: _ :: ( _, ( MlyValue.fof_tuple fof_tuple1, fof_tuple1left, _)) :: 
rest671)) => let val  result = MlyValue.fof_sequent (
( Sequent (fof_tuple1, fof_tuple2) ))
 in ( LrTable.NT 61, ( result, fof_tuple1left, fof_tuple2right), 
rest671)
end
|  ( 161, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.fof_sequent
 fof_sequent, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let
 val  result = MlyValue.fof_sequent (( fof_sequent ))
 in ( LrTable.NT 61, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 162, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( _, LBRKT1left, _)) ::
 rest671)) => let val  result = MlyValue.fof_tuple (( [] ))
 in ( LrTable.NT 60, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 163, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( 
MlyValue.fof_tuple_list fof_tuple_list, _, _)) :: ( _, ( _, LBRKT1left
, _)) :: rest671)) => let val  result = MlyValue.fof_tuple (
( fof_tuple_list ))
 in ( LrTable.NT 60, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 164, ( ( _, ( MlyValue.fof_logic_formula fof_logic_formula, 
fof_logic_formula1left, fof_logic_formula1right)) :: rest671)) => let
 val  result = MlyValue.fof_tuple_list (( [fof_logic_formula] ))
 in ( LrTable.NT 59, ( result, fof_logic_formula1left, 
fof_logic_formula1right), rest671)
end
|  ( 165, ( ( _, ( MlyValue.fof_tuple_list fof_tuple_list, _, 
fof_tuple_list1right)) :: _ :: ( _, ( MlyValue.fof_logic_formula 
fof_logic_formula, fof_logic_formula1left, _)) :: rest671)) => let
 val  result = MlyValue.fof_tuple_list (
( fof_logic_formula :: fof_tuple_list ))
 in ( LrTable.NT 59, ( result, fof_logic_formula1left, 
fof_tuple_list1right), rest671)
end
|  ( 166, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.disjunction
 disjunction, _, _)) :: ( _, ( _, LPAREN1left, _)) :: rest671)) => let
 val  result = MlyValue.cnf_formula (( disjunction ))
 in ( LrTable.NT 58, ( result, LPAREN1left, RPAREN1right), rest671)

end
|  ( 167, ( ( _, ( MlyValue.disjunction disjunction, disjunction1left,
 disjunction1right)) :: rest671)) => let val  result = 
MlyValue.cnf_formula (( disjunction ))
 in ( LrTable.NT 58, ( result, disjunction1left, disjunction1right), 
rest671)
end
|  ( 168, ( ( _, ( MlyValue.literal literal, literal1left, 
literal1right)) :: rest671)) => let val  result = MlyValue.disjunction
 (( literal ))
 in ( LrTable.NT 57, ( result, literal1left, literal1right), rest671)

end
|  ( 169, ( ( _, ( MlyValue.literal literal, _, literal1right)) :: _
 :: ( _, ( MlyValue.disjunction disjunction, disjunction1left, _)) :: 
rest671)) => let val  result = MlyValue.disjunction (
( Fmla (Interpreted_Logic Or, [disjunction, literal]) ))
 in ( LrTable.NT 57, ( result, disjunction1left, literal1right), 
rest671)
end
|  ( 170, ( ( _, ( MlyValue.atomic_formula atomic_formula, 
atomic_formula1left, atomic_formula1right)) :: rest671)) => let val  
result = MlyValue.literal (( atomic_formula ))
 in ( LrTable.NT 56, ( result, atomic_formula1left, 
atomic_formula1right), rest671)
end
|  ( 171, ( ( _, ( MlyValue.atomic_formula atomic_formula, _, 
atomic_formula1right)) :: ( _, ( _, TILDE1left, _)) :: rest671)) =>
 let val  result = MlyValue.literal (
( Fmla (Interpreted_Logic Not, [atomic_formula]) ))
 in ( LrTable.NT 56, ( result, TILDE1left, atomic_formula1right), 
rest671)
end
|  ( 172, ( ( _, ( MlyValue.fol_infix_unary fol_infix_unary, 
fol_infix_unary1left, fol_infix_unary1right)) :: rest671)) => let val 
 result = MlyValue.literal (( fol_infix_unary ))
 in ( LrTable.NT 56, ( result, fol_infix_unary1left, 
fol_infix_unary1right), rest671)
end
|  ( 173, ( ( _, ( MlyValue.thf_pair_connective thf_pair_connective, 
thf_pair_connective1left, thf_pair_connective1right)) :: rest671)) =>
 let val  result = MlyValue.thf_conn_term (( thf_pair_connective ))
 in ( LrTable.NT 55, ( result, thf_pair_connective1left, 
thf_pair_connective1right), rest671)
end
|  ( 174, ( ( _, ( MlyValue.assoc_connective assoc_connective, 
assoc_connective1left, assoc_connective1right)) :: rest671)) => let
 val  result = MlyValue.thf_conn_term (( assoc_connective ))
 in ( LrTable.NT 55, ( result, assoc_connective1left, 
assoc_connective1right), rest671)
end
|  ( 175, ( ( _, ( MlyValue.thf_unary_connective thf_unary_connective,
 thf_unary_connective1left, thf_unary_connective1right)) :: rest671))
 => let val  result = MlyValue.thf_conn_term (( thf_unary_connective )
)
 in ( LrTable.NT 55, ( result, thf_unary_connective1left, 
thf_unary_connective1right), rest671)
end
|  ( 176, ( ( _, ( MlyValue.term term2, _, term2right)) :: ( _, ( 
MlyValue.infix_inequality infix_inequality, _, _)) :: ( _, ( 
MlyValue.term term1, term1left, _)) :: rest671)) => let val  result = 
MlyValue.fol_infix_unary (( Pred (infix_inequality, [term1, term2]) ))
 in ( LrTable.NT 54, ( result, term1left, term2right), rest671)
end
|  ( 177, ( ( _, ( MlyValue.fol_quantifier fol_quantifier, 
fol_quantifier1left, fol_quantifier1right)) :: rest671)) => let val  
result = MlyValue.thf_quantifier (( fol_quantifier ))
 in ( LrTable.NT 53, ( result, fol_quantifier1left, 
fol_quantifier1right), rest671)
end
|  ( 178, ( ( _, ( _, CARET1left, CARET1right)) :: rest671)) => let
 val  result = MlyValue.thf_quantifier (( Lambda ))
 in ( LrTable.NT 53, ( result, CARET1left, CARET1right), rest671)
end
|  ( 179, ( ( _, ( _, DEP_PROD1left, DEP_PROD1right)) :: rest671)) =>
 let val  result = MlyValue.thf_quantifier (( Dep_Prod ))
 in ( LrTable.NT 53, ( result, DEP_PROD1left, DEP_PROD1right), rest671
)
end
|  ( 180, ( ( _, ( _, DEP_SUM1left, DEP_SUM1right)) :: rest671)) =>
 let val  result = MlyValue.thf_quantifier (( Dep_Sum ))
 in ( LrTable.NT 53, ( result, DEP_SUM1left, DEP_SUM1right), rest671)

end
|  ( 181, ( ( _, ( _, INDEF_CHOICE1left, INDEF_CHOICE1right)) :: 
rest671)) => let val  result = MlyValue.thf_quantifier (( Epsilon ))
 in ( LrTable.NT 53, ( result, INDEF_CHOICE1left, INDEF_CHOICE1right),
 rest671)
end
|  ( 182, ( ( _, ( _, DEFIN_CHOICE1left, DEFIN_CHOICE1right)) :: 
rest671)) => let val  result = MlyValue.thf_quantifier (( Iota ))
 in ( LrTable.NT 53, ( result, DEFIN_CHOICE1left, DEFIN_CHOICE1right),
 rest671)
end
|  ( 183, ( ( _, ( MlyValue.infix_equality infix_equality, 
infix_equality1left, infix_equality1right)) :: rest671)) => let val  
result = MlyValue.thf_pair_connective (( infix_equality ))
 in ( LrTable.NT 52, ( result, infix_equality1left, 
infix_equality1right), rest671)
end
|  ( 184, ( ( _, ( MlyValue.infix_inequality infix_inequality, 
infix_inequality1left, infix_inequality1right)) :: rest671)) => let
 val  result = MlyValue.thf_pair_connective (( infix_inequality ))
 in ( LrTable.NT 52, ( result, infix_inequality1left, 
infix_inequality1right), rest671)
end
|  ( 185, ( ( _, ( MlyValue.binary_connective binary_connective, 
binary_connective1left, binary_connective1right)) :: rest671)) => let
 val  result = MlyValue.thf_pair_connective (( binary_connective ))
 in ( LrTable.NT 52, ( result, binary_connective1left, 
binary_connective1right), rest671)
end
|  ( 186, ( ( _, ( MlyValue.unary_connective unary_connective, 
unary_connective1left, unary_connective1right)) :: rest671)) => let
 val  result = MlyValue.thf_unary_connective (( unary_connective ))
 in ( LrTable.NT 51, ( result, unary_connective1left, 
unary_connective1right), rest671)
end
|  ( 187, ( ( _, ( _, OPERATOR_FORALL1left, OPERATOR_FORALL1right)) ::
 rest671)) => let val  result = MlyValue.thf_unary_connective (
( Interpreted_Logic Op_Forall ))
 in ( LrTable.NT 51, ( result, OPERATOR_FORALL1left, 
OPERATOR_FORALL1right), rest671)
end
|  ( 188, ( ( _, ( _, OPERATOR_EXISTS1left, OPERATOR_EXISTS1right)) ::
 rest671)) => let val  result = MlyValue.thf_unary_connective (
( Interpreted_Logic Op_Exists ))
 in ( LrTable.NT 51, ( result, OPERATOR_EXISTS1left, 
OPERATOR_EXISTS1right), rest671)
end
|  ( 189, ( ( _, ( _, EXCLAMATION1left, EXCLAMATION1right)) :: rest671
)) => let val  result = MlyValue.fol_quantifier (( Forall ))
 in ( LrTable.NT 50, ( result, EXCLAMATION1left, EXCLAMATION1right), 
rest671)
end
|  ( 190, ( ( _, ( _, QUESTION1left, QUESTION1right)) :: rest671)) =>
 let val  result = MlyValue.fol_quantifier (( Exists ))
 in ( LrTable.NT 50, ( result, QUESTION1left, QUESTION1right), rest671
)
end
|  ( 191, ( ( _, ( _, IFF1left, IFF1right)) :: rest671)) => let val  
result = MlyValue.binary_connective (( Interpreted_Logic Iff ))
 in ( LrTable.NT 49, ( result, IFF1left, IFF1right), rest671)
end
|  ( 192, ( ( _, ( _, IMPLIES1left, IMPLIES1right)) :: rest671)) =>
 let val  result = MlyValue.binary_connective (
( Interpreted_Logic If ))
 in ( LrTable.NT 49, ( result, IMPLIES1left, IMPLIES1right), rest671)

end
|  ( 193, ( ( _, ( _, FI1left, FI1right)) :: rest671)) => let val  
result = MlyValue.binary_connective (( Interpreted_Logic Fi ))
 in ( LrTable.NT 49, ( result, FI1left, FI1right), rest671)
end
|  ( 194, ( ( _, ( _, XOR1left, XOR1right)) :: rest671)) => let val  
result = MlyValue.binary_connective (( Interpreted_Logic Xor ))
 in ( LrTable.NT 49, ( result, XOR1left, XOR1right), rest671)
end
|  ( 195, ( ( _, ( _, NOR1left, NOR1right)) :: rest671)) => let val  
result = MlyValue.binary_connective (( Interpreted_Logic Nor ))
 in ( LrTable.NT 49, ( result, NOR1left, NOR1right), rest671)
end
|  ( 196, ( ( _, ( _, NAND1left, NAND1right)) :: rest671)) => let val 
 result = MlyValue.binary_connective (( Interpreted_Logic Nand ))
 in ( LrTable.NT 49, ( result, NAND1left, NAND1right), rest671)
end
|  ( 197, ( ( _, ( _, VLINE1left, VLINE1right)) :: rest671)) => let
 val  result = MlyValue.assoc_connective (( Interpreted_Logic Or ))
 in ( LrTable.NT 48, ( result, VLINE1left, VLINE1right), rest671)
end
|  ( 198, ( ( _, ( _, AMPERSAND1left, AMPERSAND1right)) :: rest671))
 => let val  result = MlyValue.assoc_connective (
( Interpreted_Logic And ))
 in ( LrTable.NT 48, ( result, AMPERSAND1left, AMPERSAND1right), 
rest671)
end
|  ( 199, ( ( _, ( _, TILDE1left, TILDE1right)) :: rest671)) => let
 val  result = MlyValue.unary_connective (( Interpreted_Logic Not ))
 in ( LrTable.NT 45, ( result, TILDE1left, TILDE1right), rest671)
end
|  ( 200, ( ( _, ( MlyValue.ATOMIC_DEFINED_WORD ATOMIC_DEFINED_WORD, 
ATOMIC_DEFINED_WORD1left, ATOMIC_DEFINED_WORD1right)) :: rest671)) =>
 let val  result = MlyValue.defined_type (
(
  case ATOMIC_DEFINED_WORD of
    "$oType" => Type_Bool
  | "$o" => Type_Bool
  | "$iType" => Type_Ind
  | "$i" => Type_Ind
  | "$tType" => Type_Type
  | "$real" => Type_Real
  | "$rat" => Type_Rat
  | "$int" => Type_Int
  | thing => raise UNRECOGNISED_SYMBOL ("defined_type", thing)
)
)
 in ( LrTable.NT 46, ( result, ATOMIC_DEFINED_WORD1left, 
ATOMIC_DEFINED_WORD1right), rest671)
end
|  ( 201, ( ( _, ( MlyValue.ATOMIC_SYSTEM_WORD ATOMIC_SYSTEM_WORD, 
ATOMIC_SYSTEM_WORD1left, ATOMIC_SYSTEM_WORD1right)) :: rest671)) =>
 let val  result = MlyValue.system_type (( ATOMIC_SYSTEM_WORD ))
 in ( LrTable.NT 47, ( result, ATOMIC_SYSTEM_WORD1left, 
ATOMIC_SYSTEM_WORD1right), rest671)
end
|  ( 202, ( ( _, ( MlyValue.plain_atomic_formula plain_atomic_formula,
 plain_atomic_formula1left, plain_atomic_formula1right)) :: rest671))
 => let val  result = MlyValue.atomic_formula (
( plain_atomic_formula ))
 in ( LrTable.NT 44, ( result, plain_atomic_formula1left, 
plain_atomic_formula1right), rest671)
end
|  ( 203, ( ( _, ( MlyValue.defined_atomic_formula 
defined_atomic_formula, defined_atomic_formula1left, 
defined_atomic_formula1right)) :: rest671)) => let val  result = 
MlyValue.atomic_formula (( defined_atomic_formula ))
 in ( LrTable.NT 44, ( result, defined_atomic_formula1left, 
defined_atomic_formula1right), rest671)
end
|  ( 204, ( ( _, ( MlyValue.system_atomic_formula 
system_atomic_formula, system_atomic_formula1left, 
system_atomic_formula1right)) :: rest671)) => let val  result = 
MlyValue.atomic_formula (( system_atomic_formula ))
 in ( LrTable.NT 44, ( result, system_atomic_formula1left, 
system_atomic_formula1right), rest671)
end
|  ( 205, ( ( _, ( MlyValue.plain_term plain_term, plain_term1left, 
plain_term1right)) :: rest671)) => let val  result = 
MlyValue.plain_atomic_formula (( Pred plain_term ))
 in ( LrTable.NT 43, ( result, plain_term1left, plain_term1right), 
rest671)
end
|  ( 206, ( ( _, ( MlyValue.defined_plain_formula 
defined_plain_formula, defined_plain_formula1left, 
defined_plain_formula1right)) :: rest671)) => let val  result = 
MlyValue.defined_atomic_formula (( defined_plain_formula ))
 in ( LrTable.NT 42, ( result, defined_plain_formula1left, 
defined_plain_formula1right), rest671)
end
|  ( 207, ( ( _, ( MlyValue.defined_infix_formula 
defined_infix_formula, defined_infix_formula1left, 
defined_infix_formula1right)) :: rest671)) => let val  result = 
MlyValue.defined_atomic_formula (( defined_infix_formula ))
 in ( LrTable.NT 42, ( result, defined_infix_formula1left, 
defined_infix_formula1right), rest671)
end
|  ( 208, ( ( _, ( MlyValue.defined_plain_term defined_plain_term, 
defined_plain_term1left, defined_plain_term1right)) :: rest671)) =>
 let val  result = MlyValue.defined_plain_formula (
( Pred defined_plain_term ))
 in ( LrTable.NT 41, ( result, defined_plain_term1left, 
defined_plain_term1right), rest671)
end
|  ( 209, ( ( _, ( MlyValue.ATOMIC_DEFINED_WORD ATOMIC_DEFINED_WORD, 
ATOMIC_DEFINED_WORD1left, ATOMIC_DEFINED_WORD1right)) :: rest671)) =>
 let val  result = MlyValue.defined_prop (
(
  case ATOMIC_DEFINED_WORD of
    "$true"  => "$true"
  | "$false" => "$false"
  | thing => raise UNRECOGNISED_SYMBOL ("defined_prop", thing)
)
)
 in ( LrTable.NT 39, ( result, ATOMIC_DEFINED_WORD1left, 
ATOMIC_DEFINED_WORD1right), rest671)
end
|  ( 210, ( ( _, ( MlyValue.ATOMIC_DEFINED_WORD ATOMIC_DEFINED_WORD, 
ATOMIC_DEFINED_WORD1left, ATOMIC_DEFINED_WORD1right)) :: rest671)) =>
 let val  result = MlyValue.defined_pred (
(
  case ATOMIC_DEFINED_WORD of
    "$distinct"  => "$distinct"
  | "$ite_f" => "$ite_f"
  | "$less" => "$less"
  | "$lesseq" => "$lesseq"
  | "$greater" => "$greater"
  | "$greatereq" => "$greatereq"
  | "$is_int" => "$is_int"
  | "$is_rat" => "$is_rat"
  | thing => raise UNRECOGNISED_SYMBOL ("defined_pred", thing)
)
)
 in ( LrTable.NT 40, ( result, ATOMIC_DEFINED_WORD1left, 
ATOMIC_DEFINED_WORD1right), rest671)
end
|  ( 211, ( ( _, ( MlyValue.term term2, _, term2right)) :: ( _, ( 
MlyValue.defined_infix_pred defined_infix_pred, _, _)) :: ( _, ( 
MlyValue.term term1, term1left, _)) :: rest671)) => let val  result = 
MlyValue.defined_infix_formula (
(Pred (defined_infix_pred, [term1, term2])))
 in ( LrTable.NT 38, ( result, term1left, term2right), rest671)
end
|  ( 212, ( ( _, ( MlyValue.infix_equality infix_equality, 
infix_equality1left, infix_equality1right)) :: rest671)) => let val  
result = MlyValue.defined_infix_pred (( infix_equality ))
 in ( LrTable.NT 37, ( result, infix_equality1left, 
infix_equality1right), rest671)
end
|  ( 213, ( ( _, ( _, EQUALS1left, EQUALS1right)) :: rest671)) => let
 val  result = MlyValue.infix_equality (( Interpreted_Logic Equals ))
 in ( LrTable.NT 35, ( result, EQUALS1left, EQUALS1right), rest671)

end
|  ( 214, ( ( _, ( _, NEQUALS1left, NEQUALS1right)) :: rest671)) =>
 let val  result = MlyValue.infix_inequality (
( Interpreted_Logic NEquals ))
 in ( LrTable.NT 36, ( result, NEQUALS1left, NEQUALS1right), rest671)

end
|  ( 215, ( ( _, ( MlyValue.system_term system_term, system_term1left,
 system_term1right)) :: rest671)) => let val  result = 
MlyValue.system_atomic_formula (( Pred system_term ))
 in ( LrTable.NT 34, ( result, system_term1left, system_term1right), 
rest671)
end
|  ( 216, ( ( _, ( MlyValue.function_term function_term, 
function_term1left, function_term1right)) :: rest671)) => let val  
result = MlyValue.term (( function_term ))
 in ( LrTable.NT 19, ( result, function_term1left, function_term1right
), rest671)
end
|  ( 217, ( ( _, ( MlyValue.variable_ variable_, variable_1left, 
variable_1right)) :: rest671)) => let val  result = MlyValue.term (
( Term_Var variable_ ))
 in ( LrTable.NT 19, ( result, variable_1left, variable_1right), 
rest671)
end
|  ( 218, ( ( _, ( MlyValue.conditional_term conditional_term, 
conditional_term1left, conditional_term1right)) :: rest671)) => let
 val  result = MlyValue.term (( conditional_term ))
 in ( LrTable.NT 19, ( result, conditional_term1left, 
conditional_term1right), rest671)
end
|  ( 219, ( ( _, ( MlyValue.let_term let_term, let_term1left, 
let_term1right)) :: rest671)) => let val  result = MlyValue.term (
( let_term ))
 in ( LrTable.NT 19, ( result, let_term1left, let_term1right), rest671
)
end
|  ( 220, ( ( _, ( MlyValue.plain_term plain_term, plain_term1left, 
plain_term1right)) :: rest671)) => let val  result = 
MlyValue.function_term (( Term_Func plain_term ))
 in ( LrTable.NT 32, ( result, plain_term1left, plain_term1right), 
rest671)
end
|  ( 221, ( ( _, ( MlyValue.defined_term defined_term, 
defined_term1left, defined_term1right)) :: rest671)) => let val  
result = MlyValue.function_term (( defined_term ))
 in ( LrTable.NT 32, ( result, defined_term1left, defined_term1right),
 rest671)
end
|  ( 222, ( ( _, ( MlyValue.system_term system_term, system_term1left,
 system_term1right)) :: rest671)) => let val  result = 
MlyValue.function_term (( Term_Func system_term ))
 in ( LrTable.NT 32, ( result, system_term1left, system_term1right), 
rest671)
end
|  ( 223, ( ( _, ( MlyValue.constant constant, constant1left, 
constant1right)) :: rest671)) => let val  result = MlyValue.plain_term
 (( (constant, []) ))
 in ( LrTable.NT 31, ( result, constant1left, constant1right), rest671
)
end
|  ( 224, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.arguments 
arguments, _, _)) :: _ :: ( _, ( MlyValue.functor_ functor_, 
functor_1left, _)) :: rest671)) => let val  result = 
MlyValue.plain_term (( (functor_, arguments) ))
 in ( LrTable.NT 31, ( result, functor_1left, RPAREN1right), rest671)

end
|  ( 225, ( ( _, ( MlyValue.functor_ functor_, functor_1left, 
functor_1right)) :: rest671)) => let val  result = MlyValue.constant (
( functor_ ))
 in ( LrTable.NT 30, ( result, functor_1left, functor_1right), rest671
)
end
|  ( 226, ( ( _, ( MlyValue.atomic_word atomic_word, atomic_word1left,
 atomic_word1right)) :: rest671)) => let val  result = 
MlyValue.functor_ (( Uninterpreted atomic_word ))
 in ( LrTable.NT 18, ( result, atomic_word1left, atomic_word1right), 
rest671)
end
|  ( 227, ( ( _, ( MlyValue.defined_atom defined_atom, 
defined_atom1left, defined_atom1right)) :: rest671)) => let val  
result = MlyValue.defined_term (( defined_atom ))
 in ( LrTable.NT 29, ( result, defined_atom1left, defined_atom1right),
 rest671)
end
|  ( 228, ( ( _, ( MlyValue.defined_atomic_term defined_atomic_term, 
defined_atomic_term1left, defined_atomic_term1right)) :: rest671)) =>
 let val  result = MlyValue.defined_term (( defined_atomic_term ))
 in ( LrTable.NT 29, ( result, defined_atomic_term1left, 
defined_atomic_term1right), rest671)
end
|  ( 229, ( ( _, ( MlyValue.number number, number1left, number1right))
 :: rest671)) => let val  result = MlyValue.defined_atom (
( Term_Num number ))
 in ( LrTable.NT 28, ( result, number1left, number1right), rest671)

end
|  ( 230, ( ( _, ( MlyValue.DISTINCT_OBJECT DISTINCT_OBJECT, 
DISTINCT_OBJECT1left, DISTINCT_OBJECT1right)) :: rest671)) => let val 
 result = MlyValue.defined_atom (
( Term_Distinct_Object DISTINCT_OBJECT ))
 in ( LrTable.NT 28, ( result, DISTINCT_OBJECT1left, 
DISTINCT_OBJECT1right), rest671)
end
|  ( 231, ( ( _, ( MlyValue.defined_plain_term defined_plain_term, 
defined_plain_term1left, defined_plain_term1right)) :: rest671)) =>
 let val  result = MlyValue.defined_atomic_term (
( Term_Func defined_plain_term ))
 in ( LrTable.NT 27, ( result, defined_plain_term1left, 
defined_plain_term1right), rest671)
end
|  ( 232, ( ( _, ( MlyValue.defined_constant defined_constant, 
defined_constant1left, defined_constant1right)) :: rest671)) => let
 val  result = MlyValue.defined_plain_term (( (defined_constant, []) )
)
 in ( LrTable.NT 26, ( result, defined_constant1left, 
defined_constant1right), rest671)
end
|  ( 233, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.arguments 
arguments, _, _)) :: _ :: ( _, ( MlyValue.defined_functor 
defined_functor, defined_functor1left, _)) :: rest671)) => let val  
result = MlyValue.defined_plain_term (( (defined_functor, arguments) )
)
 in ( LrTable.NT 26, ( result, defined_functor1left, RPAREN1right), 
rest671)
end
|  ( 234, ( ( _, ( MlyValue.defined_functor defined_functor, 
defined_functor1left, defined_functor1right)) :: rest671)) => let val 
 result = MlyValue.defined_constant (( defined_functor ))
 in ( LrTable.NT 25, ( result, defined_functor1left, 
defined_functor1right), rest671)
end
|  ( 235, ( ( _, ( MlyValue.ATOMIC_DEFINED_WORD ATOMIC_DEFINED_WORD, 
ATOMIC_DEFINED_WORD1left, ATOMIC_DEFINED_WORD1right)) :: rest671)) =>
 let val  result = MlyValue.defined_functor (
(
  case ATOMIC_DEFINED_WORD of
    "$uminus" => Interpreted_ExtraLogic UMinus
  | "$sum" => Interpreted_ExtraLogic Sum
  | "$difference" => Interpreted_ExtraLogic Difference
  | "$product" => Interpreted_ExtraLogic Product
  | "$quotient" => Interpreted_ExtraLogic Quotient
  | "$quotient_e" => Interpreted_ExtraLogic Quotient_E
  | "$quotient_t" => Interpreted_ExtraLogic Quotient_T
  | "$quotient_f" => Interpreted_ExtraLogic Quotient_F
  | "$remainder_e" => Interpreted_ExtraLogic Remainder_E
  | "$remainder_t" => Interpreted_ExtraLogic Remainder_T
  | "$remainder_f" => Interpreted_ExtraLogic Remainder_F
  | "$floor" => Interpreted_ExtraLogic Floor
  | "$ceiling" => Interpreted_ExtraLogic Ceiling
  | "$truncate" => Interpreted_ExtraLogic Truncate
  | "$round" => Interpreted_ExtraLogic Round
  | "$to_int" => Interpreted_ExtraLogic To_Int
  | "$to_rat" => Interpreted_ExtraLogic To_Rat
  | "$to_real" => Interpreted_ExtraLogic To_Real

  | "$i" => TypeSymbol Type_Ind
  | "$o" => TypeSymbol Type_Bool
  | "$iType" => TypeSymbol Type_Ind
  | "$oType" => TypeSymbol Type_Bool
  | "$int" => TypeSymbol Type_Int
  | "$real" => TypeSymbol Type_Real
  | "$rat" => TypeSymbol Type_Rat
  | "$tType" => TypeSymbol Type_Type

  | "$true" => Interpreted_Logic True
  | "$false" => Interpreted_Logic False

  | "$less" => Interpreted_ExtraLogic Less
  | "$lesseq" => Interpreted_ExtraLogic LessEq
  | "$greatereq" => Interpreted_ExtraLogic GreaterEq
  | "$greater" => Interpreted_ExtraLogic Greater
  | "$evaleq" => Interpreted_ExtraLogic EvalEq

  | "$is_int" => Interpreted_ExtraLogic Is_Int
  | "$is_rat" => Interpreted_ExtraLogic Is_Rat

  | "$distinct" => Interpreted_ExtraLogic Distinct

  | thing => raise UNRECOGNISED_SYMBOL ("defined_functor", thing)
)
)
 in ( LrTable.NT 21, ( result, ATOMIC_DEFINED_WORD1left, 
ATOMIC_DEFINED_WORD1right), rest671)
end
|  ( 236, ( ( _, ( MlyValue.system_constant system_constant, 
system_constant1left, system_constant1right)) :: rest671)) => let val 
 result = MlyValue.system_term (( (system_constant, []) ))
 in ( LrTable.NT 24, ( result, system_constant1left, 
system_constant1right), rest671)
end
|  ( 237, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.arguments 
arguments, _, _)) :: _ :: ( _, ( MlyValue.system_functor 
system_functor, system_functor1left, _)) :: rest671)) => let val  
result = MlyValue.system_term (( (system_functor, arguments) ))
 in ( LrTable.NT 24, ( result, system_functor1left, RPAREN1right), 
rest671)
end
|  ( 238, ( ( _, ( MlyValue.system_functor system_functor, 
system_functor1left, system_functor1right)) :: rest671)) => let val  
result = MlyValue.system_constant (( system_functor ))
 in ( LrTable.NT 23, ( result, system_functor1left, 
system_functor1right), rest671)
end
|  ( 239, ( ( _, ( MlyValue.ATOMIC_SYSTEM_WORD ATOMIC_SYSTEM_WORD, 
ATOMIC_SYSTEM_WORD1left, ATOMIC_SYSTEM_WORD1right)) :: rest671)) =>
 let val  result = MlyValue.system_functor (
( System ATOMIC_SYSTEM_WORD ))
 in ( LrTable.NT 22, ( result, ATOMIC_SYSTEM_WORD1left, 
ATOMIC_SYSTEM_WORD1right), rest671)
end
|  ( 240, ( ( _, ( MlyValue.UPPER_WORD UPPER_WORD, UPPER_WORD1left, 
UPPER_WORD1right)) :: rest671)) => let val  result = 
MlyValue.variable_ (( UPPER_WORD ))
 in ( LrTable.NT 10, ( result, UPPER_WORD1left, UPPER_WORD1right), 
rest671)
end
|  ( 241, ( ( _, ( MlyValue.term term, term1left, term1right)) :: 
rest671)) => let val  result = MlyValue.arguments (( [term] ))
 in ( LrTable.NT 20, ( result, term1left, term1right), rest671)
end
|  ( 242, ( ( _, ( MlyValue.arguments arguments, _, arguments1right))
 :: _ :: ( _, ( MlyValue.term term, term1left, _)) :: rest671)) => let
 val  result = MlyValue.arguments (( term :: arguments ))
 in ( LrTable.NT 20, ( result, term1left, arguments1right), rest671)

end
|  ( 243, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.term term2,
 _, _)) :: _ :: ( _, ( MlyValue.term term1, _, _)) :: _ :: ( _, ( 
MlyValue.tff_logic_formula tff_logic_formula, _, _)) :: _ :: ( _, ( _,
 ITE_T1left, _)) :: rest671)) => let val  result = 
MlyValue.conditional_term (
(
  Term_Conditional (tff_logic_formula, term1, term2)
))
 in ( LrTable.NT 33, ( result, ITE_T1left, RPAREN1right), rest671)
end
|  ( 244, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.term term,
 _, _)) :: _ :: ( _, ( MlyValue.tff_let_formula_defn 
tff_let_formula_defn, _, _)) :: _ :: ( _, ( _, LET_FT1left, _)) :: 
rest671)) => let val  result = MlyValue.let_term (
(Term_Let (tff_let_formula_defn, term) ))
 in ( LrTable.NT 143, ( result, LET_FT1left, RPAREN1right), rest671)

end
|  ( 245, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.term term,
 _, _)) :: _ :: ( _, ( MlyValue.tff_let_term_defn tff_let_term_defn, _
, _)) :: _ :: ( _, ( _, LET_TT1left, _)) :: rest671)) => let val  
result = MlyValue.let_term ((Term_Let (tff_let_term_defn, term) ))
 in ( LrTable.NT 143, ( result, LET_TT1left, RPAREN1right), rest671)

end
|  ( 246, ( ( _, ( MlyValue.useful_info useful_info, _, 
useful_info1right)) :: ( _, ( _, COMMA1left, _)) :: rest671)) => let
 val  result = MlyValue.optional_info (( useful_info ))
 in ( LrTable.NT 4, ( result, COMMA1left, useful_info1right), rest671)

end
|  ( 247, ( rest671)) => let val  result = MlyValue.optional_info (
( [] ))
 in ( LrTable.NT 4, ( result, defaultPos, defaultPos), rest671)
end
|  ( 248, ( ( _, ( MlyValue.general_list general_list, 
general_list1left, general_list1right)) :: rest671)) => let val  
result = MlyValue.useful_info (( general_list ))
 in ( LrTable.NT 16, ( result, general_list1left, general_list1right),
 rest671)
end
|  ( 249, ( ( _, ( _, _, PERIOD1right)) :: _ :: ( _, ( 
MlyValue.formula_selection formula_selection, _, _)) :: ( _, ( 
MlyValue.file_name file_name, _, _)) :: _ :: ( _, ( _, INCLUDE1left, _
)) :: rest671)) => let val  result = MlyValue.include_ (
(
  Include (file_name, formula_selection)
))
 in ( LrTable.NT 132, ( result, INCLUDE1left, PERIOD1right), rest671)

end
|  ( 250, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( MlyValue.name_list 
name_list, _, _)) :: _ :: ( _, ( _, COMMA1left, _)) :: rest671)) =>
 let val  result = MlyValue.formula_selection (( name_list  ))
 in ( LrTable.NT 3, ( result, COMMA1left, RBRKT1right), rest671)
end
|  ( 251, ( rest671)) => let val  result = MlyValue.formula_selection
 (( [] ))
 in ( LrTable.NT 3, ( result, defaultPos, defaultPos), rest671)
end
|  ( 252, ( ( _, ( MlyValue.name_list name_list, _, name_list1right))
 :: _ :: ( _, ( MlyValue.name name, name1left, _)) :: rest671)) => let
 val  result = MlyValue.name_list (( name :: name_list ))
 in ( LrTable.NT 2, ( result, name1left, name_list1right), rest671)

end
|  ( 253, ( ( _, ( MlyValue.name name, name1left, name1right)) :: 
rest671)) => let val  result = MlyValue.name_list (( [name] ))
 in ( LrTable.NT 2, ( result, name1left, name1right), rest671)
end
|  ( 254, ( ( _, ( MlyValue.general_data general_data, 
general_data1left, general_data1right)) :: rest671)) => let val  
result = MlyValue.general_term (( General_Data general_data ))
 in ( LrTable.NT 7, ( result, general_data1left, general_data1right), 
rest671)
end
|  ( 255, ( ( _, ( MlyValue.general_term general_term, _, 
general_term1right)) :: _ :: ( _, ( MlyValue.general_data general_data
, general_data1left, _)) :: rest671)) => let val  result = 
MlyValue.general_term (( General_Term (general_data, general_term) ))
 in ( LrTable.NT 7, ( result, general_data1left, general_term1right), 
rest671)
end
|  ( 256, ( ( _, ( MlyValue.general_list general_list, 
general_list1left, general_list1right)) :: rest671)) => let val  
result = MlyValue.general_term (( General_List general_list ))
 in ( LrTable.NT 7, ( result, general_list1left, general_list1right), 
rest671)
end
|  ( 257, ( ( _, ( MlyValue.atomic_word atomic_word, atomic_word1left,
 atomic_word1right)) :: rest671)) => let val  result = 
MlyValue.general_data (( Atomic_Word atomic_word ))
 in ( LrTable.NT 9, ( result, atomic_word1left, atomic_word1right), 
rest671)
end
|  ( 258, ( ( _, ( MlyValue.general_function general_function, 
general_function1left, general_function1right)) :: rest671)) => let
 val  result = MlyValue.general_data (( general_function ))
 in ( LrTable.NT 9, ( result, general_function1left, 
general_function1right), rest671)
end
|  ( 259, ( ( _, ( MlyValue.variable_ variable_, variable_1left, 
variable_1right)) :: rest671)) => let val  result = 
MlyValue.general_data (( V variable_ ))
 in ( LrTable.NT 9, ( result, variable_1left, variable_1right), 
rest671)
end
|  ( 260, ( ( _, ( MlyValue.number number, number1left, number1right))
 :: rest671)) => let val  result = MlyValue.general_data (
( Number number ))
 in ( LrTable.NT 9, ( result, number1left, number1right), rest671)
end
|  ( 261, ( ( _, ( MlyValue.DISTINCT_OBJECT DISTINCT_OBJECT, 
DISTINCT_OBJECT1left, DISTINCT_OBJECT1right)) :: rest671)) => let val 
 result = MlyValue.general_data (( Distinct_Object DISTINCT_OBJECT ))
 in ( LrTable.NT 9, ( result, DISTINCT_OBJECT1left, 
DISTINCT_OBJECT1right), rest671)
end
|  ( 262, ( ( _, ( MlyValue.formula_data formula_data, 
formula_data1left, formula_data1right)) :: rest671)) => let val  
result = MlyValue.general_data (( formula_data ))
 in ( LrTable.NT 9, ( result, formula_data1left, formula_data1right), 
rest671)
end
|  ( 263, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( 
MlyValue.general_terms general_terms, _, _)) :: _ :: ( _, ( 
MlyValue.atomic_word atomic_word, atomic_word1left, _)) :: rest671))
 => let val  result = MlyValue.general_function (
( Application (atomic_word, general_terms) ))
 in ( LrTable.NT 15, ( result, atomic_word1left, RPAREN1right), 
rest671)
end
|  ( 264, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.thf_formula
 thf_formula, _, _)) :: _ :: ( _, ( _, DTHF1left, _)) :: rest671)) =>
 let val  result = MlyValue.formula_data (
( Formula_Data (THF, thf_formula) ))
 in ( LrTable.NT 12, ( result, DTHF1left, RPAREN1right), rest671)
end
|  ( 265, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.tff_formula
 tff_formula, _, _)) :: _ :: ( _, ( _, DTFF1left, _)) :: rest671)) =>
 let val  result = MlyValue.formula_data (
( Formula_Data (TFF, tff_formula) ))
 in ( LrTable.NT 12, ( result, DTFF1left, RPAREN1right), rest671)
end
|  ( 266, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.fof_formula
 fof_formula, _, _)) :: _ :: ( _, ( _, DFOF1left, _)) :: rest671)) =>
 let val  result = MlyValue.formula_data (
( Formula_Data (FOF, fof_formula) ))
 in ( LrTable.NT 12, ( result, DFOF1left, RPAREN1right), rest671)
end
|  ( 267, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.cnf_formula
 cnf_formula, _, _)) :: _ :: ( _, ( _, DCNF1left, _)) :: rest671)) =>
 let val  result = MlyValue.formula_data (
( Formula_Data (CNF, cnf_formula) ))
 in ( LrTable.NT 12, ( result, DCNF1left, RPAREN1right), rest671)
end
|  ( 268, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.term term,
 _, _)) :: _ :: ( _, ( _, DFOT1left, _)) :: rest671)) => let val  
result = MlyValue.formula_data (( Term_Data term ))
 in ( LrTable.NT 12, ( result, DFOT1left, RPAREN1right), rest671)
end
|  ( 269, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( 
MlyValue.general_terms general_terms, _, _)) :: ( _, ( _, LBRKT1left,
 _)) :: rest671)) => let val  result = MlyValue.general_list (
( general_terms ))
 in ( LrTable.NT 5, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 270, ( ( _, ( _, _, RBRKT1right)) :: ( _, ( _, LBRKT1left, _)) ::
 rest671)) => let val  result = MlyValue.general_list (( [] ))
 in ( LrTable.NT 5, ( result, LBRKT1left, RBRKT1right), rest671)
end
|  ( 271, ( ( _, ( MlyValue.general_terms general_terms, _, 
general_terms1right)) :: _ :: ( _, ( MlyValue.general_term 
general_term, general_term1left, _)) :: rest671)) => let val  result =
 MlyValue.general_terms (( general_term :: general_terms ))
 in ( LrTable.NT 6, ( result, general_term1left, general_terms1right),
 rest671)
end
|  ( 272, ( ( _, ( MlyValue.general_term general_term, 
general_term1left, general_term1right)) :: rest671)) => let val  
result = MlyValue.general_terms (( [general_term] ))
 in ( LrTable.NT 6, ( result, general_term1left, general_term1right), 
rest671)
end
|  ( 273, ( ( _, ( MlyValue.atomic_word atomic_word, atomic_word1left,
 atomic_word1right)) :: rest671)) => let val  result = MlyValue.name (
( atomic_word ))
 in ( LrTable.NT 1, ( result, atomic_word1left, atomic_word1right), 
rest671)
end
|  ( 274, ( ( _, ( MlyValue.integer integer, integer1left, 
integer1right)) :: rest671)) => let val  result = MlyValue.name (
( integer ))
 in ( LrTable.NT 1, ( result, integer1left, integer1right), rest671)

end
|  ( 275, ( ( _, ( MlyValue.LOWER_WORD LOWER_WORD, LOWER_WORD1left, 
LOWER_WORD1right)) :: rest671)) => let val  result = 
MlyValue.atomic_word (( LOWER_WORD ))
 in ( LrTable.NT 8, ( result, LOWER_WORD1left, LOWER_WORD1right), 
rest671)
end
|  ( 276, ( ( _, ( MlyValue.SINGLE_QUOTED SINGLE_QUOTED, 
SINGLE_QUOTED1left, SINGLE_QUOTED1right)) :: rest671)) => let val  
result = MlyValue.atomic_word (( SINGLE_QUOTED ))
 in ( LrTable.NT 8, ( result, SINGLE_QUOTED1left, SINGLE_QUOTED1right)
, rest671)
end
|  ( 277, ( ( _, ( _, THF1left, THF1right)) :: rest671)) => let val  
result = MlyValue.atomic_word (( "thf" ))
 in ( LrTable.NT 8, ( result, THF1left, THF1right), rest671)
end
|  ( 278, ( ( _, ( _, TFF1left, TFF1right)) :: rest671)) => let val  
result = MlyValue.atomic_word (( "tff" ))
 in ( LrTable.NT 8, ( result, TFF1left, TFF1right), rest671)
end
|  ( 279, ( ( _, ( _, FOF1left, FOF1right)) :: rest671)) => let val  
result = MlyValue.atomic_word (( "fof" ))
 in ( LrTable.NT 8, ( result, FOF1left, FOF1right), rest671)
end
|  ( 280, ( ( _, ( _, CNF1left, CNF1right)) :: rest671)) => let val  
result = MlyValue.atomic_word (( "cnf" ))
 in ( LrTable.NT 8, ( result, CNF1left, CNF1right), rest671)
end
|  ( 281, ( ( _, ( _, INCLUDE1left, INCLUDE1right)) :: rest671)) =>
 let val  result = MlyValue.atomic_word (( "include" ))
 in ( LrTable.NT 8, ( result, INCLUDE1left, INCLUDE1right), rest671)

end
|  ( 282, ( ( _, ( MlyValue.UNSIGNED_INTEGER UNSIGNED_INTEGER, 
UNSIGNED_INTEGER1left, UNSIGNED_INTEGER1right)) :: rest671)) => let
 val  result = MlyValue.integer (( UNSIGNED_INTEGER ))
 in ( LrTable.NT 13, ( result, UNSIGNED_INTEGER1left, 
UNSIGNED_INTEGER1right), rest671)
end
|  ( 283, ( ( _, ( MlyValue.SIGNED_INTEGER SIGNED_INTEGER, 
SIGNED_INTEGER1left, SIGNED_INTEGER1right)) :: rest671)) => let val  
result = MlyValue.integer (( SIGNED_INTEGER ))
 in ( LrTable.NT 13, ( result, SIGNED_INTEGER1left, 
SIGNED_INTEGER1right), rest671)
end
|  ( 284, ( ( _, ( MlyValue.integer integer, integer1left, 
integer1right)) :: rest671)) => let val  result = MlyValue.number (
( (Int_num, integer) ))
 in ( LrTable.NT 11, ( result, integer1left, integer1right), rest671)

end
|  ( 285, ( ( _, ( MlyValue.REAL REAL, REAL1left, REAL1right)) :: 
rest671)) => let val  result = MlyValue.number (( (Real_num, REAL) ))
 in ( LrTable.NT 11, ( result, REAL1left, REAL1right), rest671)
end
|  ( 286, ( ( _, ( MlyValue.RATIONAL RATIONAL, RATIONAL1left, 
RATIONAL1right)) :: rest671)) => let val  result = MlyValue.number (
( (Rat_num, RATIONAL) ))
 in ( LrTable.NT 11, ( result, RATIONAL1left, RATIONAL1right), rest671
)
end
|  ( 287, ( ( _, ( MlyValue.SINGLE_QUOTED SINGLE_QUOTED, 
SINGLE_QUOTED1left, SINGLE_QUOTED1right)) :: rest671)) => let val  
result = MlyValue.file_name (( SINGLE_QUOTED ))
 in ( LrTable.NT 17, ( result, SINGLE_QUOTED1left, SINGLE_QUOTED1right
), rest671)
end
| _ => raise (mlyAction i392)
end
val void = MlyValue.VOID
val extract = fn a => (fn MlyValue.tptp x => x
| _ => let exception ParseInternal
	in raise ParseInternal end) a 
end
end
structure Tokens : TPTP_TOKENS =
struct
type svalue = ParserData.svalue
type ('a,'b) token = ('a,'b) Token.token
fun AMPERSAND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
ParserData.MlyValue.VOID,p1,p2))
fun AT_SIGN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
ParserData.MlyValue.VOID,p1,p2))
fun CARET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
ParserData.MlyValue.VOID,p1,p2))
fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
ParserData.MlyValue.VOID,p1,p2))
fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
ParserData.MlyValue.VOID,p1,p2))
fun EQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
ParserData.MlyValue.VOID,p1,p2))
fun EXCLAMATION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
ParserData.MlyValue.VOID,p1,p2))
fun LET (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
ParserData.MlyValue.VOID,p1,p2))
fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
ParserData.MlyValue.VOID,p1,p2))
fun FI (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
ParserData.MlyValue.VOID,p1,p2))
fun IFF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
ParserData.MlyValue.VOID,p1,p2))
fun IMPLIES (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(
ParserData.MlyValue.VOID,p1,p2))
fun INCLUDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(
ParserData.MlyValue.VOID,p1,p2))
fun LAMBDA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
ParserData.MlyValue.VOID,p1,p2))
fun LBRKT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
ParserData.MlyValue.VOID,p1,p2))
fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
ParserData.MlyValue.VOID,p1,p2))
fun MAP_TO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
ParserData.MlyValue.VOID,p1,p2))
fun MMINUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(
ParserData.MlyValue.VOID,p1,p2))
fun NAND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(
ParserData.MlyValue.VOID,p1,p2))
fun NEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(
ParserData.MlyValue.VOID,p1,p2))
fun XOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(
ParserData.MlyValue.VOID,p1,p2))
fun NOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(
ParserData.MlyValue.VOID,p1,p2))
fun PERIOD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(
ParserData.MlyValue.VOID,p1,p2))
fun PPLUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(
ParserData.MlyValue.VOID,p1,p2))
fun QUESTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(
ParserData.MlyValue.VOID,p1,p2))
fun RBRKT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(
ParserData.MlyValue.VOID,p1,p2))
fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(
ParserData.MlyValue.VOID,p1,p2))
fun TILDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_FALSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_I (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_O (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_INT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_REAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_RAT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_TRUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(
ParserData.MlyValue.VOID,p1,p2))
fun TOK_TYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(
ParserData.MlyValue.VOID,p1,p2))
fun VLINE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(
ParserData.MlyValue.VOID,p1,p2))
fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(
ParserData.MlyValue.VOID,p1,p2))
fun DTHF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(
ParserData.MlyValue.VOID,p1,p2))
fun DFOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(
ParserData.MlyValue.VOID,p1,p2))
fun DCNF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(
ParserData.MlyValue.VOID,p1,p2))
fun DFOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(
ParserData.MlyValue.VOID,p1,p2))
fun DTFF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,(
ParserData.MlyValue.VOID,p1,p2))
fun REAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,(
ParserData.MlyValue.REAL i,p1,p2))
fun RATIONAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,(
ParserData.MlyValue.RATIONAL i,p1,p2))
fun SIGNED_INTEGER (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,(
ParserData.MlyValue.SIGNED_INTEGER i,p1,p2))
fun UNSIGNED_INTEGER (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 46
,(ParserData.MlyValue.UNSIGNED_INTEGER i,p1,p2))
fun DOT_DECIMAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,(
ParserData.MlyValue.DOT_DECIMAL i,p1,p2))
fun SINGLE_QUOTED (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,(
ParserData.MlyValue.SINGLE_QUOTED i,p1,p2))
fun UPPER_WORD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,(
ParserData.MlyValue.UPPER_WORD i,p1,p2))
fun LOWER_WORD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,(
ParserData.MlyValue.LOWER_WORD i,p1,p2))
fun COMMENT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,(
ParserData.MlyValue.COMMENT i,p1,p2))
fun DISTINCT_OBJECT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,(
ParserData.MlyValue.DISTINCT_OBJECT i,p1,p2))
fun DUD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,(
ParserData.MlyValue.VOID,p1,p2))
fun INDEF_CHOICE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,(
ParserData.MlyValue.VOID,p1,p2))
fun DEFIN_CHOICE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,(
ParserData.MlyValue.VOID,p1,p2))
fun OPERATOR_FORALL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,(
ParserData.MlyValue.VOID,p1,p2))
fun OPERATOR_EXISTS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,(
ParserData.MlyValue.VOID,p1,p2))
fun PLUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,(
ParserData.MlyValue.VOID,p1,p2))
fun TIMES (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,(
ParserData.MlyValue.VOID,p1,p2))
fun GENTZEN_ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,(
ParserData.MlyValue.VOID,p1,p2))
fun DEP_SUM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,(
ParserData.MlyValue.VOID,p1,p2))
fun DEP_PROD (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,(
ParserData.MlyValue.VOID,p1,p2))
fun ATOMIC_DEFINED_WORD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 
63,(ParserData.MlyValue.ATOMIC_DEFINED_WORD i,p1,p2))
fun ATOMIC_SYSTEM_WORD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 
64,(ParserData.MlyValue.ATOMIC_SYSTEM_WORD i,p1,p2))
fun SUBTYPE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,(
ParserData.MlyValue.VOID,p1,p2))
fun LET_TERM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,(
ParserData.MlyValue.VOID,p1,p2))
fun THF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,(
ParserData.MlyValue.VOID,p1,p2))
fun TFF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,(
ParserData.MlyValue.VOID,p1,p2))
fun FOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 69,(
ParserData.MlyValue.VOID,p1,p2))
fun CNF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,(
ParserData.MlyValue.VOID,p1,p2))
fun ITE_F (p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,(
ParserData.MlyValue.VOID,p1,p2))
fun ITE_T (p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,(
ParserData.MlyValue.VOID,p1,p2))
fun LET_TF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,(
ParserData.MlyValue.VOID,p1,p2))
fun LET_FF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,(
ParserData.MlyValue.VOID,p1,p2))
fun LET_FT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 75,(
ParserData.MlyValue.VOID,p1,p2))
fun LET_TT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 76,(
ParserData.MlyValue.VOID,p1,p2))
end
end