/* A Bison parser, made from ./parse.y
by GNU Bison version 1.28 */
#define YYBISON 1 /* Identify Bison output. */
#define yyparse java_parse
#define yylex java_lex
#define yyerror java_error
#define yylval java_lval
#define yychar java_char
#define yydebug java_debug
#define yynerrs java_nerrs
#define PLUS_TK 257
#define MINUS_TK 258
#define MULT_TK 259
#define DIV_TK 260
#define REM_TK 261
#define LS_TK 262
#define SRS_TK 263
#define ZRS_TK 264
#define AND_TK 265
#define XOR_TK 266
#define OR_TK 267
#define BOOL_AND_TK 268
#define BOOL_OR_TK 269
#define EQ_TK 270
#define NEQ_TK 271
#define GT_TK 272
#define GTE_TK 273
#define LT_TK 274
#define LTE_TK 275
#define PLUS_ASSIGN_TK 276
#define MINUS_ASSIGN_TK 277
#define MULT_ASSIGN_TK 278
#define DIV_ASSIGN_TK 279
#define REM_ASSIGN_TK 280
#define LS_ASSIGN_TK 281
#define SRS_ASSIGN_TK 282
#define ZRS_ASSIGN_TK 283
#define AND_ASSIGN_TK 284
#define XOR_ASSIGN_TK 285
#define OR_ASSIGN_TK 286
#define PUBLIC_TK 287
#define PRIVATE_TK 288
#define PROTECTED_TK 289
#define STATIC_TK 290
#define FINAL_TK 291
#define SYNCHRONIZED_TK 292
#define VOLATILE_TK 293
#define TRANSIENT_TK 294
#define NATIVE_TK 295
#define PAD_TK 296
#define ABSTRACT_TK 297
#define MODIFIER_TK 298
#define DECR_TK 299
#define INCR_TK 300
#define DEFAULT_TK 301
#define IF_TK 302
#define THROW_TK 303
#define BOOLEAN_TK 304
#define DO_TK 305
#define IMPLEMENTS_TK 306
#define THROWS_TK 307
#define BREAK_TK 308
#define IMPORT_TK 309
#define ELSE_TK 310
#define INSTANCEOF_TK 311
#define RETURN_TK 312
#define VOID_TK 313
#define CATCH_TK 314
#define INTERFACE_TK 315
#define CASE_TK 316
#define EXTENDS_TK 317
#define FINALLY_TK 318
#define SUPER_TK 319
#define WHILE_TK 320
#define CLASS_TK 321
#define SWITCH_TK 322
#define CONST_TK 323
#define TRY_TK 324
#define FOR_TK 325
#define NEW_TK 326
#define CONTINUE_TK 327
#define GOTO_TK 328
#define PACKAGE_TK 329
#define THIS_TK 330
#define BYTE_TK 331
#define SHORT_TK 332
#define INT_TK 333
#define LONG_TK 334
#define CHAR_TK 335
#define INTEGRAL_TK 336
#define FLOAT_TK 337
#define DOUBLE_TK 338
#define FP_TK 339
#define ID_TK 340
#define REL_QM_TK 341
#define REL_CL_TK 342
#define NOT_TK 343
#define NEG_TK 344
#define ASSIGN_ANY_TK 345
#define ASSIGN_TK 346
#define OP_TK 347
#define CP_TK 348
#define OCB_TK 349
#define CCB_TK 350
#define OSB_TK 351
#define CSB_TK 352
#define SC_TK 353
#define C_TK 354
#define DOT_TK 355
#define STRING_LIT_TK 356
#define CHAR_LIT_TK 357
#define INT_LIT_TK 358
#define FP_LIT_TK 359
#define TRUE_TK 360
#define FALSE_TK 361
#define BOOL_LIT_TK 362
#define NULL_TK 363
#line 48 "./parse.y"
#include "config.h"
#include "system.h"
#include <dirent.h>
#include "tree.h"
#include "rtl.h"
#include "obstack.h"
#include "toplev.h"
#include "flags.h"
#include "java-tree.h"
#include "jcf.h"
#include "lex.h"
#include "parse.h"
#include "zipfile.h"
#include "convert.h"
#include "buffer.h"
#include "xref.h"
#include "function.h"
#include "except.h"
#include "defaults.h"
#ifndef DIR_SEPARATOR
#define DIR_SEPARATOR '/'
#endif
/* Local function prototypes */
static char *java_accstring_lookup PARAMS ((int));
static void classitf_redefinition_error PARAMS ((const char *,tree, tree, tree));
static void variable_redefinition_error PARAMS ((tree, tree, tree, int));
static tree create_class PARAMS ((int, tree, tree, tree));
static tree create_interface PARAMS ((int, tree, tree));
static void end_class_declaration PARAMS ((int));
static tree find_field PARAMS ((tree, tree));
static tree lookup_field_wrapper PARAMS ((tree, tree));
static int duplicate_declaration_error_p PARAMS ((tree, tree, tree));
static void register_fields PARAMS ((int, tree, tree));
static tree parser_qualified_classname PARAMS ((int, tree));
static int parser_check_super PARAMS ((tree, tree, tree));
static int parser_check_super_interface PARAMS ((tree, tree, tree));
static void check_modifiers_consistency PARAMS ((int));
static tree lookup_cl PARAMS ((tree));
static tree lookup_java_method2 PARAMS ((tree, tree, int));
static tree method_header PARAMS ((int, tree, tree, tree));
static void fix_method_argument_names PARAMS ((tree ,tree));
static tree method_declarator PARAMS ((tree, tree));
static void parse_warning_context PARAMS ((tree cl, const char *msg, ...))
ATTRIBUTE_PRINTF_2;
static void issue_warning_error_from_context PARAMS ((tree, const char *msg, va_list));
static void parse_ctor_invocation_error PARAMS ((void));
static tree parse_jdk1_1_error PARAMS ((const char *));
static void complete_class_report_errors PARAMS ((jdep *));
static int process_imports PARAMS ((void));
static void read_import_dir PARAMS ((tree));
static int find_in_imports_on_demand PARAMS ((tree));
static void find_in_imports PARAMS ((tree));
static void check_inner_class_access PARAMS ((tree, tree, tree));
static int check_pkg_class_access PARAMS ((tree, tree));
static void register_package PARAMS ((tree));
static tree resolve_package PARAMS ((tree, tree *));
static tree lookup_package_type PARAMS ((const char *, int));
static tree lookup_package_type_and_set_next PARAMS ((const char *, int, tree *));
static tree resolve_class PARAMS ((tree, tree, tree, tree));
static void declare_local_variables PARAMS ((int, tree, tree));
static void source_start_java_method PARAMS ((tree));
static void source_end_java_method PARAMS ((void));
static void expand_start_java_method PARAMS ((tree));
static tree find_name_in_single_imports PARAMS ((tree));
static void check_abstract_method_header PARAMS ((tree));
static tree lookup_java_interface_method2 PARAMS ((tree, tree));
static tree resolve_expression_name PARAMS ((tree, tree *));
static tree maybe_create_class_interface_decl PARAMS ((tree, tree, tree, tree));
static int check_class_interface_creation PARAMS ((int, int, tree,
tree, tree, tree));
static tree patch_method_invocation PARAMS ((tree, tree, tree,
int *, tree *));
static int breakdown_qualified PARAMS ((tree *, tree *, tree));
static tree resolve_and_layout PARAMS ((tree, tree));
static tree qualify_and_find PARAMS ((tree, tree, tree));
static tree resolve_no_layout PARAMS ((tree, tree));
static int invocation_mode PARAMS ((tree, int));
static tree find_applicable_accessible_methods_list PARAMS ((int, tree,
tree, tree));
static void search_applicable_methods_list PARAMS ((int, tree, tree, tree,
tree *, tree *));
static tree find_most_specific_methods_list PARAMS ((tree));
static int argument_types_convertible PARAMS ((tree, tree));
static tree patch_invoke PARAMS ((tree, tree, tree));
static int maybe_use_access_method PARAMS ((int, tree *, tree *));
static tree lookup_method_invoke PARAMS ((int, tree, tree, tree, tree));
static tree register_incomplete_type PARAMS ((int, tree, tree, tree));
static tree obtain_incomplete_type PARAMS ((tree));
static tree java_complete_lhs PARAMS ((tree));
static tree java_complete_tree PARAMS ((tree));
static tree maybe_generate_pre_expand_clinit PARAMS ((tree));
static int maybe_yank_clinit PARAMS ((tree));
static void java_complete_expand_method PARAMS ((tree));
static int unresolved_type_p PARAMS ((tree, tree *));
static void create_jdep_list PARAMS ((struct parser_ctxt *));
static tree build_expr_block PARAMS ((tree, tree));
static tree enter_block PARAMS ((void));
static tree enter_a_block PARAMS ((tree));
static tree exit_block PARAMS ((void));
static tree lookup_name_in_blocks PARAMS ((tree));
static void maybe_absorb_scoping_blocks PARAMS ((void));
static tree build_method_invocation PARAMS ((tree, tree));
static tree build_new_invocation PARAMS ((tree, tree));
static tree build_assignment PARAMS ((int, int, tree, tree));
static tree build_binop PARAMS ((enum tree_code, int, tree, tree));
static int check_final_assignment PARAMS ((tree ,tree));
static tree patch_assignment PARAMS ((tree, tree, tree ));
static tree patch_binop PARAMS ((tree, tree, tree));
static tree build_unaryop PARAMS ((int, int, tree));
static tree build_incdec PARAMS ((int, int, tree, int));
static tree patch_unaryop PARAMS ((tree, tree));
static tree build_cast PARAMS ((int, tree, tree));
static tree build_null_of_type PARAMS ((tree));
static tree patch_cast PARAMS ((tree, tree));
static int valid_ref_assignconv_cast_p PARAMS ((tree, tree, int));
static int valid_builtin_assignconv_identity_widening_p PARAMS ((tree, tree));
static int valid_cast_to_p PARAMS ((tree, tree));
static int valid_method_invocation_conversion_p PARAMS ((tree, tree));
static tree try_builtin_assignconv PARAMS ((tree, tree, tree));
static tree try_reference_assignconv PARAMS ((tree, tree));
static tree build_unresolved_array_type PARAMS ((tree));
static tree build_array_from_name PARAMS ((tree, tree, tree, tree *));
static tree build_array_ref PARAMS ((int, tree, tree));
static tree patch_array_ref PARAMS ((tree));
static tree make_qualified_name PARAMS ((tree, tree, int));
static tree merge_qualified_name PARAMS ((tree, tree));
static tree make_qualified_primary PARAMS ((tree, tree, int));
static int resolve_qualified_expression_name PARAMS ((tree, tree *,
tree *, tree *));
static void qualify_ambiguous_name PARAMS ((tree));
static tree resolve_field_access PARAMS ((tree, tree *, tree *));
static tree build_newarray_node PARAMS ((tree, tree, int));
static tree patch_newarray PARAMS ((tree));
static tree resolve_type_during_patch PARAMS ((tree));
static tree build_this PARAMS ((int));
static tree build_wfl_wrap PARAMS ((tree, int));
static tree build_return PARAMS ((int, tree));
static tree patch_return PARAMS ((tree));
static tree maybe_access_field PARAMS ((tree, tree, tree));
static int complete_function_arguments PARAMS ((tree));
static int check_for_static_method_reference PARAMS ((tree, tree, tree,
tree, tree));
static int not_accessible_p PARAMS ((tree, tree, int));
static void check_deprecation PARAMS ((tree, tree));
static int class_in_current_package PARAMS ((tree));
static tree build_if_else_statement PARAMS ((int, tree, tree, tree));
static tree patch_if_else_statement PARAMS ((tree));
static tree add_stmt_to_compound PARAMS ((tree, tree, tree));
static tree add_stmt_to_block PARAMS ((tree, tree, tree));
static tree patch_exit_expr PARAMS ((tree));
static tree build_labeled_block PARAMS ((int, tree));
static tree finish_labeled_statement PARAMS ((tree, tree));
static tree build_bc_statement PARAMS ((int, int, tree));
static tree patch_bc_statement PARAMS ((tree));
static tree patch_loop_statement PARAMS ((tree));
static tree build_new_loop PARAMS ((tree));
static tree build_loop_body PARAMS ((int, tree, int));
static tree finish_loop_body PARAMS ((int, tree, tree, int));
static tree build_debugable_stmt PARAMS ((int, tree));
static tree finish_for_loop PARAMS ((int, tree, tree, tree));
static tree patch_switch_statement PARAMS ((tree));
static tree string_constant_concatenation PARAMS ((tree, tree));
static tree build_string_concatenation PARAMS ((tree, tree));
static tree patch_string_cst PARAMS ((tree));
static tree patch_string PARAMS ((tree));
static tree build_try_statement PARAMS ((int, tree, tree));
static tree build_try_finally_statement PARAMS ((int, tree, tree));
static tree patch_try_statement PARAMS ((tree));
static tree patch_synchronized_statement PARAMS ((tree, tree));
static tree patch_throw_statement PARAMS ((tree, tree));
static void check_thrown_exceptions PARAMS ((int, tree));
static int check_thrown_exceptions_do PARAMS ((tree));
static void purge_unchecked_exceptions PARAMS ((tree));
static void check_throws_clauses PARAMS ((tree, tree, tree));
static void finish_method_declaration PARAMS ((tree));
static tree build_super_invocation PARAMS ((tree));
static int verify_constructor_circularity PARAMS ((tree, tree));
static char *constructor_circularity_msg PARAMS ((tree, tree));
static tree build_this_super_qualified_invocation PARAMS ((int, tree, tree,
int, int));
static const char *get_printable_method_name PARAMS ((tree));
static tree patch_conditional_expr PARAMS ((tree, tree, tree));
static tree generate_finit PARAMS ((tree));
static void add_instance_initializer PARAMS ((tree));
static void fix_constructors PARAMS ((tree));
static tree build_alias_initializer_parameter_list PARAMS ((int, tree,
tree, int *));
static void craft_constructor PARAMS ((tree, tree));
static int verify_constructor_super PARAMS ((tree));
static tree create_artificial_method PARAMS ((tree, int, tree, tree, tree));
static void start_artificial_method_body PARAMS ((tree));
static void end_artificial_method_body PARAMS ((tree));
static int check_method_redefinition PARAMS ((tree, tree));
static int reset_method_name PARAMS ((tree));
static int check_method_types_complete PARAMS ((tree));
static void java_check_regular_methods PARAMS ((tree));
static void java_check_abstract_methods PARAMS ((tree));
static tree maybe_build_primttype_type_ref PARAMS ((tree, tree));
static void unreachable_stmt_error PARAMS ((tree));
static tree find_expr_with_wfl PARAMS ((tree));
static void missing_return_error PARAMS ((tree));
static tree build_new_array_init PARAMS ((int, tree));
static tree patch_new_array_init PARAMS ((tree, tree));
static tree maybe_build_array_element_wfl PARAMS ((tree));
static int array_constructor_check_entry PARAMS ((tree, tree));
static const char *purify_type_name PARAMS ((const char *));
static tree fold_constant_for_init PARAMS ((tree, tree));
static tree strip_out_static_field_access_decl PARAMS ((tree));
static jdeplist *reverse_jdep_list PARAMS ((struct parser_ctxt *));
static void static_ref_err PARAMS ((tree, tree, tree));
static void parser_add_interface PARAMS ((tree, tree, tree));
static void add_superinterfaces PARAMS ((tree, tree));
static tree jdep_resolve_class PARAMS ((jdep *));
static int note_possible_classname PARAMS ((const char *, int));
static void java_complete_expand_classes PARAMS ((void));
static void java_complete_expand_class PARAMS ((tree));
static void java_complete_expand_methods PARAMS ((tree));
static tree cut_identifier_in_qualified PARAMS ((tree));
static tree java_stabilize_reference PARAMS ((tree));
static tree do_unary_numeric_promotion PARAMS ((tree));
static char * operator_string PARAMS ((tree));
static tree do_merge_string_cste PARAMS ((tree, const char *, int, int));
static tree merge_string_cste PARAMS ((tree, tree, int));
static tree java_refold PARAMS ((tree));
static int java_decl_equiv PARAMS ((tree, tree));
static int binop_compound_p PARAMS ((enum tree_code));
static tree search_loop PARAMS ((tree));
static int labeled_block_contains_loop_p PARAMS ((tree, tree));
static void check_abstract_method_definitions PARAMS ((int, tree, tree));
static void java_check_abstract_method_definitions PARAMS ((tree));
static void java_debug_context_do PARAMS ((int));
static void java_parser_context_push_initialized_field PARAMS ((void));
static void java_parser_context_pop_initialized_field PARAMS ((void));
static tree reorder_static_initialized PARAMS ((tree));
static void java_parser_context_suspend PARAMS ((void));
static void java_parser_context_resume PARAMS ((void));
/* JDK 1.1 work. FIXME */
static tree maybe_make_nested_class_name PARAMS ((tree));
static void make_nested_class_name PARAMS ((tree));
static void set_nested_class_simple_name_value PARAMS ((tree, int));
static void link_nested_class_to_enclosing PARAMS ((void));
static tree find_as_inner_class PARAMS ((tree, tree, tree));
static tree find_as_inner_class_do PARAMS ((tree, tree));
static int check_inner_class_redefinition PARAMS ((tree, tree));
static tree build_thisn_assign PARAMS ((void));
static tree build_current_thisn PARAMS ((tree));
static tree build_access_to_thisn PARAMS ((tree, tree, int));
static tree maybe_build_thisn_access_method PARAMS ((tree));
static tree build_outer_field_access PARAMS ((tree, tree));
static tree build_outer_field_access_methods PARAMS ((tree));
static tree build_outer_field_access_expr PARAMS ((int, tree, tree,
tree, tree));
static tree build_outer_method_access_method PARAMS ((tree));
static tree build_new_access_id PARAMS ((void));
static tree build_outer_field_access_method PARAMS ((tree, tree, tree,
tree, tree));
static int outer_field_access_p PARAMS ((tree, tree));
static int outer_field_expanded_access_p PARAMS ((tree, tree *,
tree *, tree *));
static tree outer_field_access_fix PARAMS ((tree, tree, tree));
static tree build_incomplete_class_ref PARAMS ((int, tree));
static tree patch_incomplete_class_ref PARAMS ((tree));
static tree create_anonymous_class PARAMS ((int, tree));
static void patch_anonymous_class PARAMS ((tree, tree, tree));
static void add_inner_class_fields PARAMS ((tree, tree));
static tree build_dot_class_method PARAMS ((tree));
static tree build_dot_class_method_invocation PARAMS ((tree));
static void create_new_parser_context PARAMS ((int));
/* Number of error found so far. */
int java_error_count;
/* Number of warning found so far. */
int java_warning_count;
/* Tell when not to fold, when doing xrefs */
int do_not_fold;
/* Cyclic inheritance report, as it can be set by layout_class */
char *cyclic_inheritance_report;
/* Tell when we're within an instance initializer */
static int in_instance_initializer;
/* The current parser context */
struct parser_ctxt *ctxp;
/* List of things that were analyzed for which code will be generated */
static struct parser_ctxt *ctxp_for_generation = NULL;
/* binop_lookup maps token to tree_code. It is used where binary
operations are involved and required by the parser. RDIV_EXPR
covers both integral/floating point division. The code is changed
once the type of both operator is worked out. */
static enum tree_code binop_lookup[19] =
{
PLUS_EXPR, MINUS_EXPR, MULT_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
LSHIFT_EXPR, RSHIFT_EXPR, URSHIFT_EXPR,
BIT_AND_EXPR, BIT_XOR_EXPR, BIT_IOR_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR,
EQ_EXPR, NE_EXPR, GT_EXPR, GE_EXPR, LT_EXPR, LE_EXPR,
};
#define BINOP_LOOKUP(VALUE) \
binop_lookup [((VALUE) - PLUS_TK)% \
(sizeof (binop_lookup) / sizeof (binop_lookup[0]))]
/* This is the end index for binary operators that can also be used
in compound assignements. */
#define BINOP_COMPOUND_CANDIDATES 11
/* Fake WFL used to report error message. It is initialized once if
needed and reused with it's location information is overriden. */
tree wfl_operator = NULL_TREE;
/* The "$L" identifier we use to create labels. */
static tree label_id = NULL_TREE;
/* The "StringBuffer" identifier used for the String `+' operator. */
static tree wfl_string_buffer = NULL_TREE;
/* The "append" identifier used for String `+' operator. */
static tree wfl_append = NULL_TREE;
/* The "toString" identifier used for String `+' operator. */
static tree wfl_to_string = NULL_TREE;
/* The "java.lang" import qualified name. */
static tree java_lang_id = NULL_TREE;
/* The generated `inst$' identifier used for generated enclosing
instance/field access functions. */
static tree inst_id = NULL_TREE;
/* The "java.lang.Cloneable" qualified name. */
static tree java_lang_cloneable = NULL_TREE;
/* Context and flag for static blocks */
static tree current_static_block = NULL_TREE;
/* The generated `write_parm_value$' identifier. */
static tree wpv_id;
/* The list of all packages we've seen so far */
static tree package_list = NULL_TREE;
/* Check modifiers. If one doesn't fit, retrieve it in its declaration
line and point it out. */
/* Should point out the one that don't fit. ASCII/unicode, going
backward. FIXME */
#define check_modifiers(__message, __value, __mask) do { \
if ((__value) & ~(__mask)) \
{ \
int i, remainder = (__value) & ~(__mask); \
for (i = 0; i <= 10; i++) \
if ((1 << i) & remainder) \
parse_error_context (ctxp->modifier_ctx [i], (__message), \
java_accstring_lookup (1 << i)); \
} \
} while (0)
#line 418 "./parse.y"
typedef union {
tree node;
int sub_token;
struct {
int token;
int location;
} operator;
int value;
} YYSTYPE;
#line 428 "./parse.y"
#include "lex.c"
#ifndef YYDEBUG
#define YYDEBUG 1
#endif
#include <stdio.h>
#ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
#endif
#define YYFINAL 791
#define YYFLAG -32768
#define YYNTBASE 110
#define YYTRANSLATE(x) ((unsigned)(x) <= 363 ? yytranslate[x] : 272)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 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, 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
};
#if YYDEBUG != 0
static const short yyprhs[] = { 0,
0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
20, 22, 24, 26, 28, 30, 32, 34, 38, 42,
46, 50, 54, 56, 58, 60, 64, 66, 67, 69,
71, 73, 76, 79, 82, 86, 88, 91, 93, 96,
100, 103, 107, 109, 111, 115, 118, 122, 128, 133,
139, 141, 143, 145, 147, 149, 152, 153, 161, 162,
169, 173, 176, 180, 185, 186, 189, 193, 196, 197,
200, 203, 205, 209, 213, 216, 220, 222, 225, 227,
229, 231, 233, 235, 238, 240, 242, 244, 248, 253,
255, 259, 263, 265, 269, 273, 278, 280, 284, 287,
291, 295, 297, 299, 300, 304, 307, 311, 315, 320,
325, 328, 332, 335, 339, 342, 346, 351, 355, 359,
363, 365, 369, 373, 376, 380, 383, 387, 389, 390,
393, 396, 398, 402, 406, 408, 411, 413, 416, 420,
422, 423, 427, 430, 434, 438, 443, 446, 450, 454,
459, 461, 464, 469, 475, 483, 490, 492, 494, 495,
500, 501, 507, 508, 514, 515, 522, 526, 531, 534,
538, 541, 545, 548, 552, 554, 557, 559, 561, 563,
565, 567, 570, 573, 576, 580, 585, 587, 591, 595,
598, 602, 604, 606, 608, 611, 613, 615, 617, 620,
623, 627, 629, 631, 633, 635, 637, 639, 641, 643,
645, 647, 649, 651, 653, 655, 657, 659, 661, 663,
665, 667, 669, 671, 673, 676, 679, 682, 685, 688,
691, 694, 697, 701, 706, 711, 717, 722, 728, 735,
743, 750, 752, 754, 756, 758, 760, 762, 764, 770,
773, 777, 782, 790, 798, 799, 803, 808, 811, 815,
821, 824, 828, 832, 837, 839, 842, 845, 847, 850,
854, 857, 860, 864, 867, 872, 875, 878, 882, 887,
890, 892, 900, 908, 915, 919, 925, 930, 938, 945,
948, 951, 955, 958, 959, 961, 963, 966, 967, 969,
971, 975, 979, 982, 986, 989, 993, 996, 1000, 1003,
1007, 1010, 1014, 1017, 1021, 1025, 1028, 1032, 1038, 1044,
1047, 1052, 1056, 1058, 1062, 1066, 1071, 1074, 1076, 1079,
1082, 1087, 1090, 1094, 1099, 1102, 1105, 1107, 1109, 1111,
1113, 1117, 1119, 1121, 1123, 1125, 1127, 1131, 1135, 1139,
1143, 1147, 1151, 1155, 1159, 1163, 1167, 1171, 1177, 1182,
1184, 1189, 1195, 1201, 1208, 1212, 1216, 1221, 1227, 1230,
1234, 1235, 1243, 1244, 1251, 1255, 1259, 1261, 1265, 1269,
1273, 1277, 1282, 1287, 1292, 1297, 1301, 1305, 1307, 1310,
1314, 1318, 1321, 1324, 1328, 1332, 1336, 1340, 1343, 1347,
1352, 1358, 1365, 1371, 1378, 1383, 1388, 1393, 1398, 1402,
1407, 1411, 1416, 1418, 1420, 1422, 1424, 1427, 1430, 1432,
1434, 1437, 1440, 1442, 1445, 1448, 1451, 1454, 1457, 1460,
1462, 1465, 1468, 1470, 1473, 1476, 1482, 1487, 1492, 1498,
1503, 1506, 1512, 1517, 1523, 1525, 1529, 1533, 1537, 1541,
1545, 1549, 1551, 1555, 1559, 1563, 1567, 1569, 1573, 1577,
1581, 1585, 1589, 1593, 1595, 1599, 1603, 1607, 1611, 1615,
1619, 1623, 1627, 1631, 1635, 1637, 1641, 1645, 1649, 1653,
1655, 1659, 1663, 1665, 1669, 1673, 1675, 1679, 1683, 1685,
1689, 1693, 1695, 1699, 1703, 1705, 1711, 1716, 1720, 1726,
1728, 1730, 1734, 1738, 1740, 1742, 1744, 1746, 1748, 1750
};
static const short yyrhs[] = { 123,
0, 104, 0, 105, 0, 108, 0, 103, 0, 102,
0, 109, 0, 113, 0, 114, 0, 82, 0, 85,
0, 50, 0, 115, 0, 118, 0, 119, 0, 115,
0, 115, 0, 113, 97, 98, 0, 119, 97, 98,
0, 118, 97, 98, 0, 113, 97, 1, 0, 118,
97, 1, 0, 120, 0, 121, 0, 122, 0, 119,
101, 122, 0, 86, 0, 0, 126, 0, 124, 0,
125, 0, 126, 124, 0, 126, 125, 0, 124, 125,
0, 126, 124, 125, 0, 127, 0, 124, 127, 0,
130, 0, 125, 130, 0, 75, 119, 99, 0, 75,
1, 0, 75, 119, 1, 0, 128, 0, 129, 0,
55, 119, 99, 0, 55, 1, 0, 55, 119, 1,
0, 55, 119, 101, 5, 99, 0, 55, 119, 101,
1, 0, 55, 119, 101, 5, 1, 0, 132, 0,
167, 0, 99, 0, 1, 0, 44, 0, 131, 44,
0, 0, 131, 67, 122, 135, 136, 133, 138, 0,
0, 67, 122, 135, 136, 134, 138, 0, 131, 67,
1, 0, 67, 1, 0, 67, 122, 1, 0, 131,
67, 122, 1, 0, 0, 63, 116, 0, 63, 116,
1, 0, 63, 1, 0, 0, 52, 137, 0, 52,
1, 0, 117, 0, 137, 100, 117, 0, 137, 100,
1, 0, 95, 96, 0, 95, 139, 96, 0, 140,
0, 139, 140, 0, 141, 0, 157, 0, 159, 0,
180, 0, 142, 0, 142, 99, 0, 147, 0, 132,
0, 167, 0, 112, 143, 99, 0, 131, 112, 143,
99, 0, 144, 0, 143, 100, 144, 0, 143, 100,
1, 0, 145, 0, 145, 92, 146, 0, 145, 92,
1, 0, 145, 92, 146, 1, 0, 122, 0, 145,
97, 98, 0, 122, 1, 0, 145, 97, 1, 0,
145, 98, 1, 0, 270, 0, 178, 0, 0, 149,
148, 156, 0, 149, 1, 0, 112, 150, 154, 0,
59, 150, 154, 0, 131, 112, 150, 154, 0, 131,
59, 150, 154, 0, 112, 1, 0, 131, 112, 1,
0, 59, 1, 0, 131, 59, 1, 0, 131, 1,
0, 122, 93, 94, 0, 122, 93, 151, 94, 0,
150, 97, 98, 0, 122, 93, 1, 0, 150, 97,
1, 0, 152, 0, 151, 100, 152, 0, 151, 100,
1, 0, 112, 145, 0, 153, 112, 145, 0, 112,
1, 0, 153, 112, 1, 0, 131, 0, 0, 53,
155, 0, 53, 1, 0, 116, 0, 155, 100, 116,
0, 155, 100, 1, 0, 180, 0, 180, 99, 0,
99, 0, 158, 180, 0, 158, 180, 99, 0, 131,
0, 0, 161, 160, 163, 0, 162, 154, 0, 131,
162, 154, 0, 120, 93, 94, 0, 120, 93, 151,
94, 0, 181, 164, 0, 181, 165, 164, 0, 181,
183, 164, 0, 181, 165, 183, 164, 0, 182, 0,
182, 99, 0, 166, 93, 94, 99, 0, 166, 93,
239, 94, 99, 0, 119, 101, 65, 93, 239, 94,
99, 0, 119, 101, 65, 93, 94, 99, 0, 76,
0, 65, 0, 0, 61, 122, 168, 173, 0, 0,
131, 61, 122, 169, 173, 0, 0, 61, 122, 172,
170, 173, 0, 0, 131, 61, 122, 172, 171, 173,
0, 61, 122, 1, 0, 131, 61, 122, 1, 0,
63, 117, 0, 172, 100, 117, 0, 63, 1, 0,
172, 100, 1, 0, 95, 96, 0, 95, 174, 96,
0, 175, 0, 174, 175, 0, 176, 0, 177, 0,
132, 0, 167, 0, 142, 0, 149, 99, 0, 149,
1, 0, 95, 96, 0, 95, 179, 96, 0, 95,
179, 100, 96, 0, 146, 0, 179, 100, 146, 0,
179, 100, 1, 0, 95, 96, 0, 181, 183, 182,
0, 95, 0, 96, 0, 184, 0, 183, 184, 0,
185, 0, 187, 0, 132, 0, 186, 99, 0, 112,
143, 0, 153, 112, 143, 0, 189, 0, 192, 0,
196, 0, 197, 0, 208, 0, 212, 0, 189, 0,
193, 0, 198, 0, 209, 0, 213, 0, 180, 0,
190, 0, 194, 0, 199, 0, 211, 0, 219, 0,
220, 0, 221, 0, 223, 0, 222, 0, 225, 0,
99, 0, 122, 88, 0, 191, 187, 0, 122, 1,
0, 191, 188, 0, 195, 99, 0, 1, 99, 0,
1, 95, 0, 1, 96, 0, 166, 93, 1, 0,
166, 93, 94, 1, 0, 166, 93, 239, 1, 0,
166, 93, 239, 94, 1, 0, 119, 101, 65, 1,
0, 119, 101, 65, 93, 1, 0, 119, 101, 65,
93, 239, 1, 0, 119, 101, 65, 93, 239, 94,
1, 0, 119, 101, 65, 93, 94, 1, 0, 267,
0, 251, 0, 252, 0, 248, 0, 249, 0, 245,
0, 234, 0, 48, 93, 270, 94, 187, 0, 48,
1, 0, 48, 93, 1, 0, 48, 93, 270, 1,
0, 48, 93, 270, 94, 188, 56, 187, 0, 48,
93, 270, 94, 188, 56, 188, 0, 0, 201, 200,
202, 0, 68, 93, 270, 94, 0, 68, 1, 0,
68, 93, 1, 0, 68, 93, 270, 94, 1, 0,
95, 96, 0, 95, 205, 96, 0, 95, 203, 96,
0, 95, 203, 205, 96, 0, 204, 0, 203, 204,
0, 205, 183, 0, 206, 0, 205, 206, 0, 62,
271, 88, 0, 47, 88, 0, 62, 1, 0, 62,
271, 1, 0, 47, 1, 0, 66, 93, 270, 94,
0, 207, 187, 0, 66, 1, 0, 66, 93, 1,
0, 66, 93, 270, 1, 0, 207, 188, 0, 51,
0, 210, 187, 66, 93, 270, 94, 99, 0, 215,
99, 270, 99, 217, 94, 187, 0, 215, 99, 99,
217, 94, 187, 0, 215, 99, 1, 0, 215, 99,
270, 99, 1, 0, 215, 99, 99, 1, 0, 215,
99, 270, 99, 217, 94, 188, 0, 215, 99, 99,
217, 94, 188, 0, 71, 93, 0, 71, 1, 0,
71, 93, 1, 0, 214, 216, 0, 0, 218, 0,
186, 0, 218, 1, 0, 0, 218, 0, 195, 0,
218, 100, 195, 0, 218, 100, 1, 0, 54, 99,
0, 54, 122, 99, 0, 54, 1, 0, 54, 122,
1, 0, 73, 99, 0, 73, 122, 99, 0, 73,
1, 0, 73, 122, 1, 0, 58, 99, 0, 58,
270, 99, 0, 58, 1, 0, 58, 270, 1, 0,
49, 270, 99, 0, 49, 1, 0, 49, 270, 1,
0, 224, 93, 270, 94, 180, 0, 224, 93, 270,
94, 1, 0, 224, 1, 0, 224, 93, 1, 94,
0, 224, 93, 1, 0, 131, 0, 70, 180, 226,
0, 70, 180, 229, 0, 70, 180, 226, 229, 0,
70, 1, 0, 227, 0, 226, 227, 0, 228, 180,
0, 60, 93, 152, 94, 0, 60, 1, 0, 60,
93, 1, 0, 60, 93, 1, 94, 0, 64, 180,
0, 64, 1, 0, 231, 0, 240, 0, 111, 0,
76, 0, 93, 270, 94, 0, 234, 0, 244, 0,
245, 0, 246, 0, 233, 0, 119, 101, 76, 0,
93, 270, 1, 0, 119, 101, 1, 0, 113, 101,
1, 0, 59, 101, 1, 0, 113, 97, 98, 0,
119, 97, 98, 0, 119, 101, 67, 0, 232, 101,
67, 0, 113, 101, 67, 0, 59, 101, 67, 0,
72, 116, 93, 239, 94, 0, 72, 116, 93, 94,
0, 235, 0, 238, 122, 93, 94, 0, 238, 122,
93, 94, 138, 0, 238, 122, 93, 239, 94, 0,
238, 122, 93, 239, 94, 138, 0, 72, 1, 99,
0, 72, 116, 1, 0, 72, 116, 93, 1, 0,
72, 116, 93, 239, 1, 0, 238, 1, 0, 238,
122, 1, 0, 0, 72, 116, 93, 239, 94, 236,
138, 0, 0, 72, 116, 93, 94, 237, 138, 0,
119, 101, 72, 0, 230, 101, 72, 0, 270, 0,
239, 100, 270, 0, 239, 100, 1, 0, 72, 113,
241, 0, 72, 115, 241, 0, 72, 113, 241, 243,
0, 72, 115, 241, 243, 0, 72, 115, 243, 178,
0, 72, 113, 243, 178, 0, 72, 1, 98, 0,
72, 1, 97, 0, 242, 0, 241, 242, 0, 97,
270, 98, 0, 97, 270, 1, 0, 97, 1, 0,
97, 98, 0, 243, 97, 98, 0, 243, 97, 1,
0, 230, 101, 122, 0, 65, 101, 122, 0, 65,
1, 0, 119, 93, 94, 0, 119, 93, 239, 94,
0, 230, 101, 122, 93, 94, 0, 230, 101, 122,
93, 239, 94, 0, 65, 101, 122, 93, 94, 0,
65, 101, 122, 93, 239, 94, 0, 65, 101, 1,
94, 0, 65, 101, 1, 101, 0, 119, 97, 270,
98, 0, 231, 97, 270, 98, 0, 119, 97, 1,
0, 119, 97, 270, 1, 0, 231, 97, 1, 0,
231, 97, 270, 1, 0, 230, 0, 119, 0, 248,
0, 249, 0, 247, 46, 0, 247, 45, 0, 251,
0, 252, 0, 3, 250, 0, 4, 250, 0, 253,
0, 3, 1, 0, 4, 1, 0, 46, 250, 0,
46, 1, 0, 45, 250, 0, 45, 1, 0, 247,
0, 89, 250, 0, 90, 250, 0, 254, 0, 89,
1, 0, 90, 1, 0, 93, 113, 243, 94, 250,
0, 93, 113, 94, 250, 0, 93, 270, 94, 253,
0, 93, 119, 243, 94, 253, 0, 93, 113, 97,
1, 0, 93, 1, 0, 93, 113, 243, 94, 1,
0, 93, 113, 94, 1, 0, 93, 119, 243, 94,
1, 0, 250, 0, 255, 5, 250, 0, 255, 6,
250, 0, 255, 7, 250, 0, 255, 5, 1, 0,
255, 6, 1, 0, 255, 7, 1, 0, 255, 0,
256, 3, 255, 0, 256, 4, 255, 0, 256, 3,
1, 0, 256, 4, 1, 0, 256, 0, 257, 8,
256, 0, 257, 9, 256, 0, 257, 10, 256, 0,
257, 8, 1, 0, 257, 9, 1, 0, 257, 10,
1, 0, 257, 0, 258, 20, 257, 0, 258, 18,
257, 0, 258, 21, 257, 0, 258, 19, 257, 0,
258, 57, 114, 0, 258, 20, 1, 0, 258, 18,
1, 0, 258, 21, 1, 0, 258, 19, 1, 0,
258, 57, 1, 0, 258, 0, 259, 16, 258, 0,
259, 17, 258, 0, 259, 16, 1, 0, 259, 17,
1, 0, 259, 0, 260, 11, 259, 0, 260, 11,
1, 0, 260, 0, 261, 12, 260, 0, 261, 12,
1, 0, 261, 0, 262, 13, 261, 0, 262, 13,
1, 0, 262, 0, 263, 14, 262, 0, 263, 14,
1, 0, 263, 0, 264, 15, 263, 0, 264, 15,
1, 0, 264, 0, 264, 87, 270, 88, 265, 0,
264, 87, 88, 1, 0, 264, 87, 1, 0, 264,
87, 270, 88, 1, 0, 265, 0, 267, 0, 268,
269, 266, 0, 268, 269, 1, 0, 119, 0, 244,
0, 246, 0, 91, 0, 92, 0, 266, 0, 270,
0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
577, 583, 585, 586, 587, 588, 589, 593, 595, 598,
600, 601, 604, 606, 609, 613, 617, 621, 627, 629,
631, 633, 638, 640, 643, 647, 652, 657, 659, 660,
661, 662, 663, 664, 665, 668, 673, 679, 681, 684,
690, 692, 696, 698, 701, 728, 730, 734, 747, 749,
753, 756, 758, 760, 770, 775, 790, 794, 794, 797,
797, 799, 801, 806, 810, 812, 814, 816, 820, 822,
824, 831, 837, 842, 846, 855, 865, 867, 870, 872,
873, 874, 881, 883, 885, 886, 888, 893, 896, 906,
909, 911, 915, 918, 925, 931, 939, 941, 943, 945,
947, 951, 953, 957, 968, 969, 973, 976, 978, 980,
982, 987, 989, 991, 993, 1000, 1006, 1008, 1017, 1019,
1023, 1028, 1033, 1037, 1042, 1047, 1052, 1059, 1069, 1071,
1073, 1077, 1080, 1082, 1086, 1088, 1089, 1094, 1100, 1107,
1123, 1130, 1133, 1136, 1140, 1146, 1150, 1159, 1161, 1163,
1167, 1169, 1172, 1179, 1187, 1189, 1193, 1200, 1210, 1214,
1214, 1217, 1217, 1220, 1220, 1223, 1223, 1225, 1229, 1235,
1240, 1242, 1246, 1249, 1253, 1255, 1258, 1260, 1261, 1263,
1267, 1271, 1277, 1282, 1285, 1287, 1291, 1297, 1301, 1306,
1315, 1319, 1324, 1338, 1340, 1343, 1345, 1347, 1354, 1358,
1361, 1365, 1367, 1368, 1369, 1370, 1371, 1375, 1377, 1378,
1379, 1380, 1384, 1386, 1387, 1388, 1389, 1390, 1391, 1392,
1393, 1394, 1395, 1398, 1403, 1414, 1417, 1421, 1428, 1438,
1444, 1450, 1456, 1458, 1463, 1465, 1470, 1472, 1474, 1476,
1478, 1482, 1484, 1485, 1486, 1487, 1488, 1489, 1492, 1498,
1500, 1502, 1506, 1511, 1516, 1522, 1532, 1538, 1540, 1542,
1549, 1552, 1554, 1556, 1560, 1562, 1565, 1569, 1571, 1574,
1581, 1587, 1589, 1591, 1595, 1603, 1606, 1608, 1610, 1614,
1619, 1628, 1633, 1640, 1647, 1649, 1651, 1655, 1658, 1667,
1674, 1676, 1680, 1693, 1695, 1701, 1707, 1711, 1713, 1717,
1720, 1722, 1726, 1729, 1731, 1733, 1737, 1740, 1742, 1744,
1748, 1751, 1753, 1755, 1759, 1765, 1767, 1771, 1778, 1780,
1782, 1784, 1788, 1800, 1803, 1805, 1810, 1814, 1816, 1823,
1831, 1848, 1850, 1855, 1859, 1862, 1867, 1869, 1872, 1874,
1876, 1878, 1879, 1880, 1881, 1882, 1886, 1891, 1893, 1895,
1897, 1904, 1910, 1919, 1922, 1924, 1926, 1930, 1933, 1935,
1939, 1945, 1946, 1952, 1953, 1955, 1957, 1959, 1961, 1963,
1972, 1976, 2006, 2009, 2023, 2026, 2030, 2036, 2041, 2045,
2048, 2050, 2052, 2056, 2065, 2073, 2075, 2079, 2082, 2086,
2097, 2099, 2107, 2134, 2136, 2140, 2145, 2152, 2156, 2159,
2161, 2172, 2183, 2188, 2197, 2199, 2203, 2206, 2208, 2213,
2218, 2223, 2230, 2232, 2233, 2234, 2237, 2242, 2247, 2249,
2250, 2252, 2254, 2255, 2257, 2261, 2264, 2268, 2271, 2275,
2277, 2279, 2281, 2282, 2284, 2288, 2297, 2299, 2301, 2314,
2316, 2322, 2324, 2326, 2330, 2332, 2337, 2342, 2347, 2349,
2351, 2355, 2357, 2362, 2367, 2369, 2373, 2375, 2380, 2385,
2390, 2392, 2394, 2398, 2400, 2405, 2410, 2415, 2420, 2422,
2424, 2426, 2428, 2430, 2434, 2436, 2441, 2446, 2448, 2452,
2454, 2459, 2463, 2465, 2470, 2474, 2476, 2481, 2485, 2487,
2492, 2496, 2498, 2503, 2507, 2509, 2514, 2520, 2522, 2526,
2528, 2531, 2534, 2542, 2544, 2545, 2548, 2550, 2553, 2557
};
#endif
#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
static const char * const yytname[] = { "$","error","$undefined.","PLUS_TK",
"MINUS_TK","MULT_TK","DIV_TK","REM_TK","LS_TK","SRS_TK","ZRS_TK","AND_TK","XOR_TK",
"OR_TK","BOOL_AND_TK","BOOL_OR_TK","EQ_TK","NEQ_TK","GT_TK","GTE_TK","LT_TK",
"LTE_TK","PLUS_ASSIGN_TK","MINUS_ASSIGN_TK","MULT_ASSIGN_TK","DIV_ASSIGN_TK",
"REM_ASSIGN_TK","LS_ASSIGN_TK","SRS_ASSIGN_TK","ZRS_ASSIGN_TK","AND_ASSIGN_TK",
"XOR_ASSIGN_TK","OR_ASSIGN_TK","PUBLIC_TK","PRIVATE_TK","PROTECTED_TK","STATIC_TK",
"FINAL_TK","SYNCHRONIZED_TK","VOLATILE_TK","TRANSIENT_TK","NATIVE_TK","PAD_TK",
"ABSTRACT_TK","MODIFIER_TK","DECR_TK","INCR_TK","DEFAULT_TK","IF_TK","THROW_TK",
"BOOLEAN_TK","DO_TK","IMPLEMENTS_TK","THROWS_TK","BREAK_TK","IMPORT_TK","ELSE_TK",
"INSTANCEOF_TK","RETURN_TK","VOID_TK","CATCH_TK","INTERFACE_TK","CASE_TK","EXTENDS_TK",
"FINALLY_TK","SUPER_TK","WHILE_TK","CLASS_TK","SWITCH_TK","CONST_TK","TRY_TK",
"FOR_TK","NEW_TK","CONTINUE_TK","GOTO_TK","PACKAGE_TK","THIS_TK","BYTE_TK","SHORT_TK",
"INT_TK","LONG_TK","CHAR_TK","INTEGRAL_TK","FLOAT_TK","DOUBLE_TK","FP_TK","ID_TK",
"REL_QM_TK","REL_CL_TK","NOT_TK","NEG_TK","ASSIGN_ANY_TK","ASSIGN_TK","OP_TK",
"CP_TK","OCB_TK","CCB_TK","OSB_TK","CSB_TK","SC_TK","C_TK","DOT_TK","STRING_LIT_TK",
"CHAR_LIT_TK","INT_LIT_TK","FP_LIT_TK","TRUE_TK","FALSE_TK","BOOL_LIT_TK","NULL_TK",
"goal","literal","type","primitive_type","reference_type","class_or_interface_type",
"class_type","interface_type","array_type","name","simple_name","qualified_name",
"identifier","compilation_unit","import_declarations","type_declarations","package_declaration",
"import_declaration","single_type_import_declaration","type_import_on_demand_declaration",
"type_declaration","modifiers","class_declaration","@1","@2","super","interfaces",
"interface_type_list","class_body","class_body_declarations","class_body_declaration",
"class_member_declaration","field_declaration","variable_declarators","variable_declarator",
"variable_declarator_id","variable_initializer","method_declaration","@3","method_header",
"method_declarator","formal_parameter_list","formal_parameter","final","throws",
"class_type_list","method_body","static_initializer","static","constructor_declaration",
"@4","constructor_header","constructor_declarator","constructor_body","constructor_block_end",
"explicit_constructor_invocation","this_or_super","interface_declaration","@5",
"@6","@7","@8","extends_interfaces","interface_body","interface_member_declarations",
"interface_member_declaration","constant_declaration","abstract_method_declaration",
"array_initializer","variable_initializers","block","block_begin","block_end",
"block_statements","block_statement","local_variable_declaration_statement",
"local_variable_declaration","statement","statement_nsi","statement_without_trailing_substatement",
"empty_statement","label_decl","labeled_statement","labeled_statement_nsi","expression_statement",
"statement_expression","if_then_statement","if_then_else_statement","if_then_else_statement_nsi",
"switch_statement","@9","switch_expression","switch_block","switch_block_statement_groups",
"switch_block_statement_group","switch_labels","switch_label","while_expression",
"while_statement","while_statement_nsi","do_statement_begin","do_statement",
"for_statement","for_statement_nsi","for_header","for_begin","for_init","for_update",
"statement_expression_list","break_statement","continue_statement","return_statement",
"throw_statement","synchronized_statement","synchronized","try_statement","catches",
"catch_clause","catch_clause_parameter","finally","primary","primary_no_new_array",
"array_type_literal","type_literals","class_instance_creation_expression","anonymous_class_creation",
"@10","@11","something_dot_new","argument_list","array_creation_expression",
"dim_exprs","dim_expr","dims","field_access","method_invocation","array_access",
"postfix_expression","post_increment_expression","post_decrement_expression",
"unary_expression","pre_increment_expression","pre_decrement_expression","unary_expression_not_plus_minus",
"cast_expression","multiplicative_expression","additive_expression","shift_expression",
"relational_expression","equality_expression","and_expression","exclusive_or_expression",
"inclusive_or_expression","conditional_and_expression","conditional_or_expression",
"conditional_expression","assignment_expression","assignment","left_hand_side",
"assignment_operator","expression","constant_expression", NULL
};
#endif
static const short yyr1[] = { 0,
110, 111, 111, 111, 111, 111, 111, 112, 112, 113,
113, 113, 114, 114, 115, 116, 117, 118, 118, 118,
118, 118, 119, 119, 120, 121, 122, 123, 123, 123,
123, 123, 123, 123, 123, 124, 124, 125, 125, 126,
126, 126, 127, 127, 128, 128, 128, 129, 129, 129,
130, 130, 130, 130, 131, 131, 133, 132, 134, 132,
132, 132, 132, 132, 135, 135, 135, 135, 136, 136,
136, 137, 137, 137, 138, 138, 139, 139, 140, 140,
140, 140, 141, 141, 141, 141, 141, 142, 142, 143,
143, 143, 144, 144, 144, 144, 145, 145, 145, 145,
145, 146, 146, 148, 147, 147, 149, 149, 149, 149,
149, 149, 149, 149, 149, 150, 150, 150, 150, 150,
151, 151, 151, 152, 152, 152, 152, 153, 154, 154,
154, 155, 155, 155, 156, 156, 156, 157, 157, 158,
160, 159, 161, 161, 162, 162, 163, 163, 163, 163,
164, 164, 165, 165, 165, 165, 166, 166, 168, 167,
169, 167, 170, 167, 171, 167, 167, 167, 172, 172,
172, 172, 173, 173, 174, 174, 175, 175, 175, 175,
176, 177, 177, 178, 178, 178, 179, 179, 179, 180,
180, 181, 182, 183, 183, 184, 184, 184, 185, 186,
186, 187, 187, 187, 187, 187, 187, 188, 188, 188,
188, 188, 189, 189, 189, 189, 189, 189, 189, 189,
189, 189, 189, 190, 191, 192, 192, 193, 194, 194,
194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
194, 195, 195, 195, 195, 195, 195, 195, 196, 196,
196, 196, 197, 198, 200, 199, 201, 201, 201, 201,
202, 202, 202, 202, 203, 203, 204, 205, 205, 206,
206, 206, 206, 206, 207, 208, 208, 208, 208, 209,
210, 211, 212, 212, 212, 212, 212, 213, 213, 214,
214, 214, 215, 216, 216, 216, 216, 217, 217, 218,
218, 218, 219, 219, 219, 219, 220, 220, 220, 220,
221, 221, 221, 221, 222, 222, 222, 223, 223, 223,
223, 223, 224, 225, 225, 225, 225, 226, 226, 227,
228, 228, 228, 228, 229, 229, 230, 230, 231, 231,
231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
231, 232, 232, 233, 233, 233, 233, 234, 234, 234,
234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
236, 235, 237, 235, 238, 238, 239, 239, 239, 240,
240, 240, 240, 240, 240, 240, 240, 241, 241, 242,
242, 242, 243, 243, 243, 244, 244, 244, 245, 245,
245, 245, 245, 245, 245, 245, 246, 246, 246, 246,
246, 246, 247, 247, 247, 247, 248, 249, 250, 250,
250, 250, 250, 250, 250, 251, 251, 252, 252, 253,
253, 253, 253, 253, 253, 254, 254, 254, 254, 254,
254, 254, 254, 254, 255, 255, 255, 255, 255, 255,
255, 256, 256, 256, 256, 256, 257, 257, 257, 257,
257, 257, 257, 258, 258, 258, 258, 258, 258, 258,
258, 258, 258, 258, 259, 259, 259, 259, 259, 260,
260, 260, 261, 261, 261, 262, 262, 262, 263, 263,
263, 264, 264, 264, 265, 265, 265, 265, 265, 266,
266, 267, 267, 268, 268, 268, 269, 269, 270, 271
};
static const short yyr2[] = { 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
3, 3, 1, 1, 1, 3, 1, 0, 1, 1,
1, 2, 2, 2, 3, 1, 2, 1, 2, 3,
2, 3, 1, 1, 3, 2, 3, 5, 4, 5,
1, 1, 1, 1, 1, 2, 0, 7, 0, 6,
3, 2, 3, 4, 0, 2, 3, 2, 0, 2,
2, 1, 3, 3, 2, 3, 1, 2, 1, 1,
1, 1, 1, 2, 1, 1, 1, 3, 4, 1,
3, 3, 1, 3, 3, 4, 1, 3, 2, 3,
3, 1, 1, 0, 3, 2, 3, 3, 4, 4,
2, 3, 2, 3, 2, 3, 4, 3, 3, 3,
1, 3, 3, 2, 3, 2, 3, 1, 0, 2,
2, 1, 3, 3, 1, 2, 1, 2, 3, 1,
0, 3, 2, 3, 3, 4, 2, 3, 3, 4,
1, 2, 4, 5, 7, 6, 1, 1, 0, 4,
0, 5, 0, 5, 0, 6, 3, 4, 2, 3,
2, 3, 2, 3, 1, 2, 1, 1, 1, 1,
1, 2, 2, 2, 3, 4, 1, 3, 3, 2,
3, 1, 1, 1, 2, 1, 1, 1, 2, 2,
3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2, 2, 3, 4, 4, 5, 4, 5, 6, 7,
6, 1, 1, 1, 1, 1, 1, 1, 5, 2,
3, 4, 7, 7, 0, 3, 4, 2, 3, 5,
2, 3, 3, 4, 1, 2, 2, 1, 2, 3,
2, 2, 3, 2, 4, 2, 2, 3, 4, 2,
1, 7, 7, 6, 3, 5, 4, 7, 6, 2,
2, 3, 2, 0, 1, 1, 2, 0, 1, 1,
3, 3, 2, 3, 2, 3, 2, 3, 2, 3,
2, 3, 2, 3, 3, 2, 3, 5, 5, 2,
4, 3, 1, 3, 3, 4, 2, 1, 2, 2,
4, 2, 3, 4, 2, 2, 1, 1, 1, 1,
3, 1, 1, 1, 1, 1, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 5, 4, 1,
4, 5, 5, 6, 3, 3, 4, 5, 2, 3,
0, 7, 0, 6, 3, 3, 1, 3, 3, 3,
3, 4, 4, 4, 4, 3, 3, 1, 2, 3,
3, 2, 2, 3, 3, 3, 3, 2, 3, 4,
5, 6, 5, 6, 4, 4, 4, 4, 3, 4,
3, 4, 1, 1, 1, 1, 2, 2, 1, 1,
2, 2, 1, 2, 2, 2, 2, 2, 2, 1,
2, 2, 1, 2, 2, 5, 4, 4, 5, 4,
2, 5, 4, 5, 1, 3, 3, 3, 3, 3,
3, 1, 3, 3, 3, 3, 1, 3, 3, 3,
3, 3, 3, 1, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 1, 3, 3, 3, 3, 1,
3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
3, 1, 3, 3, 1, 5, 4, 3, 5, 1,
1, 3, 3, 1, 1, 1, 1, 1, 1, 1
};
static const short yydefact[] = { 0,
54, 55, 0, 0, 0, 0, 53, 1, 0, 0,
0, 36, 43, 44, 38, 0, 51, 52, 46, 27,
0, 23, 24, 25, 0, 62, 0, 41, 0, 0,
37, 39, 0, 0, 56, 0, 0, 47, 45, 0,
167, 0, 0, 163, 63, 0, 69, 42, 40, 0,
0, 0, 61, 0, 49, 0, 26, 171, 17, 169,
15, 0, 160, 0, 0, 68, 16, 0, 0, 59,
168, 0, 165, 64, 69, 50, 48, 12, 0, 10,
11, 173, 0, 8, 9, 13, 14, 15, 0, 179,
181, 0, 180, 0, 175, 177, 178, 172, 170, 164,
67, 71, 72, 70, 0, 162, 0, 57, 113, 0,
129, 111, 0, 0, 90, 93, 129, 0, 0, 0,
115, 0, 0, 183, 182, 174, 176, 0, 0, 60,
166, 0, 0, 0, 0, 108, 99, 88, 0, 0,
0, 0, 107, 21, 18, 22, 20, 19, 114, 129,
112, 0, 129, 74, 73, 192, 75, 23, 0, 86,
0, 77, 79, 83, 85, 0, 80, 0, 81, 141,
129, 87, 82, 0, 58, 119, 116, 0, 128, 0,
121, 0, 131, 132, 130, 120, 118, 92, 0, 91,
95, 0, 0, 0, 0, 0, 0, 0, 340, 0,
0, 0, 0, 6, 5, 2, 3, 4, 7, 339,
0, 414, 0, 103, 413, 337, 0, 346, 342, 360,
0, 338, 343, 344, 345, 430, 415, 416, 445, 419,
420, 423, 433, 452, 457, 464, 475, 480, 483, 486,
489, 492, 495, 500, 509, 501, 0, 102, 100, 98,
101, 110, 89, 109, 190, 0, 129, 76, 78, 84,
106, 0, 138, 0, 143, 0, 0, 0, 281, 0,
0, 0, 0, 0, 0, 0, 0, 340, 0, 224,
0, 8, 414, 0, 128, 198, 0, 0, 213, 0,
194, 196, 0, 197, 202, 214, 0, 203, 215, 0,
204, 205, 216, 255, 0, 206, 0, 217, 207, 294,
0, 218, 219, 220, 222, 221, 0, 223, 248, 247,
0, 245, 246, 243, 244, 242, 126, 124, 117, 0,
0, 0, 424, 414, 343, 345, 421, 425, 422, 429,
428, 427, 426, 0, 398, 0, 0, 0, 16, 0,
434, 431, 435, 432, 441, 0, 414, 0, 184, 187,
0, 0, 0, 0, 0, 0, 96, 0, 0, 0,
369, 0, 418, 417, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 507, 508, 0, 145, 0,
144, 137, 105, 135, 139, 192, 142, 0, 231, 232,
230, 250, 0, 316, 0, 305, 303, 0, 313, 311,
0, 277, 0, 258, 0, 327, 0, 291, 0, 309,
307, 0, 0, 200, 0, 0, 0, 227, 225, 0,
0, 193, 191, 195, 199, 414, 323, 226, 229, 0,
276, 0, 414, 296, 300, 293, 0, 0, 320, 0,
123, 122, 127, 125, 134, 133, 351, 357, 0, 397,
387, 386, 365, 0, 380, 388, 0, 381, 0, 366,
0, 0, 0, 0, 0, 0, 348, 341, 185, 0,
352, 350, 356, 399, 0, 377, 409, 353, 0, 349,
354, 375, 347, 376, 396, 411, 0, 355, 370, 0,
449, 446, 450, 447, 451, 448, 455, 453, 456, 454,
461, 458, 462, 459, 463, 460, 471, 466, 473, 468,
470, 465, 472, 467, 474, 0, 469, 478, 476, 479,
477, 482, 481, 485, 484, 488, 487, 491, 490, 494,
493, 498, 0, 0, 503, 502, 146, 136, 414, 147,
0, 0, 151, 0, 251, 0, 317, 315, 306, 304,
314, 312, 278, 0, 259, 0, 0, 0, 324, 328,
0, 325, 292, 310, 308, 341, 18, 19, 0, 201,
233, 0, 0, 0, 256, 0, 297, 0, 285, 0,
0, 322, 0, 405, 406, 0, 392, 393, 0, 389,
382, 0, 385, 383, 384, 367, 359, 0, 443, 437,
440, 393, 0, 393, 0, 438, 189, 186, 188, 400,
0, 410, 407, 0, 412, 408, 361, 0, 497, 0,
0, 148, 0, 0, 152, 149, 252, 0, 279, 275,
0, 332, 0, 336, 335, 329, 326, 330, 237, 0,
234, 235, 0, 0, 0, 261, 0, 265, 0, 268,
0, 302, 301, 287, 0, 299, 0, 321, 0, 403,
0, 391, 390, 395, 394, 0, 368, 358, 442, 436,
444, 439, 379, 378, 401, 0, 362, 363, 499, 496,
0, 150, 0, 0, 0, 249, 0, 202, 0, 209,
210, 0, 211, 212, 0, 260, 333, 0, 238, 0,
0, 236, 274, 271, 272, 510, 0, 263, 266, 0,
262, 0, 269, 0, 0, 286, 0, 319, 318, 404,
374, 0, 402, 364, 0, 153, 0, 0, 0, 228,
280, 0, 334, 331, 241, 239, 0, 273, 270, 264,
0, 284, 0, 372, 0, 0, 154, 0, 253, 0,
0, 240, 282, 283, 156, 0, 0, 0, 0, 155,
0, 0, 0, 0, 289, 0, 254, 288, 0, 0,
0
};
static const short yydefgoto[] = { 789,
210, 281, 211, 85, 86, 68, 60, 87, 212, 22,
23, 24, 8, 9, 10, 11, 12, 13, 14, 15,
447, 286, 132, 105, 47, 70, 104, 130, 161, 162,
163, 91, 114, 115, 116, 213, 165, 262, 92, 111,
180, 181, 287, 136, 185, 403, 167, 168, 169, 264,
170, 171, 407, 560, 561, 288, 18, 43, 72, 65,
107, 44, 63, 94, 95, 96, 97, 214, 361, 289,
174, 563, 732, 291, 292, 293, 294, 707, 295, 296,
297, 298, 710, 299, 300, 301, 302, 711, 303, 450,
304, 595, 667, 668, 669, 670, 305, 306, 713, 307,
308, 309, 714, 310, 311, 456, 675, 676, 312, 313,
314, 315, 316, 317, 318, 579, 580, 581, 582, 215,
216, 217, 218, 219, 220, 742, 686, 221, 495, 222,
475, 476, 477, 223, 224, 225, 226, 227, 228, 229,
230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 398, 496,
727
};
static const short yypact[] = { 356,
-32768,-32768, 158, -35, 339, 439,-32768,-32768, 433, 247,
473,-32768,-32768,-32768,-32768, 29,-32768,-32768,-32768,-32768,
12,-32768,-32768,-32768, 331,-32768, 491,-32768, 71, 469,
-32768,-32768, 520, 562,-32768, -35, 510,-32768,-32768, 278,
-32768, 521, -25, -8,-32768, 526, 349,-32768,-32768, -35,
591, 343,-32768, 508,-32768, 25,-32768,-32768,-32768,-32768,
7, 1014,-32768, 568, -25,-32768,-32768, 346, 594,-32768,
-32768, -25, -8,-32768, 349,-32768,-32768,-32768, 597,-32768,
-32768,-32768, 607, 165,-32768,-32768, 315, 181, 676,-32768,
-32768, 30,-32768, 1034,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 328, 354,-32768, -25,-32768,-32768, 370,
-4,-32768, 449, 733,-32768, 201, -4, 122, 208, 377,
-32768, 608, 616,-32768,-32768,-32768,-32768, 617, 938,-32768,
-32768, 354, 629, 630, 215,-32768,-32768,-32768, 648, 2189,
227, 489,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -4,
-32768, 743, -4,-32768,-32768, 412,-32768, 425, 577,-32768,
943,-32768,-32768, 438,-32768, 47,-32768, 455,-32768,-32768,
506,-32768,-32768, 1916,-32768,-32768,-32768, 655, 569, 321,
-32768, 589,-32768,-32768, 532,-32768,-32768,-32768, 485,-32768,
-32768, 3001, 3052, 3117, 3168, 533, 18, 615,-32768, 3233,
3284, 3349, 5298,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
302, 915, 63,-32768, 542, 581, 587,-32768,-32768,-32768,
656,-32768, 766,-32768, 780, 846,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 879, 896, 937, 893, 880, 697, 701,
717, 741, 74,-32768,-32768,-32768, 841,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768, 774, 506,-32768,-32768,-32768,
-32768, 565, 690, 685,-32768, 600, 172, 3400,-32768, 206,
2240, 17, 311, 342, 82, 426, 211, 700, 5597,-32768,
-35, 651, 837, 229, 522,-32768, 589, 705,-32768, 1848,
-32768,-32768, 702,-32768,-32768,-32768, 1984,-32768,-32768, 709,
-32768,-32768,-32768,-32768, 1984,-32768, 1984,-32768,-32768, 5648,
738,-32768,-32768,-32768,-32768,-32768, 436,-32768, 806, 808,
846, 891, 908,-32768,-32768,-32768,-32768, 869,-32768, 654,
684, 686,-32768, 722,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 27,-32768, 691, 860, 724, 724, 452,
-32768,-32768,-32768,-32768,-32768, 694, 1044, 43,-32768,-32768,
669, 747, 222, 5365, 2305, 538,-32768, 279, 3465, 772,
-32768, 458,-32768,-32768, 3516, 3581, 3632, 3697, 3748, 3813,
3864, 3929, 3980, 4045, 4096, 4161, 721, 4212, 4277, 4328,
4393, 4444, 4509, 4560, 2356,-32768,-32768, 4625,-32768, 368,
-32768,-32768,-32768, 750,-32768,-32768,-32768, 1848,-32768,-32768,
-32768,-32768, 4676,-32768, 35,-32768,-32768, 56,-32768,-32768,
70,-32768, 4741,-32768, 4792,-32768, 718,-32768, 5206,-32768,
-32768, 144, 259, 762, 235, 2421, 652,-32768,-32768, -35,
2472,-32768,-32768,-32768,-32768, 1096, 569,-32768,-32768, 779,
-32768, 810, 1032,-32768,-32768,-32768, 76, 2537,-32768, 4857,
-32768,-32768,-32768, 869,-32768,-32768,-32768,-32768, -49, 789,
-32768,-32768,-32768, 2588, 724,-32768, 479, 724, 479,-32768,
2653, 4908, 240, 135, 2704, 657,-32768, 1671,-32768, 2124,
-32768,-32768,-32768,-32768, 547,-32768,-32768,-32768, 244,-32768,
-32768,-32768,-32768,-32768, 801,-32768, 251,-32768,-32768, 5416,
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 879,-32768, 879,
-32768, 896,-32768, 896,-32768, 896,-32768, 937,-32768, 937,
-32768, 937,-32768, 937,-32768, 165,-32768,-32768, 893,-32768,
893,-32768, 880,-32768, 697,-32768, 701,-32768, 717,-32768,
741,-32768, 901, 818,-32768,-32768,-32768,-32768, 1076,-32768,
1848, 815, 811, 1848,-32768, 335,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 351,-32768, 823, 463, 132, 718,-32768,
455,-32768,-32768,-32768,-32768,-32768, 819, 824, 464, 762,
-32768, 941, 66, -9,-32768, 851,-32768, 5340,-32768, 5231,
840, 854, 857,-32768,-32768, 5481,-32768,-32768, 272,-32768,
864, 294,-32768, 864,-32768,-32768, 878, 94,-32768,-32768,
-32768, 819, 4973, 824, 1120,-32768,-32768,-32768,-32768,-32768,
5024,-32768,-32768, 5532,-32768,-32768, 354, 548,-32768, 5089,
744,-32768, 1848, 2769,-32768,-32768,-32768, 2050,-32768,-32768,
263,-32768, 681,-32768,-32768,-32768,-32768,-32768,-32768, 2820,
-32768,-32768, 963, 212, 5140,-32768, 419,-32768, 1564,-32768,
5597,-32768,-32768,-32768, 881, 886, 5273,-32768, 268,-32768,
728,-32768,-32768,-32768,-32768, 354,-32768, 903,-32768,-32768,
-32768,-32768,-32768,-32768,-32768, 731,-32768, 354,-32768,-32768,
504,-32768, 173, 121, 509,-32768, 940, 944, 2050,-32768,
-32768, 2050,-32768,-32768, 904,-32768, 923, 925,-32768, 1020,
137,-32768,-32768,-32768,-32768,-32768, 262,-32768,-32768, 1646,
-32768, 1780,-32768, 932, 1984,-32768, 942,-32768,-32768,-32768,
-32768, 354,-32768,-32768, 2885,-32768, 182, 4676, 1984,-32768,
-32768, 2936,-32768,-32768,-32768,-32768, 1029,-32768,-32768,-32768,
945,-32768, 1984,-32768, 210, 177,-32768, 401,-32768, 5231,
946,-32768,-32768,-32768,-32768, 224, 2050, 947, 5273,-32768,
975, 2050, 949, 2050,-32768, 2050,-32768,-32768, 1037, 1040,
-32768
};
static const short yypgoto[] = {-32768,
-32768, -54, 157, 660, 16, -122, 582,-32768, -3, 319,
-32768, 64,-32768, 1038, 413,-32768, 69,-32768,-32768, 734,
106, 409,-32768,-32768, 997, 979,-32768, -131,-32768, 898,
-32768, -79, -116, 918, -167, -194,-32768,-32768, -64, 285,
805, -325, -129, -90,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, 907,-32768, -544,-32768, 662, -20,-32768,-32768,-32768,
-32768, 1011, 561,-32768, 978,-32768,-32768, -176,-32768, -127,
813, 784, -168, -276,-32768, 769, -251, 93, -560,-32768,
-528,-32768,-32768,-32768, -263,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768, 415, 416, -632, -527,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, -516,-32768, -667, 770,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, 511,-32768, 513,-32768,
-32768,-32768,-32768, 186,-32768,-32768,-32768,-32768, -426,-32768,
736, 126, -324, 1163, 192, 1197, 283, 379, 507, -171,
583, 704, -472,-32768, 602, 603, 481, 601, 696, 698,
695, 710, 703,-32768, 454, 706, 745,-32768,-32768, 936,
-32768
};
#define YYLAST 5757
static const short yytable[] = { 21,
175, 173, 29, 182, 462, 290, 152, 83, 360, 737,
328, 184, 38, 444, 593, 626, 642, 345, 345, 646,
337, 339, 341, 343, 479, 76, 143, 467, 352, 354,
124, 484, 486, 173, 123, 567, 733, 664, 61, 83,
263, 93, 61, 487, 604, 448, 455, 261, 134, 164,
20, 605, 665, 451, 618, 452, 569, 59, 88, 252,
61, 67, 254, 367, 166, 61, 662, 25, 27, 62,
571, 48, 35, 93, 83, 350, 597, 31, 178, 59,
265, 164, 426, 638, 59, 88, 666, 708, 394, 36,
88, 64, 135, 468, 687, 37, 166, 733, 702, 52,
54, 31, 778, 57, 123, 16, 83, 50, 172, -158,
39, 783, 40, 57, 16, 16, 16, 346, 346, 709,
712, 662, 144, 77, 61, 88, 182, 331, 125, 88,
61, 715, 654, 568, 404, 16, 488, 756, 16, 16,
172, -104, 110, 59, 584, -104, 113, 427, 708, 67,
611, 708, 692, 614, 570, 88, 16, 88, 19, 663,
395, -94, -94, 464, 434, 631, 401, 89, 572, 49,
283, 50, 412, 661, -295, 598, 156, 756, 88, 681,
709, 712, 722, 709, 712, 110, 113, 688, 334, 334,
334, 334, 715, 631, 61, 715, 334, 334, 357, 89,
182, 178, 189, 512, 514, 516, 416, 696, 146, 466,
755, 430, 723, 349, 747, 186, 708, 704, 84, 145,
631, 708, 492, 708, 772, 708, 156, 249, 623, 438,
757, 612, 440, 721, 159, 144, 631, 284, 179, 564,
621, 189, 585, 20, 632, 84, -31, 1, 709, 712,
84, 635, 88, 709, 712, 709, 712, 709, 712, 487,
715, 118, 758, 716, 413, 715, 159, 715, 738, 715,
776, 746, 682, -25, -25, 178, 631, 120, 55, 285,
767, 50, 56, 88, 372, 84, 283, 444, 493, 84,
2, 20, 140, 446, 684, 629, 20, 141, 142, 724,
613, 446, 615, 446, 417, 147, 453, 4, 775, 431,
620, 422, 187, 5, -25, 84, 439, 84, 766, -25,
-25, -25, 780, 590, 250, -25, 88, 718, 61, -25,
282, 41, 587, 418, 673, 647, 455, 622, 84, 26,
432, 633, 424, 71, 189, 7, 101, 67, 636, 759,
504, 649, 586, 284, 348, -28, 1, -257, 356, 319,
284, 179, 156, 20, 20, 320, 444, 117, 284, 683,
284, 334, 334, 334, 334, 334, 334, 334, 334, 334,
334, 334, 334, 88, 334, 334, 334, 334, 334, 334,
334, 685, 643, 42, 189, 285, 706, -66, 362, 2,
69, 647, 363, 423, 559, 42, 150, 153, 17, 470,
3, 119, 84, 455, 329, 179, 4, 17, 17, 17,
330, 30, 5, 34, 20, -159, 428, 128, 648, 57,
6, 505, -30, 1, 425, 179, 459, -161, 17, 28,
-66, 17, 17, 84, 650, 51, 282, 158, 129, 137,
655, 690, 480, 658, 7, 444, 321, 448, 509, 17,
451, 557, 133, 652, 659, 664, 282, 330, -34, 1,
90, 284, -29, 1, 148, 319, 2, 158, 334, 158,
665, 320, 319, 762, 334, 137, 84, 3, 320, 251,
319, 45, 319, 4, 777, 319, 320, 769, 320, 5,
57, 320, 90, 189, 659, 697, 455, 255, 74, 412,
53, 774, 2, 285, 728, 455, 2, 256, 429, -32,
1, 58, -323, 182, 20, 706, 66, 3, 460, 4,
762, 7, 769, 4, 774, 5, 260, 160, 500, 5,
-97, 133, -65, 536, 481, -97, -97, -97, -97, 156,
510, 739, 322, 46, 741, 653, 660, 283, 134, -65,
283, -33, 1, 2, 282, 35, 744, 7, 98, 160,
46, 7, 321, 203, 3, 612, -97, 121, -97, 321,
4, -97, -97, -97, -97, -65, 5, 321, 37, 321,
-35, 1, 321, 319, 102, 20, 745, 109, 178, 320,
610, 748, -65, 610, 501, 2, 20, 112, 149, 502,
764, 20, 35, 503, -323, 347, 151, 154, 7, 334,
35, 334, 4, 20, 284, 100, 78, 284, 5, 176,
183, 332, 106, 344, 2, 122, 334, 36, 78, 283,
630, 698, 368, 37, 446, 99, 631, 631, 188, 88,
103, 4, 500, 20, 461, 327, 371, 5, 80, 156,
7, 81, 20, 402, 78, 283, 285, 131, 322, 285,
80, -140, 2, 81, 20, 322, 121, 369, 78, 20,
323, 717, 20, 322, 463, 322, 465, 370, 322, 7,
321, 469, 20, 20, 409, 410, 80, 2, 411, 81,
20, 20, 20, 78, 57, 446, 284, 390, 446, 155,
80, 284, 391, 81, 20, 20, 589, 282, 501, 35,
282, 535, 177, 502, 2, 78, 283, 503, 283, 392,
78, 446, 284, 20, 122, 80, 36, 20, 81, 20,
20, 20, 37, 32, 500, 446, 319, 435, 285, 319,
625, 363, 320, 612, 393, 320, 324, 80, 179, 446,
81, 20, 80, 32, 489, 81, 20, 32, 490, 20,
78, 20, 284, 446, 285, 284, 20, 577, 446, 406,
446, 578, 446, 319, 32, 319, 322, 482, 405, 320,
483, 320, -157, 284, 363, 284, 323, 441, 284, 282,
445, 750, 80, 323, 751, 81, 20, 449, 701, 84,
501, 323, 284, 323, 364, 502, 323, 2, 365, 503,
474, 740, 366, 78, 743, 282, 284, 631, 319, 20,
631, 138, 139, 319, 320, 285, 458, 285, 508, 320,
284, 253, 139, 321, 491, 284, 321, 284, 558, 284,
-342, -342, -344, -344, 319, 80, -505, -505, 81, 20,
320, 139, 319, 528, 530, 532, 534, 399, 320, 781,
-506, -506, 324, 594, 785, 596, 787, 325, 788, 324,
321, 606, 321, 375, 376, 377, 282, 324, 282, 324,
373, 374, 324, 634, 319, 388, 389, 319, 378, 379,
320, 639, -342, 320, -344, 640, -342, 644, -344, 645,
383, 384, 385, 386, 323, 319, 651, 319, 326, -352,
319, 320, -15, 320, -353, 321, 320, -504, -504, 364,
321, 396, 397, 436, 319, -415, -415, 437, 677, 322,
320, 661, 322, 671, 380, 381, 382, 678, 319, 387,
679, 321, -416, -416, 320, 319, 471, 472, 473, 321,
612, 320, 319, 722, 319, 141, 142, 319, 320, 319,
320, 319, -373, 320, 735, 320, 322, 320, 322, 518,
520, 2, 522, 524, 526, 598, 2, 78, 539, 541,
324, 321, 78, 325, 321, 749, 79, -371, 4, -208,
325, 79, 752, 4, 5, -504, -504, 364, 325, 5,
325, 365, 321, 325, 321, 366, 753, 321, 754, 80,
755, 322, 81, 20, 80, 761, 322, 81, 20, 772,
784, 321, 156, 157, 326, 763, 790, 156, 258, 791,
782, 326, 786, 773, 779, 321, 537, 322, 33, 326,
75, 326, 321, 108, 326, 322, 190, 2, 259, 321,
400, 321, 73, 78, 321, 257, 321, 323, 321, 562,
323, 127, 79, 443, 4, 248, 408, 2, 454, 457,
5, 729, 730, 78, 478, 543, 547, 322, 545, 656,
322, 657, 79, 700, 4, 80, 551, 0, 81, 20,
5, 0, 549, 556, 323, 0, 323, 0, 322, 82,
322, 325, 0, 322, 0, 80, 0, -15, 81, 20,
691, 0, -504, -504, 364, 0, 0, 322, 436, 126,
0, 0, 366, 0, -504, -504, 364, 358, 248, 0,
485, 322, 0, 324, 366, 0, 324, 0, 322, 323,
0, 0, 326, 0, 323, 322, 0, 322, 0, 0,
322, -15, 322, 0, 322, 0, -504, -504, 364, 78,
0, 0, 436, 0, 0, 323, 641, 0, 196, 0,
324, 0, 324, 323, 197, 0, -504, -504, 364, 0,
0, 198, 365, 0, 0, 199, 437, 0, 0, 0,
0, 80, 0, 415, 81, 20, 421, 0, 200, 201,
0, 0, 202, 0, 433, 323, 0, 0, 323, 0,
0, 204, 205, 206, 207, 324, 0, 208, 209, 0,
324, 0, 0, 0, 0, 0, 323, 0, 323, 0,
0, 323, 0, 0, 0, 0, 0, 0, 0, 0,
0, 324, 0, 0, 0, 323, 0, 0, 0, 324,
0, 0, 0, 0, 325, 0, 0, 325, 0, 323,
0, 0, 0, 0, 0, 0, 323, 0, 0, 0,
0, 0, 0, 323, 0, 323, 0, 0, 323, 0,
323, 324, 323, 0, 324, 0, 0, 0, 0, 0,
499, 325, 0, 325, 507, 326, 0, 0, 326, 0,
0, 0, 324, 0, 324, 0, 0, 324, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
554, 324, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 326, 0, 326, 324, 325, 0, 566, 0,
0, 325, 324, 0, 335, 335, 335, 335, 574, 324,
576, 324, 335, 335, 324, 0, 324, 0, 324, 0,
0, 499, 325, 0, 0, 0, 0, 0, 0, 0,
325, 0, 0, 0, 0, 0, 0, 326, 336, 336,
336, 336, 326, 601, 0, 603, 336, 336, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 609,
0, 0, 325, 326, 0, 325, 0, 0, 0, 0,
499, 326, 0, 0, 0, 248, 0, 0, 0, 0,
0, 0, 0, 325, 0, 325, 0, 0, 325, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 325, 326, 0, 0, 326, 0, 0, 0,
0, 0, 0, 0, 0, 0, 325, 0, 0, 0,
0, 0, 0, 325, 326, 0, 326, 0, 0, 326,
325, 0, 325, 0, 0, 325, 0, 325, 0, 325,
0, 0, 0, 326, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 326, 0, 0,
0, 0, 0, 0, 326, 0, 0, 0, 0, 0,
0, 326, 0, 326, 0, 0, 326, 0, 326, 0,
326, 0, 0, 0, 0, 0, 0, 335, 335, 335,
335, 335, 335, 335, 335, 335, 335, 335, 335, 0,
335, 335, 335, 335, 335, 335, 335, 0, 0, 0,
0, 0, 0, 0, 266, 0, 694, 0, 0, 0,
0, 336, 336, 336, 336, 336, 336, 336, 336, 336,
336, 336, 336, 0, 336, 336, 336, 336, 336, 336,
336, 0, 0, 0, 0, 0, 0, 0, 0, 0,
726, 0, 0, 0, 0, 0, 734, 2, 194, 195,
664, 267, 268, 78, 269, 0, 0, 270, 0, 0,
0, 271, 196, 0, 0, 665, 0, 0, 272, 273,
5, 274, 0, 275, 276, 198, 277, 0, 0, 278,
0, 0, 0, 0, 335, 80, 266, 0, 81, 20,
335, 0, 0, 0, 0, 0, 279, 0, 156, 731,
0, 0, 280, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 0, 0, 0, 0, 0, 336, 0,
0, 0, 0, 768, 336, 0, 0, 771, 0, 2,
194, 195, 664, 267, 268, 78, 269, 0, 0, 270,
0, 0, 0, 271, 196, 0, 0, 665, 0, 0,
272, 273, 5, 274, 0, 275, 276, 198, 277, 0,
78, 278, 0, 0, 0, 0, 0, 80, 0, 196,
81, 20, 0, 0, 0, 197, 0, 0, 279, 0,
156, 760, 198, 0, 280, 0, 199, 204, 205, 206,
207, 0, 80, 208, 209, 81, 20, 0, 0, 200,
201, 0, 0, 202, 0, 0, 0, 0, 0, 0,
0, 0, 204, 205, 206, 207, 0, 0, 208, 209,
266, 0, 0, 0, 0, 335, 0, 335, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 335, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 336,
0, 336, 0, 2, 194, 195, -267, 267, 268, 78,
269, 0, 0, 270, 0, 0, 336, 271, 196, 0,
0, -267, 0, 0, 272, 273, 5, 274, 266, 275,
276, 198, 277, 0, 0, 278, 0, 0, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 0, 0,
0, 0, 279, 0, 156, -267, 0, 0, 280, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, 0,
0, 2, 194, 195, 0, 267, 268, 78, 269, 0,
0, 270, 0, 0, 0, 271, 196, 0, 0, 0,
0, 0, 272, 273, 5, 274, 266, 275, 276, 198,
277, 0, 0, 278, 0, 0, 0, 0, 0, 80,
0, 0, 81, 20, 0, 0, 0, 0, 0, 0,
279, 0, 156, 442, 0, 0, 280, 0, 0, 204,
205, 206, 207, 0, 0, 208, 209, 0, 0, 2,
194, 195, 0, 267, 268, 78, 269, 0, 0, 270,
0, 0, 0, 271, 196, 0, 0, 0, 0, 0,
272, 273, 5, 274, 266, 275, 276, 198, 277, 0,
0, 278, 0, 0, 0, 0, 0, 80, 0, 0,
81, 20, 0, 0, 0, 0, 0, 0, 279, 0,
156, 0, 0, 0, 280, 0, 0, 204, 205, 206,
207, 0, 0, 208, 209, 0, 0, 2, 194, 195,
0, 267, 268, 78, 269, 0, 0, 270, 0, 0,
0, 271, 196, 0, 0, 0, 0, 0, 272, 273,
266, 274, 0, 275, 276, 198, 277, 0, 0, 278,
0, 0, 0, 0, 0, 80, 0, 0, 81, 20,
0, 0, 0, 0, 0, 0, 279, 0, 156, 0,
0, 0, 280, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 2, 194, 195, 0, 705, 268, 78,
269, 0, 0, 270, 0, 0, 0, 271, 196, 0,
0, 0, 0, 0, 272, 273, 0, 274, 0, 275,
276, 198, 277, 0, 627, 278, 192, 193, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 0, 0,
0, 0, 279, 0, 156, 0, 0, 0, 280, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, 0,
0, 0, 0, 0, 0, 0, 0, 0, 194, 195,
0, 0, 0, 78, 0, 0, 0, 0, 0, 0,
0, 0, 196, 0, 0, 0, 0, 0, 197, 191,
0, 192, 193, 0, 0, 198, 0, 0, 0, 199,
0, 0, 0, 0, 0, 80, 0, 0, 81, 20,
0, 0, 200, 201, 0, 0, 202, 0, 203, 628,
0, 0, 0, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 194, 195, 0, 0, 0, 78, 0,
419, 0, 192, 193, 0, 0, 0, 196, 0, 0,
0, 0, 0, 197, 0, 0, 0, 0, 0, 0,
198, 0, 0, 0, 199, 0, 0, 0, 0, 0,
80, 0, 0, 81, 20, 0, 0, 200, 201, 0,
0, 202, 0, 203, 194, 195, 0, 0, 0, 78,
204, 205, 206, 207, 0, 0, 208, 209, 196, 0,
0, 0, 0, 0, 197, 497, 0, 192, 193, 0,
0, 198, 0, 0, 0, 199, 0, 0, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 200, 201,
0, 0, 202, 0, 0, 0, 0, 0, 420, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, 194,
195, 0, 0, 0, 78, 0, 552, 0, 192, 193,
0, 0, 0, 196, 0, 0, 0, 0, 0, 197,
0, 0, 0, 0, 0, 0, 198, 0, 0, 0,
199, 0, 0, 0, 0, 0, 80, 0, 0, 81,
20, 0, 0, 200, 201, 0, 0, 202, 0, 0,
194, 195, 498, 0, 0, 78, 204, 205, 206, 207,
0, 0, 208, 209, 196, 0, 0, 0, 0, 0,
197, 497, 0, 192, 193, 0, 0, 198, 0, 0,
0, 199, 0, 0, 0, 0, 0, 80, 0, 0,
81, 20, 0, 553, 200, 201, 0, 0, 202, 0,
0, 0, 0, 0, 0, 0, 0, 204, 205, 206,
207, 0, 0, 208, 209, 194, 195, 0, 0, 0,
78, 0, 591, 0, 192, 193, 0, 0, 0, 196,
0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
0, 0, 198, 0, 0, 0, 199, 0, 0, 0,
0, 0, 80, 0, 0, 81, 20, 0, 0, 200,
201, 0, 0, 202, 0, 0, 194, 195, 588, 0,
0, 78, 204, 205, 206, 207, 0, 0, 208, 209,
196, 0, 0, 0, 0, 0, 197, 599, 0, 192,
193, 0, 0, 198, 0, 0, 0, 199, 0, 0,
0, 0, 0, 80, 0, 0, 81, 20, 0, 0,
200, 201, 0, 0, 202, 592, 0, 0, 0, 0,
0, 0, 0, 204, 205, 206, 207, 0, 0, 208,
209, 194, 195, 0, 0, 0, 78, 0, 607, 0,
192, 193, 0, 0, 0, 196, 0, 0, 0, 0,
0, 197, 0, 0, 0, 0, 0, 0, 198, 0,
0, 0, 199, 0, 0, 0, 0, 0, 80, 0,
0, 81, 20, 0, 0, 200, 201, 0, 0, 202,
0, 0, 194, 195, 0, 600, 0, 78, 204, 205,
206, 207, 0, 0, 208, 209, 196, 0, 0, 0,
0, 0, 197, 616, 0, 192, 193, 0, 0, 198,
0, 0, 0, 199, 0, 0, 0, 0, 0, 80,
0, 0, 81, 20, 0, 0, 200, 201, 0, 0,
202, 0, 0, 0, 0, 608, 0, 0, 0, 204,
205, 206, 207, 0, 0, 208, 209, 194, 195, 0,
0, 0, 78, 0, 497, 0, 192, 193, 0, 0,
0, 196, 0, 0, 0, 0, 0, 197, 0, 0,
0, 0, 0, 0, 198, 0, 0, 0, 199, 0,
0, 0, 0, 0, 80, 0, 0, 81, 20, 0,
0, 200, 201, 0, 0, 202, 617, 0, 194, 195,
0, 0, 0, 78, 204, 205, 206, 207, 0, 0,
208, 209, 196, 0, 0, 0, 0, 0, 197, 591,
0, 192, 193, 0, 0, 198, 0, 0, 0, 199,
0, 0, 0, 0, 0, 80, 0, 0, 81, 20,
0, 0, 200, 201, 0, 0, 202, 0, 0, 0,
0, 624, 0, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 194, 195, 0, 0, 0, 78, 0,
719, 0, 192, 193, 0, 0, 0, 196, 0, 0,
0, 0, 0, 197, 0, 0, 0, 0, 0, 0,
198, 0, 0, 0, 199, 0, 0, 0, 0, 0,
80, 0, 0, 81, 20, 0, 0, 200, 201, 0,
0, 202, 703, 0, 194, 195, 0, 0, 0, 78,
204, 205, 206, 207, 0, 0, 208, 209, 196, 0,
0, 0, 0, 0, 197, 719, 0, 192, 193, 0,
0, 198, 0, 0, 0, 199, 0, 0, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 200, 201,
0, 0, 202, 720, 0, 0, 0, 0, 0, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, 194,
195, 0, 0, 0, 78, 0, 599, 0, 192, 193,
0, 0, 0, 196, 0, 0, 0, 0, 0, 197,
0, 0, 0, 0, 0, 0, 198, 0, 0, 0,
199, 0, 0, 0, 0, 0, 80, 0, 0, 81,
20, 0, 0, 200, 201, 0, 0, 202, 765, 0,
194, 195, 0, 0, 0, 78, 204, 205, 206, 207,
0, 0, 208, 209, 196, 0, 0, 0, 0, 0,
197, 333, 0, 192, 193, 0, 0, 198, 0, 0,
0, 199, 0, 0, 0, 0, 0, 80, 0, 0,
81, 20, 0, 0, 200, 201, 0, 0, 202, 0,
0, 0, 0, 0, 770, 0, 0, 204, 205, 206,
207, 0, 0, 208, 209, 194, 195, 0, 0, 0,
78, 0, 338, 0, 192, 193, 0, 0, 0, 196,
0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
0, 0, 198, 0, 0, 0, 199, 0, 0, 0,
0, 0, 80, 0, 0, 81, 20, 0, 0, 200,
201, 0, 0, 202, 0, 0, 194, 195, 0, 0,
0, 78, 204, 205, 206, 207, 0, 0, 208, 209,
196, 0, 0, 0, 0, 0, 197, 340, 0, 192,
193, 0, 0, 198, 0, 0, 0, 199, 0, 0,
0, 0, 0, 80, 0, 0, 81, 20, 0, 0,
200, 201, 0, 0, 202, 0, 0, 0, 0, 0,
0, 0, 0, 204, 205, 206, 207, 0, 0, 208,
209, 194, 195, 0, 0, 0, 78, 0, 342, 0,
192, 193, 0, 0, 0, 196, 0, 0, 0, 0,
0, 197, 0, 0, 0, 0, 0, 0, 198, 0,
0, 0, 199, 0, 0, 0, 0, 0, 80, 0,
0, 81, 20, 0, 0, 200, 201, 0, 0, 202,
0, 0, 194, 195, 0, 0, 0, 78, 204, 205,
206, 207, 0, 0, 208, 209, 196, 0, 0, 0,
0, 0, 197, 351, 0, 192, 193, 0, 0, 198,
0, 0, 0, 199, 0, 0, 0, 0, 0, 80,
0, 0, 81, 20, 0, 0, 200, 201, 0, 0,
202, 0, 0, 0, 0, 0, 0, 0, 0, 204,
205, 206, 207, 0, 0, 208, 209, 194, 195, 0,
0, 0, 78, 0, 353, 0, 192, 193, 0, 0,
0, 196, 0, 0, 0, 0, 0, 197, 0, 0,
0, 0, 0, 0, 198, 0, 0, 0, 199, 0,
0, 0, 0, 0, 80, 0, 0, 81, 20, 0,
0, 200, 201, 0, 0, 202, 0, 0, 194, 195,
0, 0, 0, 78, 204, 205, 206, 207, 0, 0,
208, 209, 196, 0, 0, 0, 0, 0, 197, 355,
0, 192, 193, 0, 0, 198, 0, 0, 0, 199,
0, 0, 0, 0, 0, 80, 0, 0, 81, 20,
0, 0, 200, 201, 0, 0, 202, 0, 0, 0,
0, 0, 0, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 194, 195, 0, 0, 0, 78, 0,
414, 0, 192, 193, 0, 0, 0, 196, 0, 0,
0, 0, 0, 197, 0, 0, 0, 0, 0, 0,
198, 0, 0, 0, 199, 0, 0, 0, 0, 0,
80, 0, 0, 81, 20, 0, 0, 200, 201, 0,
0, 202, 0, 0, 194, 195, 0, 0, 0, 78,
204, 205, 206, 207, 0, 0, 208, 209, 196, 0,
0, 0, 0, 0, 197, 506, 0, 192, 193, 0,
0, 198, 0, 0, 0, 199, 0, 0, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 200, 201,
0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, 194,
195, 0, 0, 0, 78, 0, 511, 0, 192, 193,
0, 0, 0, 196, 0, 0, 0, 0, 0, 197,
0, 0, 0, 0, 0, 0, 198, 0, 0, 0,
199, 0, 0, 0, 0, 0, 80, 0, 0, 81,
20, 0, 0, 200, 201, 0, 0, 202, 0, 0,
194, 195, 0, 0, 0, 78, 204, 205, 206, 207,
0, 0, 208, 209, 196, 0, 0, 0, 0, 0,
197, 513, 0, 192, 193, 0, 0, 198, 0, 0,
0, 199, 0, 0, 0, 0, 0, 80, 0, 0,
81, 20, 0, 0, 200, 201, 0, 0, 202, 0,
0, 0, 0, 0, 0, 0, 0, 204, 205, 206,
207, 0, 0, 208, 209, 194, 195, 0, 0, 0,
78, 0, 515, 0, 192, 193, 0, 0, 0, 196,
0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
0, 0, 198, 0, 0, 0, 199, 0, 0, 0,
0, 0, 80, 0, 0, 81, 20, 0, 0, 200,
201, 0, 0, 202, 0, 0, 194, 195, 0, 0,
0, 78, 204, 205, 206, 207, 0, 0, 208, 209,
196, 0, 0, 0, 0, 0, 197, 517, 0, 192,
193, 0, 0, 198, 0, 0, 0, 199, 0, 0,
0, 0, 0, 80, 0, 0, 81, 20, 0, 0,
200, 201, 0, 0, 202, 0, 0, 0, 0, 0,
0, 0, 0, 204, 205, 206, 207, 0, 0, 208,
209, 194, 195, 0, 0, 0, 78, 0, 519, 0,
192, 193, 0, 0, 0, 196, 0, 0, 0, 0,
0, 197, 0, 0, 0, 0, 0, 0, 198, 0,
0, 0, 199, 0, 0, 0, 0, 0, 80, 0,
0, 81, 20, 0, 0, 200, 201, 0, 0, 202,
0, 0, 194, 195, 0, 0, 0, 78, 204, 205,
206, 207, 0, 0, 208, 209, 196, 0, 0, 0,
0, 0, 197, 521, 0, 192, 193, 0, 0, 198,
0, 0, 0, 199, 0, 0, 0, 0, 0, 80,
0, 0, 81, 20, 0, 0, 200, 201, 0, 0,
202, 0, 0, 0, 0, 0, 0, 0, 0, 204,
205, 206, 207, 0, 0, 208, 209, 194, 195, 0,
0, 0, 78, 0, 523, 0, 192, 193, 0, 0,
0, 196, 0, 0, 0, 0, 0, 197, 0, 0,
0, 0, 0, 0, 198, 0, 0, 0, 199, 0,
0, 0, 0, 0, 80, 0, 0, 81, 20, 0,
0, 200, 201, 0, 0, 202, 0, 0, 194, 195,
0, 0, 0, 78, 204, 205, 206, 207, 0, 0,
208, 209, 196, 0, 0, 0, 0, 0, 197, 525,
0, 192, 193, 0, 0, 198, 0, 0, 0, 199,
0, 0, 0, 0, 0, 80, 0, 0, 81, 20,
0, 0, 200, 201, 0, 0, 202, 0, 0, 0,
0, 0, 0, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 194, 195, 0, 0, 0, 78, 0,
527, 0, 192, 193, 0, 0, 0, 196, 0, 0,
0, 0, 0, 197, 0, 0, 0, 0, 0, 0,
198, 0, 0, 0, 199, 0, 0, 0, 0, 0,
80, 0, 0, 81, 20, 0, 0, 200, 201, 0,
0, 202, 0, 0, 194, 195, 0, 0, 0, 78,
204, 205, 206, 207, 0, 0, 208, 209, 196, 0,
0, 0, 0, 0, 197, 529, 0, 192, 193, 0,
0, 198, 0, 0, 0, 199, 0, 0, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 200, 201,
0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, 194,
195, 0, 0, 0, 78, 0, 531, 0, 192, 193,
0, 0, 0, 196, 0, 0, 0, 0, 0, 197,
0, 0, 0, 0, 0, 0, 198, 0, 0, 0,
199, 0, 0, 0, 0, 0, 80, 0, 0, 81,
20, 0, 0, 200, 201, 0, 0, 202, 0, 0,
194, 195, 0, 0, 0, 78, 204, 205, 206, 207,
0, 0, 208, 209, 196, 0, 0, 0, 0, 0,
197, 533, 0, 192, 193, 0, 0, 198, 0, 0,
0, 199, 0, 0, 0, 0, 0, 80, 0, 0,
81, 20, 0, 0, 200, 201, 0, 0, 202, 0,
0, 0, 0, 0, 0, 0, 0, 204, 205, 206,
207, 0, 0, 208, 209, 194, 195, 0, 0, 0,
78, 0, 538, 0, 192, 193, 0, 0, 0, 196,
0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
0, 0, 198, 0, 0, 0, 199, 0, 0, 0,
0, 0, 80, 0, 0, 81, 20, 0, 0, 200,
201, 0, 0, 202, 0, 0, 194, 195, 0, 0,
0, 78, 204, 205, 206, 207, 0, 0, 208, 209,
196, 0, 0, 0, 0, 0, 197, 540, 0, 192,
193, 0, 0, 198, 0, 0, 0, 199, 0, 0,
0, 0, 0, 80, 0, 0, 81, 20, 0, 0,
200, 201, 0, 0, 202, 0, 0, 0, 0, 0,
0, 0, 0, 204, 205, 206, 207, 0, 0, 208,
209, 194, 195, 0, 0, 0, 78, 0, 542, 0,
192, 193, 0, 0, 0, 196, 0, 0, 0, 0,
0, 197, 0, 0, 0, 0, 0, 0, 198, 0,
0, 0, 199, 0, 0, 0, 0, 0, 80, 0,
0, 81, 20, 0, 0, 200, 201, 0, 0, 202,
0, 0, 194, 195, 0, 0, 0, 78, 204, 205,
206, 207, 0, 0, 208, 209, 196, 0, 0, 0,
0, 0, 197, 544, 0, 192, 193, 0, 0, 198,
0, 0, 0, 199, 0, 0, 0, 0, 0, 80,
0, 0, 81, 20, 0, 0, 200, 201, 0, 0,
202, 0, 0, 0, 0, 0, 0, 0, 0, 204,
205, 206, 207, 0, 0, 208, 209, 194, 195, 0,
0, 0, 78, 0, 546, 0, 192, 193, 0, 0,
0, 196, 0, 0, 0, 0, 0, 197, 0, 0,
0, 0, 0, 0, 198, 0, 0, 0, 199, 0,
0, 0, 0, 0, 80, 0, 0, 81, 20, 0,
0, 200, 201, 0, 0, 202, 0, 0, 194, 195,
0, 0, 0, 78, 204, 205, 206, 207, 0, 0,
208, 209, 196, 0, 0, 0, 0, 0, 197, 548,
0, 192, 193, 0, 0, 198, 0, 0, 0, 199,
0, 0, 0, 0, 0, 80, 0, 0, 81, 20,
0, 0, 200, 201, 0, 0, 202, 0, 0, 0,
0, 0, 0, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 194, 195, 0, 0, 0, 78, 0,
550, 0, 192, 193, 0, 0, 0, 196, 0, 0,
0, 0, 0, 197, 0, 0, 0, 0, 0, 0,
198, 0, 0, 0, 199, 0, 0, 0, 0, 0,
80, 0, 0, 81, 20, 0, 0, 200, 201, 0,
0, 202, 0, 0, 194, 195, 0, 0, 0, 78,
204, 205, 206, 207, 0, 0, 208, 209, 196, 0,
0, 0, 0, 0, 197, 555, 0, 192, 193, 0,
0, 198, 0, 0, 0, 199, 0, 0, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 200, 201,
0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, 194,
195, 0, 0, 0, 78, 0, 565, 0, 192, 193,
0, 0, 0, 196, 0, 0, 0, 0, 0, 197,
0, 0, 0, 0, 0, 0, 198, 0, 0, 0,
199, 0, 0, 0, 0, 0, 80, 0, 0, 81,
20, 0, 0, 200, 201, 0, 0, 202, 0, 0,
194, 195, 0, 0, 0, 78, 204, 205, 206, 207,
0, 0, 208, 209, 196, 0, 0, 0, 0, 0,
197, 573, 0, 192, 193, 0, 0, 198, 0, 0,
0, 199, 0, 0, 0, 0, 0, 80, 0, 0,
81, 20, 0, 0, 200, 201, 0, 0, 202, 0,
0, 0, 0, 0, 0, 0, 0, 204, 205, 206,
207, 0, 0, 208, 209, 194, 195, 0, 0, 0,
78, 0, 575, 0, 192, 193, 0, 0, 0, 196,
0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
0, 0, 198, 0, 0, 0, 199, 0, 0, 0,
0, 0, 80, 0, 0, 81, 20, 0, 0, 200,
201, 0, 0, 202, 0, 0, 194, 195, 0, 0,
0, 78, 204, 205, 206, 207, 0, 0, 208, 209,
196, 0, 0, 0, 0, 0, 197, 602, 0, 192,
193, 0, 0, 198, 0, 0, 0, 199, 0, 0,
0, 0, 0, 80, 0, 0, 81, 20, 0, 0,
200, 201, 0, 0, 202, 0, 0, 0, 0, 0,
0, 0, 0, 204, 205, 206, 207, 0, 0, 208,
209, 194, 195, 0, 0, 0, 78, 0, 619, 0,
192, 193, 0, 0, 0, 196, 0, 0, 0, 0,
0, 197, 0, 0, 0, 0, 0, 0, 198, 0,
0, 0, 199, 0, 0, 0, 0, 0, 80, 0,
0, 81, 20, 0, 0, 200, 201, 0, 0, 202,
0, 0, 194, 195, 0, 0, 0, 78, 204, 205,
206, 207, 0, 0, 208, 209, 196, 0, 0, 0,
0, 0, 197, 689, 0, 192, 193, 0, 0, 198,
0, 0, 0, 199, 0, 0, 0, 0, 0, 80,
0, 0, 81, 20, 0, 0, 200, 201, 0, 0,
202, 0, 0, 0, 0, 0, 0, 0, 0, 204,
205, 206, 207, 0, 0, 208, 209, 194, 195, 0,
0, 0, 78, 0, 693, 0, 192, 193, 0, 0,
0, 196, 0, 0, 0, 0, 0, 197, 0, 0,
0, 0, 0, 0, 198, 0, 0, 0, 199, 0,
0, 0, 0, 0, 80, 0, 0, 81, 20, 0,
0, 200, 201, 0, 0, 202, 0, 0, 194, 195,
0, 0, 0, 78, 204, 205, 206, 207, 0, 0,
208, 209, 196, 0, 0, 0, 0, 0, 197, 699,
0, 192, 193, 0, 0, 198, 0, 0, 0, 199,
0, 0, 0, 0, 0, 80, 0, 0, 81, 20,
0, 0, 200, 201, 0, 0, 202, 0, 0, 0,
0, 0, 0, 0, 0, 204, 205, 206, 207, 0,
0, 208, 209, 194, 195, 0, 0, 0, 78, 0,
725, 0, 192, 193, 0, 0, 0, 196, 0, 0,
0, 0, 0, 197, 0, 0, 0, 0, 0, 0,
198, 0, 0, 0, 199, 0, 0, 0, 0, 0,
80, 0, 0, 81, 20, 0, 0, 200, 201, 0,
0, 202, 0, 0, 194, 195, 0, 0, 0, 78,
204, 205, 206, 207, 0, 0, 208, 209, 196, 0,
0, 0, 0, 0, 197, 0, 583, 0, 0, 0,
0, 198, 0, 0, 0, 199, 0, 0, 0, 0,
0, 80, 0, 0, 81, 20, 0, 0, 200, 201,
0, 674, 202, 0, 0, 0, 0, 0, 0, 0,
0, 204, 205, 206, 207, 0, 0, 208, 209, -290,
-290, -290, 0, 0, 0, -290, 0, 0, 0, 0,
0, 0, 0, 0, -290, 0, 0, 0, 0, 0,
-290, 0, 0, 736, 0, 194, 195, -290, 0, 0,
78, -290, 0, 0, 0, 0, 0, -290, 0, 196,
-290, -290, 0, 0, 0, 197, 0, 0, -290, 0,
192, 193, 198, 0, -290, 0, 199, -290, -290, -290,
-290, 0, 80, -290, -290, 81, 20, 194, 195, 0,
0, 0, 78, 279, -298, 0, 0, 0, 0, 0,
0, 196, 204, 205, 206, 207, 0, 197, 208, 209,
672, 0, 194, 195, 198, 0, 0, 78, 199, 0,
0, 0, 0, 0, 80, 0, 196, 81, 20, 0,
0, 0, 197, 0, 0, 279, -298, 192, 193, 198,
0, 0, 0, 199, 204, 205, 206, 207, 0, 80,
208, 209, 81, 20, 194, 195, 200, 201, 0, 78,
202, 0, 203, 359, 0, 0, 0, 0, 196, 204,
205, 206, 207, 0, 197, 208, 209, 0, 0, 194,
195, 198, 0, 0, 78, 199, 0, 0, 192, 193,
0, 80, 0, 196, 81, 20, 0, 0, 0, 197,
0, 0, 279, 0, 0, 0, 198, 0, 0, 0,
199, 204, 205, 206, 207, 0, 80, 208, 209, 81,
20, 0, 0, 200, 201, 0, 0, 202, 494, 0,
194, 195, 0, 0, 0, 78, 204, 205, 206, 207,
0, 0, 208, 209, 196, 0, 0, 0, 0, 0,
197, 0, 0, 192, 193, 0, 0, 198, 0, 0,
0, 199, 0, 0, 0, 0, 0, 80, 0, 0,
81, 20, 0, 0, 200, 201, 0, 0, 202, 637,
0, 0, 0, 0, 0, 0, 0, 204, 205, 206,
207, 0, 0, 208, 209, 194, 195, 0, 0, 0,
78, 0, 0, 0, 192, 193, 0, 0, 0, 196,
0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
0, 0, 198, 0, 0, 0, 199, 0, 0, 0,
0, 0, 80, 0, 0, 81, 20, 0, 0, 200,
201, 0, 0, 202, 680, 0, 194, 195, 0, 0,
0, 78, 204, 205, 206, 207, 0, 0, 208, 209,
196, 0, 0, 0, 0, 0, 197, 0, 0, 192,
193, 0, 0, 198, 0, 0, 0, 199, 0, 0,
0, 0, 0, 80, 0, 0, 81, 20, 0, 0,
200, 201, 0, 0, 202, 695, 0, 0, 0, 0,
0, 0, 0, 204, 205, 206, 207, 0, 0, 208,
209, 194, 195, 0, 0, 0, 78, 0, 0, 0,
0, 0, 0, 0, 0, 196, 0, 0, 0, 0,
0, 197, 0, 0, 0, 0, 0, 0, 198, 0,
0, 0, 199, 0, 0, 0, 0, 0, 80, 0,
0, 81, 20, 0, 0, 200, 201, 0, 0, 202,
0, 2, 194, 195, 0, 0, 0, 78, 204, 205,
206, 207, 0, 0, 208, 209, 196, 0, 0, 0,
0, 0, 197, 0, 0, 0, 0, 0, 0, 198,
0, 0, 0, 199, 0, 0, 0, 0, 0, 80,
0, 0, 81, 20, 0, 0, 0, 0, 0, 0,
279, 0, 0, 0, 0, 0, 0, 0, 0, 204,
205, 206, 207, 0, 0, 208, 209
};
static const short yycheck[] = { 3,
132, 129, 6, 133, 330, 174, 123, 62, 203, 677,
178, 134, 1, 290, 441, 488, 561, 1, 1, 564,
192, 193, 194, 195, 349, 1, 117, 1, 200, 201,
1, 356, 357, 161, 89, 1, 669, 47, 42, 94,
168, 62, 46, 1, 94, 297, 310, 1, 53, 129,
86, 101, 62, 305, 481, 307, 1, 42, 62, 150,
64, 46, 153, 1, 129, 69, 1, 4, 5, 95,
1, 1, 44, 94, 129, 198, 1, 9, 133, 64,
171, 161, 1, 510, 69, 89, 96, 648, 15, 61,
94, 100, 97, 67, 1, 67, 161, 730, 643, 36,
37, 33, 770, 40, 159, 0, 161, 101, 129, 93,
99, 779, 101, 50, 9, 10, 11, 101, 101, 648,
648, 1, 1, 99, 128, 129, 256, 182, 99, 133,
134, 648, 1, 99, 262, 30, 94, 1, 33, 34,
161, 95, 79, 128, 1, 99, 83, 275, 709, 134,
475, 712, 625, 478, 99, 159, 51, 161, 1, 94,
87, 99, 100, 331, 281, 100, 257, 62, 99, 99,
174, 101, 1, 1, 99, 100, 95, 1, 182, 606,
709, 709, 1, 712, 712, 122, 123, 94, 192, 193,
194, 195, 709, 100, 198, 712, 200, 201, 202, 94,
330, 256, 139, 375, 376, 377, 1, 634, 1, 332,
1, 1, 1, 198, 94, 1, 777, 644, 62, 98,
100, 782, 1, 784, 1, 786, 95, 1, 94, 1,
94, 97, 287, 660, 129, 1, 100, 174, 133, 408,
1, 178, 99, 86, 1, 89, 0, 1, 777, 777,
94, 1, 256, 782, 782, 784, 784, 786, 786, 1,
777, 97, 1, 1, 93, 782, 161, 784, 1, 786,
94, 99, 1, 45, 46, 330, 100, 97, 1, 174,
99, 101, 5, 287, 221, 129, 290, 564, 67, 133,
44, 86, 92, 297, 1, 490, 86, 97, 98, 88,
477, 305, 479, 307, 99, 98, 310, 61, 99, 99,
482, 1, 98, 67, 86, 159, 88, 161, 745, 91,
92, 93, 99, 440, 98, 97, 330, 653, 332, 101,
174, 1, 98, 270, 598, 1, 600, 98, 182, 1,
277, 98, 1, 1, 281, 99, 1, 332, 98, 88,
72, 1, 94, 290, 198, 0, 1, 95, 202, 174,
297, 256, 95, 86, 86, 174, 643, 83, 305, 98,
307, 375, 376, 377, 378, 379, 380, 381, 382, 383,
384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 98, 561, 63, 331, 290, 648, 52, 97, 44,
52, 1, 101, 93, 408, 63, 122, 123, 0, 346,
55, 97, 256, 677, 94, 310, 61, 9, 10, 11,
100, 9, 67, 11, 86, 95, 1, 100, 94, 366,
75, 368, 0, 1, 93, 330, 1, 95, 30, 1,
95, 33, 34, 287, 94, 33, 290, 129, 95, 1,
578, 623, 1, 581, 99, 732, 174, 709, 1, 51,
712, 94, 93, 1, 1, 47, 310, 100, 0, 1,
62, 408, 0, 1, 98, 290, 44, 159, 482, 161,
62, 290, 297, 735, 488, 1, 330, 55, 297, 1,
305, 1, 307, 61, 94, 310, 305, 749, 307, 67,
437, 310, 94, 440, 1, 637, 770, 96, 1, 1,
1, 763, 44, 408, 96, 779, 44, 93, 93, 0,
1, 1, 1, 653, 86, 777, 1, 55, 93, 61,
782, 99, 784, 61, 786, 67, 99, 129, 1, 67,
92, 93, 52, 387, 93, 97, 98, 99, 100, 95,
93, 679, 174, 63, 686, 93, 93, 561, 53, 52,
564, 0, 1, 44, 408, 44, 698, 99, 1, 161,
63, 99, 290, 95, 55, 97, 92, 1, 94, 297,
61, 97, 98, 99, 100, 95, 67, 305, 67, 307,
0, 1, 310, 408, 1, 86, 93, 1, 653, 408,
475, 93, 95, 478, 67, 44, 86, 1, 1, 72,
742, 86, 44, 76, 93, 1, 1, 1, 99, 623,
44, 625, 61, 86, 561, 65, 50, 564, 67, 1,
1, 100, 72, 101, 44, 59, 640, 61, 50, 643,
94, 94, 101, 67, 648, 64, 100, 100, 1, 653,
69, 61, 1, 86, 1, 1, 1, 67, 82, 95,
99, 85, 86, 99, 50, 669, 561, 107, 290, 564,
82, 95, 44, 85, 86, 297, 1, 97, 50, 86,
174, 1, 86, 305, 1, 307, 1, 101, 310, 99,
408, 1, 86, 86, 95, 96, 82, 44, 99, 85,
86, 86, 86, 50, 641, 709, 643, 11, 712, 128,
82, 648, 12, 85, 86, 86, 65, 561, 67, 44,
564, 1, 94, 72, 44, 50, 730, 76, 732, 13,
50, 735, 669, 86, 59, 82, 61, 86, 85, 86,
86, 86, 67, 10, 1, 749, 561, 97, 643, 564,
94, 101, 561, 97, 14, 564, 174, 82, 653, 763,
85, 86, 82, 30, 96, 85, 86, 34, 100, 86,
50, 86, 709, 777, 669, 712, 86, 60, 782, 95,
784, 64, 786, 598, 51, 600, 408, 94, 99, 598,
97, 600, 93, 730, 101, 732, 290, 93, 735, 643,
99, 709, 82, 297, 712, 85, 86, 99, 65, 653,
67, 305, 749, 307, 93, 72, 310, 44, 97, 76,
97, 94, 101, 50, 94, 669, 763, 100, 643, 86,
100, 99, 100, 648, 643, 730, 99, 732, 67, 648,
777, 99, 100, 561, 98, 782, 564, 784, 99, 786,
45, 46, 45, 46, 669, 82, 91, 92, 85, 86,
669, 100, 677, 383, 384, 385, 386, 94, 677, 777,
91, 92, 290, 95, 782, 66, 784, 174, 786, 297,
598, 93, 600, 5, 6, 7, 730, 305, 732, 307,
45, 46, 310, 93, 709, 16, 17, 712, 3, 4,
709, 1, 97, 712, 97, 88, 101, 93, 101, 99,
18, 19, 20, 21, 408, 730, 94, 732, 174, 101,
735, 730, 86, 732, 101, 643, 735, 91, 92, 93,
648, 91, 92, 97, 749, 45, 46, 101, 99, 561,
749, 1, 564, 93, 8, 9, 10, 94, 763, 57,
94, 669, 45, 46, 763, 770, 97, 98, 99, 677,
97, 770, 777, 1, 779, 97, 98, 782, 777, 784,
779, 786, 95, 782, 94, 784, 598, 786, 600, 378,
379, 44, 380, 381, 382, 100, 44, 50, 388, 389,
408, 709, 50, 290, 712, 56, 59, 95, 61, 56,
297, 59, 99, 61, 67, 91, 92, 93, 305, 67,
307, 97, 730, 310, 732, 101, 94, 735, 94, 82,
1, 643, 85, 86, 82, 94, 648, 85, 86, 1,
56, 749, 95, 96, 290, 94, 0, 95, 96, 0,
94, 297, 94, 99, 99, 763, 387, 669, 11, 305,
54, 307, 770, 75, 310, 677, 139, 44, 161, 777,
256, 779, 52, 50, 782, 159, 784, 561, 786, 408,
564, 94, 59, 290, 61, 140, 264, 44, 310, 310,
67, 667, 667, 50, 349, 390, 392, 709, 391, 579,
712, 579, 59, 640, 61, 82, 394, -1, 85, 86,
67, -1, 393, 398, 598, -1, 600, -1, 730, 96,
732, 408, -1, 735, -1, 82, -1, 86, 85, 86,
1, -1, 91, 92, 93, -1, -1, 749, 97, 96,
-1, -1, 101, -1, 91, 92, 93, 202, 203, -1,
97, 763, -1, 561, 101, -1, 564, -1, 770, 643,
-1, -1, 408, -1, 648, 777, -1, 779, -1, -1,
782, 86, 784, -1, 786, -1, 91, 92, 93, 50,
-1, -1, 97, -1, -1, 669, 101, -1, 59, -1,
598, -1, 600, 677, 65, -1, 91, 92, 93, -1,
-1, 72, 97, -1, -1, 76, 101, -1, -1, -1,
-1, 82, -1, 268, 85, 86, 271, -1, 89, 90,
-1, -1, 93, -1, 279, 709, -1, -1, 712, -1,
-1, 102, 103, 104, 105, 643, -1, 108, 109, -1,
648, -1, -1, -1, -1, -1, 730, -1, 732, -1,
-1, 735, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 669, -1, -1, -1, 749, -1, -1, -1, 677,
-1, -1, -1, -1, 561, -1, -1, 564, -1, 763,
-1, -1, -1, -1, -1, -1, 770, -1, -1, -1,
-1, -1, -1, 777, -1, 779, -1, -1, 782, -1,
784, 709, 786, -1, 712, -1, -1, -1, -1, -1,
365, 598, -1, 600, 369, 561, -1, -1, 564, -1,
-1, -1, 730, -1, 732, -1, -1, 735, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
395, 749, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 598, -1, 600, 763, 643, -1, 413, -1,
-1, 648, 770, -1, 192, 193, 194, 195, 423, 777,
425, 779, 200, 201, 782, -1, 784, -1, 786, -1,
-1, 436, 669, -1, -1, -1, -1, -1, -1, -1,
677, -1, -1, -1, -1, -1, -1, 643, 192, 193,
194, 195, 648, 458, -1, 460, 200, 201, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 474,
-1, -1, 709, 669, -1, 712, -1, -1, -1, -1,
485, 677, -1, -1, -1, 490, -1, -1, -1, -1,
-1, -1, -1, 730, -1, 732, -1, -1, 735, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 749, 709, -1, -1, 712, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 763, -1, -1, -1,
-1, -1, -1, 770, 730, -1, 732, -1, -1, 735,
777, -1, 779, -1, -1, 782, -1, 784, -1, 786,
-1, -1, -1, 749, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 763, -1, -1,
-1, -1, -1, -1, 770, -1, -1, -1, -1, -1,
-1, 777, -1, 779, -1, -1, 782, -1, 784, -1,
786, -1, -1, -1, -1, -1, -1, 375, 376, 377,
378, 379, 380, 381, 382, 383, 384, 385, 386, -1,
388, 389, 390, 391, 392, 393, 394, -1, -1, -1,
-1, -1, -1, -1, 1, -1, 631, -1, -1, -1,
-1, 375, 376, 377, 378, 379, 380, 381, 382, 383,
384, 385, 386, -1, 388, 389, 390, 391, 392, 393,
394, -1, -1, -1, -1, -1, -1, -1, -1, -1,
665, -1, -1, -1, -1, -1, 671, 44, 45, 46,
47, 48, 49, 50, 51, -1, -1, 54, -1, -1,
-1, 58, 59, -1, -1, 62, -1, -1, 65, 66,
67, 68, -1, 70, 71, 72, 73, -1, -1, 76,
-1, -1, -1, -1, 482, 82, 1, -1, 85, 86,
488, -1, -1, -1, -1, -1, 93, -1, 95, 96,
-1, -1, 99, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, -1, -1, -1, -1, -1, 482, -1,
-1, -1, -1, 748, 488, -1, -1, 752, -1, 44,
45, 46, 47, 48, 49, 50, 51, -1, -1, 54,
-1, -1, -1, 58, 59, -1, -1, 62, -1, -1,
65, 66, 67, 68, -1, 70, 71, 72, 73, -1,
50, 76, -1, -1, -1, -1, -1, 82, -1, 59,
85, 86, -1, -1, -1, 65, -1, -1, 93, -1,
95, 96, 72, -1, 99, -1, 76, 102, 103, 104,
105, -1, 82, 108, 109, 85, 86, -1, -1, 89,
90, -1, -1, 93, -1, -1, -1, -1, -1, -1,
-1, -1, 102, 103, 104, 105, -1, -1, 108, 109,
1, -1, -1, -1, -1, 623, -1, 625, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 640, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 623,
-1, 625, -1, 44, 45, 46, 47, 48, 49, 50,
51, -1, -1, 54, -1, -1, 640, 58, 59, -1,
-1, 62, -1, -1, 65, 66, 67, 68, 1, 70,
71, 72, 73, -1, -1, 76, -1, -1, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, 93, -1, 95, 96, -1, -1, 99, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, -1,
-1, 44, 45, 46, -1, 48, 49, 50, 51, -1,
-1, 54, -1, -1, -1, 58, 59, -1, -1, -1,
-1, -1, 65, 66, 67, 68, 1, 70, 71, 72,
73, -1, -1, 76, -1, -1, -1, -1, -1, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
93, -1, 95, 96, -1, -1, 99, -1, -1, 102,
103, 104, 105, -1, -1, 108, 109, -1, -1, 44,
45, 46, -1, 48, 49, 50, 51, -1, -1, 54,
-1, -1, -1, 58, 59, -1, -1, -1, -1, -1,
65, 66, 67, 68, 1, 70, 71, 72, 73, -1,
-1, 76, -1, -1, -1, -1, -1, 82, -1, -1,
85, 86, -1, -1, -1, -1, -1, -1, 93, -1,
95, -1, -1, -1, 99, -1, -1, 102, 103, 104,
105, -1, -1, 108, 109, -1, -1, 44, 45, 46,
-1, 48, 49, 50, 51, -1, -1, 54, -1, -1,
-1, 58, 59, -1, -1, -1, -1, -1, 65, 66,
1, 68, -1, 70, 71, 72, 73, -1, -1, 76,
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
-1, -1, -1, -1, -1, -1, 93, -1, 95, -1,
-1, -1, 99, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, 44, 45, 46, -1, 48, 49, 50,
51, -1, -1, 54, -1, -1, -1, 58, 59, -1,
-1, -1, -1, -1, 65, 66, -1, 68, -1, 70,
71, 72, 73, -1, 1, 76, 3, 4, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, -1, -1,
-1, -1, 93, -1, 95, -1, -1, -1, 99, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
-1, -1, -1, 50, -1, -1, -1, -1, -1, -1,
-1, -1, 59, -1, -1, -1, -1, -1, 65, 1,
-1, 3, 4, -1, -1, 72, -1, -1, -1, 76,
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
-1, -1, 89, 90, -1, -1, 93, -1, 95, 96,
-1, -1, -1, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, 45, 46, -1, -1, -1, 50, -1,
1, -1, 3, 4, -1, -1, -1, 59, -1, -1,
-1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
82, -1, -1, 85, 86, -1, -1, 89, 90, -1,
-1, 93, -1, 95, 45, 46, -1, -1, -1, 50,
102, 103, 104, 105, -1, -1, 108, 109, 59, -1,
-1, -1, -1, -1, 65, 1, -1, 3, 4, -1,
-1, 72, -1, -1, -1, 76, -1, -1, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, 89, 90,
-1, -1, 93, -1, -1, -1, -1, -1, 99, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, 45,
46, -1, -1, -1, 50, -1, 1, -1, 3, 4,
-1, -1, -1, 59, -1, -1, -1, -1, -1, 65,
-1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
76, -1, -1, -1, -1, -1, 82, -1, -1, 85,
86, -1, -1, 89, 90, -1, -1, 93, -1, -1,
45, 46, 98, -1, -1, 50, 102, 103, 104, 105,
-1, -1, 108, 109, 59, -1, -1, -1, -1, -1,
65, 1, -1, 3, 4, -1, -1, 72, -1, -1,
-1, 76, -1, -1, -1, -1, -1, 82, -1, -1,
85, 86, -1, 88, 89, 90, -1, -1, 93, -1,
-1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
105, -1, -1, 108, 109, 45, 46, -1, -1, -1,
50, -1, 1, -1, 3, 4, -1, -1, -1, 59,
-1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
-1, -1, 72, -1, -1, -1, 76, -1, -1, -1,
-1, -1, 82, -1, -1, 85, 86, -1, -1, 89,
90, -1, -1, 93, -1, -1, 45, 46, 98, -1,
-1, 50, 102, 103, 104, 105, -1, -1, 108, 109,
59, -1, -1, -1, -1, -1, 65, 1, -1, 3,
4, -1, -1, 72, -1, -1, -1, 76, -1, -1,
-1, -1, -1, 82, -1, -1, 85, 86, -1, -1,
89, 90, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, 102, 103, 104, 105, -1, -1, 108,
109, 45, 46, -1, -1, -1, 50, -1, 1, -1,
3, 4, -1, -1, -1, 59, -1, -1, -1, -1,
-1, 65, -1, -1, -1, -1, -1, -1, 72, -1,
-1, -1, 76, -1, -1, -1, -1, -1, 82, -1,
-1, 85, 86, -1, -1, 89, 90, -1, -1, 93,
-1, -1, 45, 46, -1, 99, -1, 50, 102, 103,
104, 105, -1, -1, 108, 109, 59, -1, -1, -1,
-1, -1, 65, 1, -1, 3, 4, -1, -1, 72,
-1, -1, -1, 76, -1, -1, -1, -1, -1, 82,
-1, -1, 85, 86, -1, -1, 89, 90, -1, -1,
93, -1, -1, -1, -1, 98, -1, -1, -1, 102,
103, 104, 105, -1, -1, 108, 109, 45, 46, -1,
-1, -1, 50, -1, 1, -1, 3, 4, -1, -1,
-1, 59, -1, -1, -1, -1, -1, 65, -1, -1,
-1, -1, -1, -1, 72, -1, -1, -1, 76, -1,
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
-1, 89, 90, -1, -1, 93, 94, -1, 45, 46,
-1, -1, -1, 50, 102, 103, 104, 105, -1, -1,
108, 109, 59, -1, -1, -1, -1, -1, 65, 1,
-1, 3, 4, -1, -1, 72, -1, -1, -1, 76,
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
-1, -1, 89, 90, -1, -1, 93, -1, -1, -1,
-1, 98, -1, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, 45, 46, -1, -1, -1, 50, -1,
1, -1, 3, 4, -1, -1, -1, 59, -1, -1,
-1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
82, -1, -1, 85, 86, -1, -1, 89, 90, -1,
-1, 93, 94, -1, 45, 46, -1, -1, -1, 50,
102, 103, 104, 105, -1, -1, 108, 109, 59, -1,
-1, -1, -1, -1, 65, 1, -1, 3, 4, -1,
-1, 72, -1, -1, -1, 76, -1, -1, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, 89, 90,
-1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, 45,
46, -1, -1, -1, 50, -1, 1, -1, 3, 4,
-1, -1, -1, 59, -1, -1, -1, -1, -1, 65,
-1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
76, -1, -1, -1, -1, -1, 82, -1, -1, 85,
86, -1, -1, 89, 90, -1, -1, 93, 94, -1,
45, 46, -1, -1, -1, 50, 102, 103, 104, 105,
-1, -1, 108, 109, 59, -1, -1, -1, -1, -1,
65, 1, -1, 3, 4, -1, -1, 72, -1, -1,
-1, 76, -1, -1, -1, -1, -1, 82, -1, -1,
85, 86, -1, -1, 89, 90, -1, -1, 93, -1,
-1, -1, -1, -1, 99, -1, -1, 102, 103, 104,
105, -1, -1, 108, 109, 45, 46, -1, -1, -1,
50, -1, 1, -1, 3, 4, -1, -1, -1, 59,
-1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
-1, -1, 72, -1, -1, -1, 76, -1, -1, -1,
-1, -1, 82, -1, -1, 85, 86, -1, -1, 89,
90, -1, -1, 93, -1, -1, 45, 46, -1, -1,
-1, 50, 102, 103, 104, 105, -1, -1, 108, 109,
59, -1, -1, -1, -1, -1, 65, 1, -1, 3,
4, -1, -1, 72, -1, -1, -1, 76, -1, -1,
-1, -1, -1, 82, -1, -1, 85, 86, -1, -1,
89, 90, -1, -1, 93, -1, -1, -1, -1, -1,
-1, -1, -1, 102, 103, 104, 105, -1, -1, 108,
109, 45, 46, -1, -1, -1, 50, -1, 1, -1,
3, 4, -1, -1, -1, 59, -1, -1, -1, -1,
-1, 65, -1, -1, -1, -1, -1, -1, 72, -1,
-1, -1, 76, -1, -1, -1, -1, -1, 82, -1,
-1, 85, 86, -1, -1, 89, 90, -1, -1, 93,
-1, -1, 45, 46, -1, -1, -1, 50, 102, 103,
104, 105, -1, -1, 108, 109, 59, -1, -1, -1,
-1, -1, 65, 1, -1, 3, 4, -1, -1, 72,
-1, -1, -1, 76, -1, -1, -1, -1, -1, 82,
-1, -1, 85, 86, -1, -1, 89, 90, -1, -1,
93, -1, -1, -1, -1, -1, -1, -1, -1, 102,
103, 104, 105, -1, -1, 108, 109, 45, 46, -1,
-1, -1, 50, -1, 1, -1, 3, 4, -1, -1,
-1, 59, -1, -1, -1, -1, -1, 65, -1, -1,
-1, -1, -1, -1, 72, -1, -1, -1, 76, -1,
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
-1, 89, 90, -1, -1, 93, -1, -1, 45, 46,
-1, -1, -1, 50, 102, 103, 104, 105, -1, -1,
108, 109, 59, -1, -1, -1, -1, -1, 65, 1,
-1, 3, 4, -1, -1, 72, -1, -1, -1, 76,
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
-1, -1, 89, 90, -1, -1, 93, -1, -1, -1,
-1, -1, -1, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, 45, 46, -1, -1, -1, 50, -1,
1, -1, 3, 4, -1, -1, -1, 59, -1, -1,
-1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
82, -1, -1, 85, 86, -1, -1, 89, 90, -1,
-1, 93, -1, -1, 45, 46, -1, -1, -1, 50,
102, 103, 104, 105, -1, -1, 108, 109, 59, -1,
-1, -1, -1, -1, 65, 1, -1, 3, 4, -1,
-1, 72, -1, -1, -1, 76, -1, -1, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, 89, 90,
-1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, 45,
46, -1, -1, -1, 50, -1, 1, -1, 3, 4,
-1, -1, -1, 59, -1, -1, -1, -1, -1, 65,
-1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
76, -1, -1, -1, -1, -1, 82, -1, -1, 85,
86, -1, -1, 89, 90, -1, -1, 93, -1, -1,
45, 46, -1, -1, -1, 50, 102, 103, 104, 105,
-1, -1, 108, 109, 59, -1, -1, -1, -1, -1,
65, 1, -1, 3, 4, -1, -1, 72, -1, -1,
-1, 76, -1, -1, -1, -1, -1, 82, -1, -1,
85, 86, -1, -1, 89, 90, -1, -1, 93, -1,
-1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
105, -1, -1, 108, 109, 45, 46, -1, -1, -1,
50, -1, 1, -1, 3, 4, -1, -1, -1, 59,
-1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
-1, -1, 72, -1, -1, -1, 76, -1, -1, -1,
-1, -1, 82, -1, -1, 85, 86, -1, -1, 89,
90, -1, -1, 93, -1, -1, 45, 46, -1, -1,
-1, 50, 102, 103, 104, 105, -1, -1, 108, 109,
59, -1, -1, -1, -1, -1, 65, 1, -1, 3,
4, -1, -1, 72, -1, -1, -1, 76, -1, -1,
-1, -1, -1, 82, -1, -1, 85, 86, -1, -1,
89, 90, -1, -1, 93, -1, -1, -1, -1, -1,
-1, -1, -1, 102, 103, 104, 105, -1, -1, 108,
109, 45, 46, -1, -1, -1, 50, -1, 1, -1,
3, 4, -1, -1, -1, 59, -1, -1, -1, -1,
-1, 65, -1, -1, -1, -1, -1, -1, 72, -1,
-1, -1, 76, -1, -1, -1, -1, -1, 82, -1,
-1, 85, 86, -1, -1, 89, 90, -1, -1, 93,
-1, -1, 45, 46, -1, -1, -1, 50, 102, 103,
104, 105, -1, -1, 108, 109, 59, -1, -1, -1,
-1, -1, 65, 1, -1, 3, 4, -1, -1, 72,
-1, -1, -1, 76, -1, -1, -1, -1, -1, 82,
-1, -1, 85, 86, -1, -1, 89, 90, -1, -1,
93, -1, -1, -1, -1, -1, -1, -1, -1, 102,
103, 104, 105, -1, -1, 108, 109, 45, 46, -1,
-1, -1, 50, -1, 1, -1, 3, 4, -1, -1,
-1, 59, -1, -1, -1, -1, -1, 65, -1, -1,
-1, -1, -1, -1, 72, -1, -1, -1, 76, -1,
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
-1, 89, 90, -1, -1, 93, -1, -1, 45, 46,
-1, -1, -1, 50, 102, 103, 104, 105, -1, -1,
108, 109, 59, -1, -1, -1, -1, -1, 65, 1,
-1, 3, 4, -1, -1, 72, -1, -1, -1, 76,
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
-1, -1, 89, 90, -1, -1, 93, -1, -1, -1,
-1, -1, -1, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, 45, 46, -1, -1, -1, 50, -1,
1, -1, 3, 4, -1, -1, -1, 59, -1, -1,
-1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
82, -1, -1, 85, 86, -1, -1, 89, 90, -1,
-1, 93, -1, -1, 45, 46, -1, -1, -1, 50,
102, 103, 104, 105, -1, -1, 108, 109, 59, -1,
-1, -1, -1, -1, 65, 1, -1, 3, 4, -1,
-1, 72, -1, -1, -1, 76, -1, -1, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, 89, 90,
-1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, 45,
46, -1, -1, -1, 50, -1, 1, -1, 3, 4,
-1, -1, -1, 59, -1, -1, -1, -1, -1, 65,
-1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
76, -1, -1, -1, -1, -1, 82, -1, -1, 85,
86, -1, -1, 89, 90, -1, -1, 93, -1, -1,
45, 46, -1, -1, -1, 50, 102, 103, 104, 105,
-1, -1, 108, 109, 59, -1, -1, -1, -1, -1,
65, 1, -1, 3, 4, -1, -1, 72, -1, -1,
-1, 76, -1, -1, -1, -1, -1, 82, -1, -1,
85, 86, -1, -1, 89, 90, -1, -1, 93, -1,
-1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
105, -1, -1, 108, 109, 45, 46, -1, -1, -1,
50, -1, 1, -1, 3, 4, -1, -1, -1, 59,
-1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
-1, -1, 72, -1, -1, -1, 76, -1, -1, -1,
-1, -1, 82, -1, -1, 85, 86, -1, -1, 89,
90, -1, -1, 93, -1, -1, 45, 46, -1, -1,
-1, 50, 102, 103, 104, 105, -1, -1, 108, 109,
59, -1, -1, -1, -1, -1, 65, 1, -1, 3,
4, -1, -1, 72, -1, -1, -1, 76, -1, -1,
-1, -1, -1, 82, -1, -1, 85, 86, -1, -1,
89, 90, -1, -1, 93, -1, -1, -1, -1, -1,
-1, -1, -1, 102, 103, 104, 105, -1, -1, 108,
109, 45, 46, -1, -1, -1, 50, -1, 1, -1,
3, 4, -1, -1, -1, 59, -1, -1, -1, -1,
-1, 65, -1, -1, -1, -1, -1, -1, 72, -1,
-1, -1, 76, -1, -1, -1, -1, -1, 82, -1,
-1, 85, 86, -1, -1, 89, 90, -1, -1, 93,
-1, -1, 45, 46, -1, -1, -1, 50, 102, 103,
104, 105, -1, -1, 108, 109, 59, -1, -1, -1,
-1, -1, 65, 1, -1, 3, 4, -1, -1, 72,
-1, -1, -1, 76, -1, -1, -1, -1, -1, 82,
-1, -1, 85, 86, -1, -1, 89, 90, -1, -1,
93, -1, -1, -1, -1, -1, -1, -1, -1, 102,
103, 104, 105, -1, -1, 108, 109, 45, 46, -1,
-1, -1, 50, -1, 1, -1, 3, 4, -1, -1,
-1, 59, -1, -1, -1, -1, -1, 65, -1, -1,
-1, -1, -1, -1, 72, -1, -1, -1, 76, -1,
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
-1, 89, 90, -1, -1, 93, -1, -1, 45, 46,
-1, -1, -1, 50, 102, 103, 104, 105, -1, -1,
108, 109, 59, -1, -1, -1, -1, -1, 65, 1,
-1, 3, 4, -1, -1, 72, -1, -1, -1, 76,
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
-1, -1, 89, 90, -1, -1, 93, -1, -1, -1,
-1, -1, -1, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, 45, 46, -1, -1, -1, 50, -1,
1, -1, 3, 4, -1, -1, -1, 59, -1, -1,
-1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
82, -1, -1, 85, 86, -1, -1, 89, 90, -1,
-1, 93, -1, -1, 45, 46, -1, -1, -1, 50,
102, 103, 104, 105, -1, -1, 108, 109, 59, -1,
-1, -1, -1, -1, 65, 1, -1, 3, 4, -1,
-1, 72, -1, -1, -1, 76, -1, -1, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, 89, 90,
-1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, 45,
46, -1, -1, -1, 50, -1, 1, -1, 3, 4,
-1, -1, -1, 59, -1, -1, -1, -1, -1, 65,
-1, -1, -1, -1, -1, -1, 72, -1, -1, -1,
76, -1, -1, -1, -1, -1, 82, -1, -1, 85,
86, -1, -1, 89, 90, -1, -1, 93, -1, -1,
45, 46, -1, -1, -1, 50, 102, 103, 104, 105,
-1, -1, 108, 109, 59, -1, -1, -1, -1, -1,
65, 1, -1, 3, 4, -1, -1, 72, -1, -1,
-1, 76, -1, -1, -1, -1, -1, 82, -1, -1,
85, 86, -1, -1, 89, 90, -1, -1, 93, -1,
-1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
105, -1, -1, 108, 109, 45, 46, -1, -1, -1,
50, -1, 1, -1, 3, 4, -1, -1, -1, 59,
-1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
-1, -1, 72, -1, -1, -1, 76, -1, -1, -1,
-1, -1, 82, -1, -1, 85, 86, -1, -1, 89,
90, -1, -1, 93, -1, -1, 45, 46, -1, -1,
-1, 50, 102, 103, 104, 105, -1, -1, 108, 109,
59, -1, -1, -1, -1, -1, 65, 1, -1, 3,
4, -1, -1, 72, -1, -1, -1, 76, -1, -1,
-1, -1, -1, 82, -1, -1, 85, 86, -1, -1,
89, 90, -1, -1, 93, -1, -1, -1, -1, -1,
-1, -1, -1, 102, 103, 104, 105, -1, -1, 108,
109, 45, 46, -1, -1, -1, 50, -1, 1, -1,
3, 4, -1, -1, -1, 59, -1, -1, -1, -1,
-1, 65, -1, -1, -1, -1, -1, -1, 72, -1,
-1, -1, 76, -1, -1, -1, -1, -1, 82, -1,
-1, 85, 86, -1, -1, 89, 90, -1, -1, 93,
-1, -1, 45, 46, -1, -1, -1, 50, 102, 103,
104, 105, -1, -1, 108, 109, 59, -1, -1, -1,
-1, -1, 65, 1, -1, 3, 4, -1, -1, 72,
-1, -1, -1, 76, -1, -1, -1, -1, -1, 82,
-1, -1, 85, 86, -1, -1, 89, 90, -1, -1,
93, -1, -1, -1, -1, -1, -1, -1, -1, 102,
103, 104, 105, -1, -1, 108, 109, 45, 46, -1,
-1, -1, 50, -1, 1, -1, 3, 4, -1, -1,
-1, 59, -1, -1, -1, -1, -1, 65, -1, -1,
-1, -1, -1, -1, 72, -1, -1, -1, 76, -1,
-1, -1, -1, -1, 82, -1, -1, 85, 86, -1,
-1, 89, 90, -1, -1, 93, -1, -1, 45, 46,
-1, -1, -1, 50, 102, 103, 104, 105, -1, -1,
108, 109, 59, -1, -1, -1, -1, -1, 65, 1,
-1, 3, 4, -1, -1, 72, -1, -1, -1, 76,
-1, -1, -1, -1, -1, 82, -1, -1, 85, 86,
-1, -1, 89, 90, -1, -1, 93, -1, -1, -1,
-1, -1, -1, -1, -1, 102, 103, 104, 105, -1,
-1, 108, 109, 45, 46, -1, -1, -1, 50, -1,
1, -1, 3, 4, -1, -1, -1, 59, -1, -1,
-1, -1, -1, 65, -1, -1, -1, -1, -1, -1,
72, -1, -1, -1, 76, -1, -1, -1, -1, -1,
82, -1, -1, 85, 86, -1, -1, 89, 90, -1,
-1, 93, -1, -1, 45, 46, -1, -1, -1, 50,
102, 103, 104, 105, -1, -1, 108, 109, 59, -1,
-1, -1, -1, -1, 65, -1, 1, -1, -1, -1,
-1, 72, -1, -1, -1, 76, -1, -1, -1, -1,
-1, 82, -1, -1, 85, 86, -1, -1, 89, 90,
-1, 1, 93, -1, -1, -1, -1, -1, -1, -1,
-1, 102, 103, 104, 105, -1, -1, 108, 109, 44,
45, 46, -1, -1, -1, 50, -1, -1, -1, -1,
-1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
65, -1, -1, 1, -1, 45, 46, 72, -1, -1,
50, 76, -1, -1, -1, -1, -1, 82, -1, 59,
85, 86, -1, -1, -1, 65, -1, -1, 93, -1,
3, 4, 72, -1, 99, -1, 76, 102, 103, 104,
105, -1, 82, 108, 109, 85, 86, 45, 46, -1,
-1, -1, 50, 93, 94, -1, -1, -1, -1, -1,
-1, 59, 102, 103, 104, 105, -1, 65, 108, 109,
1, -1, 45, 46, 72, -1, -1, 50, 76, -1,
-1, -1, -1, -1, 82, -1, 59, 85, 86, -1,
-1, -1, 65, -1, -1, 93, 94, 3, 4, 72,
-1, -1, -1, 76, 102, 103, 104, 105, -1, 82,
108, 109, 85, 86, 45, 46, 89, 90, -1, 50,
93, -1, 95, 96, -1, -1, -1, -1, 59, 102,
103, 104, 105, -1, 65, 108, 109, -1, -1, 45,
46, 72, -1, -1, 50, 76, -1, -1, 3, 4,
-1, 82, -1, 59, 85, 86, -1, -1, -1, 65,
-1, -1, 93, -1, -1, -1, 72, -1, -1, -1,
76, 102, 103, 104, 105, -1, 82, 108, 109, 85,
86, -1, -1, 89, 90, -1, -1, 93, 94, -1,
45, 46, -1, -1, -1, 50, 102, 103, 104, 105,
-1, -1, 108, 109, 59, -1, -1, -1, -1, -1,
65, -1, -1, 3, 4, -1, -1, 72, -1, -1,
-1, 76, -1, -1, -1, -1, -1, 82, -1, -1,
85, 86, -1, -1, 89, 90, -1, -1, 93, 94,
-1, -1, -1, -1, -1, -1, -1, 102, 103, 104,
105, -1, -1, 108, 109, 45, 46, -1, -1, -1,
50, -1, -1, -1, 3, 4, -1, -1, -1, 59,
-1, -1, -1, -1, -1, 65, -1, -1, -1, -1,
-1, -1, 72, -1, -1, -1, 76, -1, -1, -1,
-1, -1, 82, -1, -1, 85, 86, -1, -1, 89,
90, -1, -1, 93, 94, -1, 45, 46, -1, -1,
-1, 50, 102, 103, 104, 105, -1, -1, 108, 109,
59, -1, -1, -1, -1, -1, 65, -1, -1, 3,
4, -1, -1, 72, -1, -1, -1, 76, -1, -1,
-1, -1, -1, 82, -1, -1, 85, 86, -1, -1,
89, 90, -1, -1, 93, 94, -1, -1, -1, -1,
-1, -1, -1, 102, 103, 104, 105, -1, -1, 108,
109, 45, 46, -1, -1, -1, 50, -1, -1, -1,
-1, -1, -1, -1, -1, 59, -1, -1, -1, -1,
-1, 65, -1, -1, -1, -1, -1, -1, 72, -1,
-1, -1, 76, -1, -1, -1, -1, -1, 82, -1,
-1, 85, 86, -1, -1, 89, 90, -1, -1, 93,
-1, 44, 45, 46, -1, -1, -1, 50, 102, 103,
104, 105, -1, -1, 108, 109, 59, -1, -1, -1,
-1, -1, 65, -1, -1, -1, -1, -1, -1, 72,
-1, -1, -1, 76, -1, -1, -1, -1, -1, 82,
-1, -1, 85, 86, -1, -1, -1, -1, -1, -1,
93, -1, -1, -1, -1, -1, -1, -1, -1, 102,
103, 104, 105, -1, -1, 108, 109
};
#define YYPURE 1
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple"
/* This file comes from bison-1.28. */
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
This program 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, or (at your option)
any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* This is the parser code that is written into each bison parser
when the %semantic_parser declaration is not specified in the grammar.
It was written by Richard Stallman by simplifying the hairy parser
used when %semantic_parser is specified. */
#ifndef YYSTACK_USE_ALLOCA
#ifdef alloca
#define YYSTACK_USE_ALLOCA
#else /* alloca not defined */
#ifdef __GNUC__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
/* We think this test detects Watcom and Microsoft C. */
/* This used to test MSDOS, but that is a bad idea
since that symbol is in the user namespace. */
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
#if 0 /* No need for malloc.h, which pollutes the namespace;
instead, just don't use alloca. */
#include <malloc.h>
#endif
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
/* I don't know what this was needed for, but it pollutes the namespace.
So I turned it off. rms, 2 May 1997. */
/* #include <malloc.h> */
#pragma alloca
#define YYSTACK_USE_ALLOCA
#else /* not MSDOS, or __TURBOC__, or _AIX */
#if 0
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
and on HPUX 10. Eventually we can turn this on. */
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#endif /* __hpux */
#endif
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc */
#endif /* not GNU C */
#endif /* alloca not defined */
#endif /* YYSTACK_USE_ALLOCA not defined */
#ifdef YYSTACK_USE_ALLOCA
#define YYSTACK_ALLOC alloca
#else
#define YYSTACK_ALLOC malloc
#endif
/* Note: there must be only one dollar sign in this file.
It is replaced by the list of actions, each action
as one case of the switch. */
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror.
This remains here temporarily to ease the
transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(token, value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ yychar = (token), yylval = (value); \
yychar1 = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
{ yyerror ("syntax error: cannot back up"); YYERROR; } \
while (0)
#define YYTERROR 1
#define YYERRCODE 256
#ifndef YYPURE
#define YYLEX yylex()
#endif
#ifdef YYPURE
#ifdef YYLSP_NEEDED
#ifdef YYLEX_PARAM
#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
#else
#define YYLEX yylex(&yylval, &yylloc)
#endif
#else /* not YYLSP_NEEDED */
#ifdef YYLEX_PARAM
#define YYLEX yylex(&yylval, YYLEX_PARAM)
#else
#define YYLEX yylex(&yylval)
#endif
#endif /* not YYLSP_NEEDED */
#endif
/* If nonreentrant, generate the variables here */
#ifndef YYPURE
int yychar; /* the lookahead symbol */
YYSTYPE yylval; /* the semantic value of the */
/* lookahead symbol */
#ifdef YYLSP_NEEDED
YYLTYPE yylloc; /* location data for the lookahead */
/* symbol */
#endif
int yynerrs; /* number of parse errors so far */
#endif /* not YYPURE */
#if YYDEBUG != 0
int yydebug; /* nonzero means print parse trace */
/* Since this is uninitialized, it does not stop multiple parsers
from coexisting. */
#endif
/* YYINITDEPTH indicates the initial size of the parser's stacks */
#ifndef YYINITDEPTH
#define YYINITDEPTH 200
#endif
/* YYMAXDEPTH is the maximum size the stacks can grow to
(effective only if the built-in stack extension method is used). */
#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif
/* Define __yy_memcpy. Note that the size argument
should be passed with type unsigned int, because that is what the non-GCC
definitions require. With GCC, __builtin_memcpy takes an arg
of type size_t, but it can handle unsigned int. */
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
#else /* not GNU C or C++ */
#ifndef __cplusplus
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
__yy_memcpy (to, from, count)
char *to;
char *from;
unsigned int count;
{
register char *f = from;
register char *t = to;
register int i = count;
while (i-- > 0)
*t++ = *f++;
}
#else /* __cplusplus */
/* This is the most reliable way to avoid incompatibilities
in available built-in functions on various systems. */
static void
__yy_memcpy (char *to, char *from, unsigned int count)
{
register char *t = to;
register char *f = from;
register int i = count;
while (i-- > 0)
*t++ = *f++;
}
#endif
#endif
#line 217 "/usr/lib/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
It should actually point to an object.
Grammar actions can access the variable by casting it
to the proper pointer type. */
#ifdef YYPARSE_PARAM
#ifdef __cplusplus
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#else /* not __cplusplus */
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#endif /* not __cplusplus */
#else /* not YYPARSE_PARAM */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int yyparse (void *);
#else
int yyparse (void);
#endif
#endif
int
yyparse(YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{
register int yystate;
register int yyn;
register short *yyssp;
register YYSTYPE *yyvsp;
int yyerrstatus; /* number of tokens to shift before error messages enabled */
int yychar1 = 0; /* lookahead token as an internal (translated) token number */
short yyssa[YYINITDEPTH]; /* the state stack */
YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
short *yyss = yyssa; /* refer to the stacks thru separate pointers */
YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
#ifdef YYLSP_NEEDED
YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
YYLTYPE *yyls = yylsa;
YYLTYPE *yylsp;
#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK (yyvsp--, yyssp--)
#endif
int yystacksize = YYINITDEPTH;
int yyfree_stacks = 0;
#ifdef YYPURE
int yychar;
YYSTYPE yylval;
int yynerrs;
#ifdef YYLSP_NEEDED
YYLTYPE yylloc;
#endif
#endif
YYSTYPE yyval; /* the variable used to return */
/* semantic values from the action */
/* routines */
int yylen;
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Starting parse\n");
#endif
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyssp = yyss - 1;
yyvsp = yyvs;
#ifdef YYLSP_NEEDED
yylsp = yyls;
#endif
/* Push a new state, which is found in yystate . */
/* In all cases, when you get here, the value and location stacks
have just been pushed. so pushing a state here evens the stacks. */
yynewstate:
*++yyssp = yystate;
if (yyssp >= yyss + yystacksize - 1)
{
/* Give user a chance to reallocate the stack */
/* Use copies of these so that the &'s don't force the real ones into memory. */
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
YYLTYPE *yyls1 = yyls;
#endif
/* Get the current used size of the three stacks, in elements. */
int size = yyssp - yyss + 1;
#ifdef yyoverflow
/* Each stack pointer address is followed by the size of
the data in use in that stack, in bytes. */
#ifdef YYLSP_NEEDED
/* This used to be a conditional around just the two extra args,
but that might be undefined if yyoverflow is a macro. */
yyoverflow("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yyls1, size * sizeof (*yylsp),
&yystacksize);
#else
yyoverflow("parser stack overflow",
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yystacksize);
#endif
yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
yyls = yyls1;
#endif
#else /* no yyoverflow */
/* Extend the stack our own way. */
if (yystacksize >= YYMAXDEPTH)
{
yyerror("parser stack overflow");
if (yyfree_stacks)
{
free (yyss);
free (yyvs);
#ifdef YYLSP_NEEDED
free (yyls);
#endif
}
return 2;
}
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA
yyfree_stacks = 1;
#endif
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
__yy_memcpy ((char *)yyss, (char *)yyss1,
size * (unsigned int) sizeof (*yyssp));
yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
__yy_memcpy ((char *)yyvs, (char *)yyvs1,
size * (unsigned int) sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
__yy_memcpy ((char *)yyls, (char *)yyls1,
size * (unsigned int) sizeof (*yylsp));
#endif
#endif /* no yyoverflow */
yyssp = yyss + size - 1;
yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
yylsp = yyls + size - 1;
#endif
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif
if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Entering state %d\n", yystate);
#endif
goto yybackup;
yybackup:
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
/* yyresume: */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYFLAG)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
/* yychar is either YYEMPTY or YYEOF
or a valid token in external form. */
if (yychar == YYEMPTY)
{
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Reading a token: ");
#endif
|