1
// created by jay 0.7 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de
3
#line 2 "cs-parser.jay"
5
// cs-parser.jay: The Parser for the C# compiler
7
// Authors: Miguel de Icaza (miguel@gnome.org)
8
// Ravi Pratap (ravi@ximian.com)
9
// Marek Safar (marek.safar@gmail.com)
11
// Dual Licensed under the terms of the GNU GPL and the MIT X11 license
13
// (C) 2001 Ximian, Inc (http://www.ximian.com)
14
// (C) 2004-2011 Novell, Inc
15
// Copyright 2011-2012 Xamarin Inc.
21
using System.Collections.Generic;
28
public class CSharpParser
31
enum ParameterModifierType
38
DefaultValue = 1 << 6,
40
All = Ref | Out | This | Params | Arglist | DefaultValue
43
static readonly object ModifierNone = 0;
45
NamespaceContainer current_namespace;
46
TypeContainer current_container;
47
TypeDefinition current_type;
48
PropertyBase current_property;
49
EventProperty current_event;
50
EventField current_event_field;
51
FieldBase current_field;
54
/// Current block is used to add statements as we find
59
BlockVariableDeclaration current_variable;
61
Delegate current_delegate;
63
AnonymousMethodExpression current_anonymous_method;
66
/// This is used by the unary_expression code to resolve
67
/// a name against a parameter.
70
// FIXME: This is very ugly and it's very hard to reset it correctly
71
// on all places, especially when some parameters are autogenerated.
72
ParametersCompiled current_local_parameters;
74
bool parsing_anonymous_method;
79
/// An out-of-band stack.
81
Stack<object> oob_stack;
84
/// Controls the verbosity of the errors produced by the parser
86
int yacc_verbose_flag;
89
/// Used by the interactive shell, flags whether EOF was reached
90
/// and an error was produced
92
public bool UnexpectedEOF;
97
readonly CompilationSourceFile file;
100
/// Temporary Xml documentation cache.
101
/// For enum types, we need one more temporary store.
104
string enumTypeComment;
106
/// Current attribute target
107
string current_attr_target;
109
ParameterModifierType valid_param_mod;
111
bool default_parameter_used;
113
/// When using the interactive parser, this holds the
114
/// resulting expression
115
public Class InteractiveResult;
118
// Keeps track of global data changes to undo on parser error
122
Stack<Linq.QueryBlock> linq_clause_blocks;
124
ModuleContainer module;
126
readonly CompilerContext compiler;
127
readonly LanguageVersion lang_version;
128
readonly bool doc_support;
129
readonly CompilerSettings settings;
130
readonly Report report;
133
// Instead of allocating carrier array everytime we
134
// share the bucket for very common constructs which can never
137
List<Parameter> parameters_bucket;
140
// Full AST support members
143
List<Tuple<Modifiers, Location>> mod_locations;
144
Location parameterModifierLocation, savedLocation, savedOpenLocation, savedCloseLocation, savedEventAssignLocation;
145
Location savedAttrParenOpenLocation, savedAttrParenCloseLocation, savedOperatorLocation;
146
Stack<List<Location>> locationListStack = new Stack<List<Location>> (); // used for type parameters
147
Stack<Location> opt_intoStack = new Stack<Location> ();
149
bool HadAttributeParens;
150
List<Location> attributeCommas = new List<Location> ();
151
List<Location> attributeArgumentCommas = new List<Location> ();
152
List<Location> parameterListCommas = new List<Location> ();
153
Stack<Location> location_stack;
156
/** error output stream.
157
It should be changeable.
159
public System.IO.TextWriter ErrorOutput = System.Console.Out;
161
/** simplified error message.
162
@see <a href="#yyerror(java.lang.String, java.lang.String[])">yyerror</a>
164
public void yyerror (string message) {
165
yyerror(message, null);
167
#pragma warning disable 649
169
public int eof_token;
170
#pragma warning restore 649
171
/** (syntax) error message.
172
Can be overwritten to control message format.
173
@param message text to be displayed.
174
@param expected vector of acceptable tokens, if available.
176
public void yyerror (string message, string[] expected) {
177
if ((yacc_verbose_flag > 0) && (expected != null) && (expected.Length > 0)) {
178
ErrorOutput.Write (message+", expecting");
179
for (int n = 0; n < expected.Length; ++ n)
180
ErrorOutput.Write (" "+expected[n]);
181
ErrorOutput.WriteLine ();
183
ErrorOutput.WriteLine (message);
186
/** debugging support, requires the package jay.yydebug.
187
Set to null to suppress debugging messages.
189
//t internal yydebug.yyDebug debug;
191
protected const int yyFinal = 7;
192
//t // Put this array into a separate class so it is only initialized if debugging is actually used
193
//t // Use MarshalByRefObject to disable inlining
194
//t class YYRules : MarshalByRefObject {
195
//t public static readonly string [] yyRule = {
196
//t "$accept : compilation_unit",
197
//t "compilation_unit : outer_declaration opt_EOF",
199
//t "compilation_unit : interactive_parsing $$1 opt_EOF",
200
//t "compilation_unit : documentation_parsing",
201
//t "outer_declaration : opt_extern_alias_directives opt_using_directives",
202
//t "outer_declaration : opt_extern_alias_directives opt_using_directives namespace_or_type_declarations opt_attributes",
203
//t "outer_declaration : opt_extern_alias_directives opt_using_directives attribute_sections",
204
//t "outer_declaration : error",
207
//t "extern_alias_directives : extern_alias_directive",
208
//t "extern_alias_directives : extern_alias_directives extern_alias_directive",
209
//t "extern_alias_directive : EXTERN_ALIAS IDENTIFIER IDENTIFIER SEMICOLON",
210
//t "extern_alias_directive : EXTERN_ALIAS error",
211
//t "using_directives : using_directive",
212
//t "using_directives : using_directives using_directive",
213
//t "using_directive : using_namespace",
214
//t "using_namespace : USING namespace_or_type_expr SEMICOLON",
215
//t "using_namespace : USING IDENTIFIER ASSIGN namespace_or_type_expr SEMICOLON",
216
//t "using_namespace : USING error",
219
//t "namespace_declaration : opt_attributes NAMESPACE namespace_name $$2 OPEN_BRACE $$3 opt_extern_alias_directives opt_using_directives opt_namespace_or_type_declarations CLOSE_BRACE opt_semicolon_error",
220
//t "namespace_declaration : opt_attributes NAMESPACE namespace_name",
221
//t "opt_semicolon_error :",
222
//t "opt_semicolon_error : SEMICOLON",
223
//t "opt_semicolon_error : error",
224
//t "namespace_name : IDENTIFIER",
225
//t "namespace_name : namespace_name DOT IDENTIFIER",
226
//t "namespace_name : error",
227
//t "opt_semicolon :",
228
//t "opt_semicolon : SEMICOLON",
230
//t "opt_comma : COMMA",
231
//t "opt_using_directives :",
232
//t "opt_using_directives : using_directives",
233
//t "opt_extern_alias_directives :",
234
//t "opt_extern_alias_directives : extern_alias_directives",
235
//t "opt_namespace_or_type_declarations :",
236
//t "opt_namespace_or_type_declarations : namespace_or_type_declarations",
237
//t "namespace_or_type_declarations : namespace_or_type_declaration",
238
//t "namespace_or_type_declarations : namespace_or_type_declarations namespace_or_type_declaration",
239
//t "namespace_or_type_declaration : type_declaration",
240
//t "namespace_or_type_declaration : namespace_declaration",
241
//t "namespace_or_type_declaration : attribute_sections CLOSE_BRACE",
242
//t "type_declaration : class_declaration",
243
//t "type_declaration : struct_declaration",
244
//t "type_declaration : interface_declaration",
245
//t "type_declaration : enum_declaration",
246
//t "type_declaration : delegate_declaration",
247
//t "opt_attributes :",
248
//t "opt_attributes : attribute_sections",
249
//t "attribute_sections : attribute_section",
250
//t "attribute_sections : attribute_sections attribute_section",
252
//t "attribute_section : OPEN_BRACKET $$4 attribute_section_cont",
254
//t "attribute_section_cont : attribute_target COLON $$5 attribute_list opt_comma CLOSE_BRACKET",
255
//t "attribute_section_cont : attribute_list opt_comma CLOSE_BRACKET",
256
//t "attribute_section_cont : IDENTIFIER error",
257
//t "attribute_section_cont : error",
258
//t "attribute_target : IDENTIFIER",
259
//t "attribute_target : EVENT",
260
//t "attribute_target : RETURN",
261
//t "attribute_list : attribute",
262
//t "attribute_list : attribute_list COMMA attribute",
264
//t "attribute : attribute_name $$6 opt_attribute_arguments",
265
//t "attribute_name : namespace_or_type_expr",
266
//t "opt_attribute_arguments :",
267
//t "opt_attribute_arguments : OPEN_PARENS attribute_arguments CLOSE_PARENS",
268
//t "attribute_arguments :",
269
//t "attribute_arguments : positional_or_named_argument",
270
//t "attribute_arguments : named_attribute_argument",
271
//t "attribute_arguments : attribute_arguments COMMA positional_or_named_argument",
272
//t "attribute_arguments : attribute_arguments COMMA named_attribute_argument",
273
//t "positional_or_named_argument : expression",
274
//t "positional_or_named_argument : named_argument",
275
//t "positional_or_named_argument : error",
277
//t "named_attribute_argument : IDENTIFIER ASSIGN $$7 expression",
278
//t "named_argument : identifier_inside_body COLON opt_named_modifier expression",
279
//t "opt_named_modifier :",
280
//t "opt_named_modifier : REF",
281
//t "opt_named_modifier : OUT",
282
//t "opt_class_member_declarations :",
283
//t "opt_class_member_declarations : class_member_declarations",
284
//t "class_member_declarations : class_member_declaration",
285
//t "class_member_declarations : class_member_declarations class_member_declaration",
286
//t "class_member_declaration : constant_declaration",
287
//t "class_member_declaration : field_declaration",
288
//t "class_member_declaration : method_declaration",
289
//t "class_member_declaration : property_declaration",
290
//t "class_member_declaration : event_declaration",
291
//t "class_member_declaration : indexer_declaration",
292
//t "class_member_declaration : operator_declaration",
293
//t "class_member_declaration : constructor_declaration",
294
//t "class_member_declaration : destructor_declaration",
295
//t "class_member_declaration : type_declaration",
296
//t "class_member_declaration : attributes_without_members",
297
//t "class_member_declaration : incomplete_member",
298
//t "class_member_declaration : error",
304
//t "struct_declaration : opt_attributes opt_modifiers opt_partial STRUCT $$8 type_declaration_name $$9 opt_class_base opt_type_parameter_constraints_clauses $$10 OPEN_BRACE $$11 opt_class_member_declarations CLOSE_BRACE $$12 opt_semicolon",
305
//t "struct_declaration : opt_attributes opt_modifiers opt_partial STRUCT error",
307
//t "constant_declaration : opt_attributes opt_modifiers CONST type IDENTIFIER $$13 constant_initializer opt_constant_declarators SEMICOLON",
308
//t "constant_declaration : opt_attributes opt_modifiers CONST type error",
309
//t "opt_constant_declarators :",
310
//t "opt_constant_declarators : constant_declarators",
311
//t "constant_declarators : constant_declarator",
312
//t "constant_declarators : constant_declarators constant_declarator",
313
//t "constant_declarator : COMMA IDENTIFIER constant_initializer",
315
//t "constant_initializer : ASSIGN $$14 constant_initializer_expr",
316
//t "constant_initializer : error",
317
//t "constant_initializer_expr : constant_expression",
318
//t "constant_initializer_expr : array_initializer",
320
//t "field_declaration : opt_attributes opt_modifiers member_type IDENTIFIER $$15 opt_field_initializer opt_field_declarators SEMICOLON",
322
//t "field_declaration : opt_attributes opt_modifiers FIXED simple_type IDENTIFIER $$16 fixed_field_size opt_fixed_field_declarators SEMICOLON",
323
//t "field_declaration : opt_attributes opt_modifiers FIXED simple_type error SEMICOLON",
324
//t "opt_field_initializer :",
326
//t "opt_field_initializer : ASSIGN $$17 variable_initializer",
327
//t "opt_field_declarators :",
328
//t "opt_field_declarators : field_declarators",
329
//t "field_declarators : field_declarator",
330
//t "field_declarators : field_declarators field_declarator",
331
//t "field_declarator : COMMA IDENTIFIER",
333
//t "field_declarator : COMMA IDENTIFIER ASSIGN $$18 variable_initializer",
334
//t "opt_fixed_field_declarators :",
335
//t "opt_fixed_field_declarators : fixed_field_declarators",
336
//t "fixed_field_declarators : fixed_field_declarator",
337
//t "fixed_field_declarators : fixed_field_declarators fixed_field_declarator",
338
//t "fixed_field_declarator : COMMA IDENTIFIER fixed_field_size",
340
//t "fixed_field_size : OPEN_BRACKET $$19 expression CLOSE_BRACKET",
341
//t "fixed_field_size : OPEN_BRACKET error",
342
//t "variable_initializer : expression",
343
//t "variable_initializer : array_initializer",
344
//t "variable_initializer : error",
346
//t "method_declaration : method_header $$20 method_body",
349
//t "method_header : opt_attributes opt_modifiers member_type method_declaration_name OPEN_PARENS $$21 opt_formal_parameter_list CLOSE_PARENS $$22 opt_type_parameter_constraints_clauses",
353
//t "method_header : opt_attributes opt_modifiers PARTIAL VOID $$23 method_declaration_name OPEN_PARENS $$24 opt_formal_parameter_list CLOSE_PARENS $$25 opt_type_parameter_constraints_clauses",
354
//t "method_header : opt_attributes opt_modifiers member_type modifiers method_declaration_name OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS",
355
//t "method_header : opt_attributes opt_modifiers member_type method_declaration_name error",
356
//t "method_body : block",
357
//t "method_body : SEMICOLON",
358
//t "opt_formal_parameter_list :",
359
//t "opt_formal_parameter_list : formal_parameter_list",
360
//t "formal_parameter_list : fixed_parameters",
361
//t "formal_parameter_list : fixed_parameters COMMA parameter_array",
362
//t "formal_parameter_list : fixed_parameters COMMA arglist_modifier",
363
//t "formal_parameter_list : parameter_array COMMA error",
364
//t "formal_parameter_list : fixed_parameters COMMA parameter_array COMMA error",
365
//t "formal_parameter_list : arglist_modifier COMMA error",
366
//t "formal_parameter_list : fixed_parameters COMMA ARGLIST COMMA error",
367
//t "formal_parameter_list : parameter_array",
368
//t "formal_parameter_list : arglist_modifier",
369
//t "formal_parameter_list : error",
370
//t "fixed_parameters : fixed_parameter",
371
//t "fixed_parameters : fixed_parameters COMMA fixed_parameter",
372
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type identifier_inside_body",
373
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type identifier_inside_body OPEN_BRACKET CLOSE_BRACKET",
374
//t "fixed_parameter : attribute_sections error",
375
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type error",
377
//t "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type identifier_inside_body ASSIGN $$26 constant_expression",
378
//t "opt_parameter_modifier :",
379
//t "opt_parameter_modifier : parameter_modifiers",
380
//t "parameter_modifiers : parameter_modifier",
381
//t "parameter_modifiers : parameter_modifiers parameter_modifier",
382
//t "parameter_modifier : REF",
383
//t "parameter_modifier : OUT",
384
//t "parameter_modifier : THIS",
385
//t "parameter_array : opt_attributes params_modifier type IDENTIFIER",
386
//t "parameter_array : opt_attributes params_modifier type IDENTIFIER ASSIGN constant_expression",
387
//t "parameter_array : opt_attributes params_modifier type error",
388
//t "params_modifier : PARAMS",
389
//t "params_modifier : PARAMS parameter_modifier",
390
//t "params_modifier : PARAMS params_modifier",
391
//t "arglist_modifier : ARGLIST",
395
//t "property_declaration : opt_attributes opt_modifiers member_type member_declaration_name $$27 OPEN_BRACE $$28 accessor_declarations $$29 CLOSE_BRACE",
399
//t "indexer_declaration : opt_attributes opt_modifiers member_type indexer_declaration_name OPEN_BRACKET $$30 opt_formal_parameter_list CLOSE_BRACKET $$31 OPEN_BRACE accessor_declarations $$32 CLOSE_BRACE",
400
//t "accessor_declarations : get_accessor_declaration",
401
//t "accessor_declarations : get_accessor_declaration accessor_declarations",
402
//t "accessor_declarations : set_accessor_declaration",
403
//t "accessor_declarations : set_accessor_declaration accessor_declarations",
404
//t "accessor_declarations : error",
406
//t "get_accessor_declaration : opt_attributes opt_modifiers GET $$33 accessor_body",
408
//t "set_accessor_declaration : opt_attributes opt_modifiers SET $$34 accessor_body",
409
//t "accessor_body : block",
410
//t "accessor_body : SEMICOLON",
411
//t "accessor_body : error",
416
//t "interface_declaration : opt_attributes opt_modifiers opt_partial INTERFACE $$35 type_declaration_name $$36 opt_class_base opt_type_parameter_constraints_clauses $$37 OPEN_BRACE opt_interface_member_declarations CLOSE_BRACE $$38 opt_semicolon",
417
//t "interface_declaration : opt_attributes opt_modifiers opt_partial INTERFACE error",
418
//t "opt_interface_member_declarations :",
419
//t "opt_interface_member_declarations : interface_member_declarations",
420
//t "interface_member_declarations : interface_member_declaration",
421
//t "interface_member_declarations : interface_member_declarations interface_member_declaration",
422
//t "interface_member_declaration : constant_declaration",
423
//t "interface_member_declaration : field_declaration",
424
//t "interface_member_declaration : method_declaration",
425
//t "interface_member_declaration : property_declaration",
426
//t "interface_member_declaration : event_declaration",
427
//t "interface_member_declaration : indexer_declaration",
428
//t "interface_member_declaration : operator_declaration",
429
//t "interface_member_declaration : constructor_declaration",
430
//t "interface_member_declaration : type_declaration",
432
//t "operator_declaration : opt_attributes opt_modifiers operator_declarator $$39 operator_body",
433
//t "operator_body : block",
434
//t "operator_body : SEMICOLON",
435
//t "operator_type : type_expression_or_array",
436
//t "operator_type : VOID",
438
//t "operator_declarator : operator_type OPERATOR overloadable_operator OPEN_PARENS $$40 opt_formal_parameter_list CLOSE_PARENS",
439
//t "operator_declarator : conversion_operator_declarator",
440
//t "overloadable_operator : BANG",
441
//t "overloadable_operator : TILDE",
442
//t "overloadable_operator : OP_INC",
443
//t "overloadable_operator : OP_DEC",
444
//t "overloadable_operator : TRUE",
445
//t "overloadable_operator : FALSE",
446
//t "overloadable_operator : PLUS",
447
//t "overloadable_operator : MINUS",
448
//t "overloadable_operator : STAR",
449
//t "overloadable_operator : DIV",
450
//t "overloadable_operator : PERCENT",
451
//t "overloadable_operator : BITWISE_AND",
452
//t "overloadable_operator : BITWISE_OR",
453
//t "overloadable_operator : CARRET",
454
//t "overloadable_operator : OP_SHIFT_LEFT",
455
//t "overloadable_operator : OP_SHIFT_RIGHT",
456
//t "overloadable_operator : OP_EQ",
457
//t "overloadable_operator : OP_NE",
458
//t "overloadable_operator : OP_GT",
459
//t "overloadable_operator : OP_LT",
460
//t "overloadable_operator : OP_GE",
461
//t "overloadable_operator : OP_LE",
463
//t "conversion_operator_declarator : IMPLICIT OPERATOR type OPEN_PARENS $$41 opt_formal_parameter_list CLOSE_PARENS",
465
//t "conversion_operator_declarator : EXPLICIT OPERATOR type OPEN_PARENS $$42 opt_formal_parameter_list CLOSE_PARENS",
466
//t "conversion_operator_declarator : IMPLICIT error",
467
//t "conversion_operator_declarator : EXPLICIT error",
468
//t "constructor_declaration : constructor_declarator constructor_body",
471
//t "constructor_declarator : opt_attributes opt_modifiers IDENTIFIER $$43 OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS $$44 opt_constructor_initializer",
472
//t "constructor_body : block_prepared",
473
//t "constructor_body : SEMICOLON",
474
//t "opt_constructor_initializer :",
475
//t "opt_constructor_initializer : constructor_initializer",
477
//t "constructor_initializer : COLON BASE OPEN_PARENS $$45 opt_argument_list CLOSE_PARENS",
479
//t "constructor_initializer : COLON THIS OPEN_PARENS $$46 opt_argument_list CLOSE_PARENS",
480
//t "constructor_initializer : COLON error",
481
//t "constructor_initializer : error",
483
//t "destructor_declaration : opt_attributes opt_modifiers TILDE $$47 IDENTIFIER OPEN_PARENS CLOSE_PARENS method_body",
485
//t "event_declaration : opt_attributes opt_modifiers EVENT type member_declaration_name $$48 opt_event_initializer opt_event_declarators SEMICOLON",
488
//t "event_declaration : opt_attributes opt_modifiers EVENT type member_declaration_name OPEN_BRACE $$49 event_accessor_declarations $$50 CLOSE_BRACE",
489
//t "event_declaration : opt_attributes opt_modifiers EVENT type error",
490
//t "opt_event_initializer :",
492
//t "opt_event_initializer : ASSIGN $$51 event_variable_initializer",
493
//t "opt_event_declarators :",
494
//t "opt_event_declarators : event_declarators",
495
//t "event_declarators : event_declarator",
496
//t "event_declarators : event_declarators event_declarator",
497
//t "event_declarator : COMMA IDENTIFIER",
499
//t "event_declarator : COMMA IDENTIFIER ASSIGN $$52 event_variable_initializer",
501
//t "event_variable_initializer : $$53 variable_initializer",
502
//t "event_accessor_declarations : add_accessor_declaration remove_accessor_declaration",
503
//t "event_accessor_declarations : remove_accessor_declaration add_accessor_declaration",
504
//t "event_accessor_declarations : add_accessor_declaration",
505
//t "event_accessor_declarations : remove_accessor_declaration",
506
//t "event_accessor_declarations : error",
508
//t "add_accessor_declaration : opt_attributes opt_modifiers ADD $$54 event_accessor_block",
510
//t "remove_accessor_declaration : opt_attributes opt_modifiers REMOVE $$55 event_accessor_block",
511
//t "event_accessor_block : opt_semicolon",
512
//t "event_accessor_block : block",
513
//t "attributes_without_members : attribute_sections CLOSE_BRACE",
514
//t "incomplete_member : opt_attributes opt_modifiers member_type CLOSE_BRACE",
518
//t "enum_declaration : opt_attributes opt_modifiers ENUM type_declaration_name opt_enum_base $$56 OPEN_BRACE $$57 opt_enum_member_declarations $$58 CLOSE_BRACE opt_semicolon",
519
//t "opt_enum_base :",
520
//t "opt_enum_base : COLON type",
521
//t "opt_enum_base : COLON error",
522
//t "opt_enum_member_declarations :",
523
//t "opt_enum_member_declarations : enum_member_declarations",
524
//t "opt_enum_member_declarations : enum_member_declarations COMMA",
525
//t "enum_member_declarations : enum_member_declaration",
526
//t "enum_member_declarations : enum_member_declarations COMMA enum_member_declaration",
527
//t "enum_member_declaration : opt_attributes IDENTIFIER",
529
//t "enum_member_declaration : opt_attributes IDENTIFIER $$59 ASSIGN constant_expression",
530
//t "enum_member_declaration : opt_attributes IDENTIFIER error",
531
//t "enum_member_declaration : attributes_without_members",
535
//t "delegate_declaration : opt_attributes opt_modifiers DELEGATE member_type type_declaration_name OPEN_PARENS $$60 opt_formal_parameter_list CLOSE_PARENS $$61 opt_type_parameter_constraints_clauses $$62 SEMICOLON",
536
//t "opt_nullable :",
537
//t "opt_nullable : INTERR_NULLABLE",
538
//t "namespace_or_type_expr : member_name",
539
//t "namespace_or_type_expr : qualified_alias_member IDENTIFIER opt_type_argument_list",
540
//t "member_name : simple_name_expr",
541
//t "member_name : namespace_or_type_expr DOT IDENTIFIER opt_type_argument_list",
542
//t "simple_name_expr : IDENTIFIER opt_type_argument_list",
543
//t "opt_type_argument_list :",
544
//t "opt_type_argument_list : OP_GENERICS_LT type_arguments OP_GENERICS_GT",
545
//t "opt_type_argument_list : OP_GENERICS_LT error",
546
//t "type_arguments : type",
547
//t "type_arguments : type_arguments COMMA type",
549
//t "type_declaration_name : IDENTIFIER $$63 opt_type_parameter_list",
550
//t "member_declaration_name : method_declaration_name",
551
//t "method_declaration_name : type_declaration_name",
552
//t "method_declaration_name : explicit_interface IDENTIFIER opt_type_parameter_list",
553
//t "indexer_declaration_name : THIS",
554
//t "indexer_declaration_name : explicit_interface THIS",
555
//t "explicit_interface : IDENTIFIER opt_type_argument_list DOT",
556
//t "explicit_interface : qualified_alias_member IDENTIFIER opt_type_argument_list DOT",
557
//t "explicit_interface : explicit_interface IDENTIFIER opt_type_argument_list DOT",
558
//t "opt_type_parameter_list :",
559
//t "opt_type_parameter_list : OP_GENERICS_LT_DECL type_parameters OP_GENERICS_GT",
560
//t "type_parameters : type_parameter",
561
//t "type_parameters : type_parameters COMMA type_parameter",
562
//t "type_parameter : opt_attributes opt_type_parameter_variance IDENTIFIER",
563
//t "type_parameter : error",
564
//t "type_and_void : type_expression_or_array",
565
//t "type_and_void : VOID",
566
//t "member_type : type_and_void",
567
//t "type : type_expression_or_array",
569
//t "simple_type : type_expression",
570
//t "simple_type : VOID",
571
//t "parameter_type : type_expression_or_array",
572
//t "parameter_type : VOID",
573
//t "type_expression_or_array : type_expression",
574
//t "type_expression_or_array : type_expression rank_specifiers",
575
//t "type_expression : namespace_or_type_expr opt_nullable",
576
//t "type_expression : namespace_or_type_expr pointer_stars",
577
//t "type_expression : builtin_types opt_nullable",
578
//t "type_expression : builtin_types pointer_stars",
579
//t "type_expression : VOID pointer_stars",
580
//t "type_list : base_type_name",
581
//t "type_list : type_list COMMA base_type_name",
582
//t "base_type_name : type",
583
//t "builtin_types : OBJECT",
584
//t "builtin_types : STRING",
585
//t "builtin_types : BOOL",
586
//t "builtin_types : DECIMAL",
587
//t "builtin_types : FLOAT",
588
//t "builtin_types : DOUBLE",
589
//t "builtin_types : integral_type",
590
//t "integral_type : SBYTE",
591
//t "integral_type : BYTE",
592
//t "integral_type : SHORT",
593
//t "integral_type : USHORT",
594
//t "integral_type : INT",
595
//t "integral_type : UINT",
596
//t "integral_type : LONG",
597
//t "integral_type : ULONG",
598
//t "integral_type : CHAR",
599
//t "primary_expression : primary_expression_or_type",
600
//t "primary_expression : literal",
601
//t "primary_expression : array_creation_expression",
602
//t "primary_expression : parenthesized_expression",
603
//t "primary_expression : default_value_expression",
604
//t "primary_expression : invocation_expression",
605
//t "primary_expression : element_access",
606
//t "primary_expression : this_access",
607
//t "primary_expression : base_access",
608
//t "primary_expression : post_increment_expression",
609
//t "primary_expression : post_decrement_expression",
610
//t "primary_expression : object_or_delegate_creation_expression",
611
//t "primary_expression : anonymous_type_expression",
612
//t "primary_expression : typeof_expression",
613
//t "primary_expression : sizeof_expression",
614
//t "primary_expression : checked_expression",
615
//t "primary_expression : unchecked_expression",
616
//t "primary_expression : pointer_member_access",
617
//t "primary_expression : anonymous_method_expression",
618
//t "primary_expression : undocumented_expressions",
619
//t "primary_expression_or_type : IDENTIFIER opt_type_argument_list",
620
//t "primary_expression_or_type : IDENTIFIER GENERATE_COMPLETION",
621
//t "primary_expression_or_type : member_access",
622
//t "literal : boolean_literal",
623
//t "literal : LITERAL",
624
//t "literal : NULL",
625
//t "boolean_literal : TRUE",
626
//t "boolean_literal : FALSE",
627
//t "open_parens_any : OPEN_PARENS",
628
//t "open_parens_any : OPEN_PARENS_CAST",
629
//t "close_parens : CLOSE_PARENS",
630
//t "close_parens : COMPLETE_COMPLETION",
631
//t "parenthesized_expression : OPEN_PARENS expression CLOSE_PARENS",
632
//t "parenthesized_expression : OPEN_PARENS expression COMPLETE_COMPLETION",
633
//t "member_access : primary_expression DOT identifier_inside_body opt_type_argument_list",
634
//t "member_access : builtin_types DOT identifier_inside_body opt_type_argument_list",
635
//t "member_access : BASE DOT identifier_inside_body opt_type_argument_list",
636
//t "member_access : qualified_alias_member identifier_inside_body opt_type_argument_list",
637
//t "member_access : primary_expression DOT GENERATE_COMPLETION",
638
//t "member_access : primary_expression DOT IDENTIFIER GENERATE_COMPLETION",
639
//t "member_access : builtin_types DOT GENERATE_COMPLETION",
640
//t "member_access : builtin_types DOT IDENTIFIER GENERATE_COMPLETION",
641
//t "invocation_expression : primary_expression open_parens_any opt_argument_list close_parens",
642
//t "invocation_expression : primary_expression open_parens_any argument_list error",
643
//t "invocation_expression : primary_expression open_parens_any error",
644
//t "opt_object_or_collection_initializer :",
645
//t "opt_object_or_collection_initializer : object_or_collection_initializer",
646
//t "object_or_collection_initializer : OPEN_BRACE opt_member_initializer_list close_brace_or_complete_completion",
647
//t "object_or_collection_initializer : OPEN_BRACE member_initializer_list COMMA CLOSE_BRACE",
648
//t "opt_member_initializer_list :",
649
//t "opt_member_initializer_list : member_initializer_list",
650
//t "member_initializer_list : member_initializer",
651
//t "member_initializer_list : member_initializer_list COMMA member_initializer",
652
//t "member_initializer_list : member_initializer_list error",
653
//t "member_initializer : IDENTIFIER ASSIGN initializer_value",
654
//t "member_initializer : AWAIT ASSIGN initializer_value",
655
//t "member_initializer : GENERATE_COMPLETION",
656
//t "member_initializer : non_assignment_expression opt_COMPLETE_COMPLETION",
657
//t "member_initializer : OPEN_BRACE expression_list CLOSE_BRACE",
658
//t "member_initializer : OPEN_BRACE CLOSE_BRACE",
659
//t "initializer_value : expression",
660
//t "initializer_value : object_or_collection_initializer",
661
//t "opt_argument_list :",
662
//t "opt_argument_list : argument_list",
663
//t "argument_list : argument_or_named_argument",
664
//t "argument_list : argument_list COMMA argument",
665
//t "argument_list : argument_list COMMA named_argument",
666
//t "argument_list : argument_list COMMA error",
667
//t "argument_list : COMMA error",
668
//t "argument : expression",
669
//t "argument : non_simple_argument",
670
//t "argument_or_named_argument : argument",
671
//t "argument_or_named_argument : named_argument",
672
//t "non_simple_argument : REF variable_reference",
673
//t "non_simple_argument : OUT variable_reference",
674
//t "non_simple_argument : ARGLIST OPEN_PARENS argument_list CLOSE_PARENS",
675
//t "non_simple_argument : ARGLIST OPEN_PARENS CLOSE_PARENS",
676
//t "variable_reference : expression",
677
//t "element_access : primary_expression OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
678
//t "element_access : primary_expression OPEN_BRACKET_EXPR expression_list_arguments error",
679
//t "element_access : primary_expression OPEN_BRACKET_EXPR error",
680
//t "expression_list : expression_or_error",
681
//t "expression_list : expression_list COMMA expression_or_error",
682
//t "expression_list_arguments : expression_list_argument",
683
//t "expression_list_arguments : expression_list_arguments COMMA expression_list_argument",
684
//t "expression_list_argument : expression",
685
//t "expression_list_argument : named_argument",
686
//t "this_access : THIS",
687
//t "base_access : BASE OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
688
//t "base_access : BASE OPEN_BRACKET error",
689
//t "post_increment_expression : primary_expression OP_INC",
690
//t "post_decrement_expression : primary_expression OP_DEC",
691
//t "object_or_delegate_creation_expression : NEW new_expr_type open_parens_any opt_argument_list CLOSE_PARENS opt_object_or_collection_initializer",
692
//t "object_or_delegate_creation_expression : NEW new_expr_type object_or_collection_initializer",
693
//t "array_creation_expression : NEW new_expr_type OPEN_BRACKET_EXPR expression_list CLOSE_BRACKET opt_rank_specifier opt_array_initializer",
694
//t "array_creation_expression : NEW new_expr_type rank_specifiers opt_array_initializer",
695
//t "array_creation_expression : NEW rank_specifier array_initializer",
696
//t "array_creation_expression : NEW new_expr_type OPEN_BRACKET CLOSE_BRACKET OPEN_BRACKET_EXPR error CLOSE_BRACKET",
697
//t "array_creation_expression : NEW new_expr_type error",
699
//t "new_expr_type : $$64 simple_type",
700
//t "anonymous_type_expression : NEW OPEN_BRACE anonymous_type_parameters_opt_comma CLOSE_BRACE",
701
//t "anonymous_type_parameters_opt_comma : anonymous_type_parameters_opt",
702
//t "anonymous_type_parameters_opt_comma : anonymous_type_parameters COMMA",
703
//t "anonymous_type_parameters_opt :",
704
//t "anonymous_type_parameters_opt : anonymous_type_parameters",
705
//t "anonymous_type_parameters : anonymous_type_parameter",
706
//t "anonymous_type_parameters : anonymous_type_parameters COMMA anonymous_type_parameter",
707
//t "anonymous_type_parameter : identifier_inside_body ASSIGN variable_initializer",
708
//t "anonymous_type_parameter : identifier_inside_body",
709
//t "anonymous_type_parameter : member_access",
710
//t "anonymous_type_parameter : error",
711
//t "opt_rank_specifier :",
712
//t "opt_rank_specifier : rank_specifiers",
713
//t "rank_specifiers : rank_specifier",
714
//t "rank_specifiers : rank_specifier rank_specifiers",
715
//t "rank_specifier : OPEN_BRACKET CLOSE_BRACKET",
716
//t "rank_specifier : OPEN_BRACKET dim_separators CLOSE_BRACKET",
717
//t "dim_separators : COMMA",
718
//t "dim_separators : dim_separators COMMA",
719
//t "opt_array_initializer :",
720
//t "opt_array_initializer : array_initializer",
721
//t "array_initializer : OPEN_BRACE CLOSE_BRACE",
722
//t "array_initializer : OPEN_BRACE variable_initializer_list opt_comma CLOSE_BRACE",
723
//t "variable_initializer_list : variable_initializer",
724
//t "variable_initializer_list : variable_initializer_list COMMA variable_initializer",
726
//t "typeof_expression : TYPEOF $$65 open_parens_any typeof_type_expression CLOSE_PARENS",
727
//t "typeof_type_expression : type_and_void",
728
//t "typeof_type_expression : unbound_type_name",
729
//t "typeof_type_expression : error",
730
//t "unbound_type_name : identifier_inside_body generic_dimension",
731
//t "unbound_type_name : qualified_alias_member identifier_inside_body generic_dimension",
732
//t "unbound_type_name : unbound_type_name DOT identifier_inside_body",
733
//t "unbound_type_name : unbound_type_name DOT identifier_inside_body generic_dimension",
734
//t "unbound_type_name : namespace_or_type_expr DOT identifier_inside_body generic_dimension",
735
//t "generic_dimension : GENERIC_DIMENSION",
736
//t "qualified_alias_member : IDENTIFIER DOUBLE_COLON",
737
//t "sizeof_expression : SIZEOF open_parens_any type CLOSE_PARENS",
738
//t "sizeof_expression : SIZEOF open_parens_any type error",
739
//t "checked_expression : CHECKED open_parens_any expression CLOSE_PARENS",
740
//t "checked_expression : CHECKED error",
741
//t "unchecked_expression : UNCHECKED open_parens_any expression CLOSE_PARENS",
742
//t "unchecked_expression : UNCHECKED error",
743
//t "pointer_member_access : primary_expression OP_PTR IDENTIFIER opt_type_argument_list",
745
//t "anonymous_method_expression : DELEGATE opt_anonymous_method_signature $$66 block",
747
//t "anonymous_method_expression : ASYNC DELEGATE opt_anonymous_method_signature $$67 block",
748
//t "opt_anonymous_method_signature :",
749
//t "opt_anonymous_method_signature : anonymous_method_signature",
751
//t "anonymous_method_signature : OPEN_PARENS $$68 opt_formal_parameter_list CLOSE_PARENS",
752
//t "default_value_expression : DEFAULT open_parens_any type CLOSE_PARENS",
753
//t "unary_expression : primary_expression",
754
//t "unary_expression : BANG prefixed_unary_expression",
755
//t "unary_expression : TILDE prefixed_unary_expression",
756
//t "unary_expression : OPEN_PARENS_CAST type CLOSE_PARENS prefixed_unary_expression",
757
//t "unary_expression : AWAIT prefixed_unary_expression",
758
//t "unary_expression : BANG error",
759
//t "unary_expression : TILDE error",
760
//t "unary_expression : OPEN_PARENS_CAST type CLOSE_PARENS error",
761
//t "unary_expression : AWAIT error",
762
//t "prefixed_unary_expression : unary_expression",
763
//t "prefixed_unary_expression : PLUS prefixed_unary_expression",
764
//t "prefixed_unary_expression : MINUS prefixed_unary_expression",
765
//t "prefixed_unary_expression : OP_INC prefixed_unary_expression",
766
//t "prefixed_unary_expression : OP_DEC prefixed_unary_expression",
767
//t "prefixed_unary_expression : STAR prefixed_unary_expression",
768
//t "prefixed_unary_expression : BITWISE_AND prefixed_unary_expression",
769
//t "prefixed_unary_expression : PLUS error",
770
//t "prefixed_unary_expression : MINUS error",
771
//t "prefixed_unary_expression : OP_INC error",
772
//t "prefixed_unary_expression : OP_DEC error",
773
//t "prefixed_unary_expression : STAR error",
774
//t "prefixed_unary_expression : BITWISE_AND error",
775
//t "multiplicative_expression : prefixed_unary_expression",
776
//t "multiplicative_expression : multiplicative_expression STAR prefixed_unary_expression",
777
//t "multiplicative_expression : multiplicative_expression DIV prefixed_unary_expression",
778
//t "multiplicative_expression : multiplicative_expression PERCENT prefixed_unary_expression",
779
//t "multiplicative_expression : multiplicative_expression STAR error",
780
//t "multiplicative_expression : multiplicative_expression DIV error",
781
//t "multiplicative_expression : multiplicative_expression PERCENT error",
782
//t "additive_expression : multiplicative_expression",
783
//t "additive_expression : additive_expression PLUS multiplicative_expression",
784
//t "additive_expression : additive_expression MINUS multiplicative_expression",
785
//t "additive_expression : additive_expression AS type",
786
//t "additive_expression : additive_expression IS type",
787
//t "additive_expression : additive_expression PLUS error",
788
//t "additive_expression : additive_expression MINUS error",
789
//t "additive_expression : additive_expression AS error",
790
//t "additive_expression : additive_expression IS error",
791
//t "shift_expression : additive_expression",
792
//t "shift_expression : shift_expression OP_SHIFT_LEFT additive_expression",
793
//t "shift_expression : shift_expression OP_SHIFT_RIGHT additive_expression",
794
//t "shift_expression : shift_expression OP_SHIFT_LEFT error",
795
//t "shift_expression : shift_expression OP_SHIFT_RIGHT error",
796
//t "relational_expression : shift_expression",
797
//t "relational_expression : relational_expression OP_LT shift_expression",
798
//t "relational_expression : relational_expression OP_GT shift_expression",
799
//t "relational_expression : relational_expression OP_LE shift_expression",
800
//t "relational_expression : relational_expression OP_GE shift_expression",
801
//t "relational_expression : relational_expression OP_LT error",
802
//t "relational_expression : relational_expression OP_GT error",
803
//t "relational_expression : relational_expression OP_LE error",
804
//t "relational_expression : relational_expression OP_GE error",
805
//t "equality_expression : relational_expression",
806
//t "equality_expression : equality_expression OP_EQ relational_expression",
807
//t "equality_expression : equality_expression OP_NE relational_expression",
808
//t "equality_expression : equality_expression OP_EQ error",
809
//t "equality_expression : equality_expression OP_NE error",
810
//t "and_expression : equality_expression",
811
//t "and_expression : and_expression BITWISE_AND equality_expression",
812
//t "and_expression : and_expression BITWISE_AND error",
813
//t "exclusive_or_expression : and_expression",
814
//t "exclusive_or_expression : exclusive_or_expression CARRET and_expression",
815
//t "exclusive_or_expression : exclusive_or_expression CARRET error",
816
//t "inclusive_or_expression : exclusive_or_expression",
817
//t "inclusive_or_expression : inclusive_or_expression BITWISE_OR exclusive_or_expression",
818
//t "inclusive_or_expression : inclusive_or_expression BITWISE_OR error",
819
//t "conditional_and_expression : inclusive_or_expression",
820
//t "conditional_and_expression : conditional_and_expression OP_AND inclusive_or_expression",
821
//t "conditional_and_expression : conditional_and_expression OP_AND error",
822
//t "conditional_or_expression : conditional_and_expression",
823
//t "conditional_or_expression : conditional_or_expression OP_OR conditional_and_expression",
824
//t "conditional_or_expression : conditional_or_expression OP_OR error",
825
//t "null_coalescing_expression : conditional_or_expression",
826
//t "null_coalescing_expression : conditional_or_expression OP_COALESCING null_coalescing_expression",
827
//t "conditional_expression : null_coalescing_expression",
828
//t "conditional_expression : null_coalescing_expression INTERR expression COLON expression",
829
//t "conditional_expression : null_coalescing_expression INTERR expression error",
830
//t "conditional_expression : null_coalescing_expression INTERR expression COLON error",
831
//t "conditional_expression : null_coalescing_expression INTERR expression COLON CLOSE_BRACE",
832
//t "assignment_expression : prefixed_unary_expression ASSIGN expression",
833
//t "assignment_expression : prefixed_unary_expression OP_MULT_ASSIGN expression",
834
//t "assignment_expression : prefixed_unary_expression OP_DIV_ASSIGN expression",
835
//t "assignment_expression : prefixed_unary_expression OP_MOD_ASSIGN expression",
836
//t "assignment_expression : prefixed_unary_expression OP_ADD_ASSIGN expression",
837
//t "assignment_expression : prefixed_unary_expression OP_SUB_ASSIGN expression",
838
//t "assignment_expression : prefixed_unary_expression OP_SHIFT_LEFT_ASSIGN expression",
839
//t "assignment_expression : prefixed_unary_expression OP_SHIFT_RIGHT_ASSIGN expression",
840
//t "assignment_expression : prefixed_unary_expression OP_AND_ASSIGN expression",
841
//t "assignment_expression : prefixed_unary_expression OP_OR_ASSIGN expression",
842
//t "assignment_expression : prefixed_unary_expression OP_XOR_ASSIGN expression",
843
//t "lambda_parameter_list : lambda_parameter",
844
//t "lambda_parameter_list : lambda_parameter_list COMMA lambda_parameter",
845
//t "lambda_parameter : parameter_modifier parameter_type identifier_inside_body",
846
//t "lambda_parameter : parameter_type identifier_inside_body",
847
//t "lambda_parameter : IDENTIFIER",
848
//t "lambda_parameter : AWAIT",
849
//t "opt_lambda_parameter_list :",
850
//t "opt_lambda_parameter_list : lambda_parameter_list",
852
//t "lambda_expression_body : $$69 expression",
853
//t "lambda_expression_body : block",
854
//t "lambda_expression_body : error",
855
//t "expression_or_error : expression",
856
//t "expression_or_error : error",
858
//t "lambda_expression : IDENTIFIER ARROW $$70 lambda_expression_body",
860
//t "lambda_expression : AWAIT ARROW $$71 lambda_expression_body",
862
//t "lambda_expression : ASYNC identifier_inside_body ARROW $$72 lambda_expression_body",
865
//t "lambda_expression : OPEN_PARENS_LAMBDA $$73 opt_lambda_parameter_list CLOSE_PARENS ARROW $$74 lambda_expression_body",
868
//t "lambda_expression : ASYNC OPEN_PARENS_LAMBDA $$75 opt_lambda_parameter_list CLOSE_PARENS ARROW $$76 lambda_expression_body",
869
//t "expression : assignment_expression",
870
//t "expression : non_assignment_expression",
871
//t "non_assignment_expression : conditional_expression",
872
//t "non_assignment_expression : lambda_expression",
873
//t "non_assignment_expression : query_expression",
874
//t "non_assignment_expression : ARGLIST",
875
//t "undocumented_expressions : REFVALUE OPEN_PARENS non_assignment_expression COMMA type CLOSE_PARENS",
876
//t "undocumented_expressions : REFTYPE open_parens_any expression CLOSE_PARENS",
877
//t "undocumented_expressions : MAKEREF open_parens_any expression CLOSE_PARENS",
878
//t "constant_expression : expression",
879
//t "boolean_expression : expression",
884
//t "class_declaration : opt_attributes opt_modifiers opt_partial CLASS $$77 type_declaration_name $$78 opt_class_base opt_type_parameter_constraints_clauses $$79 OPEN_BRACE opt_class_member_declarations CLOSE_BRACE $$80 opt_semicolon",
886
//t "opt_partial : PARTIAL",
887
//t "opt_modifiers :",
888
//t "opt_modifiers : modifiers",
889
//t "modifiers : modifier",
890
//t "modifiers : modifiers modifier",
891
//t "modifier : NEW",
892
//t "modifier : PUBLIC",
893
//t "modifier : PROTECTED",
894
//t "modifier : INTERNAL",
895
//t "modifier : PRIVATE",
896
//t "modifier : ABSTRACT",
897
//t "modifier : SEALED",
898
//t "modifier : STATIC",
899
//t "modifier : READONLY",
900
//t "modifier : VIRTUAL",
901
//t "modifier : OVERRIDE",
902
//t "modifier : EXTERN",
903
//t "modifier : VOLATILE",
904
//t "modifier : UNSAFE",
905
//t "modifier : ASYNC",
906
//t "opt_class_base :",
907
//t "opt_class_base : COLON type_list",
908
//t "opt_class_base : COLON type_list error",
909
//t "opt_type_parameter_constraints_clauses :",
910
//t "opt_type_parameter_constraints_clauses : type_parameter_constraints_clauses",
911
//t "type_parameter_constraints_clauses : type_parameter_constraints_clause",
912
//t "type_parameter_constraints_clauses : type_parameter_constraints_clauses type_parameter_constraints_clause",
913
//t "type_parameter_constraints_clause : WHERE IDENTIFIER COLON type_parameter_constraints",
914
//t "type_parameter_constraints_clause : WHERE IDENTIFIER error",
915
//t "type_parameter_constraints : type_parameter_constraint",
916
//t "type_parameter_constraints : type_parameter_constraints COMMA type_parameter_constraint",
917
//t "type_parameter_constraint : type",
918
//t "type_parameter_constraint : NEW OPEN_PARENS CLOSE_PARENS",
919
//t "type_parameter_constraint : CLASS",
920
//t "type_parameter_constraint : STRUCT",
921
//t "opt_type_parameter_variance :",
922
//t "opt_type_parameter_variance : type_parameter_variance",
923
//t "type_parameter_variance : OUT",
924
//t "type_parameter_variance : IN",
926
//t "block : OPEN_BRACE $$81 opt_statement_list block_end",
927
//t "block_end : CLOSE_BRACE",
928
//t "block_end : COMPLETE_COMPLETION",
930
//t "block_prepared : OPEN_BRACE $$82 opt_statement_list CLOSE_BRACE",
931
//t "block_prepared : CLOSE_BRACE",
933
//t "block_prepared_strict : OPEN_BRACE $$83 opt_statement_list CLOSE_BRACE",
934
//t "opt_statement_list :",
935
//t "opt_statement_list : statement_list",
936
//t "statement_list : statement",
937
//t "statement_list : statement_list statement",
938
//t "statement : block_variable_declaration",
939
//t "statement : valid_declaration_statement",
940
//t "statement : labeled_statement",
941
//t "statement : IDENTIFIER error",
942
//t "statement : error",
943
//t "interactive_statement_list : interactive_statement",
944
//t "interactive_statement_list : interactive_statement_list interactive_statement",
945
//t "interactive_statement : block_variable_declaration",
946
//t "interactive_statement : interactive_valid_declaration_statement",
947
//t "interactive_statement : labeled_statement",
948
//t "valid_declaration_statement : block",
949
//t "valid_declaration_statement : empty_statement",
950
//t "valid_declaration_statement : expression_statement",
951
//t "valid_declaration_statement : selection_statement",
952
//t "valid_declaration_statement : iteration_statement",
953
//t "valid_declaration_statement : jump_statement",
954
//t "valid_declaration_statement : try_statement",
955
//t "valid_declaration_statement : checked_statement",
956
//t "valid_declaration_statement : unchecked_statement",
957
//t "valid_declaration_statement : lock_statement",
958
//t "valid_declaration_statement : using_statement",
959
//t "valid_declaration_statement : unsafe_statement",
960
//t "valid_declaration_statement : fixed_statement",
961
//t "interactive_valid_declaration_statement : block",
962
//t "interactive_valid_declaration_statement : empty_statement",
963
//t "interactive_valid_declaration_statement : interactive_expression_statement",
964
//t "interactive_valid_declaration_statement : selection_statement",
965
//t "interactive_valid_declaration_statement : iteration_statement",
966
//t "interactive_valid_declaration_statement : jump_statement",
967
//t "interactive_valid_declaration_statement : try_statement",
968
//t "interactive_valid_declaration_statement : checked_statement",
969
//t "interactive_valid_declaration_statement : unchecked_statement",
970
//t "interactive_valid_declaration_statement : lock_statement",
971
//t "interactive_valid_declaration_statement : using_statement",
972
//t "interactive_valid_declaration_statement : unsafe_statement",
973
//t "interactive_valid_declaration_statement : fixed_statement",
974
//t "embedded_statement : valid_declaration_statement",
975
//t "embedded_statement : block_variable_declaration",
976
//t "embedded_statement : labeled_statement",
977
//t "embedded_statement : error",
978
//t "empty_statement : SEMICOLON",
980
//t "labeled_statement : identifier_inside_body COLON $$84 statement",
981
//t "variable_type : variable_type_simple",
982
//t "variable_type : variable_type_simple rank_specifiers",
983
//t "variable_type_simple : primary_expression_or_type opt_nullable",
984
//t "variable_type_simple : primary_expression_or_type pointer_stars",
985
//t "variable_type_simple : builtin_types opt_nullable",
986
//t "variable_type_simple : builtin_types pointer_stars",
987
//t "variable_type_simple : VOID pointer_stars",
988
//t "variable_type_simple : VOID",
989
//t "pointer_stars : pointer_star",
990
//t "pointer_stars : pointer_star pointer_stars",
991
//t "pointer_star : STAR",
992
//t "identifier_inside_body : IDENTIFIER",
993
//t "identifier_inside_body : AWAIT",
995
//t "block_variable_declaration : variable_type identifier_inside_body $$85 opt_local_variable_initializer opt_variable_declarators semicolon_or_handle_error_close_brace",
997
//t "block_variable_declaration : CONST variable_type identifier_inside_body $$86 const_variable_initializer opt_const_declarators SEMICOLON",
998
//t "semicolon_or_handle_error_close_brace : SEMICOLON",
999
//t "semicolon_or_handle_error_close_brace : CLOSE_BRACE",
1000
//t "opt_local_variable_initializer :",
1001
//t "opt_local_variable_initializer : ASSIGN block_variable_initializer",
1002
//t "opt_local_variable_initializer : error",
1003
//t "opt_variable_declarators :",
1004
//t "opt_variable_declarators : variable_declarators",
1005
//t "opt_using_or_fixed_variable_declarators :",
1006
//t "opt_using_or_fixed_variable_declarators : variable_declarators",
1007
//t "variable_declarators : variable_declarator",
1008
//t "variable_declarators : variable_declarators variable_declarator",
1009
//t "variable_declarator : COMMA identifier_inside_body",
1010
//t "variable_declarator : COMMA identifier_inside_body ASSIGN block_variable_initializer",
1011
//t "const_variable_initializer :",
1012
//t "const_variable_initializer : ASSIGN constant_initializer_expr",
1013
//t "opt_const_declarators :",
1014
//t "opt_const_declarators : const_declarators",
1015
//t "const_declarators : const_declarator",
1016
//t "const_declarators : const_declarators const_declarator",
1017
//t "const_declarator : COMMA identifier_inside_body ASSIGN constant_initializer_expr",
1018
//t "block_variable_initializer : variable_initializer",
1019
//t "block_variable_initializer : STACKALLOC simple_type OPEN_BRACKET_EXPR expression CLOSE_BRACKET",
1020
//t "block_variable_initializer : STACKALLOC simple_type",
1021
//t "expression_statement : statement_expression SEMICOLON",
1022
//t "expression_statement : statement_expression COMPLETE_COMPLETION",
1023
//t "expression_statement : statement_expression CLOSE_BRACE",
1024
//t "interactive_expression_statement : interactive_statement_expression SEMICOLON",
1025
//t "interactive_expression_statement : interactive_statement_expression COMPLETE_COMPLETION",
1026
//t "statement_expression : expression",
1027
//t "interactive_statement_expression : expression",
1028
//t "interactive_statement_expression : error",
1029
//t "selection_statement : if_statement",
1030
//t "selection_statement : switch_statement",
1031
//t "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement",
1032
//t "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement ELSE embedded_statement",
1033
//t "if_statement : IF open_parens_any boolean_expression error",
1035
//t "switch_statement : SWITCH open_parens_any expression CLOSE_PARENS OPEN_BRACE $$87 opt_switch_sections CLOSE_BRACE",
1036
//t "switch_statement : SWITCH open_parens_any expression error",
1037
//t "opt_switch_sections :",
1038
//t "opt_switch_sections : switch_sections",
1039
//t "switch_sections : switch_section",
1040
//t "switch_sections : switch_sections switch_section",
1041
//t "switch_sections : error",
1042
//t "switch_section : switch_labels statement_list",
1043
//t "switch_labels : switch_label",
1044
//t "switch_labels : switch_labels switch_label",
1045
//t "switch_label : CASE constant_expression COLON",
1046
//t "switch_label : CASE constant_expression error",
1047
//t "switch_label : DEFAULT_COLON",
1048
//t "iteration_statement : while_statement",
1049
//t "iteration_statement : do_statement",
1050
//t "iteration_statement : for_statement",
1051
//t "iteration_statement : foreach_statement",
1052
//t "while_statement : WHILE open_parens_any boolean_expression CLOSE_PARENS embedded_statement",
1053
//t "while_statement : WHILE open_parens_any boolean_expression error",
1054
//t "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression CLOSE_PARENS SEMICOLON",
1055
//t "do_statement : DO embedded_statement error",
1056
//t "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression error",
1058
//t "for_statement : FOR open_parens_any $$88 for_statement_cont",
1060
//t "for_statement_cont : opt_for_initializer SEMICOLON $$89 for_statement_condition",
1061
//t "for_statement_cont : opt_for_initializer CLOSE_PARENS",
1063
//t "for_statement_condition : opt_for_condition SEMICOLON $$90 for_statement_end",
1064
//t "for_statement_condition : boolean_expression CLOSE_PARENS",
1065
//t "for_statement_end : opt_for_iterator CLOSE_PARENS embedded_statement",
1066
//t "for_statement_end : error",
1067
//t "opt_for_initializer :",
1068
//t "opt_for_initializer : for_initializer",
1070
//t "for_initializer : variable_type identifier_inside_body $$91 opt_local_variable_initializer opt_variable_declarators",
1071
//t "for_initializer : statement_expression_list",
1072
//t "opt_for_condition :",
1073
//t "opt_for_condition : boolean_expression",
1074
//t "opt_for_iterator :",
1075
//t "opt_for_iterator : for_iterator",
1076
//t "for_iterator : statement_expression_list",
1077
//t "statement_expression_list : statement_expression",
1078
//t "statement_expression_list : statement_expression_list COMMA statement_expression",
1079
//t "foreach_statement : FOREACH open_parens_any type error",
1080
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
1082
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body IN expression CLOSE_PARENS $$92 embedded_statement",
1083
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
1084
//t "foreach_statement : FOREACH open_parens_any type error",
1085
//t "jump_statement : break_statement",
1086
//t "jump_statement : continue_statement",
1087
//t "jump_statement : goto_statement",
1088
//t "jump_statement : return_statement",
1089
//t "jump_statement : throw_statement",
1090
//t "jump_statement : yield_statement",
1091
//t "break_statement : BREAK SEMICOLON",
1092
//t "continue_statement : CONTINUE SEMICOLON",
1093
//t "continue_statement : CONTINUE error",
1094
//t "goto_statement : GOTO identifier_inside_body SEMICOLON",
1095
//t "goto_statement : GOTO CASE constant_expression SEMICOLON",
1096
//t "goto_statement : GOTO DEFAULT SEMICOLON",
1097
//t "return_statement : RETURN opt_expression SEMICOLON",
1098
//t "return_statement : RETURN expression error",
1099
//t "return_statement : RETURN error",
1100
//t "throw_statement : THROW opt_expression SEMICOLON",
1101
//t "throw_statement : THROW error",
1102
//t "yield_statement : identifier_inside_body RETURN opt_expression SEMICOLON",
1103
//t "yield_statement : identifier_inside_body RETURN expression error",
1104
//t "yield_statement : identifier_inside_body BREAK SEMICOLON",
1105
//t "opt_expression :",
1106
//t "opt_expression : expression",
1107
//t "try_statement : TRY block catch_clauses",
1108
//t "try_statement : TRY block FINALLY block",
1109
//t "try_statement : TRY block catch_clauses FINALLY block",
1110
//t "try_statement : TRY block error",
1111
//t "catch_clauses : catch_clause",
1112
//t "catch_clauses : catch_clauses catch_clause",
1113
//t "opt_identifier :",
1114
//t "opt_identifier : identifier_inside_body",
1115
//t "catch_clause : CATCH block",
1117
//t "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS $$93 block_prepared_strict",
1118
//t "catch_clause : CATCH open_parens_any error",
1119
//t "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS error",
1120
//t "checked_statement : CHECKED block",
1121
//t "unchecked_statement : UNCHECKED block",
1123
//t "unsafe_statement : UNSAFE $$94 block",
1124
//t "lock_statement : LOCK open_parens_any expression CLOSE_PARENS embedded_statement",
1125
//t "lock_statement : LOCK open_parens_any expression error",
1128
//t "fixed_statement : FIXED open_parens_any variable_type identifier_inside_body $$95 using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators CLOSE_PARENS $$96 embedded_statement",
1131
//t "using_statement : USING open_parens_any variable_type identifier_inside_body $$97 using_initialization CLOSE_PARENS $$98 embedded_statement",
1132
//t "using_statement : USING open_parens_any expression CLOSE_PARENS embedded_statement",
1133
//t "using_statement : USING open_parens_any expression error",
1134
//t "using_initialization : using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators",
1135
//t "using_initialization : error",
1136
//t "using_or_fixed_variable_initializer :",
1137
//t "using_or_fixed_variable_initializer : ASSIGN variable_initializer",
1138
//t "query_expression : first_from_clause query_body",
1139
//t "query_expression : nested_from_clause query_body",
1140
//t "query_expression : first_from_clause COMPLETE_COMPLETION",
1141
//t "query_expression : nested_from_clause COMPLETE_COMPLETION",
1142
//t "first_from_clause : FROM_FIRST identifier_inside_body IN expression",
1143
//t "first_from_clause : FROM_FIRST type identifier_inside_body IN expression",
1144
//t "nested_from_clause : FROM identifier_inside_body IN expression",
1145
//t "nested_from_clause : FROM type identifier_inside_body IN expression",
1147
//t "from_clause : FROM identifier_inside_body IN $$99 expression_or_error",
1149
//t "from_clause : FROM type identifier_inside_body IN $$100 expression_or_error",
1150
//t "query_body : query_body_clauses select_or_group_clause opt_query_continuation",
1151
//t "query_body : select_or_group_clause opt_query_continuation",
1152
//t "query_body : query_body_clauses COMPLETE_COMPLETION",
1153
//t "query_body : query_body_clauses error",
1154
//t "query_body : error",
1156
//t "select_or_group_clause : SELECT $$101 expression_or_error",
1159
//t "select_or_group_clause : GROUP $$102 expression_or_error $$103 by_expression",
1160
//t "by_expression : BY expression_or_error",
1161
//t "by_expression : error",
1162
//t "query_body_clauses : query_body_clause",
1163
//t "query_body_clauses : query_body_clauses query_body_clause",
1164
//t "query_body_clause : from_clause",
1165
//t "query_body_clause : let_clause",
1166
//t "query_body_clause : where_clause",
1167
//t "query_body_clause : join_clause",
1168
//t "query_body_clause : orderby_clause",
1170
//t "let_clause : LET identifier_inside_body ASSIGN $$104 expression_or_error",
1172
//t "where_clause : WHERE $$105 expression_or_error",
1176
//t "join_clause : JOIN identifier_inside_body IN $$106 expression_or_error ON $$107 expression_or_error EQUALS $$108 expression_or_error opt_join_into",
1180
//t "join_clause : JOIN type identifier_inside_body IN $$109 expression_or_error ON $$110 expression_or_error EQUALS $$111 expression_or_error opt_join_into",
1181
//t "opt_join_into :",
1182
//t "opt_join_into : INTO identifier_inside_body",
1184
//t "orderby_clause : ORDERBY $$112 orderings",
1185
//t "orderings : order_by",
1187
//t "orderings : order_by COMMA $$113 orderings_then_by",
1188
//t "orderings_then_by : then_by",
1190
//t "orderings_then_by : orderings_then_by COMMA $$114 then_by",
1191
//t "order_by : expression",
1192
//t "order_by : expression ASCENDING",
1193
//t "order_by : expression DESCENDING",
1194
//t "then_by : expression",
1195
//t "then_by : expression ASCENDING",
1196
//t "then_by : expression DESCENDING",
1197
//t "opt_query_continuation :",
1199
//t "opt_query_continuation : INTO identifier_inside_body $$115 query_body",
1200
//t "interactive_parsing : EVAL_STATEMENT_PARSER EOF",
1201
//t "interactive_parsing : EVAL_USING_DECLARATIONS_UNIT_PARSER using_directives opt_COMPLETE_COMPLETION",
1203
//t "interactive_parsing : EVAL_STATEMENT_PARSER $$116 interactive_statement_list opt_COMPLETE_COMPLETION",
1204
//t "interactive_parsing : EVAL_COMPILATION_UNIT_PARSER interactive_compilation_unit",
1205
//t "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives",
1206
//t "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives namespace_or_type_declarations",
1207
//t "opt_COMPLETE_COMPLETION :",
1208
//t "opt_COMPLETE_COMPLETION : COMPLETE_COMPLETION",
1209
//t "close_brace_or_complete_completion : CLOSE_BRACE",
1210
//t "close_brace_or_complete_completion : COMPLETE_COMPLETION",
1211
//t "documentation_parsing : DOC_SEE doc_cref",
1212
//t "doc_cref : doc_type_declaration_name opt_doc_method_sig",
1213
//t "doc_cref : builtin_types opt_doc_method_sig",
1214
//t "doc_cref : builtin_types DOT IDENTIFIER opt_doc_method_sig",
1215
//t "doc_cref : doc_type_declaration_name DOT THIS",
1217
//t "doc_cref : doc_type_declaration_name DOT THIS OPEN_BRACKET $$117 opt_doc_parameters CLOSE_BRACKET",
1218
//t "doc_cref : EXPLICIT OPERATOR type opt_doc_method_sig",
1219
//t "doc_cref : IMPLICIT OPERATOR type opt_doc_method_sig",
1220
//t "doc_cref : OPERATOR overloadable_operator opt_doc_method_sig",
1221
//t "doc_type_declaration_name : type_declaration_name",
1222
//t "doc_type_declaration_name : doc_type_declaration_name DOT type_declaration_name",
1223
//t "opt_doc_method_sig :",
1225
//t "opt_doc_method_sig : OPEN_PARENS $$118 opt_doc_parameters CLOSE_PARENS",
1226
//t "opt_doc_parameters :",
1227
//t "opt_doc_parameters : doc_parameters",
1228
//t "doc_parameters : doc_parameter",
1229
//t "doc_parameters : doc_parameters COMMA doc_parameter",
1230
//t "doc_parameter : opt_parameter_modifier parameter_type",
1232
//t public static string getRule (int index) {
1233
//t return yyRule [index];
1236
protected static readonly string [] yyNames = {
1237
"end-of-file",null,null,null,null,null,null,null,null,null,null,null,
1238
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1239
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1240
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1241
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1242
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1243
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1244
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1245
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1246
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1247
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1248
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1249
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1250
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1251
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1252
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1253
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1254
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1255
null,null,null,null,null,null,null,"EOF","NONE","ERROR",
1256
"FIRST_KEYWORD","ABSTRACT","AS","ADD","BASE","BOOL","BREAK","BYTE",
1257
"CASE","CATCH","CHAR","CHECKED","CLASS","CONST","CONTINUE","DECIMAL",
1258
"DEFAULT","DELEGATE","DO","DOUBLE","ELSE","ENUM","EVENT","EXPLICIT",
1259
"EXTERN","FALSE","FINALLY","FIXED","FLOAT","FOR","FOREACH","GOTO",
1260
"IF","IMPLICIT","IN","INT","INTERFACE","INTERNAL","IS","LOCK","LONG",
1261
"NAMESPACE","NEW","NULL","OBJECT","OPERATOR","OUT","OVERRIDE",
1262
"PARAMS","PRIVATE","PROTECTED","PUBLIC","READONLY","REF","RETURN",
1263
"REMOVE","SBYTE","SEALED","SHORT","SIZEOF","STACKALLOC","STATIC",
1264
"STRING","STRUCT","SWITCH","THIS","THROW","TRUE","TRY","TYPEOF",
1265
"UINT","ULONG","UNCHECKED","UNSAFE","USHORT","USING","VIRTUAL","VOID",
1266
"VOLATILE","WHERE","WHILE","ARGLIST","PARTIAL","ARROW","FROM",
1267
"FROM_FIRST","JOIN","ON","EQUALS","SELECT","GROUP","BY","LET",
1268
"ORDERBY","ASCENDING","DESCENDING","INTO","INTERR_NULLABLE",
1269
"EXTERN_ALIAS","REFVALUE","REFTYPE","MAKEREF","ASYNC","AWAIT","GET",
1270
"SET","LAST_KEYWORD","OPEN_BRACE","CLOSE_BRACE","OPEN_BRACKET",
1271
"CLOSE_BRACKET","OPEN_PARENS","CLOSE_PARENS","DOT","COMMA","COLON",
1272
"SEMICOLON","TILDE","PLUS","MINUS","BANG","ASSIGN","OP_LT","OP_GT",
1273
"BITWISE_AND","BITWISE_OR","STAR","PERCENT","DIV","CARRET","INTERR",
1274
"DOUBLE_COLON","OP_INC","OP_DEC","OP_SHIFT_LEFT","OP_SHIFT_RIGHT",
1275
"OP_LE","OP_GE","OP_EQ","OP_NE","OP_AND","OP_OR","OP_MULT_ASSIGN",
1276
"OP_DIV_ASSIGN","OP_MOD_ASSIGN","OP_ADD_ASSIGN","OP_SUB_ASSIGN",
1277
"OP_SHIFT_LEFT_ASSIGN","OP_SHIFT_RIGHT_ASSIGN","OP_AND_ASSIGN",
1278
"OP_XOR_ASSIGN","OP_OR_ASSIGN","OP_PTR","OP_COALESCING",
1279
"OP_GENERICS_LT","OP_GENERICS_LT_DECL","OP_GENERICS_GT","LITERAL",
1280
"IDENTIFIER","OPEN_PARENS_LAMBDA","OPEN_PARENS_CAST",
1281
"GENERIC_DIMENSION","DEFAULT_COLON","OPEN_BRACKET_EXPR",
1282
"EVAL_STATEMENT_PARSER","EVAL_COMPILATION_UNIT_PARSER",
1283
"EVAL_USING_DECLARATIONS_UNIT_PARSER","DOC_SEE","GENERATE_COMPLETION",
1284
"COMPLETE_COMPLETION","UMINUS",
1287
/** index-checked interface to yyNames[].
1288
@param token single character or %token value.
1289
@return token name or [illegal] or [unknown].
1291
//t public static string yyname (int token) {
1292
//t if ((token < 0) || (token > yyNames.Length)) return "[illegal]";
1294
//t if ((name = yyNames[token]) != null) return name;
1295
//t return "[unknown]";
1298
#pragma warning disable 414
1299
int yyExpectingState;
1300
#pragma warning restore 414
1301
/** computes list of expected tokens on error by tracing the tables.
1302
@param state for which to compute the list.
1303
@return list of token names.
1305
protected int [] yyExpectingTokens (int state){
1306
int token, n, len = 0;
1307
bool[] ok = new bool[yyNames.Length];
1308
if ((n = yySindex[state]) != 0)
1309
for (token = n < 0 ? -n : 0;
1310
(token < yyNames.Length) && (n+token < yyTable.Length); ++ token)
1311
if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
1315
if ((n = yyRindex[state]) != 0)
1316
for (token = n < 0 ? -n : 0;
1317
(token < yyNames.Length) && (n+token < yyTable.Length); ++ token)
1318
if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
1322
int [] result = new int [len];
1323
for (n = token = 0; n < len; ++ token)
1324
if (ok[token]) result[n++] = token;
1327
protected string[] yyExpecting (int state) {
1328
int [] tokens = yyExpectingTokens (state);
1329
string [] result = new string[tokens.Length];
1330
for (int n = 0; n < tokens.Length; n++)
1331
result[n++] = yyNames[tokens [n]];
1335
/** the generated parser, with debugging messages.
1336
Maintains a state and a value stack, currently with fixed maximum size.
1337
@param yyLex scanner.
1338
@param yydebug debug message writer implementing yyDebug, or null.
1339
@return result of the last reduction, if any.
1340
@throws yyException on irrecoverable parse error.
1342
internal Object yyparse (yyParser.yyInput yyLex, Object yyd)
1344
//t this.debug = (yydebug.yyDebug)yyd;
1345
return yyparse(yyLex);
1348
/** initial size and increment of the state/value stack [default 256].
1349
This is not final so that it can be overwritten outside of invocations
1352
protected int yyMax;
1354
/** executed at the beginning of a reduce action.
1355
Used as $$ = yyDefault($1), prior to the user-specified action, if any.
1356
Can be overwritten to provide deep copy, etc.
1357
@param first value for $1, or null.
1360
protected Object yyDefault (Object first) {
1364
static int[] global_yyStates;
1365
static object[] global_yyVals;
1366
#pragma warning disable 649
1367
protected bool use_global_stacks;
1368
#pragma warning restore 649
1369
object[] yyVals; // value stack
1370
object yyVal; // value stack ptr
1371
int yyToken; // current input
1374
/** the generated parser.
1375
Maintains a state and a value stack, currently with fixed maximum size.
1376
@param yyLex scanner.
1377
@return result of the last reduction, if any.
1378
@throws yyException on irrecoverable parse error.
1380
internal Object yyparse (yyParser.yyInput yyLex)
1382
if (yyMax <= 0) yyMax = 256; // initial size
1383
int yyState = 0; // state stack ptr
1384
int [] yyStates; // state stack
1387
int yyErrorFlag = 0; // #tks to shift
1388
if (use_global_stacks && global_yyStates != null) {
1389
yyVals = global_yyVals;
1390
yyStates = global_yyStates;
1392
yyVals = new object [yyMax];
1393
yyStates = new int [yyMax];
1394
if (use_global_stacks) {
1395
global_yyVals = yyVals;
1396
global_yyStates = yyStates;
1400
/*yyLoop:*/ for (yyTop = 0;; ++ yyTop) {
1401
if (yyTop >= yyStates.Length) { // dynamically increase
1402
global::System.Array.Resize (ref yyStates, yyStates.Length+yyMax);
1403
global::System.Array.Resize (ref yyVals, yyVals.Length+yyMax);
1405
yyStates[yyTop] = yyState;
1406
yyVals[yyTop] = yyVal;
1407
//t if (debug != null) debug.push(yyState, yyVal);
1409
/*yyDiscarded:*/ while (true) { // discarding a token does not change stack
1411
if ((yyN = yyDefRed[yyState]) == 0) { // else [default] reduce (yyN)
1413
yyToken = yyLex.advance() ? yyLex.token() : 0;
1414
//t if (debug != null)
1415
//t debug.lex(yyState, yyToken, yyname(yyToken), yyLex.value());
1417
if ((yyN = yySindex[yyState]) != 0 && ((yyN += yyToken) >= 0)
1418
&& (yyN < yyTable.Length) && (yyCheck[yyN] == yyToken)) {
1419
//t if (debug != null)
1420
//t debug.shift(yyState, yyTable[yyN], yyErrorFlag-1);
1421
yyState = yyTable[yyN]; // shift to yyN
1422
yyVal = yyLex.value();
1424
if (yyErrorFlag > 0) -- yyErrorFlag;
1425
goto continue_yyLoop;
1427
if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0
1428
&& yyN < yyTable.Length && yyCheck[yyN] == yyToken)
1429
yyN = yyTable[yyN]; // reduce (yyN)
1431
switch (yyErrorFlag) {
1434
yyExpectingState = yyState;
1435
// yyerror(String.Format ("syntax error, got token `{0}'", yyname (yyToken)), yyExpecting(yyState));
1436
//t if (debug != null) debug.error("syntax error");
1437
if (yyToken == 0 /*eof*/ || yyToken == eof_token) throw new yyParser.yyUnexpectedEof ();
1442
if ((yyN = yySindex[yyStates[yyTop]]) != 0
1443
&& (yyN += Token.yyErrorCode) >= 0 && yyN < yyTable.Length
1444
&& yyCheck[yyN] == Token.yyErrorCode) {
1445
//t if (debug != null)
1446
//t debug.shift(yyStates[yyTop], yyTable[yyN], 3);
1447
yyState = yyTable[yyN];
1448
yyVal = yyLex.value();
1449
goto continue_yyLoop;
1451
//t if (debug != null) debug.pop(yyStates[yyTop]);
1452
} while (-- yyTop >= 0);
1453
//t if (debug != null) debug.reject();
1454
throw new yyParser.yyException("irrecoverable syntax error");
1458
//t if (debug != null) debug.reject();
1459
throw new yyParser.yyException("irrecoverable syntax error at end-of-file");
1461
//t if (debug != null)
1462
//t debug.discard(yyState, yyToken, yyname(yyToken),
1465
goto continue_yyDiscarded; // leave stack alone
1468
int yyV = yyTop + 1-yyLen[yyN];
1469
//t if (debug != null)
1470
//t debug.reduce(yyState, yyStates[yyV-1], yyN, YYRules.getRule (yyN), yyLen[yyN]);
1471
yyVal = yyV > yyTop ? null : yyVals[yyV]; // yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);
1474
#line 386 "cs-parser.jay"
1476
Lexer.check_incorrect_doc_comment ();
1480
#line 387 "cs-parser.jay"
1481
{ Lexer.CompleteOnEOF = false; }
1487
#line 406 "cs-parser.jay"
1489
module.AddAttributes ((Attributes) yyVals[0+yyTop], current_namespace);
1499
#line 451 "cs-parser.jay"
1501
Error_SyntaxError (yyToken);
1544
#line 636 "cs-parser.jay"
1546
current_namespace.DeclarationFound = true;
1583
#line 771 "cs-parser.jay"
1584
{ yyVal = "event"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
1587
#line 772 "cs-parser.jay"
1588
{ yyVal = "return"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
1591
#line 779 "cs-parser.jay"
1593
yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] };
1600
#line 796 "cs-parser.jay"
1602
++lexer.parsing_block;
1609
#line 824 "cs-parser.jay"
1610
{ yyVal = null; HadAttributeParens = false; }
1616
#line 836 "cs-parser.jay"
1632
#line 880 "cs-parser.jay"
1634
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
1641
#line 893 "cs-parser.jay"
1643
++lexer.parsing_block;
1653
#line 919 "cs-parser.jay"
1657
#line 923 "cs-parser.jay"
1659
yyVal = Argument.AType.Ref;
1663
#line 927 "cs-parser.jay"
1665
yyVal = Argument.AType.Out;
1669
#line 939 "cs-parser.jay"
1671
lexer.parsing_modifiers = true;
1675
#line 943 "cs-parser.jay"
1677
lexer.parsing_modifiers = true;
1684
#line 974 "cs-parser.jay"
1704
#line 1018 "cs-parser.jay"
1706
Error_SyntaxError (yyToken);
1719
#line 1067 "cs-parser.jay"
1721
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1725
#line 1071 "cs-parser.jay"
1727
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1734
#line 1087 "cs-parser.jay"
1736
++lexer.parsing_block;
1758
#line 1166 "cs-parser.jay"
1760
report.Error (1641, GetLocation (yyVals[-1+yyTop]), "A fixed size buffer field must have the array size specifier after the field name");
1770
#line 1196 "cs-parser.jay"
1772
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1776
#line 1200 "cs-parser.jay"
1778
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1785
#line 1213 "cs-parser.jay"
1787
++lexer.parsing_block;
1794
#line 1232 "cs-parser.jay"
1796
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1800
#line 1236 "cs-parser.jay"
1802
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
1809
#line 1252 "cs-parser.jay"
1811
++lexer.parsing_block;
1830
#line 1320 "cs-parser.jay"
1832
valid_param_mod = ParameterModifierType.All;
1842
#line 1359 "cs-parser.jay"
1844
lexer.parsing_generic_declaration = true;
1851
#line 1369 "cs-parser.jay"
1853
lexer.ConstraintsParsing = true;
1866
#line 1440 "cs-parser.jay"
1867
{ savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
1870
#line 1444 "cs-parser.jay"
1871
{ yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
1895
#line 1516 "cs-parser.jay"
1897
yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } );
1901
#line 1520 "cs-parser.jay"
1903
yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true);
1928
#line 1601 "cs-parser.jay"
1930
++lexer.parsing_block;
1937
#line 1642 "cs-parser.jay"
1938
{ yyVal = Parameter.Modifier.NONE; }
1941
#line 1650 "cs-parser.jay"
1943
yyVal = yyVals[0+yyTop];
1974
#line 1744 "cs-parser.jay"
1976
Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS);
1995
#line 1798 "cs-parser.jay"
1997
valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
2004
#line 1827 "cs-parser.jay"
2006
lexer.PropertyParsing = false;
2034
#line 1975 "cs-parser.jay"
2051
#line 2015 "cs-parser.jay"
2053
Error_SyntaxError (yyToken);
2057
#line 2027 "cs-parser.jay"
2059
lexer.parsing_modifiers = true;
2063
#line 2031 "cs-parser.jay"
2065
lexer.parsing_modifiers = true;
2069
#line 2038 "cs-parser.jay"
2071
report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
2075
#line 2042 "cs-parser.jay"
2077
report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
2081
#line 2050 "cs-parser.jay"
2083
report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators");
2087
#line 2054 "cs-parser.jay"
2089
report.Error (526, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain contructors");
2093
#line 2058 "cs-parser.jay"
2095
report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations");
2099
#line 2064 "cs-parser.jay"
2107
#line 2097 "cs-parser.jay"
2108
{ savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
2114
#line 2113 "cs-parser.jay"
2116
valid_param_mod = ParameterModifierType.DefaultValue;
2123
#line 2159 "cs-parser.jay"
2124
{ yyVal = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2127
#line 2160 "cs-parser.jay"
2128
{ yyVal = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2131
#line 2161 "cs-parser.jay"
2132
{ yyVal = Operator.OpType.Increment; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2135
#line 2162 "cs-parser.jay"
2136
{ yyVal = Operator.OpType.Decrement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2139
#line 2163 "cs-parser.jay"
2140
{ yyVal = Operator.OpType.True; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2143
#line 2164 "cs-parser.jay"
2144
{ yyVal = Operator.OpType.False; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2147
#line 2166 "cs-parser.jay"
2148
{ yyVal = Operator.OpType.Addition; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2151
#line 2167 "cs-parser.jay"
2152
{ yyVal = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2155
#line 2169 "cs-parser.jay"
2156
{ yyVal = Operator.OpType.Multiply; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2159
#line 2170 "cs-parser.jay"
2160
{ yyVal = Operator.OpType.Division; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2163
#line 2171 "cs-parser.jay"
2164
{ yyVal = Operator.OpType.Modulus; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2167
#line 2172 "cs-parser.jay"
2168
{ yyVal = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2171
#line 2173 "cs-parser.jay"
2172
{ yyVal = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2175
#line 2174 "cs-parser.jay"
2176
{ yyVal = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2179
#line 2175 "cs-parser.jay"
2180
{ yyVal = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2183
#line 2176 "cs-parser.jay"
2184
{ yyVal = Operator.OpType.RightShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2187
#line 2177 "cs-parser.jay"
2188
{ yyVal = Operator.OpType.Equality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2191
#line 2178 "cs-parser.jay"
2192
{ yyVal = Operator.OpType.Inequality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2195
#line 2179 "cs-parser.jay"
2196
{ yyVal = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2199
#line 2180 "cs-parser.jay"
2200
{ yyVal = Operator.OpType.LessThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2203
#line 2181 "cs-parser.jay"
2204
{ yyVal = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2207
#line 2182 "cs-parser.jay"
2208
{ yyVal = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
2211
#line 2189 "cs-parser.jay"
2213
valid_param_mod = ParameterModifierType.DefaultValue;
2220
#line 2212 "cs-parser.jay"
2222
valid_param_mod = ParameterModifierType.DefaultValue;
2247
#line 2322 "cs-parser.jay"
2248
{ current_block = null; yyVal = null; }
2251
#line 2334 "cs-parser.jay"
2253
++lexer.parsing_block;
2260
#line 2344 "cs-parser.jay"
2262
++lexer.parsing_block;
2299
#line 2471 "cs-parser.jay"
2301
++lexer.parsing_block;
2308
#line 2489 "cs-parser.jay"
2310
current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
2314
#line 2493 "cs-parser.jay"
2316
current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
2323
#line 2506 "cs-parser.jay"
2325
++lexer.parsing_block;
2335
#line 2531 "cs-parser.jay"
2337
yyVal = yyVals[0+yyTop];
2389
#line 2717 "cs-parser.jay"
2391
lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
2410
#line 2791 "cs-parser.jay"
2412
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
2419
#line 2810 "cs-parser.jay"
2421
lexer.ConstraintsParsing = false;
2452
#line 2917 "cs-parser.jay"
2454
lexer.parsing_generic_declaration = true;
2497
#line 3042 "cs-parser.jay"
2499
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
2503
#line 3049 "cs-parser.jay"
2505
lexer.parsing_generic_declaration = true;
2518
#line 3087 "cs-parser.jay"
2520
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2527
#line 3106 "cs-parser.jay"
2529
yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2536
#line 3115 "cs-parser.jay"
2538
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
2542
#line 3119 "cs-parser.jay"
2544
yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
2557
#line 3153 "cs-parser.jay"
2558
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Object, GetLocation (yyVals[0+yyTop])); }
2561
#line 3154 "cs-parser.jay"
2562
{ yyVal = new TypeExpression (compiler.BuiltinTypes.String, GetLocation (yyVals[0+yyTop])); }
2565
#line 3155 "cs-parser.jay"
2566
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Bool, GetLocation (yyVals[0+yyTop])); }
2569
#line 3156 "cs-parser.jay"
2570
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Decimal, GetLocation (yyVals[0+yyTop])); }
2573
#line 3157 "cs-parser.jay"
2574
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Float, GetLocation (yyVals[0+yyTop])); }
2577
#line 3158 "cs-parser.jay"
2578
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Double, GetLocation (yyVals[0+yyTop])); }
2581
#line 3163 "cs-parser.jay"
2582
{ yyVal = new TypeExpression (compiler.BuiltinTypes.SByte, GetLocation (yyVals[0+yyTop])); }
2585
#line 3164 "cs-parser.jay"
2586
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Byte, GetLocation (yyVals[0+yyTop])); }
2589
#line 3165 "cs-parser.jay"
2590
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Short, GetLocation (yyVals[0+yyTop])); }
2593
#line 3166 "cs-parser.jay"
2594
{ yyVal = new TypeExpression (compiler.BuiltinTypes.UShort, GetLocation (yyVals[0+yyTop])); }
2597
#line 3167 "cs-parser.jay"
2598
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Int, GetLocation (yyVals[0+yyTop])); }
2601
#line 3168 "cs-parser.jay"
2602
{ yyVal = new TypeExpression (compiler.BuiltinTypes.UInt, GetLocation (yyVals[0+yyTop])); }
2605
#line 3169 "cs-parser.jay"
2606
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Long, GetLocation (yyVals[0+yyTop])); }
2609
#line 3170 "cs-parser.jay"
2610
{ yyVal = new TypeExpression (compiler.BuiltinTypes.ULong, GetLocation (yyVals[0+yyTop])); }
2613
#line 3171 "cs-parser.jay"
2614
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Char, GetLocation (yyVals[0+yyTop])); }
2623
#line 3218 "cs-parser.jay"
2624
{ yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); }
2627
#line 3222 "cs-parser.jay"
2628
{ yyVal = new BoolLiteral (compiler.BuiltinTypes, true, GetLocation (yyVals[0+yyTop])); }
2631
#line 3223 "cs-parser.jay"
2632
{ yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); }
2638
#line 3256 "cs-parser.jay"
2640
yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
2656
#line 3291 "cs-parser.jay"
2658
yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop]));
2665
#line 3299 "cs-parser.jay"
2667
yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location);
2683
#line 3329 "cs-parser.jay"
2693
#line 3351 "cs-parser.jay"
2697
#line 3355 "cs-parser.jay"
2699
yyVal = yyVals[0+yyTop];
2718
#line 3394 "cs-parser.jay"
2720
yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop]));
2733
#line 3425 "cs-parser.jay"
2752
#line 3479 "cs-parser.jay"
2754
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
2791
#line 3572 "cs-parser.jay"
2793
yyVal = new Argument ((Expression) yyVals[0+yyTop]);
2797
#line 3580 "cs-parser.jay"
2799
yyVal = new This (GetLocation (yyVals[0+yyTop]));
2809
#line 3600 "cs-parser.jay"
2811
yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
2815
#line 3607 "cs-parser.jay"
2817
yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
2842
#line 3674 "cs-parser.jay"
2844
++lexer.parsing_type;
2854
#line 3701 "cs-parser.jay"
2885
#line 3779 "cs-parser.jay"
2891
#line 3783 "cs-parser.jay"
2893
yyVal = ((int) yyVals[-1+yyTop]) + 1;
2897
#line 3790 "cs-parser.jay"
2903
#line 3794 "cs-parser.jay"
2905
yyVal = yyVals[0+yyTop];
2921
#line 3838 "cs-parser.jay"
2923
lexer.TypeOfParsing = true;
2975
#line 3983 "cs-parser.jay"
2977
start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], false, GetLocation (yyVals[-1+yyTop]));
2984
#line 3996 "cs-parser.jay"
2986
start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], true, GetLocation (yyVals[-2+yyTop]));
2993
#line 4013 "cs-parser.jay"
2995
yyVal = ParametersCompiled.Undefined;
2999
#line 4021 "cs-parser.jay"
3001
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
3011
#line 4047 "cs-parser.jay"
3013
yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3017
#line 4051 "cs-parser.jay"
3019
yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3041
#line 4112 "cs-parser.jay"
3043
yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3047
#line 4116 "cs-parser.jay"
3049
yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3053
#line 4120 "cs-parser.jay"
3055
yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3059
#line 4124 "cs-parser.jay"
3061
yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3065
#line 4128 "cs-parser.jay"
3067
yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3071
#line 4132 "cs-parser.jay"
3073
yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3119
#line 4226 "cs-parser.jay"
3121
yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3125
#line 4230 "cs-parser.jay"
3127
yyVal = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3287
#line 4596 "cs-parser.jay"
3288
{ yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
3294
#line 4607 "cs-parser.jay"
3296
start_block (Location.Null);
3327
#line 4674 "cs-parser.jay"
3329
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
3339
#line 4688 "cs-parser.jay"
3341
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
3351
#line 4713 "cs-parser.jay"
3353
yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop]));
3366
#line 4742 "cs-parser.jay"
3368
yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]);
3372
#line 4754 "cs-parser.jay"
3389
#line 4801 "cs-parser.jay"
3393
#line 4803 "cs-parser.jay"
3394
{ yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); }
3400
#line 4816 "cs-parser.jay"
3402
lexer.parsing_modifiers = false;
3460
#line 4942 "cs-parser.jay"
3462
yyVal = yyVals[0+yyTop];
3490
#line 5035 "cs-parser.jay"
3492
yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop]));
3496
#line 5039 "cs-parser.jay"
3498
yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop]));
3502
#line 5046 "cs-parser.jay"
3504
yyVal = Variance.None;
3520
#line 5091 "cs-parser.jay"
3522
yyVal = yyVals[0+yyTop];
3547
#line 5153 "cs-parser.jay"
3549
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3553
#line 5157 "cs-parser.jay"
3555
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3565
#line 5191 "cs-parser.jay"
3567
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3571
#line 5195 "cs-parser.jay"
3573
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3604
#line 5339 "cs-parser.jay"
3606
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
3610
#line 5343 "cs-parser.jay"
3612
yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
3622
#line 5364 "cs-parser.jay"
3624
yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop]));
3628
#line 5372 "cs-parser.jay"
3630
yyVal = Error_AwaitAsIdentifier (yyVals[0+yyTop]);
3664
#line 5486 "cs-parser.jay"
3666
report.Error (145, lexer.Location, "A const field requires a value to be provided");
3685
#line 5536 "cs-parser.jay"
3686
{ yyVal = yyVals[-1+yyTop]; }
3692
#line 5546 "cs-parser.jay"
3693
{ yyVal = yyVals[-1+yyTop]; }
3696
#line 5547 "cs-parser.jay"
3697
{ yyVal = yyVals[-1+yyTop]; }
3718
#line 5623 "cs-parser.jay"
3720
start_block (GetLocation (yyVals[0+yyTop]));
3730
#line 5643 "cs-parser.jay"
3732
report.Warning (1522, 1, current_block.StartLocation, "Empty switch block");
3736
#line 5653 "cs-parser.jay"
3738
Error_SyntaxError (yyToken);
3745
#line 5670 "cs-parser.jay"
3747
current_block.AddStatement ((Statement) yyVals[0+yyTop]);
3757
#line 5687 "cs-parser.jay"
3759
yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop]));
3781
#line 5748 "cs-parser.jay"
3783
yyVal = yyVals[0+yyTop];
3790
#line 5763 "cs-parser.jay"
3792
yyVal = yyVals[0+yyTop];
3802
#line 5784 "cs-parser.jay"
3804
yyVal = yyVals[0+yyTop];
3817
#line 5818 "cs-parser.jay"
3818
{ yyVal = new EmptyStatement (lexer.Location); }
3827
#line 5842 "cs-parser.jay"
3831
#line 5847 "cs-parser.jay"
3832
{ yyVal = new EmptyStatement (lexer.Location); }
3898
#line 6087 "cs-parser.jay"
3900
yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false);
3919
#line 6136 "cs-parser.jay"
3921
yyVal = new Catch ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3928
#line 6155 "cs-parser.jay"
3930
yyVal = yyVals[-1+yyTop];
3940
#line 6196 "cs-parser.jay"
3942
yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3946
#line 6203 "cs-parser.jay"
3948
yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
3955
#line 6213 "cs-parser.jay"
3957
yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
3994
#line 6318 "cs-parser.jay"
3996
Error_MissingInitializer (lexer.Location);
4027
#line 6423 "cs-parser.jay"
4029
current_block = new Linq.QueryBlock (current_block, lexer.Location);
4036
#line 6439 "cs-parser.jay"
4038
current_block = new Linq.QueryBlock (current_block, lexer.Location);
4057
#line 6503 "cs-parser.jay"
4059
current_block = new Linq.QueryBlock (current_block, lexer.Location);
4075
#line 6542 "cs-parser.jay"
4077
yyVal = new object[] { yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]) };
4087
#line 6571 "cs-parser.jay"
4089
current_block = new Linq.QueryBlock (current_block, lexer.Location);
4096
#line 6590 "cs-parser.jay"
4098
current_block = new Linq.QueryBlock (current_block, lexer.Location);
4150
#line 6791 "cs-parser.jay"
4152
yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
4162
#line 6808 "cs-parser.jay"
4164
yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
4186
#line 6930 "cs-parser.jay"
4188
module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop];
4192
#line 6937 "cs-parser.jay"
4194
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
4204
#line 6954 "cs-parser.jay"
4206
yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], MemberCache.IndexerNameAlias, Location.Null);
4210
#line 6958 "cs-parser.jay"
4212
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
4228
#line 6994 "cs-parser.jay"
4230
yyVal = new MemberName (((MemberName) yyVals[-2+yyTop]), (MemberName) yyVals[0+yyTop]);
4234
#line 7002 "cs-parser.jay"
4236
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
4240
#line 7006 "cs-parser.jay"
4242
yyVal = yyVals[-1+yyTop];
4246
#line 7013 "cs-parser.jay"
4248
yyVal = new List<DocumentationParameter> (0);
4262
yyTop -= yyLen[yyN];
4263
yyState = yyStates[yyTop];
4264
int yyM = yyLhs[yyN];
4265
if (yyState == 0 && yyM == 0) {
4266
//t if (debug != null) debug.shift(0, yyFinal);
4269
yyToken = yyLex.advance() ? yyLex.token() : 0;
4270
//t if (debug != null)
4271
//t debug.lex(yyState, yyToken,yyname(yyToken), yyLex.value());
4274
//t if (debug != null) debug.accept(yyVal);
4277
goto continue_yyLoop;
4279
if (((yyN = yyGindex[yyM]) != 0) && ((yyN += yyState) >= 0)
4280
&& (yyN < yyTable.Length) && (yyCheck[yyN] == yyState))
4281
yyState = yyTable[yyN];
4283
yyState = yyDgoto[yyM];
4284
//t if (debug != null) debug.shift(yyStates[yyTop], yyState);
4285
goto continue_yyLoop;
4286
continue_yyDiscarded: ; // implements the named-loop continue: 'continue yyDiscarded'
4288
continue_yyLoop: ; // implements the named-loop continue: 'continue yyLoop'
4293
All more than 3 lines long rules are wrapped into a method
4296
#line 394 "cs-parser.jay"
4298
if (yyVals[0+yyTop] != null) {
4299
Attributes attrs = (Attributes) yyVals[0+yyTop];
4300
report.Error (1730, attrs.Attrs [0].Location,
4301
"Assembly and module attributes must precede all other elements except using clauses and extern alias declarations");
4303
current_namespace.UnattachedAttributes = attrs;
4308
#line 408 "cs-parser.jay"
4310
if (yyToken == Token.EXTERN_ALIAS)
4311
report.Error (439, lexer.Location, "An extern alias declaration must precede all other elements");
4313
Error_SyntaxError (yyToken);
4317
#line 428 "cs-parser.jay"
4319
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
4320
string s = lt.Value;
4322
syntax_error (lt.Location, "`alias' expected");
4324
if (lang_version == LanguageVersion.ISO_1)
4325
FeatureIsNotAvailable (lt.Location, "external alias");
4327
lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4328
if (lt.Value == QualifiedAliasMember.GlobalAlias) {
4329
RootNamespace.Error_GlobalNamespaceRedefined (report, lt.Location);
4332
var na = new UsingExternAlias (new SimpleMemberName (lt.Value, lt.Location), GetLocation (yyVals[-3+yyTop]));
4333
current_namespace.AddUsing (na);
4335
lbag.AddLocation (na, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4340
#line 461 "cs-parser.jay"
4343
Lexer.doc_state = XmlCommentState.Allowed;
4347
#line 469 "cs-parser.jay"
4349
var un = new UsingNamespace ((ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
4350
current_namespace.AddUsing (un);
4352
lbag.AddLocation (un, GetLocation (yyVals[0+yyTop]));
4356
#line 476 "cs-parser.jay"
4358
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4359
if (lang_version != LanguageVersion.ISO_1 && lt.Value == "global") {
4360
report.Warning (440, 2, lt.Location,
4361
"An alias named `global' will not be used when resolving `global::'. The global namespace will be used instead");
4364
var un = new UsingAliasNamespace (new SimpleMemberName (lt.Value, lt.Location), (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
4365
current_namespace.AddUsing (un);
4366
lbag.AddLocation (un, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4370
#line 488 "cs-parser.jay"
4372
Error_SyntaxError (yyToken);
4377
#line 501 "cs-parser.jay"
4379
Attributes attrs = (Attributes) yyVals[-2+yyTop];
4380
var name = (MemberName) yyVals[0+yyTop];
4381
if (attrs != null) {
4382
bool valid_global_attrs = true;
4383
if ((current_namespace.DeclarationFound || current_namespace != file)) {
4384
valid_global_attrs = false;
4386
foreach (var a in attrs.Attrs) {
4387
if (a.ExplicitTarget == "assembly" || a.ExplicitTarget == "module")
4390
valid_global_attrs = false;
4395
if (!valid_global_attrs)
4396
report.Error (1671, name.Location, "A namespace declaration cannot have modifiers or attributes");
4399
module.AddAttributes (attrs, current_namespace);
4401
var ns = new NamespaceContainer (name, current_namespace);
4402
current_namespace.AddTypeContainer (ns);
4403
current_container = current_namespace = ns;
4407
#line 529 "cs-parser.jay"
4410
Lexer.doc_state = XmlCommentState.Allowed;
4414
#line 534 "cs-parser.jay"
4416
if (yyVals[0+yyTop] != null)
4417
lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
4419
lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]));
4421
current_container = current_namespace = current_namespace.Parent;
4425
#line 543 "cs-parser.jay"
4427
report.Error (1514, lexer.Location, "Unexpected symbol `{0}', expecting `.' or `{{'", GetSymbolName (yyToken));
4429
var name = (MemberName) yyVals[0+yyTop];
4430
var ns = new NamespaceContainer (name, current_namespace);
4431
lbag.AddLocation (ns, GetLocation (yyVals[-1+yyTop]));
4432
current_namespace.AddTypeContainer (ns);
4436
#line 557 "cs-parser.jay"
4438
Error_SyntaxError (yyToken);
4443
#line 565 "cs-parser.jay"
4445
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4446
yyVal = new MemberName (lt.Value, lt.Location);
4450
#line 570 "cs-parser.jay"
4452
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4453
yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], lt.Value, lt.Location) {
4454
DotLocation = GetLocation (yyVals[-1+yyTop])
4459
#line 577 "cs-parser.jay"
4461
Error_SyntaxError (yyToken);
4462
yyVal = new MemberName ("<invalid>", lexer.Location);
4466
#line 615 "cs-parser.jay"
4468
if (yyVals[0+yyTop] != null) {
4469
TypeContainer ds = (TypeContainer)yyVals[0+yyTop];
4471
if ((ds.ModFlags & (Modifiers.PRIVATE | Modifiers.PROTECTED)) != 0){
4472
report.Error (1527, ds.Location,
4473
"Namespace elements cannot be explicitly declared as private, protected or protected internal");
4476
/* Here is a trick, for explicit attributes we don't know where they belong to until*/
4477
/* we parse succeeding declaration hence we parse them as normal and re-attach them*/
4478
/* when we know whether they are global (assembly:, module:) or local (type:).*/
4479
if (ds.OptAttributes != null) {
4480
ds.OptAttributes.ConvertGlobalAttributes (ds, current_namespace, !current_namespace.DeclarationFound && current_namespace == file);
4483
current_namespace.DeclarationFound = true;
4487
#line 637 "cs-parser.jay"
4489
current_namespace.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
4490
report.Error (1518, lexer.Location, "Attributes must be attached to class, delegate, enum, interface or struct");
4491
lexer.putback ('}');
4495
#line 670 "cs-parser.jay"
4497
var sect = (List<Attribute>) yyVals[0+yyTop];
4498
yyVal = new Attributes (sect);
4499
if (locationListStack.Count > 0)
4500
lbag.AddLocation (sect, locationListStack.Pop ());
4501
if (attributeCommas.Count > 0) {
4502
lbag.AddLocation (sect, attributeCommas);
4503
attributeCommas.Clear ();
4508
#line 681 "cs-parser.jay"
4510
Attributes attrs = yyVals[-1+yyTop] as Attributes;
4511
var sect = (List<Attribute>) yyVals[0+yyTop];
4513
if (locationListStack.Count > 0)
4514
lbag.AddLocation (sect, locationListStack.Pop ());
4516
attrs = new Attributes (sect);
4518
attrs.AddAttributes (sect);
4523
#line 697 "cs-parser.jay"
4525
PushLocation (GetLocation (yyVals[0+yyTop]));
4526
lexer.parsing_attribute_section = true;
4527
savedOpenLocation = GetLocation (yyVals[0+yyTop]);
4531
#line 703 "cs-parser.jay"
4533
lexer.parsing_attribute_section = false;
4534
yyVal = yyVals[0+yyTop];
4538
#line 711 "cs-parser.jay"
4540
current_attr_target = (string) yyVals[-1+yyTop];
4541
if (current_attr_target == "assembly" || current_attr_target == "module") {
4542
Lexer.check_incorrect_doc_comment ();
4547
#line 718 "cs-parser.jay"
4549
/* when attribute target is invalid*/
4550
if (current_attr_target == string.Empty)
4551
yyVal = new List<Attribute> (0);
4553
yyVal = yyVals[-2+yyTop];
4555
lbag.InsertLocation (yyVal, 0, PopLocation ());
4556
if (yyVals[-1+yyTop] != null) {
4557
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
4559
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
4562
current_attr_target = null;
4563
lexer.parsing_attribute_section = false;
4567
#line 736 "cs-parser.jay"
4569
yyVal = yyVals[-2+yyTop];
4571
lbag.InsertLocation (yyVal, 0, PopLocation ());
4572
if (yyVals[-1+yyTop] != null) {
4573
lbag.AddLocation (yyVal, GetLocation(yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
4575
lbag.AddLocation (yyVal, GetLocation(yyVals[0+yyTop]));
4580
#line 747 "cs-parser.jay"
4582
Error_SyntaxError (yyToken);
4584
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4585
var tne = new SimpleName (lt.Value, null, lt.Location);
4587
yyVal = new List<Attribute> () {
4588
new Attribute (null, tne, null, GetLocation (yyVals[-1+yyTop]), false)
4593
#line 758 "cs-parser.jay"
4595
yyVal = CheckAttributeTarget (GetTokenName (yyToken), GetLocation (yyVals[0+yyTop]));
4600
#line 766 "cs-parser.jay"
4602
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4603
yyVal = CheckAttributeTarget (lt.Value, lt.Location);
4604
savedCloseLocation = GetLocation (yyVals[0+yyTop]);
4608
#line 781 "cs-parser.jay"
4610
var attrs = (List<Attribute>) yyVals[-2+yyTop];
4611
if (attrs != null) {
4612
attrs.Add ((Attribute) yyVals[0+yyTop]);
4613
lbag.AddLocation (attrs, GetLocation (yyVals[-1+yyTop]));
4620
#line 798 "cs-parser.jay"
4622
--lexer.parsing_block;
4624
var tne = (ATypeNameExpression) yyVals[-2+yyTop];
4625
if (tne.HasTypeArguments) {
4626
report.Error (404, tne.Location, "Attributes cannot be generic");
4628
Arguments [] arguments = (Arguments []) yyVals[0+yyTop];
4630
yyVal = new Attribute (current_attr_target, tne, (Arguments[]) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), lexer.IsEscapedIdentifier (tne));
4631
if (arguments != null) {
4632
attributeArgumentCommas.Insert (0, savedAttrParenOpenLocation);
4633
attributeArgumentCommas.Add (savedAttrParenCloseLocation);
4634
lbag.AddLocation (yyVal, attributeArgumentCommas);
4635
attributeArgumentCommas.Clear ();
4636
} else if (HadAttributeParens) {
4637
lbag.AddLocation (yyVal, savedAttrParenOpenLocation, savedAttrParenCloseLocation);
4642
#line 826 "cs-parser.jay"
4644
savedAttrParenOpenLocation = GetLocation (yyVals[-2+yyTop]);
4645
savedAttrParenCloseLocation = GetLocation (yyVals[0+yyTop]);
4646
yyVal = yyVals[-1+yyTop];
4647
HadAttributeParens = true;
4651
#line 838 "cs-parser.jay"
4653
Arguments a = new Arguments (4);
4654
a.Add ((Argument) yyVals[0+yyTop]);
4655
yyVal = new Arguments [] { a, null };
4659
#line 844 "cs-parser.jay"
4661
Arguments a = new Arguments (4);
4662
a.Add ((Argument) yyVals[0+yyTop]);
4663
yyVal = new Arguments [] { null, a };
4667
#line 850 "cs-parser.jay"
4669
Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
4670
if (o [1] != null) {
4671
report.Error (1016, ((Argument) yyVals[0+yyTop]).Expr.Location, "Named attribute arguments must appear after the positional arguments");
4672
o [0] = new Arguments (4);
4675
Arguments args = ((Arguments) o [0]);
4676
if (args.Count > 0 && !(yyVals[0+yyTop] is NamedArgument) && args [args.Count - 1] is NamedArgument)
4677
Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
4679
args.Add ((Argument) yyVals[0+yyTop]);
4680
attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
4684
#line 865 "cs-parser.jay"
4686
Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
4687
if (o [1] == null) {
4688
o [1] = new Arguments (4);
4691
((Arguments) o [1]).Add ((Argument) yyVals[0+yyTop]);
4692
attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
4696
#line 883 "cs-parser.jay"
4698
Error_SyntaxError (yyToken);
4703
#line 895 "cs-parser.jay"
4705
--lexer.parsing_block;
4706
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4707
yyVal = new NamedArgument (lt.Value, lt.Location, (Expression) yyVals[0+yyTop]);
4708
lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
4712
#line 905 "cs-parser.jay"
4714
if (lang_version <= LanguageVersion.V_3)
4715
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "named argument");
4717
/* Avoid boxing in common case (no modifier)*/
4718
var arg_mod = yyVals[-1+yyTop] == null ? Argument.AType.None : (Argument.AType) yyVals[-1+yyTop];
4720
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4721
yyVal = new NamedArgument (lt.Value, lt.Location, (Expression) yyVals[0+yyTop], arg_mod);
4722
lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
4726
#line 960 "cs-parser.jay"
4728
report.Error (1519, lexer.Location, "Unexpected symbol `{0}' in class, struct, or interface member declaration",
4729
GetSymbolName (yyToken));
4731
lexer.parsing_generic_declaration = false;
4735
#line 976 "cs-parser.jay"
4737
lexer.ConstraintsParsing = true;
4738
push_current_container (new Struct (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]);
4739
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
4743
#line 983 "cs-parser.jay"
4745
lexer.ConstraintsParsing = false;
4747
if (yyVals[0+yyTop] != null)
4748
current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
4751
current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
4754
lexer.parsing_modifiers = true;
4758
#line 996 "cs-parser.jay"
4761
Lexer.doc_state = XmlCommentState.Allowed;
4765
#line 1001 "cs-parser.jay"
4767
--lexer.parsing_declaration;
4769
Lexer.doc_state = XmlCommentState.Allowed;
4773
#line 1007 "cs-parser.jay"
4775
if (yyVals[0+yyTop] == null) {
4776
lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
4778
lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
4780
yyVal = pop_current_class ();
4784
#line 1025 "cs-parser.jay"
4786
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4787
var mod = (Modifiers) yyVals[-3+yyTop];
4788
current_field = new Const (current_type, (FullNamedExpression) yyVals[-1+yyTop], mod, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
4789
current_type.AddMember (current_field);
4791
if ((mod & Modifiers.STATIC) != 0) {
4792
report.Error (504, current_field.Location, "The constant `{0}' cannot be marked static", current_field.GetSignatureForError ());
4795
yyVal = current_field;
4799
#line 1038 "cs-parser.jay"
4802
current_field.DocComment = Lexer.consume_doc_comment ();
4803
Lexer.doc_state = XmlCommentState.Allowed;
4806
current_field.Initializer = (ConstInitializer) yyVals[-2+yyTop];
4807
lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
4808
current_field = null;
4812
#line 1051 "cs-parser.jay"
4814
Error_SyntaxError (yyToken);
4816
current_type.AddMember (new Const (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], MemberName.Null, (Attributes) yyVals[-4+yyTop]));
4820
#line 1076 "cs-parser.jay"
4822
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4823
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
4824
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
4828
#line 1089 "cs-parser.jay"
4830
--lexer.parsing_block;
4831
yyVal = new ConstInitializer (current_field, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
4832
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
4836
#line 1095 "cs-parser.jay"
4838
report.Error (145, lexer.Location, "A const field requires a value to be provided");
4843
#line 1110 "cs-parser.jay"
4845
lexer.parsing_generic_declaration = false;
4847
FullNamedExpression type = (FullNamedExpression) yyVals[-1+yyTop];
4848
if (type.Type != null && type.Type.Kind == MemberKind.Void)
4849
report.Error (670, GetLocation (yyVals[-1+yyTop]), "Fields cannot have void type");
4851
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4852
current_field = new Field (current_type, type, (Modifiers) yyVals[-2+yyTop], new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-3+yyTop]);
4853
current_type.AddField (current_field);
4854
yyVal = current_field;
4858
#line 1125 "cs-parser.jay"
4861
current_field.DocComment = Lexer.consume_doc_comment ();
4862
Lexer.doc_state = XmlCommentState.Allowed;
4865
lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
4866
yyVal = current_field;
4867
current_field = null;
4871
#line 1138 "cs-parser.jay"
4873
if (lang_version < LanguageVersion.ISO_2)
4874
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "fixed size buffers");
4876
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4877
current_field = new FixedField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop],
4878
new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
4880
current_type.AddField (current_field);
4884
#line 1149 "cs-parser.jay"
4887
current_field.DocComment = Lexer.consume_doc_comment ();
4888
Lexer.doc_state = XmlCommentState.Allowed;
4891
current_field.Initializer = (ConstInitializer) yyVals[-2+yyTop];
4892
lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
4893
yyVal = current_field;
4894
current_field = null;
4898
#line 1172 "cs-parser.jay"
4900
++lexer.parsing_block;
4901
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
4902
start_block (GetLocation (yyVals[0+yyTop]));
4906
#line 1178 "cs-parser.jay"
4908
--lexer.parsing_block;
4909
current_field.Initializer = (Expression) yyVals[0+yyTop];
4910
lbag.AppendToMember (current_field, GetLocation (yyVals[-2+yyTop]));
4911
end_block (lexer.Location);
4912
current_local_parameters = null;
4916
#line 1205 "cs-parser.jay"
4918
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
4919
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
4920
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
4924
#line 1215 "cs-parser.jay"
4926
--lexer.parsing_block;
4927
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
4928
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop]);
4929
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
4933
#line 1241 "cs-parser.jay"
4935
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
4936
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
4937
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
4941
#line 1254 "cs-parser.jay"
4943
--lexer.parsing_block;
4944
yyVal = new ConstInitializer (current_field, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
4945
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
4949
#line 1260 "cs-parser.jay"
4951
report.Error (443, lexer.Location, "Value or constant expected");
4956
#line 1270 "cs-parser.jay"
4958
/* It has to be here for the parent to safely restore artificial block*/
4959
Error_SyntaxError (yyToken);
4964
#line 1279 "cs-parser.jay"
4967
Lexer.doc_state = XmlCommentState.NotAllowed;
4969
/* Was added earlier in the case of body being eof for full ast*/
4973
#line 1286 "cs-parser.jay"
4975
Method method = (Method) yyVals[-2+yyTop];
4976
method.Block = (ToplevelBlock) yyVals[0+yyTop];
4977
async_block = false;
4979
if (method.Block == null) {
4980
lbag.AppendToMember (method, savedLocation); /* semicolon*/
4981
method.ParameterInfo.CheckParameters (method);
4983
if ((method.ModFlags & Modifiers.ASYNC) != 0) {
4984
report.Error (1994, method.Location, "`{0}': The async modifier can only be used with methods that have a body",
4985
method.GetSignatureForError ());
4988
if (current_container.Kind == MemberKind.Interface) {
4989
report.Error (531, method.Location, "`{0}': interface members cannot have a definition",
4990
method.GetSignatureForError ());
4994
current_local_parameters = null;
4997
Lexer.doc_state = XmlCommentState.Allowed;
5001
#line 1322 "cs-parser.jay"
5003
valid_param_mod = 0;
5004
MemberName name = (MemberName) yyVals[-4+yyTop];
5005
current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
5007
var method = Method.Create (current_type, (FullNamedExpression) yyVals[-5+yyTop], (Modifiers) yyVals[-6+yyTop],
5008
name, current_local_parameters, (Attributes) yyVals[-7+yyTop]);
5010
current_type.AddMember (method);
5012
async_block = (method.ModFlags & Modifiers.ASYNC) != 0;
5015
method.DocComment = Lexer.consume_doc_comment ();
5017
lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5020
lexer.ConstraintsParsing = true;
5024
#line 1343 "cs-parser.jay"
5026
lexer.ConstraintsParsing = false;
5028
if (yyVals[0+yyTop] != null) {
5029
var method = (Method) yyVals[-1+yyTop];
5030
method.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
5033
yyVal = yyVals[-1+yyTop];
5037
#line 1362 "cs-parser.jay"
5039
lexer.parsing_generic_declaration = false;
5040
valid_param_mod = ParameterModifierType.All;
5044
#line 1371 "cs-parser.jay"
5046
lexer.ConstraintsParsing = false;
5047
valid_param_mod = 0;
5049
MemberName name = (MemberName) yyVals[-6+yyTop];
5050
current_local_parameters = (ParametersCompiled) yyVals[-3+yyTop];
5052
var modifiers = (Modifiers) yyVals[-10+yyTop];
5053
modifiers |= Modifiers.PARTIAL;
5055
var method = Method.Create (current_type, new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-8+yyTop])),
5056
modifiers, name, current_local_parameters, (Attributes) yyVals[-11+yyTop]);
5058
current_type.AddMember (method);
5060
if (yyVals[-1+yyTop] != null)
5061
method.SetConstraints ((List<Constraints>) yyVals[-1+yyTop]);
5064
method.DocComment = Lexer.consume_doc_comment ();
5066
StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[-9+yyTop]));
5067
lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
5072
#line 1400 "cs-parser.jay"
5074
MemberName name = (MemberName) yyVals[-3+yyTop];
5075
report.Error (1585, name.Location,
5076
"Member modifier `{0}' must precede the member type and name", ModifiersExtensions.Name ((Modifiers) yyVals[-4+yyTop]));
5078
var method = Method.Create (current_type, (FullNamedExpression) yyVals[-5+yyTop],
5079
0, name, (ParametersCompiled) yyVals[-1+yyTop], (Attributes) yyVals[-7+yyTop]);
5081
current_type.AddMember (method);
5083
current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
5086
method.DocComment = Lexer.consume_doc_comment ();
5092
#line 1421 "cs-parser.jay"
5094
Error_SyntaxError (yyToken);
5095
current_local_parameters = ParametersCompiled.Undefined;
5097
MemberName name = (MemberName) yyVals[-1+yyTop];
5098
var method = Method.Create (current_type, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-3+yyTop],
5099
name, current_local_parameters, (Attributes) yyVals[-4+yyTop]);
5101
current_type.AddMember (method);
5104
method.DocComment = Lexer.consume_doc_comment ();
5110
#line 1450 "cs-parser.jay"
5112
var pars_list = (List<Parameter>) yyVals[0+yyTop];
5113
yyVal = new ParametersCompiled (pars_list.ToArray ());
5114
lbag.AddLocation (yyVal, parameterListCommas);
5118
#line 1456 "cs-parser.jay"
5120
var pars_list = (List<Parameter>) yyVals[-2+yyTop];
5121
pars_list.Add ((Parameter) yyVals[0+yyTop]);
5122
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
5124
yyVal = new ParametersCompiled (pars_list.ToArray ());
5125
lbag.AddLocation (yyVal, parameterListCommas);
5129
#line 1465 "cs-parser.jay"
5131
var pars_list = (List<Parameter>) yyVals[-2+yyTop];
5132
pars_list.Add (new ArglistParameter (GetLocation (yyVals[0+yyTop])));
5133
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
5135
yyVal = new ParametersCompiled (pars_list.ToArray (), true);
5136
lbag.AddLocation (yyVal, parameterListCommas);
5140
#line 1474 "cs-parser.jay"
5142
if (yyVals[-2+yyTop] != null)
5143
report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
5145
yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[-2+yyTop] } );
5146
lbag.AddLocation (yyVal, parameterListCommas);
5150
#line 1482 "cs-parser.jay"
5152
if (yyVals[-2+yyTop] != null)
5153
report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
5155
var pars_list = (List<Parameter>) yyVals[-4+yyTop];
5156
pars_list.Add (new ArglistParameter (GetLocation (yyVals[-2+yyTop])));
5157
parameterListCommas.Add (GetLocation (yyVals[-3+yyTop]));
5158
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
5160
yyVal = new ParametersCompiled (pars_list.ToArray (), true);
5161
lbag.AddLocation (yyVal, parameterListCommas);
5165
#line 1495 "cs-parser.jay"
5167
report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
5169
yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[-2+yyTop])) }, true);
5170
lbag.AddLocation (yyVal, parameterListCommas);
5174
#line 1502 "cs-parser.jay"
5176
report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
5178
var pars_list = (List<Parameter>) yyVals[-4+yyTop];
5179
pars_list.Add (new ArglistParameter (GetLocation (yyVals[-2+yyTop])));
5180
parameterListCommas.Add (GetLocation (yyVals[-3+yyTop]));
5181
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
5183
yyVal = new ParametersCompiled (pars_list.ToArray (), true);
5184
lbag.AddLocation (yyVal, parameterListCommas);
5188
#line 1522 "cs-parser.jay"
5190
Error_SyntaxError (yyToken);
5191
yyVal = ParametersCompiled.EmptyReadOnlyParameters;
5195
#line 1530 "cs-parser.jay"
5197
parameters_bucket.Clear ();
5198
Parameter p = (Parameter) yyVals[0+yyTop];
5199
parameters_bucket.Add (p);
5200
parameterListCommas.Clear ();
5201
default_parameter_used = p.HasDefaultValue;
5202
yyVal = parameters_bucket;
5206
#line 1539 "cs-parser.jay"
5208
var pars = (List<Parameter>) yyVals[-2+yyTop];
5209
Parameter p = (Parameter) yyVals[0+yyTop];
5211
if (p.HasExtensionMethodModifier)
5212
report.Error (1100, p.Location, "The parameter modifier `this' can only be used on the first parameter");
5213
else if (!p.HasDefaultValue && default_parameter_used)
5214
report.Error (1737, p.Location, "Optional parameter cannot precede required parameters");
5216
default_parameter_used |= p.HasDefaultValue;
5219
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
5222
yyVal = yyVals[-2+yyTop];
5226
#line 1563 "cs-parser.jay"
5228
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
5229
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], lt.Location);
5230
lbag.AddLocation (yyVal, parameterModifierLocation);
5234
#line 1572 "cs-parser.jay"
5236
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
5237
report.Error (1552, lt.Location, "Array type specifier, [], must appear before parameter name");
5238
yyVal = new Parameter ((FullNamedExpression) yyVals[-3+yyTop], lt.Value, (Parameter.Modifier) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop], lt.Location);
5239
lbag.AddLocation (yyVal, parameterModifierLocation);
5243
#line 1579 "cs-parser.jay"
5245
Error_SyntaxError (yyToken);
5246
Location l = GetLocation (yyVals[0+yyTop]);
5247
yyVal = new Parameter (null, null, Parameter.Modifier.NONE, (Attributes) yyVals[-1+yyTop], l);
5251
#line 1588 "cs-parser.jay"
5253
Error_SyntaxError (yyToken);
5254
Location l = GetLocation (yyVals[0+yyTop]);
5255
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], null, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], l);
5256
lbag.AddLocation (yyVal, parameterModifierLocation);
5260
#line 1603 "cs-parser.jay"
5262
--lexer.parsing_block;
5263
if (lang_version <= LanguageVersion.V_3) {
5264
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "optional parameter");
5267
Parameter.Modifier mod = (Parameter.Modifier) yyVals[-5+yyTop];
5268
if (mod != Parameter.Modifier.NONE) {
5270
case Parameter.Modifier.REF:
5271
case Parameter.Modifier.OUT:
5272
report.Error (1741, GetLocation (yyVals[-5+yyTop]), "Cannot specify a default value for the `{0}' parameter",
5273
Parameter.GetModifierSignature (mod));
5276
case Parameter.Modifier.This:
5277
report.Error (1743, GetLocation (yyVals[-5+yyTop]), "Cannot specify a default value for the `{0}' parameter",
5278
Parameter.GetModifierSignature (mod));
5281
throw new NotImplementedException (mod.ToString ());
5284
mod = Parameter.Modifier.NONE;
5287
if ((valid_param_mod & ParameterModifierType.DefaultValue) == 0)
5288
report.Error (1065, GetLocation (yyVals[-2+yyTop]), "Optional parameter is not valid in this context");
5290
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
5291
yyVal = new Parameter ((FullNamedExpression) yyVals[-4+yyTop], lt.Value, mod, (Attributes) yyVals[-6+yyTop], lt.Location);
5292
lbag.AddLocation (yyVal, parameterModifierLocation, GetLocation (yyVals[-2+yyTop])); /* parameterModifierLocation should be ignored when mod == NONE*/
5294
if (yyVals[0+yyTop] != null)
5295
((Parameter) yyVal).DefaultValue = new DefaultParameterValueExpression ((Expression) yyVals[0+yyTop]);
5299
#line 1652 "cs-parser.jay"
5301
Parameter.Modifier p2 = (Parameter.Modifier)yyVals[0+yyTop];
5302
Parameter.Modifier mod = (Parameter.Modifier)yyVals[-1+yyTop] | p2;
5303
if (((Parameter.Modifier)yyVals[-1+yyTop] & p2) == p2) {
5304
Error_DuplicateParameterModifier (lexer.Location, p2);
5306
switch (mod & ~Parameter.Modifier.This) {
5307
case Parameter.Modifier.REF:
5308
report.Error (1101, lexer.Location, "The parameter modifiers `this' and `ref' cannot be used altogether");
5310
case Parameter.Modifier.OUT:
5311
report.Error (1102, lexer.Location, "The parameter modifiers `this' and `out' cannot be used altogether");
5314
report.Error (1108, lexer.Location, "A parameter cannot have specified more than one modifier");
5322
#line 1676 "cs-parser.jay"
5324
if ((valid_param_mod & ParameterModifierType.Ref) == 0)
5325
Error_ParameterModifierNotValid ("ref", GetLocation (yyVals[0+yyTop]));
5326
parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
5327
yyVal = Parameter.Modifier.REF;
5331
#line 1683 "cs-parser.jay"
5333
if ((valid_param_mod & ParameterModifierType.Out) == 0)
5334
Error_ParameterModifierNotValid ("out", GetLocation (yyVals[0+yyTop]));
5335
parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
5336
yyVal = Parameter.Modifier.OUT;
5340
#line 1690 "cs-parser.jay"
5342
if ((valid_param_mod & ParameterModifierType.This) == 0)
5343
Error_ParameterModifierNotValid ("this", GetLocation (yyVals[0+yyTop]));
5345
if (lang_version <= LanguageVersion.ISO_2)
5346
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "extension methods");
5347
parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
5348
yyVal = Parameter.Modifier.This;
5352
#line 1703 "cs-parser.jay"
5354
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
5355
yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Attributes) yyVals[-3+yyTop], lt.Location);
5356
lbag.AddLocation (yyVal, savedLocation);
5360
#line 1709 "cs-parser.jay"
5362
report.Error (1751, GetLocation (yyVals[-4+yyTop]), "Cannot specify a default value for a parameter array");
5364
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
5365
yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-3+yyTop], lt.Value, (Attributes) yyVals[-5+yyTop], lt.Location);
5366
lbag.AddLocation (yyVal, savedLocation);
5370
#line 1717 "cs-parser.jay"
5372
Error_SyntaxError (yyToken);
5374
yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], null, (Attributes) yyVals[-3+yyTop], Location.Null);
5378
#line 1726 "cs-parser.jay"
5380
if ((valid_param_mod & ParameterModifierType.Params) == 0)
5381
report.Error (1670, (GetLocation (yyVals[0+yyTop])), "The `params' modifier is not allowed in current context");
5382
savedLocation = GetLocation (yyVals[0+yyTop]);
5386
#line 1732 "cs-parser.jay"
5388
Parameter.Modifier mod = (Parameter.Modifier)yyVals[0+yyTop];
5389
if ((mod & Parameter.Modifier.This) != 0) {
5390
report.Error (1104, GetLocation (yyVals[-1+yyTop]), "The parameter modifiers `this' and `params' cannot be used altogether");
5392
report.Error (1611, GetLocation (yyVals[-1+yyTop]), "The params parameter cannot be declared as ref or out");
5394
savedLocation = GetLocation (yyVals[-1+yyTop]);
5398
#line 1749 "cs-parser.jay"
5400
if ((valid_param_mod & ParameterModifierType.Arglist) == 0)
5401
report.Error (1669, GetLocation (yyVals[0+yyTop]), "__arglist is not valid in this context");
5405
#line 1760 "cs-parser.jay"
5408
tmpComment = Lexer.consume_doc_comment ();
5412
#line 1765 "cs-parser.jay"
5414
var type = (FullNamedExpression) yyVals[-3+yyTop];
5415
current_property = new Property (current_type, type, (Modifiers) yyVals[-4+yyTop],
5416
(MemberName) yyVals[-2+yyTop], (Attributes) yyVals[-5+yyTop]);
5418
if (type.Type != null && type.Type.Kind == MemberKind.Void)
5419
report.Error (547, GetLocation (yyVals[-3+yyTop]), "`{0}': property or indexer cannot have void type", current_property.GetSignatureForError ());
5421
current_type.AddMember (current_property);
5422
lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
5424
lexer.PropertyParsing = true;
5428
#line 1779 "cs-parser.jay"
5430
lexer.PropertyParsing = false;
5433
current_property.DocComment = ConsumeStoredComment ();
5437
#line 1786 "cs-parser.jay"
5439
lbag.AppendToMember (current_property, GetLocation (yyVals[0+yyTop]));
5440
current_property = null;
5444
#line 1800 "cs-parser.jay"
5446
valid_param_mod = 0;
5447
var type = (FullNamedExpression) yyVals[-5+yyTop];
5448
Indexer indexer = new Indexer (current_type, type, (MemberName) yyVals[-4+yyTop], (Modifiers) yyVals[-6+yyTop], (ParametersCompiled) yyVals[-1+yyTop], (Attributes) yyVals[-7+yyTop]);
5450
current_property = indexer;
5452
current_type.AddIndexer (indexer);
5453
lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5455
if (type.Type != null && type.Type.Kind == MemberKind.Void)
5456
report.Error (620, GetLocation (yyVals[-5+yyTop]), "`{0}': indexer return type cannot be `void'", indexer.GetSignatureForError ());
5458
if (indexer.ParameterInfo.IsEmpty) {
5459
report.Error (1551, GetLocation (yyVals[-3+yyTop]), "Indexers must have at least one parameter");
5463
tmpComment = Lexer.consume_doc_comment ();
5464
Lexer.doc_state = XmlCommentState.Allowed;
5467
lexer.PropertyParsing = true;
5471
#line 1829 "cs-parser.jay"
5473
if (current_property.AccessorFirst != null && current_property.AccessorFirst.Block == null)
5474
((Indexer) current_property).ParameterInfo.CheckParameters (current_property);
5477
current_property.DocComment = ConsumeStoredComment ();
5479
lbag.AppendToMember (current_property, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5480
current_property = null;
5484
#line 1848 "cs-parser.jay"
5486
if (yyToken == Token.CLOSE_BRACE) {
5487
report.Error (548, lexer.Location, "`{0}': property or indexer must have at least one accessor", current_property.GetSignatureForError ());
5489
if (yyToken == Token.SEMICOLON)
5490
report.Error (1597, lexer.Location, "Semicolon after method or accessor block is not valid");
5492
report.Error (1014, GetLocation (yyVals[0+yyTop]), "A get or set accessor expected");
5497
#line 1862 "cs-parser.jay"
5499
if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
5500
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
5503
if (current_property.Get != null) {
5504
report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
5507
if (current_property is Indexer) {
5508
current_property.Get = new Indexer.GetIndexerMethod (current_property, (Modifiers) yyVals[-1+yyTop], ((Indexer)current_property).ParameterInfo.Clone (),
5509
(Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5511
current_property.Get = new Property.GetMethod (current_property,
5512
(Modifiers) yyVals[-1+yyTop], (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5515
current_local_parameters = current_property.Get.ParameterInfo;
5516
lexer.PropertyParsing = false;
5520
#line 1883 "cs-parser.jay"
5522
if (yyVals[0+yyTop] != null) {
5523
current_property.Get.Block = (ToplevelBlock) yyVals[0+yyTop];
5525
if (current_container.Kind == MemberKind.Interface) {
5526
report.Error (531, current_property.Get.Block.StartLocation,
5527
"`{0}': interface members cannot have a definition", current_property.Get.GetSignatureForError ());
5529
lbag.AddMember (current_property.Get, GetModifierLocations ());
5531
lbag.AddMember (current_property.Get, GetModifierLocations (), savedLocation);
5534
current_local_parameters = null;
5535
lexer.PropertyParsing = true;
5538
if (Lexer.doc_state == XmlCommentState.Error)
5539
Lexer.doc_state = XmlCommentState.NotAllowed;
5543
#line 1907 "cs-parser.jay"
5545
if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
5546
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
5549
if (current_property.Set != null) {
5550
report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
5553
if (current_property is Indexer) {
5554
current_property.Set = new Indexer.SetIndexerMethod (current_property, (Modifiers) yyVals[-1+yyTop],
5555
ParametersCompiled.MergeGenerated (compiler,
5556
((Indexer)current_property).ParameterInfo, true, new Parameter (
5557
current_property.TypeExpression, "value", Parameter.Modifier.NONE, null, GetLocation (yyVals[0+yyTop])),
5559
(Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5561
current_property.Set = new Property.SetMethod (current_property, (Modifiers) yyVals[-1+yyTop],
5562
ParametersCompiled.CreateImplicitParameter (current_property.TypeExpression, GetLocation (yyVals[0+yyTop])),
5563
(Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
5566
current_local_parameters = current_property.Set.ParameterInfo;
5567
lexer.PropertyParsing = false;
5571
#line 1933 "cs-parser.jay"
5573
if (yyVals[0+yyTop] != null) {
5574
current_property.Set.Block = (ToplevelBlock) yyVals[0+yyTop];
5576
if (current_container.Kind == MemberKind.Interface) {
5577
report.Error (531, current_property.Set.Block.StartLocation,
5578
"`{0}': interface members cannot have a definition", current_property.Set.GetSignatureForError ());
5580
lbag.AddMember (current_property.Set, GetModifierLocations ());
5582
lbag.AddMember (current_property.Set, GetModifierLocations (), savedLocation);
5585
current_local_parameters = null;
5586
lexer.PropertyParsing = true;
5589
&& Lexer.doc_state == XmlCommentState.Error)
5590
Lexer.doc_state = XmlCommentState.NotAllowed;
5594
#line 1958 "cs-parser.jay"
5596
savedLocation = GetLocation (yyVals[0+yyTop]);
5601
#line 1963 "cs-parser.jay"
5603
Error_SyntaxError (1043, yyToken, "Invalid accessor body");
5608
#line 1977 "cs-parser.jay"
5610
lexer.ConstraintsParsing = true;
5611
push_current_container (new Interface (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]);
5612
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
5616
#line 1984 "cs-parser.jay"
5618
lexer.ConstraintsParsing = false;
5620
if (yyVals[0+yyTop] != null)
5621
current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
5624
current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
5625
Lexer.doc_state = XmlCommentState.Allowed;
5628
lexer.parsing_modifiers = true;
5632
#line 1998 "cs-parser.jay"
5634
--lexer.parsing_declaration;
5636
Lexer.doc_state = XmlCommentState.Allowed;
5640
#line 2004 "cs-parser.jay"
5642
if (yyVals[0+yyTop] == null) {
5643
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
5645
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
5647
yyVal = pop_current_class ();
5651
#line 2066 "cs-parser.jay"
5653
OperatorDeclaration decl = (OperatorDeclaration) yyVals[-2+yyTop];
5655
Operator op = new Operator (
5656
current_type, decl.optype, decl.ret_type, (Modifiers) yyVals[-3+yyTop],
5657
current_local_parameters,
5658
(ToplevelBlock) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop], decl.location);
5660
if (op.Block == null)
5661
op.ParameterInfo.CheckParameters (op);
5664
op.DocComment = tmpComment;
5665
Lexer.doc_state = XmlCommentState.Allowed;
5668
/* Note again, checking is done in semantic analysis*/
5669
current_type.AddOperator (op);
5671
lbag.AddMember (op, GetModifierLocations (), lbag.GetLocations (decl));
5672
if (yyVals[0+yyTop] == null) { /* Semicolon*/
5673
lbag.AddLocation (op, savedLocation);
5677
current_local_parameters = null;
5681
#line 2103 "cs-parser.jay"
5683
report.Error (590, GetLocation (yyVals[0+yyTop]), "User-defined operators cannot return void");
5684
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
5688
#line 2115 "cs-parser.jay"
5690
valid_param_mod = 0;
5692
Location loc = GetLocation (yyVals[-5+yyTop]);
5693
Operator.OpType op = (Operator.OpType) yyVals[-4+yyTop];
5694
current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
5696
int p_count = current_local_parameters.Count;
5698
if (op == Operator.OpType.Addition)
5699
op = Operator.OpType.UnaryPlus;
5700
else if (op == Operator.OpType.Subtraction)
5701
op = Operator.OpType.UnaryNegation;
5704
if (IsUnaryOperator (op)) {
5706
report.Error (1020, loc, "Overloadable binary operator expected");
5707
} else if (p_count != 1) {
5708
report.Error (1535, loc, "Overloaded unary operator `{0}' takes one parameter",
5709
Operator.GetName (op));
5713
report.Error (1534, loc, "Overloaded binary operator `{0}' takes two parameters",
5714
Operator.GetName (op));
5715
} else if (p_count != 2) {
5716
report.Error (1019, loc, "Overloadable unary operator expected");
5721
tmpComment = Lexer.consume_doc_comment ();
5722
Lexer.doc_state = XmlCommentState.NotAllowed;
5725
yyVal = new OperatorDeclaration (op, (FullNamedExpression) yyVals[-6+yyTop], loc);
5726
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), savedOperatorLocation, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5730
#line 2191 "cs-parser.jay"
5732
valid_param_mod = 0;
5734
Location loc = GetLocation (yyVals[-5+yyTop]);
5735
current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
5737
if (current_local_parameters.Count != 1) {
5738
report.Error (1535, loc, "Overloaded unary operator `implicit' takes one parameter");
5742
tmpComment = Lexer.consume_doc_comment ();
5743
Lexer.doc_state = XmlCommentState.NotAllowed;
5746
yyVal = new OperatorDeclaration (Operator.OpType.Implicit, (FullNamedExpression) yyVals[-4+yyTop], loc);
5747
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5751
#line 2214 "cs-parser.jay"
5753
valid_param_mod = 0;
5755
Location loc = GetLocation (yyVals[-5+yyTop]);
5756
current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
5758
if (current_local_parameters.Count != 1) {
5759
report.Error (1535, loc, "Overloaded unary operator `explicit' takes one parameter");
5763
tmpComment = Lexer.consume_doc_comment ();
5764
Lexer.doc_state = XmlCommentState.NotAllowed;
5767
yyVal = new OperatorDeclaration (Operator.OpType.Explicit, (FullNamedExpression) yyVals[-4+yyTop], loc);
5768
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5772
#line 2233 "cs-parser.jay"
5774
Error_SyntaxError (yyToken);
5775
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5776
yyVal = new OperatorDeclaration (Operator.OpType.Implicit, null, GetLocation (yyVals[-1+yyTop]));
5780
#line 2239 "cs-parser.jay"
5782
Error_SyntaxError (yyToken);
5783
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5784
yyVal = new OperatorDeclaration (Operator.OpType.Explicit, null, GetLocation (yyVals[-1+yyTop]));
5788
#line 2249 "cs-parser.jay"
5790
Constructor c = (Constructor) yyVals[-1+yyTop];
5791
c.Block = (ToplevelBlock) yyVals[0+yyTop];
5794
c.DocComment = ConsumeStoredComment ();
5796
current_local_parameters = null;
5798
Lexer.doc_state = XmlCommentState.Allowed;
5802
#line 2266 "cs-parser.jay"
5805
tmpComment = Lexer.consume_doc_comment ();
5806
Lexer.doc_state = XmlCommentState.Allowed;
5809
valid_param_mod = ParameterModifierType.All;
5813
#line 2275 "cs-parser.jay"
5815
valid_param_mod = 0;
5816
current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
5818
var lt = (Tokenizer.LocatedToken) yyVals[-4+yyTop];
5819
var mods = (Modifiers) yyVals[-5+yyTop];
5820
var c = new Constructor (current_type, lt.Value, mods, (Attributes) yyVals[-6+yyTop], current_local_parameters, lt.Location);
5822
if (lt.Value != current_container.MemberName.Name) {
5823
report.Error (1520, c.Location, "Class, struct, or interface method must have a return type");
5824
} else if ((mods & Modifiers.STATIC) != 0) {
5825
if ((mods & Modifiers.AccessibilityMask) != 0){
5826
report.Error (515, c.Location,
5827
"`{0}': static constructor cannot have an access modifier",
5828
c.GetSignatureForError ());
5832
current_type.AddConstructor (c);
5833
lbag.AddMember (c, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
5837
/* start block here, so possible anonymous methods inside*/
5838
/* constructor initializer can get correct parent block*/
5840
start_block (lexer.Location);
5844
#line 2304 "cs-parser.jay"
5846
if (yyVals[0+yyTop] != null) {
5847
var c = (Constructor) yyVals[-1+yyTop];
5848
c.Initializer = (ConstructorInitializer) yyVals[0+yyTop];
5851
report.Error (514, c.Location,
5852
"`{0}': static constructor cannot have an explicit `this' or `base' constructor call",
5853
c.GetSignatureForError ());
5857
yyVal = yyVals[-1+yyTop];
5861
#line 2336 "cs-parser.jay"
5863
--lexer.parsing_block;
5864
yyVal = new ConstructorBaseInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
5865
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5869
#line 2346 "cs-parser.jay"
5871
--lexer.parsing_block;
5872
yyVal = new ConstructorThisInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
5873
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5877
#line 2352 "cs-parser.jay"
5879
Error_SyntaxError (yyToken);
5880
yyVal = new ConstructorThisInitializer (null, GetLocation (yyVals[0+yyTop]));
5881
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
5885
#line 2358 "cs-parser.jay"
5887
Error_SyntaxError (yyToken);
5892
#line 2366 "cs-parser.jay"
5895
tmpComment = Lexer.consume_doc_comment ();
5896
Lexer.doc_state = XmlCommentState.NotAllowed;
5899
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
5903
#line 2375 "cs-parser.jay"
5905
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
5906
if (lt.Value != current_container.MemberName.Name){
5907
report.Error (574, lt.Location, "Name of destructor must match name of class");
5908
} else if (current_container.Kind != MemberKind.Class){
5909
report.Error (575, lt.Location, "Only class types can contain destructor");
5912
Destructor d = new Destructor (current_type, (Modifiers) yyVals[-6+yyTop],
5913
ParametersCompiled.EmptyReadOnlyParameters, (Attributes) yyVals[-7+yyTop], lt.Location);
5914
d.Identifier = lt.Value;
5916
d.DocComment = ConsumeStoredComment ();
5918
d.Block = (ToplevelBlock) yyVals[0+yyTop];
5919
current_type.AddMember (d);
5920
lbag.AddMember (d, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[-1+yyTop]));
5922
current_local_parameters = null;
5926
#line 2401 "cs-parser.jay"
5928
current_event_field = new EventField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], (MemberName) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop]);
5929
current_type.AddMember (current_event_field);
5931
if (current_event_field.MemberName.ExplicitInterface != null) {
5932
report.Error (71, current_event_field.Location, "`{0}': An explicit interface implementation of an event must use property syntax",
5933
current_event_field.GetSignatureForError ());
5936
yyVal = current_event_field;
5940
#line 2415 "cs-parser.jay"
5943
current_event_field.DocComment = Lexer.consume_doc_comment ();
5944
Lexer.doc_state = XmlCommentState.Allowed;
5946
if (current_event_field.Initializer != null) {
5947
lbag.AddMember (current_event_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), savedEventAssignLocation, GetLocation (yyVals[0+yyTop]));
5949
lbag.AddMember (current_event_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
5951
current_event_field = null;
5955
#line 2431 "cs-parser.jay"
5957
current_event = new EventProperty (current_type, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-4+yyTop], (MemberName) yyVals[-1+yyTop], (Attributes) yyVals[-5+yyTop]);
5958
current_type.AddMember (current_event);
5959
lbag.AddMember (current_event, GetModifierLocations (), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
5961
lexer.EventParsing = true;
5965
#line 2439 "cs-parser.jay"
5967
if (current_container.Kind == MemberKind.Interface)
5968
report.Error (69, GetLocation (yyVals[-2+yyTop]), "Event in interface cannot have add or remove accessors");
5970
lexer.EventParsing = false;
5974
#line 2446 "cs-parser.jay"
5977
current_event.DocComment = Lexer.consume_doc_comment ();
5978
Lexer.doc_state = XmlCommentState.Allowed;
5981
lbag.AppendToMember (current_event, GetLocation (yyVals[-1+yyTop]));
5982
current_event = null;
5983
current_local_parameters = null;
5987
#line 2459 "cs-parser.jay"
5989
Error_SyntaxError (yyToken);
5991
current_type.AddMember (new EventField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], MemberName.Null, (Attributes) yyVals[-4+yyTop]));
5995
#line 2473 "cs-parser.jay"
5997
--lexer.parsing_block;
5998
savedEventAssignLocation = GetLocation (yyVals[-2+yyTop]);
5999
current_event_field.Initializer = (Expression) yyVals[0+yyTop];
6003
#line 2498 "cs-parser.jay"
6005
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
6006
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
6007
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6011
#line 2508 "cs-parser.jay"
6013
--lexer.parsing_block;
6014
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
6015
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop]);
6016
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
6020
#line 2517 "cs-parser.jay"
6022
if (current_container.Kind == MemberKind.Interface) {
6023
report.Error (68, lexer.Location, "`{0}': event in interface cannot have an initializer",
6024
current_event_field.GetSignatureForError ());
6027
if ((current_event_field.ModFlags & Modifiers.ABSTRACT) != 0) {
6028
report.Error (74, lexer.Location, "`{0}': abstract event cannot have an initializer",
6029
current_event_field.GetSignatureForError ());
6034
#line 2538 "cs-parser.jay"
6036
report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
6037
current_event.GetSignatureForError ());
6041
#line 2543 "cs-parser.jay"
6043
report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
6044
current_event.GetSignatureForError ());
6048
#line 2548 "cs-parser.jay"
6050
report.Error (1055, GetLocation (yyVals[0+yyTop]), "An add or remove accessor expected");
6055
#line 2556 "cs-parser.jay"
6057
if (yyVals[-1+yyTop] != ModifierNone) {
6058
report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
6061
current_event.Add = new EventProperty.AddDelegateMethod (current_event, (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
6062
current_local_parameters = current_event.Add.ParameterInfo;
6064
lbag.AddMember (current_event.Add, GetModifierLocations ());
6065
lexer.EventParsing = false;
6069
#line 2568 "cs-parser.jay"
6071
lexer.EventParsing = true;
6073
current_event.Add.Block = (ToplevelBlock) yyVals[0+yyTop];
6075
if (current_container.Kind == MemberKind.Interface) {
6076
report.Error (531, current_event.Add.Block.StartLocation,
6077
"`{0}': interface members cannot have a definition", current_event.Add.GetSignatureForError ());
6080
current_local_parameters = null;
6084
#line 2584 "cs-parser.jay"
6086
if (yyVals[-1+yyTop] != ModifierNone) {
6087
report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
6090
current_event.Remove = new EventProperty.RemoveDelegateMethod (current_event, (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
6091
current_local_parameters = current_event.Remove.ParameterInfo;
6093
lbag.AddMember (current_event.Remove, GetModifierLocations ());
6094
lexer.EventParsing = false;
6098
#line 2596 "cs-parser.jay"
6100
lexer.EventParsing = true;
6102
current_event.Remove.Block = (ToplevelBlock) yyVals[0+yyTop];
6104
if (current_container.Kind == MemberKind.Interface) {
6105
report.Error (531, current_event.Remove.Block.StartLocation,
6106
"`{0}': interface members cannot have a definition", current_event.Remove.GetSignatureForError ());
6109
current_local_parameters = null;
6113
#line 2612 "cs-parser.jay"
6115
report.Error (73, lexer.Location, "An add or remove accessor must have a body");
6120
#line 2621 "cs-parser.jay"
6122
current_type.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
6123
report.Error (1519, GetLocation (yyVals[-1+yyTop]), "An attribute is missing member declaration");
6124
lexer.putback ('}');
6128
#line 2632 "cs-parser.jay"
6130
report.Error (1519, lexer.Location, "Unexpected symbol `}' in class, struct, or interface member declaration");
6132
lexer.putback ('}');
6134
lexer.parsing_generic_declaration = false;
6135
FullNamedExpression type = (FullNamedExpression) yyVals[-1+yyTop];
6136
current_field = new Field (current_type, type, (Modifiers) yyVals[-2+yyTop], MemberName.Null, (Attributes) yyVals[-3+yyTop]);
6137
current_type.AddField (current_field);
6138
lbag.AddMember (current_field, GetModifierLocations ());
6139
yyVal = current_field;
6143
#line 2652 "cs-parser.jay"
6146
enumTypeComment = Lexer.consume_doc_comment ();
6150
#line 2657 "cs-parser.jay"
6153
Lexer.doc_state = XmlCommentState.Allowed;
6155
MemberName name = (MemberName) yyVals[-3+yyTop];
6156
if (name.IsGeneric) {
6157
report.Error (1675, name.Location, "Enums cannot have type parameters");
6160
push_current_container (new Enum (current_container, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-5+yyTop], name, (Attributes) yyVals[-6+yyTop]), null);
6161
if (yyVals[-2+yyTop] != null) {
6162
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
6164
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
6169
#line 2674 "cs-parser.jay"
6171
/* here will be evaluated after CLOSE_BLACE is consumed.*/
6173
Lexer.doc_state = XmlCommentState.Allowed;
6177
#line 2680 "cs-parser.jay"
6179
lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
6180
if (yyVals[0+yyTop] != null) {
6181
lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
6184
current_container.DocComment = enumTypeComment;
6186
--lexer.parsing_declaration;
6188
/* if (doc_support)*/
6189
/* em.DocComment = ev.DocComment;*/
6191
yyVal = pop_current_class ();
6195
#line 2700 "cs-parser.jay"
6197
savedLocation = GetLocation (yyVals[-1+yyTop]);
6198
yyVal = yyVals[0+yyTop];
6202
#line 2705 "cs-parser.jay"
6204
Error_TypeExpected (GetLocation (yyVals[-1+yyTop]));
6209
#line 2723 "cs-parser.jay"
6211
lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
6212
yyVal = yyVals[0+yyTop];
6216
#line 2731 "cs-parser.jay"
6218
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
6219
var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-1+yyTop]);
6220
((Enum) current_type).AddEnumMember (em);
6223
em.DocComment = Lexer.consume_doc_comment ();
6224
Lexer.doc_state = XmlCommentState.Allowed;
6231
#line 2744 "cs-parser.jay"
6233
++lexer.parsing_block;
6235
tmpComment = Lexer.consume_doc_comment ();
6236
Lexer.doc_state = XmlCommentState.NotAllowed;
6241
#line 2752 "cs-parser.jay"
6243
--lexer.parsing_block;
6245
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
6246
var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
6247
em.Initializer = new ConstInitializer (em, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
6248
((Enum) current_type).AddEnumMember (em);
6251
em.DocComment = ConsumeStoredComment ();
6257
#line 2766 "cs-parser.jay"
6259
Error_SyntaxError (yyToken);
6261
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6262
var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-2+yyTop]);
6263
((Enum) current_type).AddEnumMember (em);
6266
em.DocComment = Lexer.consume_doc_comment ();
6267
Lexer.doc_state = XmlCommentState.Allowed;
6274
#line 2793 "cs-parser.jay"
6276
valid_param_mod = 0;
6278
ParametersCompiled p = (ParametersCompiled) yyVals[-1+yyTop];
6280
Delegate del = new Delegate (current_container, (FullNamedExpression) yyVals[-5+yyTop], (Modifiers) yyVals[-7+yyTop], (MemberName) yyVals[-4+yyTop], p, (Attributes) yyVals[-8+yyTop]);
6282
p.CheckParameters (del);
6284
current_container.AddTypeContainer (del);
6286
current_delegate = del;
6287
lexer.ConstraintsParsing = true;
6291
#line 2812 "cs-parser.jay"
6294
current_delegate.DocComment = Lexer.consume_doc_comment ();
6295
Lexer.doc_state = XmlCommentState.Allowed;
6298
if (yyVals[-2+yyTop] != null)
6299
current_delegate.SetConstraints ((List<Constraints>) yyVals[-2+yyTop]);
6300
lbag.AddMember (current_delegate, GetModifierLocations (), GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
6302
yyVal = current_delegate;
6304
current_delegate = null;
6308
#line 2831 "cs-parser.jay"
6310
if (lang_version < LanguageVersion.ISO_2)
6311
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "nullable types");
6313
yyVal = ComposedTypeSpecifier.CreateNullable (GetLocation (yyVals[0+yyTop]));
6317
#line 2842 "cs-parser.jay"
6319
var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6320
var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6322
yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
6323
lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
6327
#line 2854 "cs-parser.jay"
6329
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6330
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
6331
DotLocation = GetLocation (yyVals[-2+yyTop])
6336
#line 2864 "cs-parser.jay"
6338
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6339
yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);
6343
#line 2876 "cs-parser.jay"
6345
if (lang_version < LanguageVersion.ISO_2)
6346
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
6347
var list = locationListStack.Pop ();
6348
list.Add (GetLocation (yyVals[-2+yyTop]));
6349
list.Add (GetLocation (yyVals[-1+yyTop]));
6350
lbag.AddLocation (yyVals[-1+yyTop], list);
6352
yyVal = yyVals[-1+yyTop];;
6356
#line 2887 "cs-parser.jay"
6358
Error_TypeExpected (lexer.Location);
6359
yyVal = new TypeArguments ();
6363
#line 2895 "cs-parser.jay"
6365
TypeArguments type_args = new TypeArguments ();
6366
type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
6368
locationListStack.Push (new List<Location> ());
6372
#line 2902 "cs-parser.jay"
6374
TypeArguments type_args = (TypeArguments) yyVals[-2+yyTop];
6375
type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
6377
locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
6381
#line 2919 "cs-parser.jay"
6383
lexer.parsing_generic_declaration = false;
6384
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6385
yyVal = new MemberName (lt.Value, (TypeParameters)yyVals[0+yyTop], lt.Location);
6389
#line 2928 "cs-parser.jay"
6391
MemberName mn = (MemberName)yyVals[0+yyTop];
6392
if (mn.TypeParameters != null)
6393
syntax_error (mn.Location, string.Format ("Member `{0}' cannot declare type arguments",
6394
mn.GetSignatureForError ()));
6398
#line 2939 "cs-parser.jay"
6400
lexer.parsing_generic_declaration = false;
6401
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6402
yyVal = new MemberName (lt.Value, (TypeParameters) yyVals[0+yyTop], (ATypeNameExpression) yyVals[-2+yyTop], lt.Location);
6406
#line 2948 "cs-parser.jay"
6408
lexer.parsing_generic_declaration = false;
6409
yyVal = new MemberName (TypeDefinition.DefaultIndexerName, GetLocation (yyVals[0+yyTop]));
6413
#line 2953 "cs-parser.jay"
6415
lexer.parsing_generic_declaration = false;
6416
yyVal = new MemberName (TypeDefinition.DefaultIndexerName, null, (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
6420
#line 2961 "cs-parser.jay"
6422
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6423
yyVal = new SimpleName (lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
6424
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6428
#line 2967 "cs-parser.jay"
6430
var lt1 = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
6431
var lt2 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6433
yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[-1+yyTop], lt1.Location);
6434
lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[0+yyTop]));
6438
#line 2975 "cs-parser.jay"
6440
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6441
yyVal = new MemberAccess ((ATypeNameExpression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
6442
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6446
#line 2985 "cs-parser.jay"
6448
if (lang_version < LanguageVersion.ISO_2)
6449
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
6451
yyVal = yyVals[-1+yyTop];
6452
var list = locationListStack.Pop ();
6453
list.Add (GetLocation (yyVals[-2+yyTop]));
6454
list.Add (GetLocation (yyVals[-1+yyTop]));
6455
lbag.AddLocation (yyVals[-1+yyTop], list);
6459
#line 2999 "cs-parser.jay"
6461
var tparams = new TypeParameters ();
6462
tparams.Add ((TypeParameter)yyVals[0+yyTop]);
6464
locationListStack.Push (new List<Location> ());
6468
#line 3006 "cs-parser.jay"
6470
var tparams = (TypeParameters) yyVals[-2+yyTop];
6471
tparams.Add ((TypeParameter)yyVals[0+yyTop]);
6473
locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
6477
#line 3016 "cs-parser.jay"
6479
var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop];
6480
var variance = (Variance) yyVals[-1+yyTop];
6481
yyVal = new TypeParameter (new MemberName (lt.Value, lt.Location), (Attributes)yyVals[-2+yyTop], variance);
6482
if (variance != Variance.None)
6483
lbag.AddLocation (yyVal, savedLocation);
6487
#line 3024 "cs-parser.jay"
6489
if (GetTokenName (yyToken) == "type")
6490
report.Error (81, GetLocation (yyVals[0+yyTop]), "Type parameter declaration must be an identifier not a type");
6492
Error_SyntaxError (yyToken);
6494
yyVal = new TypeParameter (MemberName.Null, null, Variance.None);
6498
#line 3058 "cs-parser.jay"
6500
Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
6501
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6505
#line 3067 "cs-parser.jay"
6507
Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
6508
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6512
#line 3076 "cs-parser.jay"
6514
report.Error (1536, GetLocation (yyVals[0+yyTop]), "Invalid parameter type `void'");
6515
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
6519
#line 3092 "cs-parser.jay"
6521
if (yyVals[0+yyTop] != null) {
6522
yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
6524
var sn = yyVals[-1+yyTop] as SimpleName;
6525
if (sn != null && sn.Name == "var")
6526
yyVal = new VarExpr (sn.Location);
6528
yyVal = yyVals[-1+yyTop];
6533
#line 3108 "cs-parser.jay"
6535
if (yyVals[0+yyTop] != null)
6536
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
6540
#line 3124 "cs-parser.jay"
6542
var types = new List<FullNamedExpression> (2);
6543
types.Add ((FullNamedExpression) yyVals[0+yyTop]);
6548
#line 3130 "cs-parser.jay"
6550
var types = (List<FullNamedExpression>) yyVals[-2+yyTop];
6551
types.Add ((FullNamedExpression) yyVals[0+yyTop]);
6552
lbag.AddLocation (types, GetLocation (yyVals[-1+yyTop]));
6557
#line 3140 "cs-parser.jay"
6559
if (yyVals[0+yyTop] is ComposedCast) {
6560
report.Error (1521, GetLocation (yyVals[0+yyTop]), "Invalid base type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
6562
yyVal = yyVals[0+yyTop];
6566
#line 3204 "cs-parser.jay"
6568
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6569
yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);
6573
#line 3208 "cs-parser.jay"
6575
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6576
yyVal = new CompletionSimpleName (MemberName.MakeName (lt.Value, null), lt.Location);
6580
#line 3249 "cs-parser.jay"
6582
yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6583
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6587
#line 3261 "cs-parser.jay"
6589
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6590
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
6591
DotLocation = GetLocation (yyVals[-2+yyTop])
6596
#line 3268 "cs-parser.jay"
6598
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6599
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
6600
DotLocation = GetLocation (yyVals[-2+yyTop])
6605
#line 3275 "cs-parser.jay"
6607
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6608
yyVal = new MemberAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
6609
DotLocation = GetLocation (yyVals[-2+yyTop])
6614
#line 3282 "cs-parser.jay"
6616
var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6617
var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6619
yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
6620
lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
6624
#line 3292 "cs-parser.jay"
6626
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6627
yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
6631
#line 3300 "cs-parser.jay"
6633
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
6634
yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
6638
#line 3308 "cs-parser.jay"
6640
yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]);
6641
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6645
#line 3313 "cs-parser.jay"
6647
Error_SyntaxError (yyToken);
6649
yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]);
6650
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
6654
#line 3320 "cs-parser.jay"
6656
Error_SyntaxError (yyToken);
6658
yyVal = new Invocation ((Expression) yyVals[-2+yyTop], null);
6659
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6663
#line 3335 "cs-parser.jay"
6665
if (yyVals[-1+yyTop] == null) {
6666
yyVal = new CollectionOrObjectInitializers (GetLocation (yyVals[-2+yyTop]));
6668
yyVal = new CollectionOrObjectInitializers ((List<Expression>) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6670
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6674
#line 3344 "cs-parser.jay"
6676
yyVal = new CollectionOrObjectInitializers ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
6677
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
6681
#line 3360 "cs-parser.jay"
6683
var a = new List<Expression> ();
6684
a.Add ((Expression) yyVals[0+yyTop]);
6689
#line 3366 "cs-parser.jay"
6691
var a = (List<Expression>)yyVals[-2+yyTop];
6692
a.Add ((Expression) yyVals[0+yyTop]);
6693
lbag.AddLocation (a, GetLocation (yyVals[-1+yyTop]));
6698
#line 3372 "cs-parser.jay"
6700
Error_SyntaxError (yyToken);
6701
yyVal = yyVals[-1+yyTop];
6705
#line 3380 "cs-parser.jay"
6707
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
6708
yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location);
6709
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6713
#line 3386 "cs-parser.jay"
6715
var lt = (Tokenizer.LocatedToken) Error_AwaitAsIdentifier (yyVals[-2+yyTop]);
6716
yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location);
6717
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6721
#line 3395 "cs-parser.jay"
6723
CompletionSimpleName csn = yyVals[-1+yyTop] as CompletionSimpleName;
6725
yyVal = new CollectionElementInitializer ((Expression)yyVals[-1+yyTop]);
6727
yyVal = new CompletionElementInitializer (csn.Prefix, csn.Location);
6731
#line 3403 "cs-parser.jay"
6733
if (yyVals[-1+yyTop] == null)
6736
yyVal = new CollectionElementInitializer ((List<Expression>)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6737
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6742
#line 3412 "cs-parser.jay"
6744
report.Error (1920, GetLocation (yyVals[-1+yyTop]), "An element initializer cannot be empty");
6745
yyVal = new CollectionElementInitializer (new List<Expression> (), GetLocation (yyVals[-1+yyTop]));
6746
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6750
#line 3431 "cs-parser.jay"
6752
Arguments list = new Arguments (4);
6753
list.Add ((Argument) yyVals[0+yyTop]);
6758
#line 3437 "cs-parser.jay"
6760
Arguments list = (Arguments) yyVals[-2+yyTop];
6761
if (list [list.Count - 1] is NamedArgument)
6762
Error_NamedArgumentExpected ((NamedArgument) list [list.Count - 1]);
6764
list.Add ((Argument) yyVals[0+yyTop]);
6765
lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
6770
#line 3447 "cs-parser.jay"
6772
Arguments list = (Arguments) yyVals[-2+yyTop];
6773
NamedArgument a = (NamedArgument) yyVals[0+yyTop];
6774
for (int i = 0; i < list.Count; ++i) {
6775
NamedArgument na = list [i] as NamedArgument;
6776
if (na != null && na.Name == a.Name)
6777
report.Error (1740, na.Location, "Named argument `{0}' specified multiple times",
6782
lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
6787
#line 3462 "cs-parser.jay"
6789
if (lexer.putback_char == -1)
6790
lexer.putback (')'); /* TODO: Wrong but what can I do*/
6791
Error_SyntaxError (yyToken);
6792
yyVal = yyVals[-2+yyTop];
6796
#line 3469 "cs-parser.jay"
6798
report.Error (839, GetLocation (yyVals[-1+yyTop]), "An argument is missing");
6803
#line 3490 "cs-parser.jay"
6805
yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Ref);
6806
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6810
#line 3495 "cs-parser.jay"
6812
yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Out);
6813
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
6817
#line 3500 "cs-parser.jay"
6819
yyVal = new Argument (new Arglist ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])));
6820
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6824
#line 3505 "cs-parser.jay"
6826
yyVal = new Argument (new Arglist (GetLocation (yyVals[-2+yyTop])));
6827
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
6831
#line 3517 "cs-parser.jay"
6833
yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6834
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6838
#line 3522 "cs-parser.jay"
6840
Error_SyntaxError (yyToken);
6841
yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6845
#line 3527 "cs-parser.jay"
6847
Error_SyntaxError (yyToken);
6848
yyVal = new ElementAccess ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
6852
#line 3535 "cs-parser.jay"
6854
var list = new List<Expression> (4);
6855
list.Add ((Expression) yyVals[0+yyTop]);
6860
#line 3541 "cs-parser.jay"
6862
var list = (List<Expression>) yyVals[-2+yyTop];
6863
list.Add ((Expression) yyVals[0+yyTop]);
6864
lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
6869
#line 3551 "cs-parser.jay"
6871
Arguments args = new Arguments (4);
6872
args.Add ((Argument) yyVals[0+yyTop]);
6877
#line 3557 "cs-parser.jay"
6879
Arguments args = (Arguments) yyVals[-2+yyTop];
6880
if (args [args.Count - 1] is NamedArgument && !(yyVals[0+yyTop] is NamedArgument))
6881
Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
6883
args.Add ((Argument) yyVals[0+yyTop]);
6884
lbag.AddLocation (args, GetLocation (yyVals[-1+yyTop]));
6889
#line 3585 "cs-parser.jay"
6891
yyVal = new ElementAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
6892
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
6896
#line 3590 "cs-parser.jay"
6898
Error_SyntaxError (yyToken);
6899
yyVal = new ElementAccess (null, null, GetLocation (yyVals[-1+yyTop]));
6903
#line 3612 "cs-parser.jay"
6905
if (yyVals[0+yyTop] != null) {
6906
if (lang_version <= LanguageVersion.ISO_2)
6907
FeatureIsNotAvailable (GetLocation (yyVals[-5+yyTop]), "object initializers");
6909
yyVal = new NewInitialize ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop]));
6911
yyVal = new New ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], GetLocation (yyVals[-5+yyTop]));
6914
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
6918
#line 3625 "cs-parser.jay"
6920
if (lang_version <= LanguageVersion.ISO_2)
6921
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "collection initializers");
6923
yyVal = new NewInitialize ((FullNamedExpression) yyVals[-1+yyTop], null, (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
6927
#line 3637 "cs-parser.jay"
6929
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], (List<Expression>) yyVals[-3+yyTop],
6930
new ComposedTypeSpecifier (((List<Expression>) yyVals[-3+yyTop]).Count, GetLocation (yyVals[-4+yyTop])) {
6931
Next = (ComposedTypeSpecifier) yyVals[-1+yyTop]
6932
}, (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop]));
6933
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
6937
#line 3645 "cs-parser.jay"
6939
if (yyVals[0+yyTop] == null)
6940
report.Error (1586, GetLocation (yyVals[-3+yyTop]), "Array creation must have array size or array initializer");
6942
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-2+yyTop], (ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
6946
#line 3652 "cs-parser.jay"
6948
if (lang_version <= LanguageVersion.ISO_2)
6949
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "implicitly typed arrays");
6951
yyVal = new ImplicitlyTypedArrayCreation ((ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
6955
#line 3659 "cs-parser.jay"
6957
report.Error (178, GetLocation (yyVals[-1+yyTop]), "Invalid rank specifier, expecting `,' or `]'");
6958
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], null, GetLocation (yyVals[-6+yyTop]));
6962
#line 3664 "cs-parser.jay"
6964
Error_SyntaxError (yyToken);
6965
/* It can be any of new expression, create the most common one*/
6966
yyVal = new New ((FullNamedExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
6970
#line 3676 "cs-parser.jay"
6972
--lexer.parsing_type;
6973
yyVal = yyVals[0+yyTop];
6977
#line 3684 "cs-parser.jay"
6979
if (lang_version <= LanguageVersion.ISO_2)
6980
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "anonymous types");
6982
yyVal = new NewAnonymousType ((List<AnonymousTypeParameter>) yyVals[-1+yyTop], current_container, GetLocation (yyVals[-3+yyTop]));
6984
/* TODO: lbag comma location*/
6985
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
6989
#line 3707 "cs-parser.jay"
6991
var a = new List<AnonymousTypeParameter> (4);
6992
a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
6997
#line 3713 "cs-parser.jay"
6999
var a = (List<AnonymousTypeParameter>) yyVals[-2+yyTop];
7000
a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
7001
lbag.AddLocation (a, GetLocation (yyVals[-1+yyTop]));
7007
#line 3724 "cs-parser.jay"
7009
var lt = (Tokenizer.LocatedToken)yyVals[-2+yyTop];
7010
yyVal = new AnonymousTypeParameter ((Expression)yyVals[0+yyTop], lt.Value, lt.Location);
7011
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7015
#line 3730 "cs-parser.jay"
7017
var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop];
7018
yyVal = new AnonymousTypeParameter (new SimpleName (lt.Value, lt.Location),
7019
lt.Value, lt.Location);
7023
#line 3736 "cs-parser.jay"
7025
MemberAccess ma = (MemberAccess) yyVals[0+yyTop];
7026
yyVal = new AnonymousTypeParameter (ma, ma.Name, ma.Location);
7030
#line 3741 "cs-parser.jay"
7032
report.Error (746, lexer.Location,
7033
"Invalid anonymous type member declarator. Anonymous type members must be a member assignment, simple name or member access expression");
7038
#line 3756 "cs-parser.jay"
7040
((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
7041
yyVal = yyVals[-1+yyTop];
7045
#line 3764 "cs-parser.jay"
7047
yyVal = ComposedTypeSpecifier.CreateArrayDimension (1, GetLocation (yyVals[-1+yyTop]));
7048
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7052
#line 3769 "cs-parser.jay"
7054
yyVal = ComposedTypeSpecifier.CreateArrayDimension ((int)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
7055
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
7059
#line 3799 "cs-parser.jay"
7061
var ai = new ArrayInitializer (0, GetLocation (yyVals[-1+yyTop]));
7062
ai.VariableDeclaration = current_variable;
7063
lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
7068
#line 3806 "cs-parser.jay"
7070
var ai = new ArrayInitializer ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
7071
ai.VariableDeclaration = current_variable;
7072
if (yyVals[-1+yyTop] != null) {
7073
lbag.AddLocation (ai, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
7075
lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
7081
#line 3820 "cs-parser.jay"
7083
var list = new List<Expression> (4);
7084
list.Add ((Expression) yyVals[0+yyTop]);
7089
#line 3826 "cs-parser.jay"
7091
var list = (List<Expression>) yyVals[-2+yyTop];
7092
list.Add ((Expression) yyVals[0+yyTop]);
7093
lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
7098
#line 3840 "cs-parser.jay"
7100
lexer.TypeOfParsing = false;
7101
yyVal = new TypeOf ((FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
7102
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7106
#line 3851 "cs-parser.jay"
7108
Error_TypeExpected (lexer.Location);
7113
#line 3859 "cs-parser.jay"
7115
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7116
var sn = new SimpleName (lt.Value, (int) yyVals[0+yyTop], lt.Location);
7118
lbag.AddLocation (sn.TypeArguments, Lexer.GetGenericDimensionLocations ());
7122
#line 3866 "cs-parser.jay"
7124
var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
7125
var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7126
var qam = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
7128
lbag.AddLocation (qam.TypeArguments, Lexer.GetGenericDimensionLocations ());
7129
lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
7133
#line 3875 "cs-parser.jay"
7135
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7137
yyVal = new MemberAccess ((Expression) yyVals[-2+yyTop], lt.Value, lt.Location) {
7138
DotLocation = GetLocation (yyVals[-1+yyTop])
7143
#line 3883 "cs-parser.jay"
7145
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7147
var ma = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location) {
7148
DotLocation = GetLocation (yyVals[-2+yyTop])
7151
lbag.AddLocation (ma.TypeArguments, Lexer.GetGenericDimensionLocations ());
7155
#line 3893 "cs-parser.jay"
7157
var tne = (ATypeNameExpression) yyVals[-3+yyTop];
7158
if (tne.HasTypeArguments)
7159
Error_TypeExpected (GetLocation (yyVals[0+yyTop]));
7161
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7162
var ma = new MemberAccess (tne, lt.Value, (int) yyVals[0+yyTop], lt.Location) {
7163
DotLocation = GetLocation (yyVals[-2+yyTop])
7166
lbag.AddLocation (ma.TypeArguments, Lexer.GetGenericDimensionLocations ());
7170
#line 3909 "cs-parser.jay"
7172
if (lang_version < LanguageVersion.ISO_2)
7173
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "generics");
7175
yyVal = yyVals[0+yyTop];
7179
#line 3919 "cs-parser.jay"
7181
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7182
if (lang_version == LanguageVersion.ISO_1)
7183
FeatureIsNotAvailable (lt.Location, "namespace alias qualifier");
7184
savedLocation = GetLocation (yyVals[0+yyTop]);
7189
#line 3930 "cs-parser.jay"
7191
yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7192
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7196
#line 3935 "cs-parser.jay"
7198
Error_SyntaxError (yyToken);
7200
yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7201
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
7205
#line 3945 "cs-parser.jay"
7207
yyVal = new CheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7208
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7212
#line 3950 "cs-parser.jay"
7214
Error_SyntaxError (yyToken);
7216
yyVal = new CheckedExpr (null, GetLocation (yyVals[-1+yyTop]));
7220
#line 3959 "cs-parser.jay"
7222
yyVal = new UnCheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7223
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7227
#line 3964 "cs-parser.jay"
7229
Error_SyntaxError (yyToken);
7231
yyVal = new UnCheckedExpr (null, GetLocation (yyVals[-1+yyTop]));
7235
#line 3973 "cs-parser.jay"
7237
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7238
yyVal = new MemberAccess (new Indirection ((Expression) yyVals[-3+yyTop], GetLocation (yyVals[-2+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
7242
#line 3985 "cs-parser.jay"
7244
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7245
if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
7246
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), savedOpenLocation, savedCloseLocation);
7248
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]));
7253
#line 3998 "cs-parser.jay"
7255
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7257
if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
7258
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), savedOpenLocation, savedCloseLocation);
7260
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]));
7265
#line 4023 "cs-parser.jay"
7267
valid_param_mod = 0;
7268
yyVal = yyVals[-1+yyTop];
7269
savedOpenLocation = GetLocation (yyVals[-3+yyTop]);
7270
savedCloseLocation = GetLocation (yyVals[-2+yyTop]);
7274
#line 4033 "cs-parser.jay"
7276
if (lang_version < LanguageVersion.ISO_2)
7277
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "default value expression");
7279
yyVal = new DefaultValueExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7280
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7284
#line 4053 "cs-parser.jay"
7286
yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
7287
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7291
#line 4058 "cs-parser.jay"
7294
if (current_anonymous_method is LambdaExpression) {
7295
report.Error (4034, GetLocation (yyVals[-1+yyTop]),
7296
"The `await' operator can only be used when its containing lambda expression is marked with the `async' modifier");
7297
} else if (current_anonymous_method is AnonymousMethodExpression) {
7298
report.Error (4035, GetLocation (yyVals[-1+yyTop]),
7299
"The `await' operator can only be used when its containing anonymous method is marked with the `async' modifier");
7301
report.Error (4033, GetLocation (yyVals[-1+yyTop]),
7302
"The `await' operator can only be used when its containing method is marked with the `async' modifier");
7305
current_block.Explicit.RegisterAsyncAwait ();
7308
yyVal = new Await ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
7312
#line 4077 "cs-parser.jay"
7314
Error_SyntaxError (yyToken);
7316
yyVal = new Unary (Unary.Operator.LogicalNot, null, GetLocation (yyVals[-1+yyTop]));
7320
#line 4083 "cs-parser.jay"
7322
Error_SyntaxError (yyToken);
7324
yyVal = new Unary (Unary.Operator.OnesComplement, null, GetLocation (yyVals[-1+yyTop]));
7328
#line 4089 "cs-parser.jay"
7330
Error_SyntaxError (yyToken);
7332
yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], null, GetLocation (yyVals[-3+yyTop]));
7333
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7337
#line 4096 "cs-parser.jay"
7339
Error_SyntaxError (yyToken);
7341
yyVal = new Await (null, GetLocation (yyVals[-1+yyTop]));
7345
#line 4134 "cs-parser.jay"
7347
Error_SyntaxError (yyToken);
7349
yyVal = new Unary (Unary.Operator.UnaryPlus, null, GetLocation (yyVals[-1+yyTop]));
7353
#line 4140 "cs-parser.jay"
7355
Error_SyntaxError (yyToken);
7357
yyVal = new Unary (Unary.Operator.UnaryNegation, null, GetLocation (yyVals[-1+yyTop]));
7361
#line 4146 "cs-parser.jay"
7363
Error_SyntaxError (yyToken);
7365
yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, null, GetLocation (yyVals[-1+yyTop]));
7369
#line 4152 "cs-parser.jay"
7371
Error_SyntaxError (yyToken);
7373
yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, null, GetLocation (yyVals[-1+yyTop]));
7377
#line 4158 "cs-parser.jay"
7379
Error_SyntaxError (yyToken);
7381
yyVal = new Indirection (null, GetLocation (yyVals[-1+yyTop]));
7385
#line 4164 "cs-parser.jay"
7387
Error_SyntaxError (yyToken);
7389
yyVal = new Unary (Unary.Operator.AddressOf, null, GetLocation (yyVals[-1+yyTop]));
7393
#line 4174 "cs-parser.jay"
7395
yyVal = new Binary (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7396
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7400
#line 4179 "cs-parser.jay"
7402
yyVal = new Binary (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7403
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7407
#line 4184 "cs-parser.jay"
7409
yyVal = new Binary (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7410
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7414
#line 4189 "cs-parser.jay"
7416
Error_SyntaxError (yyToken);
7418
yyVal = new Binary (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], null);
7419
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7423
#line 4196 "cs-parser.jay"
7425
Error_SyntaxError (yyToken);
7427
yyVal = new Binary (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], null);
7428
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7432
#line 4203 "cs-parser.jay"
7434
Error_SyntaxError (yyToken);
7436
yyVal = new Binary (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], null);
7437
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7441
#line 4214 "cs-parser.jay"
7443
yyVal = new Binary (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7444
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7448
#line 4219 "cs-parser.jay"
7450
yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7451
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7455
#line 4232 "cs-parser.jay"
7457
Error_SyntaxError (yyToken);
7459
yyVal = new Binary (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], null);
7460
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7464
#line 4239 "cs-parser.jay"
7466
Error_SyntaxError (yyToken);
7468
yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], null);
7469
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7473
#line 4246 "cs-parser.jay"
7475
Error_SyntaxError (yyToken);
7477
yyVal = new As ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
7481
#line 4252 "cs-parser.jay"
7483
Error_SyntaxError (yyToken);
7485
yyVal = new Is ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
7489
#line 4262 "cs-parser.jay"
7491
yyVal = new Binary (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7492
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7496
#line 4267 "cs-parser.jay"
7498
yyVal = new Binary (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7499
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7503
#line 4272 "cs-parser.jay"
7505
Error_SyntaxError (yyToken);
7507
yyVal = new Binary (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], null);
7508
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7512
#line 4279 "cs-parser.jay"
7514
Error_SyntaxError (yyToken);
7516
yyVal = new Binary (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], null);
7517
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7521
#line 4290 "cs-parser.jay"
7523
yyVal = new Binary (Binary.Operator.LessThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7524
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7528
#line 4295 "cs-parser.jay"
7530
yyVal = new Binary (Binary.Operator.GreaterThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7531
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7535
#line 4300 "cs-parser.jay"
7537
yyVal = new Binary (Binary.Operator.LessThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7538
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7542
#line 4305 "cs-parser.jay"
7544
yyVal = new Binary (Binary.Operator.GreaterThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7545
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7549
#line 4310 "cs-parser.jay"
7551
Error_SyntaxError (yyToken);
7553
yyVal = new Binary (Binary.Operator.LessThan, (Expression) yyVals[-2+yyTop], null);
7554
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7558
#line 4317 "cs-parser.jay"
7560
Error_SyntaxError (yyToken);
7562
yyVal = new Binary (Binary.Operator.GreaterThan, (Expression) yyVals[-2+yyTop], null);
7563
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7567
#line 4324 "cs-parser.jay"
7569
Error_SyntaxError (yyToken);
7571
yyVal = new Binary (Binary.Operator.LessThanOrEqual, (Expression) yyVals[-2+yyTop], null);
7572
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7576
#line 4331 "cs-parser.jay"
7578
Error_SyntaxError (yyToken);
7580
yyVal = new Binary (Binary.Operator.GreaterThanOrEqual, (Expression) yyVals[-2+yyTop], null);
7581
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7585
#line 4342 "cs-parser.jay"
7587
yyVal = new Binary (Binary.Operator.Equality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7588
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7592
#line 4347 "cs-parser.jay"
7594
yyVal = new Binary (Binary.Operator.Inequality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7595
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7599
#line 4352 "cs-parser.jay"
7601
Error_SyntaxError (yyToken);
7603
yyVal = new Binary (Binary.Operator.Equality, (Expression) yyVals[-2+yyTop], null);
7604
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7608
#line 4359 "cs-parser.jay"
7610
Error_SyntaxError (yyToken);
7612
yyVal = new Binary (Binary.Operator.Inequality, (Expression) yyVals[-2+yyTop], null);
7613
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7617
#line 4370 "cs-parser.jay"
7619
yyVal = new Binary (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7620
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7624
#line 4375 "cs-parser.jay"
7626
Error_SyntaxError (yyToken);
7628
yyVal = new Binary (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], null);
7629
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7633
#line 4386 "cs-parser.jay"
7635
yyVal = new Binary (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7636
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7640
#line 4391 "cs-parser.jay"
7642
Error_SyntaxError (yyToken);
7644
yyVal = new Binary (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], null);
7645
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7649
#line 4402 "cs-parser.jay"
7651
yyVal = new Binary (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7652
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7656
#line 4407 "cs-parser.jay"
7658
Error_SyntaxError (yyToken);
7660
yyVal = new Binary (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], null);
7661
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7665
#line 4418 "cs-parser.jay"
7667
yyVal = new Binary (Binary.Operator.LogicalAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7668
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7672
#line 4423 "cs-parser.jay"
7674
Error_SyntaxError (yyToken);
7676
yyVal = new Binary (Binary.Operator.LogicalAnd, (Expression) yyVals[-2+yyTop], null);
7677
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7681
#line 4434 "cs-parser.jay"
7683
yyVal = new Binary (Binary.Operator.LogicalOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7684
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7688
#line 4439 "cs-parser.jay"
7690
Error_SyntaxError (yyToken);
7692
yyVal = new Binary (Binary.Operator.LogicalOr, (Expression) yyVals[-2+yyTop], null);
7693
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7697
#line 4450 "cs-parser.jay"
7699
if (lang_version < LanguageVersion.ISO_2)
7700
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "null coalescing operator");
7702
yyVal = new Nullable.NullCoalescingOperator ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7703
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7707
#line 4462 "cs-parser.jay"
7709
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
7710
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7714
#line 4467 "cs-parser.jay"
7716
Error_SyntaxError (yyToken);
7718
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-3+yyTop]), (Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
7722
#line 4473 "cs-parser.jay"
7724
Error_SyntaxError (yyToken);
7726
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-3+yyTop]));
7727
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7731
#line 4480 "cs-parser.jay"
7733
Error_SyntaxError (Token.CLOSE_BRACE);
7735
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-3+yyTop]));
7736
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7737
lexer.putback ('}');
7741
#line 4491 "cs-parser.jay"
7743
yyVal = new SimpleAssign ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7744
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7748
#line 4496 "cs-parser.jay"
7750
yyVal = new CompoundAssign (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7751
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7755
#line 4501 "cs-parser.jay"
7757
yyVal = new CompoundAssign (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7758
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7762
#line 4506 "cs-parser.jay"
7764
yyVal = new CompoundAssign (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7765
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7769
#line 4511 "cs-parser.jay"
7771
yyVal = new CompoundAssign (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7772
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7776
#line 4516 "cs-parser.jay"
7778
yyVal = new CompoundAssign (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7779
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7783
#line 4521 "cs-parser.jay"
7785
yyVal = new CompoundAssign (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7786
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7790
#line 4526 "cs-parser.jay"
7792
yyVal = new CompoundAssign (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7793
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7797
#line 4531 "cs-parser.jay"
7799
yyVal = new CompoundAssign (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7800
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7804
#line 4536 "cs-parser.jay"
7806
yyVal = new CompoundAssign (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7807
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7811
#line 4541 "cs-parser.jay"
7813
yyVal = new CompoundAssign (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
7814
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
7818
#line 4549 "cs-parser.jay"
7820
var pars = new List<Parameter> (4);
7821
pars.Add ((Parameter) yyVals[0+yyTop]);
7822
parameterListCommas.Clear ();
7827
#line 4556 "cs-parser.jay"
7829
var pars = (List<Parameter>) yyVals[-2+yyTop];
7830
Parameter p = (Parameter)yyVals[0+yyTop];
7831
if (pars[0].GetType () != p.GetType ()) {
7832
report.Error (748, p.Location, "All lambda parameters must be typed either explicitly or implicitly");
7836
parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
7842
#line 4572 "cs-parser.jay"
7844
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7846
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], null, lt.Location);
7850
#line 4578 "cs-parser.jay"
7852
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7854
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, Parameter.Modifier.NONE, null, lt.Location);
7858
#line 4584 "cs-parser.jay"
7860
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
7861
yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
7865
#line 4589 "cs-parser.jay"
7867
var lt = (Tokenizer.LocatedToken) Error_AwaitAsIdentifier (yyVals[0+yyTop]);
7868
yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
7872
#line 4597 "cs-parser.jay"
7874
var pars_list = (List<Parameter>) yyVals[0+yyTop];
7875
yyVal = new ParametersCompiled (pars_list.ToArray ());
7876
lbag.AddLocation (yyVal, parameterListCommas);
7880
#line 4609 "cs-parser.jay"
7882
Block b = end_block (Location.Null);
7883
b.IsCompilerGenerated = true;
7884
b.AddStatement (new ContextualReturn ((Expression) yyVals[0+yyTop]));
7889
#line 4617 "cs-parser.jay"
7891
/* Handles only cases like foo = x.FirstOrDefault (l => );*/
7892
/* where we must restore current_variable*/
7893
Block b = end_block (Location.Null);
7894
b.IsCompilerGenerated = true;
7896
Error_SyntaxError (yyToken);
7901
#line 4631 "cs-parser.jay"
7903
Error_SyntaxError (yyToken);
7908
#line 4639 "cs-parser.jay"
7910
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7911
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
7912
start_anonymous (true, new ParametersCompiled (p), false, lt.Location);
7916
#line 4645 "cs-parser.jay"
7918
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7919
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
7923
#line 4650 "cs-parser.jay"
7925
var lt = (Tokenizer.LocatedToken) Error_AwaitAsIdentifier (yyVals[-1+yyTop]);
7926
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
7927
start_anonymous (true, new ParametersCompiled (p), false, lt.Location);
7931
#line 4656 "cs-parser.jay"
7933
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7934
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
7938
#line 4661 "cs-parser.jay"
7940
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
7941
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
7942
start_anonymous (true, new ParametersCompiled (p), true, lt.Location);
7946
#line 4667 "cs-parser.jay"
7948
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7949
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
7953
#line 4676 "cs-parser.jay"
7955
valid_param_mod = 0;
7956
start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], false, GetLocation (yyVals[-4+yyTop]));
7960
#line 4681 "cs-parser.jay"
7962
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7963
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
7967
#line 4690 "cs-parser.jay"
7969
valid_param_mod = 0;
7970
start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], true, GetLocation (yyVals[-5+yyTop]));
7974
#line 4695 "cs-parser.jay"
7976
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
7977
lbag.AddLocation (yyVal, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
7981
#line 4718 "cs-parser.jay"
7983
yyVal = new RefValueExpr ((Expression) yyVals[-3+yyTop], (FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]));
7984
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7988
#line 4723 "cs-parser.jay"
7990
yyVal = new RefTypeExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7991
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
7995
#line 4728 "cs-parser.jay"
7997
yyVal = new MakeRefExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
7998
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
8002
#line 4756 "cs-parser.jay"
8004
lexer.ConstraintsParsing = true;
8006
Class c = new Class (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]);
8007
if (((c.ModFlags & Modifiers.STATIC) != 0) && lang_version == LanguageVersion.ISO_1) {
8008
FeatureIsNotAvailable (c.Location, "static classes");
8011
push_current_container (c, yyVals[-3+yyTop]);
8012
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
8016
#line 4769 "cs-parser.jay"
8018
lexer.ConstraintsParsing = false;
8020
if (yyVals[0+yyTop] != null)
8021
current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
8024
current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
8025
Lexer.doc_state = XmlCommentState.Allowed;
8028
lexer.parsing_modifiers = true;
8032
#line 4783 "cs-parser.jay"
8034
--lexer.parsing_declaration;
8036
Lexer.doc_state = XmlCommentState.Allowed;
8040
#line 4789 "cs-parser.jay"
8042
if (yyVals[0+yyTop] == null) {
8043
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
8045
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
8047
yyVal = pop_current_class ();
8051
#line 4808 "cs-parser.jay"
8053
mod_locations = null;
8054
yyVal = ModifierNone;
8055
lexer.parsing_modifiers = false;
8059
#line 4822 "cs-parser.jay"
8061
var m1 = (Modifiers) yyVals[-1+yyTop];
8062
var m2 = (Modifiers) yyVals[0+yyTop];
8064
if ((m1 & m2) != 0) {
8065
report.Error (1004, lexer.Location - ModifiersExtensions.Name (m2).Length,
8066
"Duplicate `{0}' modifier", ModifiersExtensions.Name (m2));
8067
} else if ((m2 & Modifiers.AccessibilityMask) != 0 && (m1 & Modifiers.AccessibilityMask) != 0 &&
8068
((m2 | m1 & Modifiers.AccessibilityMask) != (Modifiers.PROTECTED | Modifiers.INTERNAL))) {
8069
report.Error (107, lexer.Location - ModifiersExtensions.Name (m2).Length,
8070
"More than one protection modifier specified");
8077
#line 4841 "cs-parser.jay"
8079
yyVal = Modifiers.NEW;
8080
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8082
if (current_container.Kind == MemberKind.Namespace)
8083
report.Error (1530, GetLocation (yyVals[0+yyTop]), "Keyword `new' is not allowed on namespace elements");
8087
#line 4849 "cs-parser.jay"
8089
yyVal = Modifiers.PUBLIC;
8090
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8094
#line 4854 "cs-parser.jay"
8096
yyVal = Modifiers.PROTECTED;
8097
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8101
#line 4859 "cs-parser.jay"
8103
yyVal = Modifiers.INTERNAL;
8104
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8108
#line 4864 "cs-parser.jay"
8110
yyVal = Modifiers.PRIVATE;
8111
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8115
#line 4869 "cs-parser.jay"
8117
yyVal = Modifiers.ABSTRACT;
8118
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8122
#line 4874 "cs-parser.jay"
8124
yyVal = Modifiers.SEALED;
8125
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8129
#line 4879 "cs-parser.jay"
8131
yyVal = Modifiers.STATIC;
8132
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8136
#line 4884 "cs-parser.jay"
8138
yyVal = Modifiers.READONLY;
8139
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8143
#line 4889 "cs-parser.jay"
8145
yyVal = Modifiers.VIRTUAL;
8146
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8150
#line 4894 "cs-parser.jay"
8152
yyVal = Modifiers.OVERRIDE;
8153
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8157
#line 4899 "cs-parser.jay"
8159
yyVal = Modifiers.EXTERN;
8160
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8164
#line 4904 "cs-parser.jay"
8166
yyVal = Modifiers.VOLATILE;
8167
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8171
#line 4909 "cs-parser.jay"
8173
yyVal = Modifiers.UNSAFE;
8174
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8175
if (!settings.Unsafe)
8176
Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
8180
#line 4916 "cs-parser.jay"
8182
yyVal = Modifiers.ASYNC;
8183
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8187
#line 4925 "cs-parser.jay"
8189
current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[0+yyTop]);
8190
lbag.AppendToMember (current_type, GetLocation (yyVals[-1+yyTop]));
8194
#line 4930 "cs-parser.jay"
8196
Error_SyntaxError (yyToken);
8198
current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[-1+yyTop]);
8202
#line 4947 "cs-parser.jay"
8204
var constraints = new List<Constraints> (1);
8205
constraints.Add ((Constraints) yyVals[0+yyTop]);
8206
yyVal = constraints;
8210
#line 4953 "cs-parser.jay"
8212
var constraints = (List<Constraints>) yyVals[-1+yyTop];
8213
Constraints new_constraint = (Constraints)yyVals[0+yyTop];
8215
foreach (Constraints c in constraints) {
8216
if (new_constraint.TypeParameter.Value == c.TypeParameter.Value) {
8217
report.Error (409, new_constraint.Location,
8218
"A constraint clause has already been specified for type parameter `{0}'",
8219
new_constraint.TypeParameter.Value);
8223
constraints.Add (new_constraint);
8224
yyVal = constraints;
8228
#line 4972 "cs-parser.jay"
8230
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8231
yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), (List<FullNamedExpression>) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
8232
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
8236
#line 4978 "cs-parser.jay"
8238
Error_SyntaxError (yyToken);
8240
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
8241
yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), null, GetLocation (yyVals[-2+yyTop]));
8245
#line 4988 "cs-parser.jay"
8247
var constraints = new List<FullNamedExpression> (1);
8248
constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
8249
yyVal = constraints;
8253
#line 4994 "cs-parser.jay"
8255
var constraints = (List<FullNamedExpression>) yyVals[-2+yyTop];
8256
var prev = constraints [constraints.Count - 1] as SpecialContraintExpr;
8257
if (prev != null && (prev.Constraint & SpecialConstraint.Constructor) != 0) {
8258
report.Error (401, GetLocation (yyVals[-1+yyTop]), "The `new()' constraint must be the last constraint specified");
8261
prev = yyVals[0+yyTop] as SpecialContraintExpr;
8263
if ((prev.Constraint & (SpecialConstraint.Class | SpecialConstraint.Struct)) != 0) {
8264
report.Error (449, prev.Location, "The `class' or `struct' constraint must be the first constraint specified");
8266
prev = constraints [0] as SpecialContraintExpr;
8267
if (prev != null && (prev.Constraint & SpecialConstraint.Struct) != 0) {
8268
report.Error (451, GetLocation (yyVals[0+yyTop]), "The `new()' constraint cannot be used with the `struct' constraint");
8273
constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
8274
lbag.AddLocation (constraints, GetLocation (yyVals[-1+yyTop]));
8275
yyVal = constraints;
8279
#line 5021 "cs-parser.jay"
8281
if (yyVals[0+yyTop] is ComposedCast)
8282
report.Error (706, GetLocation (yyVals[0+yyTop]), "Invalid constraint type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
8284
yyVal = yyVals[0+yyTop];
8288
#line 5028 "cs-parser.jay"
8290
yyVal = new SpecialContraintExpr (SpecialConstraint.Constructor, GetLocation (yyVals[-2+yyTop]));
8291
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8295
#line 5048 "cs-parser.jay"
8297
if (lang_version <= LanguageVersion.V_3)
8298
FeatureIsNotAvailable (lexer.Location, "generic type variance");
8300
yyVal = yyVals[0+yyTop];
8304
#line 5058 "cs-parser.jay"
8306
yyVal = Variance.Covariant;
8307
savedLocation = GetLocation (yyVals[0+yyTop]);
8311
#line 5063 "cs-parser.jay"
8313
yyVal = Variance.Contravariant;
8314
savedLocation = GetLocation (yyVals[0+yyTop]);
8318
#line 5084 "cs-parser.jay"
8320
++lexer.parsing_block;
8321
start_block (GetLocation (yyVals[0+yyTop]));
8325
#line 5096 "cs-parser.jay"
8327
--lexer.parsing_block;
8328
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8332
#line 5101 "cs-parser.jay"
8334
--lexer.parsing_block;
8335
yyVal = end_block (lexer.Location);
8339
#line 5110 "cs-parser.jay"
8341
++lexer.parsing_block;
8342
current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
8346
#line 5115 "cs-parser.jay"
8348
--lexer.parsing_block;
8349
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8353
#line 5119 "cs-parser.jay"
8355
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol '}', expected '{'");
8356
lexer.putback ('}');
8357
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8361
#line 5128 "cs-parser.jay"
8363
++lexer.parsing_block;
8364
current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
8368
#line 5133 "cs-parser.jay"
8370
--lexer.parsing_block;
8371
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8375
#line 5161 "cs-parser.jay"
8377
Error_SyntaxError (yyToken);
8378
var lt =(Tokenizer.LocatedToken) yyVals[-1+yyTop];
8379
var sn = new SimpleName (lt.Value, lt.Location);
8380
current_block.AddStatement(new StatementErrorExpression (sn));
8385
#line 5170 "cs-parser.jay"
8387
Error_SyntaxError (yyToken);
8392
#line 5234 "cs-parser.jay"
8394
report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
8399
#line 5239 "cs-parser.jay"
8401
report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
8406
#line 5244 "cs-parser.jay"
8408
Error_SyntaxError (yyToken);
8409
yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
8413
#line 5252 "cs-parser.jay"
8415
/* Uses lexer.Location because semicolon location is not kept in quick mode*/
8416
yyVal = new EmptyStatement (lexer.Location);
8420
#line 5260 "cs-parser.jay"
8422
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
8423
LabeledStatement labeled = new LabeledStatement (lt.Value, current_block, lt.Location);
8424
lbag.AddLocation (labeled, GetLocation (yyVals[0+yyTop]));
8425
current_block.AddLabel (labeled);
8426
current_block.AddStatement (labeled);
8430
#line 5273 "cs-parser.jay"
8432
if (yyVals[-1+yyTop] is VarExpr)
8433
yyVals[-1+yyTop] = new SimpleName ("var", ((VarExpr) yyVals[-1+yyTop]).Location);
8435
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
8439
#line 5289 "cs-parser.jay"
8441
/* Ok, the above "primary_expression" is there to get rid of*/
8442
/* both reduce/reduce and shift/reduces in the grammar, it should*/
8443
/* really just be "type_name". If you use type_name, a reduce/reduce*/
8444
/* creeps up. If you use namespace_or_type_name (which is all we need*/
8445
/* really) two shift/reduces appear.*/
8448
/* So the super-trick is that primary_expression*/
8449
/* can only be either a SimpleName or a MemberAccess. */
8450
/* The MemberAccess case arises when you have a fully qualified type-name like :*/
8451
/* Foo.Bar.Blah i;*/
8452
/* SimpleName is when you have*/
8455
Expression expr = (Expression) yyVals[-1+yyTop];
8456
if (yyVals[0+yyTop] == null) {
8457
SimpleName sn = expr as SimpleName;
8458
if (sn != null && sn.Name == "var")
8459
yyVal = new VarExpr (sn.Location);
8461
yyVal = yyVals[-1+yyTop];
8462
} else if (expr is ATypeNameExpression) {
8463
yyVal = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
8465
Error_ExpectingTypeName (expr);
8471
#line 5319 "cs-parser.jay"
8473
ATypeNameExpression expr = yyVals[-1+yyTop] as ATypeNameExpression;
8476
yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
8478
Error_ExpectingTypeName ((Expression)yyVals[-1+yyTop]);
8484
#line 5330 "cs-parser.jay"
8486
if (yyVals[0+yyTop] == null)
8487
yyVal = yyVals[-1+yyTop];
8489
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
8493
#line 5345 "cs-parser.jay"
8495
Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
8496
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
8500
#line 5354 "cs-parser.jay"
8502
((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
8503
yyVal = yyVals[-1+yyTop];
8507
#line 5377 "cs-parser.jay"
8509
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8510
var li = new LocalVariable (current_block, lt.Value, lt.Location);
8511
current_block.AddLocalName (li);
8512
current_variable = new BlockVariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
8516
#line 5384 "cs-parser.jay"
8518
yyVal = current_variable;
8519
current_variable = null;
8520
if (yyVals[-2+yyTop] != null)
8521
lbag.AddLocation (yyVal, PopLocation (), GetLocation (yyVals[0+yyTop]));
8523
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8527
#line 5393 "cs-parser.jay"
8529
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8530
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
8531
current_block.AddLocalName (li);
8532
current_variable = new BlockConstantDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
8536
#line 5400 "cs-parser.jay"
8538
if (current_variable.Initializer != null) {
8539
lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
8541
lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
8543
yyVal = current_variable;;
8544
current_variable = null;
8548
#line 5413 "cs-parser.jay"
8550
/* Redundant, but wont regress*/
8551
report.Error (1525, lexer.Location, "Unexpected symbol }");
8552
lexer.putback ('}');
8553
yyVal = yyVals[0+yyTop];
8557
#line 5424 "cs-parser.jay"
8559
current_variable.Initializer = (Expression) yyVals[0+yyTop];
8560
PushLocation (GetLocation (yyVals[-1+yyTop]));
8561
yyVal = current_variable;
8565
#line 5430 "cs-parser.jay"
8567
if (yyToken == Token.OPEN_BRACKET_EXPR) {
8568
report.Error (650, lexer.Location,
8569
"Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type");
8571
Error_SyntaxError (yyToken);
8576
#line 5448 "cs-parser.jay"
8578
foreach (var d in current_variable.Declarators) {
8579
if (d.Initializer == null)
8580
Error_MissingInitializer (d.Variable.Location);
8585
#line 5463 "cs-parser.jay"
8587
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8588
var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
8589
var d = new BlockVariableDeclaration.Declarator (li, null);
8590
current_variable.AddDeclarator (d);
8591
current_block.AddLocalName (li);
8592
lbag.AddLocation (d, GetLocation (yyVals[-1+yyTop]));
8596
#line 5472 "cs-parser.jay"
8598
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8599
var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
8600
var d = new BlockVariableDeclaration.Declarator (li, (Expression) yyVals[0+yyTop]);
8601
current_variable.AddDeclarator (d);
8602
current_block.AddLocalName (li);
8603
lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8607
#line 5488 "cs-parser.jay"
8609
savedLocation = GetLocation (yyVals[-1+yyTop]);
8610
current_variable.Initializer = (Expression) yyVals[0+yyTop];
8614
#line 5506 "cs-parser.jay"
8616
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
8617
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
8618
var d = new BlockVariableDeclaration.Declarator (li, (Expression) yyVals[0+yyTop]);
8619
current_variable.AddDeclarator (d);
8620
current_block.AddLocalName (li);
8621
lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8625
#line 5519 "cs-parser.jay"
8627
yyVal = new StackAlloc ((Expression) yyVals[-3+yyTop], (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
8628
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
8632
#line 5524 "cs-parser.jay"
8634
report.Error (1575, GetLocation (yyVals[-1+yyTop]), "A stackalloc expression requires [] after type");
8635
yyVal = new StackAlloc ((Expression) yyVals[0+yyTop], null, GetLocation (yyVals[-1+yyTop]));
8639
#line 5532 "cs-parser.jay"
8641
yyVal = yyVals[-1+yyTop];
8642
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8646
#line 5538 "cs-parser.jay"
8648
yyVal = yyVals[-1+yyTop];
8649
report.Error (1002, GetLocation (yyVals[0+yyTop]), "; expected");
8650
lexer.putback ('}');
8654
#line 5556 "cs-parser.jay"
8656
ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement;
8658
var expr = yyVals[0+yyTop] as Expression;
8659
expr.Error_InvalidExpressionStatement (report);
8660
yyVal = new StatementErrorExpression (expr);
8662
yyVal = new StatementExpression (s);
8667
#line 5570 "cs-parser.jay"
8669
Expression expr = (Expression) yyVals[0+yyTop];
8670
ExpressionStatement s;
8672
s = new OptionalAssign (new SimpleName ("$retval", lexer.Location), expr, lexer.Location);
8673
yyVal = new StatementExpression (s);
8677
#line 5578 "cs-parser.jay"
8679
Error_SyntaxError (yyToken);
8680
yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
8684
#line 5592 "cs-parser.jay"
8686
if (yyVals[0+yyTop] is EmptyStatement)
8687
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8689
yyVal = new If ((BooleanExpression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
8690
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8694
#line 5601 "cs-parser.jay"
8696
yyVal = new If ((BooleanExpression) yyVals[-4+yyTop], (Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop]));
8697
lbag.AddStatement (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8699
if (yyVals[-2+yyTop] is EmptyStatement)
8700
Warning_EmptyStatement (GetLocation (yyVals[-2+yyTop]));
8701
if (yyVals[0+yyTop] is EmptyStatement)
8702
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8706
#line 5611 "cs-parser.jay"
8708
Error_SyntaxError (yyToken);
8710
yyVal = new If ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8711
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8715
#line 5625 "cs-parser.jay"
8717
yyVal = new Switch ((Expression) yyVals[-5+yyTop], (ExplicitBlock) current_block.Explicit, GetLocation (yyVals[-7+yyTop]));
8718
end_block (GetLocation (yyVals[0+yyTop]));
8719
lbag.AddStatement (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
8723
#line 5631 "cs-parser.jay"
8725
Error_SyntaxError (yyToken);
8727
yyVal = new Switch ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8728
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8732
#line 5662 "cs-parser.jay"
8734
var label = (SwitchLabel) yyVals[0+yyTop];
8735
label.SectionStart = true;
8736
current_block.AddStatement (label);
8740
#line 5675 "cs-parser.jay"
8742
yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8743
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
8747
#line 5680 "cs-parser.jay"
8749
Error_SyntaxError (yyToken);
8750
yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
8754
#line 5699 "cs-parser.jay"
8756
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8757
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8759
yyVal = new While ((BooleanExpression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
8760
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
8764
#line 5707 "cs-parser.jay"
8766
Error_SyntaxError (yyToken);
8768
yyVal = new While ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
8769
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
8773
#line 5717 "cs-parser.jay"
8775
yyVal = new Do ((Statement) yyVals[-5+yyTop], (BooleanExpression) yyVals[-2+yyTop], GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-4+yyTop]));
8776
lbag.AddStatement (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
8780
#line 5722 "cs-parser.jay"
8782
Error_SyntaxError (yyToken);
8783
yyVal = new Do ((Statement) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), Location.Null);
8787
#line 5727 "cs-parser.jay"
8789
Error_SyntaxError (yyToken);
8791
yyVal = new Do ((Statement) yyVals[-4+yyTop], (BooleanExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]));
8792
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
8796
#line 5737 "cs-parser.jay"
8798
start_block (GetLocation (yyVals[0+yyTop]));
8799
current_block.IsCompilerGenerated = true;
8800
For f = new For (GetLocation (yyVals[-1+yyTop]));
8801
current_block.AddStatement (f);
8802
lbag.AddStatement (f, current_block.StartLocation);
8807
#line 5754 "cs-parser.jay"
8809
For f = (For) yyVals[-2+yyTop];
8810
f.Initializer = (Statement) yyVals[-1+yyTop];
8811
lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
8816
#line 5764 "cs-parser.jay"
8818
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
8819
For f = (For) yyVals[-2+yyTop];
8820
f.Initializer = (Statement) yyVals[-1+yyTop];
8821
lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
8822
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8826
#line 5775 "cs-parser.jay"
8828
For f = (For) yyVals[-2+yyTop];
8829
f.Condition = (BooleanExpression) yyVals[-1+yyTop];
8830
lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
8835
#line 5786 "cs-parser.jay"
8837
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
8838
For f = (For) yyVals[-2+yyTop];
8839
f.Condition = (BooleanExpression) yyVals[-1+yyTop];
8840
lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
8841
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8845
#line 5798 "cs-parser.jay"
8847
For f = (For) yyVals[-3+yyTop];
8848
f.Iterator = (Statement) yyVals[-2+yyTop];
8850
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8851
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8853
f.Statement = (Statement) yyVals[0+yyTop];
8854
lbag.AddLocation (f, GetLocation (yyVals[-1+yyTop]));
8856
yyVal = end_block (GetLocation (yyVals[-1+yyTop]));
8860
#line 5811 "cs-parser.jay"
8862
Error_SyntaxError (yyToken);
8863
yyVal = end_block (current_block.StartLocation);
8867
#line 5824 "cs-parser.jay"
8869
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
8870
var li = new LocalVariable (current_block, lt.Value, lt.Location);
8871
current_block.AddLocalName (li);
8872
current_variable = new BlockVariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
8876
#line 5831 "cs-parser.jay"
8878
yyVal = current_variable;
8879
if (yyVals[-1+yyTop] != null)
8880
lbag.AddLocation (current_variable, PopLocation ());
8882
current_variable = null;
8886
#line 5858 "cs-parser.jay"
8888
var sl = yyVals[-2+yyTop] as StatementList;
8890
sl = new StatementList ((Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop]);
8891
lbag.AddStatement (sl, GetLocation (yyVals[-1+yyTop]));
8893
sl.Add ((Statement) yyVals[0+yyTop]);
8894
lbag.AddLocation (sl, GetLocation (yyVals[-1+yyTop]));
8902
#line 5875 "cs-parser.jay"
8904
report.Error (230, GetLocation (yyVals[-3+yyTop]), "Type and identifier are both required in a foreach statement");
8906
start_block (GetLocation (yyVals[-2+yyTop]));
8907
current_block.IsCompilerGenerated = true;
8909
Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
8910
current_block.AddStatement (f);
8912
lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
8913
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8917
#line 5888 "cs-parser.jay"
8919
Error_SyntaxError (yyToken);
8921
start_block (GetLocation (yyVals[-3+yyTop]));
8922
current_block.IsCompilerGenerated = true;
8924
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
8925
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location);
8926
current_block.AddLocalName (li);
8928
Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
8929
current_block.AddStatement (f);
8931
lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
8932
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8936
#line 5905 "cs-parser.jay"
8938
start_block (GetLocation (yyVals[-5+yyTop]));
8939
current_block.IsCompilerGenerated = true;
8940
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
8941
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location);
8942
current_block.AddLocalName (li);
8947
#line 5914 "cs-parser.jay"
8949
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
8950
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
8952
Foreach f = new Foreach ((Expression) yyVals[-6+yyTop], (LocalVariable) yyVals[-1+yyTop], (Expression) yyVals[-3+yyTop], (Statement) yyVals[0+yyTop], current_block, GetLocation (yyVals[-8+yyTop]));
8953
lbag.AddStatement (f, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
8954
end_block (GetLocation (yyVals[-2+yyTop]));
8960
#line 5925 "cs-parser.jay"
8962
start_block (GetLocation (yyVals[-3+yyTop]));
8963
current_block.IsCompilerGenerated = true;
8964
var lt = yyVals[-1+yyTop] as Tokenizer.LocatedToken;
8965
var li = lt != null ? new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location) : null;
8967
Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
8968
current_block.AddStatement (f);
8970
lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
8971
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
8975
#line 5938 "cs-parser.jay"
8977
Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
8978
current_block.AddStatement (f);
8980
lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
8985
#line 5958 "cs-parser.jay"
8987
yyVal = new Break (GetLocation (yyVals[-1+yyTop]));
8988
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8992
#line 5966 "cs-parser.jay"
8994
yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
8995
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
8999
#line 5971 "cs-parser.jay"
9001
Error_SyntaxError (yyToken);
9002
yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
9006
#line 5979 "cs-parser.jay"
9008
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
9009
yyVal = new Goto (lt.Value, GetLocation (yyVals[-2+yyTop]));
9010
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
9014
#line 5985 "cs-parser.jay"
9016
yyVal = new GotoCase ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
9017
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
9021
#line 5990 "cs-parser.jay"
9023
yyVal = new GotoDefault (GetLocation (yyVals[-2+yyTop]));
9024
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
9028
#line 5998 "cs-parser.jay"
9030
yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
9031
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
9035
#line 6003 "cs-parser.jay"
9037
Error_SyntaxError (yyToken);
9038
yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
9042
#line 6008 "cs-parser.jay"
9044
Error_SyntaxError (yyToken);
9045
yyVal = new Return (null, GetLocation (yyVals[-1+yyTop]));
9049
#line 6016 "cs-parser.jay"
9051
yyVal = new Throw ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
9052
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
9056
#line 6021 "cs-parser.jay"
9058
Error_SyntaxError (yyToken);
9059
yyVal = new Throw (null, GetLocation (yyVals[-1+yyTop]));
9063
#line 6029 "cs-parser.jay"
9065
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
9066
string s = lt.Value;
9068
report.Error (1003, lt.Location, "; expected");
9069
} else if (yyVals[-1+yyTop] == null) {
9070
report.Error (1627, GetLocation (yyVals[0+yyTop]), "Expression expected after yield return");
9071
} else if (lang_version == LanguageVersion.ISO_1){
9072
FeatureIsNotAvailable (lt.Location, "iterators");
9075
current_block.Explicit.RegisterIteratorYield ();
9076
yyVal = new Yield ((Expression) yyVals[-1+yyTop], lt.Location);
9077
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
9081
#line 6045 "cs-parser.jay"
9083
Error_SyntaxError (yyToken);
9085
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
9086
string s = lt.Value;
9088
report.Error (1003, lt.Location, "; expected");
9089
} else if (yyVals[-1+yyTop] == null) {
9090
report.Error (1627, GetLocation (yyVals[0+yyTop]), "Expression expected after yield return");
9091
} else if (lang_version == LanguageVersion.ISO_1){
9092
FeatureIsNotAvailable (lt.Location, "iterators");
9095
current_block.Explicit.RegisterIteratorYield ();
9096
yyVal = new Yield ((Expression) yyVals[-1+yyTop], lt.Location);
9097
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
9101
#line 6063 "cs-parser.jay"
9103
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9104
string s = lt.Value;
9106
report.Error (1003, lt.Location, "; expected");
9107
} else if (lang_version == LanguageVersion.ISO_1){
9108
FeatureIsNotAvailable (lt.Location, "iterators");
9111
current_block.Explicit.RegisterIteratorYield ();
9112
yyVal = new YieldBreak (lt.Location);
9113
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
9117
#line 6089 "cs-parser.jay"
9119
yyVal = new TryFinally ((Statement) yyVals[-2+yyTop], (Block) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
9120
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
9124
#line 6094 "cs-parser.jay"
9126
yyVal = new TryFinally (new TryCatch ((Block) yyVals[-3+yyTop], (List<Catch>) yyVals[-2+yyTop], GetLocation (yyVals[-4+yyTop]), true), (Block) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
9127
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
9131
#line 6099 "cs-parser.jay"
9133
Error_SyntaxError (1524, yyToken);
9134
yyVal = new TryCatch ((Block) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), false);
9138
#line 6107 "cs-parser.jay"
9140
var l = new List<Catch> (2);
9142
l.Add ((Catch) yyVals[0+yyTop]);
9147
#line 6114 "cs-parser.jay"
9149
var l = (List<Catch>) yyVals[-1+yyTop];
9151
Catch c = (Catch) yyVals[0+yyTop];
9152
if (l [l.Count - 1].IsGeneral) {
9153
report.Error (1017, c.loc, "Try statement already has an empty catch block");
9161
#line 6138 "cs-parser.jay"
9163
start_block (GetLocation (yyVals[-3+yyTop]));
9164
var c = new Catch (current_block, GetLocation (yyVals[-4+yyTop]));
9165
c.TypeExpression = (FullNamedExpression) yyVals[-2+yyTop];
9167
if (yyVals[-1+yyTop] != null) {
9168
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
9169
c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
9170
current_block.AddLocalName (c.Variable);
9173
lbag.AddLocation (c, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
9178
#line 6157 "cs-parser.jay"
9180
if (yyToken == Token.CLOSE_PARENS) {
9181
report.Error (1015, lexer.Location,
9182
"A type that derives from `System.Exception', `object', or `string' expected");
9184
Error_SyntaxError (yyToken);
9187
yyVal = new Catch (null, GetLocation (yyVals[-2+yyTop]));
9191
#line 6168 "cs-parser.jay"
9193
Error_SyntaxError (yyToken);
9195
/* Required otherwise missing block could not be detected because*/
9196
/* start_block is run early*/
9197
var c = new Catch (null, GetLocation (yyVals[-5+yyTop]));
9198
c.TypeExpression = (FullNamedExpression) yyVals[-3+yyTop];
9200
if (yyVals[-2+yyTop] != null) {
9201
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9202
c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
9205
if (yyVals[-2+yyTop] != null) {
9206
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9207
c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
9210
lbag.AddLocation (c, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]));
9216
#line 6208 "cs-parser.jay"
9218
if (!settings.Unsafe)
9219
Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
9223
#line 6218 "cs-parser.jay"
9225
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
9226
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
9228
yyVal = new Lock ((Expression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
9229
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
9233
#line 6226 "cs-parser.jay"
9235
Error_SyntaxError (yyToken);
9237
yyVal = new Lock ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
9238
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
9242
#line 6236 "cs-parser.jay"
9244
start_block (GetLocation (yyVals[-2+yyTop]));
9246
current_block.IsCompilerGenerated = true;
9247
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
9248
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.FixedVariable | LocalVariable.Flags.Used, lt.Location);
9249
current_block.AddLocalName (li);
9250
current_variable = new Fixed.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
9254
#line 6246 "cs-parser.jay"
9256
yyVal = current_variable;
9257
current_variable = null;
9261
#line 6251 "cs-parser.jay"
9263
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
9264
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
9266
Fixed f = new Fixed ((Fixed.VariableDeclaration) yyVals[-1+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-9+yyTop]));
9267
current_block.AddStatement (f);
9268
lbag.AddStatement (f, GetLocation (yyVals[-8+yyTop]), GetLocation (yyVals[-2+yyTop]));
9269
yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
9273
#line 6264 "cs-parser.jay"
9275
start_block (GetLocation (yyVals[-2+yyTop]));
9277
current_block.IsCompilerGenerated = true;
9278
var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
9279
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.UsingVariable | LocalVariable.Flags.Used, lt.Location);
9280
current_block.AddLocalName (li);
9281
current_variable = new Using.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
9285
#line 6274 "cs-parser.jay"
9287
yyVal = current_variable;
9288
current_variable = null;
9292
#line 6279 "cs-parser.jay"
9294
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
9295
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
9297
Using u = new Using ((Using.VariableDeclaration) yyVals[-1+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-8+yyTop]));
9298
lbag.AddStatement (u, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-2+yyTop]));
9299
current_block.AddStatement (u);
9300
yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
9304
#line 6289 "cs-parser.jay"
9306
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
9307
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
9309
yyVal = new Using ((Expression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
9310
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
9314
#line 6297 "cs-parser.jay"
9316
Error_SyntaxError (yyToken);
9318
yyVal = new Using ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
9319
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
9323
#line 6308 "cs-parser.jay"
9325
/* It has to be here for the parent to safely restore artificial block*/
9326
Error_SyntaxError (yyToken);
9330
#line 6320 "cs-parser.jay"
9332
current_variable.Initializer = (Expression) yyVals[0+yyTop];
9333
lbag.AddLocation (current_variable, GetLocation (yyVals[-1+yyTop]));
9334
yyVal = current_variable;
9338
#line 6332 "cs-parser.jay"
9340
lexer.query_parsing = false;
9342
Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
9344
from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
9347
current_block.SetEndLocation (lexer.Location);
9348
current_block = current_block.Parent;
9352
#line 6344 "cs-parser.jay"
9354
Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
9356
from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
9359
current_block.SetEndLocation (lexer.Location);
9360
current_block = current_block.Parent;
9364
#line 6355 "cs-parser.jay"
9366
lexer.query_parsing = false;
9367
yyVal = yyVals[-1+yyTop];
9369
current_block.SetEndLocation (lexer.Location);
9370
current_block = current_block.Parent;
9374
#line 6362 "cs-parser.jay"
9376
yyVal = yyVals[-1+yyTop];
9377
current_block.SetEndLocation (lexer.Location);
9378
current_block = current_block.Parent;
9382
#line 6371 "cs-parser.jay"
9384
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9386
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9387
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
9388
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-3+yyTop]));
9389
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
9390
yyVal = new Linq.QueryExpression (start);
9394
#line 6381 "cs-parser.jay"
9396
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9398
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9399
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
9400
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-4+yyTop])) {
9401
IdentifierType = (FullNamedExpression)yyVals[-3+yyTop]
9403
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
9404
yyVal = new Linq.QueryExpression (start);
9408
#line 6396 "cs-parser.jay"
9410
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9412
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9413
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
9414
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-3+yyTop]));
9415
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
9416
yyVal = new Linq.QueryExpression (start);
9420
#line 6406 "cs-parser.jay"
9422
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9424
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9425
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
9426
var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-4+yyTop])) {
9427
IdentifierType = (FullNamedExpression)yyVals[-3+yyTop]
9429
lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
9430
yyVal = new Linq.QueryExpression (start);
9434
#line 6425 "cs-parser.jay"
9436
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
9437
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
9438
yyVal = new Linq.SelectMany ((Linq.QueryBlock)current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
9440
current_block.SetEndLocation (lexer.Location);
9441
current_block = current_block.Parent;
9442
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
9444
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
9448
#line 6441 "cs-parser.jay"
9450
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
9451
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
9453
yyVal = new Linq.SelectMany ((Linq.QueryBlock)current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop])) {
9454
IdentifierType = (FullNamedExpression)yyVals[-4+yyTop]
9457
current_block.SetEndLocation (lexer.Location);
9458
current_block = current_block.Parent;
9460
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
9462
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
9466
#line 6460 "cs-parser.jay"
9468
Linq.AQueryClause head = (Linq.AQueryClause)yyVals[-1+yyTop];
9470
if (yyVals[0+yyTop] != null)
9471
head.Next = (Linq.AQueryClause)yyVals[0+yyTop];
9473
if (yyVals[-2+yyTop] != null) {
9474
Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-2+yyTop];
9475
clause.Tail.Next = head;
9483
#line 6475 "cs-parser.jay"
9485
Linq.AQueryClause head = (Linq.AQueryClause)yyVals[0+yyTop];
9487
if (yyVals[-1+yyTop] != null) {
9488
Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-1+yyTop];
9489
clause.Tail.Next = head;
9497
#line 6488 "cs-parser.jay"
9499
report.Error (742, GetLocation (yyVals[0+yyTop]), "Unexpected symbol `{0}'. A query body must end with select or group clause", GetSymbolName (yyToken));
9500
yyVal = yyVals[-1+yyTop];
9504
#line 6493 "cs-parser.jay"
9506
Error_SyntaxError (yyToken);
9511
#line 6505 "cs-parser.jay"
9513
yyVal = new Linq.Select ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
9515
current_block.SetEndLocation (lexer.Location);
9516
current_block = current_block.Parent;
9520
#line 6512 "cs-parser.jay"
9522
if (linq_clause_blocks == null)
9523
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
9525
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9526
linq_clause_blocks.Push ((Linq.QueryBlock)current_block);
9530
#line 6520 "cs-parser.jay"
9532
current_block.SetEndLocation (lexer.Location);
9533
current_block = current_block.Parent;
9535
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9539
#line 6527 "cs-parser.jay"
9541
var obj = (object[]) yyVals[0+yyTop];
9543
yyVal = new Linq.GroupBy ((Linq.QueryBlock)current_block, (Expression)yyVals[-2+yyTop], linq_clause_blocks.Pop (), (Expression)obj[0], GetLocation (yyVals[-4+yyTop]));
9544
lbag.AddLocation (yyVal, (Location) obj[1]);
9546
current_block.SetEndLocation (lexer.Location);
9547
current_block = current_block.Parent;
9551
#line 6544 "cs-parser.jay"
9553
Error_SyntaxError (yyToken);
9554
yyVal = new object[2] { null, Location.Null };
9558
#line 6553 "cs-parser.jay"
9560
((Linq.AQueryClause)yyVals[-1+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
9561
yyVal = yyVals[-1+yyTop];
9565
#line 6573 "cs-parser.jay"
9567
var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
9568
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
9569
yyVal = new Linq.Let ((Linq.QueryBlock) current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
9570
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
9572
current_block.SetEndLocation (lexer.Location);
9573
current_block = current_block.Parent;
9575
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
9579
#line 6592 "cs-parser.jay"
9581
yyVal = new Linq.Where ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
9583
current_block.SetEndLocation (lexer.Location);
9584
current_block = current_block.Parent;
9588
#line 6602 "cs-parser.jay"
9590
if (linq_clause_blocks == null)
9591
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
9593
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9594
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
9598
#line 6610 "cs-parser.jay"
9600
current_block.SetEndLocation (lexer.Location);
9601
current_block = current_block.Parent;
9603
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9604
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
9608
#line 6618 "cs-parser.jay"
9610
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
9611
current_block.SetEndLocation (lexer.Location);
9612
current_block = current_block.Parent;
9614
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9618
#line 6626 "cs-parser.jay"
9620
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
9621
current_block.SetEndLocation (lexer.Location);
9623
var outer_selector = linq_clause_blocks.Pop ();
9624
var block = linq_clause_blocks.Pop ();
9626
var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];
9627
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
9628
Linq.RangeVariable into;
9630
if (yyVals[0+yyTop] == null) {
9632
yyVal = new Linq.Join (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, GetLocation (yyVals[-11+yyTop]));
9633
lbag.AddLocation (yyVal, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]));
9636
/* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
9638
var parent = block.Parent;
9639
while (parent is Linq.QueryBlock) {
9640
parent = parent.Parent;
9642
current_block.Parent = parent;
9644
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
9646
lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
9647
into = new Linq.RangeVariable (lt.Value, lt.Location);
9649
yyVal = new Linq.GroupJoin (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, into, GetLocation (yyVals[-11+yyTop]));
9650
lbag.AddLocation (yyVal, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), opt_intoStack.Pop ());
9653
current_block = block.Parent;
9654
((Linq.QueryBlock)current_block).AddRangeVariable (into);
9658
#line 6664 "cs-parser.jay"
9660
if (linq_clause_blocks == null)
9661
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
9663
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9664
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
9668
#line 6672 "cs-parser.jay"
9670
current_block.SetEndLocation (lexer.Location);
9671
current_block = current_block.Parent;
9673
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9674
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
9678
#line 6680 "cs-parser.jay"
9680
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
9681
current_block.SetEndLocation (lexer.Location);
9682
current_block = current_block.Parent;
9684
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9688
#line 6688 "cs-parser.jay"
9690
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
9691
current_block.SetEndLocation (lexer.Location);
9693
var outer_selector = linq_clause_blocks.Pop ();
9694
var block = linq_clause_blocks.Pop ();
9696
var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];
9697
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
9698
Linq.RangeVariable into;
9700
if (yyVals[0+yyTop] == null) {
9702
yyVal = new Linq.Join (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, GetLocation (yyVals[-12+yyTop])) {
9703
IdentifierType = (FullNamedExpression)yyVals[-11+yyTop]
9705
lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]));
9708
/* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
9710
var parent = block.Parent;
9711
while (parent is Linq.QueryBlock) {
9712
parent = parent.Parent;
9714
current_block.Parent = parent;
9716
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
9718
lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
9719
into = new Linq.RangeVariable (lt.Value, lt.Location); /* TODO:*/
9721
yyVal = new Linq.GroupJoin (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, into, GetLocation (yyVals[-12+yyTop])) {
9722
IdentifierType = (FullNamedExpression)yyVals[-11+yyTop]
9724
lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), opt_intoStack.Pop ());
9727
current_block = block.Parent;
9728
((Linq.QueryBlock)current_block).AddRangeVariable (into);
9732
#line 6734 "cs-parser.jay"
9734
opt_intoStack.Push (GetLocation (yyVals[-1+yyTop]));
9735
yyVal = yyVals[0+yyTop];
9739
#line 6742 "cs-parser.jay"
9741
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9742
lbag.AddLocation (current_block, GetLocation (yyVals[0+yyTop]));
9746
#line 6747 "cs-parser.jay"
9748
current_block.SetEndLocation (lexer.Location);
9749
current_block = current_block.Parent;
9751
yyVal = yyVals[0+yyTop];
9755
#line 6758 "cs-parser.jay"
9757
current_block.SetEndLocation (lexer.Location);
9758
current_block = current_block.Parent;
9760
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9764
#line 6765 "cs-parser.jay"
9766
((Linq.AQueryClause)yyVals[-3+yyTop]).Next = (Linq.AQueryClause)yyVals[0+yyTop];
9767
yyVal = yyVals[-3+yyTop];
9771
#line 6774 "cs-parser.jay"
9773
current_block.SetEndLocation (lexer.Location);
9774
current_block = current_block.Parent;
9776
current_block = new Linq.QueryBlock ((Linq.QueryBlock) current_block, lexer.Location);
9780
#line 6781 "cs-parser.jay"
9782
((Linq.AQueryClause)yyVals[-3+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
9783
yyVal = yyVals[-3+yyTop];
9787
#line 6793 "cs-parser.jay"
9789
yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9790
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9794
#line 6798 "cs-parser.jay"
9796
yyVal = new Linq.OrderByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9797
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9801
#line 6810 "cs-parser.jay"
9803
yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9804
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9808
#line 6815 "cs-parser.jay"
9810
yyVal = new Linq.ThenByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
9811
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
9815
#line 6825 "cs-parser.jay"
9817
/* query continuation block is not linked with query block but with block*/
9818
/* before. This means each query can use same range variable names for*/
9819
/* different identifiers.*/
9821
current_block.SetEndLocation (GetLocation (yyVals[-1+yyTop]));
9822
current_block = current_block.Parent;
9824
current_block = new Linq.QueryBlock (current_block, lexer.Location);
9826
if (linq_clause_blocks == null)
9827
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
9829
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
9833
#line 6841 "cs-parser.jay"
9835
var current_block = linq_clause_blocks.Pop ();
9836
var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
9837
var rv = new Linq.RangeVariable (lt.Value, lt.Location);
9838
yyVal = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, null, rv, GetLocation (yyVals[-3+yyTop])) {
9839
next = (Linq.AQueryClause)yyVals[0+yyTop]
9844
#line 6868 "cs-parser.jay"
9846
current_container = current_type = new Class (current_container, new MemberName ("<InteractiveExpressionClass>"), Modifiers.PUBLIC, null);
9848
/* (ref object retval)*/
9849
Parameter [] mpar = new Parameter [1];
9850
mpar [0] = new Parameter (new TypeExpression (compiler.BuiltinTypes.Object, Location.Null), "$retval", Parameter.Modifier.REF, null, Location.Null);
9852
ParametersCompiled pars = new ParametersCompiled (mpar);
9853
var mods = Modifiers.PUBLIC | Modifiers.STATIC;
9854
if (settings.Unsafe)
9855
mods |= Modifiers.UNSAFE;
9857
current_local_parameters = pars;
9858
Method method = new Method (
9860
new TypeExpression (compiler.BuiltinTypes.Void, Location.Null),
9862
new MemberName ("Host"),
9864
null /* attributes */);
9866
current_type.AddMember (method);
9868
oob_stack.Push (method);
9869
++lexer.parsing_block;
9870
start_block (lexer.Location);
9874
#line 6896 "cs-parser.jay"
9876
--lexer.parsing_block;
9877
Method method = (Method) oob_stack.Pop ();
9879
method.Block = (ToplevelBlock) end_block(lexer.Location);
9881
InteractiveResult = (Class) pop_current_class ();
9882
current_local_parameters = null;
9886
#line 6939 "cs-parser.jay"
9888
module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-1+yyTop];
9889
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
9894
#line 6945 "cs-parser.jay"
9896
module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-3+yyTop];
9897
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
9898
var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
9899
yyVal = new MemberName (lt.Value);
9903
#line 6960 "cs-parser.jay"
9905
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[-1+yyTop];
9906
yyVal = new MemberName ((MemberName) yyVals[-6+yyTop], MemberCache.IndexerNameAlias, Location.Null);
9910
#line 6965 "cs-parser.jay"
9912
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
9913
p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
9914
module.DocumentationBuilder.ParsedParameters = p;
9915
module.DocumentationBuilder.ParsedOperator = Operator.OpType.Explicit;
9920
#line 6973 "cs-parser.jay"
9922
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
9923
p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
9924
module.DocumentationBuilder.ParsedParameters = p;
9925
module.DocumentationBuilder.ParsedOperator = Operator.OpType.Implicit;
9930
#line 6981 "cs-parser.jay"
9932
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
9933
module.DocumentationBuilder.ParsedParameters = p;
9934
module.DocumentationBuilder.ParsedOperator = (Operator.OpType) yyVals[-1+yyTop];
9939
#line 7019 "cs-parser.jay"
9941
var parameters = new List<DocumentationParameter> ();
9942
parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
9947
#line 7025 "cs-parser.jay"
9949
var parameters = yyVals[-2+yyTop] as List<DocumentationParameter>;
9950
parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
9955
#line 7034 "cs-parser.jay"
9957
if (yyVals[-1+yyTop] != null)
9958
yyVal = new DocumentationParameter ((Parameter.Modifier) yyVals[-1+yyTop], (FullNamedExpression) yyVals[0+yyTop]);
9960
yyVal = new DocumentationParameter ((FullNamedExpression) yyVals[0+yyTop]);
9964
static readonly short [] yyLhs = { -1,
9965
0, 4, 0, 0, 1, 1, 1, 1, 2, 2,
9966
11, 11, 12, 12, 13, 13, 14, 15, 15, 15,
9967
19, 20, 17, 17, 22, 22, 22, 18, 18, 18,
9968
23, 23, 24, 24, 7, 7, 6, 6, 21, 21,
9969
8, 8, 25, 25, 25, 26, 26, 26, 26, 26,
9970
9, 9, 10, 10, 34, 32, 37, 33, 33, 33,
9971
33, 35, 35, 35, 36, 36, 41, 38, 39, 40,
9972
40, 42, 42, 42, 42, 42, 43, 43, 43, 47,
9973
44, 46, 49, 49, 49, 50, 50, 51, 51, 52,
9974
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
9975
52, 52, 67, 69, 71, 72, 73, 28, 28, 76,
9976
53, 53, 77, 77, 78, 78, 79, 81, 75, 75,
9977
80, 80, 86, 54, 90, 54, 54, 85, 93, 85,
9978
87, 87, 94, 94, 95, 96, 95, 91, 91, 97,
9979
97, 98, 99, 89, 89, 92, 92, 92, 102, 55,
9980
105, 106, 100, 107, 108, 109, 100, 100, 100, 101,
9981
101, 104, 104, 112, 112, 112, 112, 112, 112, 112,
9982
112, 112, 112, 113, 113, 116, 116, 116, 116, 119,
9983
116, 117, 117, 120, 120, 121, 121, 121, 114, 114,
9984
114, 122, 122, 122, 115, 124, 126, 127, 56, 129,
9985
130, 131, 58, 125, 125, 125, 125, 125, 135, 132,
9986
136, 133, 134, 134, 134, 137, 138, 139, 141, 29,
9987
29, 140, 140, 142, 142, 143, 143, 143, 143, 143,
9988
143, 143, 143, 143, 146, 59, 145, 145, 147, 147,
9989
150, 144, 144, 149, 149, 149, 149, 149, 149, 149,
9990
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
9991
149, 149, 149, 149, 149, 152, 151, 153, 151, 151,
9992
151, 60, 156, 158, 154, 155, 155, 157, 157, 162,
9993
160, 163, 160, 160, 160, 164, 61, 166, 57, 169,
9994
170, 57, 57, 165, 172, 165, 167, 167, 173, 173,
9995
174, 175, 174, 176, 171, 168, 168, 168, 168, 168,
9996
180, 177, 181, 178, 179, 179, 62, 63, 183, 185,
9997
186, 30, 182, 182, 182, 184, 184, 184, 187, 187,
9998
188, 189, 188, 188, 188, 190, 191, 192, 31, 193,
9999
193, 16, 16, 194, 194, 197, 196, 196, 196, 198,
10000
198, 200, 66, 123, 103, 103, 128, 128, 201, 201,
10001
201, 199, 199, 202, 202, 203, 203, 205, 205, 84,
10002
74, 74, 88, 88, 118, 118, 148, 148, 206, 206,
10003
206, 206, 206, 210, 210, 211, 209, 209, 209, 209,
10004
209, 209, 209, 212, 212, 212, 212, 212, 212, 212,
10005
212, 212, 213, 213, 213, 213, 213, 213, 213, 213,
10006
213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
10007
213, 213, 214, 214, 214, 215, 215, 215, 235, 235,
10008
236, 236, 237, 237, 217, 217, 234, 234, 234, 234,
10009
234, 234, 234, 234, 219, 219, 219, 239, 239, 240,
10010
240, 241, 241, 243, 243, 243, 244, 244, 244, 244,
10011
244, 244, 245, 245, 161, 161, 238, 238, 238, 238,
10012
238, 250, 250, 249, 249, 251, 251, 251, 251, 252,
10013
220, 220, 220, 248, 248, 253, 253, 255, 255, 221,
10014
222, 222, 223, 224, 225, 225, 216, 216, 216, 216,
10015
216, 260, 256, 226, 261, 261, 262, 262, 263, 263,
10016
264, 264, 264, 264, 257, 257, 207, 207, 259, 259,
10017
265, 265, 258, 258, 83, 83, 266, 266, 267, 227,
10018
268, 268, 268, 269, 269, 269, 269, 269, 270, 195,
10019
228, 228, 229, 229, 230, 230, 231, 272, 232, 273,
10020
232, 271, 271, 275, 274, 218, 276, 276, 276, 276,
10021
276, 276, 276, 276, 276, 277, 277, 277, 277, 277,
10022
277, 277, 277, 277, 277, 277, 277, 277, 278, 278,
10023
278, 278, 278, 278, 278, 279, 279, 279, 279, 279,
10024
279, 279, 279, 279, 280, 280, 280, 280, 280, 281,
10025
281, 281, 281, 281, 281, 281, 281, 281, 282, 282,
10026
282, 282, 282, 283, 283, 283, 284, 284, 284, 285,
10027
285, 285, 286, 286, 286, 287, 287, 287, 288, 288,
10028
289, 289, 289, 289, 289, 290, 290, 290, 290, 290,
10029
290, 290, 290, 290, 290, 290, 291, 291, 292, 292,
10030
292, 292, 293, 293, 295, 294, 294, 294, 254, 254,
10031
297, 296, 298, 296, 299, 296, 300, 301, 296, 302,
10032
303, 296, 45, 45, 246, 246, 246, 246, 233, 233,
10033
233, 82, 305, 306, 307, 308, 309, 27, 65, 65,
10034
64, 64, 110, 110, 310, 310, 310, 310, 310, 310,
10035
310, 310, 310, 310, 310, 310, 310, 310, 310, 68,
10036
68, 68, 70, 70, 311, 311, 312, 312, 313, 313,
10037
314, 314, 314, 314, 204, 204, 315, 315, 317, 111,
10038
318, 318, 319, 159, 159, 321, 320, 316, 316, 322,
10039
322, 323, 323, 323, 323, 323, 327, 327, 328, 328,
10040
328, 325, 325, 325, 325, 325, 325, 325, 325, 325,
10041
325, 325, 325, 325, 329, 329, 329, 329, 329, 329,
10042
329, 329, 329, 329, 329, 329, 329, 343, 343, 343,
10043
343, 330, 344, 326, 345, 345, 346, 346, 346, 346,
10044
346, 346, 208, 208, 347, 48, 48, 349, 324, 353,
10045
324, 351, 351, 348, 348, 348, 350, 350, 357, 357,
10046
356, 356, 358, 358, 352, 352, 354, 354, 359, 359,
10047
360, 355, 355, 355, 331, 331, 331, 342, 342, 361,
10048
362, 362, 332, 332, 363, 363, 363, 366, 364, 364,
10049
365, 365, 367, 367, 367, 368, 369, 369, 370, 370,
10050
370, 333, 333, 333, 333, 371, 371, 372, 372, 372,
10051
376, 373, 379, 375, 375, 382, 378, 378, 381, 381,
10052
377, 377, 385, 384, 384, 380, 380, 383, 383, 387,
10053
386, 386, 374, 374, 388, 374, 374, 374, 334, 334,
10054
334, 334, 334, 334, 389, 390, 390, 391, 391, 391,
10055
392, 392, 392, 393, 393, 394, 394, 394, 395, 395,
10056
335, 335, 335, 335, 396, 396, 398, 398, 397, 399,
10057
397, 397, 397, 336, 337, 400, 340, 338, 338, 402,
10058
403, 341, 405, 406, 339, 339, 339, 404, 404, 401,
10059
401, 304, 304, 304, 304, 407, 407, 409, 409, 411,
10060
410, 412, 410, 408, 408, 408, 408, 408, 416, 414,
10061
417, 419, 414, 418, 418, 413, 413, 420, 420, 420,
10062
420, 420, 425, 421, 426, 422, 427, 428, 429, 423,
10063
431, 432, 433, 423, 430, 430, 435, 424, 434, 438,
10064
434, 437, 440, 437, 436, 436, 436, 439, 439, 439,
10065
415, 441, 415, 3, 3, 442, 3, 3, 443, 443,
10066
247, 247, 242, 242, 5, 444, 444, 444, 444, 448,
10067
444, 444, 444, 444, 445, 445, 446, 449, 446, 447,
10068
447, 450, 450, 451,
10070
static readonly short [] yyLen = { 2,
10071
2, 0, 3, 1, 2, 4, 3, 1, 0, 1,
10072
1, 2, 4, 2, 1, 2, 1, 3, 5, 2,
10073
0, 0, 11, 3, 0, 1, 1, 1, 3, 1,
10074
0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
10075
1, 2, 1, 1, 2, 1, 1, 1, 1, 1,
10076
0, 1, 1, 2, 0, 3, 0, 6, 3, 2,
10077
1, 1, 1, 1, 1, 3, 0, 3, 1, 0,
10078
3, 0, 1, 1, 3, 3, 1, 1, 1, 0,
10079
4, 4, 0, 1, 1, 0, 1, 1, 2, 1,
10080
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10081
1, 1, 0, 0, 0, 0, 0, 16, 5, 0,
10082
9, 5, 0, 1, 1, 2, 3, 0, 3, 1,
10083
1, 1, 0, 8, 0, 9, 6, 0, 0, 3,
10084
0, 1, 1, 2, 2, 0, 5, 0, 1, 1,
10085
2, 3, 0, 4, 2, 1, 1, 1, 0, 3,
10086
0, 0, 10, 0, 0, 0, 12, 8, 5, 1,
10087
1, 0, 1, 1, 3, 3, 3, 5, 3, 5,
10088
1, 1, 1, 1, 3, 4, 6, 2, 4, 0,
10089
7, 0, 1, 1, 2, 1, 1, 1, 4, 6,
10090
4, 1, 2, 2, 1, 0, 0, 0, 10, 0,
10091
0, 0, 13, 1, 2, 1, 2, 1, 0, 5,
10092
0, 5, 1, 1, 1, 0, 0, 0, 0, 15,
10093
5, 0, 1, 1, 2, 1, 1, 1, 1, 1,
10094
1, 1, 1, 1, 0, 5, 1, 1, 1, 1,
10095
0, 7, 1, 1, 1, 1, 1, 1, 1, 1,
10096
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10097
1, 1, 1, 1, 1, 0, 7, 0, 7, 2,
10098
2, 2, 0, 0, 9, 1, 1, 0, 1, 0,
10099
6, 0, 6, 2, 1, 0, 8, 0, 9, 0,
10100
0, 10, 5, 0, 0, 3, 0, 1, 1, 2,
10101
2, 0, 5, 0, 2, 2, 2, 1, 1, 1,
10102
0, 5, 0, 5, 1, 1, 2, 4, 0, 0,
10103
0, 12, 0, 2, 2, 0, 1, 2, 1, 3,
10104
2, 0, 5, 3, 1, 0, 0, 0, 13, 0,
10105
1, 1, 3, 1, 4, 2, 0, 3, 2, 1,
10106
3, 0, 3, 1, 1, 3, 1, 2, 3, 4,
10107
4, 0, 3, 1, 3, 3, 1, 1, 1, 1,
10108
1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
10109
2, 2, 2, 1, 3, 1, 1, 1, 1, 1,
10110
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10111
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10112
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10113
1, 1, 2, 2, 1, 1, 1, 1, 1, 1,
10114
1, 1, 1, 1, 3, 3, 4, 4, 4, 3,
10115
3, 4, 3, 4, 4, 4, 3, 0, 1, 3,
10116
4, 0, 1, 1, 3, 2, 3, 3, 1, 2,
10117
3, 2, 1, 1, 0, 1, 1, 3, 3, 3,
10118
2, 1, 1, 1, 1, 2, 2, 4, 3, 1,
10119
4, 4, 3, 1, 3, 1, 3, 1, 1, 1,
10120
4, 3, 2, 2, 6, 3, 7, 4, 3, 7,
10121
3, 0, 2, 4, 1, 2, 0, 1, 1, 3,
10122
3, 1, 1, 1, 0, 1, 1, 2, 2, 3,
10123
1, 2, 0, 1, 2, 4, 1, 3, 0, 5,
10124
1, 1, 1, 2, 3, 3, 4, 4, 1, 2,
10125
4, 4, 4, 2, 4, 2, 4, 0, 4, 0,
10126
5, 0, 1, 0, 4, 4, 1, 2, 2, 4,
10127
2, 2, 2, 4, 2, 1, 2, 2, 2, 2,
10128
2, 2, 2, 2, 2, 2, 2, 2, 1, 3,
10129
3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
10130
3, 3, 3, 3, 1, 3, 3, 3, 3, 1,
10131
3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
10132
3, 3, 3, 1, 3, 3, 1, 3, 3, 1,
10133
3, 3, 1, 3, 3, 1, 3, 3, 1, 3,
10134
1, 5, 4, 5, 5, 3, 3, 3, 3, 3,
10135
3, 3, 3, 3, 3, 3, 1, 3, 3, 2,
10136
1, 1, 0, 1, 0, 2, 1, 1, 1, 1,
10137
0, 4, 0, 4, 0, 5, 0, 0, 7, 0,
10138
0, 8, 1, 1, 1, 1, 1, 1, 6, 4,
10139
4, 1, 1, 0, 0, 0, 0, 15, 0, 1,
10140
0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
10141
1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
10142
2, 3, 0, 1, 1, 2, 4, 3, 1, 3,
10143
1, 3, 1, 1, 0, 1, 1, 1, 0, 4,
10144
1, 1, 0, 4, 1, 0, 4, 0, 1, 1,
10145
2, 1, 1, 1, 2, 1, 1, 2, 1, 1,
10146
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10147
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10148
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10149
1, 1, 0, 4, 1, 2, 2, 2, 2, 2,
10150
2, 1, 1, 2, 1, 1, 1, 0, 6, 0,
10151
7, 1, 1, 0, 2, 1, 0, 1, 0, 1,
10152
1, 2, 2, 4, 0, 2, 0, 1, 1, 2,
10153
4, 1, 5, 2, 2, 2, 2, 2, 2, 1,
10154
1, 1, 1, 1, 5, 7, 4, 0, 8, 4,
10155
0, 1, 1, 2, 1, 2, 1, 2, 3, 3,
10156
1, 1, 1, 1, 1, 5, 4, 7, 3, 6,
10157
0, 4, 0, 4, 2, 0, 4, 2, 3, 1,
10158
0, 1, 0, 5, 1, 0, 1, 0, 1, 1,
10159
1, 3, 4, 5, 0, 9, 5, 4, 1, 1,
10160
1, 1, 1, 1, 2, 2, 2, 3, 4, 3,
10161
3, 3, 2, 3, 2, 4, 4, 3, 0, 1,
10162
3, 4, 5, 3, 1, 2, 0, 1, 2, 0,
10163
7, 3, 6, 2, 2, 0, 3, 5, 4, 0,
10164
0, 10, 0, 0, 9, 5, 4, 2, 1, 0,
10165
2, 2, 2, 2, 2, 4, 5, 4, 5, 0,
10166
5, 0, 6, 3, 2, 2, 2, 1, 0, 3,
10167
0, 0, 5, 2, 1, 1, 2, 1, 1, 1,
10168
1, 1, 0, 5, 0, 3, 0, 0, 0, 12,
10169
0, 0, 0, 13, 0, 2, 0, 3, 1, 0,
10170
4, 1, 0, 4, 1, 2, 2, 1, 2, 2,
10171
0, 0, 4, 2, 3, 0, 4, 2, 2, 3,
10172
0, 1, 1, 1, 2, 2, 2, 4, 3, 0,
10173
7, 4, 4, 3, 1, 3, 0, 0, 4, 0,
10176
static readonly short [] yyDefRed = { 0,
10177
8, 0, 0, 0, 0, 0, 0, 0, 2, 4,
10178
0, 0, 11, 14, 0, 1004, 0, 0, 1008, 0,
10179
0, 15, 17, 389, 395, 402, 390, 392, 0, 391,
10180
0, 398, 400, 387, 0, 394, 396, 388, 399, 401,
10181
397, 352, 1025, 0, 393, 1015, 0, 10, 1, 0,
10182
0, 0, 12, 0, 832, 0, 0, 0, 0, 0,
10183
0, 0, 0, 430, 0, 0, 0, 0, 0, 0,
10184
0, 428, 0, 0, 0, 490, 0, 429, 0, 529,
10185
0, 926, 0, 0, 0, 678, 0, 0, 0, 0,
10186
0, 0, 0, 729, 0, 782, 0, 0, 0, 0,
10187
0, 0, 0, 0, 427, 0, 667, 0, 831, 0,
10188
765, 0, 0, 0, 0, 404, 405, 406, 407, 408,
10189
409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
10190
419, 420, 421, 422, 425, 426, 674, 566, 0, 0,
10191
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10192
675, 673, 676, 677, 749, 751, 0, 747, 750, 766,
10193
768, 769, 770, 771, 772, 773, 774, 775, 776, 777,
10194
767, 0, 0, 0, 833, 834, 852, 853, 854, 855,
10195
889, 890, 891, 892, 893, 894, 0, 0, 0, 20,
10196
0, 0, 342, 0, 344, 1012, 16, 1005, 0, 0,
10197
249, 248, 245, 250, 251, 244, 263, 262, 255, 256,
10198
252, 254, 253, 257, 246, 247, 258, 259, 265, 264,
10199
260, 261, 0, 0, 1028, 0, 1017, 0, 1016, 3,
10200
55, 0, 0, 0, 44, 41, 43, 46, 47, 48,
10201
49, 50, 53, 13, 0, 0, 0, 895, 544, 431,
10202
432, 924, 0, 0, 0, 0, 0, 0, 0, 897,
10203
896, 0, 554, 548, 553, 781, 830, 752, 779, 778,
10204
780, 753, 754, 755, 756, 757, 758, 759, 760, 761,
10205
762, 763, 764, 0, 0, 0, 861, 0, 0, 0,
10206
797, 796, 0, 0, 0, 0, 0, 0, 0, 0,
10207
903, 0, 0, 0, 0, 403, 0, 0, 0, 905,
10208
910, 0, 0, 0, 546, 925, 0, 0, 0, 795,
10209
791, 0, 0, 0, 0, 0, 0, 0, 371, 0,
10210
0, 0, 0, 0, 0, 0, 0, 670, 0, 565,
10211
663, 0, 561, 0, 0, 563, 559, 573, 567, 574,
10212
568, 562, 558, 578, 572, 577, 571, 575, 569, 576,
10213
570, 661, 540, 0, 424, 423, 0, 0, 0, 0,
10214
0, 783, 0, 341, 0, 789, 790, 0, 493, 494,
10215
0, 0, 0, 787, 788, 0, 0, 0, 0, 0,
10216
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10217
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10218
0, 0, 0, 0, 0, 0, 0, 0, 1007, 748,
10219
798, 786, 0, 828, 829, 958, 975, 0, 0, 959,
10220
961, 0, 987, 944, 942, 968, 0, 0, 966, 969,
10221
970, 971, 972, 945, 943, 0, 0, 0, 346, 0,
10222
18, 0, 0, 0, 1024, 0, 353, 0, 0, 0,
10223
1026, 0, 0, 42, 700, 706, 698, 0, 695, 705,
10224
699, 697, 696, 703, 701, 702, 708, 704, 707, 709,
10225
0, 0, 693, 45, 54, 492, 0, 488, 489, 0,
10226
0, 486, 0, 800, 0, 0, 0, 859, 0, 827,
10227
825, 826, 0, 0, 0, 682, 0, 900, 898, 683,
10228
0, 0, 514, 0, 0, 0, 0, 505, 0, 509,
10229
519, 521, 0, 501, 0, 0, 0, 0, 0, 496,
10230
0, 499, 0, 503, 373, 902, 901, 0, 0, 904,
10231
914, 0, 0, 0, 915, 0, 0, 927, 0, 0,
10232
794, 0, 383, 379, 380, 0, 0, 378, 381, 382,
10233
0, 0, 0, 579, 0, 0, 550, 0, 665, 0,
10234
746, 0, 0, 0, 740, 742, 743, 744, 435, 436,
10235
0, 349, 350, 0, 187, 186, 188, 0, 652, 0,
10236
0, 0, 375, 0, 647, 0, 0, 908, 0, 0,
10237
0, 440, 0, 443, 0, 0, 441, 0, 0, 483,
10238
0, 447, 0, 0, 0, 0, 472, 475, 0, 0,
10239
467, 474, 473, 636, 637, 638, 639, 640, 641, 642,
10240
643, 644, 646, 645, 583, 580, 585, 582, 584, 581,
10241
593, 589, 594, 590, 591, 0, 592, 0, 598, 0,
10242
599, 0, 605, 0, 606, 0, 607, 0, 608, 0,
10243
612, 0, 613, 0, 616, 0, 619, 0, 622, 0,
10244
625, 0, 628, 0, 630, 0, 0, 518, 0, 0,
10245
0, 0, 0, 0, 0, 0, 0, 957, 956, 0,
10246
967, 0, 955, 0, 0, 343, 1022, 1023, 367, 0,
10247
0, 0, 364, 0, 0, 184, 0, 0, 1032, 1018,
10248
1020, 61, 63, 64, 0, 0, 56, 0, 0, 65,
10249
67, 30, 28, 0, 0, 0, 690, 0, 694, 439,
10250
0, 491, 0, 543, 0, 556, 173, 195, 0, 0,
10251
0, 163, 0, 0, 0, 174, 549, 0, 930, 0,
10252
881, 862, 0, 872, 0, 883, 0, 899, 837, 0,
10253
929, 0, 0, 504, 0, 520, 522, 0, 0, 0,
10254
459, 0, 0, 454, 0, 0, 660, 659, 0, 484,
10255
524, 498, 0, 0, 148, 525, 146, 147, 527, 0,
10256
542, 541, 840, 0, 919, 0, 912, 0, 916, 533,
10257
0, 0, 0, 368, 0, 531, 0, 0, 545, 937,
10258
0, 933, 857, 0, 948, 0, 946, 0, 0, 680,
10259
681, 0, 0, 0, 658, 657, 664, 0, 745, 731,
10260
732, 730, 741, 662, 0, 348, 650, 0, 0, 0,
10261
564, 560, 907, 906, 784, 444, 438, 442, 437, 547,
10262
482, 481, 480, 477, 476, 0, 471, 433, 434, 445,
10263
446, 0, 633, 0, 806, 0, 0, 976, 950, 0,
10264
977, 0, 960, 962, 973, 0, 988, 0, 954, 1002,
10265
19, 345, 728, 727, 0, 726, 0, 363, 1034, 185,
10266
1029, 0, 0, 60, 57, 0, 0, 0, 0, 0,
10267
0, 370, 0, 684, 0, 0, 85, 84, 0, 487,
10268
0, 0, 0, 0, 0, 178, 555, 0, 0, 0,
10269
0, 0, 873, 865, 863, 0, 884, 0, 0, 928,
10270
511, 510, 0, 462, 0, 0, 1013, 1014, 450, 456,
10271
0, 460, 0, 0, 0, 0, 0, 0, 838, 922,
10272
0, 913, 0, 539, 534, 0, 0, 530, 0, 936,
10273
0, 856, 949, 947, 0, 551, 0, 666, 656, 351,
10274
649, 648, 668, 479, 0, 470, 469, 468, 634, 635,
10275
632, 0, 822, 805, 0, 0, 0, 811, 0, 952,
10276
0, 981, 0, 0, 996, 997, 990, 0, 366, 365,
10277
1033, 0, 0, 66, 59, 0, 68, 29, 22, 0,
10278
0, 319, 0, 221, 0, 109, 0, 82, 816, 121,
10279
122, 0, 0, 0, 819, 193, 194, 0, 0, 0,
10280
0, 166, 175, 167, 169, 860, 0, 0, 0, 0,
10281
0, 882, 0, 0, 463, 464, 458, 461, 457, 451,
10282
455, 0, 516, 0, 485, 495, 449, 528, 526, 0,
10283
918, 0, 0, 0, 535, 0, 939, 0, 0, 679,
10284
671, 0, 478, 0, 0, 803, 802, 799, 812, 951,
10285
0, 0, 0, 965, 0, 963, 974, 0, 1003, 1021,
10286
0, 79, 0, 0, 73, 74, 77, 78, 0, 336,
10287
325, 324, 0, 685, 217, 104, 0, 801, 820, 179,
10288
0, 191, 0, 0, 0, 858, 941, 0, 0, 0,
10289
0, 864, 0, 885, 836, 500, 497, 845, 0, 851,
10290
0, 0, 843, 0, 847, 0, 538, 537, 938, 934,
10291
0, 669, 0, 0, 953, 978, 0, 964, 0, 0,
10292
992, 0, 80, 71, 0, 0, 0, 320, 0, 0,
10293
0, 0, 0, 180, 0, 170, 168, 931, 874, 868,
10294
866, 0, 0, 839, 844, 0, 848, 923, 0, 0,
10295
672, 0, 814, 0, 982, 999, 1000, 993, 58, 0,
10296
75, 76, 0, 0, 0, 0, 0, 0, 0, 821,
10297
177, 0, 190, 0, 0, 886, 850, 849, 736, 921,
10298
935, 823, 0, 0, 0, 81, 0, 0, 337, 0,
10299
0, 335, 321, 0, 329, 386, 0, 384, 0, 686,
10300
0, 715, 218, 105, 181, 932, 870, 867, 0, 0,
10301
879, 0, 979, 0, 994, 0, 0, 0, 317, 0,
10302
0, 712, 0, 0, 0, 716, 0, 0, 0, 0,
10303
0, 983, 27, 26, 23, 338, 334, 0, 0, 330,
10304
385, 718, 0, 0, 0, 106, 869, 737, 0, 0,
10305
0, 0, 32, 322, 723, 0, 724, 721, 0, 719,
10306
102, 0, 99, 0, 0, 88, 90, 91, 92, 93,
10307
94, 95, 96, 97, 98, 100, 101, 149, 0, 0,
10308
234, 226, 227, 228, 229, 230, 231, 232, 233, 0,
10309
0, 224, 0, 0, 980, 0, 339, 333, 0, 0,
10310
0, 687, 89, 0, 733, 735, 277, 272, 276, 0,
10311
219, 225, 0, 986, 984, 722, 720, 0, 0, 0,
10312
0, 0, 0, 0, 286, 0, 0, 235, 0, 0,
10313
243, 0, 161, 150, 160, 0, 0, 0, 107, 0,
10314
0, 271, 0, 0, 270, 0, 154, 0, 0, 357,
10315
318, 0, 355, 0, 0, 196, 0, 0, 0, 0,
10316
0, 688, 0, 220, 0, 112, 110, 293, 0, 354,
10317
0, 0, 0, 0, 125, 0, 0, 0, 0, 0,
10318
0, 159, 151, 0, 0, 200, 0, 358, 0, 238,
10319
237, 236, 0, 734, 108, 0, 290, 0, 268, 127,
10320
0, 266, 0, 0, 0, 129, 0, 359, 0, 0,
10321
197, 0, 0, 0, 356, 241, 120, 118, 0, 0,
10322
295, 0, 0, 0, 0, 0, 155, 0, 274, 0,
10323
0, 0, 0, 133, 0, 0, 0, 0, 360, 361,
10324
0, 0, 0, 0, 0, 115, 310, 0, 291, 0,
10325
0, 304, 0, 0, 0, 299, 0, 145, 0, 0,
10326
0, 0, 140, 0, 0, 287, 0, 130, 0, 124,
10327
134, 152, 158, 208, 0, 198, 0, 0, 201, 0,
10328
119, 0, 111, 116, 0, 0, 0, 306, 0, 307,
10329
296, 0, 0, 289, 300, 269, 0, 0, 126, 141,
10330
267, 0, 285, 0, 275, 279, 136, 0, 0, 0,
10331
205, 207, 0, 242, 117, 311, 313, 292, 0, 0,
10332
305, 302, 144, 142, 156, 284, 0, 0, 0, 153,
10333
209, 211, 199, 0, 0, 0, 304, 0, 280, 282,
10334
137, 0, 0, 202, 315, 316, 312, 314, 303, 157,
10335
0, 0, 215, 214, 213, 210, 212, 0, 0, 0,
10338
protected static readonly short [] yyDgoto = { 7,
10339
8, 49, 9, 50, 10, 11, 51, 232, 739, 701,
10340
12, 13, 52, 22, 23, 326, 235, 724, 900, 1099,
10341
1218, 1265, 1575, 897, 236, 237, 238, 239, 240, 241,
10342
242, 243, 717, 462, 718, 719, 1003, 720, 721, 1007,
10343
898, 1094, 1095, 1096, 267, 618, 1190, 110, 909, 1294,
10344
1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304,
10345
1305, 1306, 1307, 481, 728, 1383, 1017, 1197, 1161, 1230,
10346
1258, 1323, 1395, 1226, 1449, 1426, 1474, 1475, 1476, 1019,
10347
1472, 1020, 788, 901, 1437, 1410, 1462, 534, 1455, 1431,
10348
1491, 983, 1460, 1463, 1464, 1559, 1492, 1493, 1489, 1308,
10349
1364, 1334, 1384, 741, 1439, 1538, 1407, 1495, 1568, 482,
10350
268, 742, 743, 744, 745, 746, 704, 591, 1202, 705,
10351
706, 915, 1386, 1415, 1506, 1467, 1540, 1387, 1442, 1543,
10352
1588, 1507, 1508, 1586, 1572, 1573, 1015, 1160, 1257, 1320,
10353
1368, 1321, 1322, 1358, 1422, 1390, 1359, 329, 223, 1471,
10354
1361, 1456, 1453, 1309, 1338, 1379, 1535, 1497, 1339, 1536,
10355
619, 1581, 1582, 1378, 1452, 1428, 1484, 1479, 1450, 1516,
10356
1521, 1482, 1485, 1486, 1567, 1522, 1480, 1481, 1577, 1565,
10357
1566, 1012, 1103, 1223, 1195, 1250, 1224, 1225, 1268, 1157,
10358
1247, 1281, 554, 193, 112, 366, 195, 584, 457, 224,
10359
1402, 702, 703, 885, 902, 330, 422, 553, 305, 1227,
10360
1228, 45, 114, 306, 116, 117, 118, 119, 120, 121,
10361
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
10362
132, 133, 134, 135, 136, 253, 860, 784, 1056, 1046,
10363
772, 939, 773, 774, 1047, 137, 198, 779, 621, 622,
10364
623, 854, 491, 780, 492, 298, 1054, 782, 423, 300,
10365
517, 518, 519, 520, 523, 790, 314, 807, 808, 955,
10366
264, 497, 822, 265, 496, 138, 139, 140, 141, 142,
10367
143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
10368
594, 595, 596, 827, 828, 153, 581, 570, 824, 367,
10369
1072, 568, 1141, 154, 511, 1013, 1159, 1255, 1362, 483,
10370
1231, 1232, 1289, 1290, 886, 573, 344, 832, 1366, 1210,
10371
1242, 574, 575, 269, 270, 271, 157, 158, 159, 272,
10372
273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
10373
283, 171, 284, 601, 172, 173, 322, 867, 677, 986,
10374
1078, 912, 735, 1023, 984, 987, 1119, 988, 1024, 1025,
10375
285, 174, 175, 176, 1131, 1060, 1132, 1133, 1134, 1135,
10376
177, 178, 179, 180, 752, 504, 753, 1122, 1041, 1123,
10377
1238, 1205, 1239, 754, 1040, 755, 1241, 1172, 181, 182,
10378
183, 184, 185, 186, 307, 544, 545, 1062, 1179, 318,
10379
1039, 922, 1204, 1069, 961, 1180, 187, 435, 188, 436,
10380
989, 1081, 437, 438, 693, 684, 685, 1086, 993, 439,
10381
440, 441, 442, 443, 994, 679, 991, 1184, 1261, 1325,
10382
1083, 1214, 1280, 877, 687, 878, 1150, 1088, 1151, 1215,
10383
998, 17, 19, 46, 47, 227, 707, 893, 458, 708,
10386
protected static readonly short [] yySindex = { -69,
10387
0, -197, 55, -20, 16, 1599, 0, 135, 0, 0,
10388
16, -20, 0, 0, 129, 0, 6984, 16, 0, -180,
10389
-262, 0, 0, 0, 0, 0, 0, 0, 101, 0,
10390
296, 0, 0, 0, 999, 0, 0, 0, 0, 0,
10391
0, 0, 0, 572, 0, 0, 662, 0, 0, 135,
10392
48, 16, 0, 230, 0, 242, 251, -174,16437, -162,
10393
278, 313, 7141, 0, 278, 278, 278, -171, 278, 278,
10394
-42, 0, 8985, 278, 278, 0, 9142, 0, 374, 0,
10395
-156, 0, 278, 365, 278, 0,16981,16981, 412, 278,
10396
278, 17,10058, 0,15540, 0,10189,10320,10451,10582,
10397
10713,10844,10975,11106, 0, 336, 0, 7943, 0, 174,
10398
0, 218, -244, 939, -247, 0, 0, 0, 0, 0,
10399
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10400
0, 0, 0, 0, 0, 0, 0, 0, 1167, 861,
10401
208, 705, 664, 897, 420, 428, 442, 437, 451, 492,
10402
0, 0, 0, 0, 0, 0, 3497, 0, 0, 0,
10403
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10404
0, 218, 557, 219, 0, 0, 0, 0, 0, 0,
10405
0, 0, 0, 0, 0, 0, 226, 362, 48, 0,
10406
540, 706, 0, 535, 0, 0, 0, 0, 7943, 7943,
10407
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10408
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10409
0, 0, 604, 568, 0, 573, 0, -5, 0, 0,
10410
0, 48,17517, 859, 0, 0, 0, 0, 0, 0,
10411
0, 0, 0, 0, 742, 218,15676, 0, 0, 0,
10412
0, 0,15540, -163, -153, 736, -282, 939, 218, 0,
10413
0, 7943, 0, 0, 0, 0, 0, 0, 0, 0,
10414
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10415
0, 0, 0, -191, -252,16437, 0, 7943,15540, 672,
10416
0, 0, 714,15540,15540,13857, 741, -165, 762, 8100,
10417
0,10058, 336, 886, 788, 0, 807, 7943,15540, 0,
10418
0, 817, 656, 278, 0, 0,15540, 374,15132, 0,
10419
0, 365,15540, 365, 82, 467, 877, 218, 0, 557,
10420
-247, 906, 218,15540,15540,15540, 313, 0, 881, 0,
10421
0,11237, 0, 7298, -277, 0, 0, 0, 0, 0,
10422
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10423
0, 0, 0, 3903, 0, 0,16834, 82, 860, 863,
10424
15540, 0, 821, 0, 139, 0, 0, 146, 0, 0,
10425
834, 9299, 7612, 0, 0,15540,15540,15540,15540,15540,
10426
15540,15540,15540,15540,15540,15540,11368,11499,11630, 4062,
10427
4380,11761,11892,12023,12154,12285,12416,12547,12678,12809,
10428
12940,13071,13202,13333,13464,13595,16220,15540, 0, 0,
10429
0, 0, 557, 0, 0, 0, 0,16981,16981, 0,
10430
0, 218, 0, 0, 0, 0, 384, 889, 0, 0,
10431
0, 0, 0, 0, 0, 48, 859, 837, 0, 855,
10432
0, 821, 604, 604, 0, -53, 0, 590, 604, 891,
10433
0, -195,17517, 0, 0, 0, 0, -150, 0, 0,
10434
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10435
261,17547, 0, 0, 0, 0, 821, 0, 0, 901,
10436
751, 0, 907, 0, 911, 222, 374, 0, 278, 0,
10437
0, 0, 218,15132, -179, 0, 940, 0, 0, 0,
10438
54, 103, 0, -282, 944, 0, 919, 0, 947, 0,
10439
0, 0, 760, 0, 8355, 766, 9456, 762,14996, 0,
10440
7769, 0, 365, 0, 0, 0, 0, 143, 147, 0,
10441
0, 293, 374, 649, 0, 828, 986, 0, 148, 218,
10442
0, 151, 0, 0, 0,15540, 1053, 0, 0, 0,
10443
15540, 1072, 994, 0, 998, 1018, 0,16834, 0, 75,
10444
0, -172, 43, 7298, 0, 0, 0, 0, 0, 0,
10445
75, 0, 0, -272, 0, 0, 0, 365, 0, 82,
10446
218, 8531, 0, 1029, 0, 1033,13726, 0, 1150, 1031,
10447
7298, 0, 980, 0, 821, 984, 0, 821, 821, 0,
10448
137, 0,15540,15540, 1040, 1157, 0, 0, 108, -78,
10449
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10450
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10451
0, 0, 0, 0, 0, 861, 0, 861, 0, 208,
10452
0, 208, 0, 705, 0, 705, 0, 705, 0, 705,
10453
0, 664, 0, 664, 0, 897, 0, 420, 0, 428,
10454
0, 442, 0, 437, 0, 68, -141, 0, 9456, 1122,
10455
218, 1123, 218, 9456, 9456, 1038,15540, 0, 0, 889,
10456
0, 218, 0, 780, 821, 0, 0, 0, 0, 630,
10457
48, 306, 0, 8531, 590, 0, 1048, 1047, 0, 0,
10458
0, 0, 0, 0, -80, 1049, 0, 1050, 1054, 0,
10459
0, 0, 0, 1051, 8688, 1005, 0, 466, 0, 0,
10460
737, 0,15676, 0, 1046, 0, 0, 0, 686, 107,
10461
1057, 0, 1056, 1058, 1061, 0, 0,15540, 0, 218,
10462
0, 0, 309, 0, 1062, 0, 469, 0, 0, 7141,
10463
0, 7141, 8514, 0,13857, 0, 0, 9927, 8671, 329,
10464
0, 175, 91, 0, 1002, 1014, 0, 0, 800, 0,
10465
0, 0, 1069, 1068, 0, 0, 0, 0, 0, 1070,
10466
0, 0, 0, 1079, 0, 4539, 0, 374, 0, 0,
10467
365, 560, 1028, 0, 281, 0, 1078, 1080, 0, 0,
10468
7141, 0, 0, 7141, 0,15540, 0,15540, 7943, 0,
10469
0, 374, 1082, 75, 0, 0, 0,15540, 0, 0,
10470
0, 0, 0, 0, 7943, 0, 0, 218,16834, 1108,
10471
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10472
0, 0, 0, 0, 0,14860, 0, 0, 0, 0,
10473
0, 7926, 0, 8828, 0, 8083, 1084, 0, 0, 1158,
10474
0, 1162, 0, 0, 0, 946, 0, 1085, 0, 0,
10475
0, 0, 0, 0, 1042, 0, -53, 0, 0, 0,
10476
0, 590, 590, 0, 0, 837, 1092, 1093, 1045, 1098,
10477
1005, 0, 1094, 0, 1212, 1214, 0, 0,15540, 0,
10478
15268, 1097, 686, 8531, 7943, 0, 0, 152, 1217, 1218,
10479
154, 1095, 0, 0, 0,15540, 0,15540, 1195, 0,
10480
0, 0,15404, 0, 635,15404, 0, 0, 0, 0,
10481
8219, 0, 1221, 557, 9456, 1111, 8514, 1112, 0, 0,
10482
218, 0, 308, 0, 0, 821, 1028, 0, 218, 0,
10483
-121, 0, 0, 0, 1107, 0, 1139, 0, 0, 0,
10484
0, 0, 0, 0, 682, 0, 0, 0, 0, 0,
10485
0, 8100, 0, 0, 218, -246, 1084, 0, 9456, 0,
10486
9456, 0, 90, 9456, 0, 0, 0, 728, 0, 0,
10487
0, 1113, 837, 0, 0, 9613, 0, 0, 0, 1114,
10488
4704, 0, 1005, 0, 1005, 0, 1005, 0, 0, 0,
10489
0, 218, 1110, 1097, 0, 0, 0, -167, -145, 1115,
10490
1116, 0, 0, 0, 0, 0, 1117, 8514, 1084, -141,
10491
15540, 0, 1125, 7141, 0, 0, 0, 0, 0, 0,
10492
0, 1118, 0, 762, 0, 0, 0, 0, 0, -189,
10493
0, 1126, 821, 1028, 0, 1028, 0, 1084, 1128, 0,
10494
0, 75, 0, 1064, 1103, 0, 0, 0, 0, 0,
10495
9456, 1147, 9456, 0, 9456, 0, 0,15540, 0, 0,
10496
1054, 0, 406, 691, 0, 0, 0, 0, -20, 0,
10497
0, 0, 1135, 0, 0, 0, 1132, 0, 0, 0,
10498
519, 0, 1133, 1239, 1247, 0, 0, 1084, 1134, 1084,
10499
1143, 0, 1140, 0, 0, 0, 0, 0,15540, 0,
10500
1149, -217, 0, 6825, 0, 1263, 0, 0, 0, 0,
10501
75, 0,15540, 8083, 0, 0, 1174, 0, 975, 1148,
10502
0, 1155, 0, 0, 9613, 16, 222, 0, 1151, 1151,
10503
1151,15268, 1159, 0,15540, 0, 0, 0, 0, 0,
10504
0, 7141, 77, 0, 0, 7298, 0, 0, 1160, 7141,
10505
0, 1161, 0, 9456, 0, 0, 0, 0, 0,15540,
10506
0, 0, 48, 1166, 48, 7943, 1191, 1191, 1191, 0,
10507
0,15540, 0, 7141, 9770, 0, 0, 0, 0, 0,
10508
0, 0, 1185, 9456,15540, 0, 48, 1172, 0, 1127,
10509
977, 0, 0, 1169, 0, 0, 112, 0, 1131, 0,
10510
1191, 0, 0, 0, 0, 0, 0, 0, 1178, 1062,
10511
0, 7298, 0, 1193, 0, -160, 1191, 1288, 0, 1184,
10512
48, 0, 7943, 88, 1186, 0, 1187, 1190, 7141, 1192,
10513
9456, 0, 0, 0, 0, 0, 0, 1177, 1183, 0,
10514
0, 0,16516, 162, 48, 0, 0, 0, 1210, 9456,
10515
1203,15540, 0, 0, 0, 1209, 0, 0, 1207, 0,
10516
0,17547, 0, 1215, 162, 0, 0, 0, 0, 0,
10517
0, 0, 0, 0, 0, 0, 0, 0, 588,17547,
10518
0, 0, 0, 0, 0, 0, 0, 0, 0, 1216,
10519
48, 0, 162, 218, 0, 1210, 0, 0, 1189,16516,
10520
16682, 0, 0, -240, 0, 0, 0, 0, 0,16714,
10521
0, 0, 1219, 0, 0, 0, 0, 7943, 7943, 368,
10522
8100, 449, 365, 1245, 0, 82,14714, 0, 1280, 0,
10523
0, 1183, 0, 0, 0, 7298,14752, 1183, 0, -139,
10524
-138, 0, 7943, -128, 0, 7943, 0, 1168, 1220, 0,
10525
0, 82, 0, 49,14790, 0, 1223, 1170, 72, 574,
10526
999, 0, 1222, 0, 1183, 0, 0, 0, 82, 0,
10527
1226, 1171, 1224, 1225, 0, 1227, 1176, 1234, 222, 1242,
10528
1233, 0, 0, 1254, 1229, 0, 821, 0, 934, 0,
10529
0, 0, 1256, 0, 0, -77, 0, 1243, 0, 0,
10530
1228, 0, 1257, 1259, 1260, 0, 1255, 0, 222, 222,
10531
0, 222, 1261, 1262, 0, 0, 0, 0, 1264, 166,
10532
0, 1266, 222, 1377, 1268, 222, 0, -240, 0, 8514,
10533
1230, 1267, 1255, 0, 1265, 1272, 199, 1275, 0, 0,
10534
222,15268, 1231, 1271, 1264, 0, 0,17547, 0, 48,
10535
48, 0, 1236, 1276, 1266, 0, 1279, 0,15540, 1237,
10536
1281, 1268, 0, 1284, 222, 0, 89, 0, 1277, 0,
10537
0, 0, 0, 0,17547, 0, 199, 199, 0, 1287,
10538
0, -77, 0, 0, 221, 1292,17547, 0,17547, 0,
10539
0, 8514, 1282, 0, 0, 0, 1291, 1228, 0, 0,
10540
0, 1290, 0, 338, 0, 0, 0, 1191, 988, 1296,
10541
0, 0, 1269, 0, 0, 0, 0, 0, 1353, 1406,
10542
0, 0, 0, 0, 0, 0, 1301, 1302, 8514, 0,
10543
0, 0, 0, 199, 611, 611, 0, 1191, 0, 0,
10544
0, 58, 58, 0, 0, 0, 0, 0, 0, 0,
10545
14996,14996, 0, 0, 0, 0, 0, 1306, 1303, 1305,
10548
protected static readonly short [] yyRindex = { 3000,
10549
0, 0, 7455, 3000, 0, 0, 0, 1682, 0, 0,
10550
3160, 1369, 0, 0, 0, 0, 0, 3160, 0, 0,
10551
52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10552
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10553
0, 0, 0, 1683, 0, 0, 1683, 0, 0, 1682,
10554
3203, 3043, 0, 0, 0, 0, 0, 0, 0, 0,
10555
0, 1317, 0, 0, 0, 0, 0, 0, 0, 0,
10556
8845, 0, 1309, 0, 0, 0, 1309, 0, 0, 0,
10557
0, 0, 0, 276, 0, 0, 0, 0, 0, 0,
10558
0, 0, 202, 0, 0, 0, 0, 0, 0, 0,
10559
0, 0, 0, 0, 0, 4697, 0, 0, 0, 0,
10560
0, 0, 340, 4790, 4132, 0, 0, 0, 0, 0,
10561
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10562
0, 0, 0, 0, 0, 0, 0, 0, 4946, 5014,
10563
5254, 5458, 5798, 6002, 6138, 6274, 6410, 6546, 4877, 523,
10564
0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
10565
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10566
0, 0, 327, 0, 0, 0, 0, 0, 0, 0,
10567
0, 0, 0, 0, 0, 0, 0, 0, 3246, 0,
10568
829, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10569
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10570
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10571
0, 0, 1683, 57, 0, 0, 0, 0, 0, 0,
10572
0, 3289, 311, 3332, 0, 0, 0, 0, 0, 0,
10573
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10574
0, 0, 0, 0, 0, 0, 3743, 0, 0, 0,
10575
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10576
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10577
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10578
0, 0, 0, 0, 0, 1319, 0, 0, 0, 0,
10579
0, 0, 3743, 1312, 0, 0, 0, 0, 0, 0,
10580
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10581
0, 2373, 0, 2753, 256, 2503, 0, 0, 0, 1438,
10582
2503, 0, 0, 0, 0, 0, 1317, 0, 0, 0,
10583
0, 0, 0, 225, 0, 0, 0, 0, 0, 0,
10584
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10585
0, 0, 0, 0, 0, 0, 1321, 2607, 0, 0,
10586
1309, 0, 3743, 0, 0, 0, 0, 0, 0, 0,
10587
0, 0, 119, 0, 0, 0, 0, 0, 0, 0,
10588
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10589
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10590
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10591
0, 0, 1766, 0, 0, 0, 0, 0, 0, 0,
10592
0, 0, 0, 0, 0, 0, 0, 2715, 0, 0,
10593
0, 0, 0, 0, 0, 3375, 3418, 0, 0, 0,
10594
0, 2227, 1683, 1683, 0, 36, 0, 7629, 1683, 1689,
10595
0, 0, 217, 0, 0, 0, 0, 0, 0, 0,
10596
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10597
537,16369, 0, 0, 0, 0, 3743, 0, 0, 0,
10598
0, 0, 0, 0, 0,16758, 0, 0, 0, 0,
10599
0, 0, 0, 805, 0, 0, 0, 0, 0, 0,
10600
0, 0, 0, 869, 677, 795, 0, 0, 1323, 0,
10601
0, 0, 0, 0, 253, 0, 0, 4220, 1325, 0,
10602
0, 0, 594, 0, 0, 0, 0, 0, 0, 0,
10603
0, 0, 0, 1934, 0, 0, 0, 0, 0, 0,
10604
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10605
0, 0, 0, 0, 0, 0, 0, 1321, 0,15812,
10606
0, 6665, 0, 254, 0, 0, 0, 0, 0, 0,
10607
15812, 0, 0, 0, 0, 0, 0, 28, 0, 433,
10608
0, 0, 0, 1326, 0, 0, 0, 0, 1312, 0,
10609
0, 0, 3584, 0, 3743, 3584, 0, 3743, 4379, 0,
10610
0, 0, 0, 0, -202, 0, 0, 0, 0, 127,
10611
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10612
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10613
0, 0, 0, 0, 0, 5118, 0, 5186, 0, 5322,
10614
0, 5390, 0, 5526, 0, 5594, 0, 5662, 0, 5730,
10615
0, 5866, 0, 5934, 0, 6070, 0, 6206, 0, 6342,
10616
0, 6478, 0, 6602, 0, 0, 668, 0, 0, 0,
10617
0, 0, 0, 0, 0, 0, 0, 0, 0, 2715,
10618
0, 0, 0, 0, 2227, 0, 0, 0, 0, 1283,
10619
14019, 0, 0, 0, 9002, 0, 0, 738, 0, 0,
10620
0, 0, 0, 0, 731, 699, 0, 0, 1333, 0,
10621
0, 0, 0, 1639, 0, 0, 0, 0, 0, 0,
10622
15948, 0, 0, 0, 761, 0, 0, 0, 9159,16905,
10623
0, 0, 836, 839, 842, 0, 0, 0, 0, 0,
10624
0, 0, 0, 0, 814, 0, 0, 0, 0, 0,
10625
0, 0, 0, 0, 1327, 0, 0, 0, 0, 3650,
10626
0, 0, 263, 0, 92, 3902, 0, 0, 0, 0,
10627
0, 0, 0, 1334, 0, 0, 0, 0, 0, 1340,
10628
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10629
-273, 832, 0, 0, 0, 0, 0, 1337, 0, 0,
10630
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10631
0, 0, 0,15812, 0, 0, 0, 0, 0, 0,
10632
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10633
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10634
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10635
0, 0, 0, 0, 0, 0, 480, 0, 0, 0,
10636
0, 0, 0, 0, 0, -184, 0, 432, 0, 0,
10637
0, 0, 0, 0, 0, 0, 36, 0, 0, 0,
10638
0, 9159, 7786, 0, 0, 1342, 0, 822, 0, 0,
10639
0, 0, 1343, 0, 1295, 1297, 0, 0, 0, 0,
10640
0, 1338, 9316, 0, 0, 0, 0,16937, 0, 0,
10641
0, 845, 0, 0, 0, 0, 0, 0, 2101, 0,
10642
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10643
0, 0, 0, 4061, 0, 4538, 1348, 0, 0, 0,
10644
1057, 0, 0, 0, 0, 565, 0, 0, 0, 0,
10645
845, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10646
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10647
0, 0, 0, 0, 0, 0, 647, 0, 0, 0,
10648
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10649
0, 0, 0, 0, 0, 894, 0, 0, 0, 0,
10650
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10651
0, 0, 0, 1341, 0, 0, 0, 0, 0, 902,
10652
918, 0, 0, 0, 0, 0, 0, 0, 986, 748,
10653
1344, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10654
0, 0, 0, 4220, 0, 0, 0, 0, 0, 1350,
10655
0, 0, 565, 0, 0, 983, 0, 986, 0, 0,
10656
0,15812, 0, 715, 720, 0, 0, 0, 0, 0,
10657
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10658
1333, 0,13858, 0, 0, 0, 0, 0,17029, 0,
10659
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10660
777, 0, 810, 0, 0, 0, 0, 1347, 0, 827,
10661
1345, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10662
0, 1355, 0, 0, 0, 1357, 0, 0, 0, 0,
10663
15812, 0, 0, 0, 0, 0, 0, 0, -164, 479,
10664
0, 0, 0, 0, 0,17105,16758, 0, 354, 354,
10665
354, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10666
0, 0, 0, 0, 0, -70, 0, 0, 0, 0,
10667
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10668
0, 0,17210, 0, -245, 0, 1358, 1358, 1358, 0,
10669
0, 0, 0, 0, 1354, 0, 0, 0, 0, 0,
10670
0, 0, 0, 0, 0, 0,17253, 0, 0, 0,
10671
14322, 0, 0, 1359, 0, 0, 499, 0, 0, 0,
10672
612, 0, 0, 0, 0, 0, 0, 0, 0, 1356,
10673
0, 1364, 0, 0, 0, 3086, 1363, -243, 0, 0,
10674
279, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10675
0, 0, 0, 0, 0, 0, 0, 0, 2911, 0,
10676
0, 0, 0,14124,14408, 0, 0, 0, 688, 0,
10677
0, 0, 0, 0, 0, 0, 0, 0, 427, 0,
10678
0,16540, 0, 0,14223, 0, 0, 0, 0, 0,
10679
0, 0, 0, 0, 0, 0, 0, 0, 0,16608,
10680
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10681
14502, 0,14124, 0, 0, 688, 0, 0, 0, 0,
10682
537, 0, 0, 0, 0, 0, 0, 0, 0, 537,
10683
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10684
0, 0,14614, 587, 0,14544, 0, 0, 0,14676,
10685
0, 2911, 0, 0, 0, 1364, 0, 2911, 0, 0,
10686
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10687
0, 285, 0, 1366, 0, 0, 0, 0, 0, 0,
10688
0, 0, 0, 0, 2911, 0, 0, 0, 849, 0,
10689
644, 0, 0, 0, 0, 0, 0, 0,16758, 917,
10690
0, 0, 0, 0, 0, 0, 1361, 0, 394, 0,
10691
0, 0, 0, 0, 0, 0, 0, 937, 0, 0,
10692
0, 0, 0, 0, 0, 0, 1365, 0,16758,16758,
10693
0,16790, 0, 0, 0, 0, 0, 0, 1368,17477,
10694
0, 1370,16758,16084, 1375,16758, 0, 0, 0, 0,
10695
0, 0, 1378, 0, 0, 0,17447, 0, 0, 0,
10696
16758, 0, 0, 0, 1380, 0, 0, 380, 0,17371,
10697
17409, 0, 0, 0, 1381, 0, 0, 0, 0, 0,
10698
0, 1382, 0, 0,16758, 0, 591, 0, 941, 0,
10699
0, 0, 0, 0, 996, 0,17295,17333, 0, 0,
10700
0, 0, 0, 0, 0, 0, 1427, 0, 1490, 0,
10701
0, 0, 959, 0, 0, 0, 0, 0, 0, 0,
10702
0, 0, 0, 0, 0, 0, 0, 614, 0, 0,
10703
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10704
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10705
0, 0, 0,17447,16256,17147, 0, 614, 0, 0,
10706
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10707
1325, 1325, 0, 0, 0, 0, 0, 0, 0, 0,
10710
protected static readonly short [] yyGindex = { 0,
10711
0, 1710, 0, 0, 0, -2, -15, -177, -41, -38,
10712
0, 1749, 1757, 756, 0, 5, 0, 0, 0, 0,
10713
0, 0, -974, -751, -211, -326, 0, 0, 0, 0,
10714
0, -216, 0, 0, 0, 764, 0, 868, 0, 0,
10715
0, 0, 610, 613, -17, -232, 0, -46, 0, 446,
10716
0, 475, -804, -506, -495, -477, -440, -434, -432, -417,
10717
0,-1088, 0,-1202, 0, 13, 0, 203, 0,-1149,
10718
0, 0, 0, -79, 260, 0, 0, 0, 298,-1119,
10719
0, -275, -294, -330, 0, 0, 0, -942, 247, 0,
10720
0, -520, 0, 0, 315, 0, 0, 287, 0, 0,
10721
322, 0, -585, -887, 0, 0, 0, 0, 0,-1224,
10722
-10, 0, 0, 865, 878, 879, 1059, -530, 0, 0,
10723
-293, 890, 410, 0, -875, 0, 0, 0, 0, 0,
10724
0, 0, 0, 231, 0, 0, 0, 0, 0, 0,
10725
0, 0, 478, 0, 0, 0, 0, -309, 416, 0,
10726
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10727
-523, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10728
244, 0, 0, 330, 0, 0, 337, 344, 259, 0,
10729
0, 0, 0, 0, 0, 0, 0, 575, 0, 0,
10730
0, 0, -45, 0, 161, -161, 0, 0, 411, 0,
10731
-741, 0, 942, 0, 1285, -296, -266, -60, 685, 0,
10732
589, 0, -33, 95, 0, 0, 0, 0, 0, 0,
10733
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10734
0, 0, 0, -268, 0, 1253, 0, -348, 0, -271,
10735
0, 0, 0, 899, 905, -300, -124, 1074, 0, 982,
10736
0, 1232, 1463, -604, 1119, 0, 0, 793, 1777, 0,
10737
0, 0, 0, 1088, 0, 0, 0, 0, 0, -452,
10738
1512, 0, 0, 0, 0, 0, 1205, 970, 995, 933,
10739
964, 1443, 1437, 1444, 1445, 1446, 0, 1442, 0, 0,
10740
0, 1024, 1300, -543, 0, 0, 0, 0, 0, 0,
10741
0, 0, 0, 0, -286, 0, 0, 0, 0, -465,
10742
0, 639, 0, 541, 0,-1043, 0, 0, 0, 0,
10743
0, 739, -538, -16, -313, -1, 0, 1715, 0, 69,
10744
0, 71, 87, 97, 136, 142, 144, 178, 205, 207,
10745
280, 0, -677, 0, -12, 0, 0, 835, 0, 757,
10746
0, 0, 0, 0, 732, -321, 811, -886, 0, 856,
10747
-481, 0, 0, 0, 0, 0, 0, 752, 0, 749,
10748
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10749
0, 0, 0, 0, 0, 680, 0, 0, 0, 0,
10750
0, 0, 0, 0, -32, 0, 1346, 0, 0, 0,
10751
925, 0, 0, 0, 0, 0, 0, -168, 0, 0,
10752
0, 0, 0, 1451, 1201, 0, 0, 0, 0, 1456,
10753
0, 0, 0, 0, 0, 0, 0, 0, 0, 569,
10754
0, 0, 0, 0, 0, 0, 0, 0, 683, 0,
10755
0, 0, 0, 0, 0, -3, 1004, 0, 0, 0,
10758
protected static readonly short [] yyTable = { 109,
10759
155, 18, 189, 535, 532, 783, 111, 328, 333, 233,
10760
789, 446, 234, 507, 489, 156, 729, 485, 43, 445,
10761
464, 293, 751, 321, 192, 258, 530, 516, 369, 449,
10762
577, 528, 419, 563, 620, 833, 552, 834, 948, 1074,
10763
327, 332, 1200, 229, 312, 339, 259, 252, 1233, 1234,
10764
1129, 1011, 377, 678, 385, 304, 362, 593, 14, 311,
10765
712, 838, 845, 558, 498, 373, 1128, 376, 313, 384,
10766
316, 995, 20, 592, 868, 190, 756, 345, 1129, 873,
10767
874, 249, 929, 829, 930, 160, 713, 161, 1110, 1331,
10768
524, 998, 249, 260, 579, 1263, 289, 1266, 369, 315,
10769
1079, 835, 315, 162, 290, 722, 1222, 1340, 363, 374,
10770
1112, 115, 374, 163, 865, 500, 1396, 1398, 714, 453,
10771
454, 1076, 326, 501, 331, 421, 94, 1404, 375, 1077,
10772
331, 364, 1385, 960, 1067, 1363, 962, 332, 320, 109,
10773
155, 320, 1385, 836, 369, 365, 111, 233, 499, 489,
10774
447, 580, 164, 115, 995, 156, 678, 115, 165, 995,
10775
166, 995, 1222, 449, 995, 995, 196, 995, 995, 678,
10776
362, 678, 51, 889, 998, 894, 502, 861, 1447, 998,
10777
194, 998, 495, 291, 998, 998, 1, 998, 998, 995,
10778
463, 291, 94, 447, 167, 291, 250, 846, 1260, 487,
10779
490, 525, 699, 526, 1130, 250, 449, 250, 505, 998,
10780
94, 602, 494, 261, 250, 1264, 6, 250, 363, 455,
10781
15, 168, 715, 169, 775, 160, 678, 161, 538, 488,
10782
485, 1079, 1130, 781, 464, 493, 804, 191, 292, 866,
10783
461, 364, 931, 162, 995, 251, 292, 194, 194, 515,
10784
292, 115, 258, 163, 251, 365, 251, 527, 593, 1038,
10785
577, 551, 258, 251, 998, 555, 251, 723, 194, 1194,
10786
560, 506, 1113, 503, 592, 1515, 510, 512, 1397, 1399,
10787
968, 557, 593, 376, 583, 559, 562, 577, 2, 1405,
10788
696, 539, 164, 337, 1284, 862, 170, 846, 165, 547,
10789
166, 549, 1539, 1448, 1412, 510, 550, 548, 1011, 759,
10790
363, 16, 362, 1583, 1549, 231, 1550, 565, 566, 460,
10791
642, 644, 1393, 863, 296, 730, 297, 576, 605, 51,
10792
825, 608, 1207, 364, 167, 490, 490, 2, 600, 1152,
10793
1055, 51, 578, 1272, 1533, 1084, 940, 1011, 681, 683,
10794
20, 846, 1511, 599, 3, 4, 5, 6, 761, 194,
10795
194, 168, 916, 169, 488, 617, 1125, 1252, 624, 625,
10796
626, 627, 628, 629, 630, 631, 632, 633, 634, 291,
10797
115, 680, 682, 1028, 1080, 686, 1082, 1392, 1560, 1087,
10798
376, 48, 851, 1394, 593, 362, 1418, 376, 791, 376,
10799
676, 376, 793, 810, 233, 199, 813, 447, 1374, 1036,
10800
830, 890, 42, 115, 700, 804, 231, 1291, 1580, 1413,
10801
1425, 1477, 194, 362, 94, 760, 1058, 362, 449, 362,
10802
362, 362, 362, 1584, 292, 338, 170, 362, 115, 370,
10803
1085, 94, 864, 847, 1042, 376, 849, 850, 194, 697,
10804
698, 1208, 694, 51, 1504, 710, 749, 740, 757, 1011,
10805
194, 921, 1273, 1534, 941, 1011, 716, 797, 194, 400,
10806
1312, 831, 363, 6, 762, 231, 1145, 737, 1147, 858,
10807
1148, 426, 490, 1546, 485, 1253, 747, 371, 691, 1419,
10808
465, 750, 1030, 691, 1206, 364, 516, 691, 466, 803,
10809
489, 291, 1211, 812, 1065, 401, 852, 975, 291, 778,
10810
733, 617, 691, 787, 792, 797, 1312, 1117, 794, 811,
10811
231, 1435, 814, 485, 194, 1037, 1236, 194, 1142, 593,
10812
231, 795, 797, 882, 231, 1547, 859, 725, 815, 691,
10813
352, 726, 937, 817, 837, 592, 54, 465, 372, 796,
10814
802, 1465, 1466, 449, 1468, 466, 603, 576, 691, 826,
10815
194, 194, 738, 606, 427, 1487, 604, 231, 1494, 428,
10816
826, 429, 578, 607, 430, 431, 797, 432, 433, 1213,
10817
291, 1277, 691, 1510, 576, 402, 403, 691, 194, 194,
10818
231, 691, 738, 1556, 424, 853, 853, 1181, 115, 578,
10819
200, 1557, 727, 938, 593, 244, 691, 1532, 194, 1244,
10820
245, 1137, 347, 1138, 246, 1389, 1021, 426, 347, 1026,
10821
452, 739, 194, 1372, 347, 1389, 248, 347, 347, 977,
10822
453, 1541, 1542, 691, 870, 292, 872, 833, 792, 688,
10823
775, 347, 691, 291, 792, 880, 328, 425, 250, 362,
10824
942, 352, 691, 738, 434, 352, 1279, 347, 123, 94,
10825
123, 778, 1558, 250, 247, 123, 778, 778, 115, 876,
10826
291, 362, 1373, 347, 1057, 1326, 796, 1053, 362, 887,
10827
924, 452, 739, 263, 925, 535, 490, 989, 1574, 785,
10828
44, 453, 710, 792, 691, 115, 51, 251, 956, 352,
10829
427, 113, 340, 923, 1375, 428, 805, 429, 340, 936,
10830
430, 431, 251, 432, 433, 488, 951, 1118, 515, 363,
10831
710, 888, 427, 751, 927, 1063, 363, 428, 194, 429,
10832
510, 258, 430, 431, 991, 432, 433, 904, 903, 965,
10833
94, 555, 364, 113, 785, 787, 1118, 113, 362, 364,
10834
320, 778, 194, 1376, 1121, 970, 365, 340, 957, 781,
10835
362, 905, 928, 365, 362, 717, 347, 362, 1313, 362,
10836
989, 331, 331, 1098, 362, 989, 197, 989, 631, 1314,
10837
989, 989, 334, 989, 989, 1400, 1153, 952, 906, 347,
10838
444, 971, 331, 717, 696, 347, 363, 1315, 963, 1414,
10839
964, 347, 717, 412, 651, 347, 651, 197, 689, 490,
10840
969, 966, 689, 826, 1313, 490, 413, 991, 347, 364,
10841
577, 1433, 991, 374, 991, 1314, 414, 991, 991, 1089,
10842
991, 991, 689, 365, 1316, 1029, 415, 711, 617, 450,
10843
1317, 113, 1318, 1315, 617, 700, 981, 807, 787, 374,
10844
347, 416, 320, 1173, 115, 807, 115, 1319, 690, 689,
10845
989, 631, 577, 417, 194, 711, 631, 1021, 631, 631,
10846
631, 631, 631, 631, 631, 631, 631, 631, 631, 740,
10847
1316, 418, 690, 331, 331, 194, 1317, 1163, 1318, 1203,
10848
631, 1018, 631, 506, 631, 585, 631, 631, 631, 1164,
10849
716, 882, 586, 1319, 1061, 115, 1064, 991, 115, 690,
10850
1043, 541, 1066, 1010, 587, 1045, 374, 542, 1045, 729,
10851
448, 347, 1098, 883, 542, 297, 1235, 778, 577, 787,
10852
363, 1102, 953, 347, 798, 884, 347, 347, 1075, 1498,
10853
94, 543, 225, 985, 226, 320, 331, 1293, 1311, 1420,
10854
347, 631, 452, 364, 1335, 1336, 194, 278, 278, 490,
10855
374, 374, 374, 1337, 374, 374, 278, 374, 1293, 374,
10856
113, 778, 331, 778, 225, 1107, 778, 94, 714, 194,
10857
713, 1111, 456, 426, 331, 796, 1283, 714, 1097, 713,
10858
459, 585, 331, 913, 1311, 194, 1293, 486, 586, 194,
10859
1357, 1551, 1048, 113, 485, 464, 1328, 716, 945, 1367,
10860
587, 374, 337, 374, 808, 1217, 374, 288, 808, 288,
10861
787, 1360, 808, 510, 288, 1104, 985, 1105, 113, 1106,
10862
1360, 985, 225, 985, 228, 804, 985, 985, 1571, 985,
10863
985, 804, 907, 804, 512, 406, 407, 508, 331, 908,
10864
512, 331, 577, 1073, 535, 862, 194, 1589, 1590, 408,
10865
409, 826, 1154, 778, 1155, 778, 427, 778, 69, 69,
10866
1149, 428, 69, 429, 194, 194, 430, 431, 450, 432,
10867
433, 451, 824, 800, 331, 331, 824, 813, 824, 509,
10868
824, 813, 24, 813, 25, 813, 1156, 26, 404, 405,
10869
347, 347, 27, 347, 347, 62, 28, 1031, 490, 1031,
10870
521, 506, 331, 331, 522, 30, 985, 576, 740, 804,
10871
732, 804, 32, 804, 733, 1182, 787, 33, 531, 766,
10872
826, 34, 578, 767, 815, 776, 815, 1097, 115, 522,
10873
1193, 536, 194, 36, 506, 37, 176, 506, 176, 38,
10874
176, 233, 450, 1220, 447, 881, 1221, 39, 40, 576,
10875
375, 41, 513, 194, 801, 425, 778, 425, 513, 944,
10876
556, 194, 1216, 945, 578, 233, 871, 1021, 447, 189,
10877
871, 189, 537, 189, 506, 875, 425, 425, 113, 875,
10878
291, 70, 540, 1288, 449, 70, 778, 1149, 807, 561,
10879
340, 347, 807, 340, 347, 164, 425, 164, 171, 1220,
10880
171, 172, 1221, 172, 425, 352, 940, 425, 940, 352,
10881
1411, 347, 352, 569, 352, 576, 484, 231, 115, 352,
10882
331, 597, 1292, 1310, 364, 1221, 796, 1411, 598, 347,
10883
578, 347, 796, 778, 692, 325, 397, 398, 399, 796,
10884
1288, 609, 331, 1292, 368, 1443, 1221, 1444, 113, 711,
10885
347, 347, 778, 352, 506, 72, 115, 72, 1370, 1371,
10886
115, 195, 695, 195, 115, 731, 331, 1344, 734, 1310,
10887
347, 1292, 736, 201, 1221, 113, 764, 165, 347, 165,
10888
128, 347, 128, 1403, 410, 411, 1406, 343, 115, 995,
10889
996, 347, 349, 351, 353, 355, 357, 359, 361, 250,
10890
294, 378, 294, 262, 135, 758, 135, 286, 287, 288,
10891
765, 294, 295, 1365, 763, 202, 308, 309, 1186, 1187,
10892
379, 380, 301, 317, 301, 319, 115, 323, 654, 656,
10893
658, 660, 335, 336, 1249, 231, 816, 364, 456, 576,
10894
381, 1561, 1562, 115, 536, 536, 194, 809, 251, 691,
10895
691, 382, 1198, 1199, 578, 818, 383, 819, 38, 820,
10896
740, 646, 648, 662, 664, 203, 204, 205, 206, 1421,
10897
207, 208, 209, 210, 211, 212, 213, 214, 331, 821,
10898
215, 216, 217, 218, 219, 220, 221, 222, 650, 652,
10899
740, 740, 839, 740, 840, 843, 844, 846, 1478, 331,
10900
856, 848, 857, 194, 740, 869, 871, 740, 875, 891,
10901
892, 450, 42, 899, 895, 1505, 911, 896, 917, 918,
10902
196, 919, 740, 194, 920, 926, 943, 377, 1517, 1519,
10903
946, 862, 787, 947, 113, 949, 113, 1365, 954, 958,
10904
973, 990, 959, 967, 506, 992, 740, 985, 997, 999,
10905
115, 1005, 1008, 1006, 1009, 1505, 1505, 1014, 1011, 1016,
10906
1022, 1527, 1034, 1035, 1044, 1038, 1052, 525, 1070, 1059,
10907
331, 1071, 1090, 1144, 1100, 1108, 1143, 1126, 1114, 1115,
10908
194, 194, 1116, 1146, 1166, 113, 1124, 1136, 113, 1140,
10909
194, 1158, 1167, 331, 787, 1168, 343, 317, 194, 194,
10910
383, 194, 1162, 1165, 1170, 1171, 1174, 1388, 1178, 331,
10911
1185, 1188, 1505, 331, 1189, 1196, 1209, 1388, 1201, 1229,
10912
1212, 1388, 1243, 194, 490, 490, 194, 1219, 564, 1246,
10913
1262, 787, 1251, 1267, 1248, 1388, 343, 386, 1254, 1259,
10914
529, 1269, 1274, 1275, 1576, 1576, 1276, 1282, 1283, 1278,
10915
1346, 1585, 1585, 617, 617, 1324, 546, 1388, 387, 388,
10916
389, 390, 391, 392, 393, 394, 395, 396, 1327, 1329,
10917
1330, 1377, 1332, 1341, 1391, 1408, 1369, 1417, 1419, 1424,
10918
1409, 1416, 1427, 1399, 1429, 1441, 1454, 1432, 331, 331,
10919
1430, 636, 638, 640, 1434, 1438, 564, 564, 564, 564,
10920
564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
10921
564, 564, 1436, 1451, 1440, 38, 1446, 1457, 1461, 38,
10922
1458, 1459, 1488, 1469, 1470, 1564, 1502, 1473, 24, 1483,
10923
38, 1490, 1500, 1503, 1509, 38, 1513, 1499, 1512, 38,
10924
1526, 1524, 38, 1523, 1528, 1531, 1529, 1537, 1544, 1548,
10925
1553, 1555, 1552, 1563, 38, 38, 331, 1547, 1546, 38,
10926
38, 1569, 1570, 1591, 1592, 38, 1593, 38, 38, 38,
10927
38, 9, 1027, 552, 909, 38, 507, 910, 1019, 38,
10928
508, 38, 653, 377, 506, 331, 465, 654, 377, 377,
10929
725, 38, 33, 38, 38, 466, 38, 33, 532, 323,
10930
38, 34, 216, 817, 103, 34, 818, 841, 810, 876,
10931
877, 377, 842, 920, 713, 878, 327, 880, 113, 564,
10932
38, 738, 354, 347, 377, 377, 38, 38, 713, 377,
10933
131, 691, 377, 113, 377, 297, 377, 377, 377, 377,
10934
138, 748, 691, 132, 377, 114, 298, 139, 377, 230,
10935
53, 21, 377, 1004, 1191, 517, 1091, 1192, 1343, 1333,
10936
377, 1545, 1514, 377, 1554, 377, 377, 1501, 1530, 1496,
10937
1401, 377, 1031, 377, 377, 377, 377, 377, 377, 377,
10938
377, 377, 377, 377, 796, 1032, 1033, 914, 1342, 377,
10939
377, 842, 1027, 1587, 377, 377, 1423, 377, 377, 377,
10940
1579, 377, 377, 377, 1525, 377, 377, 1520, 113, 377,
10941
377, 377, 377, 1518, 1578, 1270, 377, 377, 1000, 1445,
10942
806, 377, 377, 377, 377, 377, 377, 377, 377, 1051,
10943
1049, 1271, 935, 978, 611, 855, 1127, 299, 567, 668,
10944
377, 910, 932, 377, 666, 377, 113, 670, 675, 672,
10945
113, 674, 972, 24, 113, 25, 377, 823, 26, 1256,
10946
1347, 420, 1176, 27, 1120, 1183, 1169, 28, 1139, 1109,
10947
331, 29, 1177, 1175, 1240, 1068, 30, 690, 113, 799,
10948
879, 31, 691, 32, 1345, 24, 1002, 1245, 33, 24,
10949
1001, 0, 34, 35, 0, 0, 0, 0, 0, 0,
10950
24, 0, 0, 0, 36, 24, 37, 0, 0, 24,
10951
38, 0, 24, 0, 0, 0, 113, 0, 39, 40,
10952
0, 0, 41, 911, 24, 24, 0, 331, 0, 24,
10953
24, 0, 0, 113, 0, 24, 0, 24, 24, 24,
10954
24, 0, 0, 0, 0, 24, 0, 331, 0, 24,
10955
0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
10956
0, 24, 343, 0, 24, 0, 24, 0, 0, 0,
10957
24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10958
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10959
24, 0, 0, 0, 0, 21, 24, 24, 0, 0,
10960
0, 0, 0, 0, 331, 331, 42, 0, 0, 0,
10961
0, 517, 0, 0, 331, 0, 517, 517, 0, 0,
10962
0, 0, 331, 331, 0, 331, 0, 0, 0, 0,
10963
0, 0, 0, 0, 0, 0, 0, 0, 0, 517,
10964
113, 0, 0, 0, 0, 0, 0, 331, 0, 0,
10965
331, 0, 517, 517, 0, 0, 0, 517, 0, 0,
10966
517, 0, 517, 0, 517, 517, 517, 517, 0, 0,
10967
0, 0, 517, 0, 0, 0, 517, 0, 0, 0,
10968
517, 0, 0, 0, 0, 0, 0, 0, 517, 0,
10969
835, 517, 0, 517, 517, 0, 0, 0, 0, 517,
10970
0, 517, 517, 517, 517, 517, 517, 517, 517, 517,
10971
517, 517, 0, 0, 0, 0, 0, 517, 517, 0,
10972
0, 0, 517, 517, 0, 517, 517, 517, 517, 517,
10973
517, 517, 0, 517, 517, 564, 517, 517, 517, 517,
10974
517, 517, 517, 517, 517, 517, 0, 517, 517, 517,
10975
517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
10976
517, 517, 517, 517, 517, 517, 517, 517, 517, 0,
10977
0, 517, 0, 517, 0, 517, 0, 0, 517, 911,
10978
911, 0, 0, 0, 517, 0, 0, 911, 911, 911,
10979
911, 911, 0, 911, 911, 0, 911, 911, 911, 911,
10980
911, 911, 911, 911, 0, 0, 0, 0, 911, 0,
10981
911, 911, 911, 911, 911, 911, 347, 0, 911, 0,
10982
0, 0, 911, 911, 0, 911, 911, 911, 0, 0,
10983
0, 0, 0, 0, 0, 0, 0, 911, 0, 911,
10984
0, 911, 911, 0, 0, 911, 0, 911, 911, 911,
10985
911, 911, 911, 911, 911, 911, 911, 911, 911, 0,
10986
911, 0, 0, 911, 911, 0, 0, 911, 911, 0,
10987
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10988
0, 0, 911, 911, 911, 911, 911, 0, 0, 0,
10989
911, 911, 0, 0, 911, 0, 0, 0, 0, 911,
10990
911, 911, 911, 911, 0, 0, 0, 911, 0, 911,
10991
0, 0, 0, 0, 0, 911, 911, 0, 0, 0,
10992
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10993
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10994
911, 911, 911, 911, 0, 911, 835, 835, 0, 0,
10995
0, 0, 911, 0, 835, 835, 835, 835, 835, 0,
10996
835, 835, 793, 835, 835, 835, 835, 835, 835, 835,
10997
0, 0, 0, 0, 0, 835, 0, 835, 835, 835,
10998
835, 835, 835, 0, 0, 835, 0, 0, 0, 835,
10999
835, 0, 835, 835, 835, 0, 0, 0, 0, 0,
11000
0, 0, 0, 0, 835, 0, 835, 0, 835, 835,
11001
0, 0, 835, 0, 835, 835, 835, 835, 835, 835,
11002
835, 835, 835, 835, 835, 835, 0, 835, 0, 0,
11003
835, 835, 0, 0, 835, 835, 0, 0, 0, 0,
11004
0, 0, 0, 0, 0, 0, 0, 0, 0, 835,
11005
835, 835, 835, 835, 0, 0, 0, 835, 835, 0,
11006
0, 835, 0, 0, 0, 0, 835, 835, 835, 835,
11007
835, 0, 347, 0, 835, 0, 835, 347, 347, 0,
11008
0, 0, 835, 835, 0, 0, 0, 0, 0, 0,
11009
0, 0, 340, 0, 0, 0, 0, 0, 0, 0,
11010
347, 0, 0, 0, 0, 0, 0, 835, 835, 835,
11011
835, 0, 835, 347, 347, 0, 0, 0, 347, 835,
11012
0, 347, 0, 347, 0, 347, 347, 347, 347, 0,
11013
0, 0, 0, 347, 0, 0, 0, 347, 0, 0,
11014
0, 347, 0, 0, 0, 0, 0, 0, 0, 347,
11015
0, 0, 347, 0, 347, 347, 0, 0, 0, 0,
11016
347, 0, 347, 347, 347, 347, 347, 347, 347, 347,
11017
347, 347, 347, 347, 0, 0, 0, 0, 347, 347,
11018
0, 0, 0, 347, 347, 347, 347, 347, 347, 347,
11019
347, 347, 347, 0, 347, 347, 347, 0, 347, 347,
11020
347, 347, 347, 0, 0, 347, 347, 0, 0, 0,
11021
347, 347, 347, 347, 347, 347, 347, 347, 793, 0,
11022
0, 0, 0, 793, 793, 0, 0, 0, 0, 347,
11023
0, 0, 347, 0, 347, 0, 347, 0, 0, 347,
11024
0, 0, 0, 0, 0, 347, 793, 0, 0, 0,
11025
0, 0, 0, 0, 0, 0, 0, 0, 0, 793,
11026
793, 0, 0, 0, 793, 0, 0, 793, 0, 793,
11027
0, 793, 793, 793, 793, 0, 0, 0, 0, 793,
11028
0, 0, 0, 793, 0, 0, 0, 793, 0, 0,
11029
0, 0, 0, 0, 0, 793, 0, 0, 793, 0,
11030
793, 793, 0, 0, 0, 0, 793, 0, 793, 793,
11031
793, 793, 793, 793, 793, 793, 793, 793, 793, 0,
11032
0, 0, 0, 0, 793, 793, 0, 0, 0, 793,
11033
793, 793, 793, 793, 793, 0, 793, 793, 793, 0,
11034
793, 793, 372, 0, 793, 793, 793, 793, 340, 0,
11035
0, 793, 793, 340, 340, 0, 793, 793, 793, 793,
11036
793, 793, 793, 793, 0, 0, 0, 0, 0, 0,
11037
0, 0, 0, 0, 0, 793, 340, 0, 793, 0,
11038
793, 0, 793, 0, 0, 793, 0, 0, 0, 340,
11039
340, 793, 0, 0, 340, 0, 0, 340, 0, 340,
11040
0, 340, 340, 340, 340, 0, 0, 0, 0, 340,
11041
0, 0, 0, 340, 0, 0, 0, 340, 0, 0,
11042
0, 0, 0, 0, 0, 340, 0, 0, 340, 0,
11043
340, 340, 0, 0, 0, 0, 340, 0, 340, 340,
11044
340, 340, 340, 340, 340, 340, 340, 340, 340, 0,
11045
0, 0, 347, 0, 340, 340, 0, 0, 347, 340,
11046
340, 340, 340, 340, 340, 0, 340, 340, 340, 0,
11047
340, 340, 0, 0, 340, 340, 340, 340, 0, 0,
11048
0, 340, 340, 0, 0, 0, 340, 340, 340, 340,
11049
340, 340, 340, 340, 347, 0, 0, 0, 0, 0,
11050
31, 0, 0, 0, 0, 340, 0, 0, 340, 0,
11051
340, 0, 340, 0, 0, 340, 0, 0, 0, 0,
11052
0, 340, 0, 0, 0, 0, 0, 0, 0, 0,
11053
0, 0, 0, 0, 0, 347, 0, 0, 0, 0,
11054
347, 0, 347, 347, 347, 347, 347, 347, 347, 347,
11055
347, 347, 347, 347, 0, 0, 0, 0, 0, 347,
11056
1001, 0, 0, 347, 347, 347, 347, 347, 347, 347,
11057
347, 347, 347, 0, 347, 347, 0, 0, 347, 347,
11058
347, 347, 347, 0, 0, 347, 347, 0, 0, 37,
11059
347, 347, 347, 347, 347, 347, 347, 347, 372, 0,
11060
0, 0, 0, 0, 372, 0, 0, 0, 0, 347,
11061
0, 0, 347, 0, 347, 0, 347, 0, 0, 347,
11062
0, 0, 0, 0, 0, 347, 0, 0, 0, 0,
11063
0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
11064
372, 0, 0, 1001, 0, 0, 0, 0, 1001, 0,
11065
1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
11066
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11067
0, 0, 1001, 0, 1001, 25, 1001, 0, 1001, 1001,
11068
1001, 372, 0, 0, 0, 0, 372, 0, 372, 372,
11069
372, 372, 372, 372, 372, 372, 372, 372, 372, 0,
11070
0, 0, 0, 0, 0, 372, 0, 0, 0, 372,
11071
372, 0, 372, 372, 372, 0, 372, 372, 372, 0,
11072
372, 372, 0, 0, 372, 372, 372, 372, 0, 0,
11073
0, 372, 372, 1001, 0, 0, 372, 372, 372, 372,
11074
372, 372, 372, 372, 0, 0, 0, 0, 0, 35,
11075
0, 0, 0, 0, 0, 372, 31, 31, 372, 0,
11076
372, 31, 0, 0, 0, 31, 0, 31, 0, 0,
11077
31, 372, 31, 31, 0, 31, 0, 31, 0, 31,
11078
0, 31, 31, 31, 31, 0, 0, 31, 31, 0,
11079
0, 0, 5, 31, 0, 31, 31, 31, 0, 0,
11080
31, 31, 31, 0, 31, 0, 0, 31, 0, 31,
11081
31, 31, 31, 0, 0, 0, 31, 31, 31, 0,
11082
0, 31, 31, 31, 0, 0, 0, 0, 0, 0,
11083
31, 31, 0, 31, 31, 1009, 31, 31, 31, 0,
11084
0, 0, 31, 0, 0, 0, 37, 0, 0, 0,
11085
37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11086
0, 37, 31, 0, 0, 0, 37, 0, 31, 31,
11087
37, 0, 0, 37, 0, 0, 0, 31, 51, 0,
11088
0, 0, 0, 0, 0, 37, 37, 0, 0, 36,
11089
37, 37, 0, 36, 0, 0, 37, 0, 37, 37,
11090
37, 37, 0, 0, 36, 0, 37, 0, 0, 36,
11091
37, 0, 37, 36, 0, 0, 36, 0, 31, 0,
11092
0, 7, 37, 0, 37, 37, 0, 37, 36, 36,
11093
0, 37, 25, 36, 36, 0, 25, 0, 0, 36,
11094
0, 36, 36, 36, 36, 0, 0, 25, 0, 36,
11095
0, 37, 25, 36, 0, 36, 25, 0, 37, 25,
11096
0, 0, 0, 0, 1010, 36, 0, 0, 36, 0,
11097
36, 25, 25, 0, 36, 0, 25, 25, 0, 0,
11098
0, 0, 25, 0, 25, 25, 25, 25, 0, 0,
11099
0, 0, 25, 0, 36, 0, 25, 0, 25, 0,
11100
36, 36, 0, 0, 0, 0, 35, 52, 25, 0,
11101
35, 25, 0, 25, 0, 0, 0, 25, 0, 0,
11102
0, 35, 0, 0, 0, 0, 35, 0, 0, 0,
11103
35, 0, 0, 35, 0, 0, 0, 25, 0, 0,
11104
0, 0, 0, 25, 25, 35, 35, 0, 0, 5,
11105
35, 35, 0, 51, 0, 0, 35, 0, 35, 35,
11106
35, 35, 0, 0, 51, 0, 35, 0, 0, 51,
11107
35, 0, 35, 51, 0, 0, 51, 0, 0, 0,
11108
0, 0, 35, 0, 0, 35, 0, 35, 51, 51,
11109
0, 35, 1009, 51, 51, 0, 51, 0, 0, 51,
11110
0, 51, 51, 51, 51, 0, 0, 51, 0, 51,
11111
0, 35, 51, 51, 0, 51, 51, 0, 35, 51,
11112
0, 0, 0, 0, 0, 51, 0, 0, 51, 0,
11113
51, 51, 51, 0, 51, 51, 51, 51, 0, 51,
11114
0, 0, 51, 0, 51, 51, 51, 51, 0, 0,
11115
51, 0, 51, 0, 51, 51, 51, 0, 51, 51,
11116
0, 0, 51, 0, 0, 0, 0, 0, 51, 0,
11117
0, 51, 0, 51, 51, 51, 0, 51, 7, 51,
11118
51, 0, 52, 0, 0, 51, 0, 51, 51, 51,
11119
51, 0, 0, 52, 0, 51, 0, 51, 52, 51,
11120
0, 51, 52, 0, 0, 52, 0, 0, 0, 0,
11121
0, 51, 0, 0, 51, 0, 51, 52, 52, 0,
11122
51, 1010, 52, 52, 0, 51, 0, 0, 52, 0,
11123
52, 52, 52, 52, 0, 0, 51, 0, 52, 0,
11124
51, 51, 52, 0, 52, 51, 0, 0, 51, 0,
11125
0, 0, 0, 0, 52, 0, 0, 52, 0, 52,
11126
51, 51, 0, 52, 52, 51, 51, 0, 52, 0,
11127
0, 51, 0, 51, 51, 51, 51, 0, 0, 52,
11128
0, 51, 0, 52, 52, 51, 0, 51, 52, 0,
11129
0, 52, 0, 0, 0, 0, 0, 51, 0, 0,
11130
51, 0, 51, 52, 52, 0, 51, 0, 52, 52,
11131
0, 0, 0, 0, 52, 0, 52, 52, 52, 52,
11132
0, 0, 0, 0, 52, 0, 51, 0, 52, 0,
11133
52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11134
52, 0, 55, 52, 0, 52, 0, 0, 0, 52,
11135
56, 24, 57, 25, 0, 0, 26, 58, 0, 59,
11136
60, 27, 61, 62, 63, 28, 0, 0, 0, 52,
11137
0, 64, 0, 65, 30, 66, 67, 68, 69, 0,
11138
0, 32, 0, 0, 0, 70, 33, 0, 71, 72,
11139
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11140
73, 0, 36, 0, 37, 74, 0, 0, 38, 0,
11141
75, 76, 77, 78, 79, 80, 39, 40, 81, 82,
11142
41, 83, 0, 84, 0, 0, 85, 86, 0, 796,
11143
87, 88, 0, 0, 0, 796, 0, 0, 0, 0,
11144
0, 0, 0, 0, 0, 89, 90, 91, 92, 93,
11145
0, 0, 0, 94, 0, 0, 0, 95, 0, 0,
11146
0, 0, 96, 97, 98, 99, 100, 0, 0, 0,
11147
101, 796, 102, 0, 0, 0, 0, 0, 103, 104,
11148
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11149
0, 0, 0, 0, 0, 347, 0, 0, 0, 0,
11150
0, 347, 0, 105, 106, 107, 108, 0, 0, 0,
11151
0, 0, 796, 0, 0, 196, 0, 796, 0, 796,
11152
796, 796, 796, 796, 796, 796, 796, 796, 796, 796,
11153
796, 0, 0, 0, 0, 0, 796, 347, 0, 0,
11154
0, 796, 796, 796, 796, 796, 796, 796, 796, 796,
11155
0, 796, 796, 0, 796, 796, 796, 796, 796, 796,
11156
796, 796, 796, 796, 0, 796, 796, 796, 796, 796,
11157
796, 796, 796, 796, 796, 796, 796, 796, 796, 796,
11158
796, 796, 796, 796, 796, 796, 796, 796, 347, 0,
11159
0, 796, 0, 796, 347, 0, 796, 0, 0, 0,
11160
0, 0, 796, 0, 0, 0, 0, 347, 0, 0,
11161
347, 0, 347, 347, 0, 0, 0, 347, 347, 0,
11162
0, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11163
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11164
347, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11165
0, 347, 347, 0, 0, 0, 0, 0, 0, 347,
11166
0, 0, 347, 0, 0, 0, 0, 0, 347, 0,
11167
0, 347, 0, 0, 0, 0, 347, 0, 347, 347,
11168
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11169
0, 0, 0, 0, 0, 347, 0, 0, 0, 0,
11170
347, 347, 347, 347, 347, 347, 347, 347, 347, 0,
11171
347, 347, 0, 347, 347, 347, 347, 347, 347, 347,
11172
347, 347, 347, 0, 347, 347, 347, 347, 347, 347,
11173
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11174
347, 347, 347, 347, 347, 347, 0, 519, 582, 0,
11175
347, 0, 347, 519, 0, 347, 0, 24, 0, 25,
11176
0, 347, 26, 0, 0, 0, 0, 27, 0, 0,
11177
0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
11178
30, 0, 0, 0, 0, 0, 0, 32, 0, 519,
11179
0, 0, 33, 0, 0, 0, 34, 0, 0, 0,
11180
0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
11181
37, 0, 0, 0, 38, 0, 0, 0, 0, 0,
11182
0, 0, 39, 40, 0, 0, 41, 0, 0, 324,
11183
519, 0, 0, 0, 0, 519, 0, 519, 519, 519,
11184
519, 519, 519, 519, 519, 519, 519, 519, 0, 0,
11185
0, 0, 0, 0, 0, 0, 0, 0, 519, 519,
11186
519, 519, 519, 519, 519, 519, 519, 519, 0, 519,
11187
519, 0, 519, 519, 519, 519, 519, 519, 519, 519,
11188
519, 519, 0, 519, 519, 519, 519, 519, 519, 519,
11189
519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
11190
519, 519, 519, 519, 519, 0, 515, 641, 0, 0,
11191
368, 519, 515, 0, 0, 0, 24, 0, 25, 0,
11192
519, 26, 0, 0, 0, 0, 27, 0, 0, 0,
11193
28, 0, 0, 0, 0, 0, 0, 0, 0, 30,
11194
0, 0, 0, 0, 0, 0, 32, 0, 515, 0,
11195
0, 33, 0, 0, 0, 34, 0, 0, 0, 0,
11196
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
11197
0, 0, 0, 38, 0, 0, 0, 403, 0, 0,
11198
0, 39, 40, 403, 0, 41, 0, 0, 324, 515,
11199
0, 0, 0, 0, 515, 0, 515, 515, 515, 515,
11200
515, 515, 515, 515, 515, 515, 515, 0, 0, 0,
11201
0, 0, 0, 0, 0, 0, 0, 515, 515, 403,
11202
515, 515, 515, 515, 515, 515, 515, 0, 515, 515,
11203
0, 515, 515, 515, 515, 515, 515, 515, 515, 515,
11204
515, 0, 515, 515, 515, 515, 515, 515, 515, 515,
11205
515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
11206
515, 515, 515, 515, 0, 523, 0, 0, 0, 368,
11207
515, 523, 0, 515, 0, 0, 0, 0, 0, 515,
11208
0, 0, 0, 0, 340, 0, 0, 0, 0, 403,
11209
340, 0, 403, 403, 403, 403, 0, 403, 0, 403,
11210
403, 0, 403, 403, 403, 403, 403, 523, 403, 403,
11211
403, 403, 0, 403, 403, 403, 403, 403, 403, 403,
11212
403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
11213
403, 403, 403, 403, 403, 0, 0, 0, 0, 340,
11214
0, 403, 0, 0, 403, 0, 0, 0, 523, 0,
11215
403, 0, 0, 523, 0, 523, 523, 523, 523, 523,
11216
523, 523, 523, 523, 523, 523, 0, 0, 0, 0,
11217
0, 0, 0, 0, 0, 0, 0, 523, 0, 523,
11218
523, 523, 523, 523, 523, 523, 0, 523, 523, 0,
11219
523, 523, 523, 523, 523, 523, 523, 523, 523, 523,
11220
0, 523, 523, 523, 523, 523, 523, 523, 523, 523,
11221
523, 523, 523, 523, 523, 523, 523, 523, 523, 523,
11222
523, 523, 523, 0, 347, 643, 0, 0, 0, 523,
11223
347, 0, 523, 0, 24, 0, 25, 0, 523, 26,
11224
0, 0, 0, 0, 27, 0, 0, 0, 28, 0,
11225
0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
11226
0, 0, 0, 0, 32, 0, 347, 0, 0, 33,
11227
0, 0, 0, 34, 0, 0, 0, 0, 0, 0,
11228
0, 0, 0, 0, 0, 36, 0, 37, 0, 0,
11229
0, 38, 0, 0, 0, 0, 0, 0, 0, 39,
11230
40, 0, 0, 41, 0, 0, 324, 347, 0, 0,
11231
0, 0, 347, 0, 347, 347, 347, 347, 347, 347,
11232
347, 347, 347, 347, 347, 0, 0, 0, 0, 0,
11233
0, 0, 0, 0, 0, 0, 347, 0, 347, 347,
11234
347, 347, 347, 347, 347, 0, 347, 347, 0, 347,
11235
347, 347, 347, 347, 347, 347, 347, 347, 347, 0,
11236
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11237
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11238
347, 347, 0, 448, 950, 0, 0, 368, 347, 448,
11239
0, 347, 0, 24, 0, 25, 0, 347, 26, 0,
11240
0, 0, 0, 27, 0, 0, 0, 28, 0, 0,
11241
0, 0, 0, 0, 0, 0, 30, 0, 0, 0,
11242
0, 0, 0, 32, 0, 448, 0, 0, 33, 0,
11243
0, 0, 34, 0, 0, 0, 0, 0, 0, 0,
11244
0, 0, 0, 0, 36, 0, 37, 0, 0, 0,
11245
38, 0, 0, 0, 0, 0, 0, 0, 39, 40,
11246
0, 0, 41, 0, 0, 324, 448, 0, 0, 0,
11247
0, 448, 0, 448, 448, 448, 448, 448, 448, 448,
11248
448, 448, 448, 448, 0, 0, 0, 0, 0, 0,
11249
0, 0, 0, 0, 0, 448, 0, 448, 448, 448,
11250
448, 448, 448, 448, 0, 448, 448, 0, 448, 448,
11251
448, 448, 448, 448, 448, 448, 448, 448, 0, 448,
11252
448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
11253
448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
11254
448, 0, 347, 0, 0, 0, 368, 448, 347, 1101,
11255
448, 0, 796, 0, 0, 0, 448, 0, 24, 0,
11256
25, 0, 0, 26, 0, 0, 0, 0, 27, 0,
11257
0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
11258
0, 30, 0, 0, 347, 0, 0, 0, 32, 0,
11259
0, 0, 0, 33, 0, 0, 0, 34, 0, 0,
11260
796, 0, 0, 0, 0, 0, 0, 0, 0, 36,
11261
0, 37, 0, 0, 0, 38, 0, 0, 0, 0,
11262
0, 0, 0, 39, 40, 0, 0, 41, 0, 0,
11263
324, 0, 0, 0, 0, 557, 0, 0, 0, 0,
11264
0, 557, 0, 347, 0, 0, 0, 0, 0, 347,
11265
0, 0, 0, 0, 347, 347, 347, 347, 347, 347,
11266
347, 796, 347, 0, 347, 347, 0, 347, 347, 347,
11267
347, 347, 347, 347, 347, 347, 347, 557, 347, 347,
11268
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11269
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11270
0, 0, 0, 0, 347, 0, 347, 0, 0, 347,
11271
0, 368, 0, 0, 0, 347, 0, 0, 557, 0,
11272
0, 0, 629, 557, 0, 557, 557, 557, 557, 557,
11273
557, 557, 557, 557, 557, 557, 0, 0, 0, 0,
11274
0, 0, 0, 0, 0, 0, 0, 557, 0, 557,
11275
0, 557, 0, 557, 557, 557, 0, 557, 557, 0,
11276
557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
11277
0, 0, 0, 557, 557, 557, 557, 557, 557, 557,
11278
557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
11279
557, 579, 557, 0, 0, 0, 0, 579, 0, 0,
11280
0, 0, 0, 0, 0, 629, 0, 0, 557, 0,
11281
629, 0, 629, 629, 629, 629, 629, 629, 629, 629,
11282
629, 629, 629, 0, 0, 0, 0, 0, 0, 0,
11283
0, 0, 0, 579, 629, 0, 629, 0, 629, 0,
11284
629, 629, 629, 0, 0, 0, 0, 0, 0, 0,
11285
0, 0, 0, 0, 0, 0, 629, 0, 0, 586,
11286
0, 0, 0, 0, 0, 586, 0, 0, 0, 0,
11287
0, 0, 0, 0, 579, 0, 0, 0, 0, 579,
11288
0, 579, 579, 579, 579, 579, 579, 579, 579, 579,
11289
579, 579, 0, 0, 0, 629, 0, 0, 0, 0,
11290
0, 586, 0, 579, 0, 579, 0, 579, 0, 579,
11291
579, 579, 0, 579, 579, 0, 0, 579, 579, 579,
11292
579, 579, 579, 579, 579, 579, 0, 0, 0, 579,
11293
579, 579, 579, 579, 579, 579, 579, 0, 0, 0,
11294
0, 0, 586, 0, 0, 0, 0, 586, 579, 586,
11295
586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
11296
0, 0, 0, 587, 579, 0, 0, 0, 0, 587,
11297
0, 586, 0, 586, 0, 586, 0, 586, 586, 586,
11298
0, 586, 586, 0, 0, 586, 586, 586, 586, 0,
11299
0, 0, 586, 586, 0, 0, 0, 586, 586, 586,
11300
586, 586, 586, 586, 586, 587, 0, 0, 0, 0,
11301
0, 0, 0, 0, 0, 0, 586, 0, 0, 0,
11302
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11303
0, 588, 586, 0, 0, 0, 0, 588, 0, 0,
11304
0, 0, 0, 0, 0, 0, 587, 0, 0, 0,
11305
0, 587, 0, 587, 587, 587, 587, 587, 587, 587,
11306
587, 587, 587, 587, 0, 0, 0, 0, 0, 0,
11307
0, 0, 0, 588, 0, 587, 0, 587, 0, 587,
11308
0, 587, 587, 587, 0, 587, 587, 0, 0, 587,
11309
587, 587, 587, 0, 0, 0, 587, 587, 0, 595,
11310
0, 587, 587, 587, 587, 587, 587, 587, 587, 0,
11311
0, 0, 0, 0, 588, 0, 0, 0, 0, 588,
11312
587, 588, 588, 588, 588, 588, 588, 588, 588, 588,
11313
588, 588, 0, 0, 0, 0, 587, 0, 0, 0,
11314
0, 0, 0, 588, 0, 588, 0, 588, 0, 588,
11315
588, 588, 0, 588, 588, 0, 0, 588, 588, 588,
11316
588, 0, 0, 0, 588, 588, 0, 596, 0, 588,
11317
588, 588, 588, 588, 588, 588, 588, 0, 0, 0,
11318
0, 0, 595, 0, 0, 0, 0, 595, 588, 595,
11319
595, 595, 595, 595, 595, 595, 595, 595, 595, 595,
11320
0, 0, 0, 0, 588, 0, 0, 0, 0, 0,
11321
0, 595, 0, 595, 0, 595, 0, 595, 595, 595,
11322
0, 0, 0, 0, 0, 595, 595, 595, 595, 0,
11323
0, 0, 595, 595, 0, 597, 0, 595, 595, 595,
11324
595, 595, 595, 595, 595, 0, 0, 0, 0, 0,
11325
596, 0, 0, 0, 0, 596, 595, 596, 596, 596,
11326
596, 596, 596, 596, 596, 596, 596, 596, 0, 0,
11327
0, 0, 595, 0, 0, 0, 0, 0, 0, 596,
11328
0, 596, 0, 596, 0, 596, 596, 596, 0, 0,
11329
0, 0, 0, 596, 596, 596, 596, 0, 0, 0,
11330
596, 596, 0, 600, 0, 596, 596, 596, 596, 596,
11331
596, 596, 596, 0, 0, 0, 0, 0, 597, 0,
11332
0, 0, 0, 597, 596, 597, 597, 597, 597, 597,
11333
597, 597, 597, 597, 597, 597, 0, 0, 0, 0,
11334
596, 0, 0, 0, 0, 0, 0, 597, 0, 597,
11335
0, 597, 0, 597, 597, 597, 0, 0, 0, 0,
11336
0, 597, 597, 597, 597, 0, 0, 0, 597, 597,
11337
0, 601, 0, 597, 597, 597, 597, 597, 597, 597,
11338
597, 0, 0, 0, 0, 0, 600, 0, 0, 0,
11339
0, 600, 597, 600, 600, 600, 600, 600, 600, 600,
11340
600, 600, 600, 600, 0, 0, 0, 0, 597, 0,
11341
0, 0, 0, 0, 0, 600, 0, 600, 0, 600,
11342
0, 600, 600, 600, 0, 0, 0, 0, 0, 600,
11343
600, 600, 600, 0, 0, 0, 600, 600, 0, 602,
11344
0, 0, 0, 600, 600, 600, 600, 600, 600, 0,
11345
0, 0, 0, 0, 601, 0, 0, 0, 0, 601,
11346
600, 601, 601, 601, 601, 601, 601, 601, 601, 601,
11347
601, 601, 0, 0, 0, 0, 600, 0, 0, 0,
11348
0, 0, 0, 601, 0, 601, 0, 601, 0, 601,
11349
601, 601, 0, 0, 0, 0, 0, 601, 601, 601,
11350
601, 0, 0, 0, 601, 601, 0, 603, 0, 0,
11351
0, 601, 601, 601, 601, 601, 601, 0, 0, 0,
11352
0, 0, 602, 0, 0, 0, 0, 602, 601, 602,
11353
602, 602, 602, 602, 602, 602, 602, 602, 602, 602,
11354
0, 0, 0, 0, 601, 0, 0, 0, 0, 0,
11355
0, 602, 0, 602, 0, 602, 0, 602, 602, 602,
11356
0, 0, 0, 0, 0, 602, 602, 602, 602, 0,
11357
0, 0, 602, 602, 0, 604, 0, 0, 0, 602,
11358
602, 602, 602, 602, 602, 0, 0, 0, 0, 0,
11359
603, 0, 0, 0, 0, 603, 602, 603, 603, 603,
11360
603, 603, 603, 603, 603, 603, 603, 603, 0, 0,
11361
0, 0, 602, 0, 0, 0, 0, 0, 0, 603,
11362
0, 603, 0, 603, 0, 603, 603, 603, 0, 0,
11363
0, 0, 0, 603, 603, 603, 603, 0, 0, 0,
11364
603, 603, 0, 609, 0, 0, 0, 603, 603, 603,
11365
603, 603, 603, 0, 0, 0, 0, 0, 604, 0,
11366
0, 0, 0, 604, 603, 604, 604, 604, 604, 604,
11367
604, 604, 604, 604, 604, 604, 0, 0, 0, 0,
11368
603, 0, 0, 0, 0, 0, 0, 604, 0, 604,
11369
0, 604, 0, 604, 604, 604, 0, 0, 0, 0,
11370
0, 604, 604, 604, 604, 0, 0, 0, 604, 604,
11371
0, 610, 0, 0, 0, 604, 604, 604, 604, 604,
11372
604, 0, 0, 0, 0, 0, 609, 0, 0, 0,
11373
0, 609, 604, 609, 609, 609, 609, 609, 609, 609,
11374
609, 609, 609, 609, 0, 0, 0, 0, 604, 0,
11375
0, 0, 0, 0, 0, 609, 0, 609, 0, 609,
11376
0, 609, 609, 609, 0, 0, 0, 0, 0, 0,
11377
0, 609, 609, 0, 0, 0, 609, 609, 0, 611,
11378
0, 0, 0, 0, 0, 609, 609, 609, 609, 0,
11379
0, 0, 0, 0, 610, 0, 0, 0, 0, 610,
11380
609, 610, 610, 610, 610, 610, 610, 610, 610, 610,
11381
610, 610, 0, 0, 0, 0, 609, 0, 0, 0,
11382
0, 0, 0, 610, 0, 610, 0, 610, 0, 610,
11383
610, 610, 0, 0, 0, 0, 0, 0, 0, 610,
11384
610, 0, 0, 0, 610, 610, 0, 614, 0, 0,
11385
0, 0, 0, 610, 610, 610, 610, 0, 0, 0,
11386
0, 0, 611, 0, 0, 0, 0, 611, 610, 611,
11387
611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
11388
0, 0, 0, 0, 610, 0, 0, 0, 0, 0,
11389
0, 611, 0, 611, 0, 611, 0, 611, 611, 611,
11390
0, 0, 0, 0, 0, 0, 0, 611, 611, 0,
11391
0, 0, 611, 611, 0, 615, 0, 0, 0, 0,
11392
0, 611, 611, 611, 611, 0, 0, 0, 0, 0,
11393
614, 0, 0, 0, 0, 614, 611, 614, 614, 614,
11394
614, 614, 614, 614, 614, 614, 614, 614, 0, 0,
11395
0, 0, 611, 0, 0, 0, 0, 0, 0, 614,
11396
0, 614, 0, 614, 0, 614, 614, 614, 0, 0,
11397
0, 0, 0, 0, 0, 614, 614, 0, 0, 0,
11398
614, 614, 0, 617, 0, 0, 0, 0, 0, 0,
11399
0, 614, 614, 0, 0, 0, 0, 0, 615, 0,
11400
0, 0, 0, 615, 614, 615, 615, 615, 615, 615,
11401
615, 615, 615, 615, 615, 615, 0, 0, 0, 0,
11402
614, 0, 0, 0, 0, 0, 0, 615, 0, 615,
11403
0, 615, 0, 615, 615, 615, 0, 0, 0, 0,
11404
0, 0, 0, 615, 615, 0, 0, 0, 615, 615,
11405
0, 618, 0, 0, 0, 0, 0, 0, 0, 615,
11406
615, 0, 0, 0, 0, 0, 617, 0, 0, 0,
11407
0, 617, 615, 617, 617, 617, 617, 617, 617, 617,
11408
617, 617, 617, 617, 0, 0, 0, 0, 615, 0,
11409
0, 0, 0, 0, 0, 617, 0, 617, 0, 617,
11410
0, 617, 617, 617, 0, 0, 0, 0, 0, 0,
11411
0, 0, 617, 0, 0, 0, 617, 617, 0, 620,
11412
0, 0, 0, 0, 0, 0, 0, 617, 617, 0,
11413
0, 0, 0, 0, 618, 0, 0, 0, 0, 618,
11414
617, 618, 618, 618, 618, 618, 618, 618, 618, 618,
11415
618, 618, 0, 0, 0, 0, 617, 0, 0, 0,
11416
0, 0, 0, 618, 0, 618, 0, 618, 0, 618,
11417
618, 618, 0, 0, 0, 0, 0, 0, 0, 0,
11418
618, 0, 0, 0, 618, 618, 0, 621, 0, 0,
11419
0, 0, 0, 0, 0, 618, 618, 0, 0, 0,
11420
0, 0, 620, 0, 0, 0, 0, 620, 618, 620,
11421
620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
11422
0, 0, 0, 0, 618, 0, 0, 0, 0, 0,
11423
0, 620, 0, 620, 0, 620, 0, 620, 620, 620,
11424
0, 0, 0, 0, 0, 0, 0, 0, 620, 0,
11425
0, 0, 0, 620, 0, 623, 0, 0, 0, 0,
11426
0, 0, 0, 620, 620, 0, 0, 0, 0, 0,
11427
621, 0, 0, 0, 0, 621, 620, 621, 621, 621,
11428
621, 621, 621, 621, 621, 621, 621, 621, 0, 0,
11429
0, 0, 620, 0, 0, 0, 0, 0, 0, 621,
11430
0, 621, 0, 621, 0, 621, 621, 621, 0, 0,
11431
0, 0, 0, 0, 0, 0, 621, 0, 0, 0,
11432
0, 621, 0, 624, 0, 0, 0, 0, 0, 0,
11433
0, 621, 621, 0, 0, 0, 0, 0, 623, 0,
11434
0, 0, 0, 623, 621, 623, 623, 623, 623, 623,
11435
623, 623, 623, 623, 623, 623, 0, 0, 0, 0,
11436
621, 0, 0, 0, 0, 0, 0, 623, 0, 623,
11437
0, 623, 0, 623, 623, 623, 0, 0, 0, 0,
11438
0, 0, 0, 0, 0, 0, 0, 0, 0, 623,
11439
0, 626, 0, 0, 0, 0, 0, 0, 0, 623,
11440
623, 0, 0, 0, 0, 0, 624, 0, 0, 0,
11441
0, 624, 623, 624, 624, 624, 624, 624, 624, 624,
11442
624, 624, 624, 624, 0, 0, 0, 0, 623, 0,
11443
0, 0, 0, 0, 0, 624, 0, 624, 0, 624,
11444
0, 624, 624, 624, 0, 0, 0, 627, 0, 0,
11445
0, 0, 0, 0, 0, 0, 0, 624, 0, 0,
11446
0, 0, 0, 0, 0, 0, 0, 624, 624, 0,
11447
0, 0, 0, 0, 626, 0, 0, 0, 0, 626,
11448
624, 626, 626, 626, 626, 626, 626, 626, 626, 626,
11449
626, 626, 0, 0, 0, 0, 624, 0, 0, 0,
11450
0, 0, 0, 626, 0, 626, 0, 626, 0, 626,
11451
626, 626, 0, 0, 0, 0, 347, 0, 0, 0,
11452
796, 0, 0, 0, 0, 626, 0, 0, 0, 0,
11453
627, 0, 0, 0, 0, 627, 626, 627, 627, 627,
11454
627, 627, 627, 627, 627, 627, 627, 627, 626, 0,
11455
0, 0, 347, 0, 0, 0, 0, 0, 0, 627,
11456
0, 627, 0, 627, 626, 627, 627, 627, 796, 0,
11457
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11458
0, 627, 0, 0, 0, 0, 0, 0, 0, 0,
11459
0, 0, 627, 0, 0, 0, 0, 0, 0, 0,
11460
0, 0, 0, 0, 627, 0, 0, 0, 0, 0,
11461
0, 347, 0, 0, 0, 0, 0, 347, 0, 0,
11462
627, 0, 347, 347, 0, 347, 0, 347, 0, 796,
11463
347, 0, 347, 347, 0, 347, 347, 347, 347, 347,
11464
347, 347, 347, 347, 347, 0, 347, 347, 347, 347,
11465
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
11466
347, 347, 347, 347, 347, 347, 347, 347, 0, 0,
11467
571, 0, 347, 0, 347, 0, 0, 347, 56, 24,
11468
57, 25, 1129, 347, 26, 58, 0, 59, 60, 27,
11469
61, 62, 63, 28, 0, 0, 0, 0, 0, 64,
11470
0, 65, 30, 66, 67, 68, 69, 0, 0, 32,
11471
0, 0, 0, 70, 33, 0, 71, 72, 34, 0,
11472
0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
11473
36, 0, 37, 74, 0, 0, 38, 0, 75, 76,
11474
77, 78, 79, 80, 39, 40, 81, 82, 41, 83,
11475
0, 84, 0, 0, 85, 86, 0, 0, 87, 88,
11476
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11477
0, 0, 0, 89, 90, 91, 92, 93, 0, 0,
11478
0, 94, 0, 0, 0, 95, 0, 0, 0, 0,
11479
96, 97, 98, 99, 100, 0, 0, 0, 101, 0,
11480
102, 0, 0, 0, 0, 0, 103, 104, 0, 0,
11481
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11482
0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
11483
0, 105, 572, 107, 108, 0, 1130, 56, 24, 57,
11484
25, 0, 0, 26, 58, 0, 59, 60, 27, 61,
11485
62, 63, 28, 0, 0, 0, 0, 0, 64, 0,
11486
65, 30, 66, 67, 68, 69, 0, 0, 32, 0,
11487
0, 0, 70, 33, 0, 71, 72, 34, 0, 0,
11488
0, 0, 0, 0, 0, 0, 0, 73, 0, 36,
11489
0, 37, 74, 0, 0, 38, 0, 75, 76, 77,
11490
78, 79, 80, 39, 40, 81, 82, 41, 83, 0,
11491
84, 0, 0, 85, 86, 0, 0, 87, 88, 0,
11492
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11493
0, 0, 89, 90, 91, 92, 93, 0, 0, 0,
11494
94, 0, 0, 0, 95, 0, 0, 0, 0, 96,
11495
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
11496
0, 0, 0, 0, 0, 103, 104, 0, 0, 0,
11497
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11498
0, 0, 0, 0, 0, 0, 266, 0, 0, 0,
11499
105, 106, 107, 108, 56, 24, 57, 25, 0, 0,
11500
26, 58, 0, 59, 60, 27, 61, 62, 63, 28,
11501
0, 0, 0, 0, 0, 64, 0, 65, 30, 66,
11502
67, 68, 69, 0, 0, 32, 0, 0, 0, 70,
11503
33, 0, 71, 72, 34, 0, 0, 0, 0, 0,
11504
0, 0, 0, 0, 73, 0, 36, 0, 37, 74,
11505
0, 0, 38, 0, 75, 76, 77, 78, 79, 80,
11506
39, 40, 81, 82, 41, 83, 0, 84, 0, 0,
11507
85, 86, 0, 0, 87, 88, 0, 0, 0, 0,
11508
0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
11509
90, 91, 92, 93, 0, 0, 0, 94, 0, 0,
11510
0, 95, 0, 0, 0, 0, 96, 97, 98, 99,
11511
100, 0, 0, 0, 101, 0, 102, 0, 0, 0,
11512
0, 0, 103, 104, 0, 0, 0, 0, 0, 0,
11513
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11514
0, 0, 0, 571, 0, 0, 0, 105, 106, 107,
11515
108, 56, 24, 57, 25, 0, 0, 26, 58, 0,
11516
59, 60, 27, 61, 62, 63, 28, 0, 0, 0,
11517
0, 0, 64, 0, 65, 30, 66, 67, 68, 69,
11518
0, 0, 32, 0, 0, 0, 70, 33, 0, 71,
11519
72, 34, 0, 0, 0, 0, 0, 0, 0, 0,
11520
0, 73, 0, 36, 0, 37, 74, 0, 0, 38,
11521
0, 75, 76, 77, 78, 79, 80, 39, 40, 81,
11522
82, 41, 83, 0, 84, 0, 0, 85, 86, 0,
11523
0, 87, 88, 0, 0, 0, 0, 0, 0, 0,
11524
0, 0, 0, 0, 0, 0, 89, 90, 91, 92,
11525
93, 0, 0, 0, 94, 0, 0, 0, 95, 0,
11526
0, 0, 0, 96, 97, 98, 99, 100, 0, 0,
11527
0, 101, 0, 102, 0, 0, 0, 0, 0, 103,
11528
104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11529
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11530
1006, 0, 0, 0, 105, 572, 107, 108, 1006, 1006,
11531
1006, 1006, 0, 0, 1006, 1006, 0, 1006, 1006, 1006,
11532
1006, 1006, 1006, 1006, 0, 0, 0, 0, 0, 1006,
11533
0, 1006, 1006, 1006, 1006, 1006, 1006, 0, 0, 1006,
11534
0, 0, 0, 1006, 1006, 0, 1006, 1006, 1006, 0,
11535
0, 0, 0, 0, 0, 0, 0, 0, 1006, 0,
11536
1006, 0, 1006, 1006, 0, 0, 1006, 0, 1006, 1006,
11537
1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
11538
0, 1006, 0, 0, 1006, 1006, 0, 0, 1006, 1006,
11539
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11540
0, 0, 0, 1006, 1006, 1006, 1006, 1006, 0, 0,
11541
0, 1006, 0, 0, 0, 1006, 0, 0, 0, 0,
11542
1006, 1006, 1006, 1006, 1006, 0, 0, 0, 1006, 0,
11543
1006, 0, 0, 0, 0, 0, 1006, 1006, 0, 0,
11544
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11545
0, 0, 0, 0, 0, 0, 0, 612, 0, 0,
11546
0, 1006, 1006, 1006, 1006, 56, 24, 0, 25, 0,
11547
0, 26, 254, 0, 0, 0, 27, 61, 62, 0,
11548
28, 0, 0, 182, 0, 182, 64, 0, 182, 30,
11549
0, 0, 0, 182, 0, 0, 32, 182, 0, 0,
11550
0, 33, 0, 71, 72, 34, 182, 613, 0, 0,
11551
0, 0, 0, 182, 614, 0, 0, 36, 182, 37,
11552
74, 0, 182, 38, 0, 0, 76, 0, 78, 0,
11553
80, 39, 40, 255, 182, 41, 182, 0, 0, 0,
11554
182, 0, 615, 0, 0, 87, 88, 0, 182, 182,
11555
0, 0, 182, 0, 0, 182, 0, 0, 0, 0,
11556
89, 90, 91, 92, 93, 0, 0, 0, 0, 0,
11557
0, 0, 95, 0, 0, 616, 0, 0, 97, 98,
11558
99, 100, 0, 0, 0, 101, 0, 102, 0, 0,
11559
1030, 0, 0, 103, 104, 0, 0, 0, 0, 0,
11560
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11561
0, 0, 0, 0, 785, 0, 0, 0, 105, 106,
11562
107, 108, 56, 24, 0, 25, 0, 0, 26, 254,
11563
0, 0, 0, 27, 61, 62, 182, 28, 0, 0,
11564
182, 0, 182, 64, 0, 182, 30, 0, 0, 0,
11565
182, 0, 0, 32, 182, 0, 0, 0, 33, 0,
11566
71, 72, 34, 182, 0, 0, 0, 0, 0, 0,
11567
182, 0, 0, 0, 36, 182, 37, 74, 0, 182,
11568
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
11569
255, 182, 41, 182, 0, 0, 0, 182, 0, 86,
11570
0, 0, 87, 88, 0, 182, 182, 0, 0, 182,
11571
0, 0, 182, 0, 0, 0, 0, 89, 90, 91,
11572
92, 302, 0, 0, 0, 531, 786, 0, 0, 95,
11573
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
11574
0, 0, 101, 0, 102, 1030, 0, 0, 0, 0,
11575
103, 104, 0, 0, 0, 0, 0, 0, 0, 0,
11576
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11577
0, 976, 0, 0, 0, 105, 303, 107, 108, 56,
11578
24, 0, 25, 0, 0, 26, 254, 0, 0, 0,
11579
27, 61, 62, 182, 28, 0, 0, 24, 0, 25,
11580
64, 0, 26, 30, 0, 0, 0, 27, 0, 0,
11581
32, 28, 0, 0, 0, 33, 0, 71, 72, 34,
11582
30, 613, 0, 0, 0, 0, 0, 32, 614, 0,
11583
0, 36, 33, 37, 74, 0, 34, 38, 0, 0,
11584
76, 0, 78, 0, 80, 39, 40, 255, 36, 41,
11585
37, 0, 0, 0, 38, 0, 615, 0, 0, 87,
11586
88, 0, 39, 40, 0, 0, 41, 0, 0, 324,
11587
0, 0, 0, 0, 89, 90, 91, 92, 93, 0,
11588
0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
11589
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
11590
0, 102, 0, 0, 0, 0, 0, 103, 104, 0,
11591
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11592
0, 0, 0, 0, 0, 0, 0, 0, 785, 0,
11593
0, 0, 105, 106, 107, 108, 56, 24, 0, 25,
11594
0, 0, 26, 254, 0, 0, 0, 27, 61, 62,
11595
368, 28, 0, 0, 24, 0, 25, 64, 0, 26,
11596
30, 0, 0, 0, 27, 0, 0, 32, 28, 0,
11597
0, 0, 33, 0, 71, 72, 34, 30, 0, 0,
11598
0, 0, 0, 0, 32, 0, 0, 0, 36, 33,
11599
37, 74, 982, 34, 38, 0, 0, 76, 0, 78,
11600
0, 80, 39, 40, 255, 36, 41, 37, 0, 0,
11601
0, 38, 0, 86, 0, 0, 87, 88, 0, 39,
11602
40, 0, 0, 41, 0, 0, 533, 0, 0, 0,
11603
0, 89, 90, 91, 92, 302, 0, 0, 0, 531,
11604
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
11605
98, 99, 100, 0, 0, 0, 101, 0, 102, 0,
11606
0, 0, 0, 0, 103, 104, 0, 0, 0, 0,
11607
0, 0, 56, 24, 0, 25, 0, 0, 26, 254,
11608
0, 0, 0, 27, 61, 62, 0, 28, 0, 105,
11609
303, 107, 108, 64, 0, 0, 30, 0, 0, 0,
11610
0, 0, 0, 32, 0, 0, 0, 368, 33, 0,
11611
71, 72, 34, 0, 0, 0, 0, 0, 0, 0,
11612
0, 0, 0, 0, 36, 0, 37, 74, 0, 0,
11613
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
11614
255, 0, 41, 0, 0, 0, 0, 0, 0, 86,
11615
0, 0, 87, 88, 0, 0, 0, 0, 0, 0,
11616
0, 0, 0, 0, 0, 0, 0, 89, 90, 91,
11617
92, 768, 0, 0, 0, 769, 1050, 0, 0, 95,
11618
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
11619
0, 0, 101, 0, 102, 0, 0, 0, 0, 0,
11620
103, 104, 0, 0, 0, 0, 0, 0, 56, 24,
11621
0, 25, 0, 0, 26, 254, 0, 0, 0, 27,
11622
61, 62, 0, 28, 0, 105, 770, 107, 108, 64,
11623
0, 0, 30, 0, 0, 0, 771, 0, 0, 32,
11624
0, 0, 0, 0, 33, 0, 71, 72, 34, 0,
11625
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11626
36, 0, 37, 74, 0, 0, 38, 0, 0, 76,
11627
0, 78, 0, 80, 39, 40, 255, 0, 41, 0,
11628
0, 0, 0, 0, 0, 86, 0, 0, 87, 88,
11629
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11630
0, 0, 0, 89, 90, 91, 92, 768, 0, 0,
11631
0, 769, 0, 0, 0, 95, 0, 0, 0, 0,
11632
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
11633
102, 0, 0, 0, 0, 0, 103, 104, 0, 0,
11634
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11635
0, 0, 0, 0, 0, 0, 0, 0, 0, 785,
11636
0, 105, 770, 107, 108, 0, 0, 56, 24, 0,
11637
25, 0, 771, 26, 254, 0, 0, 0, 27, 61,
11638
62, 0, 28, 0, 0, 24, 0, 25, 64, 0,
11639
26, 30, 0, 0, 0, 27, 0, 0, 32, 28,
11640
0, 0, 0, 33, 0, 71, 72, 34, 30, 0,
11641
0, 0, 0, 0, 0, 32, 0, 0, 0, 36,
11642
33, 37, 74, 0, 34, 38, 0, 0, 76, 0,
11643
78, 0, 80, 39, 40, 255, 36, 41, 37, 0,
11644
0, 0, 38, 0, 86, 0, 0, 87, 88, 0,
11645
39, 40, 0, 0, 41, 0, 0, 588, 0, 0,
11646
0, 0, 89, 90, 91, 92, 302, 0, 0, 0,
11647
531, 0, 0, 0, 95, 0, 0, 0, 0, 0,
11648
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
11649
0, 0, 0, 0, 0, 103, 104, 0, 0, 0,
11650
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11651
0, 0, 0, 0, 0, 0, 777, 0, 0, 0,
11652
105, 303, 107, 108, 56, 24, 0, 25, 0, 0,
11653
26, 254, 0, 0, 0, 27, 61, 62, 368, 28,
11654
0, 0, 24, 0, 25, 64, 0, 26, 30, 0,
11655
0, 0, 27, 0, 0, 32, 28, 0, 0, 0,
11656
33, 0, 71, 72, 34, 30, 0, 0, 0, 0,
11657
0, 0, 32, 0, 0, 0, 36, 33, 37, 74,
11658
0, 34, 38, 0, 0, 76, 0, 78, 0, 80,
11659
39, 40, 255, 36, 41, 37, 0, 0, 0, 38,
11660
0, 86, 0, 0, 87, 88, 0, 39, 40, 0,
11661
0, 41, 0, 0, 801, 0, 0, 0, 0, 89,
11662
90, 91, 92, 302, 0, 0, 0, 0, 934, 0,
11663
0, 95, 0, 0, 0, 0, 0, 97, 98, 99,
11664
100, 0, 0, 0, 101, 0, 102, 0, 0, 0,
11665
0, 0, 103, 104, 0, 0, 0, 0, 0, 0,
11666
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11667
0, 0, 0, 979, 0, 0, 0, 105, 303, 107,
11668
108, 56, 24, 0, 25, 0, 0, 26, 254, 0,
11669
0, 0, 27, 61, 62, 368, 28, 0, 0, 502,
11670
0, 502, 64, 0, 502, 30, 0, 0, 0, 502,
11671
0, 0, 32, 502, 0, 0, 0, 33, 0, 71,
11672
72, 34, 502, 0, 0, 0, 0, 0, 0, 502,
11673
0, 0, 0, 36, 502, 37, 74, 0, 502, 38,
11674
0, 0, 76, 0, 78, 0, 80, 39, 40, 255,
11675
502, 41, 502, 0, 0, 0, 502, 0, 86, 0,
11676
0, 87, 88, 0, 502, 502, 0, 0, 502, 0,
11677
0, 502, 0, 0, 0, 0, 89, 90, 91, 92,
11678
302, 0, 0, 0, 0, 980, 0, 0, 95, 0,
11679
0, 0, 0, 0, 97, 98, 99, 100, 0, 0,
11680
0, 101, 0, 102, 0, 0, 0, 0, 0, 103,
11681
104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11682
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11683
301, 0, 0, 0, 105, 303, 107, 108, 56, 24,
11684
0, 25, 0, 0, 26, 254, 0, 0, 0, 27,
11685
61, 62, 502, 28, 0, 0, 183, 0, 183, 64,
11686
0, 183, 30, 0, 0, 0, 183, 0, 0, 32,
11687
183, 0, 0, 0, 33, 0, 71, 72, 34, 183,
11688
0, 0, 0, 0, 0, 0, 183, 0, 0, 0,
11689
36, 183, 37, 74, 0, 183, 38, 0, 0, 76,
11690
0, 78, 0, 80, 39, 40, 255, 183, 41, 183,
11691
0, 0, 0, 183, 0, 86, 0, 0, 87, 88,
11692
0, 183, 183, 0, 0, 183, 0, 0, 183, 0,
11693
0, 0, 0, 89, 90, 91, 92, 302, 0, 0,
11694
0, 0, 0, 0, 0, 95, 0, 0, 0, 0,
11695
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
11696
102, 0, 0, 0, 0, 0, 103, 104, 0, 0,
11697
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11698
0, 0, 0, 0, 0, 0, 0, 310, 0, 0,
11699
0, 105, 303, 107, 108, 56, 24, 0, 25, 0,
11700
0, 26, 254, 0, 0, 0, 27, 61, 62, 183,
11701
28, 0, 0, 182, 0, 182, 64, 0, 182, 30,
11702
0, 0, 0, 182, 0, 0, 32, 182, 0, 0,
11703
0, 33, 0, 71, 72, 34, 182, 0, 0, 0,
11704
0, 0, 0, 182, 0, 0, 0, 36, 182, 37,
11705
74, 0, 182, 38, 0, 0, 76, 0, 78, 0,
11706
80, 39, 40, 255, 182, 41, 182, 0, 0, 0,
11707
182, 0, 86, 0, 0, 87, 88, 0, 182, 182,
11708
0, 0, 182, 0, 0, 182, 0, 0, 0, 0,
11709
89, 90, 91, 92, 302, 0, 0, 0, 0, 0,
11710
0, 0, 95, 0, 0, 0, 0, 0, 97, 98,
11711
99, 100, 0, 0, 0, 101, 0, 102, 0, 0,
11712
0, 0, 0, 103, 104, 0, 0, 0, 0, 0,
11713
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11714
0, 0, 0, 0, 610, 0, 0, 0, 105, 303,
11715
107, 108, 56, 24, 0, 25, 0, 0, 26, 254,
11716
0, 0, 0, 27, 61, 62, 182, 28, 0, 0,
11717
192, 0, 192, 64, 0, 192, 30, 0, 0, 0,
11718
192, 0, 0, 32, 192, 0, 0, 0, 33, 0,
11719
71, 72, 34, 192, 0, 0, 0, 0, 0, 0,
11720
192, 0, 0, 0, 36, 192, 37, 74, 0, 192,
11721
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
11722
255, 192, 41, 192, 0, 0, 0, 192, 0, 86,
11723
0, 0, 87, 88, 0, 192, 192, 0, 0, 192,
11724
0, 0, 192, 0, 0, 0, 0, 89, 90, 91,
11725
92, 93, 0, 0, 0, 0, 0, 0, 0, 95,
11726
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
11727
0, 0, 101, 0, 102, 0, 0, 0, 0, 0,
11728
103, 104, 0, 0, 0, 0, 0, 0, 0, 0,
11729
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11730
0, 777, 0, 0, 0, 105, 106, 107, 108, 56,
11731
24, 0, 25, 0, 0, 26, 254, 0, 0, 0,
11732
27, 61, 62, 192, 28, 0, 0, 0, 0, 0,
11733
64, 0, 0, 30, 0, 0, 0, 0, 0, 0,
11734
32, 0, 0, 0, 0, 33, 0, 71, 72, 34,
11735
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11736
0, 36, 0, 37, 74, 0, 0, 38, 0, 0,
11737
76, 0, 78, 0, 80, 39, 40, 255, 0, 41,
11738
0, 0, 0, 0, 0, 0, 86, 0, 0, 87,
11739
88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11740
0, 0, 0, 0, 89, 90, 91, 92, 302, 0,
11741
0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
11742
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
11743
0, 102, 0, 0, 0, 0, 0, 103, 104, 0,
11744
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11745
0, 0, 0, 0, 0, 0, 0, 0, 1092, 0,
11746
0, 0, 105, 303, 107, 108, 56, 24, 0, 25,
11747
0, 0, 26, 254, 0, 0, 0, 27, 61, 62,
11748
0, 28, 0, 0, 0, 0, 0, 64, 0, 0,
11749
30, 0, 0, 0, 0, 0, 0, 32, 0, 0,
11750
0, 0, 33, 0, 71, 72, 34, 0, 0, 0,
11751
0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
11752
37, 74, 0, 0, 38, 0, 0, 76, 0, 78,
11753
0, 80, 39, 40, 255, 0, 41, 0, 0, 0,
11754
0, 0, 0, 86, 0, 0, 87, 88, 0, 0,
11755
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11756
0, 89, 90, 91, 92, 93, 0, 0, 0, 0,
11757
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
11758
98, 99, 100, 0, 0, 0, 101, 0, 102, 0,
11759
0, 0, 0, 0, 103, 104, 0, 0, 0, 0,
11760
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11761
0, 0, 0, 0, 0, 1237, 0, 0, 0, 105,
11762
1093, 107, 108, 56, 24, 0, 25, 0, 0, 26,
11763
254, 0, 0, 0, 27, 61, 62, 0, 28, 0,
11764
0, 0, 0, 0, 64, 0, 0, 30, 0, 0,
11765
0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
11766
0, 71, 72, 34, 0, 0, 0, 0, 0, 0,
11767
0, 0, 0, 0, 0, 36, 0, 37, 74, 0,
11768
0, 38, 0, 0, 76, 0, 78, 0, 80, 39,
11769
40, 255, 0, 41, 0, 0, 0, 0, 0, 0,
11770
86, 0, 0, 87, 88, 0, 0, 0, 0, 0,
11771
0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
11772
91, 92, 302, 0, 0, 0, 0, 0, 0, 0,
11773
95, 0, 0, 0, 0, 0, 97, 98, 99, 100,
11774
0, 0, 0, 101, 0, 102, 0, 0, 0, 0,
11775
0, 103, 104, 0, 0, 0, 0, 0, 0, 0,
11776
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11777
0, 0, 340, 0, 0, 0, 105, 303, 107, 108,
11778
56, 24, 0, 25, 0, 0, 26, 254, 0, 0,
11779
0, 27, 61, 62, 0, 28, 0, 0, 0, 0,
11780
0, 64, 0, 0, 30, 0, 0, 0, 0, 0,
11781
0, 32, 0, 0, 0, 0, 33, 0, 71, 72,
11782
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11783
0, 0, 36, 0, 37, 74, 0, 0, 38, 0,
11784
0, 76, 0, 78, 0, 80, 39, 40, 255, 0,
11785
41, 0, 0, 0, 0, 0, 0, 0, 0, 341,
11786
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11787
0, 0, 0, 0, 0, 89, 90, 91, 256, 342,
11788
0, 0, 0, 0, 0, 0, 0, 95, 0, 0,
11789
0, 0, 0, 97, 98, 99, 100, 933, 0, 0,
11790
101, 0, 102, 340, 0, 0, 0, 0, 103, 104,
11791
0, 56, 24, 0, 25, 0, 0, 26, 254, 0,
11792
0, 0, 27, 61, 62, 0, 28, 0, 0, 0,
11793
0, 0, 64, 105, 257, 30, 108, 0, 0, 0,
11794
0, 0, 32, 0, 0, 0, 0, 33, 0, 71,
11795
72, 34, 0, 0, 0, 0, 0, 0, 0, 0,
11796
0, 0, 0, 36, 0, 37, 74, 0, 0, 38,
11797
0, 0, 76, 0, 78, 0, 80, 39, 40, 255,
11798
0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
11799
341, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11800
0, 0, 0, 0, 0, 0, 89, 90, 91, 256,
11801
342, 0, 0, 0, 0, 0, 0, 0, 95, 0,
11802
0, 0, 0, 0, 97, 98, 99, 100, 0, 0,
11803
0, 101, 0, 102, 346, 0, 0, 0, 0, 103,
11804
104, 0, 56, 24, 0, 25, 0, 0, 26, 254,
11805
0, 0, 0, 27, 61, 62, 0, 28, 0, 0,
11806
0, 0, 0, 64, 105, 257, 30, 108, 0, 0,
11807
0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
11808
71, 72, 34, 0, 0, 0, 0, 0, 0, 0,
11809
0, 0, 0, 0, 36, 0, 37, 74, 0, 0,
11810
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
11811
255, 0, 41, 0, 0, 0, 0, 0, 0, 0,
11812
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11813
0, 0, 0, 0, 0, 0, 0, 89, 90, 91,
11814
256, 342, 0, 0, 0, 0, 0, 0, 0, 95,
11815
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
11816
0, 0, 101, 0, 102, 348, 0, 0, 0, 0,
11817
103, 104, 0, 56, 24, 0, 25, 0, 0, 26,
11818
254, 0, 0, 0, 27, 61, 62, 0, 28, 0,
11819
0, 0, 0, 0, 64, 105, 257, 30, 108, 0,
11820
0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
11821
0, 71, 72, 34, 0, 0, 0, 0, 0, 0,
11822
0, 0, 0, 0, 0, 36, 0, 37, 74, 0,
11823
0, 38, 0, 0, 76, 0, 78, 0, 80, 39,
11824
40, 255, 0, 41, 0, 0, 0, 0, 0, 0,
11825
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11826
0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
11827
91, 256, 342, 0, 0, 0, 0, 0, 0, 0,
11828
95, 0, 0, 0, 0, 0, 97, 98, 99, 100,
11829
0, 0, 0, 101, 0, 102, 350, 0, 0, 0,
11830
0, 103, 104, 0, 56, 24, 0, 25, 0, 0,
11831
26, 254, 0, 0, 0, 27, 61, 62, 0, 28,
11832
0, 0, 0, 0, 0, 64, 105, 257, 30, 108,
11833
0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
11834
33, 0, 71, 72, 34, 0, 0, 0, 0, 0,
11835
0, 0, 0, 0, 0, 0, 36, 0, 37, 74,
11836
0, 0, 38, 0, 0, 76, 0, 78, 0, 80,
11837
39, 40, 255, 0, 41, 0, 0, 0, 0, 0,
11838
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11839
0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
11840
90, 91, 256, 342, 0, 0, 0, 0, 0, 0,
11841
0, 95, 0, 0, 0, 0, 0, 97, 98, 99,
11842
100, 0, 0, 0, 101, 0, 102, 352, 0, 0,
11843
0, 0, 103, 104, 0, 56, 24, 0, 25, 0,
11844
0, 26, 254, 0, 0, 0, 27, 61, 62, 0,
11845
28, 0, 0, 0, 0, 0, 64, 105, 257, 30,
11846
108, 0, 0, 0, 0, 0, 32, 0, 0, 0,
11847
0, 33, 0, 71, 72, 34, 0, 0, 0, 0,
11848
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
11849
74, 0, 0, 38, 0, 0, 76, 0, 78, 0,
11850
80, 39, 40, 255, 0, 41, 0, 0, 0, 0,
11851
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11852
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11853
89, 90, 91, 256, 342, 0, 0, 0, 0, 0,
11854
0, 0, 95, 0, 0, 0, 0, 0, 97, 98,
11855
99, 100, 0, 0, 0, 101, 0, 102, 354, 0,
11856
0, 0, 0, 103, 104, 0, 56, 24, 0, 25,
11857
0, 0, 26, 254, 0, 0, 0, 27, 61, 62,
11858
0, 28, 0, 0, 0, 0, 0, 64, 105, 257,
11859
30, 108, 0, 0, 0, 0, 0, 32, 0, 0,
11860
0, 0, 33, 0, 71, 72, 34, 0, 0, 0,
11861
0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
11862
37, 74, 0, 0, 38, 0, 0, 76, 0, 78,
11863
0, 80, 39, 40, 255, 0, 41, 0, 0, 0,
11864
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11865
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11866
0, 89, 90, 91, 256, 342, 0, 0, 0, 0,
11867
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
11868
98, 99, 100, 0, 0, 0, 101, 0, 102, 356,
11869
0, 0, 0, 0, 103, 104, 0, 56, 24, 0,
11870
25, 0, 0, 26, 254, 0, 0, 0, 27, 61,
11871
62, 0, 28, 0, 0, 0, 0, 0, 64, 105,
11872
257, 30, 108, 0, 0, 0, 0, 0, 32, 0,
11873
0, 0, 0, 33, 0, 71, 72, 34, 0, 0,
11874
0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
11875
0, 37, 74, 0, 0, 38, 0, 0, 76, 0,
11876
78, 0, 80, 39, 40, 255, 0, 41, 0, 0,
11877
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11878
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11879
0, 0, 89, 90, 91, 256, 342, 0, 0, 0,
11880
0, 0, 0, 0, 95, 0, 0, 0, 0, 0,
11881
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
11882
358, 0, 0, 0, 0, 103, 104, 0, 56, 24,
11883
0, 25, 0, 0, 26, 254, 0, 0, 0, 27,
11884
61, 62, 0, 28, 0, 0, 0, 0, 0, 64,
11885
105, 257, 30, 108, 0, 0, 0, 0, 0, 32,
11886
0, 0, 0, 0, 33, 0, 71, 72, 34, 0,
11887
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11888
36, 0, 37, 74, 0, 0, 38, 0, 0, 76,
11889
0, 78, 0, 80, 39, 40, 255, 0, 41, 0,
11890
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11891
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11892
0, 0, 0, 89, 90, 91, 256, 342, 0, 0,
11893
0, 0, 0, 0, 0, 95, 0, 0, 0, 0,
11894
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
11895
102, 360, 0, 0, 0, 0, 103, 104, 0, 56,
11896
24, 0, 25, 0, 0, 26, 254, 0, 0, 0,
11897
27, 61, 62, 0, 28, 0, 0, 0, 0, 0,
11898
64, 105, 257, 30, 108, 0, 0, 0, 0, 0,
11899
32, 0, 0, 0, 0, 33, 0, 71, 72, 34,
11900
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11901
0, 36, 0, 37, 74, 0, 0, 38, 0, 0,
11902
76, 0, 78, 0, 80, 39, 40, 255, 0, 41,
11903
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11904
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11905
0, 0, 0, 0, 89, 90, 91, 256, 342, 0,
11906
0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
11907
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
11908
0, 102, 340, 0, 0, 0, 0, 103, 104, 0,
11909
56, 24, 0, 25, 0, 0, 26, 254, 0, 0,
11910
0, 27, 61, 62, 0, 28, 0, 0, 0, 0,
11911
0, 64, 105, 257, 30, 108, 0, 0, 0, 0,
11912
0, 32, 0, 0, 0, 0, 33, 0, 71, 72,
11913
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11914
0, 0, 36, 0, 37, 74, 0, 0, 38, 0,
11915
0, 76, 0, 78, 0, 80, 39, 40, 255, 0,
11916
41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11917
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11918
0, 0, 0, 0, 0, 89, 90, 91, 256, 342,
11919
0, 0, 0, 0, 0, 0, 0, 95, 0, 0,
11920
0, 0, 0, 97, 98, 99, 100, 0, 0, 0,
11921
101, 0, 102, 635, 0, 0, 0, 0, 103, 104,
11922
0, 56, 24, 0, 25, 0, 0, 26, 254, 0,
11923
0, 0, 27, 61, 62, 0, 28, 0, 0, 0,
11924
0, 0, 64, 105, 257, 30, 108, 0, 0, 0,
11925
0, 0, 32, 0, 0, 0, 0, 33, 0, 71,
11926
72, 34, 0, 0, 0, 0, 0, 0, 0, 0,
11927
0, 0, 0, 36, 0, 37, 74, 0, 0, 38,
11928
0, 0, 76, 0, 78, 0, 80, 39, 40, 255,
11929
0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
11930
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11931
0, 0, 0, 0, 0, 0, 89, 90, 91, 256,
11932
342, 0, 0, 0, 0, 0, 0, 0, 95, 0,
11933
0, 0, 0, 0, 97, 98, 99, 100, 0, 0,
11934
0, 101, 0, 102, 637, 0, 0, 0, 0, 103,
11935
104, 0, 56, 24, 0, 25, 0, 0, 26, 254,
11936
0, 0, 0, 27, 61, 62, 0, 28, 0, 0,
11937
0, 0, 0, 64, 105, 257, 30, 108, 0, 0,
11938
0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
11939
71, 72, 34, 0, 0, 0, 0, 0, 0, 0,
11940
0, 0, 0, 0, 36, 0, 37, 74, 0, 0,
11941
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
11942
255, 0, 41, 0, 0, 0, 0, 0, 0, 0,
11943
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11944
0, 0, 0, 0, 0, 0, 0, 89, 90, 91,
11945
256, 342, 0, 0, 0, 0, 0, 0, 0, 95,
11946
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
11947
0, 0, 101, 0, 102, 639, 0, 0, 0, 0,
11948
103, 104, 0, 56, 24, 0, 25, 0, 0, 26,
11949
254, 0, 0, 0, 27, 61, 62, 0, 28, 0,
11950
0, 0, 0, 0, 64, 105, 257, 30, 108, 0,
11951
0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
11952
0, 71, 72, 34, 0, 0, 0, 0, 0, 0,
11953
0, 0, 0, 0, 0, 36, 0, 37, 74, 0,
11954
0, 38, 0, 0, 76, 0, 78, 0, 80, 39,
11955
40, 255, 0, 41, 0, 0, 0, 0, 0, 0,
11956
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11957
0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
11958
91, 256, 342, 0, 0, 0, 0, 0, 0, 0,
11959
95, 0, 0, 0, 0, 0, 97, 98, 99, 100,
11960
0, 0, 0, 101, 0, 102, 645, 0, 0, 0,
11961
0, 103, 104, 0, 56, 24, 0, 25, 0, 0,
11962
26, 254, 0, 0, 0, 27, 61, 62, 0, 28,
11963
0, 0, 0, 0, 0, 64, 105, 257, 30, 108,
11964
0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
11965
33, 0, 71, 72, 34, 0, 0, 0, 0, 0,
11966
0, 0, 0, 0, 0, 0, 36, 0, 37, 74,
11967
0, 0, 38, 0, 0, 76, 0, 78, 0, 80,
11968
39, 40, 255, 0, 41, 0, 0, 0, 0, 0,
11969
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11970
0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
11971
90, 91, 256, 342, 0, 0, 0, 0, 0, 0,
11972
0, 95, 0, 0, 0, 0, 0, 97, 98, 99,
11973
100, 0, 0, 0, 101, 0, 102, 647, 0, 0,
11974
0, 0, 103, 104, 0, 56, 24, 0, 25, 0,
11975
0, 26, 254, 0, 0, 0, 27, 61, 62, 0,
11976
28, 0, 0, 0, 0, 0, 64, 105, 257, 30,
11977
108, 0, 0, 0, 0, 0, 32, 0, 0, 0,
11978
0, 33, 0, 71, 72, 34, 0, 0, 0, 0,
11979
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
11980
74, 0, 0, 38, 0, 0, 76, 0, 78, 0,
11981
80, 39, 40, 255, 0, 41, 0, 0, 0, 0,
11982
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11983
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11984
89, 90, 91, 256, 342, 0, 0, 0, 0, 0,
11985
0, 0, 95, 0, 0, 0, 0, 0, 97, 98,
11986
99, 100, 0, 0, 0, 101, 0, 102, 649, 0,
11987
0, 0, 0, 103, 104, 0, 56, 24, 0, 25,
11988
0, 0, 26, 254, 0, 0, 0, 27, 61, 62,
11989
0, 28, 0, 0, 0, 0, 0, 64, 105, 257,
11990
30, 108, 0, 0, 0, 0, 0, 32, 0, 0,
11991
0, 0, 33, 0, 71, 72, 34, 0, 0, 0,
11992
0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
11993
37, 74, 0, 0, 38, 0, 0, 76, 0, 78,
11994
0, 80, 39, 40, 255, 0, 41, 0, 0, 0,
11995
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11996
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11997
0, 89, 90, 91, 256, 342, 0, 0, 0, 0,
11998
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
11999
98, 99, 100, 0, 0, 0, 101, 0, 102, 651,
12000
0, 0, 0, 0, 103, 104, 0, 56, 24, 0,
12001
25, 0, 0, 26, 254, 0, 0, 0, 27, 61,
12002
62, 0, 28, 0, 0, 0, 0, 0, 64, 105,
12003
257, 30, 108, 0, 0, 0, 0, 0, 32, 0,
12004
0, 0, 0, 33, 0, 71, 72, 34, 0, 0,
12005
0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
12006
0, 37, 74, 0, 0, 38, 0, 0, 76, 0,
12007
78, 0, 80, 39, 40, 255, 0, 41, 0, 0,
12008
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12009
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12010
0, 0, 89, 90, 91, 256, 342, 0, 0, 0,
12011
0, 0, 0, 0, 95, 0, 0, 0, 0, 0,
12012
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
12013
653, 0, 0, 0, 0, 103, 104, 0, 56, 24,
12014
0, 25, 0, 0, 26, 254, 0, 0, 0, 27,
12015
61, 62, 0, 28, 0, 0, 0, 0, 0, 64,
12016
105, 257, 30, 108, 0, 0, 0, 0, 0, 32,
12017
0, 0, 0, 0, 33, 0, 71, 72, 34, 0,
12018
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12019
36, 0, 37, 74, 0, 0, 38, 0, 0, 76,
12020
0, 78, 0, 80, 39, 40, 255, 0, 41, 0,
12021
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12022
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12023
0, 0, 0, 89, 90, 91, 256, 342, 0, 0,
12024
0, 0, 0, 0, 0, 95, 0, 0, 0, 0,
12025
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
12026
102, 655, 0, 0, 0, 0, 103, 104, 0, 56,
12027
24, 0, 25, 0, 0, 26, 254, 0, 0, 0,
12028
27, 61, 62, 0, 28, 0, 0, 0, 0, 0,
12029
64, 105, 257, 30, 108, 0, 0, 0, 0, 0,
12030
32, 0, 0, 0, 0, 33, 0, 71, 72, 34,
12031
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12032
0, 36, 0, 37, 74, 0, 0, 38, 0, 0,
12033
76, 0, 78, 0, 80, 39, 40, 255, 0, 41,
12034
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12035
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12036
0, 0, 0, 0, 89, 90, 91, 256, 342, 0,
12037
0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
12038
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
12039
0, 102, 657, 0, 0, 0, 0, 103, 104, 0,
12040
56, 24, 0, 25, 0, 0, 26, 254, 0, 0,
12041
0, 27, 61, 62, 0, 28, 0, 0, 0, 0,
12042
0, 64, 105, 257, 30, 108, 0, 0, 0, 0,
12043
0, 32, 0, 0, 0, 0, 33, 0, 71, 72,
12044
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12045
0, 0, 36, 0, 37, 74, 0, 0, 38, 0,
12046
0, 76, 0, 78, 0, 80, 39, 40, 255, 0,
12047
41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12048
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12049
0, 0, 0, 0, 0, 89, 90, 91, 256, 342,
12050
0, 0, 0, 0, 0, 0, 0, 95, 0, 0,
12051
0, 0, 0, 97, 98, 99, 100, 0, 0, 0,
12052
101, 0, 102, 659, 0, 0, 0, 0, 103, 104,
12053
0, 56, 24, 0, 25, 0, 0, 26, 254, 0,
12054
0, 0, 27, 61, 62, 0, 28, 0, 0, 0,
12055
0, 0, 64, 105, 257, 30, 108, 0, 0, 0,
12056
0, 0, 32, 0, 0, 0, 0, 33, 0, 71,
12057
72, 34, 0, 0, 0, 0, 0, 0, 0, 0,
12058
0, 0, 0, 36, 0, 37, 74, 0, 0, 38,
12059
0, 0, 76, 0, 78, 0, 80, 39, 40, 255,
12060
0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
12061
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12062
0, 0, 0, 0, 0, 0, 89, 90, 91, 256,
12063
342, 0, 0, 0, 0, 0, 0, 0, 95, 0,
12064
0, 0, 0, 0, 97, 98, 99, 100, 0, 0,
12065
0, 101, 0, 102, 661, 0, 0, 0, 0, 103,
12066
104, 0, 56, 24, 0, 25, 0, 0, 26, 254,
12067
0, 0, 0, 27, 61, 62, 0, 28, 0, 0,
12068
0, 0, 0, 64, 105, 257, 30, 108, 0, 0,
12069
0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
12070
71, 72, 34, 0, 0, 0, 0, 0, 0, 0,
12071
0, 0, 0, 0, 36, 0, 37, 74, 0, 0,
12072
38, 0, 0, 76, 0, 78, 0, 80, 39, 40,
12073
255, 0, 41, 0, 0, 0, 0, 0, 0, 0,
12074
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12075
0, 0, 0, 0, 0, 0, 0, 89, 90, 91,
12076
256, 342, 0, 0, 0, 0, 0, 0, 0, 95,
12077
0, 0, 0, 0, 0, 97, 98, 99, 100, 0,
12078
0, 0, 101, 0, 102, 663, 0, 0, 0, 0,
12079
103, 104, 0, 56, 24, 0, 25, 0, 0, 26,
12080
254, 0, 0, 0, 27, 61, 62, 0, 28, 0,
12081
0, 0, 0, 0, 64, 105, 257, 30, 108, 0,
12082
0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
12083
0, 71, 72, 34, 0, 0, 0, 0, 0, 0,
12084
0, 0, 0, 0, 0, 36, 0, 37, 74, 0,
12085
0, 38, 0, 0, 76, 0, 78, 0, 80, 39,
12086
40, 255, 0, 41, 0, 0, 0, 0, 0, 0,
12087
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12088
0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
12089
91, 256, 342, 0, 0, 0, 0, 0, 0, 0,
12090
95, 0, 0, 0, 0, 0, 97, 98, 99, 100,
12091
0, 0, 0, 101, 0, 102, 665, 0, 0, 0,
12092
0, 103, 104, 0, 56, 24, 0, 25, 0, 0,
12093
26, 254, 0, 0, 0, 27, 61, 62, 0, 28,
12094
0, 0, 0, 0, 0, 64, 105, 257, 30, 108,
12095
0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
12096
33, 0, 71, 72, 34, 0, 0, 0, 0, 0,
12097
0, 0, 0, 0, 0, 0, 36, 0, 37, 74,
12098
0, 0, 38, 0, 0, 76, 0, 78, 0, 80,
12099
39, 40, 255, 0, 41, 0, 0, 0, 0, 0,
12100
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12101
0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
12102
90, 91, 256, 342, 0, 0, 0, 0, 0, 0,
12103
0, 95, 0, 0, 0, 0, 0, 97, 98, 99,
12104
100, 0, 0, 0, 101, 0, 102, 667, 0, 0,
12105
0, 0, 103, 104, 0, 56, 24, 0, 25, 0,
12106
0, 26, 254, 0, 0, 0, 27, 61, 62, 0,
12107
28, 0, 0, 0, 0, 0, 64, 105, 257, 30,
12108
108, 0, 0, 0, 0, 0, 32, 0, 0, 0,
12109
0, 33, 0, 71, 72, 34, 0, 0, 0, 0,
12110
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
12111
74, 0, 0, 38, 0, 0, 76, 0, 78, 0,
12112
80, 39, 40, 255, 0, 41, 0, 0, 0, 0,
12113
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12114
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12115
89, 90, 91, 256, 342, 0, 0, 0, 0, 0,
12116
0, 0, 95, 0, 0, 0, 0, 0, 97, 98,
12117
99, 100, 0, 0, 0, 101, 0, 102, 669, 0,
12118
0, 0, 0, 103, 104, 0, 56, 24, 0, 25,
12119
0, 0, 26, 254, 0, 0, 0, 27, 61, 62,
12120
0, 28, 0, 0, 0, 0, 0, 64, 105, 257,
12121
30, 108, 0, 0, 0, 0, 0, 32, 0, 0,
12122
0, 0, 33, 0, 71, 72, 34, 0, 0, 0,
12123
0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
12124
37, 74, 0, 0, 38, 0, 0, 76, 0, 78,
12125
0, 80, 39, 40, 255, 0, 41, 0, 0, 0,
12126
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12127
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12128
0, 89, 90, 91, 256, 342, 0, 0, 0, 0,
12129
0, 0, 0, 95, 0, 0, 0, 0, 0, 97,
12130
98, 99, 100, 0, 0, 0, 101, 0, 102, 671,
12131
0, 0, 0, 0, 103, 104, 0, 56, 24, 0,
12132
25, 0, 0, 26, 254, 0, 0, 0, 27, 61,
12133
62, 0, 28, 0, 0, 0, 0, 0, 64, 105,
12134
257, 30, 108, 0, 0, 0, 0, 0, 32, 0,
12135
0, 0, 0, 33, 0, 71, 72, 34, 0, 0,
12136
0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
12137
0, 37, 74, 0, 0, 38, 0, 0, 76, 0,
12138
78, 0, 80, 39, 40, 255, 0, 41, 0, 0,
12139
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12140
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12141
0, 0, 89, 90, 91, 256, 342, 0, 0, 0,
12142
0, 0, 0, 0, 95, 0, 0, 0, 0, 0,
12143
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
12144
673, 0, 0, 0, 0, 103, 104, 0, 56, 24,
12145
0, 25, 0, 0, 26, 254, 0, 0, 0, 27,
12146
61, 62, 0, 28, 0, 0, 0, 0, 0, 64,
12147
105, 257, 30, 108, 0, 0, 0, 0, 0, 32,
12148
0, 0, 0, 0, 33, 0, 71, 72, 34, 0,
12149
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12150
36, 0, 37, 74, 0, 0, 38, 0, 0, 76,
12151
0, 78, 0, 80, 39, 40, 255, 0, 41, 0,
12152
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12153
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12154
0, 0, 0, 89, 90, 91, 256, 342, 0, 0,
12155
0, 0, 0, 0, 0, 95, 0, 0, 0, 0,
12156
0, 97, 98, 99, 100, 0, 0, 0, 101, 0,
12157
102, 841, 0, 0, 0, 0, 103, 104, 0, 56,
12158
24, 0, 25, 0, 0, 26, 254, 0, 0, 0,
12159
27, 61, 62, 0, 28, 0, 0, 0, 0, 0,
12160
64, 105, 257, 30, 108, 0, 0, 0, 0, 0,
12161
32, 0, 0, 0, 0, 33, 0, 71, 72, 34,
12162
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12163
0, 36, 0, 37, 74, 0, 0, 38, 0, 0,
12164
76, 0, 78, 0, 80, 39, 40, 255, 0, 41,
12165
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12166
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12167
0, 0, 0, 0, 89, 90, 91, 256, 342, 0,
12168
0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
12169
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
12170
0, 102, 513, 0, 0, 0, 0, 103, 104, 347,
12171
56, 24, 0, 25, 0, 0, 26, 254, 0, 0,
12172
0, 27, 61, 62, 0, 28, 0, 0, 0, 0,
12173
0, 64, 105, 257, 30, 108, 0, 0, 0, 0,
12174
0, 32, 0, 0, 0, 347, 33, 0, 71, 72,
12175
34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12176
0, 0, 36, 0, 37, 74, 0, 0, 38, 0,
12177
0, 76, 0, 78, 0, 80, 39, 40, 255, 0,
12178
41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12179
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12180
0, 0, 0, 0, 0, 89, 90, 91, 256, 291,
12181
0, 0, 0, 0, 0, 0, 0, 95, 347, 347,
12182
347, 347, 796, 0, 0, 347, 347, 0, 0, 347,
12183
347, 347, 347, 347, 347, 347, 347, 347, 0, 347,
12184
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
12185
347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
12186
347, 0, 0, 105, 514, 0, 0, 347, 0, 52,
12187
347, 52, 0, 52, 0, 52, 0, 0, 52, 0,
12188
52, 52, 0, 52, 0, 52, 0, 52, 0, 52,
12189
52, 52, 52, 0, 0, 52, 52, 0, 0, 0,
12190
0, 52, 52, 52, 52, 52, 0, 0, 52, 0,
12191
52, 0, 52, 0, 52, 52, 0, 52, 52, 52,
12192
52, 0, 0, 52, 52, 52, 52, 0, 0, 52,
12193
52, 52, 0, 0, 0, 0, 0, 0, 52, 52,
12194
0, 52, 52, 0, 52, 52, 52, 0, 0, 0,
12195
52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12196
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12197
52, 0, 52, 52, 51, 0, 0, 0, 51, 0,
12198
51, 0, 0, 51, 0, 51, 51, 0, 51, 0,
12199
51, 0, 51, 0, 51, 51, 51, 51, 0, 0,
12200
51, 51, 0, 0, 0, 0, 51, 0, 51, 51,
12201
51, 0, 0, 51, 0, 51, 0, 51, 0, 0,
12202
51, 0, 51, 51, 51, 51, 52, 0, 0, 51,
12203
51, 51, 0, 0, 51, 51, 51, 0, 0, 0,
12204
0, 0, 0, 51, 51, 0, 51, 51, 0, 51,
12205
51, 51, 0, 0, 0, 51, 0, 0, 0, 0,
12206
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12207
0, 0, 0, 51, 0, 51, 0, 51, 0, 51,
12208
0, 86, 51, 0, 51, 51, 0, 51, 0, 51,
12209
51, 51, 0, 51, 51, 51, 51, 0, 0, 51,
12210
51, 0, 0, 0, 0, 51, 0, 51, 51, 51,
12211
0, 0, 51, 0, 51, 0, 51, 0, 0, 51,
12212
0, 51, 51, 51, 51, 0, 0, 0, 51, 51,
12213
51, 51, 0, 51, 51, 51, 0, 0, 0, 0,
12214
0, 0, 51, 51, 0, 51, 51, 0, 51, 51,
12215
51, 0, 0, 0, 51, 0, 0, 0, 0, 0,
12216
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12217
0, 0, 52, 0, 51, 0, 52, 0, 52, 0,
12218
87, 52, 0, 52, 52, 0, 52, 0, 52, 51,
12219
52, 0, 52, 52, 52, 52, 0, 0, 52, 52,
12220
0, 0, 0, 0, 52, 0, 52, 52, 52, 0,
12221
0, 52, 0, 52, 0, 52, 0, 0, 52, 0,
12222
52, 52, 52, 52, 0, 0, 0, 52, 52, 52,
12223
51, 0, 52, 52, 52, 0, 0, 0, 0, 0,
12224
0, 52, 52, 0, 52, 52, 0, 52, 52, 52,
12225
0, 0, 0, 52, 0, 0, 0, 0, 51, 0,
12226
0, 0, 51, 0, 51, 0, 0, 51, 0, 51,
12227
51, 0, 51, 52, 51, 0, 51, 0, 51, 51,
12228
51, 51, 0, 0, 51, 51, 0, 0, 52, 0,
12229
51, 0, 51, 51, 51, 0, 0, 51, 0, 51,
12230
0, 51, 0, 0, 51, 0, 51, 51, 51, 51,
12231
0, 0, 0, 51, 51, 51, 0, 0, 51, 51,
12232
51, 0, 0, 0, 0, 0, 0, 51, 51, 52,
12233
51, 51, 0, 51, 51, 51, 0, 0, 0, 51,
12234
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12235
0, 0, 51, 0, 0, 0, 51, 0, 51, 51,
12236
0, 51, 0, 51, 51, 222, 51, 0, 51, 0,
12237
51, 0, 51, 51, 51, 51, 0, 0, 51, 51,
12238
0, 0, 0, 0, 51, 0, 51, 51, 51, 0,
12239
0, 51, 0, 51, 347, 51, 0, 0, 51, 0,
12240
51, 51, 51, 51, 0, 0, 0, 51, 51, 51,
12241
0, 0, 51, 51, 51, 51, 0, 347, 0, 0,
12242
0, 51, 51, 0, 51, 51, 0, 51, 51, 51,
12243
347, 0, 0, 51, 0, 347, 0, 0, 347, 0,
12244
347, 0, 347, 347, 347, 347, 0, 0, 0, 0,
12245
347, 0, 0, 51, 347, 0, 0, 0, 347, 223,
12246
0, 0, 0, 0, 369, 0, 347, 0, 0, 347,
12247
0, 347, 0, 0, 0, 0, 0, 0, 0, 0,
12248
0, 0, 0, 0, 0, 0, 0, 369, 0, 0,
12249
347, 0, 0, 0, 0, 347, 0, 0, 0, 0,
12250
369, 347, 347, 0, 273, 369, 347, 0, 240, 51,
12251
369, 0, 369, 369, 369, 369, 0, 0, 0, 347,
12252
369, 0, 0, 0, 369, 0, 368, 0, 369, 0,
12253
0, 0, 0, 0, 0, 0, 369, 0, 0, 369,
12254
0, 369, 0, 0, 0, 0, 0, 0, 0, 368,
12255
0, 347, 0, 0, 0, 0, 0, 0, 0, 0,
12256
0, 0, 368, 0, 465, 369, 0, 368, 0, 0,
12257
239, 369, 368, 0, 368, 368, 368, 368, 0, 0,
12258
0, 0, 368, 0, 0, 0, 368, 466, 0, 0,
12259
368, 0, 0, 0, 0, 0, 0, 0, 368, 0,
12260
467, 368, 465, 368, 0, 469, 0, 0, 0, 0,
12261
470, 0, 471, 472, 473, 474, 0, 0, 0, 0,
12262
475, 369, 0, 0, 476, 466, 0, 368, 1380, 0,
12263
0, 0, 0, 368, 0, 0, 477, 0, 467, 478,
12264
465, 479, 0, 469, 0, 0, 0, 0, 470, 0,
12265
471, 472, 473, 474, 0, 0, 0, 0, 475, 0,
12266
0, 0, 476, 466, 0, 480, 1380, 0, 0, 0,
12267
0, 1381, 0, 0, 477, 0, 467, 478, 0, 479,
12268
0, 469, 0, 368, 0, 0, 470, 0, 471, 472,
12269
473, 474, 0, 0, 0, 0, 475, 0, 0, 0,
12270
476, 0, 0, 480, 0, 0, 0, 0, 0, 0,
12271
0, 0, 477, 56, 24, 478, 25, 479, 0, 26,
12272
254, 1382, 0, 0, 27, 61, 62, 0, 28, 0,
12273
0, 0, 0, 0, 64, 0, 0, 30, 0, 0,
12274
0, 480, 0, 0, 32, 0, 0, 0, 0, 33,
12275
0, 71, 72, 34, 0, 613, 0, 0, 0, 1382,
12276
0, 0, 614, 0, 0, 36, 0, 37, 74, 0,
12277
0, 38, 0, 0, 76, 0, 78, 0, 80, 39,
12278
40, 255, 0, 41, 0, 0, 0, 0, 0, 0,
12279
615, 0, 0, 87, 88, 0, 0, 1399, 0, 0,
12280
0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
12281
91, 92, 93, 0, 0, 0, 0, 0, 0, 0,
12282
95, 974, 0, 616, 0, 0, 97, 98, 99, 100,
12283
0, 0, 0, 101, 0, 102, 0, 0, 0, 0,
12284
0, 103, 104, 0, 0, 0, 0, 0, 0, 56,
12285
24, 0, 25, 0, 0, 26, 254, 0, 0, 0,
12286
27, 61, 62, 0, 28, 0, 105, 106, 107, 108,
12287
64, 0, 0, 30, 0, 0, 0, 0, 0, 0,
12288
32, 0, 0, 0, 0, 33, 0, 71, 72, 34,
12289
0, 613, 0, 0, 0, 0, 0, 0, 614, 0,
12290
0, 36, 0, 37, 74, 0, 0, 38, 0, 0,
12291
76, 0, 78, 0, 80, 39, 40, 255, 0, 41,
12292
0, 0, 0, 0, 0, 0, 615, 0, 0, 87,
12293
88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12294
0, 0, 0, 0, 89, 90, 91, 92, 93, 0,
12295
0, 0, 0, 0, 0, 0, 95, 0, 0, 616,
12296
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
12297
0, 102, 0, 0, 0, 0, 0, 103, 104, 0,
12298
0, 0, 0, 0, 0, 56, 24, 0, 25, 0,
12299
0, 26, 254, 0, 0, 0, 27, 61, 62, 0,
12300
28, 0, 105, 106, 107, 108, 64, 0, 0, 30,
12301
0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
12302
0, 33, 0, 71, 72, 34, 0, 0, 0, 0,
12303
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
12304
74, 0, 0, 38, 0, 0, 76, 0, 78, 0,
12305
80, 39, 40, 255, 0, 41, 0, 0, 84, 0,
12306
0, 0, 86, 0, 0, 87, 88, 0, 0, 0,
12307
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12308
89, 90, 91, 92, 302, 0, 0, 0, 0, 0,
12309
0, 0, 95, 0, 0, 0, 0, 0, 97, 98,
12310
99, 100, 0, 0, 0, 101, 0, 102, 0, 0,
12311
0, 0, 0, 103, 104, 0, 0, 0, 0, 0,
12312
0, 56, 24, 0, 25, 0, 0, 26, 254, 0,
12313
0, 0, 27, 61, 62, 0, 28, 0, 105, 303,
12314
107, 108, 64, 0, 0, 30, 0, 0, 0, 0,
12315
0, 0, 32, 0, 0, 0, 0, 33, 0, 71,
12316
72, 34, 0, 0, 0, 0, 0, 0, 0, 0,
12317
0, 0, 0, 36, 0, 37, 74, 0, 0, 38,
12318
0, 0, 76, 0, 78, 0, 80, 39, 40, 255,
12319
0, 41, 0, 0, 0, 0, 0, 0, 86, 0,
12320
0, 87, 88, 0, 0, 0, 0, 0, 0, 0,
12321
0, 0, 0, 0, 0, 0, 89, 90, 91, 92,
12322
302, 0, 0, 0, 531, 0, 0, 0, 95, 0,
12323
0, 0, 0, 0, 97, 98, 99, 100, 0, 0,
12324
0, 101, 0, 102, 0, 0, 0, 0, 0, 103,
12325
104, 0, 0, 0, 0, 0, 0, 56, 24, 0,
12326
25, 0, 0, 26, 254, 0, 0, 0, 27, 61,
12327
62, 0, 28, 0, 105, 303, 107, 108, 64, 0,
12328
0, 30, 0, 0, 0, 0, 0, 0, 32, 0,
12329
0, 0, 0, 33, 0, 71, 72, 34, 0, 0,
12330
0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
12331
0, 37, 74, 0, 0, 38, 0, 0, 76, 0,
12332
78, 0, 80, 39, 40, 255, 0, 41, 0, 0,
12333
0, 0, 0, 0, 86, 0, 0, 87, 88, 0,
12334
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12335
0, 0, 89, 90, 91, 92, 302, 0, 0, 0,
12336
525, 0, 0, 0, 95, 0, 0, 0, 0, 0,
12337
97, 98, 99, 100, 0, 0, 0, 101, 0, 102,
12338
0, 0, 0, 0, 0, 103, 104, 0, 0, 0,
12339
0, 0, 0, 56, 24, 0, 25, 0, 0, 26,
12340
254, 0, 0, 0, 27, 61, 62, 0, 28, 0,
12341
105, 303, 107, 108, 64, 0, 0, 30, 0, 0,
12342
0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
12343
0, 71, 72, 34, 0, 0, 0, 0, 0, 0,
12344
0, 0, 0, 0, 0, 36, 0, 37, 74, 0,
12345
0, 38, 0, 0, 76, 0, 78, 0, 80, 39,
12346
40, 255, 0, 41, 0, 0, 0, 0, 0, 0,
12347
86, 0, 0, 87, 88, 0, 0, 0, 0, 0,
12348
0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
12349
91, 92, 302, 0, 0, 0, 0, 0, 0, 0,
12350
95, 0, 0, 0, 0, 0, 97, 98, 99, 100,
12351
0, 0, 0, 101, 0, 102, 0, 0, 0, 0,
12352
0, 103, 104, 0, 0, 0, 0, 0, 0, 56,
12353
24, 0, 25, 0, 0, 26, 254, 0, 0, 0,
12354
27, 61, 62, 0, 28, 0, 105, 303, 107, 108,
12355
64, 0, 0, 30, 0, 0, 0, 0, 0, 0,
12356
32, 0, 0, 0, 0, 33, 0, 71, 72, 34,
12357
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12358
0, 36, 0, 37, 74, 0, 0, 38, 0, 0,
12359
76, 0, 78, 0, 80, 39, 40, 255, 0, 41,
12360
0, 0, 0, 0, 0, 0, 86, 0, 0, 87,
12361
88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12362
0, 0, 0, 0, 89, 90, 91, 92, 93, 0,
12363
0, 0, 0, 0, 0, 0, 95, 0, 0, 0,
12364
0, 0, 97, 98, 99, 100, 0, 0, 0, 101,
12365
0, 102, 0, 0, 0, 0, 0, 103, 104, 0,
12366
0, 0, 0, 0, 0, 655, 655, 0, 655, 0,
12367
0, 655, 655, 0, 0, 0, 655, 655, 655, 0,
12368
655, 0, 105, 106, 107, 108, 655, 0, 0, 655,
12369
0, 0, 0, 0, 0, 0, 655, 0, 0, 0,
12370
0, 655, 0, 655, 655, 655, 0, 0, 0, 0,
12371
0, 0, 0, 0, 0, 0, 0, 655, 0, 655,
12372
655, 0, 0, 655, 0, 0, 655, 0, 655, 0,
12373
655, 655, 655, 655, 0, 655, 0, 0, 0, 0,
12374
0, 0, 655, 0, 0, 655, 655, 0, 0, 0,
12375
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12376
655, 655, 655, 655, 655, 0, 0, 0, 0, 0,
12377
0, 0, 655, 0, 0, 0, 0, 0, 655, 655,
12378
655, 655, 0, 0, 0, 655, 0, 655, 0, 0,
12379
0, 0, 0, 655, 655, 0, 0, 0, 0, 0,
12380
0, 83, 83, 0, 83, 0, 0, 83, 83, 0,
12381
0, 0, 83, 83, 83, 0, 83, 0, 655, 655,
12382
655, 655, 83, 0, 0, 83, 0, 0, 0, 0,
12383
0, 0, 83, 0, 0, 0, 0, 83, 0, 83,
12384
83, 83, 0, 0, 0, 0, 0, 0, 0, 0,
12385
0, 0, 0, 83, 0, 83, 83, 0, 0, 83,
12386
0, 0, 83, 0, 83, 0, 83, 83, 83, 83,
12387
0, 83, 0, 0, 0, 0, 0, 0, 83, 0,
12388
0, 83, 83, 0, 0, 0, 0, 0, 0, 0,
12389
0, 0, 0, 0, 0, 0, 83, 83, 83, 83,
12390
83, 0, 0, 0, 0, 0, 0, 0, 83, 0,
12391
0, 0, 0, 0, 83, 83, 83, 83, 0, 0,
12392
0, 83, 0, 83, 0, 0, 0, 0, 0, 83,
12393
83, 0, 0, 0, 0, 0, 0, 143, 143, 0,
12394
143, 0, 0, 143, 143, 0, 0, 0, 143, 143,
12395
143, 0, 143, 0, 83, 83, 83, 83, 143, 0,
12396
0, 143, 0, 0, 0, 0, 0, 0, 143, 0,
12397
0, 0, 0, 143, 0, 143, 143, 143, 0, 0,
12398
0, 0, 0, 0, 0, 0, 0, 0, 0, 143,
12399
0, 143, 143, 0, 0, 143, 0, 0, 143, 0,
12400
143, 0, 143, 143, 143, 143, 0, 143, 0, 0,
12401
0, 0, 0, 0, 143, 0, 0, 143, 143, 0,
12402
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12403
0, 0, 143, 143, 143, 143, 143, 0, 0, 0,
12404
0, 0, 0, 0, 143, 0, 0, 0, 0, 0,
12405
143, 143, 143, 143, 0, 0, 0, 143, 0, 143,
12406
0, 0, 0, 0, 0, 143, 143, 0, 0, 0,
12407
0, 0, 0, 56, 24, 0, 25, 0, 0, 26,
12408
254, 0, 0, 0, 27, 61, 62, 0, 28, 0,
12409
143, 143, 143, 143, 64, 0, 0, 30, 0, 0,
12410
0, 0, 0, 0, 32, 0, 31, 0, 0, 33,
12411
0, 71, 72, 34, 0, 0, 0, 0, 0, 0,
12412
0, 0, 0, 0, 0, 36, 0, 37, 74, 31,
12413
0, 38, 0, 0, 76, 0, 78, 0, 80, 39,
12414
40, 255, 31, 41, 0, 0, 0, 31, 0, 0,
12415
0, 0, 31, 0, 31, 31, 31, 31, 0, 0,
12416
31, 0, 31, 0, 0, 0, 31, 0, 89, 90,
12417
91, 256, 342, 0, 0, 0, 0, 0, 31, 0,
12418
95, 31, 0, 31, 0, 0, 97, 98, 99, 100,
12419
0, 0, 0, 101, 0, 102, 0, 0, 0, 0,
12420
0, 103, 104, 0, 0, 0, 0, 31, 0, 0,
12421
0, 0, 0, 31, 31, 0, 0, 0, 0, 0,
12422
0, 692, 0, 692, 0, 692, 105, 257, 692, 108,
12423
692, 692, 0, 692, 0, 692, 0, 692, 0, 692,
12424
692, 692, 0, 0, 0, 692, 692, 0, 0, 0,
12425
0, 692, 0, 692, 692, 0, 0, 0, 692, 0,
12426
0, 0, 692, 0, 0, 0, 0, 0, 0, 0,
12427
0, 0, 0, 692, 692, 0, 692, 0, 0, 0,
12428
692, 692, 0, 0, 0, 0, 0, 0, 692, 692,
12429
56, 24, 692, 25, 0, 692, 26, 254, 0, 0,
12430
692, 27, 61, 62, 0, 28, 0, 0, 0, 0,
12431
0, 64, 0, 0, 30, 0, 0, 0, 0, 0,
12432
0, 32, 692, 692, 0, 0, 33, 0, 71, 72,
12433
34, 0, 0, 0, 0, 692, 0, 0, 0, 0,
12434
0, 0, 36, 0, 37, 74, 0, 0, 38, 0,
12435
0, 76, 0, 78, 0, 80, 39, 40, 255, 0,
12436
41, 0, 0, 84, 0, 0, 0, 0, 0, 0,
12437
24, 0, 25, 0, 0, 26, 692, 1285, 0, 0,
12438
27, 0, 0, 0, 28, 89, 90, 91, 256, 0,
12439
0, 0, 0, 30, 691, 0, 691, 95, 0, 691,
12440
32, 691, 691, 0, 691, 33, 691, 1286, 691, 34,
12441
691, 691, 691, 0, 0, 0, 691, 691, 0, 0,
12442
0, 36, 691, 37, 691, 691, 0, 38, 1287, 691,
12443
0, 0, 0, 691, 0, 39, 40, 0, 0, 41,
12444
0, 0, 324, 105, 257, 691, 0, 691, 0, 0,
12445
0, 691, 691, 0, 0, 0, 0, 0, 0, 691,
12446
691, 0, 691, 691, 691, 0, 691, 691, 0, 691,
12447
691, 691, 691, 0, 691, 0, 691, 0, 691, 691,
12448
691, 0, 0, 0, 691, 691, 0, 0, 0, 0,
12449
691, 0, 691, 691, 0, 0, 0, 691, 0, 0,
12450
0, 691, 0, 0, 0, 0, 691, 0, 0, 0,
12451
0, 0, 0, 691, 0, 691, 0, 0, 0, 691,
12452
691, 0, 0, 368, 0, 0, 0, 691, 691, 0,
12453
0, 691, 0, 0, 691, 0, 24, 0, 25, 691,
12454
0, 26, 0, 0, 1348, 0, 27, 691, 725, 0,
12455
28, 0, 726, 1349, 1350, 0, 0, 0, 1351, 30,
12456
0, 0, 0, 0, 1352, 0, 32, 0, 24, 0,
12457
25, 33, 0, 26, 0, 34, 1348, 0, 27, 0,
12458
725, 0, 28, 0, 726, 1349, 1350, 36, 0, 37,
12459
1351, 30, 0, 38, 0, 0, 1352, 0, 32, 0,
12460
0, 39, 40, 33, 0, 41, 0, 34, 1353, 0,
12461
0, 0, 51, 1354, 51, 691, 0, 51, 0, 36,
12462
0, 37, 51, 0, 0, 38, 51, 0, 0, 0,
12463
0, 0, 0, 39, 40, 51, 0, 41, 0, 0,
12464
1353, 0, 51, 0, 51, 1354, 51, 51, 1355, 51,
12465
0, 51, 0, 51, 51, 51, 0, 0, 51, 0,
12466
51, 0, 0, 51, 0, 51, 0, 51, 0, 51,
12467
0, 0, 51, 0, 51, 0, 0, 51, 51, 51,
12468
0, 51, 0, 51, 51, 51, 0, 51, 24, 1356,
12469
25, 0, 51, 26, 0, 51, 0, 51, 27, 0,
12470
0, 51, 28, 0, 51, 0, 0, 0, 0, 51,
12471
51, 30, 0, 51, 0, 0, 51, 0, 32, 162,
12472
0, 1356, 0, 33, 0, 0, 0, 34, 0, 585,
12473
0, 0, 0, 0, 0, 0, 586, 0, 0, 36,
12474
0, 37, 0, 0, 0, 38, 0, 0, 587, 162,
12475
0, 0, 0, 39, 40, 0, 0, 41, 0, 52,
12476
588, 52, 0, 0, 52, 51, 0, 0, 0, 52,
12477
0, 0, 0, 52, 0, 0, 0, 0, 0, 0,
12478
0, 0, 52, 0, 0, 0, 589, 0, 0, 52,
12479
0, 51, 0, 51, 52, 0, 51, 51, 52, 0,
12480
52, 51, 52, 0, 0, 51, 0, 52, 0, 0,
12481
52, 0, 52, 0, 51, 0, 52, 0, 0, 52,
12482
0, 51, 0, 0, 52, 52, 51, 0, 52, 0,
12483
51, 52, 51, 0, 51, 24, 0, 25, 0, 51,
12484
26, 590, 51, 0, 51, 27, 0, 0, 51, 28,
12485
0, 51, 0, 0, 0, 0, 51, 51, 30, 0,
12486
51, 0, 0, 51, 0, 32, 0, 0, 0, 0,
12487
33, 0, 0, 0, 34, 0, 0, 0, 0, 37,
12488
0, 0, 0, 0, 0, 0, 36, 0, 37, 0,
12489
37, 0, 38, 0, 0, 37, 0, 0, 0, 37,
12490
39, 40, 37, 0, 41, 0, 0, 324, 0, 0,
12491
0, 0, 52, 0, 37, 37, 0, 0, 0, 37,
12492
37, 0, 0, 0, 0, 37, 0, 37, 37, 37,
12493
37, 0, 0, 291, 0, 37, 0, 0, 0, 37,
12494
0, 37, 0, 0, 51, 0, 0, 0, 0, 0,
12495
0, 37, 0, 37, 37, 35, 37, 0, 0, 0,
12496
37, 0, 0, 0, 0, 0, 35, 0, 0, 0,
12497
0, 35, 0, 0, 0, 35, 0, 0, 35, 0,
12498
37, 0, 0, 0, 0, 0, 37, 37, 325, 0,
12499
35, 35, 0, 0, 0, 35, 35, 31, 0, 31,
12500
0, 35, 0, 35, 35, 35, 35, 0, 0, 0,
12501
0, 35, 0, 0, 0, 35, 0, 35, 0, 0,
12502
31, 0, 0, 0, 0, 0, 0, 35, 0, 0,
12503
35, 0, 35, 31, 0, 0, 35, 0, 31, 0,
12504
0, 0, 0, 31, 0, 31, 31, 31, 31, 0,
12505
0, 0, 0, 31, 0, 0, 35, 31, 0, 0,
12506
51, 0, 35, 35, 0, 0, 0, 0, 0, 31,
12507
0, 51, 31, 0, 31, 0, 51, 0, 0, 0,
12508
51, 0, 0, 51, 0, 0, 0, 0, 0, 0,
12509
0, 0, 0, 0, 0, 51, 51, 0, 31, 0,
12510
51, 51, 0, 51, 31, 31, 51, 0, 51, 51,
12511
51, 51, 0, 0, 51, 0, 51, 0, 0, 51,
12512
51, 0, 51, 51, 0, 0, 51, 0, 0, 0,
12513
0, 0, 51, 0, 0, 51, 0, 51, 51, 51,
12514
0, 51, 0, 51, 51, 51, 0, 0, 0, 51,
12515
0, 51, 51, 51, 51, 0, 0, 0, 0, 51,
12516
0, 51, 0, 51, 0, 51, 0, 39, 51, 0,
12517
0, 0, 0, 0, 0, 51, 0, 0, 51, 0,
12518
51, 51, 0, 51, 51, 0, 51, 0, 0, 0,
12519
0, 51, 0, 51, 51, 51, 51, 0, 0, 0,
12520
0, 51, 0, 0, 51, 51, 51, 0, 0, 0,
12521
40, 0, 0, 0, 0, 0, 0, 51, 0, 51,
12522
51, 51, 51, 0, 51, 0, 0, 0, 0, 51,
12523
0, 51, 51, 51, 51, 0, 0, 0, 0, 51,
12524
0, 0, 0, 51, 51, 0, 51, 0, 51, 51,
12525
0, 0, 204, 0, 0, 51, 0, 51, 51, 51,
12526
51, 51, 51, 0, 0, 0, 0, 51, 0, 51,
12527
51, 51, 51, 0, 0, 51, 0, 51, 0, 0,
12528
0, 51, 51, 0, 51, 0, 51, 51, 0, 0,
12529
206, 0, 0, 51, 0, 51, 51, 51, 51, 0,
12530
51, 0, 0, 0, 0, 51, 0, 51, 51, 51,
12531
51, 0, 0, 0, 0, 51, 0, 0, 0, 51,
12532
51, 0, 51, 0, 0, 0, 0, 51, 308, 51,
12533
0, 51, 0, 51, 51, 0, 51, 0, 51, 0,
12534
0, 0, 0, 51, 0, 51, 51, 51, 51, 0,
12535
51, 0, 0, 51, 0, 0, 0, 51, 0, 0,
12536
51, 0, 0, 51, 0, 0, 309, 465, 51, 51,
12537
0, 0, 51, 51, 51, 51, 51, 51, 51, 0,
12538
0, 51, 0, 51, 0, 0, 0, 51, 0, 0,
12539
466, 0, 0, 0, 0, 0, 0, 465, 51, 51,
12540
51, 51, 51, 467, 51, 0, 0, 468, 469, 0,
12541
0, 0, 0, 470, 0, 471, 472, 473, 474, 0,
12542
466, 0, 0, 475, 0, 0, 0, 476, 51, 0,
12543
0, 0, 0, 467, 0, 0, 0, 0, 469, 477,
12544
0, 0, 478, 470, 479, 471, 472, 473, 474, 0,
12545
0, 0, 0, 475, 0, 0, 0, 476, 0, 0,
12546
0, 0, 0, 0, 0, 0, 0, 0, 480, 477,
12547
0, 0, 478, 0, 479, 0, 0, 0, 0, 0,
12548
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12549
0, 0, 0, 0, 0, 0, 0, 0, 480,
12551
protected static readonly short [] yyCheck = { 17,
12552
17, 4, 18, 300, 299, 529, 17, 87, 88, 51,
12553
531, 189, 51, 289, 247, 17, 482, 234, 6, 188,
12554
232, 68, 504, 84, 20, 59, 298, 296, 108, 191,
12555
344, 298, 157, 334, 383, 574, 323, 581, 790, 982,
12556
87, 88, 1162, 47, 77, 92, 59, 58, 1198, 1199,
12557
268, 0, 113, 256, 115, 73, 0, 367, 256, 77,
12558
256, 592, 601, 330, 256, 112, 256, 113, 79, 115,
12559
81, 256, 335, 367, 679, 256, 256, 95, 268, 684,
12560
685, 256, 760, 256, 762, 17, 282, 17, 256, 1292,
12561
256, 256, 256, 256, 372, 256, 268, 1247, 372, 256,
12562
987, 374, 256, 17, 276, 256, 1195, 1310, 391, 357,
12563
256, 17, 357, 17, 256, 368, 256, 256, 314, 199,
12564
200, 368, 368, 376, 368, 172, 367, 256, 373, 376,
12565
374, 414, 1357, 811, 256, 376, 814, 381, 386, 157,
12566
157, 386, 1367, 416, 418, 428, 157, 189, 340, 382,
12567
189, 429, 17, 59, 339, 157, 423, 63, 17, 344,
12568
17, 346, 1251, 325, 349, 350, 429, 352, 353, 372,
12569
343, 374, 418, 704, 339, 256, 429, 256, 256, 344,
12570
20, 346, 262, 363, 349, 350, 256, 352, 353, 374,
12571
232, 363, 367, 232, 17, 363, 371, 268, 1242, 246,
12572
247, 367, 256, 369, 422, 371, 368, 371, 288, 374,
12573
367, 373, 259, 376, 371, 376, 0, 371, 391, 223,
12574
418, 17, 418, 17, 525, 157, 429, 157, 308, 247,
12575
447, 1118, 422, 528, 446, 253, 546, 418, 418, 381,
12576
228, 414, 763, 157, 429, 420, 418, 87, 88, 296,
12577
418, 157, 286, 157, 420, 428, 420, 423, 568, 381,
12578
574, 322, 296, 420, 429, 326, 420, 418, 108, 1157,
12579
331, 289, 418, 286, 568, 1478, 294, 295, 418, 418,
12580
824, 328, 592, 256, 364, 331, 333, 601, 358, 418,
12581
452, 309, 157, 277, 1269, 374, 17, 368, 157, 317,
12582
157, 319, 1505, 381, 256, 323, 319, 318, 257, 256,
12583
391, 257, 256, 256, 1517, 369, 1519, 335, 336, 325,
12584
400, 401, 1366, 256, 367, 487, 369, 344, 375, 294,
12585
256, 378, 256, 414, 157, 382, 383, 358, 371, 1091,
12586
945, 306, 344, 256, 256, 256, 256, 256, 428, 429,
12587
335, 422, 1472, 371, 424, 425, 426, 427, 256, 199,
12588
200, 157, 256, 157, 382, 383, 1044, 256, 386, 387,
12589
388, 389, 390, 391, 392, 393, 394, 395, 396, 363,
12590
286, 428, 429, 914, 989, 432, 991, 1362, 1538, 994,
12591
363, 257, 256, 1368, 704, 339, 325, 370, 256, 372,
12592
418, 374, 256, 256, 446, 305, 256, 446, 1351, 256,
12593
368, 705, 418, 319, 456, 725, 369, 256, 1568, 371,
12594
1395, 256, 262, 367, 367, 372, 947, 371, 590, 373,
12595
374, 375, 376, 376, 418, 419, 157, 381, 344, 266,
12596
351, 367, 375, 605, 926, 418, 608, 609, 288, 453,
12597
454, 375, 448, 418, 256, 459, 503, 496, 505, 368,
12598
300, 748, 375, 375, 374, 374, 462, 266, 308, 262,
12599
1275, 429, 391, 257, 372, 369, 1081, 256, 1083, 372,
12600
1085, 256, 529, 263, 701, 374, 497, 314, 272, 418,
12601
372, 504, 341, 277, 1172, 414, 765, 281, 372, 546,
12602
733, 363, 1180, 550, 957, 298, 370, 856, 363, 527,
12603
374, 529, 296, 531, 372, 314, 1321, 1038, 372, 372,
12604
369, 1409, 372, 740, 364, 372, 1204, 367, 1072, 839,
12605
369, 542, 543, 695, 369, 315, 429, 277, 556, 323,
12606
256, 281, 368, 561, 591, 839, 418, 429, 375, 294,
12607
546, 1439, 1440, 715, 1442, 429, 418, 574, 342, 570,
12608
400, 401, 341, 418, 339, 1453, 428, 369, 1456, 344,
12609
581, 346, 574, 428, 349, 350, 375, 352, 353, 1184,
12610
363, 1259, 272, 1471, 601, 378, 379, 277, 428, 429,
12611
369, 281, 368, 256, 376, 613, 614, 1141, 504, 601,
12612
305, 264, 342, 429, 914, 376, 296, 1495, 448, 1214,
12613
369, 1064, 357, 1066, 373, 1357, 911, 256, 363, 913,
12614
368, 368, 462, 256, 369, 1367, 376, 372, 373, 862,
12615
368, 1507, 1508, 323, 681, 418, 683, 1176, 363, 256,
12616
941, 386, 263, 363, 369, 692, 368, 429, 371, 256,
12617
775, 367, 342, 429, 429, 371, 1261, 373, 374, 367,
12618
376, 679, 325, 371, 423, 381, 684, 685, 574, 687,
12619
363, 343, 305, 418, 946, 1280, 421, 944, 343, 374,
12620
372, 429, 429, 371, 376, 982, 733, 256, 1564, 363,
12621
6, 429, 339, 418, 315, 601, 418, 420, 418, 415,
12622
339, 17, 363, 750, 256, 344, 546, 346, 369, 381,
12623
349, 350, 420, 352, 353, 733, 796, 1039, 765, 391,
12624
367, 416, 339, 1205, 256, 418, 391, 344, 568, 346,
12625
748, 765, 349, 350, 256, 352, 353, 272, 726, 819,
12626
367, 802, 414, 59, 418, 763, 1068, 63, 343, 414,
12627
386, 769, 592, 305, 1041, 835, 428, 418, 805, 1054,
12628
367, 296, 294, 428, 371, 339, 373, 374, 1275, 376,
12629
339, 87, 88, 1006, 381, 344, 21, 346, 256, 1275,
12630
349, 350, 371, 352, 353, 1371, 381, 798, 323, 357,
12631
429, 838, 108, 367, 956, 363, 391, 1275, 816, 1385,
12632
818, 369, 376, 384, 372, 373, 374, 52, 272, 856,
12633
828, 822, 429, 824, 1321, 862, 389, 339, 386, 414,
12634
1134, 1407, 344, 357, 346, 1321, 385, 349, 350, 998,
12635
352, 353, 296, 428, 1275, 915, 400, 339, 856, 373,
12636
1275, 157, 1275, 1321, 862, 887, 864, 368, 866, 256,
12637
418, 401, 386, 1129, 760, 376, 762, 1275, 272, 323,
12638
429, 339, 1176, 413, 704, 367, 344, 1162, 346, 347,
12639
348, 349, 350, 351, 352, 353, 354, 355, 356, 918,
12640
1321, 390, 296, 199, 200, 725, 1321, 369, 1321, 1165,
12641
368, 909, 370, 911, 372, 306, 374, 375, 376, 381,
12642
896, 1063, 313, 1321, 951, 811, 953, 429, 814, 323,
12643
928, 256, 959, 901, 325, 933, 357, 269, 936, 1385,
12644
381, 357, 1155, 294, 269, 369, 1202, 945, 1242, 947,
12645
391, 1011, 373, 369, 286, 306, 372, 373, 985, 1460,
12646
367, 286, 371, 256, 373, 386, 262, 1274, 1275, 376,
12647
386, 429, 418, 414, 367, 368, 796, 367, 368, 1006,
12648
367, 368, 369, 376, 371, 372, 376, 374, 1295, 376,
12649
286, 989, 288, 991, 371, 1022, 994, 367, 367, 819,
12650
367, 1028, 415, 256, 300, 421, 376, 376, 1006, 376,
12651
418, 306, 308, 308, 1321, 835, 1323, 256, 313, 839,
12652
1331, 1522, 368, 319, 1221, 1217, 1282, 1003, 374, 1340,
12653
325, 418, 277, 420, 368, 1193, 423, 374, 372, 376,
12654
1038, 1331, 376, 1041, 381, 1013, 339, 1015, 344, 1017,
12655
1340, 344, 371, 346, 373, 368, 349, 350, 1559, 352,
12656
353, 374, 306, 376, 368, 382, 383, 376, 364, 313,
12657
374, 367, 1366, 372, 1351, 374, 896, 1581, 1582, 396,
12658
397, 1072, 372, 1081, 374, 1083, 339, 1085, 370, 371,
12659
1088, 344, 374, 346, 914, 915, 349, 350, 373, 352,
12660
353, 376, 368, 256, 400, 401, 372, 368, 374, 376,
12661
376, 372, 265, 374, 267, 376, 1099, 270, 394, 395,
12662
370, 371, 275, 373, 374, 375, 279, 370, 1155, 372,
12663
370, 1129, 428, 429, 374, 288, 429, 1134, 1157, 372,
12664
370, 374, 295, 376, 374, 1143, 1144, 300, 367, 370,
12665
1141, 304, 1134, 374, 374, 370, 376, 1155, 1044, 374,
12666
1156, 256, 982, 316, 1162, 318, 370, 1165, 372, 322,
12667
374, 1193, 373, 1195, 1193, 376, 1195, 330, 331, 1176,
12668
373, 334, 368, 1003, 337, 371, 1184, 373, 374, 370,
12669
294, 1011, 1190, 374, 1176, 1217, 372, 1472, 1217, 370,
12670
376, 372, 376, 374, 1202, 372, 392, 393, 504, 376,
12671
363, 370, 376, 1273, 1356, 374, 1214, 1215, 372, 294,
12672
369, 373, 376, 372, 376, 370, 412, 372, 370, 1251,
12673
372, 370, 1251, 372, 420, 367, 372, 423, 374, 371,
12674
1382, 373, 374, 343, 376, 1242, 368, 369, 1134, 381,
12675
546, 372, 1274, 1275, 414, 1274, 368, 1399, 376, 371,
12676
1242, 373, 374, 1261, 356, 418, 386, 387, 388, 381,
12677
1330, 418, 568, 1295, 418, 1417, 1295, 1419, 574, 369,
12678
392, 393, 1280, 415, 1282, 372, 1172, 374, 1348, 1349,
12679
1176, 370, 418, 372, 1180, 375, 592, 1324, 372, 1321,
12680
412, 1323, 372, 285, 1323, 601, 368, 370, 420, 372,
12681
374, 423, 376, 1373, 398, 399, 1376, 93, 1204, 354,
12682
355, 97, 98, 99, 100, 101, 102, 103, 104, 371,
12683
374, 373, 376, 61, 374, 376, 376, 65, 66, 67,
12684
374, 69, 70, 1334, 381, 327, 74, 75, 354, 355,
12685
392, 393, 374, 81, 376, 83, 1242, 85, 406, 407,
12686
408, 409, 90, 91, 368, 369, 294, 414, 415, 1366,
12687
412, 364, 365, 1259, 372, 373, 1196, 372, 420, 364,
12688
365, 423, 1160, 1161, 1366, 294, 114, 374, 0, 372,
12689
1409, 402, 403, 410, 411, 377, 378, 379, 380, 1390,
12690
382, 383, 384, 385, 386, 387, 388, 389, 704, 372,
12691
392, 393, 394, 395, 396, 397, 398, 399, 404, 405,
12692
1439, 1440, 374, 1442, 372, 256, 376, 428, 1450, 725,
12693
371, 428, 256, 1253, 1453, 294, 294, 1456, 381, 372,
12694
374, 373, 418, 373, 375, 1467, 381, 374, 372, 374,
12695
429, 374, 1471, 1273, 374, 374, 423, 0, 1480, 1481,
12696
372, 374, 1460, 374, 760, 367, 762, 1458, 421, 372,
12697
343, 294, 373, 372, 1472, 294, 1495, 374, 374, 418,
12698
1366, 370, 418, 371, 367, 1507, 1508, 256, 375, 256,
12699
374, 1489, 256, 256, 280, 381, 256, 367, 372, 368,
12700
796, 343, 370, 381, 371, 376, 423, 370, 374, 374,
12701
1330, 1331, 376, 347, 256, 811, 372, 372, 814, 372,
12702
1340, 367, 256, 819, 1522, 372, 302, 255, 1348, 1349,
12703
258, 1351, 381, 381, 372, 376, 368, 1357, 256, 835,
12704
347, 374, 1564, 839, 370, 375, 367, 1367, 370, 339,
12705
370, 1371, 348, 1373, 1581, 1582, 1376, 372, 334, 368,
12706
348, 1559, 374, 256, 418, 1385, 342, 381, 418, 372,
12707
298, 368, 367, 367, 1565, 1566, 367, 381, 376, 368,
12708
372, 1572, 1573, 1581, 1582, 356, 314, 1407, 402, 403,
12709
404, 405, 406, 407, 408, 409, 410, 411, 376, 371,
12710
374, 337, 368, 368, 305, 418, 368, 418, 418, 368,
12711
371, 369, 367, 418, 371, 367, 369, 371, 914, 915,
12712
376, 397, 398, 399, 371, 373, 402, 403, 404, 405,
12713
406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
12714
416, 417, 381, 381, 371, 257, 371, 371, 374, 261,
12715
372, 372, 256, 373, 373, 367, 372, 374, 0, 374,
12716
272, 374, 376, 372, 370, 277, 376, 418, 418, 281,
12717
372, 376, 284, 418, 418, 372, 376, 381, 372, 368,
12718
370, 372, 381, 368, 296, 297, 982, 315, 263, 301,
12719
302, 371, 371, 368, 372, 307, 372, 309, 310, 311,
12720
312, 0, 0, 367, 376, 317, 368, 376, 0, 321,
12721
368, 323, 372, 256, 368, 1011, 372, 372, 261, 262,
12722
418, 333, 370, 335, 336, 372, 338, 368, 372, 367,
12723
342, 370, 418, 376, 418, 368, 376, 368, 372, 376,
12724
376, 284, 368, 367, 367, 372, 368, 372, 1044, 525,
12725
362, 368, 367, 373, 297, 298, 368, 369, 376, 302,
12726
376, 315, 305, 376, 307, 376, 309, 310, 311, 312,
12727
376, 499, 263, 376, 317, 376, 376, 376, 321, 50,
12728
12, 5, 325, 896, 1155, 0, 1003, 1155, 1323, 1295,
12729
333, 1512, 1475, 336, 1528, 338, 339, 1463, 1492, 1458,
12730
1371, 344, 918, 346, 347, 348, 349, 350, 351, 352,
12731
353, 354, 355, 356, 542, 918, 918, 739, 1321, 362,
12732
363, 597, 913, 1573, 367, 368, 1391, 370, 371, 372,
12733
1567, 374, 375, 376, 1485, 378, 379, 1481, 1134, 382,
12734
383, 384, 385, 1480, 1566, 1251, 389, 390, 887, 1419,
12735
546, 394, 395, 396, 397, 398, 399, 400, 401, 941,
12736
936, 1253, 769, 862, 382, 614, 1054, 71, 337, 413,
12737
413, 733, 765, 416, 412, 418, 1172, 414, 417, 415,
12738
1176, 416, 839, 265, 1180, 267, 429, 568, 270, 1231,
12739
1330, 157, 1134, 275, 1040, 1144, 1120, 279, 1068, 1024,
12740
1196, 283, 1134, 1132, 1205, 961, 288, 437, 1204, 544,
12741
690, 293, 437, 295, 1326, 257, 893, 1215, 300, 261,
12742
892, -1, 304, 305, -1, -1, -1, -1, -1, -1,
12743
272, -1, -1, -1, 316, 277, 318, -1, -1, 281,
12744
322, -1, 284, -1, -1, -1, 1242, -1, 330, 331,
12745
-1, -1, 334, 0, 296, 297, -1, 1253, -1, 301,
12746
302, -1, -1, 1259, -1, 307, -1, 309, 310, 311,
12747
312, -1, -1, -1, -1, 317, -1, 1273, -1, 321,
12748
-1, 323, -1, -1, -1, -1, -1, -1, -1, -1,
12749
-1, 333, 768, -1, 336, -1, 338, -1, -1, -1,
12750
342, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12751
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12752
362, -1, -1, -1, -1, 367, 368, 369, -1, -1,
12753
-1, -1, -1, -1, 1330, 1331, 418, -1, -1, -1,
12754
-1, 256, -1, -1, 1340, -1, 261, 262, -1, -1,
12755
-1, -1, 1348, 1349, -1, 1351, -1, -1, -1, -1,
12756
-1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
12757
1366, -1, -1, -1, -1, -1, -1, 1373, -1, -1,
12758
1376, -1, 297, 298, -1, -1, -1, 302, -1, -1,
12759
305, -1, 307, -1, 309, 310, 311, 312, -1, -1,
12760
-1, -1, 317, -1, -1, -1, 321, -1, -1, -1,
12761
325, -1, -1, -1, -1, -1, -1, -1, 333, -1,
12762
0, 336, -1, 338, 339, -1, -1, -1, -1, 344,
12763
-1, 346, 347, 348, 349, 350, 351, 352, 353, 354,
12764
355, 356, -1, -1, -1, -1, -1, 362, 363, -1,
12765
-1, -1, 367, 368, -1, 370, 371, 372, 373, 374,
12766
375, 376, -1, 378, 379, 941, 381, 382, 383, 384,
12767
385, 386, 387, 388, 389, 390, -1, 392, 393, 394,
12768
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
12769
405, 406, 407, 408, 409, 410, 411, 412, 413, -1,
12770
-1, 416, -1, 418, -1, 420, -1, -1, 423, 256,
12771
257, -1, -1, -1, 429, -1, -1, 264, 265, 266,
12772
267, 268, -1, 270, 271, -1, 273, 274, 275, 276,
12773
277, 278, 279, 280, -1, -1, -1, -1, 285, -1,
12774
287, 288, 289, 290, 291, 292, 0, -1, 295, -1,
12775
-1, -1, 299, 300, -1, 302, 303, 304, -1, -1,
12776
-1, -1, -1, -1, -1, -1, -1, 314, -1, 316,
12777
-1, 318, 319, -1, -1, 322, -1, 324, 325, 326,
12778
327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
12779
337, -1, -1, 340, 341, -1, -1, 344, 345, -1,
12780
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12781
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
12782
367, 368, -1, -1, 371, -1, -1, -1, -1, 376,
12783
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
12784
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
12785
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12786
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12787
417, 418, 419, 420, -1, 422, 256, 257, -1, -1,
12788
-1, -1, 429, -1, 264, 265, 266, 267, 268, -1,
12789
270, 271, 0, 273, 274, 275, 276, 277, 278, 279,
12790
-1, -1, -1, -1, -1, 285, -1, 287, 288, 289,
12791
290, 291, 292, -1, -1, 295, -1, -1, -1, 299,
12792
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
12793
-1, -1, -1, -1, 314, -1, 316, -1, 318, 319,
12794
-1, -1, 322, -1, 324, 325, 326, 327, 328, 329,
12795
330, 331, 332, 333, 334, 335, -1, 337, -1, -1,
12796
340, 341, -1, -1, 344, 345, -1, -1, -1, -1,
12797
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
12798
360, 361, 362, 363, -1, -1, -1, 367, 368, -1,
12799
-1, 371, -1, -1, -1, -1, 376, 377, 378, 379,
12800
380, -1, 256, -1, 384, -1, 386, 261, 262, -1,
12801
-1, -1, 392, 393, -1, -1, -1, -1, -1, -1,
12802
-1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
12803
284, -1, -1, -1, -1, -1, -1, 417, 418, 419,
12804
420, -1, 422, 297, 298, -1, -1, -1, 302, 429,
12805
-1, 305, -1, 307, -1, 309, 310, 311, 312, -1,
12806
-1, -1, -1, 317, -1, -1, -1, 321, -1, -1,
12807
-1, 325, -1, -1, -1, -1, -1, -1, -1, 333,
12808
-1, -1, 336, -1, 338, 339, -1, -1, -1, -1,
12809
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
12810
354, 355, 356, 357, -1, -1, -1, -1, 362, 363,
12811
-1, -1, -1, 367, 368, 369, 370, 371, 372, 373,
12812
374, 375, 376, -1, 378, 379, 0, -1, 382, 383,
12813
384, 385, 386, -1, -1, 389, 390, -1, -1, -1,
12814
394, 395, 396, 397, 398, 399, 400, 401, 256, -1,
12815
-1, -1, -1, 261, 262, -1, -1, -1, -1, 413,
12816
-1, -1, 416, -1, 418, -1, 420, -1, -1, 423,
12817
-1, -1, -1, -1, -1, 429, 284, -1, -1, -1,
12818
-1, -1, -1, -1, -1, -1, -1, -1, -1, 297,
12819
298, -1, -1, -1, 302, -1, -1, 305, -1, 307,
12820
-1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
12821
-1, -1, -1, 321, -1, -1, -1, 325, -1, -1,
12822
-1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
12823
338, 339, -1, -1, -1, -1, 344, -1, 346, 347,
12824
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
12825
-1, -1, -1, -1, 362, 363, -1, -1, -1, 367,
12826
368, 369, 370, 371, 372, -1, 374, 375, 376, -1,
12827
378, 379, 0, -1, 382, 383, 384, 385, 256, -1,
12828
-1, 389, 390, 261, 262, -1, 394, 395, 396, 397,
12829
398, 399, 400, 401, -1, -1, -1, -1, -1, -1,
12830
-1, -1, -1, -1, -1, 413, 284, -1, 416, -1,
12831
418, -1, 420, -1, -1, 423, -1, -1, -1, 297,
12832
298, 429, -1, -1, 302, -1, -1, 305, -1, 307,
12833
-1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
12834
-1, -1, -1, 321, -1, -1, -1, 325, -1, -1,
12835
-1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
12836
338, 339, -1, -1, -1, -1, 344, -1, 346, 347,
12837
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
12838
-1, -1, 256, -1, 362, 363, -1, -1, 262, 367,
12839
368, 369, 370, 371, 372, -1, 374, 375, 376, -1,
12840
378, 379, -1, -1, 382, 383, 384, 385, -1, -1,
12841
-1, 389, 390, -1, -1, -1, 394, 395, 396, 397,
12842
398, 399, 400, 401, 298, -1, -1, -1, -1, -1,
12843
0, -1, -1, -1, -1, 413, -1, -1, 416, -1,
12844
418, -1, 420, -1, -1, 423, -1, -1, -1, -1,
12845
-1, 429, -1, -1, -1, -1, -1, -1, -1, -1,
12846
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
12847
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
12848
354, 355, 356, 357, -1, -1, -1, -1, -1, 363,
12849
256, -1, -1, 367, 368, 369, 370, 371, 372, 373,
12850
374, 375, 376, -1, 378, 379, -1, -1, 382, 383,
12851
384, 385, 386, -1, -1, 389, 390, -1, -1, 0,
12852
394, 395, 396, 397, 398, 399, 400, 401, 256, -1,
12853
-1, -1, -1, -1, 262, -1, -1, -1, -1, 413,
12854
-1, -1, 416, -1, 418, -1, 420, -1, -1, 423,
12855
-1, -1, -1, -1, -1, 429, -1, -1, -1, -1,
12856
-1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
12857
298, -1, -1, 339, -1, -1, -1, -1, 344, -1,
12858
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
12859
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12860
-1, -1, 368, -1, 370, 0, 372, -1, 374, 375,
12861
376, 339, -1, -1, -1, -1, 344, -1, 346, 347,
12862
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
12863
-1, -1, -1, -1, -1, 363, -1, -1, -1, 367,
12864
368, -1, 370, 371, 372, -1, 374, 375, 376, -1,
12865
378, 379, -1, -1, 382, 383, 384, 385, -1, -1,
12866
-1, 389, 390, 429, -1, -1, 394, 395, 396, 397,
12867
398, 399, 400, 401, -1, -1, -1, -1, -1, 0,
12868
-1, -1, -1, -1, -1, 413, 256, 257, 416, -1,
12869
418, 261, -1, -1, -1, 265, -1, 267, -1, -1,
12870
270, 429, 272, 273, -1, 275, -1, 277, -1, 279,
12871
-1, 281, 282, 283, 284, -1, -1, 287, 288, -1,
12872
-1, -1, 0, 293, -1, 295, 296, 297, -1, -1,
12873
300, 301, 302, -1, 304, -1, -1, 307, -1, 309,
12874
310, 311, 312, -1, -1, -1, 316, 317, 318, -1,
12875
-1, 321, 322, 323, -1, -1, -1, -1, -1, -1,
12876
330, 331, -1, 333, 334, 0, 336, 337, 338, -1,
12877
-1, -1, 342, -1, -1, -1, 257, -1, -1, -1,
12878
261, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12879
-1, 272, 362, -1, -1, -1, 277, -1, 368, 369,
12880
281, -1, -1, 284, -1, -1, -1, 377, 0, -1,
12881
-1, -1, -1, -1, -1, 296, 297, -1, -1, 257,
12882
301, 302, -1, 261, -1, -1, 307, -1, 309, 310,
12883
311, 312, -1, -1, 272, -1, 317, -1, -1, 277,
12884
321, -1, 323, 281, -1, -1, 284, -1, 418, -1,
12885
-1, 0, 333, -1, 335, 336, -1, 338, 296, 297,
12886
-1, 342, 257, 301, 302, -1, 261, -1, -1, 307,
12887
-1, 309, 310, 311, 312, -1, -1, 272, -1, 317,
12888
-1, 362, 277, 321, -1, 323, 281, -1, 369, 284,
12889
-1, -1, -1, -1, 0, 333, -1, -1, 336, -1,
12890
338, 296, 297, -1, 342, -1, 301, 302, -1, -1,
12891
-1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
12892
-1, -1, 317, -1, 362, -1, 321, -1, 323, -1,
12893
368, 369, -1, -1, -1, -1, 257, 0, 333, -1,
12894
261, 336, -1, 338, -1, -1, -1, 342, -1, -1,
12895
-1, 272, -1, -1, -1, -1, 277, -1, -1, -1,
12896
281, -1, -1, 284, -1, -1, -1, 362, -1, -1,
12897
-1, -1, -1, 368, 369, 296, 297, -1, -1, 257,
12898
301, 302, -1, 261, -1, -1, 307, -1, 309, 310,
12899
311, 312, -1, -1, 272, -1, 317, -1, -1, 277,
12900
321, -1, 323, 281, -1, -1, 284, -1, -1, -1,
12901
-1, -1, 333, -1, -1, 336, -1, 338, 296, 297,
12902
-1, 342, 257, 301, 302, -1, 261, -1, -1, 307,
12903
-1, 309, 310, 311, 312, -1, -1, 272, -1, 317,
12904
-1, 362, 277, 321, -1, 323, 281, -1, 369, 284,
12905
-1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
12906
338, 296, 297, -1, 342, 257, 301, 302, -1, 261,
12907
-1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
12908
272, -1, 317, -1, 362, 277, 321, -1, 323, 281,
12909
-1, -1, 284, -1, -1, -1, -1, -1, 333, -1,
12910
-1, 336, -1, 338, 296, 297, -1, 342, 257, 301,
12911
302, -1, 261, -1, -1, 307, -1, 309, 310, 311,
12912
312, -1, -1, 272, -1, 317, -1, 362, 277, 321,
12913
-1, 323, 281, -1, -1, 284, -1, -1, -1, -1,
12914
-1, 333, -1, -1, 336, -1, 338, 296, 297, -1,
12915
342, 257, 301, 302, -1, 261, -1, -1, 307, -1,
12916
309, 310, 311, 312, -1, -1, 272, -1, 317, -1,
12917
362, 277, 321, -1, 323, 281, -1, -1, 284, -1,
12918
-1, -1, -1, -1, 333, -1, -1, 336, -1, 338,
12919
296, 297, -1, 342, 257, 301, 302, -1, 261, -1,
12920
-1, 307, -1, 309, 310, 311, 312, -1, -1, 272,
12921
-1, 317, -1, 362, 277, 321, -1, 323, 281, -1,
12922
-1, 284, -1, -1, -1, -1, -1, 333, -1, -1,
12923
336, -1, 338, 296, 297, -1, 342, -1, 301, 302,
12924
-1, -1, -1, -1, 307, -1, 309, 310, 311, 312,
12925
-1, -1, -1, -1, 317, -1, 362, -1, 321, -1,
12926
323, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12927
333, -1, 256, 336, -1, 338, -1, -1, -1, 342,
12928
264, 265, 266, 267, -1, -1, 270, 271, -1, 273,
12929
274, 275, 276, 277, 278, 279, -1, -1, -1, 362,
12930
-1, 285, -1, 287, 288, 289, 290, 291, 292, -1,
12931
-1, 295, -1, -1, -1, 299, 300, -1, 302, 303,
12932
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12933
314, -1, 316, -1, 318, 319, -1, -1, 322, -1,
12934
324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
12935
334, 335, -1, 337, -1, -1, 340, 341, -1, 256,
12936
344, 345, -1, -1, -1, 262, -1, -1, -1, -1,
12937
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
12938
-1, -1, -1, 367, -1, -1, -1, 371, -1, -1,
12939
-1, -1, 376, 377, 378, 379, 380, -1, -1, -1,
12940
384, 298, 386, -1, -1, -1, -1, -1, 392, 393,
12941
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12942
-1, -1, -1, -1, -1, 256, -1, -1, -1, -1,
12943
-1, 262, -1, 417, 418, 419, 420, -1, -1, -1,
12944
-1, -1, 339, -1, -1, 429, -1, 344, -1, 346,
12945
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
12946
357, -1, -1, -1, -1, -1, 363, 298, -1, -1,
12947
-1, 368, 369, 370, 371, 372, 373, 374, 375, 376,
12948
-1, 378, 379, -1, 381, 382, 383, 384, 385, 386,
12949
387, 388, 389, 390, -1, 392, 393, 394, 395, 396,
12950
397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
12951
407, 408, 409, 410, 411, 412, 413, 414, 256, -1,
12952
-1, 418, -1, 420, 262, -1, 423, -1, -1, -1,
12953
-1, -1, 429, -1, -1, -1, -1, 368, -1, -1,
12954
371, -1, 373, 374, -1, -1, -1, 378, 379, -1,
12955
-1, 382, 383, 384, 385, 386, 387, 388, 389, 390,
12956
298, 392, 393, 394, 395, 396, 397, 398, 399, 400,
12957
401, -1, -1, -1, -1, -1, -1, -1, -1, -1,
12958
-1, 412, 413, -1, -1, -1, -1, -1, -1, 420,
12959
-1, -1, 423, -1, -1, -1, -1, -1, 429, -1,
12960
-1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
12961
348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
12962
-1, -1, -1, -1, -1, 363, -1, -1, -1, -1,
12963
368, 369, 370, 371, 372, 373, 374, 375, 376, -1,
12964
378, 379, -1, 381, 382, 383, 384, 385, 386, 387,
12965
388, 389, 390, -1, 392, 393, 394, 395, 396, 397,
12966
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
12967
408, 409, 410, 411, 412, 413, -1, 256, 256, -1,
12968
418, -1, 420, 262, -1, 423, -1, 265, -1, 267,
12969
-1, 429, 270, -1, -1, -1, -1, 275, -1, -1,
12970
-1, 279, -1, -1, -1, -1, -1, -1, -1, -1,
12971
288, -1, -1, -1, -1, -1, -1, 295, -1, 298,
12972
-1, -1, 300, -1, -1, -1, 304, -1, -1, -1,
12973
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
12974
318, -1, -1, -1, 322, -1, -1, -1, -1, -1,
12975
-1, -1, 330, 331, -1, -1, 334, -1, -1, 337,
12976
339, -1, -1, -1, -1, 344, -1, 346, 347, 348,
12977
349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
12978
-1, -1, -1, -1, -1, -1, -1, -1, 367, 368,
12979
369, 370, 371, 372, 373, 374, 375, 376, -1, 378,
12980
379, -1, 381, 382, 383, 384, 385, 386, 387, 388,
12981
389, 390, -1, 392, 393, 394, 395, 396, 397, 398,
12982
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
12983
409, 410, 411, 412, 413, -1, 256, 256, -1, -1,
12984
418, 420, 262, -1, -1, -1, 265, -1, 267, -1,
12985
429, 270, -1, -1, -1, -1, 275, -1, -1, -1,
12986
279, -1, -1, -1, -1, -1, -1, -1, -1, 288,
12987
-1, -1, -1, -1, -1, -1, 295, -1, 298, -1,
12988
-1, 300, -1, -1, -1, 304, -1, -1, -1, -1,
12989
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
12990
-1, -1, -1, 322, -1, -1, -1, 256, -1, -1,
12991
-1, 330, 331, 262, -1, 334, -1, -1, 337, 339,
12992
-1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
12993
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
12994
-1, -1, -1, -1, -1, -1, -1, 367, 368, 298,
12995
370, 371, 372, 373, 374, 375, 376, -1, 378, 379,
12996
-1, 381, 382, 383, 384, 385, 386, 387, 388, 389,
12997
390, -1, 392, 393, 394, 395, 396, 397, 398, 399,
12998
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
12999
410, 411, 412, 413, -1, 256, -1, -1, -1, 418,
13000
420, 262, -1, 423, -1, -1, -1, -1, -1, 429,
13001
-1, -1, -1, -1, 363, -1, -1, -1, -1, 368,
13002
369, -1, 371, 372, 373, 374, -1, 376, -1, 378,
13003
379, -1, 381, 382, 383, 384, 385, 298, 387, 388,
13004
389, 390, -1, 392, 393, 394, 395, 396, 397, 398,
13005
399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
13006
409, 410, 411, 412, 413, -1, -1, -1, -1, 418,
13007
-1, 420, -1, -1, 423, -1, -1, -1, 339, -1,
13008
429, -1, -1, 344, -1, 346, 347, 348, 349, 350,
13009
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
13010
-1, -1, -1, -1, -1, -1, -1, 368, -1, 370,
13011
371, 372, 373, 374, 375, 376, -1, 378, 379, -1,
13012
381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
13013
-1, 392, 393, 394, 395, 396, 397, 398, 399, 400,
13014
401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
13015
411, 412, 413, -1, 256, 256, -1, -1, -1, 420,
13016
262, -1, 423, -1, 265, -1, 267, -1, 429, 270,
13017
-1, -1, -1, -1, 275, -1, -1, -1, 279, -1,
13018
-1, -1, -1, -1, -1, -1, -1, 288, -1, -1,
13019
-1, -1, -1, -1, 295, -1, 298, -1, -1, 300,
13020
-1, -1, -1, 304, -1, -1, -1, -1, -1, -1,
13021
-1, -1, -1, -1, -1, 316, -1, 318, -1, -1,
13022
-1, 322, -1, -1, -1, -1, -1, -1, -1, 330,
13023
331, -1, -1, 334, -1, -1, 337, 339, -1, -1,
13024
-1, -1, 344, -1, 346, 347, 348, 349, 350, 351,
13025
352, 353, 354, 355, 356, -1, -1, -1, -1, -1,
13026
-1, -1, -1, -1, -1, -1, 368, -1, 370, 371,
13027
372, 373, 374, 375, 376, -1, 378, 379, -1, 381,
13028
382, 383, 384, 385, 386, 387, 388, 389, 390, -1,
13029
392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
13030
402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
13031
412, 413, -1, 256, 256, -1, -1, 418, 420, 262,
13032
-1, 423, -1, 265, -1, 267, -1, 429, 270, -1,
13033
-1, -1, -1, 275, -1, -1, -1, 279, -1, -1,
13034
-1, -1, -1, -1, -1, -1, 288, -1, -1, -1,
13035
-1, -1, -1, 295, -1, 298, -1, -1, 300, -1,
13036
-1, -1, 304, -1, -1, -1, -1, -1, -1, -1,
13037
-1, -1, -1, -1, 316, -1, 318, -1, -1, -1,
13038
322, -1, -1, -1, -1, -1, -1, -1, 330, 331,
13039
-1, -1, 334, -1, -1, 337, 339, -1, -1, -1,
13040
-1, 344, -1, 346, 347, 348, 349, 350, 351, 352,
13041
353, 354, 355, 356, -1, -1, -1, -1, -1, -1,
13042
-1, -1, -1, -1, -1, 368, -1, 370, 371, 372,
13043
373, 374, 375, 376, -1, 378, 379, -1, 381, 382,
13044
383, 384, 385, 386, 387, 388, 389, 390, -1, 392,
13045
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
13046
403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
13047
413, -1, 256, -1, -1, -1, 418, 420, 262, 256,
13048
423, -1, 266, -1, -1, -1, 429, -1, 265, -1,
13049
267, -1, -1, 270, -1, -1, -1, -1, 275, -1,
13050
-1, -1, 279, -1, -1, -1, -1, -1, -1, -1,
13051
-1, 288, -1, -1, 298, -1, -1, -1, 295, -1,
13052
-1, -1, -1, 300, -1, -1, -1, 304, -1, -1,
13053
314, -1, -1, -1, -1, -1, -1, -1, -1, 316,
13054
-1, 318, -1, -1, -1, 322, -1, -1, -1, -1,
13055
-1, -1, -1, 330, 331, -1, -1, 334, -1, -1,
13056
337, -1, -1, -1, -1, 256, -1, -1, -1, -1,
13057
-1, 262, -1, 357, -1, -1, -1, -1, -1, 363,
13058
-1, -1, -1, -1, 368, 369, 370, 371, 372, 373,
13059
374, 375, 376, -1, 378, 379, -1, 381, 382, 383,
13060
384, 385, 386, 387, 388, 389, 390, 298, 392, 393,
13061
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
13062
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
13063
-1, -1, -1, -1, 418, -1, 420, -1, -1, 423,
13064
-1, 418, -1, -1, -1, 429, -1, -1, 339, -1,
13065
-1, -1, 256, 344, -1, 346, 347, 348, 349, 350,
13066
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
13067
-1, -1, -1, -1, -1, -1, -1, 368, -1, 370,
13068
-1, 372, -1, 374, 375, 376, -1, 378, 379, -1,
13069
381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
13070
-1, -1, -1, 394, 395, 396, 397, 398, 399, 400,
13071
401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
13072
411, 256, 413, -1, -1, -1, -1, 262, -1, -1,
13073
-1, -1, -1, -1, -1, 339, -1, -1, 429, -1,
13074
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
13075
354, 355, 356, -1, -1, -1, -1, -1, -1, -1,
13076
-1, -1, -1, 298, 368, -1, 370, -1, 372, -1,
13077
374, 375, 376, -1, -1, -1, -1, -1, -1, -1,
13078
-1, -1, -1, -1, -1, -1, 390, -1, -1, 256,
13079
-1, -1, -1, -1, -1, 262, -1, -1, -1, -1,
13080
-1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
13081
-1, 346, 347, 348, 349, 350, 351, 352, 353, 354,
13082
355, 356, -1, -1, -1, 429, -1, -1, -1, -1,
13083
-1, 298, -1, 368, -1, 370, -1, 372, -1, 374,
13084
375, 376, -1, 378, 379, -1, -1, 382, 383, 384,
13085
385, 386, 387, 388, 389, 390, -1, -1, -1, 394,
13086
395, 396, 397, 398, 399, 400, 401, -1, -1, -1,
13087
-1, -1, 339, -1, -1, -1, -1, 344, 413, 346,
13088
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
13089
-1, -1, -1, 256, 429, -1, -1, -1, -1, 262,
13090
-1, 368, -1, 370, -1, 372, -1, 374, 375, 376,
13091
-1, 378, 379, -1, -1, 382, 383, 384, 385, -1,
13092
-1, -1, 389, 390, -1, -1, -1, 394, 395, 396,
13093
397, 398, 399, 400, 401, 298, -1, -1, -1, -1,
13094
-1, -1, -1, -1, -1, -1, 413, -1, -1, -1,
13095
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13096
-1, 256, 429, -1, -1, -1, -1, 262, -1, -1,
13097
-1, -1, -1, -1, -1, -1, 339, -1, -1, -1,
13098
-1, 344, -1, 346, 347, 348, 349, 350, 351, 352,
13099
353, 354, 355, 356, -1, -1, -1, -1, -1, -1,
13100
-1, -1, -1, 298, -1, 368, -1, 370, -1, 372,
13101
-1, 374, 375, 376, -1, 378, 379, -1, -1, 382,
13102
383, 384, 385, -1, -1, -1, 389, 390, -1, 256,
13103
-1, 394, 395, 396, 397, 398, 399, 400, 401, -1,
13104
-1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
13105
413, 346, 347, 348, 349, 350, 351, 352, 353, 354,
13106
355, 356, -1, -1, -1, -1, 429, -1, -1, -1,
13107
-1, -1, -1, 368, -1, 370, -1, 372, -1, 374,
13108
375, 376, -1, 378, 379, -1, -1, 382, 383, 384,
13109
385, -1, -1, -1, 389, 390, -1, 256, -1, 394,
13110
395, 396, 397, 398, 399, 400, 401, -1, -1, -1,
13111
-1, -1, 339, -1, -1, -1, -1, 344, 413, 346,
13112
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
13113
-1, -1, -1, -1, 429, -1, -1, -1, -1, -1,
13114
-1, 368, -1, 370, -1, 372, -1, 374, 375, 376,
13115
-1, -1, -1, -1, -1, 382, 383, 384, 385, -1,
13116
-1, -1, 389, 390, -1, 256, -1, 394, 395, 396,
13117
397, 398, 399, 400, 401, -1, -1, -1, -1, -1,
13118
339, -1, -1, -1, -1, 344, 413, 346, 347, 348,
13119
349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
13120
-1, -1, 429, -1, -1, -1, -1, -1, -1, 368,
13121
-1, 370, -1, 372, -1, 374, 375, 376, -1, -1,
13122
-1, -1, -1, 382, 383, 384, 385, -1, -1, -1,
13123
389, 390, -1, 256, -1, 394, 395, 396, 397, 398,
13124
399, 400, 401, -1, -1, -1, -1, -1, 339, -1,
13125
-1, -1, -1, 344, 413, 346, 347, 348, 349, 350,
13126
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
13127
429, -1, -1, -1, -1, -1, -1, 368, -1, 370,
13128
-1, 372, -1, 374, 375, 376, -1, -1, -1, -1,
13129
-1, 382, 383, 384, 385, -1, -1, -1, 389, 390,
13130
-1, 256, -1, 394, 395, 396, 397, 398, 399, 400,
13131
401, -1, -1, -1, -1, -1, 339, -1, -1, -1,
13132
-1, 344, 413, 346, 347, 348, 349, 350, 351, 352,
13133
353, 354, 355, 356, -1, -1, -1, -1, 429, -1,
13134
-1, -1, -1, -1, -1, 368, -1, 370, -1, 372,
13135
-1, 374, 375, 376, -1, -1, -1, -1, -1, 382,
13136
383, 384, 385, -1, -1, -1, 389, 390, -1, 256,
13137
-1, -1, -1, 396, 397, 398, 399, 400, 401, -1,
13138
-1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
13139
413, 346, 347, 348, 349, 350, 351, 352, 353, 354,
13140
355, 356, -1, -1, -1, -1, 429, -1, -1, -1,
13141
-1, -1, -1, 368, -1, 370, -1, 372, -1, 374,
13142
375, 376, -1, -1, -1, -1, -1, 382, 383, 384,
13143
385, -1, -1, -1, 389, 390, -1, 256, -1, -1,
13144
-1, 396, 397, 398, 399, 400, 401, -1, -1, -1,
13145
-1, -1, 339, -1, -1, -1, -1, 344, 413, 346,
13146
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
13147
-1, -1, -1, -1, 429, -1, -1, -1, -1, -1,
13148
-1, 368, -1, 370, -1, 372, -1, 374, 375, 376,
13149
-1, -1, -1, -1, -1, 382, 383, 384, 385, -1,
13150
-1, -1, 389, 390, -1, 256, -1, -1, -1, 396,
13151
397, 398, 399, 400, 401, -1, -1, -1, -1, -1,
13152
339, -1, -1, -1, -1, 344, 413, 346, 347, 348,
13153
349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
13154
-1, -1, 429, -1, -1, -1, -1, -1, -1, 368,
13155
-1, 370, -1, 372, -1, 374, 375, 376, -1, -1,
13156
-1, -1, -1, 382, 383, 384, 385, -1, -1, -1,
13157
389, 390, -1, 256, -1, -1, -1, 396, 397, 398,
13158
399, 400, 401, -1, -1, -1, -1, -1, 339, -1,
13159
-1, -1, -1, 344, 413, 346, 347, 348, 349, 350,
13160
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
13161
429, -1, -1, -1, -1, -1, -1, 368, -1, 370,
13162
-1, 372, -1, 374, 375, 376, -1, -1, -1, -1,
13163
-1, 382, 383, 384, 385, -1, -1, -1, 389, 390,
13164
-1, 256, -1, -1, -1, 396, 397, 398, 399, 400,
13165
401, -1, -1, -1, -1, -1, 339, -1, -1, -1,
13166
-1, 344, 413, 346, 347, 348, 349, 350, 351, 352,
13167
353, 354, 355, 356, -1, -1, -1, -1, 429, -1,
13168
-1, -1, -1, -1, -1, 368, -1, 370, -1, 372,
13169
-1, 374, 375, 376, -1, -1, -1, -1, -1, -1,
13170
-1, 384, 385, -1, -1, -1, 389, 390, -1, 256,
13171
-1, -1, -1, -1, -1, 398, 399, 400, 401, -1,
13172
-1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
13173
413, 346, 347, 348, 349, 350, 351, 352, 353, 354,
13174
355, 356, -1, -1, -1, -1, 429, -1, -1, -1,
13175
-1, -1, -1, 368, -1, 370, -1, 372, -1, 374,
13176
375, 376, -1, -1, -1, -1, -1, -1, -1, 384,
13177
385, -1, -1, -1, 389, 390, -1, 256, -1, -1,
13178
-1, -1, -1, 398, 399, 400, 401, -1, -1, -1,
13179
-1, -1, 339, -1, -1, -1, -1, 344, 413, 346,
13180
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
13181
-1, -1, -1, -1, 429, -1, -1, -1, -1, -1,
13182
-1, 368, -1, 370, -1, 372, -1, 374, 375, 376,
13183
-1, -1, -1, -1, -1, -1, -1, 384, 385, -1,
13184
-1, -1, 389, 390, -1, 256, -1, -1, -1, -1,
13185
-1, 398, 399, 400, 401, -1, -1, -1, -1, -1,
13186
339, -1, -1, -1, -1, 344, 413, 346, 347, 348,
13187
349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
13188
-1, -1, 429, -1, -1, -1, -1, -1, -1, 368,
13189
-1, 370, -1, 372, -1, 374, 375, 376, -1, -1,
13190
-1, -1, -1, -1, -1, 384, 385, -1, -1, -1,
13191
389, 390, -1, 256, -1, -1, -1, -1, -1, -1,
13192
-1, 400, 401, -1, -1, -1, -1, -1, 339, -1,
13193
-1, -1, -1, 344, 413, 346, 347, 348, 349, 350,
13194
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
13195
429, -1, -1, -1, -1, -1, -1, 368, -1, 370,
13196
-1, 372, -1, 374, 375, 376, -1, -1, -1, -1,
13197
-1, -1, -1, 384, 385, -1, -1, -1, 389, 390,
13198
-1, 256, -1, -1, -1, -1, -1, -1, -1, 400,
13199
401, -1, -1, -1, -1, -1, 339, -1, -1, -1,
13200
-1, 344, 413, 346, 347, 348, 349, 350, 351, 352,
13201
353, 354, 355, 356, -1, -1, -1, -1, 429, -1,
13202
-1, -1, -1, -1, -1, 368, -1, 370, -1, 372,
13203
-1, 374, 375, 376, -1, -1, -1, -1, -1, -1,
13204
-1, -1, 385, -1, -1, -1, 389, 390, -1, 256,
13205
-1, -1, -1, -1, -1, -1, -1, 400, 401, -1,
13206
-1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
13207
413, 346, 347, 348, 349, 350, 351, 352, 353, 354,
13208
355, 356, -1, -1, -1, -1, 429, -1, -1, -1,
13209
-1, -1, -1, 368, -1, 370, -1, 372, -1, 374,
13210
375, 376, -1, -1, -1, -1, -1, -1, -1, -1,
13211
385, -1, -1, -1, 389, 390, -1, 256, -1, -1,
13212
-1, -1, -1, -1, -1, 400, 401, -1, -1, -1,
13213
-1, -1, 339, -1, -1, -1, -1, 344, 413, 346,
13214
347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
13215
-1, -1, -1, -1, 429, -1, -1, -1, -1, -1,
13216
-1, 368, -1, 370, -1, 372, -1, 374, 375, 376,
13217
-1, -1, -1, -1, -1, -1, -1, -1, 385, -1,
13218
-1, -1, -1, 390, -1, 256, -1, -1, -1, -1,
13219
-1, -1, -1, 400, 401, -1, -1, -1, -1, -1,
13220
339, -1, -1, -1, -1, 344, 413, 346, 347, 348,
13221
349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
13222
-1, -1, 429, -1, -1, -1, -1, -1, -1, 368,
13223
-1, 370, -1, 372, -1, 374, 375, 376, -1, -1,
13224
-1, -1, -1, -1, -1, -1, 385, -1, -1, -1,
13225
-1, 390, -1, 256, -1, -1, -1, -1, -1, -1,
13226
-1, 400, 401, -1, -1, -1, -1, -1, 339, -1,
13227
-1, -1, -1, 344, 413, 346, 347, 348, 349, 350,
13228
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
13229
429, -1, -1, -1, -1, -1, -1, 368, -1, 370,
13230
-1, 372, -1, 374, 375, 376, -1, -1, -1, -1,
13231
-1, -1, -1, -1, -1, -1, -1, -1, -1, 390,
13232
-1, 256, -1, -1, -1, -1, -1, -1, -1, 400,
13233
401, -1, -1, -1, -1, -1, 339, -1, -1, -1,
13234
-1, 344, 413, 346, 347, 348, 349, 350, 351, 352,
13235
353, 354, 355, 356, -1, -1, -1, -1, 429, -1,
13236
-1, -1, -1, -1, -1, 368, -1, 370, -1, 372,
13237
-1, 374, 375, 376, -1, -1, -1, 256, -1, -1,
13238
-1, -1, -1, -1, -1, -1, -1, 390, -1, -1,
13239
-1, -1, -1, -1, -1, -1, -1, 400, 401, -1,
13240
-1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
13241
413, 346, 347, 348, 349, 350, 351, 352, 353, 354,
13242
355, 356, -1, -1, -1, -1, 429, -1, -1, -1,
13243
-1, -1, -1, 368, -1, 370, -1, 372, -1, 374,
13244
375, 376, -1, -1, -1, -1, 262, -1, -1, -1,
13245
266, -1, -1, -1, -1, 390, -1, -1, -1, -1,
13246
339, -1, -1, -1, -1, 344, 401, 346, 347, 348,
13247
349, 350, 351, 352, 353, 354, 355, 356, 413, -1,
13248
-1, -1, 298, -1, -1, -1, -1, -1, -1, 368,
13249
-1, 370, -1, 372, 429, 374, 375, 376, 314, -1,
13250
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13251
-1, 390, -1, -1, -1, -1, -1, -1, -1, -1,
13252
-1, -1, 401, -1, -1, -1, -1, -1, -1, -1,
13253
-1, -1, -1, -1, 413, -1, -1, -1, -1, -1,
13254
-1, 357, -1, -1, -1, -1, -1, 363, -1, -1,
13255
429, -1, 368, 369, -1, 371, -1, 373, -1, 375,
13256
376, -1, 378, 379, -1, 381, 382, 383, 384, 385,
13257
386, 387, 388, 389, 390, -1, 392, 393, 394, 395,
13258
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
13259
406, 407, 408, 409, 410, 411, 412, 413, -1, -1,
13260
256, -1, 418, -1, 420, -1, -1, 423, 264, 265,
13261
266, 267, 268, 429, 270, 271, -1, 273, 274, 275,
13262
276, 277, 278, 279, -1, -1, -1, -1, -1, 285,
13263
-1, 287, 288, 289, 290, 291, 292, -1, -1, 295,
13264
-1, -1, -1, 299, 300, -1, 302, 303, 304, -1,
13265
-1, -1, -1, -1, -1, -1, -1, -1, 314, -1,
13266
316, -1, 318, 319, -1, -1, 322, -1, 324, 325,
13267
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
13268
-1, 337, -1, -1, 340, 341, -1, -1, 344, 345,
13269
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13270
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
13271
-1, 367, -1, -1, -1, 371, -1, -1, -1, -1,
13272
376, 377, 378, 379, 380, -1, -1, -1, 384, -1,
13273
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
13274
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13275
-1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
13276
-1, 417, 418, 419, 420, -1, 422, 264, 265, 266,
13277
267, -1, -1, 270, 271, -1, 273, 274, 275, 276,
13278
277, 278, 279, -1, -1, -1, -1, -1, 285, -1,
13279
287, 288, 289, 290, 291, 292, -1, -1, 295, -1,
13280
-1, -1, 299, 300, -1, 302, 303, 304, -1, -1,
13281
-1, -1, -1, -1, -1, -1, -1, 314, -1, 316,
13282
-1, 318, 319, -1, -1, 322, -1, 324, 325, 326,
13283
327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
13284
337, -1, -1, 340, 341, -1, -1, 344, 345, -1,
13285
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13286
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
13287
367, -1, -1, -1, 371, -1, -1, -1, -1, 376,
13288
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
13289
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
13290
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13291
-1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
13292
417, 418, 419, 420, 264, 265, 266, 267, -1, -1,
13293
270, 271, -1, 273, 274, 275, 276, 277, 278, 279,
13294
-1, -1, -1, -1, -1, 285, -1, 287, 288, 289,
13295
290, 291, 292, -1, -1, 295, -1, -1, -1, 299,
13296
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
13297
-1, -1, -1, -1, 314, -1, 316, -1, 318, 319,
13298
-1, -1, 322, -1, 324, 325, 326, 327, 328, 329,
13299
330, 331, 332, 333, 334, 335, -1, 337, -1, -1,
13300
340, 341, -1, -1, 344, 345, -1, -1, -1, -1,
13301
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
13302
360, 361, 362, 363, -1, -1, -1, 367, -1, -1,
13303
-1, 371, -1, -1, -1, -1, 376, 377, 378, 379,
13304
380, -1, -1, -1, 384, -1, 386, -1, -1, -1,
13305
-1, -1, 392, 393, -1, -1, -1, -1, -1, -1,
13306
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13307
-1, -1, -1, 256, -1, -1, -1, 417, 418, 419,
13308
420, 264, 265, 266, 267, -1, -1, 270, 271, -1,
13309
273, 274, 275, 276, 277, 278, 279, -1, -1, -1,
13310
-1, -1, 285, -1, 287, 288, 289, 290, 291, 292,
13311
-1, -1, 295, -1, -1, -1, 299, 300, -1, 302,
13312
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
13313
-1, 314, -1, 316, -1, 318, 319, -1, -1, 322,
13314
-1, 324, 325, 326, 327, 328, 329, 330, 331, 332,
13315
333, 334, 335, -1, 337, -1, -1, 340, 341, -1,
13316
-1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
13317
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
13318
363, -1, -1, -1, 367, -1, -1, -1, 371, -1,
13319
-1, -1, -1, 376, 377, 378, 379, 380, -1, -1,
13320
-1, 384, -1, 386, -1, -1, -1, -1, -1, 392,
13321
393, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13322
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13323
256, -1, -1, -1, 417, 418, 419, 420, 264, 265,
13324
266, 267, -1, -1, 270, 271, -1, 273, 274, 275,
13325
276, 277, 278, 279, -1, -1, -1, -1, -1, 285,
13326
-1, 287, 288, 289, 290, 291, 292, -1, -1, 295,
13327
-1, -1, -1, 299, 300, -1, 302, 303, 304, -1,
13328
-1, -1, -1, -1, -1, -1, -1, -1, 314, -1,
13329
316, -1, 318, 319, -1, -1, 322, -1, 324, 325,
13330
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
13331
-1, 337, -1, -1, 340, 341, -1, -1, 344, 345,
13332
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13333
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
13334
-1, 367, -1, -1, -1, 371, -1, -1, -1, -1,
13335
376, 377, 378, 379, 380, -1, -1, -1, 384, -1,
13336
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
13337
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13338
-1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
13339
-1, 417, 418, 419, 420, 264, 265, -1, 267, -1,
13340
-1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
13341
279, -1, -1, 265, -1, 267, 285, -1, 270, 288,
13342
-1, -1, -1, 275, -1, -1, 295, 279, -1, -1,
13343
-1, 300, -1, 302, 303, 304, 288, 306, -1, -1,
13344
-1, -1, -1, 295, 313, -1, -1, 316, 300, 318,
13345
319, -1, 304, 322, -1, -1, 325, -1, 327, -1,
13346
329, 330, 331, 332, 316, 334, 318, -1, -1, -1,
13347
322, -1, 341, -1, -1, 344, 345, -1, 330, 331,
13348
-1, -1, 334, -1, -1, 337, -1, -1, -1, -1,
13349
359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
13350
-1, -1, 371, -1, -1, 374, -1, -1, 377, 378,
13351
379, 380, -1, -1, -1, 384, -1, 386, -1, -1,
13352
372, -1, -1, 392, 393, -1, -1, -1, -1, -1,
13353
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13354
-1, -1, -1, -1, 256, -1, -1, -1, 417, 418,
13355
419, 420, 264, 265, -1, 267, -1, -1, 270, 271,
13356
-1, -1, -1, 275, 276, 277, 418, 279, -1, -1,
13357
265, -1, 267, 285, -1, 270, 288, -1, -1, -1,
13358
275, -1, -1, 295, 279, -1, -1, -1, 300, -1,
13359
302, 303, 304, 288, -1, -1, -1, -1, -1, -1,
13360
295, -1, -1, -1, 316, 300, 318, 319, -1, 304,
13361
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
13362
332, 316, 334, 318, -1, -1, -1, 322, -1, 341,
13363
-1, -1, 344, 345, -1, 330, 331, -1, -1, 334,
13364
-1, -1, 337, -1, -1, -1, -1, 359, 360, 361,
13365
362, 363, -1, -1, -1, 367, 368, -1, -1, 371,
13366
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
13367
-1, -1, 384, -1, 386, 370, -1, -1, -1, -1,
13368
392, 393, -1, -1, -1, -1, -1, -1, -1, -1,
13369
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13370
-1, 256, -1, -1, -1, 417, 418, 419, 420, 264,
13371
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
13372
275, 276, 277, 418, 279, -1, -1, 265, -1, 267,
13373
285, -1, 270, 288, -1, -1, -1, 275, -1, -1,
13374
295, 279, -1, -1, -1, 300, -1, 302, 303, 304,
13375
288, 306, -1, -1, -1, -1, -1, 295, 313, -1,
13376
-1, 316, 300, 318, 319, -1, 304, 322, -1, -1,
13377
325, -1, 327, -1, 329, 330, 331, 332, 316, 334,
13378
318, -1, -1, -1, 322, -1, 341, -1, -1, 344,
13379
345, -1, 330, 331, -1, -1, 334, -1, -1, 337,
13380
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
13381
-1, -1, -1, -1, -1, -1, 371, -1, -1, -1,
13382
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
13383
-1, 386, -1, -1, -1, -1, -1, 392, 393, -1,
13384
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13385
-1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
13386
-1, -1, 417, 418, 419, 420, 264, 265, -1, 267,
13387
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
13388
418, 279, -1, -1, 265, -1, 267, 285, -1, 270,
13389
288, -1, -1, -1, 275, -1, -1, 295, 279, -1,
13390
-1, -1, 300, -1, 302, 303, 304, 288, -1, -1,
13391
-1, -1, -1, -1, 295, -1, -1, -1, 316, 300,
13392
318, 319, 320, 304, 322, -1, -1, 325, -1, 327,
13393
-1, 329, 330, 331, 332, 316, 334, 318, -1, -1,
13394
-1, 322, -1, 341, -1, -1, 344, 345, -1, 330,
13395
331, -1, -1, 334, -1, -1, 337, -1, -1, -1,
13396
-1, 359, 360, 361, 362, 363, -1, -1, -1, 367,
13397
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
13398
378, 379, 380, -1, -1, -1, 384, -1, 386, -1,
13399
-1, -1, -1, -1, 392, 393, -1, -1, -1, -1,
13400
-1, -1, 264, 265, -1, 267, -1, -1, 270, 271,
13401
-1, -1, -1, 275, 276, 277, -1, 279, -1, 417,
13402
418, 419, 420, 285, -1, -1, 288, -1, -1, -1,
13403
-1, -1, -1, 295, -1, -1, -1, 418, 300, -1,
13404
302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
13405
-1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
13406
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
13407
332, -1, 334, -1, -1, -1, -1, -1, -1, 341,
13408
-1, -1, 344, 345, -1, -1, -1, -1, -1, -1,
13409
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
13410
362, 363, -1, -1, -1, 367, 368, -1, -1, 371,
13411
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
13412
-1, -1, 384, -1, 386, -1, -1, -1, -1, -1,
13413
392, 393, -1, -1, -1, -1, -1, -1, 264, 265,
13414
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
13415
276, 277, -1, 279, -1, 417, 418, 419, 420, 285,
13416
-1, -1, 288, -1, -1, -1, 428, -1, -1, 295,
13417
-1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
13418
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13419
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
13420
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
13421
-1, -1, -1, -1, -1, 341, -1, -1, 344, 345,
13422
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13423
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
13424
-1, 367, -1, -1, -1, 371, -1, -1, -1, -1,
13425
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
13426
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
13427
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13428
-1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
13429
-1, 417, 418, 419, 420, -1, -1, 264, 265, -1,
13430
267, -1, 428, 270, 271, -1, -1, -1, 275, 276,
13431
277, -1, 279, -1, -1, 265, -1, 267, 285, -1,
13432
270, 288, -1, -1, -1, 275, -1, -1, 295, 279,
13433
-1, -1, -1, 300, -1, 302, 303, 304, 288, -1,
13434
-1, -1, -1, -1, -1, 295, -1, -1, -1, 316,
13435
300, 318, 319, -1, 304, 322, -1, -1, 325, -1,
13436
327, -1, 329, 330, 331, 332, 316, 334, 318, -1,
13437
-1, -1, 322, -1, 341, -1, -1, 344, 345, -1,
13438
330, 331, -1, -1, 334, -1, -1, 337, -1, -1,
13439
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
13440
367, -1, -1, -1, 371, -1, -1, -1, -1, -1,
13441
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
13442
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
13443
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13444
-1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
13445
417, 418, 419, 420, 264, 265, -1, 267, -1, -1,
13446
270, 271, -1, -1, -1, 275, 276, 277, 418, 279,
13447
-1, -1, 265, -1, 267, 285, -1, 270, 288, -1,
13448
-1, -1, 275, -1, -1, 295, 279, -1, -1, -1,
13449
300, -1, 302, 303, 304, 288, -1, -1, -1, -1,
13450
-1, -1, 295, -1, -1, -1, 316, 300, 318, 319,
13451
-1, 304, 322, -1, -1, 325, -1, 327, -1, 329,
13452
330, 331, 332, 316, 334, 318, -1, -1, -1, 322,
13453
-1, 341, -1, -1, 344, 345, -1, 330, 331, -1,
13454
-1, 334, -1, -1, 337, -1, -1, -1, -1, 359,
13455
360, 361, 362, 363, -1, -1, -1, -1, 368, -1,
13456
-1, 371, -1, -1, -1, -1, -1, 377, 378, 379,
13457
380, -1, -1, -1, 384, -1, 386, -1, -1, -1,
13458
-1, -1, 392, 393, -1, -1, -1, -1, -1, -1,
13459
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13460
-1, -1, -1, 256, -1, -1, -1, 417, 418, 419,
13461
420, 264, 265, -1, 267, -1, -1, 270, 271, -1,
13462
-1, -1, 275, 276, 277, 418, 279, -1, -1, 265,
13463
-1, 267, 285, -1, 270, 288, -1, -1, -1, 275,
13464
-1, -1, 295, 279, -1, -1, -1, 300, -1, 302,
13465
303, 304, 288, -1, -1, -1, -1, -1, -1, 295,
13466
-1, -1, -1, 316, 300, 318, 319, -1, 304, 322,
13467
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
13468
316, 334, 318, -1, -1, -1, 322, -1, 341, -1,
13469
-1, 344, 345, -1, 330, 331, -1, -1, 334, -1,
13470
-1, 337, -1, -1, -1, -1, 359, 360, 361, 362,
13471
363, -1, -1, -1, -1, 368, -1, -1, 371, -1,
13472
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
13473
-1, 384, -1, 386, -1, -1, -1, -1, -1, 392,
13474
393, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13475
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13476
256, -1, -1, -1, 417, 418, 419, 420, 264, 265,
13477
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
13478
276, 277, 418, 279, -1, -1, 265, -1, 267, 285,
13479
-1, 270, 288, -1, -1, -1, 275, -1, -1, 295,
13480
279, -1, -1, -1, 300, -1, 302, 303, 304, 288,
13481
-1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
13482
316, 300, 318, 319, -1, 304, 322, -1, -1, 325,
13483
-1, 327, -1, 329, 330, 331, 332, 316, 334, 318,
13484
-1, -1, -1, 322, -1, 341, -1, -1, 344, 345,
13485
-1, 330, 331, -1, -1, 334, -1, -1, 337, -1,
13486
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
13487
-1, -1, -1, -1, -1, 371, -1, -1, -1, -1,
13488
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
13489
386, -1, -1, -1, -1, -1, 392, 393, -1, -1,
13490
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13491
-1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
13492
-1, 417, 418, 419, 420, 264, 265, -1, 267, -1,
13493
-1, 270, 271, -1, -1, -1, 275, 276, 277, 418,
13494
279, -1, -1, 265, -1, 267, 285, -1, 270, 288,
13495
-1, -1, -1, 275, -1, -1, 295, 279, -1, -1,
13496
-1, 300, -1, 302, 303, 304, 288, -1, -1, -1,
13497
-1, -1, -1, 295, -1, -1, -1, 316, 300, 318,
13498
319, -1, 304, 322, -1, -1, 325, -1, 327, -1,
13499
329, 330, 331, 332, 316, 334, 318, -1, -1, -1,
13500
322, -1, 341, -1, -1, 344, 345, -1, 330, 331,
13501
-1, -1, 334, -1, -1, 337, -1, -1, -1, -1,
13502
359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
13503
-1, -1, 371, -1, -1, -1, -1, -1, 377, 378,
13504
379, 380, -1, -1, -1, 384, -1, 386, -1, -1,
13505
-1, -1, -1, 392, 393, -1, -1, -1, -1, -1,
13506
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13507
-1, -1, -1, -1, 256, -1, -1, -1, 417, 418,
13508
419, 420, 264, 265, -1, 267, -1, -1, 270, 271,
13509
-1, -1, -1, 275, 276, 277, 418, 279, -1, -1,
13510
265, -1, 267, 285, -1, 270, 288, -1, -1, -1,
13511
275, -1, -1, 295, 279, -1, -1, -1, 300, -1,
13512
302, 303, 304, 288, -1, -1, -1, -1, -1, -1,
13513
295, -1, -1, -1, 316, 300, 318, 319, -1, 304,
13514
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
13515
332, 316, 334, 318, -1, -1, -1, 322, -1, 341,
13516
-1, -1, 344, 345, -1, 330, 331, -1, -1, 334,
13517
-1, -1, 337, -1, -1, -1, -1, 359, 360, 361,
13518
362, 363, -1, -1, -1, -1, -1, -1, -1, 371,
13519
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
13520
-1, -1, 384, -1, 386, -1, -1, -1, -1, -1,
13521
392, 393, -1, -1, -1, -1, -1, -1, -1, -1,
13522
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13523
-1, 256, -1, -1, -1, 417, 418, 419, 420, 264,
13524
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
13525
275, 276, 277, 418, 279, -1, -1, -1, -1, -1,
13526
285, -1, -1, 288, -1, -1, -1, -1, -1, -1,
13527
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
13528
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13529
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
13530
325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
13531
-1, -1, -1, -1, -1, -1, 341, -1, -1, 344,
13532
345, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13533
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
13534
-1, -1, -1, -1, -1, -1, 371, -1, -1, -1,
13535
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
13536
-1, 386, -1, -1, -1, -1, -1, 392, 393, -1,
13537
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13538
-1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
13539
-1, -1, 417, 418, 419, 420, 264, 265, -1, 267,
13540
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
13541
-1, 279, -1, -1, -1, -1, -1, 285, -1, -1,
13542
288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
13543
-1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
13544
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
13545
318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
13546
-1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
13547
-1, -1, -1, 341, -1, -1, 344, 345, -1, -1,
13548
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13549
-1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
13550
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
13551
378, 379, 380, -1, -1, -1, 384, -1, 386, -1,
13552
-1, -1, -1, -1, 392, 393, -1, -1, -1, -1,
13553
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13554
-1, -1, -1, -1, -1, 256, -1, -1, -1, 417,
13555
418, 419, 420, 264, 265, -1, 267, -1, -1, 270,
13556
271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
13557
-1, -1, -1, -1, 285, -1, -1, 288, -1, -1,
13558
-1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
13559
-1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
13560
-1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
13561
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
13562
331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
13563
341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
13564
-1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
13565
361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
13566
371, -1, -1, -1, -1, -1, 377, 378, 379, 380,
13567
-1, -1, -1, 384, -1, 386, -1, -1, -1, -1,
13568
-1, 392, 393, -1, -1, -1, -1, -1, -1, -1,
13569
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13570
-1, -1, 256, -1, -1, -1, 417, 418, 419, 420,
13571
264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
13572
-1, 275, 276, 277, -1, 279, -1, -1, -1, -1,
13573
-1, 285, -1, -1, 288, -1, -1, -1, -1, -1,
13574
-1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
13575
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13576
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
13577
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
13578
334, -1, -1, -1, -1, -1, -1, -1, -1, 343,
13579
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13580
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
13581
-1, -1, -1, -1, -1, -1, -1, 371, -1, -1,
13582
-1, -1, -1, 377, 378, 379, 380, 381, -1, -1,
13583
384, -1, 386, 256, -1, -1, -1, -1, 392, 393,
13584
-1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
13585
-1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
13586
-1, -1, 285, 417, 418, 288, 420, -1, -1, -1,
13587
-1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
13588
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
13589
-1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
13590
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
13591
-1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
13592
343, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13593
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
13594
363, -1, -1, -1, -1, -1, -1, -1, 371, -1,
13595
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
13596
-1, 384, -1, 386, 256, -1, -1, -1, -1, 392,
13597
393, -1, 264, 265, -1, 267, -1, -1, 270, 271,
13598
-1, -1, -1, 275, 276, 277, -1, 279, -1, -1,
13599
-1, -1, -1, 285, 417, 418, 288, 420, -1, -1,
13600
-1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
13601
302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
13602
-1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
13603
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
13604
332, -1, 334, -1, -1, -1, -1, -1, -1, -1,
13605
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13606
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
13607
362, 363, -1, -1, -1, -1, -1, -1, -1, 371,
13608
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
13609
-1, -1, 384, -1, 386, 256, -1, -1, -1, -1,
13610
392, 393, -1, 264, 265, -1, 267, -1, -1, 270,
13611
271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
13612
-1, -1, -1, -1, 285, 417, 418, 288, 420, -1,
13613
-1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
13614
-1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
13615
-1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
13616
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
13617
331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
13618
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13619
-1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
13620
361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
13621
371, -1, -1, -1, -1, -1, 377, 378, 379, 380,
13622
-1, -1, -1, 384, -1, 386, 256, -1, -1, -1,
13623
-1, 392, 393, -1, 264, 265, -1, 267, -1, -1,
13624
270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
13625
-1, -1, -1, -1, -1, 285, 417, 418, 288, 420,
13626
-1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
13627
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
13628
-1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
13629
-1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
13630
330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
13631
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13632
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
13633
360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
13634
-1, 371, -1, -1, -1, -1, -1, 377, 378, 379,
13635
380, -1, -1, -1, 384, -1, 386, 256, -1, -1,
13636
-1, -1, 392, 393, -1, 264, 265, -1, 267, -1,
13637
-1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
13638
279, -1, -1, -1, -1, -1, 285, 417, 418, 288,
13639
420, -1, -1, -1, -1, -1, 295, -1, -1, -1,
13640
-1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
13641
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
13642
319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
13643
329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
13644
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13645
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13646
359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
13647
-1, -1, 371, -1, -1, -1, -1, -1, 377, 378,
13648
379, 380, -1, -1, -1, 384, -1, 386, 256, -1,
13649
-1, -1, -1, 392, 393, -1, 264, 265, -1, 267,
13650
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
13651
-1, 279, -1, -1, -1, -1, -1, 285, 417, 418,
13652
288, 420, -1, -1, -1, -1, -1, 295, -1, -1,
13653
-1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
13654
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
13655
318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
13656
-1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
13657
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13658
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13659
-1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
13660
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
13661
378, 379, 380, -1, -1, -1, 384, -1, 386, 256,
13662
-1, -1, -1, -1, 392, 393, -1, 264, 265, -1,
13663
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
13664
277, -1, 279, -1, -1, -1, -1, -1, 285, 417,
13665
418, 288, 420, -1, -1, -1, -1, -1, 295, -1,
13666
-1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
13667
-1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
13668
-1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
13669
327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
13670
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13671
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13672
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
13673
-1, -1, -1, -1, 371, -1, -1, -1, -1, -1,
13674
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
13675
256, -1, -1, -1, -1, 392, 393, -1, 264, 265,
13676
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
13677
276, 277, -1, 279, -1, -1, -1, -1, -1, 285,
13678
417, 418, 288, 420, -1, -1, -1, -1, -1, 295,
13679
-1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
13680
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13681
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
13682
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
13683
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13684
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13685
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
13686
-1, -1, -1, -1, -1, 371, -1, -1, -1, -1,
13687
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
13688
386, 256, -1, -1, -1, -1, 392, 393, -1, 264,
13689
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
13690
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
13691
285, 417, 418, 288, 420, -1, -1, -1, -1, -1,
13692
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
13693
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13694
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
13695
325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
13696
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13697
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13698
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
13699
-1, -1, -1, -1, -1, -1, 371, -1, -1, -1,
13700
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
13701
-1, 386, 256, -1, -1, -1, -1, 392, 393, -1,
13702
264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
13703
-1, 275, 276, 277, -1, 279, -1, -1, -1, -1,
13704
-1, 285, 417, 418, 288, 420, -1, -1, -1, -1,
13705
-1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
13706
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13707
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
13708
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
13709
334, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13710
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13711
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
13712
-1, -1, -1, -1, -1, -1, -1, 371, -1, -1,
13713
-1, -1, -1, 377, 378, 379, 380, -1, -1, -1,
13714
384, -1, 386, 256, -1, -1, -1, -1, 392, 393,
13715
-1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
13716
-1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
13717
-1, -1, 285, 417, 418, 288, 420, -1, -1, -1,
13718
-1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
13719
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
13720
-1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
13721
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
13722
-1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
13723
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13724
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
13725
363, -1, -1, -1, -1, -1, -1, -1, 371, -1,
13726
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
13727
-1, 384, -1, 386, 256, -1, -1, -1, -1, 392,
13728
393, -1, 264, 265, -1, 267, -1, -1, 270, 271,
13729
-1, -1, -1, 275, 276, 277, -1, 279, -1, -1,
13730
-1, -1, -1, 285, 417, 418, 288, 420, -1, -1,
13731
-1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
13732
302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
13733
-1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
13734
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
13735
332, -1, 334, -1, -1, -1, -1, -1, -1, -1,
13736
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13737
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
13738
362, 363, -1, -1, -1, -1, -1, -1, -1, 371,
13739
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
13740
-1, -1, 384, -1, 386, 256, -1, -1, -1, -1,
13741
392, 393, -1, 264, 265, -1, 267, -1, -1, 270,
13742
271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
13743
-1, -1, -1, -1, 285, 417, 418, 288, 420, -1,
13744
-1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
13745
-1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
13746
-1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
13747
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
13748
331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
13749
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13750
-1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
13751
361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
13752
371, -1, -1, -1, -1, -1, 377, 378, 379, 380,
13753
-1, -1, -1, 384, -1, 386, 256, -1, -1, -1,
13754
-1, 392, 393, -1, 264, 265, -1, 267, -1, -1,
13755
270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
13756
-1, -1, -1, -1, -1, 285, 417, 418, 288, 420,
13757
-1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
13758
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
13759
-1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
13760
-1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
13761
330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
13762
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13763
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
13764
360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
13765
-1, 371, -1, -1, -1, -1, -1, 377, 378, 379,
13766
380, -1, -1, -1, 384, -1, 386, 256, -1, -1,
13767
-1, -1, 392, 393, -1, 264, 265, -1, 267, -1,
13768
-1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
13769
279, -1, -1, -1, -1, -1, 285, 417, 418, 288,
13770
420, -1, -1, -1, -1, -1, 295, -1, -1, -1,
13771
-1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
13772
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
13773
319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
13774
329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
13775
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13776
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13777
359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
13778
-1, -1, 371, -1, -1, -1, -1, -1, 377, 378,
13779
379, 380, -1, -1, -1, 384, -1, 386, 256, -1,
13780
-1, -1, -1, 392, 393, -1, 264, 265, -1, 267,
13781
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
13782
-1, 279, -1, -1, -1, -1, -1, 285, 417, 418,
13783
288, 420, -1, -1, -1, -1, -1, 295, -1, -1,
13784
-1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
13785
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
13786
318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
13787
-1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
13788
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13789
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13790
-1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
13791
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
13792
378, 379, 380, -1, -1, -1, 384, -1, 386, 256,
13793
-1, -1, -1, -1, 392, 393, -1, 264, 265, -1,
13794
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
13795
277, -1, 279, -1, -1, -1, -1, -1, 285, 417,
13796
418, 288, 420, -1, -1, -1, -1, -1, 295, -1,
13797
-1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
13798
-1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
13799
-1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
13800
327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
13801
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13802
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13803
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
13804
-1, -1, -1, -1, 371, -1, -1, -1, -1, -1,
13805
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
13806
256, -1, -1, -1, -1, 392, 393, -1, 264, 265,
13807
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
13808
276, 277, -1, 279, -1, -1, -1, -1, -1, 285,
13809
417, 418, 288, 420, -1, -1, -1, -1, -1, 295,
13810
-1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
13811
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13812
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
13813
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
13814
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13815
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13816
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
13817
-1, -1, -1, -1, -1, 371, -1, -1, -1, -1,
13818
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
13819
386, 256, -1, -1, -1, -1, 392, 393, -1, 264,
13820
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
13821
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
13822
285, 417, 418, 288, 420, -1, -1, -1, -1, -1,
13823
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
13824
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13825
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
13826
325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
13827
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13828
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13829
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
13830
-1, -1, -1, -1, -1, -1, 371, -1, -1, -1,
13831
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
13832
-1, 386, 256, -1, -1, -1, -1, 392, 393, -1,
13833
264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
13834
-1, 275, 276, 277, -1, 279, -1, -1, -1, -1,
13835
-1, 285, 417, 418, 288, 420, -1, -1, -1, -1,
13836
-1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
13837
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13838
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
13839
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
13840
334, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13841
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13842
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
13843
-1, -1, -1, -1, -1, -1, -1, 371, -1, -1,
13844
-1, -1, -1, 377, 378, 379, 380, -1, -1, -1,
13845
384, -1, 386, 256, -1, -1, -1, -1, 392, 393,
13846
-1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
13847
-1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
13848
-1, -1, 285, 417, 418, 288, 420, -1, -1, -1,
13849
-1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
13850
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
13851
-1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
13852
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
13853
-1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
13854
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13855
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
13856
363, -1, -1, -1, -1, -1, -1, -1, 371, -1,
13857
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
13858
-1, 384, -1, 386, 256, -1, -1, -1, -1, 392,
13859
393, -1, 264, 265, -1, 267, -1, -1, 270, 271,
13860
-1, -1, -1, 275, 276, 277, -1, 279, -1, -1,
13861
-1, -1, -1, 285, 417, 418, 288, 420, -1, -1,
13862
-1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
13863
302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
13864
-1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
13865
322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
13866
332, -1, 334, -1, -1, -1, -1, -1, -1, -1,
13867
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13868
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
13869
362, 363, -1, -1, -1, -1, -1, -1, -1, 371,
13870
-1, -1, -1, -1, -1, 377, 378, 379, 380, -1,
13871
-1, -1, 384, -1, 386, 256, -1, -1, -1, -1,
13872
392, 393, -1, 264, 265, -1, 267, -1, -1, 270,
13873
271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
13874
-1, -1, -1, -1, 285, 417, 418, 288, 420, -1,
13875
-1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
13876
-1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
13877
-1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
13878
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
13879
331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
13880
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13881
-1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
13882
361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
13883
371, -1, -1, -1, -1, -1, 377, 378, 379, 380,
13884
-1, -1, -1, 384, -1, 386, 256, -1, -1, -1,
13885
-1, 392, 393, -1, 264, 265, -1, 267, -1, -1,
13886
270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
13887
-1, -1, -1, -1, -1, 285, 417, 418, 288, 420,
13888
-1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
13889
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
13890
-1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
13891
-1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
13892
330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
13893
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13894
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
13895
360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
13896
-1, 371, -1, -1, -1, -1, -1, 377, 378, 379,
13897
380, -1, -1, -1, 384, -1, 386, 256, -1, -1,
13898
-1, -1, 392, 393, -1, 264, 265, -1, 267, -1,
13899
-1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
13900
279, -1, -1, -1, -1, -1, 285, 417, 418, 288,
13901
420, -1, -1, -1, -1, -1, 295, -1, -1, -1,
13902
-1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
13903
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
13904
319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
13905
329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
13906
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13907
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13908
359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
13909
-1, -1, 371, -1, -1, -1, -1, -1, 377, 378,
13910
379, 380, -1, -1, -1, 384, -1, 386, 256, -1,
13911
-1, -1, -1, 392, 393, -1, 264, 265, -1, 267,
13912
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
13913
-1, 279, -1, -1, -1, -1, -1, 285, 417, 418,
13914
288, 420, -1, -1, -1, -1, -1, 295, -1, -1,
13915
-1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
13916
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
13917
318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
13918
-1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
13919
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13920
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13921
-1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
13922
-1, -1, -1, 371, -1, -1, -1, -1, -1, 377,
13923
378, 379, 380, -1, -1, -1, 384, -1, 386, 256,
13924
-1, -1, -1, -1, 392, 393, -1, 264, 265, -1,
13925
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
13926
277, -1, 279, -1, -1, -1, -1, -1, 285, 417,
13927
418, 288, 420, -1, -1, -1, -1, -1, 295, -1,
13928
-1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
13929
-1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
13930
-1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
13931
327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
13932
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13933
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13934
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
13935
-1, -1, -1, -1, 371, -1, -1, -1, -1, -1,
13936
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
13937
256, -1, -1, -1, -1, 392, 393, -1, 264, 265,
13938
-1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
13939
276, 277, -1, 279, -1, -1, -1, -1, -1, 285,
13940
417, 418, 288, 420, -1, -1, -1, -1, -1, 295,
13941
-1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
13942
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13943
316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
13944
-1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
13945
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13946
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13947
-1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
13948
-1, -1, -1, -1, -1, 371, -1, -1, -1, -1,
13949
-1, 377, 378, 379, 380, -1, -1, -1, 384, -1,
13950
386, 256, -1, -1, -1, -1, 392, 393, -1, 264,
13951
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
13952
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
13953
285, 417, 418, 288, 420, -1, -1, -1, -1, -1,
13954
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
13955
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13956
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
13957
325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
13958
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13959
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13960
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
13961
-1, -1, -1, -1, -1, -1, 371, -1, -1, -1,
13962
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
13963
-1, 386, 256, -1, -1, -1, -1, 392, 393, 262,
13964
264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
13965
-1, 275, 276, 277, -1, 279, -1, -1, -1, -1,
13966
-1, 285, 417, 418, 288, 420, -1, -1, -1, -1,
13967
-1, 295, -1, -1, -1, 298, 300, -1, 302, 303,
13968
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13969
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
13970
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
13971
334, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13972
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13973
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
13974
-1, -1, -1, -1, -1, -1, -1, 371, 371, 372,
13975
373, 374, 375, -1, -1, 378, 379, -1, -1, 382,
13976
383, 384, 385, 386, 387, 388, 389, 390, -1, 392,
13977
393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
13978
403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
13979
413, -1, -1, 417, 418, -1, -1, 420, -1, 261,
13980
423, 263, -1, 265, -1, 267, -1, -1, 270, -1,
13981
272, 273, -1, 275, -1, 277, -1, 279, -1, 281,
13982
282, 283, 284, -1, -1, 287, 288, -1, -1, -1,
13983
-1, 293, 294, 295, 296, 297, -1, -1, 300, -1,
13984
302, -1, 304, -1, 306, 307, -1, 309, 310, 311,
13985
312, -1, -1, 315, 316, 317, 318, -1, -1, 321,
13986
322, 323, -1, -1, -1, -1, -1, -1, 330, 331,
13987
-1, 333, 334, -1, 336, 337, 338, -1, -1, -1,
13988
342, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13989
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
13990
362, -1, 364, 365, 261, -1, -1, -1, 265, -1,
13991
267, -1, -1, 270, -1, 272, 273, -1, 275, -1,
13992
277, -1, 279, -1, 281, 282, 283, 284, -1, -1,
13993
287, 288, -1, -1, -1, -1, 293, -1, 295, 296,
13994
297, -1, -1, 300, -1, 302, -1, 304, -1, -1,
13995
307, -1, 309, 310, 311, 312, 418, -1, -1, 316,
13996
317, 318, -1, -1, 321, 322, 323, -1, -1, -1,
13997
-1, -1, -1, 330, 331, -1, 333, 334, -1, 336,
13998
337, 338, -1, -1, -1, 342, -1, -1, -1, -1,
13999
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14000
-1, -1, -1, 261, -1, 362, -1, 265, -1, 267,
14001
-1, 368, 270, -1, 272, 273, -1, 275, -1, 277,
14002
377, 279, -1, 281, 282, 283, 284, -1, -1, 287,
14003
288, -1, -1, -1, -1, 293, -1, 295, 296, 297,
14004
-1, -1, 300, -1, 302, -1, 304, -1, -1, 307,
14005
-1, 309, 310, 311, 312, -1, -1, -1, 316, 317,
14006
318, 418, -1, 321, 322, 323, -1, -1, -1, -1,
14007
-1, -1, 330, 331, -1, 333, 334, -1, 336, 337,
14008
338, -1, -1, -1, 342, -1, -1, -1, -1, -1,
14009
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14010
-1, -1, 261, -1, 362, -1, 265, -1, 267, -1,
14011
368, 270, -1, 272, 273, -1, 275, -1, 277, 377,
14012
279, -1, 281, 282, 283, 284, -1, -1, 287, 288,
14013
-1, -1, -1, -1, 293, -1, 295, 296, 297, -1,
14014
-1, 300, -1, 302, -1, 304, -1, -1, 307, -1,
14015
309, 310, 311, 312, -1, -1, -1, 316, 317, 318,
14016
418, -1, 321, 322, 323, -1, -1, -1, -1, -1,
14017
-1, 330, 331, -1, 333, 334, -1, 336, 337, 338,
14018
-1, -1, -1, 342, -1, -1, -1, -1, 261, -1,
14019
-1, -1, 265, -1, 267, -1, -1, 270, -1, 272,
14020
273, -1, 275, 362, 277, -1, 279, -1, 281, 282,
14021
283, 284, -1, -1, 287, 288, -1, -1, 377, -1,
14022
293, -1, 295, 296, 297, -1, -1, 300, -1, 302,
14023
-1, 304, -1, -1, 307, -1, 309, 310, 311, 312,
14024
-1, -1, -1, 316, 317, 318, -1, -1, 321, 322,
14025
323, -1, -1, -1, -1, -1, -1, 330, 331, 418,
14026
333, 334, -1, 336, 337, 338, -1, -1, -1, 342,
14027
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14028
-1, -1, 261, -1, -1, -1, 265, -1, 267, 362,
14029
-1, 270, -1, 272, 273, 368, 275, -1, 277, -1,
14030
279, -1, 281, 282, 283, 284, -1, -1, 287, 288,
14031
-1, -1, -1, -1, 293, -1, 295, 296, 297, -1,
14032
-1, 300, -1, 302, 261, 304, -1, -1, 307, -1,
14033
309, 310, 311, 312, -1, -1, -1, 316, 317, 318,
14034
-1, -1, 321, 322, 323, 418, -1, 284, -1, -1,
14035
-1, 330, 331, -1, 333, 334, -1, 336, 337, 338,
14036
297, -1, -1, 342, -1, 302, -1, -1, 305, -1,
14037
307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
14038
317, -1, -1, 362, 321, -1, -1, -1, 325, 368,
14039
-1, -1, -1, -1, 261, -1, 333, -1, -1, 336,
14040
-1, 338, -1, -1, -1, -1, -1, -1, -1, -1,
14041
-1, -1, -1, -1, -1, -1, -1, 284, -1, -1,
14042
357, -1, -1, -1, -1, 362, -1, -1, -1, -1,
14043
297, 368, 369, -1, 371, 302, 373, -1, 305, 418,
14044
307, -1, 309, 310, 311, 312, -1, -1, -1, 386,
14045
317, -1, -1, -1, 321, -1, 261, -1, 325, -1,
14046
-1, -1, -1, -1, -1, -1, 333, -1, -1, 336,
14047
-1, 338, -1, -1, -1, -1, -1, -1, -1, 284,
14048
-1, 418, -1, -1, -1, -1, -1, -1, -1, -1,
14049
-1, -1, 297, -1, 261, 362, -1, 302, -1, -1,
14050
305, 368, 307, -1, 309, 310, 311, 312, -1, -1,
14051
-1, -1, 317, -1, -1, -1, 321, 284, -1, -1,
14052
325, -1, -1, -1, -1, -1, -1, -1, 333, -1,
14053
297, 336, 261, 338, -1, 302, -1, -1, -1, -1,
14054
307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
14055
317, 418, -1, -1, 321, 284, -1, 362, 325, -1,
14056
-1, -1, -1, 368, -1, -1, 333, -1, 297, 336,
14057
261, 338, -1, 302, -1, -1, -1, -1, 307, -1,
14058
309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
14059
-1, -1, 321, 284, -1, 362, 325, -1, -1, -1,
14060
-1, 368, -1, -1, 333, -1, 297, 336, -1, 338,
14061
-1, 302, -1, 418, -1, -1, 307, -1, 309, 310,
14062
311, 312, -1, -1, -1, -1, 317, -1, -1, -1,
14063
321, -1, -1, 362, -1, -1, -1, -1, -1, -1,
14064
-1, -1, 333, 264, 265, 336, 267, 338, -1, 270,
14065
271, 418, -1, -1, 275, 276, 277, -1, 279, -1,
14066
-1, -1, -1, -1, 285, -1, -1, 288, -1, -1,
14067
-1, 362, -1, -1, 295, -1, -1, -1, -1, 300,
14068
-1, 302, 303, 304, -1, 306, -1, -1, -1, 418,
14069
-1, -1, 313, -1, -1, 316, -1, 318, 319, -1,
14070
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
14071
331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
14072
341, -1, -1, 344, 345, -1, -1, 418, -1, -1,
14073
-1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
14074
361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
14075
371, 372, -1, 374, -1, -1, 377, 378, 379, 380,
14076
-1, -1, -1, 384, -1, 386, -1, -1, -1, -1,
14077
-1, 392, 393, -1, -1, -1, -1, -1, -1, 264,
14078
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
14079
275, 276, 277, -1, 279, -1, 417, 418, 419, 420,
14080
285, -1, -1, 288, -1, -1, -1, -1, -1, -1,
14081
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
14082
-1, 306, -1, -1, -1, -1, -1, -1, 313, -1,
14083
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
14084
325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
14085
-1, -1, -1, -1, -1, -1, 341, -1, -1, 344,
14086
345, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14087
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
14088
-1, -1, -1, -1, -1, -1, 371, -1, -1, 374,
14089
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
14090
-1, 386, -1, -1, -1, -1, -1, 392, 393, -1,
14091
-1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
14092
-1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
14093
279, -1, 417, 418, 419, 420, 285, -1, -1, 288,
14094
-1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
14095
-1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
14096
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
14097
319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
14098
329, 330, 331, 332, -1, 334, -1, -1, 337, -1,
14099
-1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
14100
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14101
359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
14102
-1, -1, 371, -1, -1, -1, -1, -1, 377, 378,
14103
379, 380, -1, -1, -1, 384, -1, 386, -1, -1,
14104
-1, -1, -1, 392, 393, -1, -1, -1, -1, -1,
14105
-1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
14106
-1, -1, 275, 276, 277, -1, 279, -1, 417, 418,
14107
419, 420, 285, -1, -1, 288, -1, -1, -1, -1,
14108
-1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
14109
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
14110
-1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
14111
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
14112
-1, 334, -1, -1, -1, -1, -1, -1, 341, -1,
14113
-1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
14114
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
14115
363, -1, -1, -1, 367, -1, -1, -1, 371, -1,
14116
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
14117
-1, 384, -1, 386, -1, -1, -1, -1, -1, 392,
14118
393, -1, -1, -1, -1, -1, -1, 264, 265, -1,
14119
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
14120
277, -1, 279, -1, 417, 418, 419, 420, 285, -1,
14121
-1, 288, -1, -1, -1, -1, -1, -1, 295, -1,
14122
-1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
14123
-1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
14124
-1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
14125
327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
14126
-1, -1, -1, -1, 341, -1, -1, 344, 345, -1,
14127
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14128
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
14129
367, -1, -1, -1, 371, -1, -1, -1, -1, -1,
14130
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
14131
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
14132
-1, -1, -1, 264, 265, -1, 267, -1, -1, 270,
14133
271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
14134
417, 418, 419, 420, 285, -1, -1, 288, -1, -1,
14135
-1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
14136
-1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
14137
-1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
14138
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
14139
331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
14140
341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
14141
-1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
14142
361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
14143
371, -1, -1, -1, -1, -1, 377, 378, 379, 380,
14144
-1, -1, -1, 384, -1, 386, -1, -1, -1, -1,
14145
-1, 392, 393, -1, -1, -1, -1, -1, -1, 264,
14146
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
14147
275, 276, 277, -1, 279, -1, 417, 418, 419, 420,
14148
285, -1, -1, 288, -1, -1, -1, -1, -1, -1,
14149
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
14150
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14151
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
14152
325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
14153
-1, -1, -1, -1, -1, -1, 341, -1, -1, 344,
14154
345, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14155
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
14156
-1, -1, -1, -1, -1, -1, 371, -1, -1, -1,
14157
-1, -1, 377, 378, 379, 380, -1, -1, -1, 384,
14158
-1, 386, -1, -1, -1, -1, -1, 392, 393, -1,
14159
-1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
14160
-1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
14161
279, -1, 417, 418, 419, 420, 285, -1, -1, 288,
14162
-1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
14163
-1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
14164
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
14165
319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
14166
329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
14167
-1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
14168
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14169
359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
14170
-1, -1, 371, -1, -1, -1, -1, -1, 377, 378,
14171
379, 380, -1, -1, -1, 384, -1, 386, -1, -1,
14172
-1, -1, -1, 392, 393, -1, -1, -1, -1, -1,
14173
-1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
14174
-1, -1, 275, 276, 277, -1, 279, -1, 417, 418,
14175
419, 420, 285, -1, -1, 288, -1, -1, -1, -1,
14176
-1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
14177
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
14178
-1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
14179
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
14180
-1, 334, -1, -1, -1, -1, -1, -1, 341, -1,
14181
-1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
14182
-1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
14183
363, -1, -1, -1, -1, -1, -1, -1, 371, -1,
14184
-1, -1, -1, -1, 377, 378, 379, 380, -1, -1,
14185
-1, 384, -1, 386, -1, -1, -1, -1, -1, 392,
14186
393, -1, -1, -1, -1, -1, -1, 264, 265, -1,
14187
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
14188
277, -1, 279, -1, 417, 418, 419, 420, 285, -1,
14189
-1, 288, -1, -1, -1, -1, -1, -1, 295, -1,
14190
-1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
14191
-1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
14192
-1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
14193
327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
14194
-1, -1, -1, -1, 341, -1, -1, 344, 345, -1,
14195
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14196
-1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
14197
-1, -1, -1, -1, 371, -1, -1, -1, -1, -1,
14198
377, 378, 379, 380, -1, -1, -1, 384, -1, 386,
14199
-1, -1, -1, -1, -1, 392, 393, -1, -1, -1,
14200
-1, -1, -1, 264, 265, -1, 267, -1, -1, 270,
14201
271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
14202
417, 418, 419, 420, 285, -1, -1, 288, -1, -1,
14203
-1, -1, -1, -1, 295, -1, 261, -1, -1, 300,
14204
-1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
14205
-1, -1, -1, -1, -1, 316, -1, 318, 319, 284,
14206
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
14207
331, 332, 297, 334, -1, -1, -1, 302, -1, -1,
14208
-1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
14209
315, -1, 317, -1, -1, -1, 321, -1, 359, 360,
14210
361, 362, 363, -1, -1, -1, -1, -1, 333, -1,
14211
371, 336, -1, 338, -1, -1, 377, 378, 379, 380,
14212
-1, -1, -1, 384, -1, 386, -1, -1, -1, -1,
14213
-1, 392, 393, -1, -1, -1, -1, 362, -1, -1,
14214
-1, -1, -1, 368, 369, -1, -1, -1, -1, -1,
14215
-1, 263, -1, 265, -1, 267, 417, 418, 270, 420,
14216
272, 273, -1, 275, -1, 277, -1, 279, -1, 281,
14217
282, 283, -1, -1, -1, 287, 288, -1, -1, -1,
14218
-1, 293, -1, 295, 296, -1, -1, -1, 300, -1,
14219
-1, -1, 304, -1, -1, -1, -1, -1, -1, -1,
14220
-1, -1, -1, 315, 316, -1, 318, -1, -1, -1,
14221
322, 323, -1, -1, -1, -1, -1, -1, 330, 331,
14222
264, 265, 334, 267, -1, 337, 270, 271, -1, -1,
14223
342, 275, 276, 277, -1, 279, -1, -1, -1, -1,
14224
-1, 285, -1, -1, 288, -1, -1, -1, -1, -1,
14225
-1, 295, 364, 365, -1, -1, 300, -1, 302, 303,
14226
304, -1, -1, -1, -1, 377, -1, -1, -1, -1,
14227
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
14228
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
14229
334, -1, -1, 337, -1, -1, -1, -1, -1, -1,
14230
265, -1, 267, -1, -1, 270, 418, 272, -1, -1,
14231
275, -1, -1, -1, 279, 359, 360, 361, 362, -1,
14232
-1, -1, -1, 288, 265, -1, 267, 371, -1, 270,
14233
295, 272, 273, -1, 275, 300, 277, 302, 279, 304,
14234
281, 282, 283, -1, -1, -1, 287, 288, -1, -1,
14235
-1, 316, 293, 318, 295, 296, -1, 322, 323, 300,
14236
-1, -1, -1, 304, -1, 330, 331, -1, -1, 334,
14237
-1, -1, 337, 417, 418, 316, -1, 318, -1, -1,
14238
-1, 322, 323, -1, -1, -1, -1, -1, -1, 330,
14239
331, -1, 265, 334, 267, -1, 337, 270, -1, 272,
14240
273, 342, 275, -1, 277, -1, 279, -1, 281, 282,
14241
283, -1, -1, -1, 287, 288, -1, -1, -1, -1,
14242
293, -1, 295, 296, -1, -1, -1, 300, -1, -1,
14243
-1, 304, -1, -1, -1, -1, 377, -1, -1, -1,
14244
-1, -1, -1, 316, -1, 318, -1, -1, -1, 322,
14245
323, -1, -1, 418, -1, -1, -1, 330, 331, -1,
14246
-1, 334, -1, -1, 337, -1, 265, -1, 267, 342,
14247
-1, 270, -1, -1, 273, -1, 275, 418, 277, -1,
14248
279, -1, 281, 282, 283, -1, -1, -1, 287, 288,
14249
-1, -1, -1, -1, 293, -1, 295, -1, 265, -1,
14250
267, 300, -1, 270, -1, 304, 273, -1, 275, -1,
14251
277, -1, 279, -1, 281, 282, 283, 316, -1, 318,
14252
287, 288, -1, 322, -1, -1, 293, -1, 295, -1,
14253
-1, 330, 331, 300, -1, 334, -1, 304, 337, -1,
14254
-1, -1, 265, 342, 267, 418, -1, 270, -1, 316,
14255
-1, 318, 275, -1, -1, 322, 279, -1, -1, -1,
14256
-1, -1, -1, 330, 331, 288, -1, 334, -1, -1,
14257
337, -1, 295, -1, 265, 342, 267, 300, 377, 270,
14258
-1, 304, -1, 306, 275, 308, -1, -1, 279, -1,
14259
313, -1, -1, 316, -1, 318, -1, 288, -1, 322,
14260
-1, -1, 325, -1, 295, -1, -1, 330, 331, 300,
14261
-1, 334, -1, 304, 337, 306, -1, 308, 265, 418,
14262
267, -1, 313, 270, -1, 316, -1, 318, 275, -1,
14263
-1, 322, 279, -1, 325, -1, -1, -1, -1, 330,
14264
331, 288, -1, 334, -1, -1, 337, -1, 295, 372,
14265
-1, 418, -1, 300, -1, -1, -1, 304, -1, 306,
14266
-1, -1, -1, -1, -1, -1, 313, -1, -1, 316,
14267
-1, 318, -1, -1, -1, 322, -1, -1, 325, 370,
14268
-1, -1, -1, 330, 331, -1, -1, 334, -1, 265,
14269
337, 267, -1, -1, 270, 418, -1, -1, -1, 275,
14270
-1, -1, -1, 279, -1, -1, -1, -1, -1, -1,
14271
-1, -1, 288, -1, -1, -1, 363, -1, -1, 295,
14272
-1, 265, -1, 267, 300, -1, 270, 418, 304, -1,
14273
306, 275, 308, -1, -1, 279, -1, 313, -1, -1,
14274
316, -1, 318, -1, 288, -1, 322, -1, -1, 325,
14275
-1, 295, -1, -1, 330, 331, 300, -1, 334, -1,
14276
304, 337, 306, -1, 308, 265, -1, 267, -1, 313,
14277
270, 418, 316, -1, 318, 275, -1, -1, 322, 279,
14278
-1, 325, -1, -1, -1, -1, 330, 331, 288, -1,
14279
334, -1, -1, 337, -1, 295, -1, -1, -1, -1,
14280
300, -1, -1, -1, 304, -1, -1, -1, -1, 261,
14281
-1, -1, -1, -1, -1, -1, 316, -1, 318, -1,
14282
272, -1, 322, -1, -1, 277, -1, -1, -1, 281,
14283
330, 331, 284, -1, 334, -1, -1, 337, -1, -1,
14284
-1, -1, 418, -1, 296, 297, -1, -1, -1, 301,
14285
302, -1, -1, -1, -1, 307, -1, 309, 310, 311,
14286
312, -1, -1, 363, -1, 317, -1, -1, -1, 321,
14287
-1, 323, -1, -1, 418, -1, -1, -1, -1, -1,
14288
-1, 333, -1, 335, 336, 261, 338, -1, -1, -1,
14289
342, -1, -1, -1, -1, -1, 272, -1, -1, -1,
14290
-1, 277, -1, -1, -1, 281, -1, -1, 284, -1,
14291
362, -1, -1, -1, -1, -1, 368, 369, 418, -1,
14292
296, 297, -1, -1, -1, 301, 302, 261, -1, 263,
14293
-1, 307, -1, 309, 310, 311, 312, -1, -1, -1,
14294
-1, 317, -1, -1, -1, 321, -1, 323, -1, -1,
14295
284, -1, -1, -1, -1, -1, -1, 333, -1, -1,
14296
336, -1, 338, 297, -1, -1, 342, -1, 302, -1,
14297
-1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
14298
-1, -1, -1, 317, -1, -1, 362, 321, -1, -1,
14299
261, -1, 368, 369, -1, -1, -1, -1, -1, 333,
14300
-1, 272, 336, -1, 338, -1, 277, -1, -1, -1,
14301
281, -1, -1, 284, -1, -1, -1, -1, -1, -1,
14302
-1, -1, -1, -1, -1, 296, 297, -1, 362, -1,
14303
301, 302, -1, 261, 368, 369, 307, -1, 309, 310,
14304
311, 312, -1, -1, 272, -1, 317, -1, -1, 277,
14305
321, -1, 323, 281, -1, -1, 284, -1, -1, -1,
14306
-1, -1, 333, -1, -1, 336, -1, 338, 296, 297,
14307
-1, 342, -1, 301, 302, 261, -1, -1, -1, 307,
14308
-1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
14309
-1, 362, -1, 321, -1, 323, -1, 368, 284, -1,
14310
-1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
14311
338, 297, -1, 261, 342, -1, 302, -1, -1, -1,
14312
-1, 307, -1, 309, 310, 311, 312, -1, -1, -1,
14313
-1, 317, -1, -1, 362, 321, 284, -1, -1, -1,
14314
368, -1, -1, -1, -1, -1, -1, 333, -1, 297,
14315
336, 261, 338, -1, 302, -1, -1, -1, -1, 307,
14316
-1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
14317
-1, -1, -1, 321, 284, -1, 362, -1, 364, 365,
14318
-1, -1, 368, -1, -1, 333, -1, 297, 336, 261,
14319
338, 263, 302, -1, -1, -1, -1, 307, -1, 309,
14320
310, 311, 312, -1, -1, 315, -1, 317, -1, -1,
14321
-1, 321, 284, -1, 362, -1, 364, 365, -1, -1,
14322
368, -1, -1, 333, -1, 297, 336, 261, 338, -1,
14323
302, -1, -1, -1, -1, 307, -1, 309, 310, 311,
14324
312, -1, -1, -1, -1, 317, -1, -1, -1, 321,
14325
284, -1, 362, -1, -1, -1, -1, 261, 368, 263,
14326
-1, 333, -1, 297, 336, -1, 338, -1, 302, -1,
14327
-1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
14328
284, -1, -1, 317, -1, -1, -1, 321, -1, -1,
14329
362, -1, -1, 297, -1, -1, 368, 261, 302, 333,
14330
-1, -1, 336, 307, 338, 309, 310, 311, 312, -1,
14331
-1, 315, -1, 317, -1, -1, -1, 321, -1, -1,
14332
284, -1, -1, -1, -1, -1, -1, 261, 362, 333,
14333
364, 365, 336, 297, 338, -1, -1, 301, 302, -1,
14334
-1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
14335
284, -1, -1, 317, -1, -1, -1, 321, 362, -1,
14336
-1, -1, -1, 297, -1, -1, -1, -1, 302, 333,
14337
-1, -1, 336, 307, 338, 309, 310, 311, 312, -1,
14338
-1, -1, -1, 317, -1, -1, -1, 321, -1, -1,
14339
-1, -1, -1, -1, -1, -1, -1, -1, 362, 333,
14340
-1, -1, 336, -1, 338, -1, -1, -1, -1, -1,
14341
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
14342
-1, -1, -1, -1, -1, -1, -1, -1, 362,
14345
#line 7043 "cs-parser.jay"
14348
// A class used to hold info about an operator declarator
14350
class OperatorDeclaration {
14351
public readonly Operator.OpType optype;
14352
public readonly FullNamedExpression ret_type;
14353
public readonly Location location;
14355
public OperatorDeclaration (Operator.OpType op, FullNamedExpression ret_type, Location location)
14358
this.ret_type = ret_type;
14359
this.location = location;
14363
void Error_ExpectingTypeName (Expression expr)
14365
if (expr is Invocation){
14366
report.Error (1002, expr.Location, "Expecting `;'");
14368
expr.Error_InvalidExpressionStatement (report);
14372
void Error_ParameterModifierNotValid (string modifier, Location loc)
14374
report.Error (631, loc, "The parameter modifier `{0}' is not valid in this context",
14378
void Error_DuplicateParameterModifier (Location loc, Parameter.Modifier mod)
14380
report.Error (1107, loc, "Duplicate parameter modifier `{0}'",
14381
Parameter.GetModifierSignature (mod));
14384
void Error_TypeExpected (Location loc)
14386
report.Error (1031, loc, "Type expected");
14389
void Error_UnsafeCodeNotAllowed (Location loc)
14391
report.Error (227, loc, "Unsafe code requires the `unsafe' command line option to be specified");
14394
void Warning_EmptyStatement (Location loc)
14396
report.Warning (642, 3, loc, "Possible mistaken empty statement");
14399
void Error_NamedArgumentExpected (NamedArgument a)
14401
report.Error (1738, a.Location, "Named arguments must appear after the positional arguments");
14404
void Error_MissingInitializer (Location loc)
14406
report.Error (210, loc, "You must provide an initializer in a fixed or using statement declaration");
14409
object Error_AwaitAsIdentifier (object token)
14412
report.Error (4003, GetLocation (token), "`await' cannot be used as an identifier within an async method or lambda expression");
14413
return new Tokenizer.LocatedToken ("await", GetLocation (token));
14419
void push_current_container (TypeDefinition tc, object partial_token)
14421
if (module.Evaluator != null){
14422
tc.Definition.Modifiers = tc.ModFlags = (tc.ModFlags & ~Modifiers.AccessibilityMask) | Modifiers.PUBLIC;
14424
undo = new Undo ();
14426
undo.AddTypeContainer (current_container, tc);
14429
if (partial_token != null)
14430
current_container.AddPartial (tc);
14432
current_container.AddTypeContainer (tc);
14434
++lexer.parsing_declaration;
14435
current_container = tc;
14439
TypeContainer pop_current_class ()
14441
var retval = current_container;
14443
current_container = current_container.Parent;
14444
current_type = current_type.Parent as TypeDefinition;
14449
[System.Diagnostics.Conditional ("FULL_AST")]
14450
void StoreModifierLocation (object token, Location loc)
14455
if (mod_locations == null)
14456
mod_locations = new List<Tuple<Modifiers, Location>> ();
14458
mod_locations.Add (Tuple.Create ((Modifiers) token, loc));
14461
List<Tuple<Modifiers, Location>> GetModifierLocations ()
14463
var result = mod_locations;
14464
mod_locations = null;
14468
[System.Diagnostics.Conditional ("FULL_AST")]
14469
void PushLocation (Location loc)
14471
if (location_stack == null)
14472
location_stack = new Stack<Location> ();
14474
location_stack.Push (loc);
14477
Location PopLocation ()
14479
if (location_stack == null)
14480
return Location.Null;
14482
return location_stack.Pop ();
14485
string CheckAttributeTarget (string a, Location l)
14488
case "assembly" : case "module" : case "field" : case "method" : case "param" : case "property" : case "type" :
14492
report.Warning (658, 1, l,
14493
"`{0}' is invalid attribute target. All attributes in this attribute section will be ignored", a);
14494
return string.Empty;
14497
static bool IsUnaryOperator (Operator.OpType op)
14501
case Operator.OpType.LogicalNot:
14502
case Operator.OpType.OnesComplement:
14503
case Operator.OpType.Increment:
14504
case Operator.OpType.Decrement:
14505
case Operator.OpType.True:
14506
case Operator.OpType.False:
14507
case Operator.OpType.UnaryPlus:
14508
case Operator.OpType.UnaryNegation:
14514
void syntax_error (Location l, string msg)
14516
report.Error (1003, l, "Syntax error, " + msg);
14521
public Tokenizer Lexer {
14527
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file, ParserSession session)
14528
: this (reader, file, file.Compiler.Report, session)
14532
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file, Report report, ParserSession session)
14535
current_container = current_namespace = file;
14537
this.module = file.Module;
14538
this.compiler = file.Compiler;
14539
this.settings = compiler.Settings;
14540
this.report = report;
14542
lang_version = settings.Version;
14543
yacc_verbose_flag = settings.VerboseParserFlag;
14544
doc_support = settings.DocumentationFile != null;
14545
lexer = new Tokenizer (reader, file, session);
14546
oob_stack = new Stack<object> ();
14547
lbag = session.LocationsBag;
14548
use_global_stacks = session.UseJayGlobalArrays;
14549
parameters_bucket = session.ParametersStack;
14552
public void parse ()
14554
eof_token = Token.EOF;
14557
if (yacc_verbose_flag > 1)
14558
yyparse (lexer, new yydebug.yyDebugSimple ());
14562
Tokenizer tokenizer = lexer as Tokenizer;
14563
tokenizer.cleanup ();
14564
} catch (Exception e){
14565
if (e is yyParser.yyUnexpectedEof) {
14566
Error_SyntaxError (yyToken);
14567
UnexpectedEOF = true;
14571
if (e is yyParser.yyException) {
14572
if (report.Errors == 0)
14573
report.Error (-25, lexer.Location, "Parsing error");
14575
// Used by compiler-tester to test internal errors
14576
if (yacc_verbose_flag > 0 || e is FatalException)
14579
report.Error (589, lexer.Location, "Internal compiler error during parsing" + e);
14584
void CheckToken (int error, int yyToken, string msg, Location loc)
14586
if (yyToken >= Token.FIRST_KEYWORD && yyToken <= Token.LAST_KEYWORD)
14587
report.Error (error, loc, "{0}: `{1}' is a keyword", msg, GetTokenName (yyToken));
14589
report.Error (error, loc, msg);
14592
string ConsumeStoredComment ()
14594
string s = tmpComment;
14596
Lexer.doc_state = XmlCommentState.Allowed;
14600
void FeatureIsNotAvailable (Location loc, string feature)
14602
report.FeatureIsNotAvailable (compiler, loc, feature);
14605
Location GetLocation (object obj)
14607
var lt = obj as Tokenizer.LocatedToken;
14609
return lt.Location;
14611
var mn = obj as MemberName;
14613
return mn.Location;
14615
var expr = obj as Expression;
14617
return expr.Location;
14619
return lexer.Location;
14622
void start_block (Location loc)
14624
if (current_block == null) {
14625
current_block = new ToplevelBlock (compiler, current_local_parameters, loc);
14626
parsing_anonymous_method = false;
14627
} else if (parsing_anonymous_method) {
14628
current_block = new ParametersBlock (current_block, current_local_parameters, loc);
14629
parsing_anonymous_method = false;
14631
current_block = new ExplicitBlock (current_block, loc, Location.Null);
14636
end_block (Location loc)
14638
Block retval = current_block.Explicit;
14639
retval.SetEndLocation (loc);
14640
current_block = retval.Parent;
14644
void start_anonymous (bool isLambda, ParametersCompiled parameters, bool isAsync, Location loc)
14646
oob_stack.Push (current_anonymous_method);
14647
oob_stack.Push (current_local_parameters);
14648
oob_stack.Push (current_variable);
14649
oob_stack.Push (async_block);
14651
current_local_parameters = parameters;
14653
if (lang_version <= LanguageVersion.ISO_2)
14654
FeatureIsNotAvailable (loc, "lambda expressions");
14656
current_anonymous_method = new LambdaExpression (loc);
14658
if (lang_version == LanguageVersion.ISO_1)
14659
FeatureIsNotAvailable (loc, "anonymous methods");
14661
current_anonymous_method = new AnonymousMethodExpression (loc);
14663
current_anonymous_method.IsAsync = isAsync;
14665
async_block = isAsync;
14666
// Force the next block to be created as a ToplevelBlock
14667
parsing_anonymous_method = true;
14671
* Completes the anonymous method processing, if lambda_expr is null, this
14672
* means that we have a Statement instead of an Expression embedded
14674
AnonymousMethodExpression end_anonymous (ParametersBlock anon_block)
14676
AnonymousMethodExpression retval;
14679
anon_block.IsAsync = true;
14681
current_anonymous_method.Block = anon_block;
14682
retval = current_anonymous_method;
14684
async_block = (bool) oob_stack.Pop ();
14685
current_variable = (BlockVariableDeclaration) oob_stack.Pop ();
14686
current_local_parameters = (ParametersCompiled) oob_stack.Pop ();
14687
current_anonymous_method = (AnonymousMethodExpression) oob_stack.Pop ();
14692
void Error_SyntaxError (int token)
14694
Error_SyntaxError (0, token);
14697
void Error_SyntaxError (int error_code, int token)
14699
Error_SyntaxError (error_code, token, "Unexpected symbol");
14702
void Error_SyntaxError (int error_code, int token, string msg)
14704
Lexer.CompleteOnEOF = false;
14706
// An error message has been reported by tokenizer
14707
if (token == Token.ERROR)
14710
// Avoid duplicit error message after unterminated string literals
14711
if (token == Token.LITERAL && lexer.Location.Column == 0)
14714
string symbol = GetSymbolName (token);
14715
string expecting = GetExpecting ();
14716
var loc = lexer.Location - symbol.Length;
14718
if (error_code == 0) {
14719
if (expecting == "`identifier'") {
14720
if (token > Token.FIRST_KEYWORD && token < Token.LAST_KEYWORD) {
14721
report.Error (1041, loc, "Identifier expected, `{0}' is a keyword", symbol);
14726
expecting = "identifier";
14727
} else if (expecting == "`)'") {
14734
if (string.IsNullOrEmpty (expecting))
14735
report.Error (error_code, loc, "{1} `{0}'", symbol, msg);
14737
report.Error (error_code, loc, "{2} `{0}', expecting {1}", symbol, expecting, msg);
14740
string GetExpecting ()
14742
int [] tokens = yyExpectingTokens (yyExpectingState);
14743
var names = new List<string> (tokens.Length);
14744
bool has_type = false;
14745
bool has_identifier = false;
14746
for (int i = 0; i < tokens.Length; i++){
14747
int token = tokens [i];
14748
has_identifier |= token == Token.IDENTIFIER;
14750
string name = GetTokenName (token);
14751
if (name == "<internal>")
14754
has_type |= name == "type";
14755
if (names.Contains (name))
14762
// Too many tokens to enumerate
14764
if (names.Count > 8)
14767
if (has_type && has_identifier)
14768
names.Remove ("identifier");
14770
if (names.Count == 1)
14771
return "`" + GetTokenName (tokens [0]) + "'";
14773
StringBuilder sb = new StringBuilder ();
14775
int count = names.Count;
14776
for (int i = 0; i < count; i++){
14777
bool last = i + 1 == count;
14781
sb.Append (names [i]);
14782
sb.Append (last ? "'" : count < 3 ? "' " : "', ");
14784
return sb.ToString ();
14788
string GetSymbolName (int token)
14791
case Token.LITERAL:
14792
return ((Constant)lexer.Value).GetValue ().ToString ();
14793
case Token.IDENTIFIER:
14794
return ((Tokenizer.LocatedToken)lexer.Value).Value;
14804
case Token.DECIMAL:
14836
case Token.BITWISE_AND:
14838
case Token.BITWISE_OR:
14842
case Token.PERCENT:
14852
case Token.OP_SHIFT_LEFT:
14854
case Token.OP_SHIFT_RIGHT:
14874
case Token.OP_COALESCING:
14876
case Token.OP_MULT_ASSIGN:
14878
case Token.OP_DIV_ASSIGN:
14880
case Token.OP_MOD_ASSIGN:
14882
case Token.OP_ADD_ASSIGN:
14884
case Token.OP_SUB_ASSIGN:
14886
case Token.OP_SHIFT_LEFT_ASSIGN:
14888
case Token.OP_SHIFT_RIGHT_ASSIGN:
14890
case Token.OP_AND_ASSIGN:
14892
case Token.OP_XOR_ASSIGN:
14894
case Token.OP_OR_ASSIGN:
14898
return GetTokenName (token);
14901
static string GetTokenName (int token)
14904
case Token.ABSTRACT:
14920
case Token.CHECKED:
14926
case Token.CONTINUE:
14928
case Token.DEFAULT:
14930
case Token.DELEGATE:
14940
case Token.EXPLICIT:
14943
case Token.EXTERN_ALIAS:
14947
case Token.FINALLY:
14953
case Token.FOREACH:
14959
case Token.IMPLICIT:
14963
case Token.INTERFACE:
14964
return "interface";
14965
case Token.INTERNAL:
14971
case Token.NAMESPACE:
14972
return "namespace";
14977
case Token.OPERATOR:
14981
case Token.OVERRIDE:
14985
case Token.PRIVATE:
14987
case Token.PROTECTED:
14988
return "protected";
14991
case Token.READONLY:
15003
case Token.STACKALLOC:
15004
return "stackalloc";
15021
case Token.UNCHECKED:
15022
return "unchecked";
15027
case Token.VIRTUAL:
15029
case Token.VOLATILE:
15035
case Token.ARGLIST:
15036
return "__arglist";
15037
case Token.REFVALUE:
15038
return "__refvalue";
15039
case Token.REFTYPE:
15040
return "__reftype";
15041
case Token.MAKEREF:
15042
return "__makeref";
15043
case Token.PARTIAL:
15048
case Token.FROM_FIRST:
15064
case Token.ORDERBY:
15066
case Token.ASCENDING:
15067
return "ascending";
15068
case Token.DESCENDING:
15069
return "descending";
15076
case Token.OPEN_BRACE:
15078
case Token.CLOSE_BRACE:
15080
case Token.OPEN_BRACKET:
15081
case Token.OPEN_BRACKET_EXPR:
15083
case Token.CLOSE_BRACKET:
15085
case Token.OPEN_PARENS_CAST:
15086
case Token.OPEN_PARENS_LAMBDA:
15087
case Token.OPEN_PARENS:
15089
case Token.CLOSE_PARENS:
15095
case Token.DEFAULT_COLON:
15099
case Token.SEMICOLON:
15110
case Token.BITWISE_AND:
15111
case Token.BITWISE_OR:
15113
case Token.PERCENT:
15118
case Token.OP_SHIFT_LEFT:
15119
case Token.OP_SHIFT_RIGHT:
15127
case Token.OP_COALESCING:
15128
case Token.OP_MULT_ASSIGN:
15129
case Token.OP_DIV_ASSIGN:
15130
case Token.OP_MOD_ASSIGN:
15131
case Token.OP_ADD_ASSIGN:
15132
case Token.OP_SUB_ASSIGN:
15133
case Token.OP_SHIFT_LEFT_ASSIGN:
15134
case Token.OP_SHIFT_RIGHT_ASSIGN:
15135
case Token.OP_AND_ASSIGN:
15136
case Token.OP_XOR_ASSIGN:
15137
case Token.OP_OR_ASSIGN:
15138
return "<operator>";
15144
case Token.DECIMAL:
15160
case Token.OP_GENERICS_LT:
15161
case Token.GENERIC_DIMENSION:
15163
case Token.OP_GENERICS_GT:
15166
case Token.INTERR_NULLABLE:
15168
case Token.DOUBLE_COLON:
15170
case Token.LITERAL:
15172
case Token.IDENTIFIER:
15174
return "identifier";
15177
return "end-of-file";
15179
// All of these are internal.
15182
case Token.FIRST_KEYWORD:
15183
case Token.EVAL_COMPILATION_UNIT_PARSER:
15184
case Token.EVAL_USING_DECLARATIONS_UNIT_PARSER:
15185
case Token.EVAL_STATEMENT_PARSER:
15186
case Token.LAST_KEYWORD:
15187
case Token.GENERATE_COMPLETION:
15188
case Token.COMPLETE_COMPLETION:
15189
return "<internal>";
15191
// A bit more robust.
15193
return yyNames [token];
15200
namespace yydebug {
15202
internal interface yyDebug {
15203
void push (int state, Object value);
15204
void lex (int state, int token, string name, Object value);
15205
void shift (int from, int to, int errorFlag);
15206
void pop (int state);
15207
void discard (int state, int token, string name, Object value);
15208
void reduce (int from, int to, int rule, string text, int len);
15209
void shift (int from, int to);
15210
void accept (Object value);
15211
void error (string message);
15215
class yyDebugSimple : yyDebug {
15216
void println (string s){
15217
Console.Error.WriteLine (s);
15220
public void push (int state, Object value) {
15221
println ("push\tstate "+state+"\tvalue "+value);
15224
public void lex (int state, int token, string name, Object value) {
15225
println("lex\tstate "+state+"\treading "+name+"\tvalue "+value);
15228
public void shift (int from, int to, int errorFlag) {
15229
switch (errorFlag) {
15230
default: // normally
15231
println("shift\tfrom state "+from+" to "+to);
15233
case 0: case 1: case 2: // in error recovery
15234
println("shift\tfrom state "+from+" to "+to
15235
+"\t"+errorFlag+" left to recover");
15237
case 3: // normally
15238
println("shift\tfrom state "+from+" to "+to+"\ton error");
15243
public void pop (int state) {
15244
println("pop\tstate "+state+"\ton error");
15247
public void discard (int state, int token, string name, Object value) {
15248
println("discard\tstate "+state+"\ttoken "+name+"\tvalue "+value);
15251
public void reduce (int from, int to, int rule, string text, int len) {
15252
println("reduce\tstate "+from+"\tuncover "+to
15253
+"\trule ("+rule+") "+text);
15256
public void shift (int from, int to) {
15257
println("goto\tfrom state "+from+" to "+to);
15260
public void accept (Object value) {
15261
println("accept\tvalue "+value);
15264
public void error (string message) {
15265
println("error\t"+message);
15268
public void reject () {
15274
// %token constants
15276
public const int EOF = 257;
15277
public const int NONE = 258;
15278
public const int ERROR = 259;
15279
public const int FIRST_KEYWORD = 260;
15280
public const int ABSTRACT = 261;
15281
public const int AS = 262;
15282
public const int ADD = 263;
15283
public const int BASE = 264;
15284
public const int BOOL = 265;
15285
public const int BREAK = 266;
15286
public const int BYTE = 267;
15287
public const int CASE = 268;
15288
public const int CATCH = 269;
15289
public const int CHAR = 270;
15290
public const int CHECKED = 271;
15291
public const int CLASS = 272;
15292
public const int CONST = 273;
15293
public const int CONTINUE = 274;
15294
public const int DECIMAL = 275;
15295
public const int DEFAULT = 276;
15296
public const int DELEGATE = 277;
15297
public const int DO = 278;
15298
public const int DOUBLE = 279;
15299
public const int ELSE = 280;
15300
public const int ENUM = 281;
15301
public const int EVENT = 282;
15302
public const int EXPLICIT = 283;
15303
public const int EXTERN = 284;
15304
public const int FALSE = 285;
15305
public const int FINALLY = 286;
15306
public const int FIXED = 287;
15307
public const int FLOAT = 288;
15308
public const int FOR = 289;
15309
public const int FOREACH = 290;
15310
public const int GOTO = 291;
15311
public const int IF = 292;
15312
public const int IMPLICIT = 293;
15313
public const int IN = 294;
15314
public const int INT = 295;
15315
public const int INTERFACE = 296;
15316
public const int INTERNAL = 297;
15317
public const int IS = 298;
15318
public const int LOCK = 299;
15319
public const int LONG = 300;
15320
public const int NAMESPACE = 301;
15321
public const int NEW = 302;
15322
public const int NULL = 303;
15323
public const int OBJECT = 304;
15324
public const int OPERATOR = 305;
15325
public const int OUT = 306;
15326
public const int OVERRIDE = 307;
15327
public const int PARAMS = 308;
15328
public const int PRIVATE = 309;
15329
public const int PROTECTED = 310;
15330
public const int PUBLIC = 311;
15331
public const int READONLY = 312;
15332
public const int REF = 313;
15333
public const int RETURN = 314;
15334
public const int REMOVE = 315;
15335
public const int SBYTE = 316;
15336
public const int SEALED = 317;
15337
public const int SHORT = 318;
15338
public const int SIZEOF = 319;
15339
public const int STACKALLOC = 320;
15340
public const int STATIC = 321;
15341
public const int STRING = 322;
15342
public const int STRUCT = 323;
15343
public const int SWITCH = 324;
15344
public const int THIS = 325;
15345
public const int THROW = 326;
15346
public const int TRUE = 327;
15347
public const int TRY = 328;
15348
public const int TYPEOF = 329;
15349
public const int UINT = 330;
15350
public const int ULONG = 331;
15351
public const int UNCHECKED = 332;
15352
public const int UNSAFE = 333;
15353
public const int USHORT = 334;
15354
public const int USING = 335;
15355
public const int VIRTUAL = 336;
15356
public const int VOID = 337;
15357
public const int VOLATILE = 338;
15358
public const int WHERE = 339;
15359
public const int WHILE = 340;
15360
public const int ARGLIST = 341;
15361
public const int PARTIAL = 342;
15362
public const int ARROW = 343;
15363
public const int FROM = 344;
15364
public const int FROM_FIRST = 345;
15365
public const int JOIN = 346;
15366
public const int ON = 347;
15367
public const int EQUALS = 348;
15368
public const int SELECT = 349;
15369
public const int GROUP = 350;
15370
public const int BY = 351;
15371
public const int LET = 352;
15372
public const int ORDERBY = 353;
15373
public const int ASCENDING = 354;
15374
public const int DESCENDING = 355;
15375
public const int INTO = 356;
15376
public const int INTERR_NULLABLE = 357;
15377
public const int EXTERN_ALIAS = 358;
15378
public const int REFVALUE = 359;
15379
public const int REFTYPE = 360;
15380
public const int MAKEREF = 361;
15381
public const int ASYNC = 362;
15382
public const int AWAIT = 363;
15383
public const int GET = 364;
15384
public const int SET = 365;
15385
public const int LAST_KEYWORD = 366;
15386
public const int OPEN_BRACE = 367;
15387
public const int CLOSE_BRACE = 368;
15388
public const int OPEN_BRACKET = 369;
15389
public const int CLOSE_BRACKET = 370;
15390
public const int OPEN_PARENS = 371;
15391
public const int CLOSE_PARENS = 372;
15392
public const int DOT = 373;
15393
public const int COMMA = 374;
15394
public const int COLON = 375;
15395
public const int SEMICOLON = 376;
15396
public const int TILDE = 377;
15397
public const int PLUS = 378;
15398
public const int MINUS = 379;
15399
public const int BANG = 380;
15400
public const int ASSIGN = 381;
15401
public const int OP_LT = 382;
15402
public const int OP_GT = 383;
15403
public const int BITWISE_AND = 384;
15404
public const int BITWISE_OR = 385;
15405
public const int STAR = 386;
15406
public const int PERCENT = 387;
15407
public const int DIV = 388;
15408
public const int CARRET = 389;
15409
public const int INTERR = 390;
15410
public const int DOUBLE_COLON = 391;
15411
public const int OP_INC = 392;
15412
public const int OP_DEC = 393;
15413
public const int OP_SHIFT_LEFT = 394;
15414
public const int OP_SHIFT_RIGHT = 395;
15415
public const int OP_LE = 396;
15416
public const int OP_GE = 397;
15417
public const int OP_EQ = 398;
15418
public const int OP_NE = 399;
15419
public const int OP_AND = 400;
15420
public const int OP_OR = 401;
15421
public const int OP_MULT_ASSIGN = 402;
15422
public const int OP_DIV_ASSIGN = 403;
15423
public const int OP_MOD_ASSIGN = 404;
15424
public const int OP_ADD_ASSIGN = 405;
15425
public const int OP_SUB_ASSIGN = 406;
15426
public const int OP_SHIFT_LEFT_ASSIGN = 407;
15427
public const int OP_SHIFT_RIGHT_ASSIGN = 408;
15428
public const int OP_AND_ASSIGN = 409;
15429
public const int OP_XOR_ASSIGN = 410;
15430
public const int OP_OR_ASSIGN = 411;
15431
public const int OP_PTR = 412;
15432
public const int OP_COALESCING = 413;
15433
public const int OP_GENERICS_LT = 414;
15434
public const int OP_GENERICS_LT_DECL = 415;
15435
public const int OP_GENERICS_GT = 416;
15436
public const int LITERAL = 417;
15437
public const int IDENTIFIER = 418;
15438
public const int OPEN_PARENS_LAMBDA = 419;
15439
public const int OPEN_PARENS_CAST = 420;
15440
public const int GENERIC_DIMENSION = 421;
15441
public const int DEFAULT_COLON = 422;
15442
public const int OPEN_BRACKET_EXPR = 423;
15443
public const int EVAL_STATEMENT_PARSER = 424;
15444
public const int EVAL_COMPILATION_UNIT_PARSER = 425;
15445
public const int EVAL_USING_DECLARATIONS_UNIT_PARSER = 426;
15446
public const int DOC_SEE = 427;
15447
public const int GENERATE_COMPLETION = 428;
15448
public const int COMPLETE_COMPLETION = 429;
15449
public const int UMINUS = 430;
15450
public const int yyErrorCode = 256;
15452
namespace yyParser {
15454
/** thrown for irrecoverable syntax errors and stack overflow.
15456
internal class yyException : System.Exception {
15457
public yyException (string message) : base (message) {
15460
internal class yyUnexpectedEof : yyException {
15461
public yyUnexpectedEof (string message) : base (message) {
15463
public yyUnexpectedEof () : base ("") {
15467
/** must be implemented by a scanner object to supply input to the parser.
15469
internal interface yyInput {
15470
/** move on to next token.
15471
@return false if positioned beyond tokens.
15472
@throws IOException on input error.
15474
bool advance (); // throws java.io.IOException;
15475
/** classifies current token.
15476
Should not be called if advance() returned false.
15477
@return current %token or single character.
15480
/** associated with current token.
15481
Should not be called if advance() returned false.
15482
@return value for token().
15487
} // close outermost namespace, that MUST HAVE BEEN opened in the prolog