/* Automatically generated by Kelbt from "rlparse.kl".
 *
 * Parts of this file are copied from Kelbt source covered by the GNU
 * GPL. As a special exception, you may use the parts of this file copied
 * from Kelbt source without restriction. The remainder is derived from
 * "rlparse.kl" and inherits the copyright status of that file.
 */

#line 1 "rlparse.kl"
/*
 *  Copyright 2001-2007 Adrian Thurston <thurston@complang.org>
 */

/*  This file is part of Ragel.
 *
 *  Ragel is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 * 
 *  Ragel is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with Ragel; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 */

#include "rlparse.h"
#include "ragel.h"
#include <iostream>
#include <errno.h>
#include <stdlib.h>

using std::cout;
using std::cerr;
using std::endl;

#line 102 "rlparse.kh"
#line 105 "rlparse.kh"
#line 140 "rlparse.kh"
#line 1444 "rlparse.kl"


#line 48 "rlparse.cpp"
struct Parser_Lel_action_ref
{
#line 755 "rlparse.kl"

	Action *action;


#line 54 "rlparse.cpp"
};

struct Parser_Lel_aug_type
{
#line 546 "rlparse.kl"

	InputLoc loc;
	AugType augType;


#line 65 "rlparse.cpp"
};

struct Parser_Lel_expression
{
#line 338 "rlparse.kl"

	Expression *expression;


#line 75 "rlparse.cpp"
};

struct Parser_Lel_factor
{
#line 975 "rlparse.kl"

	Factor *factor;


#line 85 "rlparse.cpp"
};

struct Parser_Lel_factor_rep_num
{
#line 929 "rlparse.kl"

	int rep;


#line 95 "rlparse.cpp"
};

struct Parser_Lel_factor_with_aug
{
#line 452 "rlparse.kl"

	FactorWithAug *factorWithAug;


#line 105 "rlparse.cpp"
};

struct Parser_Lel_factor_with_ep
{
#line 436 "rlparse.kl"

	FactorWithAug *factorWithAug;


#line 115 "rlparse.cpp"
};

struct Parser_Lel_factor_with_label
{
#line 420 "rlparse.kl"

	FactorWithAug *factorWithAug;


#line 125 "rlparse.cpp"
};

struct Parser_Lel_factor_with_neg
{
#line 939 "rlparse.kl"

	FactorWithNeg *factorWithNeg;


#line 135 "rlparse.cpp"
};

struct Parser_Lel_factor_with_rep
{
#line 868 "rlparse.kl"

	FactorWithRep *factorWithRep;


#line 145 "rlparse.cpp"
};

struct Parser_Lel_inline_item
{
#line 1234 "rlparse.kl"

	InlineItem *inlineItem;


#line 155 "rlparse.cpp"
};

struct Parser_Lel_inline_list
{
#line 1213 "rlparse.kl"

	InlineList *inlineList;


#line 165 "rlparse.cpp"
};

struct Parser_Lel_join
{
#line 321 "rlparse.kl"

	Join *join;


#line 175 "rlparse.cpp"
};

struct Parser_Lel_join_or_lm
{
#line 229 "rlparse.kl"

	MachineDef *machineDef;


#line 185 "rlparse.cpp"
};

struct Parser_Lel_lm_part_list
{
#line 253 "rlparse.kl"

	LmPartList *lmPartList;


#line 195 "rlparse.cpp"
};

struct Parser_Lel_local_err_name
{
#line 856 "rlparse.kl"

	int error_name;


#line 205 "rlparse.cpp"
};

struct Parser_Lel_longest_match_part
{
#line 277 "rlparse.kl"

	LongestMatchPart *lmPart;


#line 215 "rlparse.cpp"
};

struct Parser_Lel_opt_export
{
#line 95 "rlparse.kl"

	bool isSet;


#line 225 "rlparse.cpp"
};

struct Parser_Lel_opt_lm_part_action
{
#line 294 "rlparse.kl"

	Action *action;


#line 235 "rlparse.cpp"
};

struct Parser_Lel_priority_aug
{
#line 803 "rlparse.kl"

	int priorityNum;


#line 245 "rlparse.cpp"
};

struct Parser_Lel_priority_name
{
#line 788 "rlparse.kl"

	int priorityName;


#line 255 "rlparse.cpp"
};

struct Parser_Lel_range_lit
{
#line 1042 "rlparse.kl"

	Literal *literal;


#line 265 "rlparse.cpp"
};

struct Parser_Lel_regular_expr
{
#line 1079 "rlparse.kl"

	RegExpr *regExpr;


#line 275 "rlparse.cpp"
};

struct Parser_Lel_regular_expr_char
{
#line 1131 "rlparse.kl"

	ReItem *reItem;


#line 285 "rlparse.cpp"
};

struct Parser_Lel_regular_expr_item
{
#line 1114 "rlparse.kl"

	ReItem *reItem;


#line 295 "rlparse.cpp"
};

struct Parser_Lel_regular_expr_or_char
{
#line 1188 "rlparse.kl"

	ReOrItem *reOrItem;


#line 305 "rlparse.cpp"
};

struct Parser_Lel_regular_expr_or_data
{
#line 1155 "rlparse.kl"

	ReOrBlock *reOrBlock;


#line 315 "rlparse.cpp"
};

struct Parser_Lel_term
{
#line 389 "rlparse.kl"

	Term *term;


#line 325 "rlparse.cpp"
};

struct Parser_Lel_term_short
{
#line 368 "rlparse.kl"

	Term *term;


#line 335 "rlparse.cpp"
};

struct Parser_Lel_token_type
{
#line 146 "rlparse.kl"

	Token token;


#line 345 "rlparse.cpp"
};

union Parser_UserData
{
	struct Parser_Lel_action_ref action_ref;
	struct Parser_Lel_aug_type aug_type;
	struct Parser_Lel_expression expression;
	struct Parser_Lel_factor factor;
	struct Parser_Lel_factor_rep_num factor_rep_num;
	struct Parser_Lel_factor_with_aug factor_with_aug;
	struct Parser_Lel_factor_with_ep factor_with_ep;
	struct Parser_Lel_factor_with_label factor_with_label;
	struct Parser_Lel_factor_with_neg factor_with_neg;
	struct Parser_Lel_factor_with_rep factor_with_rep;
	struct Parser_Lel_inline_item inline_item;
	struct Parser_Lel_inline_list inline_list;
	struct Parser_Lel_join join;
	struct Parser_Lel_join_or_lm join_or_lm;
	struct Parser_Lel_lm_part_list lm_part_list;
	struct Parser_Lel_local_err_name local_err_name;
	struct Parser_Lel_longest_match_part longest_match_part;
	struct Parser_Lel_opt_export opt_export;
	struct Parser_Lel_opt_lm_part_action opt_lm_part_action;
	struct Parser_Lel_priority_aug priority_aug;
	struct Parser_Lel_priority_name priority_name;
	struct Parser_Lel_range_lit range_lit;
	struct Parser_Lel_regular_expr regular_expr;
	struct Parser_Lel_regular_expr_char regular_expr_char;
	struct Parser_Lel_regular_expr_item regular_expr_item;
	struct Parser_Lel_regular_expr_or_char regular_expr_or_char;
	struct Parser_Lel_regular_expr_or_data regular_expr_or_data;
	struct Parser_Lel_term term;
	struct Parser_Lel_term_short term_short;
	struct Parser_Lel_token_type token_type;
	struct Token token;
};

struct Parser_LangEl
{
	char *file;
	int line;
	int type;
	int reduction;
	int state;
	int causeReduce;
	union Parser_UserData user;
	unsigned int retry;
	struct Parser_LangEl *next, *child, *prev;
};

struct Parser_Block
{
	struct Parser_LangEl data[8128];
	struct Parser_Block *next;
};

#line 404 "rlparse.cpp"
unsigned int Parser_startState = 0;

short Parser_indicies[] = {
	152, -1, -1, 152, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 152, 152, 152, 152, -1, 
	-1, -1, -1, -1, -1, -1, -1, 152, 
	152, 152, 152, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 152, 
	152, 152, 1, 0, 404, 154, -1, -1, 
	154, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	154, 154, 154, 154, -1, -1, -1, -1, 
	-1, -1, -1, -1, 154, 154, 154, 154, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 154, 154, 150, -1, 
	-1, 2, 161, -1, -1, 151, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 4, 5, 6, 
	7, -1, -1, -1, -1, -1, -1, -1, 
	-1, 158, 11, 12, 13, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 9, 8, -1, -1, -1, -1, 153, 
	392, 393, 394, 395, 396, 397, 398, 399, 
	400, 401, 402, 403, -1, 10, 3, 165, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 26, 14, 15, 17, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 326, 328, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 16, 364, 364, 364, -1, 364, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 364, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 364, -1, -1, -1, 364, 
	364, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 364, 364, 
	364, 364, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, 364, -1, -1, -1, 364, 364, 
	364, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 19, 364, 364, 364, 
	-1, 364, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	364, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 364, -1, -1, 
	-1, 364, 364, -1, -1, -1, -1, -1, 
	-1, -1, -1, 364, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	364, 364, 364, 364, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 364, 364, -1, -1, -1, 
	364, 364, 364, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 24, 174, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 174, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 23, 25, -1, -1, -1, -1, 159, 
	20, 21, 22, 27, 168, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 28, 17, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 326, 328, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 29, 327, 376, 
	377, 378, -1, 375, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 170, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 374, 
	-1, -1, -1, 372, 373, -1, -1, -1, 
	-1, -1, -1, -1, -1, 379, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 368, 369, 370, 371, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 380, 381, -1, 
	-1, -1, 382, 383, 30, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 365, -1, 
	367, -1, 363, 366, 342, 342, 342, -1, 
	342, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 342, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 342, -1, -1, 342, -1, -1, -1, 
	342, 342, -1, -1, -1, -1, -1, -1, 
	-1, -1, 342, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 342, 
	342, 342, 342, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 342, 
	342, 342, 342, 342, 342, 342, 342, 342, 
	342, 342, 342, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 31, 342, 
	342, 342, -1, 342, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 342, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 342, -1, -1, 342, 
	-1, -1, -1, 342, 342, -1, -1, -1, 
	-1, -1, -1, -1, -1, 342, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 342, 342, 342, 342, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 342, 342, 342, 342, 342, 342, 
	342, 342, 342, 342, 342, 342, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 32, 155, 33, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 173, 376, 
	377, 378, -1, 375, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 171, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 374, 
	-1, -1, -1, 372, 373, -1, -1, -1, 
	-1, -1, -1, -1, -1, 379, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 368, 369, 370, 371, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 380, 381, -1, 
	-1, -1, 382, 383, 30, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 365, -1, 
	367, -1, 363, 366, 154, -1, -1, 154, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 154, 154, 154, 154, -1, -1, 
	-1, -1, -1, -1, -1, -1, 154, 154, 
	154, 154, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 154, 154, 
	-1, -1, -1, 34, 35, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 36, 342, 342, 342, 
	-1, 342, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	342, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 342, -1, -1, 342, -1, -1, 
	-1, 342, 342, -1, -1, -1, -1, -1, 
	-1, -1, -1, 342, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	342, 342, 342, 342, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	342, 342, 342, 342, 342, 342, 342, 342, 
	342, 342, 342, 342, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 37, 
	167, 169, 38, 348, 349, 350, -1, 346, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 347, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	156, -1, -1, 374, -1, -1, -1, 372, 
	373, -1, -1, -1, -1, -1, -1, -1, 
	-1, 351, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 368, 369, 
	370, 371, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 45, 40, 
	39, 380, 381, 41, 43, 44, 382, 383, 
	30, 42, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	341, 345, 343, 344, 352, 348, 349, 350, 
	-1, 346, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	347, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 157, -1, -1, 374, -1, -1, 
	-1, 372, 373, -1, -1, -1, -1, -1, 
	-1, -1, -1, 351, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	368, 369, 370, 371, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	45, 40, 39, 380, 381, 41, 43, 44, 
	382, 383, 30, 42, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 341, 345, 343, 344, 352, 364, 
	364, 364, -1, 364, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 364, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 364, 
	-1, -1, -1, 364, 364, -1, -1, -1, 
	-1, -1, -1, -1, -1, 364, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 364, 364, 364, 364, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 364, 364, -1, 
	-1, -1, 364, 364, 364, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	46, 162, -1, -1, 161, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 4, 
	5, 6, 7, -1, -1, -1, -1, -1, 
	-1, -1, -1, 158, 11, 12, 13, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 9, 8, -1, -1, -1, 
	-1, 153, 392, 393, 394, 395, 396, 397, 
	398, 399, 400, 401, 402, 403, -1, 10, 
	3, 55, -1, -1, -1, -1, -1, -1, 
	63, -1, -1, -1, -1, 17, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 56, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	50, 57, -1, -1, 326, 328, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 61, 59, 60, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 47, -1, 
	58, -1, -1, -1, -1, -1, -1, -1, 
	48, 191, 49, 198, 52, -1, 53, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 54, -1, -1, -1, 308, 312, -1, 
	-1, 62, 55, -1, -1, -1, -1, -1, 
	-1, 63, -1, -1, -1, -1, 17, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 56, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 50, 57, -1, -1, 326, 328, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	66, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 61, 59, 60, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 65, 
	64, 58, -1, -1, -1, -1, -1, -1, 
	-1, 48, 191, 49, 198, 52, -1, 53, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 54, -1, -1, -1, 308, 312, 
	-1, -1, 62, 348, 349, 350, -1, 346, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 347, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	166, -1, -1, 374, -1, -1, -1, 372, 
	373, -1, -1, -1, -1, -1, -1, -1, 
	-1, 351, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 368, 369, 
	370, 371, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 45, 40, 
	39, 380, 381, 41, 43, 44, 382, 383, 
	30, 42, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	341, 345, 343, 344, 352, 389, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 388, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 67, 
	-1, -1, -1, -1, 68, 353, 364, 364, 
	364, -1, 364, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 364, -1, 
	-1, -1, 364, 364, -1, -1, -1, -1, 
	-1, -1, -1, -1, 364, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, 364, 364, 364, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 364, 364, -1, -1, 
	-1, 364, 364, 364, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 69, 
	71, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 389, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 388, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	70, -1, -1, -1, -1, 68, 75, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 389, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 388, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 74, -1, 
	-1, -1, -1, 68, 73, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 389, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	388, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 72, -1, -1, -1, 
	-1, 68, 361, 362, 376, 377, 378, -1, 
	375, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 172, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 374, -1, -1, -1, 
	372, 373, -1, -1, -1, -1, -1, -1, 
	-1, -1, 379, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 368, 
	369, 370, 371, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 380, 381, -1, -1, -1, 382, 
	383, 30, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 365, -1, 367, -1, 363, 
	366, 81, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	163, 83, -1, -1, 186, -1, -1, 186, 
	84, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 186, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 186, 82, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 186, -1, 
	-1, -1, -1, 85, 55, -1, -1, -1, 
	-1, 192, -1, 63, 192, -1, -1, 192, 
	18, 86, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 192, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 56, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 192, 192, 
	-1, -1, -1, 50, 57, -1, -1, 326, 
	328, -1, 87, 88, 89, -1, 192, -1, 
	-1, -1, -1, 192, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 61, 59, 
	60, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 58, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 193, 52, 
	-1, 53, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 54, -1, -1, -1, 
	308, 312, -1, -1, 62, 315, -1, -1, 
	315, 315, 315, -1, 315, 315, 315, 315, 
	315, 315, 315, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 77, 315, 
	315, -1, 315, 315, 315, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 315, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 315, 
	315, -1, -1, -1, 315, 315, -1, -1, 
	315, 315, -1, 315, 315, 315, 315, 315, 
	315, -1, -1, -1, 315, 315, 315, 315, 
	315, 315, 315, 315, 315, 315, 315, 315, 
	315, 315, 315, 315, 315, 315, 315, 315, 
	315, 315, 315, 315, 315, 315, 315, 315, 
	315, 315, 315, 315, 315, 315, 315, 315, 
	315, 315, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 315, 315, 315, 200, -1, 
	-1, -1, -1, 200, -1, 200, 200, -1, 
	-1, 200, 200, 200, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	200, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 200, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	200, 200, -1, -1, -1, 200, 200, -1, 
	-1, 200, 200, -1, 200, 200, 200, 90, 
	200, -1, -1, -1, -1, 200, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	200, 200, 200, 202, -1, -1, 100, 99, 
	202, -1, 202, 202, -1, -1, 202, 202, 
	202, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 202, 102, -1, 
	101, -1, 98, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	202, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 202, 202, -1, 
	-1, -1, 202, 202, -1, -1, 202, 202, 
	-1, 202, 202, 202, 202, 202, -1, -1, 
	-1, -1, 202, 219, 221, 223, 103, 264, 
	268, 270, 272, 266, 274, 276, 280, 282, 
	284, 278, 286, 252, 256, 258, 260, 254, 
	262, 228, 232, 234, 236, 230, 238, 240, 
	244, 246, 248, 242, 250, 202, 202, 202, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 226, 225, 227, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 91, -1, -1, 92, 93, 94, 95, 
	96, 97, 214, -1, -1, 214, 214, 214, 
	-1, 214, 214, 300, 303, 214, 214, 214, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 214, 214, -1, 214, 
	302, 214, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 214, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 104, 214, -1, -1, 
	-1, 214, 214, -1, -1, 214, 214, -1, 
	214, 214, 214, 214, 214, 301, -1, -1, 
	-1, 214, 214, 214, 214, 214, 214, 214, 
	214, 214, 214, 214, 214, 214, 214, 214, 
	214, 214, 214, 214, 214, 214, 214, 214, 
	214, 214, 214, 214, 214, 214, 214, 214, 
	214, 214, 214, 214, 214, 214, 214, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	214, 214, 214, 55, -1, -1, -1, -1, 
	-1, -1, 63, -1, -1, -1, -1, 17, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	56, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 316, 57, -1, -1, 326, 328, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 61, 59, 60, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 58, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 310, 
	312, -1, -1, 62, 55, -1, -1, -1, 
	-1, -1, -1, 63, -1, -1, -1, -1, 
	17, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 56, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 316, 57, -1, -1, 326, 
	328, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 61, 59, 
	60, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 58, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	311, 312, -1, -1, 62, 313, -1, -1, 
	313, 313, 313, -1, 313, 313, 313, 313, 
	313, 313, 313, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 313, 
	313, -1, 313, 313, 313, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 313, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 313, 
	313, -1, -1, -1, 313, 313, -1, -1, 
	313, 313, 322, 313, 313, 313, 313, 313, 
	313, -1, -1, -1, 313, 313, 313, 313, 
	313, 313, 313, 313, 313, 313, 313, 313, 
	313, 313, 313, 313, 313, 313, 313, 313, 
	313, 313, 313, 313, 313, 313, 313, 313, 
	313, 313, 313, 313, 313, 313, 313, 313, 
	313, 313, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 313, 313, 313, 314, -1, 
	-1, 314, 314, 314, -1, 314, 314, 314, 
	314, 314, 314, 314, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	314, 314, -1, 314, 314, 314, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 314, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	314, 314, -1, -1, -1, 314, 314, -1, 
	-1, 314, 314, 324, 314, 314, 314, 314, 
	314, 314, -1, -1, -1, 314, 314, 314, 
	314, 314, 314, 314, 314, 314, 314, 314, 
	314, 314, 314, 314, 314, 314, 314, 314, 
	314, 314, 314, 314, 314, 314, 314, 314, 
	314, 314, 314, 314, 314, 314, 314, 314, 
	314, 314, 314, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 314, 314, 314, 338, 
	-1, -1, -1, 338, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	79, 338, -1, -1, -1, 338, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 80, 330, 330, 330, -1, 330, 
	-1, -1, 330, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	78, 105, 55, -1, -1, -1, -1, -1, 
	-1, 63, -1, -1, -1, -1, 17, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 56, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 50, 57, -1, -1, 326, 328, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 61, 59, 60, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 76, 
	-1, 58, -1, -1, -1, -1, -1, -1, 
	-1, 48, 191, 49, 198, 52, -1, 53, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 54, -1, -1, -1, 308, 312, 
	-1, -1, 62, 164, 81, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 175, 55, -1, -1, -1, 
	-1, -1, -1, 63, -1, -1, -1, -1, 
	17, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 56, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 51, 57, -1, -1, 326, 
	328, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 61, 59, 
	60, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 4, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 158, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 180, -1, 179, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 160, 108, 
	-1, 107, -1, 58, -1, -1, 106, 178, 
	-1, -1, -1, 48, 191, 49, 198, 52, 
	-1, 53, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 54, -1, -1, -1, 
	308, 312, -1, -1, 62, 384, 391, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 109, 376, 377, 378, 
	-1, 375, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	354, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 374, -1, -1, 
	-1, 372, 373, -1, -1, -1, -1, -1, 
	-1, -1, -1, 379, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	368, 369, 370, 371, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 380, 381, -1, -1, -1, 
	382, 383, 30, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 365, -1, 367, -1, 
	363, 366, 355, 364, 364, 364, -1, 364, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 364, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 364, -1, -1, -1, 364, 
	364, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 364, 364, 
	364, 364, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, 364, -1, -1, -1, 364, 364, 
	364, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 110, 359, 364, 364, 
	364, -1, 364, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 364, -1, 
	-1, -1, 364, 364, -1, -1, -1, -1, 
	-1, -1, -1, -1, 364, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, 364, 364, 364, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 364, 364, -1, -1, 
	-1, 364, 364, 364, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 111, 
	357, 364, 364, 364, -1, 364, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 364, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 364, -1, -1, -1, 364, 364, -1, 
	-1, -1, -1, -1, -1, -1, -1, 364, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 364, 364, 364, 364, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 364, 
	364, -1, -1, -1, 364, 364, 364, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 112, 321, -1, -1, 81, 55, 
	-1, -1, -1, -1, -1, -1, 63, -1, 
	-1, -1, -1, 17, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 56, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 50, 57, 
	-1, -1, 326, 328, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 61, 59, 60, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 58, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 199, 52, -1, 53, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 54, 
	-1, -1, -1, 308, 312, -1, -1, 62, 
	319, 114, 115, -1, 335, -1, -1, 336, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 329, 
	113, 317, -1, -1, -1, 116, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 337, 
	318, -1, -1, -1, 116, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 337, 55, 
	-1, -1, -1, -1, -1, -1, 63, -1, 
	-1, -1, -1, 17, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 56, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 50, 57, 
	-1, -1, 326, 328, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 61, 59, 60, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 58, -1, 
	-1, -1, -1, -1, -1, -1, 117, 191, 
	49, 198, 52, -1, 53, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 54, 
	-1, -1, -1, 308, 312, -1, -1, 62, 
	55, -1, -1, -1, -1, -1, -1, 63, 
	-1, -1, -1, -1, 17, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 56, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 50, 
	57, -1, -1, 326, 328, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 61, 59, 60, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 58, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	187, 49, 198, 52, -1, 53, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	54, -1, -1, -1, 308, 312, -1, -1, 
	62, 55, -1, -1, -1, -1, -1, -1, 
	63, -1, -1, -1, -1, 17, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 56, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	50, 57, -1, -1, 326, 328, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 61, 59, 60, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	58, -1, -1, -1, -1, -1, -1, -1, 
	-1, 188, 49, 198, 52, -1, 53, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 54, -1, -1, -1, 308, 312, -1, 
	-1, 62, 55, -1, -1, -1, -1, -1, 
	-1, 63, -1, -1, -1, -1, 17, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 56, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 50, 57, -1, -1, 326, 328, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 61, 59, 60, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 58, -1, -1, -1, -1, -1, -1, 
	-1, -1, 189, 49, 198, 52, -1, 53, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 54, -1, -1, -1, 308, 312, 
	-1, -1, 62, 55, -1, -1, -1, -1, 
	-1, -1, 63, -1, -1, -1, -1, 17, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	56, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 50, 57, -1, -1, 326, 328, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 61, 59, 60, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 58, -1, -1, -1, -1, -1, 
	-1, -1, -1, 190, 49, 198, 52, -1, 
	53, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 54, -1, -1, -1, 308, 
	312, -1, -1, 62, 55, -1, -1, -1, 
	-1, -1, -1, 63, -1, -1, -1, -1, 
	17, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 56, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 50, 57, -1, -1, 326, 
	328, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 61, 59, 
	60, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 58, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 194, 52, 
	-1, 53, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 54, -1, -1, -1, 
	308, 312, -1, -1, 62, 55, -1, -1, 
	-1, -1, -1, -1, 63, -1, -1, -1, 
	-1, 17, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 56, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 50, 57, -1, -1, 
	326, 328, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 61, 
	59, 60, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 58, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 195, 
	52, -1, 53, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 54, -1, -1, 
	-1, 308, 312, -1, -1, 62, 55, -1, 
	-1, -1, -1, -1, -1, 63, -1, -1, 
	-1, -1, 17, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 56, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 50, 57, -1, 
	-1, 326, 328, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	61, 59, 60, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 58, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	196, 52, -1, 53, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 54, -1, 
	-1, -1, 308, 312, -1, -1, 62, 55, 
	-1, -1, -1, -1, -1, -1, 63, -1, 
	-1, -1, -1, 17, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 56, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 50, 57, 
	-1, -1, 326, 328, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 61, 59, 60, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 58, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 197, 52, -1, 53, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 54, 
	-1, -1, -1, 308, 312, -1, -1, 62, 
	386, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 201, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 118, 119, -1, 
	-1, 121, -1, 122, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 120, -1, -1, -1, -1, 292, -1, 
	-1, -1, 296, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 203, 290, -1, -1, 
	-1, -1, -1, -1, -1, -1, 204, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	288, 295, 123, -1, -1, -1, -1, -1, 
	-1, 124, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 120, -1, -1, -1, 
	-1, 292, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 206, 
	290, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 288, 124, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 120, 
	-1, -1, -1, -1, 292, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 208, 290, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 288, 124, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 120, -1, -1, -1, -1, 292, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 209, 290, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 288, 124, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 120, -1, -1, 
	-1, -1, 292, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	210, 290, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 288, 124, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	120, -1, -1, -1, -1, 292, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 211, 290, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 288, 
	125, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 120, -1, -1, -1, -1, 
	292, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 212, 290, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 288, 215, -1, -1, 215, -1, 
	215, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 215, -1, 
	-1, -1, -1, 215, -1, -1, -1, 215, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 261, 273, 285, 
	237, 249, 216, -1, -1, 216, -1, 216, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 216, -1, -1, 
	-1, -1, 216, -1, -1, -1, 216, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 224, -1, 259, 271, 283, 235, 
	247, 217, -1, -1, 217, -1, 217, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 217, -1, -1, -1, 
	-1, 217, -1, -1, -1, 217, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 222, -1, 257, 269, 281, 233, 245, 
	218, -1, -1, 218, -1, 218, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 218, -1, -1, -1, -1, 
	218, -1, -1, -1, 218, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	220, -1, 253, 265, 277, 229, 241, 255, 
	267, 279, 231, 243, 263, 275, 287, 239, 
	251, 127, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 309, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 126, 17, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 323, -1, 
	-1, 326, 328, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 325, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 320, 55, 
	-1, -1, -1, -1, -1, -1, 63, -1, 
	131, -1, -1, 17, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 56, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 51, 57, 
	-1, -1, 326, 328, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 61, 59, 60, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 4, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 158, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 180, -1, 179, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 160, 108, -1, 107, -1, 58, -1, 
	-1, -1, 177, -1, -1, -1, 48, 191, 
	49, 198, 52, -1, 53, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 54, 
	-1, -1, -1, 308, 312, -1, -1, 62, 
	81, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 184, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 120, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 130, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 129, -1, 183, 165, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 128, 387, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 387, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 132, 
	376, 377, 378, -1, 375, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 356, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	374, -1, -1, -1, 372, 373, -1, -1, 
	-1, -1, -1, -1, -1, -1, 379, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 368, 369, 370, 371, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 380, 381, 
	-1, -1, -1, 382, 383, 30, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 365, 
	-1, 367, -1, 363, 366, 376, 377, 378, 
	-1, 375, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	360, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 374, -1, -1, 
	-1, 372, 373, -1, -1, -1, -1, -1, 
	-1, -1, -1, 379, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	368, 369, 370, 371, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 380, 381, -1, -1, -1, 
	382, 383, 30, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 365, -1, 367, -1, 
	363, 366, 376, 377, 378, -1, 375, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 358, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 374, -1, -1, -1, 372, 373, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	379, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 368, 369, 370, 
	371, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	380, 381, -1, -1, -1, 382, 383, 30, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 365, -1, 367, -1, 363, 366, 332, 
	332, 332, -1, 332, 331, -1, 332, 338, 
	-1, -1, -1, 338, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	133, 338, -1, -1, -1, 338, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 134, 339, -1, -1, 135, 339, 
	83, -1, -1, 185, -1, -1, 185, 84, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 185, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 185, 82, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 185, -1, -1, 
	-1, -1, 85, 391, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 136, 139, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 137, -1, -1, -1, -1, 
	-1, -1, -1, -1, 138, 342, 342, 342, 
	-1, 342, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	342, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 342, -1, -1, 342, -1, -1, 
	-1, 342, 342, -1, -1, -1, -1, -1, 
	-1, -1, -1, 342, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	342, 342, 342, 342, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	342, 342, 342, 342, 342, 342, 342, 342, 
	342, 342, 342, 342, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 140, 
	297, 298, 124, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 120, -1, -1, 
	-1, -1, 292, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	207, 290, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 288, 292, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 138, 
	142, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	141, -1, 138, 144, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 304, 309, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, 143, 35, 181, 
	124, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 120, -1, -1, -1, -1, 
	292, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 182, 290, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 288, 176, 390, 333, -1, -1, 
	-1, 116, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 337, 334, -1, -1, -1, 
	116, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 337, 340, 385, -1, -1, -1, 
	-1, 385, -1, 385, 385, -1, -1, 385, 
	385, 385, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 385, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, 385, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 385, 385, 
	-1, -1, -1, 385, 385, -1, -1, 385, 
	385, -1, 385, 385, 385, 385, 385, -1, 
	-1, 132, -1, 385, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 385, 385, 
	385, 145, 289, 291, -1, -1, 294, 348, 
	349, 350, -1, 346, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 347, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 293, -1, -1, 374, 
	-1, -1, -1, 372, 373, -1, -1, -1, 
	-1, -1, -1, -1, -1, 351, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 368, 369, 370, 371, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 45, 40, 39, 380, 381, 41, 
	43, 44, 382, 383, 30, 42, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 341, 345, 343, 344, 
	352, 146, 291, -1, -1, 299, 305, 306, 
	-1, -1, -1, -1, -1, -1, 309, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 147, 121, 
	-1, 122, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	296, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, 148, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, 295, 
	124, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, 120, -1, -1, -1, -1, 
	292, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, 149, 290, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, -1, -1, -1, -1, -1, -1, 
	-1, -1, 288, 307, 205, 213, 
};

unsigned short Parser_keys[] = {
	128, 227, 225, 225, 128, 228, 128, 244, 
	128, 245, 128, 128, 128, 128, 45, 248, 
	40, 249, 40, 249, 128, 250, 123, 128, 
	123, 123, 123, 123, 128, 128, 123, 123, 
	59, 128, 45, 248, 132, 132, 40, 292, 
	40, 242, 40, 242, 59, 59, 128, 187, 
	40, 292, 125, 228, 61, 141, 40, 242, 
	59, 59, 59, 59, 40, 40, 40, 289, 
	40, 289, 40, 249, 125, 244, 33, 281, 
	33, 281, 40, 289, 128, 295, 59, 59, 
	40, 249, 42, 295, 42, 295, 42, 295, 
	59, 59, 59, 59, 40, 292, 44, 59, 
	38, 144, 33, 281, 33, 201, 33, 181, 
	33, 271, 33, 201, 33, 281, 33, 281, 
	33, 201, 33, 201, 182, 279, 182, 279, 
	179, 280, 134, 134, 33, 281, 59, 59, 
	44, 59, 33, 281, 41, 41, 128, 294, 
	40, 292, 59, 59, 40, 249, 59, 59, 
	40, 249, 59, 59, 40, 249, 41, 44, 
	33, 281, 179, 283, 182, 284, 182, 284, 
	33, 281, 33, 281, 33, 281, 33, 281, 
	33, 281, 33, 281, 33, 281, 33, 281, 
	33, 281, 128, 293, 40, 275, 33, 274, 
	40, 274, 40, 274, 40, 274, 40, 274, 
	40, 274, 40, 206, 40, 206, 40, 206, 
	40, 206, 202, 206, 202, 206, 44, 276, 
	45, 281, 33, 281, 44, 255, 128, 245, 
	41, 142, 40, 292, 40, 292, 40, 292, 
	179, 186, 182, 279, 182, 279, 182, 186, 
	38, 144, 128, 294, 128, 274, 40, 242, 
	132, 132, 132, 132, 40, 274, 128, 274, 
	128, 274, 44, 125, 132, 276, 61, 61, 
	59, 59, 40, 274, 124, 124, 128, 128, 
	182, 284, 182, 284, 186, 186, 33, 181, 
	44, 44, 41, 41, 41, 44, 40, 289, 
	44, 44, 41, 44, 125, 125, 125, 276, 
	43, 275, 40, 274, 125, 125, 41, 41, 
	41, 41, 0, 0
};

unsigned int Parser_offsets[] = {
	0, 100, 101, 202, 319, 437, 438, 439, 
	643, 853, 1063, 1186, 1192, 1193, 1194, 1195, 
	1196, 1266, 1470, 1471, 1724, 1927, 2130, 2131, 
	2191, 2444, 2548, 2629, 2832, 2833, 2834, 2835, 
	3085, 3335, 3545, 3665, 3914, 4163, 4413, 4581, 
	4582, 4792, 5046, 5300, 5554, 5555, 5556, 5809, 
	5825, 5932, 6181, 6350, 6499, 6738, 6907, 7156, 
	7405, 7574, 7743, 7841, 7939, 8041, 8042, 8291, 
	8292, 8308, 8557, 8558, 8725, 8978, 8979, 9189, 
	9190, 9400, 9401, 9611, 9615, 9864, 9969, 10072, 
	10175, 10424, 10673, 10922, 11171, 11420, 11669, 11918, 
	12167, 12416, 12582, 12818, 13060, 13295, 13530, 13765, 
	14000, 14235, 14402, 14569, 14736, 14903, 14908, 14913, 
	15146, 15383, 15632, 15844, 15962, 16064, 16317, 16570, 
	16823, 16831, 16929, 17027, 17032, 17139, 17306, 17453, 
	17656, 17657, 17658, 17893, 18040, 18187, 18269, 18414, 
	18415, 18416, 18651, 18652, 18653, 18756, 18859, 18860, 
	19009, 19010, 19011, 19015, 19265, 19266, 19270, 19271, 
	19423, 19656, 19891, 19892, 19893, 19894
};

unsigned short Parser_targs[] = {
	1, 2, 3, 4, 5, 6, 7, 8, 
	9, 10, 11, 12, 13, 14, 15, 16, 
	17, 18, 18, 19, 20, 21, 22, 23, 
	24, 25, 26, 27, 28, 29, 30, 31, 
	32, 33, 34, 35, 36, 37, 38, 39, 
	40, 41, 42, 43, 44, 45, 46, 47, 
	48, 49, 50, 50, 51, 52, 53, 54, 
	55, 56, 57, 58, 59, 60, 61, 62, 
	63, 64, 65, 66, 67, 68, 69, 70, 
	71, 72, 73, 74, 75, 76, 77, 78, 
	79, 80, 81, 82, 83, 84, 85, 86, 
	87, 88, 89, 90, 91, 92, 93, 94, 
	95, 96, 97, 98, 99, 100, 101, 102, 
	103, 104, 105, 106, 107, 108, 109, 110, 
	111, 112, 113, 114, 115, 116, 117, 118, 
	119, 120, 121, 122, 123, 124, 125, 126, 
	127, 128, 129, 130, 131, 132, 133, 134, 
	135, 136, 137, 138, 139, 140, 141, 142, 
	143, 144, 145, 146, 147, 148, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149, 149, 149, 149, 
	149, 149, 149, 149, 149
};

unsigned int Parser_actInds[] = {
	0, 2, 4, 6, 8, 10, 12, 14, 
	16, 18, 20, 22, 24, 26, 28, 30, 
	32, 34, 36, 39, 41, 43, 45, 47, 
	49, 51, 53, 55, 57, 59, 61, 63, 
	65, 67, 69, 71, 73, 75, 77, 79, 
	81, 83, 85, 87, 89, 91, 93, 95, 
	97, 99, 101, 103, 106, 108, 110, 112, 
	114, 116, 118, 120, 122, 124, 126, 128, 
	130, 132, 134, 136, 138, 140, 142, 144, 
	146, 148, 150, 152, 154, 156, 158, 160, 
	162, 164, 166, 168, 170, 172, 174, 176, 
	178, 180, 182, 184, 186, 188, 190, 192, 
	194, 196, 198, 200, 202, 204, 206, 208, 
	210, 213, 215, 217, 219, 221, 223, 225, 
	227, 229, 231, 233, 235, 237, 239, 241, 
	243, 245, 247, 249, 251, 253, 255, 257, 
	259, 261, 263, 265, 267, 269, 271, 273, 
	275, 277, 279, 281, 283, 285, 287, 289, 
	291, 293, 295, 297, 299, 301, 303, 305, 
	307, 309, 311, 313, 315, 317, 319, 321, 
	323, 325, 327, 329, 331, 333, 335, 337, 
	339, 341, 343, 345, 347, 349, 351, 353, 
	355, 357, 359, 361, 363, 365, 367, 369, 
	371, 373, 375, 377, 379, 381, 383, 385, 
	387, 389, 391, 393, 395, 397, 399, 401, 
	403, 405, 407, 409, 411, 413, 415, 417, 
	419, 421, 423, 425, 427, 429, 431, 433, 
	435, 437, 439, 441, 443, 445, 447, 449, 
	451, 453, 455, 457, 459, 461, 463, 465, 
	467, 469, 471, 473, 475, 477, 479, 481, 
	483, 485, 487, 489, 491, 493, 495, 497, 
	499, 501, 503, 505, 507, 509, 511, 513, 
	515, 517, 519, 521, 523, 525, 527, 529, 
	531, 533, 535, 537, 539, 541, 543, 545, 
	547, 549, 551, 553, 555, 557, 559, 561, 
	563, 565, 567, 569, 571, 573, 575, 577, 
	579, 581, 583, 585, 587, 589, 591, 593, 
	595, 597, 599, 601, 603, 605, 607, 609, 
	611, 613, 615, 617, 619, 621, 623, 625, 
	627, 629, 631, 633, 635, 637, 639, 641, 
	643, 645, 647, 649, 651, 653, 655, 657, 
	659, 661, 663, 665, 667, 669, 671, 673, 
	675, 677, 679, 681, 683, 685, 687, 689, 
	691, 693, 695, 697, 699, 701, 703, 705, 
	707, 709, 711, 713, 715, 717, 719, 721, 
	723, 725, 727, 729, 731, 733, 735, 737, 
	739, 741, 743, 745, 747, 749, 751, 753, 
	755, 757, 759, 761, 763, 765, 767, 769, 
	771, 773, 775, 777, 779, 781, 783, 785, 
	787, 789, 791, 793, 795, 797, 799, 801, 
	803, 805, 807, 809, 811
};

unsigned int Parser_actions[] = {
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 214, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 90, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 0, 1, 0, 1, 0, 
	1, 0, 1, 302, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 1, 
	0, 1, 0, 1, 0, 1, 0, 2, 
	0, 7, 0, 10, 0, 15, 0, 18, 
	0, 71, 0, 75, 0, 79, 0, 83, 
	0, 86, 0, 87, 0, 90, 0, 95, 
	0, 99, 0, 103, 0, 107, 0, 111, 
	0, 115, 0, 119, 0, 123, 0, 127, 
	0, 131, 0, 135, 0, 139, 0, 142, 
	0, 146, 0, 151, 0, 155, 0, 159, 
	0, 163, 0, 167, 0, 171, 0, 175, 
	0, 179, 0, 182, 0, 186, 0, 190, 
	0, 195, 0, 199, 0, 203, 0, 207, 
	0, 211, 0, 214, 0, 219, 0, 223, 
	0, 227, 0, 231, 0, 235, 0, 239, 
	0, 243, 0, 246, 0, 251, 0, 254, 
	0, 259, 0, 263, 0, 267, 0, 271, 
	0, 275, 0, 279, 0, 283, 0, 287, 
	0, 291, 0, 295, 0, 299, 0, 302, 
	0, 306, 0, 310, 0, 314, 0, 318, 
	0, 323, 0, 327, 0, 331, 0, 335, 
	0, 339, 0, 343, 0, 347, 0, 351, 
	0, 355, 0, 359, 0, 363, 0, 367, 
	0, 371, 0, 375, 0, 379, 0, 383, 
	0, 387, 0, 391, 0, 395, 0, 399, 
	0, 403, 0, 407, 0, 411, 0, 415, 
	0, 419, 0, 423, 0, 427, 0, 431, 
	0, 435, 0, 439, 0, 443, 0, 447, 
	0, 451, 0, 455, 0, 459, 0, 463, 
	0, 467, 0, 471, 0, 475, 0, 479, 
	0, 483, 0, 487, 0, 491, 0, 495, 
	0, 499, 0, 503, 0, 507, 0, 511, 
	0, 515, 0, 519, 0, 523, 0, 527, 
	0, 531, 0, 535, 0, 539, 0, 543, 
	0, 547, 0, 551, 0, 555, 0, 559, 
	0, 563, 0, 567, 0, 571, 0, 575, 
	0, 579, 0, 583, 0, 587, 0, 591, 
	0, 595, 0, 599, 0, 603, 0, 607, 
	0, 610, 0, 611, 0, 615, 0, 618, 
	0, 623, 0, 627, 0, 631, 0, 635, 
	0, 638, 0, 643, 0, 647, 0, 651, 
	0, 655, 0, 659, 0, 663, 0, 667, 
	0, 671, 0, 675, 0, 679, 0, 683, 
	0, 687, 0, 691, 0, 694, 0, 698, 
	0, 702, 0, 703, 0, 707, 0, 711, 
	0, 715, 0, 719, 0, 723, 0, 726, 
	0, 727, 0, 730, 0, 731, 0, 735, 
	0, 739, 0, 743, 0, 747, 0, 750, 
	0, 755, 0, 758, 0, 763, 0, 767, 
	0, 771, 0, 775, 0, 779, 0, 782, 
	0, 786, 0, 791, 0, 795, 0, 798, 
	0, 803, 0, 807, 0, 811, 0, 815, 
	0, 819, 0, 823, 0, 827, 0, 831, 
	0, 835, 0, 839, 0, 843, 0, 847, 
	0, 851, 0, 855, 0, 859, 0, 863, 
	0, 867, 0, 871, 0, 875, 0, 879, 
	0, 883, 0, 886, 0, 891, 0, 895, 
	0, 899, 0, 903, 0, 907, 0, 911, 
	0, 915, 0, 919, 0, 923, 0, 927, 
	0, 931, 0, 935, 0, 939, 0, 943, 
	0, 947, 0, 951, 0, 955, 0, 959, 
	0, 963, 0, 967, 0, 970, 0, 974, 
	0, 978, 0, 983, 0, 986, 0, 991, 
	0, 995, 0, 23, 0, 27, 0, 31, 
	0, 35, 0, 39, 0, 43, 0, 47, 
	0, 51, 0, 55, 0, 59, 0, 63, 
	0, 67, 0, 1, 0
};

int Parser_commitLen[] = {
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	0, 0, 0, 0, 0, 0, 0, 0, 
	1, 1, 1, 1, 1, 1, 1, 1, 
	1, 1, 1, 1, 2
};

char Parser_prodLengths[] = {
	1, 3, 0, 2, 0, 1, 1, 1, 
	1, 1, 1, 1, 1, 1, 1, 1, 
	1, 3, 4, 4, 1, 1, 0, 4, 
	5, 5, 1, 5, 4, 3, 4, 3, 
	3, 5, 2, 0, 1, 4, 2, 1, 
	1, 1, 3, 2, 1, 0, 3, 1, 
	3, 3, 3, 3, 1, 1, 2, 3, 
	3, 3, 3, 1, 3, 1, 3, 1, 
	3, 3, 7, 3, 4, 3, 3, 3, 
	3, 3, 7, 1, 1, 1, 1, 1, 
	1, 2, 1, 2, 1, 2, 1, 1, 
	1, 1, 2, 1, 2, 1, 2, 1, 
	2, 1, 2, 1, 2, 1, 2, 1, 
	2, 1, 2, 1, 2, 1, 2, 1, 
	2, 1, 2, 1, 2, 1, 2, 1, 
	2, 1, 2, 1, 2, 1, 2, 1, 
	2, 1, 2, 1, 2, 1, 2, 1, 
	2, 1, 2, 1, 2, 1, 2, 1, 
	2, 1, 2, 1, 2, 1, 3, 1, 
	1, 3, 1, 1, 1, 2, 2, 1, 
	2, 2, 2, 2, 4, 5, 5, 6, 
	1, 1, 2, 2, 1, 1, 1, 1, 
	3, 3, 3, 3, 3, 1, 1, 1, 
	2, 1, 2, 0, 2, 1, 3, 3, 
	1, 1, 2, 0, 1, 3, 2, 0, 
	1, 1, 1, 1, 1, 1, 1, 1, 
	1, 1, 2, 3, 3, 4, 3, 4, 
	3, 4, 2, 2, 2, 0, 1, 1, 
	1, 1, 1, 1, 1, 1, 1, 1, 
	1, 1, 1, 1, 1, 1, 1, 1, 
	1, 4, 2, 0, 2, 1, 0, 3, 
	1, 1
};

unsigned short Parser_prodLhsIds[] = {
	227, 226, 226, 228, 228, 229, 229, 229, 
	229, 229, 229, 229, 229, 229, 229, 229, 
	229, 241, 239, 240, 243, 244, 244, 238, 
	230, 231, 245, 232, 233, 233, 234, 235, 
	236, 237, 250, 250, 247, 247, 251, 251, 
	252, 252, 252, 253, 253, 253, 246, 246, 
	256, 256, 256, 256, 256, 257, 258, 258, 
	258, 258, 258, 258, 259, 259, 260, 260, 
	262, 262, 262, 262, 262, 262, 262, 262, 
	262, 262, 262, 262, 263, 263, 263, 263, 
	266, 266, 266, 266, 266, 266, 266, 266, 
	266, 267, 267, 267, 267, 267, 267, 267, 
	267, 267, 267, 267, 267, 268, 268, 268, 
	268, 268, 268, 268, 268, 268, 268, 268, 
	268, 269, 269, 269, 269, 269, 269, 269, 
	269, 269, 269, 269, 269, 270, 270, 270, 
	270, 270, 270, 270, 270, 270, 270, 270, 
	270, 271, 271, 271, 271, 271, 271, 271, 
	271, 271, 271, 271, 271, 254, 254, 254, 
	274, 255, 265, 264, 275, 275, 275, 272, 
	273, 273, 273, 273, 273, 273, 273, 273, 
	273, 276, 277, 277, 277, 278, 278, 278, 
	278, 278, 278, 278, 278, 281, 281, 248, 
	248, 248, 280, 280, 282, 282, 283, 283, 
	283, 283, 279, 279, 284, 284, 242, 242, 
	285, 285, 285, 288, 288, 288, 288, 288, 
	288, 286, 286, 286, 286, 286, 286, 286, 
	286, 286, 286, 286, 249, 249, 291, 291, 
	291, 287, 287, 287, 287, 287, 287, 287, 
	292, 292, 292, 292, 292, 289, 289, 289, 
	289, 289, 261, 293, 290, 295, 295, 294, 
	294, 296
};

const char *Parser_prodNames[] = {
	"start-1",
	"section_list-1",
	"section_list-2",
	"statement_list-1",
	"statement_list-2",
	"statement-1",
	"statement-2",
	"statement-3",
	"statement-4",
	"statement-5",
	"statement-6",
	"statement-7",
	"statement-8",
	"statement-9",
	"statement-10",
	"statement-11",
	"statement-12",
	"length_spec-1",
	"pre_push_spec-1",
	"post_pop_spec-1",
	"export_open-1",
	"opt_export-1",
	"opt_export-2",
	"export_block-1",
	"assignment-1",
	"instantiation-1",
	"machine_name-1",
	"action_spec-1",
	"alphtype_spec-1",
	"alphtype_spec-2",
	"range_spec-1",
	"getkey_spec-1",
	"access_spec-1",
	"variable_spec-1",
	"opt_whitespace-1",
	"opt_whitespace-2",
	"join_or_lm-1",
	"join_or_lm-2",
	"lm_part_list-1",
	"lm_part_list-2",
	"longest_match_part-1",
	"longest_match_part-2",
	"longest_match_part-3",
	"opt_lm_part_action-1",
	"opt_lm_part_action-2",
	"opt_lm_part_action-3",
	"join-1",
	"join-2",
	"expression-1",
	"expression-2",
	"expression-3",
	"expression-4",
	"expression-5",
	"term_short-1",
	"term-1",
	"term-2",
	"term-3",
	"term-4",
	"term-5",
	"term-6",
	"factor_with_label-1",
	"factor_with_label-2",
	"factor_with_ep-1",
	"factor_with_ep-2",
	"factor_with_aug-1",
	"factor_with_aug-2",
	"factor_with_aug-3",
	"factor_with_aug-4",
	"factor_with_aug-5",
	"factor_with_aug-6",
	"factor_with_aug-7",
	"factor_with_aug-8",
	"factor_with_aug-9",
	"factor_with_aug-10",
	"factor_with_aug-11",
	"factor_with_aug-12",
	"aug_type_base-1",
	"aug_type_base-2",
	"aug_type_base-3",
	"aug_type_base-4",
	"aug_type_cond-1",
	"aug_type_cond-2",
	"aug_type_cond-3",
	"aug_type_cond-4",
	"aug_type_cond-5",
	"aug_type_cond-6",
	"aug_type_cond-7",
	"aug_type_cond-8",
	"aug_type_cond-9",
	"aug_type_to_state-1",
	"aug_type_to_state-2",
	"aug_type_to_state-3",
	"aug_type_to_state-4",
	"aug_type_to_state-5",
	"aug_type_to_state-6",
	"aug_type_to_state-7",
	"aug_type_to_state-8",
	"aug_type_to_state-9",
	"aug_type_to_state-10",
	"aug_type_to_state-11",
	"aug_type_to_state-12",
	"aug_type_from_state-1",
	"aug_type_from_state-2",
	"aug_type_from_state-3",
	"aug_type_from_state-4",
	"aug_type_from_state-5",
	"aug_type_from_state-6",
	"aug_type_from_state-7",
	"aug_type_from_state-8",
	"aug_type_from_state-9",
	"aug_type_from_state-10",
	"aug_type_from_state-11",
	"aug_type_from_state-12",
	"aug_type_eof-1",
	"aug_type_eof-2",
	"aug_type_eof-3",
	"aug_type_eof-4",
	"aug_type_eof-5",
	"aug_type_eof-6",
	"aug_type_eof-7",
	"aug_type_eof-8",
	"aug_type_eof-9",
	"aug_type_eof-10",
	"aug_type_eof-11",
	"aug_type_eof-12",
	"aug_type_gbl_error-1",
	"aug_type_gbl_error-2",
	"aug_type_gbl_error-3",
	"aug_type_gbl_error-4",
	"aug_type_gbl_error-5",
	"aug_type_gbl_error-6",
	"aug_type_gbl_error-7",
	"aug_type_gbl_error-8",
	"aug_type_gbl_error-9",
	"aug_type_gbl_error-10",
	"aug_type_gbl_error-11",
	"aug_type_gbl_error-12",
	"aug_type_local_error-1",
	"aug_type_local_error-2",
	"aug_type_local_error-3",
	"aug_type_local_error-4",
	"aug_type_local_error-5",
	"aug_type_local_error-6",
	"aug_type_local_error-7",
	"aug_type_local_error-8",
	"aug_type_local_error-9",
	"aug_type_local_error-10",
	"aug_type_local_error-11",
	"aug_type_local_error-12",
	"action_embed-1",
	"action_embed-2",
	"action_embed-3",
	"action_embed_word-1",
	"action_embed_block-1",
	"priority_name-1",
	"priority_aug-1",
	"priority_aug_num-1",
	"priority_aug_num-2",
	"priority_aug_num-3",
	"local_err_name-1",
	"factor_with_rep-1",
	"factor_with_rep-2",
	"factor_with_rep-3",
	"factor_with_rep-4",
	"factor_with_rep-5",
	"factor_with_rep-6",
	"factor_with_rep-7",
	"factor_with_rep-8",
	"factor_with_rep-9",
	"factor_rep_num-1",
	"factor_with_neg-1",
	"factor_with_neg-2",
	"factor_with_neg-3",
	"factor-1",
	"factor-2",
	"factor-3",
	"factor-4",
	"factor-5",
	"factor-6",
	"factor-7",
	"factor-8",
	"range_lit-1",
	"range_lit-2",
	"alphabet_num-1",
	"alphabet_num-2",
	"alphabet_num-3",
	"regular_expr-1",
	"regular_expr-2",
	"regular_expr_item-1",
	"regular_expr_item-2",
	"regular_expr_char-1",
	"regular_expr_char-2",
	"regular_expr_char-3",
	"regular_expr_char-4",
	"regular_expr_or_data-1",
	"regular_expr_or_data-2",
	"regular_expr_or_char-1",
	"regular_expr_or_char-2",
	"inline_block-1",
	"inline_block-2",
	"inline_block_item-1",
	"inline_block_item-2",
	"inline_block_item-3",
	"inline_block_symbol-1",
	"inline_block_symbol-2",
	"inline_block_symbol-3",
	"inline_block_symbol-4",
	"inline_block_symbol-5",
	"inline_block_symbol-6",
	"inline_block_interpret-1",
	"inline_block_interpret-2",
	"inline_block_interpret-3",
	"inline_block_interpret-4",
	"inline_block_interpret-5",
	"inline_block_interpret-6",
	"inline_block_interpret-7",
	"inline_block_interpret-8",
	"inline_block_interpret-9",
	"inline_block_interpret-10",
	"inline_block_interpret-11",
	"inline_expr-1",
	"inline_expr-2",
	"inline_expr_item-1",
	"inline_expr_item-2",
	"inline_expr_item-3",
	"inline_expr_any-1",
	"inline_expr_any-2",
	"inline_expr_any-3",
	"inline_expr_any-4",
	"inline_expr_any-5",
	"inline_expr_any-6",
	"inline_expr_any-7",
	"inline_expr_symbol-1",
	"inline_expr_symbol-2",
	"inline_expr_symbol-3",
	"inline_expr_symbol-4",
	"inline_expr_symbol-5",
	"inline_expr_interpret-1",
	"inline_expr_interpret-2",
	"inline_expr_interpret-3",
	"inline_expr_interpret-4",
	"inline_expr_interpret-5",
	"local_state_ref-1",
	"no_name_sep-1",
	"state_ref-1",
	"opt_name_sep-1",
	"opt_name_sep-2",
	"state_ref_names-1",
	"state_ref_names-2",
	"_start-1"
};

const char *Parser_lelNames[] = {
	"D-0",
	"D-1",
	"D-2",
	"D-3",
	"D-4",
	"D-5",
	"D-6",
	"D-7",
	"D-8",
	"D-9",
	"D-10",
	"D-11",
	"D-12",
	"D-13",
	"D-14",
	"D-15",
	"D-16",
	"D-17",
	"D-18",
	"D-19",
	"D-20",
	"D-21",
	"D-22",
	"D-23",
	"D-24",
	"D-25",
	"D-26",
	"D-27",
	"D-28",
	"D-29",
	"D-30",
	"D-31",
	"D-32",
	"!",
	"\"",
	"#",
	"$",
	"%",
	"&",
	"'",
	"(",
	")",
	"*",
	"+",
	",",
	"-",
	".",
	"/",
	"0",
	"1",
	"2",
	"3",
	"4",
	"5",
	"6",
	"7",
	"8",
	"9",
	":",
	";",
	"<",
	"=",
	">",
	"?",
	"@",
	"A",
	"B",
	"C",
	"D",
	"E",
	"F",
	"G",
	"H",
	"I",
	"J",
	"K",
	"L",
	"M",
	"N",
	"O",
	"P",
	"Q",
	"R",
	"S",
	"T",
	"U",
	"V",
	"W",
	"X",
	"Y",
	"Z",
	"[",
	"\\",
	"]",
	"^",
	"_",
	"`",
	"a",
	"b",
	"c",
	"d",
	"e",
	"f",
	"g",
	"h",
	"i",
	"j",
	"k",
	"l",
	"m",
	"n",
	"o",
	"p",
	"q",
	"r",
	"s",
	"t",
	"u",
	"v",
	"w",
	"x",
	"y",
	"z",
	"{",
	"|",
	"}",
	"~",
	"D-127",
	"TK_Word",
	"TK_Literal",
	"TK_Number",
	"TK_EndSection",
	"TK_UInt",
	"TK_Hex",
	"TK_DotDot",
	"TK_ColonGt",
	"TK_ColonGtGt",
	"TK_LtColon",
	"TK_Arrow",
	"TK_DoubleArrow",
	"TK_StarStar",
	"TK_ColonEquals",
	"TK_NameSep",
	"TK_BarStar",
	"TK_DashDash",
	"TK_StartCond",
	"TK_AllCond",
	"TK_LeavingCond",
	"TK_Middle",
	"TK_StartGblError",
	"TK_AllGblError",
	"TK_FinalGblError",
	"TK_NotFinalGblError",
	"TK_NotStartGblError",
	"TK_MiddleGblError",
	"TK_StartLocalError",
	"TK_AllLocalError",
	"TK_FinalLocalError",
	"TK_NotFinalLocalError",
	"TK_NotStartLocalError",
	"TK_MiddleLocalError",
	"TK_StartEOF",
	"TK_AllEOF",
	"TK_FinalEOF",
	"TK_NotFinalEOF",
	"TK_NotStartEOF",
	"TK_MiddleEOF",
	"TK_StartToState",
	"TK_AllToState",
	"TK_FinalToState",
	"TK_NotFinalToState",
	"TK_NotStartToState",
	"TK_MiddleToState",
	"TK_StartFromState",
	"TK_AllFromState",
	"TK_FinalFromState",
	"TK_NotFinalFromState",
	"TK_NotStartFromState",
	"TK_MiddleFromState",
	"RE_Slash",
	"RE_SqOpen",
	"RE_SqOpenNeg",
	"RE_SqClose",
	"RE_Dot",
	"RE_Star",
	"RE_Dash",
	"RE_Char",
	"IL_WhiteSpace",
	"IL_Comment",
	"IL_Literal",
	"IL_Symbol",
	"KW_Machine",
	"KW_Include",
	"KW_Import",
	"KW_Write",
	"KW_Action",
	"KW_AlphType",
	"KW_Range",
	"KW_GetKey",
	"KW_InWhen",
	"KW_When",
	"KW_OutWhen",
	"KW_Eof",
	"KW_Err",
	"KW_Lerr",
	"KW_To",
	"KW_From",
	"KW_Export",
	"KW_PrePush",
	"KW_PostPop",
	"KW_Length",
	"KW_Break",
	"KW_Exec",
	"KW_Hold",
	"KW_PChar",
	"KW_Char",
	"KW_Goto",
	"KW_Call",
	"KW_Ret",
	"KW_CurState",
	"KW_TargState",
	"KW_Entry",
	"KW_Next",
	"KW_Variable",
	"KW_Access",
	"Parser_tk_eof",
	"section_list",
	"start",
	"statement_list",
	"statement",
	"assignment",
	"instantiation",
	"action_spec",
	"alphtype_spec",
	"range_spec",
	"getkey_spec",
	"access_spec",
	"variable_spec",
	"export_block",
	"pre_push_spec",
	"post_pop_spec",
	"length_spec",
	"inline_block",
	"export_open",
	"opt_export",
	"machine_name",
	"join",
	"join_or_lm",
	"alphabet_num",
	"inline_expr",
	"opt_whitespace",
	"lm_part_list",
	"longest_match_part",
	"opt_lm_part_action",
	"action_embed",
	"action_embed_block",
	"expression",
	"term_short",
	"term",
	"factor_with_label",
	"factor_with_ep",
	"local_state_ref",
	"factor_with_aug",
	"aug_type_base",
	"priority_aug",
	"priority_name",
	"aug_type_cond",
	"aug_type_to_state",
	"aug_type_from_state",
	"aug_type_eof",
	"aug_type_gbl_error",
	"aug_type_local_error",
	"local_err_name",
	"factor_with_rep",
	"action_embed_word",
	"priority_aug_num",
	"factor_rep_num",
	"factor_with_neg",
	"factor",
	"regular_expr_or_data",
	"regular_expr",
	"range_lit",
	"regular_expr_item",
	"regular_expr_char",
	"regular_expr_or_char",
	"inline_block_item",
	"inline_block_interpret",
	"inline_expr_any",
	"inline_block_symbol",
	"inline_expr_interpret",
	"state_ref",
	"inline_expr_item",
	"inline_expr_symbol",
	"no_name_sep",
	"state_ref_names",
	"opt_name_sep",
	"_start"
};

#line 1449 "rlparse.kl"


void Parser::init()
{
	#line 3855 "rlparse.cpp"
	curs = Parser_startState;
	pool = 0;
	block = (struct Parser_Block*) malloc( sizeof(struct Parser_Block) );
	block->next = 0;
	freshEl = block->data;
	#ifdef KELBT_LOG_ACTIONS
	cerr << "allocating 8128 LangEls" << endl;
	#endif
	stackTop = freshEl;
	stackTop->type = 0;
	stackTop->state = -1;
	stackTop->next = 0;
	stackTop->child = 0;
	stackTop->causeReduce = 0;
	freshPos = 1;
	lastFinal = stackTop;
	numRetry = 0;
	numNodes = 0;
	errCount = 0;
#line 1454 "rlparse.kl"
}

int Parser::parseLangEl( int type, const Token *token )
{
	#line 3880 "rlparse.cpp"
#define reject() induceReject = 1

	int pos, targState;
	unsigned int *action;
	int rhsLen;
	struct Parser_LangEl *rhs[32];
	struct Parser_LangEl *lel = 0;
	struct Parser_LangEl *input = 0;
	struct Parser_LangEl *queue = 0;
	char induceReject;

	if ( curs < 0 )
		return 0;

	if ( pool == 0 ) {
		if ( freshPos == 8128 ) {
			struct Parser_Block* newBlock  = (struct Parser_Block*) malloc( sizeof(struct Parser_Block) );
			newBlock->next = block;
			block = newBlock;
			freshEl = newBlock->data;
			#ifdef KELBT_LOG_ACTIONS
			cerr << "allocating 8128 LangEls" << endl;
			#endif
			freshPos = 0;
		}
		queue = freshEl + freshPos++;
	}
	else {
		queue = pool;
		pool = pool->next;
	}
	numNodes += 1;

	queue->type = type;
	queue->user.token = *token;
	queue->next = 0;
	queue->retry = 0;
	queue->child = 0;
	queue->causeReduce = 0;

again:
	if ( input == 0 ) {
		if ( queue == 0 )
			goto _out;

		input = queue;
		queue = queue->next;
		input->next = 0;
	}

	lel = input;
	if ( lel->type < Parser_keys[curs<<1] || lel->type > Parser_keys[(curs<<1)+1] )
		goto parseError;

	pos = Parser_indicies[Parser_offsets[curs] + (lel->type - Parser_keys[curs<<1])];
	if ( pos < 0 )
		goto parseError;

	induceReject = 0;
	targState = Parser_targs[pos];
	action = Parser_actions + Parser_actInds[pos];
	if ( lel->retry & 0x0000ffff )
		action += (lel->retry & 0x0000ffff);

	if ( *action & 0x1 ) {
		#ifdef KELBT_LOG_ACTIONS
		cerr << "shifted: " << Parser_lelNames[lel->type];
		#endif
		input = input->next;
		lel->state = curs;
		lel->next = stackTop;
		stackTop = lel;

		if ( action[1] == 0 )
			lel->retry &= 0xffff0000;
		else {
			lel->retry += 1;
			numRetry += 1;
			#ifdef KELBT_LOG_ACTIONS
			cerr << " retry: " << stackTop;
			#endif
		}
		#ifdef KELBT_LOG_ACTIONS
		cerr << endl;
		#endif
	}

	if ( Parser_commitLen[pos] != 0 ) {
		struct Parser_LangEl *commitHead = stackTop, *lel;
		int sp = 0, doExec = 0;
		#ifdef KELBT_LOG_ACTIONS
		cerr << "commit encountered, executing final actions" << endl;
		#endif
		if ( Parser_commitLen[pos] < 0 )
			commitHead = commitHead->next;

		lel = commitHead;

commit_head:
		if ( lel == lastFinal ) {
			doExec = 1;
			goto commit_base;
		}

		if ( lel->next != 0 ) {
			sp += 1;
			lel->next->prev = lel;
			lel = lel->next;
			lel->retry = 0;
			goto commit_head;
		}

commit_reverse:

		if ( lel->child != 0 ) {
			sp += 1;
			lel->child->prev = lel;
			lel = lel->child;
			lel->retry = 1;
			goto commit_head;
		}

commit_upwards:

		if ( doExec ) {
			if ( lel->type < 226 ) {
			}
			else {
				struct Parser_LangEl *redLel = lel;
				if ( redLel->child != 0 ) {
					int r = Parser_prodLengths[redLel->reduction] - 1;
					struct Parser_LangEl *rhsEl = redLel->child;
					while ( rhsEl != 0 ) {
						rhs[r--] = rhsEl;
						rhsEl = rhsEl->next;
					}
				}
switch ( lel->reduction ) {
case 17: {
Token *__ref0 = (Token*)&rhs[1]->user.token;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Token *__ref2 = (Token*)&rhs[1]->user.token;
#line 61 "rlparse.kl"

		LengthDef *lengthDef = new LengthDef( (__ref0)->data );
		pd->lengthDefList.append( lengthDef );

		/* Generic creation of machine for instantiation and assignment. */
		MachineDef *machineDef = new MachineDef( lengthDef );
		tryMachineDef( (__ref1)->loc, (__ref2)->data, machineDef, false );
	

#line 4031 "rlparse.cpp"
} break;
case 18: {
Token *__ref0 = (Token*)&rhs[1]->user.token;
Parser_Lel_inline_list *__ref1 = (Parser_Lel_inline_list*)&rhs[2]->user.inline_list;
#line 72 "rlparse.kl"

		if ( pd->prePushExpr != 0 ) {
			/* Recover by just ignoring the duplicate. */
			error((__ref0)->loc) << "pre_push code already defined" << endl;
		}

		pd->prePushExpr = (__ref1)->inlineList;
	

#line 4046 "rlparse.cpp"
} break;
case 19: {
Token *__ref0 = (Token*)&rhs[1]->user.token;
Parser_Lel_inline_list *__ref1 = (Parser_Lel_inline_list*)&rhs[2]->user.inline_list;
#line 84 "rlparse.kl"

		if ( pd->postPopExpr != 0 ) {
			/* Recover by just ignoring the duplicate. */
			error((__ref0)->loc) << "post_pop code already defined" << endl;
		}

		pd->postPopExpr = (__ref1)->inlineList;
	

#line 4061 "rlparse.cpp"
} break;
case 20: {
#line 95 "rlparse.kl"

		exportContext.append( true );
	

#line 4069 "rlparse.cpp"
} break;
case 21: {
Parser_Lel_opt_export *__ref0 = (Parser_Lel_opt_export*)&redLel->user.opt_export;
#line 104 "rlparse.kl"
 (__ref0)->isSet = true; 

#line 4076 "rlparse.cpp"
} break;
case 22: {
Parser_Lel_opt_export *__ref0 = (Parser_Lel_opt_export*)&redLel->user.opt_export;
#line 105 "rlparse.kl"
 (__ref0)->isSet = false; 

#line 4083 "rlparse.cpp"
} break;
case 23: {
#line 108 "rlparse.kl"

		exportContext.remove( exportContext.length()-1 );
	

#line 4091 "rlparse.cpp"
} break;
case 24: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_join *__ref2 = (Parser_Lel_join*)&rhs[3]->user.join;
Parser_Lel_token_type *__ref3 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_token_type *__ref4 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_opt_export *__ref5 = (Parser_Lel_opt_export*)&rhs[0]->user.opt_export;
Parser_Lel_join *__ref6 = (Parser_Lel_join*)&rhs[3]->user.join;
Token *__ref7 = (Token*)&rhs[2]->user.token;
#line 113 "rlparse.kl"

		/* Main machine must be an instance. */
		bool isInstance = false;
		if ( strcmp((__ref0)->token.data, mainMachine) == 0 ) {
			warning((__ref1)->token.loc) << 
					"main machine will be implicitly instantiated" << endl;
			isInstance = true;
		}

		/* Generic creation of machine for instantiation and assignment. */
		MachineDef *machineDef = new MachineDef( (__ref2)->join );
		tryMachineDef( (__ref3)->token.loc, (__ref4)->token.data, machineDef, isInstance );

		if ( (__ref5)->isSet )
			exportContext.remove( exportContext.length()-1 );

		(__ref6)->join->loc = (__ref7)->loc;
	

#line 4122 "rlparse.cpp"
} break;
case 25: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_join_or_lm *__ref2 = (Parser_Lel_join_or_lm*)&rhs[3]->user.join_or_lm;
Parser_Lel_opt_export *__ref3 = (Parser_Lel_opt_export*)&rhs[0]->user.opt_export;
Parser_Lel_join_or_lm *__ref4 = (Parser_Lel_join_or_lm*)&rhs[3]->user.join_or_lm;
Parser_Lel_join_or_lm *__ref5 = (Parser_Lel_join_or_lm*)&rhs[3]->user.join_or_lm;
Token *__ref6 = (Token*)&rhs[2]->user.token;
#line 133 "rlparse.kl"

		/* Generic creation of machine for instantiation and assignment. */
		tryMachineDef( (__ref0)->token.loc, (__ref1)->token.data, (__ref2)->machineDef, true );

		if ( (__ref3)->isSet )
			exportContext.remove( exportContext.length()-1 );

		/* Pass a location to join_or_lm */
		if ( (__ref4)->machineDef->join != 0 )
			(__ref5)->machineDef->join->loc = (__ref6)->loc;
	

#line 4145 "rlparse.cpp"
} break;
case 26: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_token_type *__ref2 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref3 = (Token*)&rhs[0]->user.token;
#line 153 "rlparse.kl"

		/* Make/get the priority key. The name may have already been referenced
		 * and therefore exist. */
		PriorDictEl *priorDictEl;
		if ( pd->priorDict.insert( (__ref0)->data, pd->nextPriorKey, &priorDictEl ) )
			pd->nextPriorKey += 1;
		pd->curDefPriorKey = priorDictEl->value;

		/* Make/get the local error key. */
		LocalErrDictEl *localErrDictEl;
		if ( pd->localErrDict.insert( (__ref1)->data, pd->nextLocalErrKey, &localErrDictEl ) )
			pd->nextLocalErrKey += 1;
		pd->curDefLocalErrKey = localErrDictEl->value;

		(__ref2)->token = *(__ref3);
	

#line 4170 "rlparse.cpp"
} break;
case 27: {
Token *__ref0 = (Token*)&rhs[1]->user.token;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Token *__ref2 = (Token*)&rhs[1]->user.token;
Token *__ref3 = (Token*)&rhs[2]->user.token;
Token *__ref4 = (Token*)&rhs[1]->user.token;
Parser_Lel_inline_list *__ref5 = (Parser_Lel_inline_list*)&rhs[3]->user.inline_list;
#line 171 "rlparse.kl"

		if ( pd->actionDict.find( (__ref0)->data ) ) {
			/* Recover by just ignoring the duplicate. */
			error((__ref1)->loc) << "action \"" << (__ref2)->data << "\" already defined" << endl;
		}
		else {
			//cerr << "NEW ACTION " << $2->data << " " << $4->inlineList << endl;
			/* Add the action to the list of actions. */
			Action *newAction = new Action( (__ref3)->loc, (__ref4)->data, 
					(__ref5)->inlineList, pd->nextCondId++ );

			/* Insert to list and dict. */
			pd->actionList.append( newAction );
			pd->actionDict.insert( newAction );
		}
	

#line 4197 "rlparse.cpp"
} break;
case 28: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Token *__ref2 = (Token*)&rhs[2]->user.token;
Token *__ref3 = (Token*)&rhs[1]->user.token;
Token *__ref4 = (Token*)&rhs[1]->user.token;
Token *__ref5 = (Token*)&rhs[2]->user.token;
#line 191 "rlparse.kl"

		if ( ! pd->setAlphType( (__ref0)->loc, (__ref1)->data, (__ref2)->data ) ) {
			// Recover by ignoring the alphtype statement.
			error((__ref3)->loc) << "\"" << (__ref4)->data << 
					" " << (__ref5)->data << "\" is not a valid alphabet type" << endl;
		}
	

#line 4215 "rlparse.cpp"
} break;
case 29: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Token *__ref2 = (Token*)&rhs[1]->user.token;
Token *__ref3 = (Token*)&rhs[1]->user.token;
#line 200 "rlparse.kl"

		if ( ! pd->setAlphType( (__ref0)->loc, (__ref1)->data ) ) {
			// Recover by ignoring the alphtype statement.
			error((__ref2)->loc) << "\"" << (__ref3)->data << 
					"\" is not a valid alphabet type" << endl;
		}
	

#line 4231 "rlparse.cpp"
} break;
case 30: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[2]->user.token_type;
Parser_Lel_token_type *__ref2 = (Parser_Lel_token_type*)&rhs[1]->user.token_type;
Parser_Lel_token_type *__ref3 = (Parser_Lel_token_type*)&rhs[2]->user.token_type;
#line 210 "rlparse.kl"

		// Save the upper and lower ends of the range and emit the line number.
		pd->lowerNum = (__ref0)->token.data;
		pd->upperNum = (__ref1)->token.data;
		pd->rangeLowLoc = (__ref2)->token.loc;
		pd->rangeHighLoc = (__ref3)->token.loc;
	

#line 4247 "rlparse.cpp"
} break;
case 31: {
Parser_Lel_inline_list *__ref0 = (Parser_Lel_inline_list*)&rhs[1]->user.inline_list;
#line 219 "rlparse.kl"

		pd->getKeyExpr = (__ref0)->inlineList;
	

#line 4256 "rlparse.cpp"
} break;
case 32: {
Parser_Lel_inline_list *__ref0 = (Parser_Lel_inline_list*)&rhs[1]->user.inline_list;
#line 224 "rlparse.kl"

		pd->accessExpr = (__ref0)->inlineList;
	

#line 4265 "rlparse.cpp"
} break;
case 33: {
Token *__ref0 = (Token*)&rhs[2]->user.token;
Parser_Lel_inline_list *__ref1 = (Parser_Lel_inline_list*)&rhs[3]->user.inline_list;
Token *__ref2 = (Token*)&rhs[2]->user.token;
#line 229 "rlparse.kl"

		/* FIXME: Need to implement the rest of this. */
		bool wasSet = pd->setVariable( (__ref0)->data, (__ref1)->inlineList );
		if ( !wasSet )
			error((__ref2)->loc) << "bad variable name" << endl;
	

#line 4279 "rlparse.cpp"
} break;
case 36: {
Parser_Lel_join_or_lm *__ref0 = (Parser_Lel_join_or_lm*)&redLel->user.join_or_lm;
Parser_Lel_join *__ref1 = (Parser_Lel_join*)&rhs[0]->user.join;
#line 249 "rlparse.kl"

		(__ref0)->machineDef = new MachineDef( (__ref1)->join );
	

#line 4289 "rlparse.cpp"
} break;
case 37: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Parser_Lel_lm_part_list *__ref1 = (Parser_Lel_lm_part_list*)&rhs[1]->user.lm_part_list;
Parser_Lel_lm_part_list *__ref2 = (Parser_Lel_lm_part_list*)&rhs[1]->user.lm_part_list;
Parser_Lel_join_or_lm *__ref3 = (Parser_Lel_join_or_lm*)&redLel->user.join_or_lm;
#line 253 "rlparse.kl"

		/* Create a new factor going to a longest match structure. Record
		 * in the parse data that we have a longest match. */
		LongestMatch *lm = new LongestMatch( (__ref0)->loc, (__ref1)->lmPartList );
		pd->lmList.append( lm );
		for ( LmPartList::Iter lmp = *((__ref2)->lmPartList); lmp.lte(); lmp++ )
			lmp->longestMatch = lm;
		(__ref3)->machineDef = new MachineDef( lm );
	

#line 4307 "rlparse.cpp"
} break;
case 38: {
Parser_Lel_longest_match_part *__ref0 = (Parser_Lel_longest_match_part*)&rhs[1]->user.longest_match_part;
Parser_Lel_lm_part_list *__ref1 = (Parser_Lel_lm_part_list*)&rhs[0]->user.lm_part_list;
Parser_Lel_longest_match_part *__ref2 = (Parser_Lel_longest_match_part*)&rhs[1]->user.longest_match_part;
Parser_Lel_lm_part_list *__ref3 = (Parser_Lel_lm_part_list*)&redLel->user.lm_part_list;
Parser_Lel_lm_part_list *__ref4 = (Parser_Lel_lm_part_list*)&rhs[0]->user.lm_part_list;
#line 270 "rlparse.kl"

		if ( (__ref0)->lmPart != 0 ) 
			(__ref1)->lmPartList->append( (__ref2)->lmPart );
		(__ref3)->lmPartList = (__ref4)->lmPartList;
	

#line 4322 "rlparse.cpp"
} break;
case 39: {
Parser_Lel_lm_part_list *__ref0 = (Parser_Lel_lm_part_list*)&redLel->user.lm_part_list;
Parser_Lel_longest_match_part *__ref1 = (Parser_Lel_longest_match_part*)&rhs[0]->user.longest_match_part;
Parser_Lel_lm_part_list *__ref2 = (Parser_Lel_lm_part_list*)&redLel->user.lm_part_list;
Parser_Lel_longest_match_part *__ref3 = (Parser_Lel_longest_match_part*)&rhs[0]->user.longest_match_part;
#line 277 "rlparse.kl"

		/* Create a new list with the part. */
		(__ref0)->lmPartList = new LmPartList;
		if ( (__ref1)->lmPart != 0 )
			(__ref2)->lmPartList->append( (__ref3)->lmPart );
	

#line 4337 "rlparse.cpp"
} break;
case 40: {
Parser_Lel_longest_match_part *__ref0 = (Parser_Lel_longest_match_part*)&redLel->user.longest_match_part;
#line 290 "rlparse.kl"
 (__ref0)->lmPart = 0; 

#line 4344 "rlparse.cpp"
} break;
case 41: {
Parser_Lel_longest_match_part *__ref0 = (Parser_Lel_longest_match_part*)&redLel->user.longest_match_part;
#line 292 "rlparse.kl"
 (__ref0)->lmPart = 0; 

#line 4351 "rlparse.cpp"
} break;
case 42: {
Parser_Lel_longest_match_part *__ref0 = (Parser_Lel_longest_match_part*)&redLel->user.longest_match_part;
Parser_Lel_opt_lm_part_action *__ref1 = (Parser_Lel_opt_lm_part_action*)&rhs[1]->user.opt_lm_part_action;
Parser_Lel_longest_match_part *__ref2 = (Parser_Lel_longest_match_part*)&redLel->user.longest_match_part;
Parser_Lel_join *__ref3 = (Parser_Lel_join*)&rhs[0]->user.join;
Token *__ref4 = (Token*)&rhs[2]->user.token;
Parser_Lel_join *__ref5 = (Parser_Lel_join*)&rhs[0]->user.join;
Token *__ref6 = (Token*)&rhs[2]->user.token;
#line 294 "rlparse.kl"

		(__ref0)->lmPart = 0;
		Action *action = (__ref1)->action;
		if ( action != 0 )
			action->isLmAction = true;
		(__ref2)->lmPart = new LongestMatchPart( (__ref3)->join, action, 
				(__ref4)->loc, pd->nextLongestMatchId++ );

		/* Provide a location to join. Unfortunately We don't
		 * have the start of the join as in other occurances. Use the end. */
		(__ref5)->join->loc = (__ref6)->loc;
	

#line 4375 "rlparse.cpp"
} break;
case 43: {
Parser_Lel_opt_lm_part_action *__ref0 = (Parser_Lel_opt_lm_part_action*)&redLel->user.opt_lm_part_action;
Parser_Lel_action_ref *__ref1 = (Parser_Lel_action_ref*)&rhs[1]->user.action_ref;
#line 313 "rlparse.kl"
 
		(__ref0)->action = (__ref1)->action;
	

#line 4385 "rlparse.cpp"
} break;
case 44: {
Parser_Lel_opt_lm_part_action *__ref0 = (Parser_Lel_opt_lm_part_action*)&redLel->user.opt_lm_part_action;
Parser_Lel_action_ref *__ref1 = (Parser_Lel_action_ref*)&rhs[0]->user.action_ref;
#line 317 "rlparse.kl"

		(__ref0)->action = (__ref1)->action;
	

#line 4395 "rlparse.cpp"
} break;
case 45: {
Parser_Lel_opt_lm_part_action *__ref0 = (Parser_Lel_opt_lm_part_action*)&redLel->user.opt_lm_part_action;
#line 321 "rlparse.kl"

		(__ref0)->action = 0;
	

#line 4404 "rlparse.cpp"
} break;
case 46: {
Parser_Lel_join *__ref0 = (Parser_Lel_join*)&rhs[0]->user.join;
Parser_Lel_expression *__ref1 = (Parser_Lel_expression*)&rhs[2]->user.expression;
Parser_Lel_join *__ref2 = (Parser_Lel_join*)&redLel->user.join;
Parser_Lel_join *__ref3 = (Parser_Lel_join*)&rhs[0]->user.join;
#line 332 "rlparse.kl"

		/* Append the expression to the list and return it. */
		(__ref0)->join->exprList.append( (__ref1)->expression );
		(__ref2)->join = (__ref3)->join;
	

#line 4418 "rlparse.cpp"
} break;
case 47: {
Parser_Lel_join *__ref0 = (Parser_Lel_join*)&redLel->user.join;
Parser_Lel_expression *__ref1 = (Parser_Lel_expression*)&rhs[0]->user.expression;
#line 338 "rlparse.kl"

		(__ref0)->join = new Join( (__ref1)->expression );
	

#line 4428 "rlparse.cpp"
} break;
case 48: {
Parser_Lel_expression *__ref0 = (Parser_Lel_expression*)&redLel->user.expression;
Parser_Lel_expression *__ref1 = (Parser_Lel_expression*)&rhs[0]->user.expression;
Parser_Lel_term_short *__ref2 = (Parser_Lel_term_short*)&rhs[2]->user.term_short;
#line 348 "rlparse.kl"

		(__ref0)->expression = new Expression( (__ref1)->expression, 
				(__ref2)->term, Expression::OrType );
	

#line 4440 "rlparse.cpp"
} break;
case 49: {
Parser_Lel_expression *__ref0 = (Parser_Lel_expression*)&redLel->user.expression;
Parser_Lel_expression *__ref1 = (Parser_Lel_expression*)&rhs[0]->user.expression;
Parser_Lel_term_short *__ref2 = (Parser_Lel_term_short*)&rhs[2]->user.term_short;
#line 353 "rlparse.kl"

		(__ref0)->expression = new Expression( (__ref1)->expression, 
				(__ref2)->term, Expression::IntersectType );
	

#line 4452 "rlparse.cpp"
} break;
case 50: {
Parser_Lel_expression *__ref0 = (Parser_Lel_expression*)&redLel->user.expression;
Parser_Lel_expression *__ref1 = (Parser_Lel_expression*)&rhs[0]->user.expression;
Parser_Lel_term_short *__ref2 = (Parser_Lel_term_short*)&rhs[2]->user.term_short;
#line 358 "rlparse.kl"

		(__ref0)->expression = new Expression( (__ref1)->expression, 
				(__ref2)->term, Expression::SubtractType );
	

#line 4464 "rlparse.cpp"
} break;
case 51: {
Parser_Lel_expression *__ref0 = (Parser_Lel_expression*)&redLel->user.expression;
Parser_Lel_expression *__ref1 = (Parser_Lel_expression*)&rhs[0]->user.expression;
Parser_Lel_term_short *__ref2 = (Parser_Lel_term_short*)&rhs[2]->user.term_short;
#line 363 "rlparse.kl"

		(__ref0)->expression = new Expression( (__ref1)->expression, 
				(__ref2)->term, Expression::StrongSubtractType );
	

#line 4476 "rlparse.cpp"
} break;
case 52: {
Parser_Lel_expression *__ref0 = (Parser_Lel_expression*)&redLel->user.expression;
Parser_Lel_term_short *__ref1 = (Parser_Lel_term_short*)&rhs[0]->user.term_short;
#line 368 "rlparse.kl"

		(__ref0)->expression = new Expression( (__ref1)->term );
	

#line 4486 "rlparse.cpp"
} break;
case 53: {
Parser_Lel_term_short *__ref0 = (Parser_Lel_term_short*)&redLel->user.term_short;
Parser_Lel_term *__ref1 = (Parser_Lel_term*)&rhs[0]->user.term;
#line 389 "rlparse.kl"

		(__ref0)->term = (__ref1)->term;
	

#line 4496 "rlparse.cpp"
} break;
case 54: {
Parser_Lel_term *__ref0 = (Parser_Lel_term*)&redLel->user.term;
Parser_Lel_term *__ref1 = (Parser_Lel_term*)&rhs[0]->user.term;
Parser_Lel_factor_with_label *__ref2 = (Parser_Lel_factor_with_label*)&rhs[1]->user.factor_with_label;
#line 399 "rlparse.kl"

		(__ref0)->term = new Term( (__ref1)->term, (__ref2)->factorWithAug );
	

#line 4507 "rlparse.cpp"
} break;
case 55: {
Parser_Lel_term *__ref0 = (Parser_Lel_term*)&redLel->user.term;
Parser_Lel_term *__ref1 = (Parser_Lel_term*)&rhs[0]->user.term;
Parser_Lel_factor_with_label *__ref2 = (Parser_Lel_factor_with_label*)&rhs[2]->user.factor_with_label;
#line 403 "rlparse.kl"

		(__ref0)->term = new Term( (__ref1)->term, (__ref2)->factorWithAug );
	

#line 4518 "rlparse.cpp"
} break;
case 56: {
Parser_Lel_term *__ref0 = (Parser_Lel_term*)&redLel->user.term;
Parser_Lel_term *__ref1 = (Parser_Lel_term*)&rhs[0]->user.term;
Parser_Lel_factor_with_label *__ref2 = (Parser_Lel_factor_with_label*)&rhs[2]->user.factor_with_label;
#line 407 "rlparse.kl"

		(__ref0)->term = new Term( (__ref1)->term, (__ref2)->factorWithAug, Term::RightStartType );
	

#line 4529 "rlparse.cpp"
} break;
case 57: {
Parser_Lel_term *__ref0 = (Parser_Lel_term*)&redLel->user.term;
Parser_Lel_term *__ref1 = (Parser_Lel_term*)&rhs[0]->user.term;
Parser_Lel_factor_with_label *__ref2 = (Parser_Lel_factor_with_label*)&rhs[2]->user.factor_with_label;
#line 411 "rlparse.kl"

		(__ref0)->term = new Term( (__ref1)->term, (__ref2)->factorWithAug, Term::RightFinishType );
	

#line 4540 "rlparse.cpp"
} break;
case 58: {
Parser_Lel_term *__ref0 = (Parser_Lel_term*)&redLel->user.term;
Parser_Lel_term *__ref1 = (Parser_Lel_term*)&rhs[0]->user.term;
Parser_Lel_factor_with_label *__ref2 = (Parser_Lel_factor_with_label*)&rhs[2]->user.factor_with_label;
#line 415 "rlparse.kl"

		(__ref0)->term = new Term( (__ref1)->term, 
				(__ref2)->factorWithAug, Term::LeftType );
	

#line 4552 "rlparse.cpp"
} break;
case 59: {
Parser_Lel_term *__ref0 = (Parser_Lel_term*)&redLel->user.term;
Parser_Lel_factor_with_label *__ref1 = (Parser_Lel_factor_with_label*)&rhs[0]->user.factor_with_label;
#line 420 "rlparse.kl"

		(__ref0)->term = new Term( (__ref1)->factorWithAug );
	

#line 4562 "rlparse.cpp"
} break;
case 60: {
Parser_Lel_factor_with_label *__ref0 = (Parser_Lel_factor_with_label*)&rhs[2]->user.factor_with_label;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Parser_Lel_factor_with_label *__ref3 = (Parser_Lel_factor_with_label*)&redLel->user.factor_with_label;
Parser_Lel_factor_with_label *__ref4 = (Parser_Lel_factor_with_label*)&rhs[2]->user.factor_with_label;
#line 430 "rlparse.kl"
 
		/* Add the label to the list and pass the factor up. */
		(__ref0)->factorWithAug->labels.prepend( Label((__ref1)->loc, (__ref2)->data) );
		(__ref3)->factorWithAug = (__ref4)->factorWithAug; 
	

#line 4577 "rlparse.cpp"
} break;
case 61: {
Parser_Lel_factor_with_label *__ref0 = (Parser_Lel_factor_with_label*)&redLel->user.factor_with_label;
Parser_Lel_factor_with_ep *__ref1 = (Parser_Lel_factor_with_ep*)&rhs[0]->user.factor_with_ep;
#line 436 "rlparse.kl"

		(__ref0)->factorWithAug = (__ref1)->factorWithAug;
	

#line 4587 "rlparse.cpp"
} break;
case 62: {
Parser_Lel_factor_with_ep *__ref0 = (Parser_Lel_factor_with_ep*)&rhs[0]->user.factor_with_ep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_ep *__ref2 = (Parser_Lel_factor_with_ep*)&redLel->user.factor_with_ep;
Parser_Lel_factor_with_ep *__ref3 = (Parser_Lel_factor_with_ep*)&rhs[0]->user.factor_with_ep;
#line 446 "rlparse.kl"
 
		/* Add the target to the list and return the factor object. */
		(__ref0)->factorWithAug->epsilonLinks.append( EpsilonLink( (__ref1)->loc, nameRef ) );
		(__ref2)->factorWithAug = (__ref3)->factorWithAug; 
	

#line 4601 "rlparse.cpp"
} break;
case 63: {
Parser_Lel_factor_with_ep *__ref0 = (Parser_Lel_factor_with_ep*)&redLel->user.factor_with_ep;
Parser_Lel_factor_with_aug *__ref1 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 452 "rlparse.kl"

		(__ref0)->factorWithAug = (__ref1)->factorWithAug;
	

#line 4611 "rlparse.cpp"
} break;
case 64: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[2]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 462 "rlparse.kl"

		/* Append the action to the factorWithAug, record the refernce from 
		 * factorWithAug to the action and pass up the factorWithAug. */
		(__ref0)->factorWithAug->actions.append( 
				ParserAction( (__ref1)->loc, (__ref2)->augType, 0, (__ref3)->action ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4629 "rlparse.cpp"
} break;
case 65: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_priority_aug *__ref2 = (Parser_Lel_priority_aug*)&rhs[2]->user.priority_aug;
Parser_Lel_factor_with_aug *__ref3 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 470 "rlparse.kl"

		/* Append the named priority to the factorWithAug and pass it up. */
		(__ref0)->factorWithAug->priorityAugs.append( 
				PriorityAug( (__ref1)->augType, pd->curDefPriorKey, (__ref2)->priorityNum ) );
		(__ref3)->factorWithAug = (__ref4)->factorWithAug;
	

#line 4645 "rlparse.cpp"
} break;
case 66: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_priority_name *__ref2 = (Parser_Lel_priority_name*)&rhs[3]->user.priority_name;
Parser_Lel_priority_aug *__ref3 = (Parser_Lel_priority_aug*)&rhs[5]->user.priority_aug;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 477 "rlparse.kl"

		/* Append the priority using a default name. */
		(__ref0)->factorWithAug->priorityAugs.append( 
				PriorityAug( (__ref1)->augType, (__ref2)->priorityName, (__ref3)->priorityNum ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4662 "rlparse.cpp"
} break;
case 67: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[2]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 484 "rlparse.kl"

		(__ref0)->factorWithAug->conditions.append( ConditionTest( (__ref1)->loc, 
				(__ref2)->augType, (__ref3)->action, true ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4678 "rlparse.cpp"
} break;
case 68: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[3]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 490 "rlparse.kl"

		(__ref0)->factorWithAug->conditions.append( ConditionTest( (__ref1)->loc, 
				(__ref2)->augType, (__ref3)->action, false ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4694 "rlparse.cpp"
} break;
case 69: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[2]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 496 "rlparse.kl"

		/* Append the action, pass it up. */
		(__ref0)->factorWithAug->actions.append( ParserAction( (__ref1)->loc, 
				(__ref2)->augType, 0, (__ref3)->action ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4711 "rlparse.cpp"
} break;
case 70: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[2]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 503 "rlparse.kl"

		/* Append the action, pass it up. */
		(__ref0)->factorWithAug->actions.append( ParserAction( (__ref1)->loc,
				(__ref2)->augType, 0, (__ref3)->action ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4728 "rlparse.cpp"
} break;
case 71: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[2]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 510 "rlparse.kl"

		/* Append the action, pass it up. */
		(__ref0)->factorWithAug->actions.append( ParserAction( (__ref1)->loc,
				(__ref2)->augType, 0, (__ref3)->action ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4745 "rlparse.cpp"
} break;
case 72: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[2]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 517 "rlparse.kl"

		/* Append the action to the factorWithAug, record the refernce from 
		 * factorWithAug to the action and pass up the factorWithAug. */
		(__ref0)->factorWithAug->actions.append( ParserAction( (__ref1)->loc,
				(__ref2)->augType, pd->curDefLocalErrKey, (__ref3)->action ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4763 "rlparse.cpp"
} break;
case 73: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_action_ref *__ref3 = (Parser_Lel_action_ref*)&rhs[2]->user.action_ref;
Parser_Lel_factor_with_aug *__ref4 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 525 "rlparse.kl"

		/* Append the action to the factorWithAug, record the refernce from 
		 * factorWithAug to the action and pass up the factorWithAug. */
		(__ref0)->factorWithAug->actions.append( ParserAction( (__ref1)->loc, 
				(__ref2)->augType, pd->curDefLocalErrKey, (__ref3)->action ) );
		(__ref4)->factorWithAug = (__ref5)->factorWithAug;
	

#line 4781 "rlparse.cpp"
} break;
case 74: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
Parser_Lel_aug_type *__ref1 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&rhs[1]->user.aug_type;
Parser_Lel_local_err_name *__ref3 = (Parser_Lel_local_err_name*)&rhs[3]->user.local_err_name;
Parser_Lel_action_ref *__ref4 = (Parser_Lel_action_ref*)&rhs[5]->user.action_ref;
Parser_Lel_factor_with_aug *__ref5 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_aug *__ref6 = (Parser_Lel_factor_with_aug*)&rhs[0]->user.factor_with_aug;
#line 533 "rlparse.kl"

		/* Append the action to the factorWithAug, record the refernce from
		 * factorWithAug to the action and pass up the factorWithAug. */
		(__ref0)->factorWithAug->actions.append( ParserAction( (__ref1)->loc,
				(__ref2)->augType, (__ref3)->error_name, (__ref4)->action ) );
		(__ref5)->factorWithAug = (__ref6)->factorWithAug;
	

#line 4800 "rlparse.cpp"
} break;
case 75: {
Parser_Lel_factor_with_aug *__ref0 = (Parser_Lel_factor_with_aug*)&redLel->user.factor_with_aug;
Parser_Lel_factor_with_rep *__ref1 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
#line 541 "rlparse.kl"

		(__ref0)->factorWithAug = new FactorWithAug( (__ref1)->factorWithRep );
	

#line 4810 "rlparse.cpp"
} break;
case 76: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 554 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_finish; 

#line 4819 "rlparse.cpp"
} break;
case 77: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 555 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_leave; 

#line 4828 "rlparse.cpp"
} break;
case 78: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 556 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all; 

#line 4837 "rlparse.cpp"
} break;
case 79: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 557 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start; 

#line 4846 "rlparse.cpp"
} break;
case 80: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 562 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start; 

#line 4855 "rlparse.cpp"
} break;
case 81: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 563 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start; 

#line 4864 "rlparse.cpp"
} break;
case 82: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 564 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all; 

#line 4873 "rlparse.cpp"
} break;
case 83: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 565 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all; 

#line 4882 "rlparse.cpp"
} break;
case 84: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 566 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_leave; 

#line 4891 "rlparse.cpp"
} break;
case 85: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 567 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_leave; 

#line 4900 "rlparse.cpp"
} break;
case 86: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 568 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all; 

#line 4909 "rlparse.cpp"
} break;
case 87: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 569 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start; 

#line 4918 "rlparse.cpp"
} break;
case 88: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 570 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_leave; 

#line 4927 "rlparse.cpp"
} break;
case 89: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 579 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_to_state; 

#line 4936 "rlparse.cpp"
} break;
case 90: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 581 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_to_state; 

#line 4945 "rlparse.cpp"
} break;
case 91: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 584 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_to_state; 

#line 4954 "rlparse.cpp"
} break;
case 92: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 586 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_to_state; 

#line 4963 "rlparse.cpp"
} break;
case 93: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 589 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_to_state; 

#line 4972 "rlparse.cpp"
} break;
case 94: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 591 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_to_state; 

#line 4981 "rlparse.cpp"
} break;
case 95: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 594 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_to_state; 

#line 4990 "rlparse.cpp"
} break;
case 96: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 596 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_to_state; 

#line 4999 "rlparse.cpp"
} break;
case 97: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 599 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_to_state; 

#line 5008 "rlparse.cpp"
} break;
case 98: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 601 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_to_state; 

#line 5017 "rlparse.cpp"
} break;
case 99: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 604 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_to_state; 

#line 5026 "rlparse.cpp"
} break;
case 100: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 606 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_to_state; 

#line 5035 "rlparse.cpp"
} break;
case 101: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 615 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_from_state; 

#line 5044 "rlparse.cpp"
} break;
case 102: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 617 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_from_state; 

#line 5053 "rlparse.cpp"
} break;
case 103: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 620 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_from_state; 

#line 5062 "rlparse.cpp"
} break;
case 104: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 622 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_from_state; 

#line 5071 "rlparse.cpp"
} break;
case 105: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 625 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_from_state; 

#line 5080 "rlparse.cpp"
} break;
case 106: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 627 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_from_state; 

#line 5089 "rlparse.cpp"
} break;
case 107: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 630 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_from_state; 

#line 5098 "rlparse.cpp"
} break;
case 108: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 632 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_from_state; 

#line 5107 "rlparse.cpp"
} break;
case 109: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 635 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_from_state; 

#line 5116 "rlparse.cpp"
} break;
case 110: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 637 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_from_state; 

#line 5125 "rlparse.cpp"
} break;
case 111: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 640 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_from_state; 

#line 5134 "rlparse.cpp"
} break;
case 112: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 642 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_from_state; 

#line 5143 "rlparse.cpp"
} break;
case 113: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 651 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_eof; 

#line 5152 "rlparse.cpp"
} break;
case 114: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 653 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_eof; 

#line 5161 "rlparse.cpp"
} break;
case 115: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 656 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_eof; 

#line 5170 "rlparse.cpp"
} break;
case 116: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 658 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_eof; 

#line 5179 "rlparse.cpp"
} break;
case 117: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 661 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_eof; 

#line 5188 "rlparse.cpp"
} break;
case 118: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 663 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_eof; 

#line 5197 "rlparse.cpp"
} break;
case 119: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 666 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_eof; 

#line 5206 "rlparse.cpp"
} break;
case 120: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 668 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_eof; 

#line 5215 "rlparse.cpp"
} break;
case 121: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 671 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_eof; 

#line 5224 "rlparse.cpp"
} break;
case 122: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 673 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_eof; 

#line 5233 "rlparse.cpp"
} break;
case 123: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 676 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_eof; 

#line 5242 "rlparse.cpp"
} break;
case 124: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 678 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_eof; 

#line 5251 "rlparse.cpp"
} break;
case 125: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 687 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_gbl_error; 

#line 5260 "rlparse.cpp"
} break;
case 126: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 689 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_gbl_error; 

#line 5269 "rlparse.cpp"
} break;
case 127: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 692 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_gbl_error; 

#line 5278 "rlparse.cpp"
} break;
case 128: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 694 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_gbl_error; 

#line 5287 "rlparse.cpp"
} break;
case 129: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 697 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_gbl_error; 

#line 5296 "rlparse.cpp"
} break;
case 130: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 699 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_gbl_error; 

#line 5305 "rlparse.cpp"
} break;
case 131: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 702 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_gbl_error; 

#line 5314 "rlparse.cpp"
} break;
case 132: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 704 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_gbl_error; 

#line 5323 "rlparse.cpp"
} break;
case 133: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 707 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_gbl_error; 

#line 5332 "rlparse.cpp"
} break;
case 134: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 709 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_gbl_error; 

#line 5341 "rlparse.cpp"
} break;
case 135: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 712 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_gbl_error; 

#line 5350 "rlparse.cpp"
} break;
case 136: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 714 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_gbl_error; 

#line 5359 "rlparse.cpp"
} break;
case 137: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 724 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_local_error; 

#line 5368 "rlparse.cpp"
} break;
case 138: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 726 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_start_local_error; 

#line 5377 "rlparse.cpp"
} break;
case 139: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 729 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_local_error; 

#line 5386 "rlparse.cpp"
} break;
case 140: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 731 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_start_local_error; 

#line 5395 "rlparse.cpp"
} break;
case 141: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 734 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_local_error; 

#line 5404 "rlparse.cpp"
} break;
case 142: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 736 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_all_local_error; 

#line 5413 "rlparse.cpp"
} break;
case 143: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 739 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_local_error; 

#line 5422 "rlparse.cpp"
} break;
case 144: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 741 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_final_local_error; 

#line 5431 "rlparse.cpp"
} break;
case 145: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 744 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_local_error; 

#line 5440 "rlparse.cpp"
} break;
case 146: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 746 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_not_final_local_error; 

#line 5449 "rlparse.cpp"
} break;
case 147: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 749 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_local_error; 

#line 5458 "rlparse.cpp"
} break;
case 148: {
Parser_Lel_aug_type *__ref0 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_aug_type *__ref2 = (Parser_Lel_aug_type*)&redLel->user.aug_type;
#line 751 "rlparse.kl"
 (__ref0)->loc = (__ref1)->loc; (__ref2)->augType = at_middle_local_error; 

#line 5467 "rlparse.cpp"
} break;
case 149: {
Parser_Lel_action_ref *__ref0 = (Parser_Lel_action_ref*)&redLel->user.action_ref;
Parser_Lel_action_ref *__ref1 = (Parser_Lel_action_ref*)&rhs[0]->user.action_ref;
#line 764 "rlparse.kl"
 (__ref0)->action = (__ref1)->action; 

#line 5475 "rlparse.cpp"
} break;
case 150: {
Parser_Lel_action_ref *__ref0 = (Parser_Lel_action_ref*)&redLel->user.action_ref;
Parser_Lel_action_ref *__ref1 = (Parser_Lel_action_ref*)&rhs[1]->user.action_ref;
#line 765 "rlparse.kl"
 (__ref0)->action = (__ref1)->action; 

#line 5483 "rlparse.cpp"
} break;
case 151: {
Parser_Lel_action_ref *__ref0 = (Parser_Lel_action_ref*)&redLel->user.action_ref;
Parser_Lel_action_ref *__ref1 = (Parser_Lel_action_ref*)&rhs[0]->user.action_ref;
#line 766 "rlparse.kl"
 (__ref0)->action = (__ref1)->action; 

#line 5491 "rlparse.cpp"
} break;
case 152: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Parser_Lel_action_ref *__ref1 = (Parser_Lel_action_ref*)&redLel->user.action_ref;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Token *__ref3 = (Token*)&rhs[0]->user.token;
Parser_Lel_action_ref *__ref4 = (Parser_Lel_action_ref*)&redLel->user.action_ref;
#line 771 "rlparse.kl"

		/* Set the name in the actionDict. */
		Action *action = pd->actionDict.find( (__ref0)->data );
		if ( action != 0 ) {
			/* Pass up the action element */
			(__ref1)->action = action;
		}
		else {
			/* Will recover by returning null as the action. */
			error((__ref2)->loc) << "action lookup of \"" << (__ref3)->data << "\" failed" << endl;
			(__ref4)->action = 0;
		}
	

#line 5514 "rlparse.cpp"
} break;
case 153: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Parser_Lel_inline_list *__ref1 = (Parser_Lel_inline_list*)&rhs[1]->user.inline_list;
Parser_Lel_action_ref *__ref2 = (Parser_Lel_action_ref*)&redLel->user.action_ref;
#line 788 "rlparse.kl"

		/* Create the action, add it to the list and pass up. */
		Action *newAction = new Action( (__ref0)->loc, 0, (__ref1)->inlineList, pd->nextCondId++ );
		pd->actionList.append( newAction );
		(__ref2)->action = newAction;
	

#line 5528 "rlparse.cpp"
} break;
case 154: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Parser_Lel_priority_name *__ref1 = (Parser_Lel_priority_name*)&redLel->user.priority_name;
#line 803 "rlparse.kl"

		// Lookup/create the priority key.
		PriorDictEl *priorDictEl;
		if ( pd->priorDict.insert( (__ref0)->data, pd->nextPriorKey, &priorDictEl ) )
			pd->nextPriorKey += 1;

		// Use the inserted/found priority key.
		(__ref1)->priorityName = priorDictEl->value;
	

#line 5544 "rlparse.cpp"
} break;
case 155: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_token_type *__ref2 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_priority_aug *__ref3 = (Parser_Lel_priority_aug*)&redLel->user.priority_aug;
Parser_Lel_token_type *__ref4 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_token_type *__ref5 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_priority_aug *__ref6 = (Parser_Lel_priority_aug*)&redLel->user.priority_aug;
Parser_Lel_priority_aug *__ref7 = (Parser_Lel_priority_aug*)&redLel->user.priority_aug;
#line 820 "rlparse.kl"

		// Convert the priority number to a long. Check for overflow.
		errno = 0;
		//cerr << "PRIOR AUG: " << $1->token.data << endl;
		long aug = strtol( (__ref0)->token.data, 0, 10 );
		if ( errno == ERANGE && aug == LONG_MAX ) {
			/* Priority number too large. Recover by setting the priority to 0. */
			error((__ref1)->token.loc) << "priority number " << (__ref2)->token.data << 
					" overflows" << endl;
			(__ref3)->priorityNum = 0;
		}
		else if ( errno == ERANGE && aug == LONG_MIN ) {
			/* Priority number too large in the neg. Recover by using 0. */
			error((__ref4)->token.loc) << "priority number " << (__ref5)->token.data << 
					" underflows" << endl;
			(__ref6)->priorityNum = 0;
		}
		else {
			/* No overflow or underflow. */
			(__ref7)->priorityNum = aug;
		}
	

#line 5579 "rlparse.cpp"
} break;
case 156: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 846 "rlparse.kl"

		(__ref0)->token = *(__ref1);
	

#line 5589 "rlparse.cpp"
} break;
case 157: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Parser_Lel_token_type *__ref3 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref4 = (Token*)&rhs[1]->user.token;
#line 850 "rlparse.kl"

		(__ref0)->token.set( "+", 1 );
		(__ref1)->token.loc = (__ref2)->loc;
		(__ref3)->token.append( *(__ref4) );
	

#line 5604 "rlparse.cpp"
} break;
case 158: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Parser_Lel_token_type *__ref3 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref4 = (Token*)&rhs[1]->user.token;
#line 856 "rlparse.kl"

		(__ref0)->token.set( "-", 1 );
		(__ref1)->token.loc = (__ref2)->loc;
		(__ref3)->token.append( *(__ref4) );
	

#line 5619 "rlparse.cpp"
} break;
case 159: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Parser_Lel_local_err_name *__ref1 = (Parser_Lel_local_err_name*)&redLel->user.local_err_name;
#line 868 "rlparse.kl"

		/* Lookup/create the priority key. */
		LocalErrDictEl *localErrDictEl;
		if ( pd->localErrDict.insert( (__ref0)->data, pd->nextLocalErrKey, &localErrDictEl ) )
			pd->nextLocalErrKey += 1;

		/* Use the inserted/found priority key. */
		(__ref1)->error_name = localErrDictEl->value;
	

#line 5635 "rlparse.cpp"
} break;
case 160: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
#line 889 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep, 
				0, 0, FactorWithRep::StarType );
	

#line 5647 "rlparse.cpp"
} break;
case 161: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
#line 894 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep, 
				0, 0, FactorWithRep::StarStarType );
	

#line 5659 "rlparse.cpp"
} break;
case 162: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
#line 899 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep, 
				0, 0, FactorWithRep::OptionalType );
	

#line 5671 "rlparse.cpp"
} break;
case 163: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
#line 904 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep, 
				0, 0, FactorWithRep::PlusType );
	

#line 5683 "rlparse.cpp"
} break;
case 164: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
Parser_Lel_factor_rep_num *__ref3 = (Parser_Lel_factor_rep_num*)&rhs[2]->user.factor_rep_num;
#line 909 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep, 
				(__ref3)->rep, 0, FactorWithRep::ExactType );
	

#line 5696 "rlparse.cpp"
} break;
case 165: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
Parser_Lel_factor_rep_num *__ref3 = (Parser_Lel_factor_rep_num*)&rhs[3]->user.factor_rep_num;
#line 914 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep, 
				0, (__ref3)->rep, FactorWithRep::MaxType );
	

#line 5709 "rlparse.cpp"
} break;
case 166: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
Parser_Lel_factor_rep_num *__ref3 = (Parser_Lel_factor_rep_num*)&rhs[2]->user.factor_rep_num;
#line 919 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep,
				(__ref3)->rep, 0, FactorWithRep::MinType );
	

#line 5722 "rlparse.cpp"
} break;
case 167: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Parser_Lel_factor_with_rep *__ref2 = (Parser_Lel_factor_with_rep*)&rhs[0]->user.factor_with_rep;
Parser_Lel_factor_rep_num *__ref3 = (Parser_Lel_factor_rep_num*)&rhs[2]->user.factor_rep_num;
Parser_Lel_factor_rep_num *__ref4 = (Parser_Lel_factor_rep_num*)&rhs[4]->user.factor_rep_num;
#line 924 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->loc, (__ref2)->factorWithRep, 
				(__ref3)->rep, (__ref4)->rep, FactorWithRep::RangeType );
	

#line 5736 "rlparse.cpp"
} break;
case 168: {
Parser_Lel_factor_with_rep *__ref0 = (Parser_Lel_factor_with_rep*)&redLel->user.factor_with_rep;
Parser_Lel_factor_with_neg *__ref1 = (Parser_Lel_factor_with_neg*)&rhs[0]->user.factor_with_neg;
#line 929 "rlparse.kl"

		(__ref0)->factorWithRep = new FactorWithRep( (__ref1)->factorWithNeg );
	

#line 5746 "rlparse.cpp"
} break;
case 169: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Parser_Lel_factor_rep_num *__ref3 = (Parser_Lel_factor_rep_num*)&redLel->user.factor_rep_num;
Parser_Lel_factor_rep_num *__ref4 = (Parser_Lel_factor_rep_num*)&redLel->user.factor_rep_num;
#line 939 "rlparse.kl"

		// Convert the priority number to a long. Check for overflow.
		errno = 0;
		long rep = strtol( (__ref0)->data, 0, 10 );
		if ( errno == ERANGE && rep == LONG_MAX ) {
			// Repetition too large. Recover by returing repetition 1. */
			error((__ref1)->loc) << "repetition number " << (__ref2)->data << " overflows" << endl;
			(__ref3)->rep = 1;
		}
		else {
			// Cannot be negative, so no overflow.
			(__ref4)->rep = rep;
 		}
	

#line 5770 "rlparse.cpp"
} break;
case 170: {
Parser_Lel_factor_with_neg *__ref0 = (Parser_Lel_factor_with_neg*)&redLel->user.factor_with_neg;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_factor_with_neg *__ref2 = (Parser_Lel_factor_with_neg*)&rhs[1]->user.factor_with_neg;
#line 965 "rlparse.kl"

		(__ref0)->factorWithNeg = new FactorWithNeg( (__ref1)->loc,
				(__ref2)->factorWithNeg, FactorWithNeg::NegateType );
	

#line 5782 "rlparse.cpp"
} break;
case 171: {
Parser_Lel_factor_with_neg *__ref0 = (Parser_Lel_factor_with_neg*)&redLel->user.factor_with_neg;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_factor_with_neg *__ref2 = (Parser_Lel_factor_with_neg*)&rhs[1]->user.factor_with_neg;
#line 970 "rlparse.kl"

		(__ref0)->factorWithNeg = new FactorWithNeg( (__ref1)->loc,
				(__ref2)->factorWithNeg, FactorWithNeg::CharNegateType );
	

#line 5794 "rlparse.cpp"
} break;
case 172: {
Parser_Lel_factor_with_neg *__ref0 = (Parser_Lel_factor_with_neg*)&redLel->user.factor_with_neg;
Parser_Lel_factor *__ref1 = (Parser_Lel_factor*)&rhs[0]->user.factor;
#line 975 "rlparse.kl"

		(__ref0)->factorWithNeg = new FactorWithNeg( (__ref1)->factor );
	

#line 5804 "rlparse.cpp"
} break;
case 173: {
Parser_Lel_factor *__ref0 = (Parser_Lel_factor*)&redLel->user.factor;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 985 "rlparse.kl"

		/* Create a new factor node going to a concat literal. */
		(__ref0)->factor = new Factor( new Literal( *(__ref1), Literal::LitString ) );
	

#line 5815 "rlparse.cpp"
} break;
case 174: {
Parser_Lel_factor *__ref0 = (Parser_Lel_factor*)&redLel->user.factor;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
#line 990 "rlparse.kl"

		/* Create a new factor node going to a literal number. */
		(__ref0)->factor = new Factor( new Literal( (__ref1)->token, Literal::Number ) );
	

#line 5826 "rlparse.cpp"
} break;
case 175: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Parser_Lel_factor *__ref3 = (Parser_Lel_factor*)&redLel->user.factor;
Token *__ref4 = (Token*)&rhs[0]->user.token;
Parser_Lel_factor *__ref5 = (Parser_Lel_factor*)&redLel->user.factor;
Parser_Lel_factor *__ref6 = (Parser_Lel_factor*)&redLel->user.factor;
Token *__ref7 = (Token*)&rhs[0]->user.token;
#line 995 "rlparse.kl"

		/* Find the named graph. */
		GraphDictEl *gdNode = pd->graphDict.find( (__ref0)->data );
		if ( gdNode == 0 ) {
			/* Recover by returning null as the factor node. */
			error((__ref1)->loc) << "graph lookup of \"" << (__ref2)->data << "\" failed" << endl;
			(__ref3)->factor = 0;
		}
		else if ( gdNode->isInstance ) {
			/* Recover by retuning null as the factor node. */
			error((__ref4)->loc) << "references to graph instantiations not allowed "
					"in expressions" << endl;
			(__ref5)->factor = 0;
		}
		else {
			/* Create a factor node that is a lookup of an expression. */
			(__ref6)->factor = new Factor( (__ref7)->loc, gdNode->value );
		}
	

#line 5858 "rlparse.cpp"
} break;
case 176: {
Parser_Lel_factor *__ref0 = (Parser_Lel_factor*)&redLel->user.factor;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_regular_expr_or_data *__ref2 = (Parser_Lel_regular_expr_or_data*)&rhs[1]->user.regular_expr_or_data;
#line 1015 "rlparse.kl"

		/* Create a new factor node going to an OR expression. */
		(__ref0)->factor = new Factor( new ReItem( (__ref1)->loc, (__ref2)->reOrBlock, ReItem::OrBlock ) );
	

#line 5870 "rlparse.cpp"
} break;
case 177: {
Parser_Lel_factor *__ref0 = (Parser_Lel_factor*)&redLel->user.factor;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_regular_expr_or_data *__ref2 = (Parser_Lel_regular_expr_or_data*)&rhs[1]->user.regular_expr_or_data;
#line 1020 "rlparse.kl"

		/* Create a new factor node going to a negated OR expression. */
		(__ref0)->factor = new Factor( new ReItem( (__ref1)->loc, (__ref2)->reOrBlock, ReItem::NegOrBlock ) );
	

#line 5882 "rlparse.cpp"
} break;
case 178: {
Token *__ref0 = (Token*)&rhs[2]->user.token;
Token *__ref1 = (Token*)&rhs[2]->user.token;
Parser_Lel_regular_expr *__ref2 = (Parser_Lel_regular_expr*)&rhs[1]->user.regular_expr;
Parser_Lel_factor *__ref3 = (Parser_Lel_factor*)&redLel->user.factor;
Parser_Lel_regular_expr *__ref4 = (Parser_Lel_regular_expr*)&rhs[1]->user.regular_expr;
#line 1025 "rlparse.kl"

		if ( (__ref0)->length > 1 ) {
			for ( char *p = (__ref1)->data; *p != 0; p++ ) {
				if ( *p == 'i' )
					(__ref2)->regExpr->caseInsensitive = true;
			}
		}

		/* Create a new factor node going to a regular exp. */
		(__ref3)->factor = new Factor( (__ref4)->regExpr );
	

#line 5903 "rlparse.cpp"
} break;
case 179: {
Parser_Lel_factor *__ref0 = (Parser_Lel_factor*)&redLel->user.factor;
Parser_Lel_range_lit *__ref1 = (Parser_Lel_range_lit*)&rhs[0]->user.range_lit;
Parser_Lel_range_lit *__ref2 = (Parser_Lel_range_lit*)&rhs[2]->user.range_lit;
#line 1037 "rlparse.kl"

		/* Create a new factor node going to a range. */
		(__ref0)->factor = new Factor( new Range( (__ref1)->literal, (__ref2)->literal ) );
	

#line 5915 "rlparse.cpp"
} break;
case 180: {
Parser_Lel_factor *__ref0 = (Parser_Lel_factor*)&redLel->user.factor;
Parser_Lel_join *__ref1 = (Parser_Lel_join*)&rhs[1]->user.join;
Parser_Lel_join *__ref2 = (Parser_Lel_join*)&rhs[1]->user.join;
Token *__ref3 = (Token*)&rhs[0]->user.token;
#line 1042 "rlparse.kl"

		/* Create a new factor going to a parenthesized join. */
		(__ref0)->factor = new Factor( (__ref1)->join );
		(__ref2)->join->loc = (__ref3)->loc;
	

#line 5929 "rlparse.cpp"
} break;
case 181: {
Parser_Lel_range_lit *__ref0 = (Parser_Lel_range_lit*)&redLel->user.range_lit;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1055 "rlparse.kl"

		/* Range literas must have only one char. We restrict this in the parse tree. */
		(__ref0)->literal = new Literal( *(__ref1), Literal::LitString );
	

#line 5940 "rlparse.cpp"
} break;
case 182: {
Parser_Lel_range_lit *__ref0 = (Parser_Lel_range_lit*)&redLel->user.range_lit;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
#line 1060 "rlparse.kl"

		/* Create a new literal number. */
		(__ref0)->literal = new Literal( (__ref1)->token, Literal::Number );
	

#line 5951 "rlparse.cpp"
} break;
case 183: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1069 "rlparse.kl"
 
		(__ref0)->token = *(__ref1);
	

#line 5961 "rlparse.cpp"
} break;
case 184: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Parser_Lel_token_type *__ref3 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref4 = (Token*)&rhs[1]->user.token;
#line 1073 "rlparse.kl"
 
		(__ref0)->token.set( "-", 1 );
		(__ref1)->token.loc = (__ref2)->loc;
		(__ref3)->token.append( *(__ref4) );
	

#line 5976 "rlparse.cpp"
} break;
case 185: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1079 "rlparse.kl"
 
		(__ref0)->token = *(__ref1);
	

#line 5986 "rlparse.cpp"
} break;
case 186: {
Parser_Lel_regular_expr_item *__ref0 = (Parser_Lel_regular_expr_item*)&rhs[1]->user.regular_expr_item;
Parser_Lel_regular_expr_item *__ref1 = (Parser_Lel_regular_expr_item*)&rhs[1]->user.regular_expr_item;
Parser_Lel_regular_expr *__ref2 = (Parser_Lel_regular_expr*)&rhs[0]->user.regular_expr;
Parser_Lel_regular_expr *__ref3 = (Parser_Lel_regular_expr*)&rhs[0]->user.regular_expr;
Parser_Lel_regular_expr *__ref4 = (Parser_Lel_regular_expr*)&rhs[0]->user.regular_expr;
Parser_Lel_regular_expr *__ref5 = (Parser_Lel_regular_expr*)&rhs[0]->user.regular_expr;
Parser_Lel_regular_expr_item *__ref6 = (Parser_Lel_regular_expr_item*)&rhs[1]->user.regular_expr_item;
Parser_Lel_regular_expr_item *__ref7 = (Parser_Lel_regular_expr_item*)&rhs[1]->user.regular_expr_item;
Parser_Lel_regular_expr *__ref8 = (Parser_Lel_regular_expr*)&redLel->user.regular_expr;
Parser_Lel_regular_expr *__ref9 = (Parser_Lel_regular_expr*)&rhs[0]->user.regular_expr;
Parser_Lel_regular_expr *__ref10 = (Parser_Lel_regular_expr*)&redLel->user.regular_expr;
Parser_Lel_regular_expr *__ref11 = (Parser_Lel_regular_expr*)&rhs[0]->user.regular_expr;
Parser_Lel_regular_expr_item *__ref12 = (Parser_Lel_regular_expr_item*)&rhs[1]->user.regular_expr_item;
#line 1094 "rlparse.kl"

		/* An optimization to lessen the tree size. If a non-starred char is
		 * directly under the left side on the right and the right side is
		 * another non-starred char then paste them together and return the
		 * left side. Otherwise just put the two under a new reg exp node. */
		if ( (__ref0)->reItem->type == ReItem::Data && !(__ref1)->reItem->star &&
			(__ref2)->regExpr->type == RegExpr::RecurseItem &&
			(__ref3)->regExpr->item->type == ReItem::Data && !(__ref4)->regExpr->item->star )
		{
			/* Append the right side to the right side of the left and toss the
			 * right side. */
			(__ref5)->regExpr->item->token.append( (__ref6)->reItem->token );
			delete (__ref7)->reItem;
			(__ref8)->regExpr = (__ref9)->regExpr;
		}
		else {
			(__ref10)->regExpr = new RegExpr( (__ref11)->regExpr, (__ref12)->reItem );
		}
	

#line 6023 "rlparse.cpp"
} break;
case 187: {
Parser_Lel_regular_expr *__ref0 = (Parser_Lel_regular_expr*)&redLel->user.regular_expr;
#line 1114 "rlparse.kl"

		/* Can't optimize the tree. */
		(__ref0)->regExpr = new RegExpr();
	

#line 6033 "rlparse.cpp"
} break;
case 188: {
Parser_Lel_regular_expr_char *__ref0 = (Parser_Lel_regular_expr_char*)&rhs[0]->user.regular_expr_char;
Parser_Lel_regular_expr_item *__ref1 = (Parser_Lel_regular_expr_item*)&redLel->user.regular_expr_item;
Parser_Lel_regular_expr_char *__ref2 = (Parser_Lel_regular_expr_char*)&rhs[0]->user.regular_expr_char;
#line 1126 "rlparse.kl"

		(__ref0)->reItem->star = true;
		(__ref1)->reItem = (__ref2)->reItem;
	

#line 6045 "rlparse.cpp"
} break;
case 189: {
Parser_Lel_regular_expr_item *__ref0 = (Parser_Lel_regular_expr_item*)&redLel->user.regular_expr_item;
Parser_Lel_regular_expr_char *__ref1 = (Parser_Lel_regular_expr_char*)&rhs[0]->user.regular_expr_char;
#line 1131 "rlparse.kl"

		(__ref0)->reItem = (__ref1)->reItem;
	

#line 6055 "rlparse.cpp"
} break;
case 190: {
Parser_Lel_regular_expr_char *__ref0 = (Parser_Lel_regular_expr_char*)&redLel->user.regular_expr_char;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_regular_expr_or_data *__ref2 = (Parser_Lel_regular_expr_or_data*)&rhs[1]->user.regular_expr_or_data;
#line 1143 "rlparse.kl"

		(__ref0)->reItem = new ReItem( (__ref1)->loc, (__ref2)->reOrBlock, ReItem::OrBlock );
	

#line 6066 "rlparse.cpp"
} break;
case 191: {
Parser_Lel_regular_expr_char *__ref0 = (Parser_Lel_regular_expr_char*)&redLel->user.regular_expr_char;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_regular_expr_or_data *__ref2 = (Parser_Lel_regular_expr_or_data*)&rhs[1]->user.regular_expr_or_data;
#line 1147 "rlparse.kl"

		(__ref0)->reItem = new ReItem( (__ref1)->loc, (__ref2)->reOrBlock, ReItem::NegOrBlock );
	

#line 6077 "rlparse.cpp"
} break;
case 192: {
Parser_Lel_regular_expr_char *__ref0 = (Parser_Lel_regular_expr_char*)&redLel->user.regular_expr_char;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1151 "rlparse.kl"

		(__ref0)->reItem = new ReItem( (__ref1)->loc, ReItem::Dot );
	

#line 6087 "rlparse.cpp"
} break;
case 193: {
Parser_Lel_regular_expr_char *__ref0 = (Parser_Lel_regular_expr_char*)&redLel->user.regular_expr_char;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Token *__ref2 = (Token*)&rhs[0]->user.token;
#line 1155 "rlparse.kl"

		(__ref0)->reItem = new ReItem( (__ref1)->loc, *(__ref2) );
	

#line 6098 "rlparse.cpp"
} break;
case 194: {
Parser_Lel_regular_expr_or_char *__ref0 = (Parser_Lel_regular_expr_or_char*)&rhs[1]->user.regular_expr_or_char;
Parser_Lel_regular_expr_or_data *__ref1 = (Parser_Lel_regular_expr_or_data*)&rhs[0]->user.regular_expr_or_data;
Parser_Lel_regular_expr_or_data *__ref2 = (Parser_Lel_regular_expr_or_data*)&rhs[0]->user.regular_expr_or_data;
Parser_Lel_regular_expr_or_data *__ref3 = (Parser_Lel_regular_expr_or_data*)&rhs[0]->user.regular_expr_or_data;
Parser_Lel_regular_expr_or_char *__ref4 = (Parser_Lel_regular_expr_or_char*)&rhs[1]->user.regular_expr_or_char;
Parser_Lel_regular_expr_or_char *__ref5 = (Parser_Lel_regular_expr_or_char*)&rhs[1]->user.regular_expr_or_char;
Parser_Lel_regular_expr_or_data *__ref6 = (Parser_Lel_regular_expr_or_data*)&redLel->user.regular_expr_or_data;
Parser_Lel_regular_expr_or_data *__ref7 = (Parser_Lel_regular_expr_or_data*)&rhs[0]->user.regular_expr_or_data;
Parser_Lel_regular_expr_or_data *__ref8 = (Parser_Lel_regular_expr_or_data*)&redLel->user.regular_expr_or_data;
Parser_Lel_regular_expr_or_data *__ref9 = (Parser_Lel_regular_expr_or_data*)&rhs[0]->user.regular_expr_or_data;
Parser_Lel_regular_expr_or_char *__ref10 = (Parser_Lel_regular_expr_or_char*)&rhs[1]->user.regular_expr_or_char;
#line 1167 "rlparse.kl"

		/* An optimization to lessen the tree size. If an or char is directly
		 * under the left side on the right and the right side is another or
		 * char then paste them together and return the left side. Otherwise
		 * just put the two under a new or data node. */
		if ( (__ref0)->reOrItem->type == ReOrItem::Data &&
				(__ref1)->reOrBlock->type == ReOrBlock::RecurseItem &&
				(__ref2)->reOrBlock->item->type == ReOrItem::Data )
		{
			/* Append the right side to right side of the left and toss the
			 * right side. */
			(__ref3)->reOrBlock->item->token.append( (__ref4)->reOrItem->token );
			delete (__ref5)->reOrItem;
			(__ref6)->reOrBlock = (__ref7)->reOrBlock;
		}
		else {
			/* Can't optimize, put the left and right under a new node. */
			(__ref8)->reOrBlock = new ReOrBlock( (__ref9)->reOrBlock, (__ref10)->reOrItem );
		}
	

#line 6134 "rlparse.cpp"
} break;
case 195: {
Parser_Lel_regular_expr_or_data *__ref0 = (Parser_Lel_regular_expr_or_data*)&redLel->user.regular_expr_or_data;
#line 1188 "rlparse.kl"

		(__ref0)->reOrBlock = new ReOrBlock();
	

#line 6143 "rlparse.cpp"
} break;
case 196: {
Parser_Lel_regular_expr_or_char *__ref0 = (Parser_Lel_regular_expr_or_char*)&redLel->user.regular_expr_or_char;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Token *__ref2 = (Token*)&rhs[0]->user.token;
#line 1200 "rlparse.kl"

		(__ref0)->reOrItem = new ReOrItem( (__ref1)->loc, *(__ref2) );
	

#line 6154 "rlparse.cpp"
} break;
case 197: {
Parser_Lel_regular_expr_or_char *__ref0 = (Parser_Lel_regular_expr_or_char*)&redLel->user.regular_expr_or_char;
Token *__ref1 = (Token*)&rhs[1]->user.token;
Token *__ref2 = (Token*)&rhs[0]->user.token;
Token *__ref3 = (Token*)&rhs[2]->user.token;
#line 1204 "rlparse.kl"

		(__ref0)->reOrItem = new ReOrItem( (__ref1)->loc, (__ref2)->data[0], (__ref3)->data[0] );
	

#line 6166 "rlparse.cpp"
} break;
case 198: {
Parser_Lel_inline_list *__ref0 = (Parser_Lel_inline_list*)&redLel->user.inline_list;
Parser_Lel_inline_list *__ref1 = (Parser_Lel_inline_list*)&rhs[0]->user.inline_list;
Parser_Lel_inline_list *__ref2 = (Parser_Lel_inline_list*)&redLel->user.inline_list;
Parser_Lel_inline_item *__ref3 = (Parser_Lel_inline_item*)&rhs[1]->user.inline_item;
#line 1221 "rlparse.kl"

		/* Append the item to the list, return the list. */
		(__ref0)->inlineList = (__ref1)->inlineList;
		(__ref2)->inlineList->append( (__ref3)->inlineItem );
	

#line 6180 "rlparse.cpp"
} break;
case 199: {
Parser_Lel_inline_list *__ref0 = (Parser_Lel_inline_list*)&redLel->user.inline_list;
#line 1228 "rlparse.kl"

		/* Start with empty list. */
		(__ref0)->inlineList = new InlineList;
	

#line 6190 "rlparse.cpp"
} break;
case 200: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_token_type *__ref2 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
#line 1243 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->token.loc, (__ref2)->token.data, InlineItem::Text );
	

#line 6201 "rlparse.cpp"
} break;
case 201: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_token_type *__ref2 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
#line 1249 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->token.loc, (__ref2)->token.data, InlineItem::Text );
	

#line 6212 "rlparse.cpp"
} break;
case 202: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_inline_item *__ref1 = (Parser_Lel_inline_item*)&rhs[0]->user.inline_item;
#line 1255 "rlparse.kl"

		/* Pass the inline item up. */
		(__ref0)->inlineItem = (__ref1)->inlineItem;
	

#line 6223 "rlparse.cpp"
} break;
case 203: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1262 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6231 "rlparse.cpp"
} break;
case 204: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1263 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6239 "rlparse.cpp"
} break;
case 205: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1264 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6247 "rlparse.cpp"
} break;
case 206: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1265 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6255 "rlparse.cpp"
} break;
case 207: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1266 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6263 "rlparse.cpp"
} break;
case 208: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1267 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6271 "rlparse.cpp"
} break;
case 209: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_inline_item *__ref1 = (Parser_Lel_inline_item*)&rhs[0]->user.inline_item;
#line 1271 "rlparse.kl"

		/* Pass up interpreted items of inline expressions. */
		(__ref0)->inlineItem = (__ref1)->inlineItem;
	

#line 6282 "rlparse.cpp"
} break;
case 210: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1276 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::Hold );
	

#line 6292 "rlparse.cpp"
} break;
case 211: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_inline_item *__ref2 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_inline_list *__ref3 = (Parser_Lel_inline_list*)&rhs[1]->user.inline_list;
#line 1280 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::Exec );
		(__ref2)->inlineItem->children = (__ref3)->inlineList;
	

#line 6305 "rlparse.cpp"
} break;
case 212: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1285 "rlparse.kl"
 
		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, 
				new NameRef(nameRef), InlineItem::Goto );
	

#line 6316 "rlparse.cpp"
} break;
case 213: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_inline_item *__ref2 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_inline_list *__ref3 = (Parser_Lel_inline_list*)&rhs[2]->user.inline_list;
#line 1290 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::GotoExpr );
		(__ref2)->inlineItem->children = (__ref3)->inlineList;
	

#line 6329 "rlparse.cpp"
} break;
case 214: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1295 "rlparse.kl"
 
		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, new NameRef(nameRef), InlineItem::Next );
	

#line 6339 "rlparse.cpp"
} break;
case 215: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_inline_item *__ref2 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_inline_list *__ref3 = (Parser_Lel_inline_list*)&rhs[2]->user.inline_list;
#line 1299 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::NextExpr );
		(__ref2)->inlineItem->children = (__ref3)->inlineList;
	

#line 6352 "rlparse.cpp"
} break;
case 216: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1304 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, new NameRef(nameRef), InlineItem::Call );
	

#line 6362 "rlparse.cpp"
} break;
case 217: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
Parser_Lel_inline_item *__ref2 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_inline_list *__ref3 = (Parser_Lel_inline_list*)&rhs[2]->user.inline_list;
#line 1308 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::CallExpr );
		(__ref2)->inlineItem->children = (__ref3)->inlineList;
	

#line 6375 "rlparse.cpp"
} break;
case 218: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1313 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::Ret );
	

#line 6385 "rlparse.cpp"
} break;
case 219: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1317 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::Break );
	

#line 6395 "rlparse.cpp"
} break;
case 220: {
Parser_Lel_inline_list *__ref0 = (Parser_Lel_inline_list*)&redLel->user.inline_list;
Parser_Lel_inline_list *__ref1 = (Parser_Lel_inline_list*)&rhs[0]->user.inline_list;
Parser_Lel_inline_list *__ref2 = (Parser_Lel_inline_list*)&redLel->user.inline_list;
Parser_Lel_inline_item *__ref3 = (Parser_Lel_inline_item*)&rhs[1]->user.inline_item;
#line 1325 "rlparse.kl"

		(__ref0)->inlineList = (__ref1)->inlineList;
		(__ref2)->inlineList->append( (__ref3)->inlineItem );
	

#line 6408 "rlparse.cpp"
} break;
case 221: {
Parser_Lel_inline_list *__ref0 = (Parser_Lel_inline_list*)&redLel->user.inline_list;
#line 1330 "rlparse.kl"

		/* Init the list used for this expr. */
		(__ref0)->inlineList = new InlineList;
	

#line 6418 "rlparse.cpp"
} break;
case 222: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_token_type *__ref2 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
#line 1339 "rlparse.kl"

		/* Return a text segment. */
		(__ref0)->inlineItem = new InlineItem( (__ref1)->token.loc, (__ref2)->token.data, InlineItem::Text );
	

#line 6430 "rlparse.cpp"
} break;
case 223: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_token_type *__ref1 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
Parser_Lel_token_type *__ref2 = (Parser_Lel_token_type*)&rhs[0]->user.token_type;
#line 1345 "rlparse.kl"

		/* Return a text segment, must heap alloc the text. */
		(__ref0)->inlineItem = new InlineItem( (__ref1)->token.loc, (__ref2)->token.data, InlineItem::Text );
	

#line 6442 "rlparse.cpp"
} break;
case 224: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Parser_Lel_inline_item *__ref1 = (Parser_Lel_inline_item*)&rhs[0]->user.inline_item;
#line 1351 "rlparse.kl"

		/* Pass the inline item up. */
		(__ref0)->inlineItem = (__ref1)->inlineItem;
	

#line 6453 "rlparse.cpp"
} break;
case 237: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1381 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::PChar );
	

#line 6463 "rlparse.cpp"
} break;
case 238: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1386 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::Char );
	

#line 6473 "rlparse.cpp"
} break;
case 239: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1391 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::Curs );
	

#line 6483 "rlparse.cpp"
} break;
case 240: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1396 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, InlineItem::Targs );
	

#line 6493 "rlparse.cpp"
} break;
case 241: {
Parser_Lel_inline_item *__ref0 = (Parser_Lel_inline_item*)&redLel->user.inline_item;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1401 "rlparse.kl"

		(__ref0)->inlineItem = new InlineItem( (__ref1)->loc, 
			new NameRef(nameRef), InlineItem::Entry );
	

#line 6504 "rlparse.cpp"
} break;
case 243: {
#line 1412 "rlparse.kl"

		nameRef.empty();
	

#line 6512 "rlparse.cpp"
} break;
case 245: {
#line 1422 "rlparse.kl"

		/* Insert an initial null pointer val to indicate the existence of the
		 * initial name seperator. */
		nameRef.setAs( 0 );
	

#line 6522 "rlparse.cpp"
} break;
case 246: {
#line 1428 "rlparse.kl"

		nameRef.empty();
	

#line 6530 "rlparse.cpp"
} break;
case 247: {
Token *__ref0 = (Token*)&rhs[2]->user.token;
#line 1435 "rlparse.kl"

		nameRef.append( (__ref0)->data );
	

#line 6539 "rlparse.cpp"
} break;
case 248: {
Token *__ref0 = (Token*)&rhs[0]->user.token;
#line 1440 "rlparse.kl"

		nameRef.append( (__ref0)->data );
	

#line 6548 "rlparse.cpp"
} break;
}
			}

			if ( lel->child != 0 ) {
				struct Parser_LangEl *first = lel->child;
				struct Parser_LangEl *child = lel->child;
				lel->child = 0;
				while ( 1 ) {
					if ( child->type < 226 ) {
					}
					else {
					}
					numNodes -= 1;
					if ( child->next == 0 )
						break;
					child = child->next;
				}
				child->next = pool;
				pool = first;
			}
		}

commit_base:
		if ( sp > 0 ) {
			sp -= 1;
			if ( lel->retry == 0 ) {
				lel = lel->prev;
				goto commit_reverse;
			}
			else {
				lel->retry = 0;
				lel = lel->prev;
				goto commit_upwards;
			}
		}
		lel->retry = 0;

		lastFinal = lel;
		numRetry = 0;
	}

	if ( *action & 0x2 ) {
		int reduction = *action >> 2;
		struct Parser_LangEl *redLel;

		if ( input != 0 )
			input->causeReduce += 1;

	if ( pool == 0 ) {
		if ( freshPos == 8128 ) {
			struct Parser_Block* newBlock  = (struct Parser_Block*) malloc( sizeof(struct Parser_Block) );
			newBlock->next = block;
			block = newBlock;
			freshEl = newBlock->data;
			#ifdef KELBT_LOG_ACTIONS
			cerr << "allocating 8128 LangEls" << endl;
			#endif
			freshPos = 0;
		}
		redLel = freshEl + freshPos++;
	}
	else {
		redLel = pool;
		pool = pool->next;
	}
	numNodes += 1;

		redLel->type = Parser_prodLhsIds[reduction];
		redLel->reduction = reduction;
		redLel->child = 0;
		redLel->next = 0;
		redLel->retry = (lel->retry << 16);
		redLel->causeReduce = 0;
		lel->retry &= 0xffff0000;

		rhsLen = Parser_prodLengths[reduction];
		if ( rhsLen > 0 ) {
			int r;
			for ( r = rhsLen-1; r > 0; r-- ) {
				rhs[r] = stackTop;
				stackTop = stackTop->next;
			}
			rhs[0] = stackTop;
			stackTop = stackTop->next;
			rhs[0]->next = 0;
		}
switch ( reduction ) {
case 225: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1358 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6643 "rlparse.cpp"
} break;
case 226: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1359 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6651 "rlparse.cpp"
} break;
case 227: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1360 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6659 "rlparse.cpp"
} break;
case 228: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1361 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6667 "rlparse.cpp"
} break;
case 229: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1362 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6675 "rlparse.cpp"
} break;
case 230: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1363 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6683 "rlparse.cpp"
} break;
case 231: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1364 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6691 "rlparse.cpp"
} break;
case 232: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1371 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6699 "rlparse.cpp"
} break;
case 233: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1372 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6707 "rlparse.cpp"
} break;
case 234: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1373 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6715 "rlparse.cpp"
} break;
case 235: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1374 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6723 "rlparse.cpp"
} break;
case 236: {
Parser_Lel_token_type *__ref0 = (Parser_Lel_token_type*)&redLel->user.token_type;
Token *__ref1 = (Token*)&rhs[0]->user.token;
#line 1375 "rlparse.kl"
 (__ref0)->token = *(__ref1); 

#line 6731 "rlparse.cpp"
} break;
}
		#ifdef KELBT_LOG_ACTIONS
		cerr << "reduced: "
				<< Parser_prodNames[reduction]
				<< " rhsLen: " << rhsLen;
		#endif
		if ( action[1] == 0 )
			redLel->retry = 0;
		else {
			redLel->retry += 0x10000;
			numRetry += 1;
			#ifdef KELBT_LOG_ACTIONS
			cerr << " retry: " << redLel;
			#endif
		}

		#ifdef KELBT_LOG_ACTIONS
		cerr << endl;
		#endif

		if ( rhsLen == 0 ) {
			redLel->file = lel->file;
			redLel->line = lel->line;
			targState = curs;
		}
		else {
			redLel->child = rhs[rhsLen-1];
			redLel->file = rhs[0]->file;
			redLel->line = rhs[0]->line;
			targState = rhs[0]->state;
		}

		if ( induceReject ) {
			#ifdef KELBT_LOG_ACTIONS
			cerr << "error induced during reduction of " <<
					Parser_lelNames[redLel->type] << endl;
			#endif
			redLel->state = curs;
			redLel->next = stackTop;
			stackTop = redLel;
			curs = targState;
			goto parseError;
		}
		else {
			redLel->next = input;
			input = redLel;
		}
	}


	curs = targState;
	goto again;

parseError:
	#ifdef KELBT_LOG_BACKTRACK
	cerr << "hit error" << endl;
	#endif
	if ( numRetry > 0 ) {
		struct Parser_LangEl *redLel;

		if ( input != 0 ) {
			redLel = input;
			goto have_undo_element;
		}

		while ( 1 ) {
			redLel = stackTop;
			if ( stackTop->type < 226 ) {
				#ifdef KELBT_LOG_BACKTRACK
				cerr << "backing up over terminal: " <<
						Parser_lelNames[stackTop->type] << endl;
				#endif
				stackTop = stackTop->next;
				redLel->next = input;
				input = redLel;
			}
			else {
				#ifdef KELBT_LOG_BACKTRACK
				cerr << "backing up over non-terminal: " <<
						Parser_lelNames[stackTop->type] << endl;
				#endif
				stackTop = stackTop->next;
				struct Parser_LangEl *first = redLel->child;
				if ( first == 0 )
					rhsLen = 0;
				else {
					rhsLen = 1;
					while ( first->next != 0 ) {
						first = first->next;
						rhsLen += 1;
					}
					first->next = stackTop;
					stackTop = redLel->child;

					struct Parser_LangEl *rhsEl = stackTop;
					int p = rhsLen;
					while ( p > 0 ) {
						rhs[--p] = rhsEl;
						rhsEl = rhsEl->next;
					}
				}
				redLel->next = pool;
				pool = redLel;
				numNodes -= 1;

				if ( input != 0 )
					input->causeReduce -= 1;
			}

have_undo_element:
			if ( redLel->retry == 0 ) {
				if ( input != 0 && input->causeReduce == 0 ) {
					#ifdef KELBT_LOG_BACKTRACK
					cerr << "pushing back: " << Parser_lelNames[input->type] << endl;
					#endif
					input->next = queue;
					queue = input;
					input = 0;
				}
			}
			else {
				#ifdef KELBT_LOG_BACKTRACK
				cerr << "found retry targ: " << redLel << endl;
				#endif
				numRetry -= 1;
				#ifdef KELBT_LOG_BACKTRACK
				cerr << "found retry: " << redLel << endl;
				#endif
				if ( redLel->retry & 0x0000ffff )
					curs = input->state;
				else {
					input->retry = redLel->retry >> 16;
					if ( stackTop->state < 0 )
						curs = Parser_startState;
					else {
						curs = Parser_targs[(int)Parser_indicies[Parser_offsets[stackTop->state] + (stackTop->type - Parser_keys[stackTop->state<<1])]];
					}
				}
				goto again;
			}
		}
	}
	curs = -1;
	errCount += 1;
_out: {}
#line 1459 "rlparse.kl"
	return errCount == 0 ? 0 : -1;
}

void Parser::tryMachineDef( InputLoc &loc, char *name, 
		MachineDef *machineDef, bool isInstance )
{
	GraphDictEl *newEl = pd->graphDict.insert( name );
	if ( newEl != 0 ) {
		/* New element in the dict, all good. */
		newEl->value = new VarDef( name, machineDef );
		newEl->isInstance = isInstance;
		newEl->loc = loc;
		newEl->value->isExport = exportContext[exportContext.length()-1];

		/* It it is an instance, put on the instance list. */
		if ( isInstance )
			pd->instanceList.append( newEl );
	}
	else {
		// Recover by ignoring the duplicate.
		error(loc) << "fsm \"" << name << "\" previously defined" << endl;
	}
}

ostream &Parser::parse_error( int tokId, Token &token )
{
	/* Maintain the error count. */
	gblErrorCount += 1;

	cerr << token.loc << ": ";
	cerr << "at token ";
	if ( tokId < 128 )
		cerr << "\"" << Parser_lelNames[tokId] << "\"";
	else 
		cerr << Parser_lelNames[tokId];
	if ( token.data != 0 )
		cerr << " with data \"" << token.data << "\"";
	cerr << ": ";
	
	return cerr;
}

int Parser::token( InputLoc &loc, int tokId, char *tokstart, int toklen )
{
	Token token;
	token.data = tokstart;
	token.length = toklen;
	token.loc = loc;
	int res = parseLangEl( tokId, &token );
	if ( res < 0 ) {
		parse_error(tokId, token) << "parse error" << endl;
		exit(1);
	}
	return res;
}