00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #define YYBISON 1
00047
00048
00049 #define YYBISON_VERSION "2.4.1"
00050
00051
00052 #define YYSKELETON_NAME "yacc.c"
00053
00054
00055 #define YYPURE 1
00056
00057
00058 #define YYPUSH 0
00059
00060
00061 #define YYPULL 1
00062
00063
00064 #define YYLSP_NEEDED 0
00065
00066
00067 #define yyparse base_sql_parse
00068 #define yylex base_sql_lex
00069 #define yyerror base_sql_error
00070 #define yylval base_sql_lval
00071 #define yychar base_sql_char
00072 #define yydebug base_sql_debug
00073 #define yynerrs base_sql_nerrs
00074
00075
00076
00077
00078
00079 #line 25 "drizzled/sql_yacc.yy"
00080
00081
00082
00083
00084
00085
00086 #define YYSession (session)
00087
00088 #define YYENABLE_NLS 0
00089 #define YYLTYPE_IS_TRIVIAL 0
00090
00091 #define YYINITDEPTH 100
00092 #define YYMAXDEPTH 3200
00093 #define Lex (session->lex())
00094
00095 #include <config.h>
00096 #include <cstdio>
00097 #include <drizzled/parser.h>
00098 #include <drizzled/session.h>
00099 #include <drizzled/alter_column.h>
00100 #include <drizzled/alter_info.h>
00101 #include <drizzled/message/alter_table.pb.h>
00102 #include <drizzled/item/subselect.h>
00103 #include <drizzled/table_ident.h>
00104 #include <drizzled/var.h>
00105 #include <drizzled/system_variables.h>
00106 #include <drizzled/lex_input_stream.h>
00107 #include <drizzled/show.h>
00108
00109 int yylex(union ParserType *yylval, drizzled::Session *session);
00110
00111 #define yyoverflow(A,B,C,D,E,F) \
00112 { \
00113 unsigned long val= *(F); \
00114 if (drizzled::my_yyoverflow((B), (D), &val)) \
00115 { \
00116 yyerror(NULL, (A)); \
00117 return 2; \
00118 } \
00119 else \
00120 { \
00121 *(F)= (YYSIZE_T)val; \
00122 } \
00123 }
00124
00125 #define DRIZZLE_YYABORT \
00126 do \
00127 { \
00128 YYABORT; \
00129 } while (0)
00130
00131 #define DRIZZLE_YYABORT_UNLESS(A) \
00132 if (!(A)) \
00133 { \
00134 parser::my_parse_error(YYSession->m_lip);\
00135 DRIZZLE_YYABORT; \
00136 }
00137
00138 namespace drizzled
00139 {
00140
00141 class Table_ident;
00142 class Item;
00143 class Item_num;
00144
00145 namespace item
00146 {
00147 class Boolean;
00148 class True;
00149 class False;
00150 }
00151
00152
00173 static void base_sql_error(drizzled::Session *session, const char* s)
00174 {
00175 parser::errorOn(session, s);
00176 }
00177
00178 }
00179
00180 using namespace drizzled;
00181
00182
00183
00184 #line 185 "drizzled/sql_yacc.cc"
00185
00186
00187 #ifndef YYDEBUG
00188 # define YYDEBUG 1
00189 #endif
00190
00191
00192 #ifdef YYERROR_VERBOSE
00193 # undef YYERROR_VERBOSE
00194 # define YYERROR_VERBOSE 1
00195 #else
00196 # define YYERROR_VERBOSE 0
00197 #endif
00198
00199
00200 #ifndef YYTOKEN_TABLE
00201 # define YYTOKEN_TABLE 0
00202 #endif
00203
00204
00205
00206 #ifndef YYTOKENTYPE
00207 # define YYTOKENTYPE
00208
00209
00210 enum yytokentype {
00211 ABORT_SYM = 258,
00212 ACTION = 259,
00213 ADDDATE_SYM = 260,
00214 ADD_SYM = 261,
00215 AFTER_SYM = 262,
00216 AGGREGATE_SYM = 263,
00217 ALL = 264,
00218 ALTER_SYM = 265,
00219 ANALYZE_SYM = 266,
00220 AND_SYM = 267,
00221 ANY_SYM = 268,
00222 AS = 269,
00223 ASC = 270,
00224 ASENSITIVE_SYM = 271,
00225 AT_SYM = 272,
00226 AUTO_INC = 273,
00227 AVG_SYM = 274,
00228 BEFORE_SYM = 275,
00229 BEGIN_SYM = 276,
00230 BETWEEN_SYM = 277,
00231 BIGINT_SYM = 278,
00232 BINARY = 279,
00233 BIN_NUM = 280,
00234 BIT_SYM = 281,
00235 BLOB_SYM = 282,
00236 BOOLEAN_SYM = 283,
00237 BOOL_SYM = 284,
00238 BOTH = 285,
00239 BTREE_SYM = 286,
00240 BY = 287,
00241 CALL_SYM = 288,
00242 CASCADE = 289,
00243 CASCADED = 290,
00244 CASE_SYM = 291,
00245 CAST_SYM = 292,
00246 CATALOG_SYM = 293,
00247 CHAIN_SYM = 294,
00248 CHANGE_SYM = 295,
00249 CHARSET = 296,
00250 CHAR_SYM = 297,
00251 CHECKSUM_SYM = 298,
00252 CHECK_SYM = 299,
00253 CLOSE_SYM = 300,
00254 COALESCE = 301,
00255 COLLATE_SYM = 302,
00256 COLLATION_SYM = 303,
00257 COLUMNS = 304,
00258 COLUMN_SYM = 305,
00259 COMMENT_SYM = 306,
00260 COMMITTED_SYM = 307,
00261 COMMIT_SYM = 308,
00262 COMPACT_SYM = 309,
00263 COMPRESSED_SYM = 310,
00264 CONCURRENT = 311,
00265 CONDITION_SYM = 312,
00266 CONNECTION_SYM = 313,
00267 CONSISTENT_SYM = 314,
00268 CONSTRAINT = 315,
00269 CONTAINS_SYM = 316,
00270 CONVERT_SYM = 317,
00271 COUNT_SYM = 318,
00272 CREATE = 319,
00273 CROSS = 320,
00274 CUBE_SYM = 321,
00275 CURDATE = 322,
00276 CURRENT_USER = 323,
00277 CURSOR_SYM = 324,
00278 DATABASE = 325,
00279 DATABASES = 326,
00280 DATA_SYM = 327,
00281 DATETIME_SYM = 328,
00282 DATE_ADD_INTERVAL = 329,
00283 DATE_SUB_INTERVAL = 330,
00284 DATE_SYM = 331,
00285 DAY_HOUR_SYM = 332,
00286 DAY_MICROSECOND_SYM = 333,
00287 DAY_MINUTE_SYM = 334,
00288 DAY_SECOND_SYM = 335,
00289 DAY_SYM = 336,
00290 DEALLOCATE_SYM = 337,
00291 DECIMAL_NUM = 338,
00292 DECIMAL_SYM = 339,
00293 DECLARE_SYM = 340,
00294 DEFAULT = 341,
00295 DEFINER = 342,
00296 DELETE_SYM = 343,
00297 DESC = 344,
00298 DESCRIBE = 345,
00299 DETERMINISTIC_SYM = 346,
00300 DISABLE_SYM = 347,
00301 DISCARD = 348,
00302 DISTINCT = 349,
00303 DIV_SYM = 350,
00304 DOUBLE_SYM = 351,
00305 DO_SYM = 352,
00306 DROP = 353,
00307 DUMPFILE = 354,
00308 DUPLICATE_SYM = 355,
00309 DYNAMIC_SYM = 356,
00310 EACH_SYM = 357,
00311 ELSE = 358,
00312 ENABLE_SYM = 359,
00313 ENCLOSED = 360,
00314 END = 361,
00315 ENDS_SYM = 362,
00316 END_OF_INPUT = 363,
00317 ENGINE_SYM = 364,
00318 ENUM_SYM = 365,
00319 EQUAL_SYM = 366,
00320 ERRORS = 367,
00321 ESCAPED = 368,
00322 ESCAPE_SYM = 369,
00323 EXCLUSIVE_SYM = 370,
00324 EXECUTE_SYM = 371,
00325 EXISTS = 372,
00326 EXTENDED_SYM = 373,
00327 EXTRACT_SYM = 374,
00328 FALSE_SYM = 375,
00329 FILE_SYM = 376,
00330 FIRST_SYM = 377,
00331 FIXED_SYM = 378,
00332 FLOAT_NUM = 379,
00333 FLUSH_SYM = 380,
00334 FORCE_SYM = 381,
00335 FOREIGN = 382,
00336 FOR_SYM = 383,
00337 FOUND_SYM = 384,
00338 FRAC_SECOND_SYM = 385,
00339 FROM = 386,
00340 FULL = 387,
00341 GE = 388,
00342 GLOBAL_SYM = 389,
00343 GROUP_CONCAT_SYM = 390,
00344 GROUP_SYM = 391,
00345 HASH_SYM = 392,
00346 HAVING = 393,
00347 HEX_NUM = 394,
00348 HOUR_MICROSECOND_SYM = 395,
00349 HOUR_MINUTE_SYM = 396,
00350 HOUR_SECOND_SYM = 397,
00351 HOUR_SYM = 398,
00352 IDENT = 399,
00353 IDENTIFIED_SYM = 400,
00354 IDENTITY_SYM = 401,
00355 IDENT_QUOTED = 402,
00356 IF = 403,
00357 IGNORE_SYM = 404,
00358 IMPORT = 405,
00359 INDEXES = 406,
00360 INDEX_SYM = 407,
00361 INFILE = 408,
00362 INNER_SYM = 409,
00363 INOUT_SYM = 410,
00364 INSENSITIVE_SYM = 411,
00365 INSERT = 412,
00366 INTERVAL_SYM = 413,
00367 INTO = 414,
00368 INT_SYM = 415,
00369 INVOKER = 416,
00370 IN_SYM = 417,
00371 IS = 418,
00372 ISOLATION = 419,
00373 ITERATE_SYM = 420,
00374 IPV6_SYM = 421,
00375 JOIN_SYM = 422,
00376 KEYS = 423,
00377 KEY_BLOCK_SIZE = 424,
00378 KEY_SYM = 425,
00379 KILL_SYM = 426,
00380 LAST_SYM = 427,
00381 LE = 428,
00382 LEADING = 429,
00383 LEFT = 430,
00384 LEVEL_SYM = 431,
00385 LEX_HOSTNAME = 432,
00386 LIKE = 433,
00387 LIMIT = 434,
00388 LINES = 435,
00389 LOAD = 436,
00390 LOCAL_SYM = 437,
00391 LOCKS_SYM = 438,
00392 LOCK_SYM = 439,
00393 LOGS_SYM = 440,
00394 LONG_NUM = 441,
00395 LONG_SYM = 442,
00396 MATCH = 443,
00397 MAX_SYM = 444,
00398 MAX_VALUE_SYM = 445,
00399 MEDIUM_SYM = 446,
00400 MERGE_SYM = 447,
00401 MICROSECOND_SYM = 448,
00402 MINUTE_MICROSECOND_SYM = 449,
00403 MINUTE_SECOND_SYM = 450,
00404 MINUTE_SYM = 451,
00405 MIN_SYM = 452,
00406 MODE_SYM = 453,
00407 MODIFIES_SYM = 454,
00408 MODIFY_SYM = 455,
00409 MOD_SYM = 456,
00410 MONTH_SYM = 457,
00411 NAMES_SYM = 458,
00412 NAME_SYM = 459,
00413 NATIONAL_SYM = 460,
00414 NATURAL = 461,
00415 NE = 462,
00416 NEW_SYM = 463,
00417 NEXT_SYM = 464,
00418 NONE_SYM = 465,
00419 NOT_SYM = 466,
00420 NOW_SYM = 467,
00421 NO_SYM = 468,
00422 NULL_SYM = 469,
00423 NUM = 470,
00424 NUMERIC_SYM = 471,
00425 OFFLINE_SYM = 472,
00426 OFFSET_SYM = 473,
00427 ON = 474,
00428 ONE_SHOT_SYM = 475,
00429 ONE_SYM = 476,
00430 ONLINE_SYM = 477,
00431 OPEN_SYM = 478,
00432 OPTIMIZE = 479,
00433 OPTION = 480,
00434 OPTIONALLY = 481,
00435 ORDER_SYM = 482,
00436 OR_SYM = 483,
00437 OUTER = 484,
00438 OUTFILE = 485,
00439 OUT_SYM = 486,
00440 PARTIAL = 487,
00441 POSITION_SYM = 488,
00442 PRECISION = 489,
00443 PREV_SYM = 490,
00444 PRIMARY_SYM = 491,
00445 PROCESS = 492,
00446 PROCESSLIST_SYM = 493,
00447 QUARTER_SYM = 494,
00448 QUERY_SYM = 495,
00449 RANGE_SYM = 496,
00450 READS_SYM = 497,
00451 READ_SYM = 498,
00452 READ_WRITE_SYM = 499,
00453 REAL = 500,
00454 REDUNDANT_SYM = 501,
00455 REFERENCES = 502,
00456 REGEXP_SYM = 503,
00457 RELEASE_SYM = 504,
00458 RENAME = 505,
00459 REPEATABLE_SYM = 506,
00460 REPEAT_SYM = 507,
00461 REPLACE = 508,
00462 REPLICATE = 509,
00463 REPLICATION = 510,
00464 RESTRICT = 511,
00465 RETURNS_SYM = 512,
00466 RETURN_SYM = 513,
00467 REVOKE = 514,
00468 RIGHT = 515,
00469 ROLLBACK_SYM = 516,
00470 ROLLUP_SYM = 517,
00471 ROUTINE_SYM = 518,
00472 ROWS_SYM = 519,
00473 ROW_FORMAT_SYM = 520,
00474 ROW_SYM = 521,
00475 SAVEPOINT_SYM = 522,
00476 SECOND_MICROSECOND_SYM = 523,
00477 SECOND_SYM = 524,
00478 SECURITY_SYM = 525,
00479 SELECT_SYM = 526,
00480 SENSITIVE_SYM = 527,
00481 SEPARATOR_SYM = 528,
00482 SERIALIZABLE_SYM = 529,
00483 SERIAL_SYM = 530,
00484 SERVER_SYM = 531,
00485 SESSION_SYM = 532,
00486 SET_SYM = 533,
00487 SET_VAR = 534,
00488 SHARE_SYM = 535,
00489 SHOW = 536,
00490 SIGNED_SYM = 537,
00491 SIMPLE_SYM = 538,
00492 SNAPSHOT_SYM = 539,
00493 SPECIFIC_SYM = 540,
00494 SQLEXCEPTION_SYM = 541,
00495 SQLSTATE_SYM = 542,
00496 SQLWARNING_SYM = 543,
00497 SQL_BIG_RESULT = 544,
00498 SQL_BUFFER_RESULT = 545,
00499 SQL_CALC_FOUND_ROWS = 546,
00500 SQL_SMALL_RESULT = 547,
00501 SQL_SYM = 548,
00502 STARTING = 549,
00503 START_SYM = 550,
00504 STATUS_SYM = 551,
00505 STDDEV_SAMP_SYM = 552,
00506 STD_SYM = 553,
00507 STOP_SYM = 554,
00508 STORED_SYM = 555,
00509 STRAIGHT_JOIN = 556,
00510 STRING_SYM = 557,
00511 SUBDATE_SYM = 558,
00512 SUBJECT_SYM = 559,
00513 SUBSTRING = 560,
00514 SUM_SYM = 561,
00515 SUSPEND_SYM = 562,
00516 SYSDATE = 563,
00517 TABLES = 564,
00518 TABLESPACE = 565,
00519 TABLE_REF_PRIORITY = 566,
00520 TABLE_SYM = 567,
00521 TEMPORARY_SYM = 568,
00522 TERMINATED = 569,
00523 TEXT_STRING = 570,
00524 TEXT_SYM = 571,
00525 THEN_SYM = 572,
00526 TIMESTAMP_ADD = 573,
00527 TIMESTAMP_DIFF = 574,
00528 TIMESTAMP_SYM = 575,
00529 TIME_SYM = 576,
00530 TO_SYM = 577,
00531 TRAILING = 578,
00532 TRANSACTION_SYM = 579,
00533 TRIM = 580,
00534 TRUE_SYM = 581,
00535 TRUNCATE_SYM = 582,
00536 TYPE_SYM = 583,
00537 ULONGLONG_NUM = 584,
00538 UNCOMMITTED_SYM = 585,
00539 UNDOFILE_SYM = 586,
00540 UNDO_SYM = 587,
00541 UNION_SYM = 588,
00542 UNIQUE_SYM = 589,
00543 UNKNOWN_SYM = 590,
00544 UNLOCK_SYM = 591,
00545 UNSIGNED_SYM = 592,
00546 UPDATE_SYM = 593,
00547 USAGE = 594,
00548 USER = 595,
00549 USE_SYM = 596,
00550 USING = 597,
00551 UTC_DATE_SYM = 598,
00552 UTC_TIMESTAMP_SYM = 599,
00553 UTF8_SYM = 600,
00554 UUID_SYM = 601,
00555 VALUES = 602,
00556 VALUE_SYM = 603,
00557 VARBINARY = 604,
00558 VARCHAR_SYM = 605,
00559 VARIABLES = 606,
00560 VARIANCE_SYM = 607,
00561 VARYING = 608,
00562 VAR_SAMP_SYM = 609,
00563 WAIT_SYM = 610,
00564 WARNINGS = 611,
00565 WEEK_SYM = 612,
00566 WHEN_SYM = 613,
00567 WHERE = 614,
00568 WITH = 615,
00569 WITH_ROLLUP_SYM = 616,
00570 WORK_SYM = 617,
00571 WRITE_SYM = 618,
00572 XOR = 619,
00573 YEAR_MONTH_SYM = 620,
00574 YEAR_SYM = 621,
00575 ZEROFILL_SYM = 622,
00576 LESS_THAN = 623,
00577 GREATER_THAN = 624,
00578 CONCAT = 625,
00579 SHIFT_RIGHT = 626,
00580 SHIFT_LEFT = 627,
00581 UMINUS = 628
00582 };
00583 #endif
00584
00585 #define ABORT_SYM 258
00586 #define ACTION 259
00587 #define ADDDATE_SYM 260
00588 #define ADD_SYM 261
00589 #define AFTER_SYM 262
00590 #define AGGREGATE_SYM 263
00591 #define ALL 264
00592 #define ALTER_SYM 265
00593 #define ANALYZE_SYM 266
00594 #define AND_SYM 267
00595 #define ANY_SYM 268
00596 #define AS 269
00597 #define ASC 270
00598 #define ASENSITIVE_SYM 271
00599 #define AT_SYM 272
00600 #define AUTO_INC 273
00601 #define AVG_SYM 274
00602 #define BEFORE_SYM 275
00603 #define BEGIN_SYM 276
00604 #define BETWEEN_SYM 277
00605 #define BIGINT_SYM 278
00606 #define BINARY 279
00607 #define BIN_NUM 280
00608 #define BIT_SYM 281
00609 #define BLOB_SYM 282
00610 #define BOOLEAN_SYM 283
00611 #define BOOL_SYM 284
00612 #define BOTH 285
00613 #define BTREE_SYM 286
00614 #define BY 287
00615 #define CALL_SYM 288
00616 #define CASCADE 289
00617 #define CASCADED 290
00618 #define CASE_SYM 291
00619 #define CAST_SYM 292
00620 #define CATALOG_SYM 293
00621 #define CHAIN_SYM 294
00622 #define CHANGE_SYM 295
00623 #define CHARSET 296
00624 #define CHAR_SYM 297
00625 #define CHECKSUM_SYM 298
00626 #define CHECK_SYM 299
00627 #define CLOSE_SYM 300
00628 #define COALESCE 301
00629 #define COLLATE_SYM 302
00630 #define COLLATION_SYM 303
00631 #define COLUMNS 304
00632 #define COLUMN_SYM 305
00633 #define COMMENT_SYM 306
00634 #define COMMITTED_SYM 307
00635 #define COMMIT_SYM 308
00636 #define COMPACT_SYM 309
00637 #define COMPRESSED_SYM 310
00638 #define CONCURRENT 311
00639 #define CONDITION_SYM 312
00640 #define CONNECTION_SYM 313
00641 #define CONSISTENT_SYM 314
00642 #define CONSTRAINT 315
00643 #define CONTAINS_SYM 316
00644 #define CONVERT_SYM 317
00645 #define COUNT_SYM 318
00646 #define CREATE 319
00647 #define CROSS 320
00648 #define CUBE_SYM 321
00649 #define CURDATE 322
00650 #define CURRENT_USER 323
00651 #define CURSOR_SYM 324
00652 #define DATABASE 325
00653 #define DATABASES 326
00654 #define DATA_SYM 327
00655 #define DATETIME_SYM 328
00656 #define DATE_ADD_INTERVAL 329
00657 #define DATE_SUB_INTERVAL 330
00658 #define DATE_SYM 331
00659 #define DAY_HOUR_SYM 332
00660 #define DAY_MICROSECOND_SYM 333
00661 #define DAY_MINUTE_SYM 334
00662 #define DAY_SECOND_SYM 335
00663 #define DAY_SYM 336
00664 #define DEALLOCATE_SYM 337
00665 #define DECIMAL_NUM 338
00666 #define DECIMAL_SYM 339
00667 #define DECLARE_SYM 340
00668 #define DEFAULT 341
00669 #define DEFINER 342
00670 #define DELETE_SYM 343
00671 #define DESC 344
00672 #define DESCRIBE 345
00673 #define DETERMINISTIC_SYM 346
00674 #define DISABLE_SYM 347
00675 #define DISCARD 348
00676 #define DISTINCT 349
00677 #define DIV_SYM 350
00678 #define DOUBLE_SYM 351
00679 #define DO_SYM 352
00680 #define DROP 353
00681 #define DUMPFILE 354
00682 #define DUPLICATE_SYM 355
00683 #define DYNAMIC_SYM 356
00684 #define EACH_SYM 357
00685 #define ELSE 358
00686 #define ENABLE_SYM 359
00687 #define ENCLOSED 360
00688 #define END 361
00689 #define ENDS_SYM 362
00690 #define END_OF_INPUT 363
00691 #define ENGINE_SYM 364
00692 #define ENUM_SYM 365
00693 #define EQUAL_SYM 366
00694 #define ERRORS 367
00695 #define ESCAPED 368
00696 #define ESCAPE_SYM 369
00697 #define EXCLUSIVE_SYM 370
00698 #define EXECUTE_SYM 371
00699 #define EXISTS 372
00700 #define EXTENDED_SYM 373
00701 #define EXTRACT_SYM 374
00702 #define FALSE_SYM 375
00703 #define FILE_SYM 376
00704 #define FIRST_SYM 377
00705 #define FIXED_SYM 378
00706 #define FLOAT_NUM 379
00707 #define FLUSH_SYM 380
00708 #define FORCE_SYM 381
00709 #define FOREIGN 382
00710 #define FOR_SYM 383
00711 #define FOUND_SYM 384
00712 #define FRAC_SECOND_SYM 385
00713 #define FROM 386
00714 #define FULL 387
00715 #define GE 388
00716 #define GLOBAL_SYM 389
00717 #define GROUP_CONCAT_SYM 390
00718 #define GROUP_SYM 391
00719 #define HASH_SYM 392
00720 #define HAVING 393
00721 #define HEX_NUM 394
00722 #define HOUR_MICROSECOND_SYM 395
00723 #define HOUR_MINUTE_SYM 396
00724 #define HOUR_SECOND_SYM 397
00725 #define HOUR_SYM 398
00726 #define IDENT 399
00727 #define IDENTIFIED_SYM 400
00728 #define IDENTITY_SYM 401
00729 #define IDENT_QUOTED 402
00730 #define IF 403
00731 #define IGNORE_SYM 404
00732 #define IMPORT 405
00733 #define INDEXES 406
00734 #define INDEX_SYM 407
00735 #define INFILE 408
00736 #define INNER_SYM 409
00737 #define INOUT_SYM 410
00738 #define INSENSITIVE_SYM 411
00739 #define INSERT 412
00740 #define INTERVAL_SYM 413
00741 #define INTO 414
00742 #define INT_SYM 415
00743 #define INVOKER 416
00744 #define IN_SYM 417
00745 #define IS 418
00746 #define ISOLATION 419
00747 #define ITERATE_SYM 420
00748 #define IPV6_SYM 421
00749 #define JOIN_SYM 422
00750 #define KEYS 423
00751 #define KEY_BLOCK_SIZE 424
00752 #define KEY_SYM 425
00753 #define KILL_SYM 426
00754 #define LAST_SYM 427
00755 #define LE 428
00756 #define LEADING 429
00757 #define LEFT 430
00758 #define LEVEL_SYM 431
00759 #define LEX_HOSTNAME 432
00760 #define LIKE 433
00761 #define LIMIT 434
00762 #define LINES 435
00763 #define LOAD 436
00764 #define LOCAL_SYM 437
00765 #define LOCKS_SYM 438
00766 #define LOCK_SYM 439
00767 #define LOGS_SYM 440
00768 #define LONG_NUM 441
00769 #define LONG_SYM 442
00770 #define MATCH 443
00771 #define MAX_SYM 444
00772 #define MAX_VALUE_SYM 445
00773 #define MEDIUM_SYM 446
00774 #define MERGE_SYM 447
00775 #define MICROSECOND_SYM 448
00776 #define MINUTE_MICROSECOND_SYM 449
00777 #define MINUTE_SECOND_SYM 450
00778 #define MINUTE_SYM 451
00779 #define MIN_SYM 452
00780 #define MODE_SYM 453
00781 #define MODIFIES_SYM 454
00782 #define MODIFY_SYM 455
00783 #define MOD_SYM 456
00784 #define MONTH_SYM 457
00785 #define NAMES_SYM 458
00786 #define NAME_SYM 459
00787 #define NATIONAL_SYM 460
00788 #define NATURAL 461
00789 #define NE 462
00790 #define NEW_SYM 463
00791 #define NEXT_SYM 464
00792 #define NONE_SYM 465
00793 #define NOT_SYM 466
00794 #define NOW_SYM 467
00795 #define NO_SYM 468
00796 #define NULL_SYM 469
00797 #define NUM 470
00798 #define NUMERIC_SYM 471
00799 #define OFFLINE_SYM 472
00800 #define OFFSET_SYM 473
00801 #define ON 474
00802 #define ONE_SHOT_SYM 475
00803 #define ONE_SYM 476
00804 #define ONLINE_SYM 477
00805 #define OPEN_SYM 478
00806 #define OPTIMIZE 479
00807 #define OPTION 480
00808 #define OPTIONALLY 481
00809 #define ORDER_SYM 482
00810 #define OR_SYM 483
00811 #define OUTER 484
00812 #define OUTFILE 485
00813 #define OUT_SYM 486
00814 #define PARTIAL 487
00815 #define POSITION_SYM 488
00816 #define PRECISION 489
00817 #define PREV_SYM 490
00818 #define PRIMARY_SYM 491
00819 #define PROCESS 492
00820 #define PROCESSLIST_SYM 493
00821 #define QUARTER_SYM 494
00822 #define QUERY_SYM 495
00823 #define RANGE_SYM 496
00824 #define READS_SYM 497
00825 #define READ_SYM 498
00826 #define READ_WRITE_SYM 499
00827 #define REAL 500
00828 #define REDUNDANT_SYM 501
00829 #define REFERENCES 502
00830 #define REGEXP_SYM 503
00831 #define RELEASE_SYM 504
00832 #define RENAME 505
00833 #define REPEATABLE_SYM 506
00834 #define REPEAT_SYM 507
00835 #define REPLACE 508
00836 #define REPLICATE 509
00837 #define REPLICATION 510
00838 #define RESTRICT 511
00839 #define RETURNS_SYM 512
00840 #define RETURN_SYM 513
00841 #define REVOKE 514
00842 #define RIGHT 515
00843 #define ROLLBACK_SYM 516
00844 #define ROLLUP_SYM 517
00845 #define ROUTINE_SYM 518
00846 #define ROWS_SYM 519
00847 #define ROW_FORMAT_SYM 520
00848 #define ROW_SYM 521
00849 #define SAVEPOINT_SYM 522
00850 #define SECOND_MICROSECOND_SYM 523
00851 #define SECOND_SYM 524
00852 #define SECURITY_SYM 525
00853 #define SELECT_SYM 526
00854 #define SENSITIVE_SYM 527
00855 #define SEPARATOR_SYM 528
00856 #define SERIALIZABLE_SYM 529
00857 #define SERIAL_SYM 530
00858 #define SERVER_SYM 531
00859 #define SESSION_SYM 532
00860 #define SET_SYM 533
00861 #define SET_VAR 534
00862 #define SHARE_SYM 535
00863 #define SHOW 536
00864 #define SIGNED_SYM 537
00865 #define SIMPLE_SYM 538
00866 #define SNAPSHOT_SYM 539
00867 #define SPECIFIC_SYM 540
00868 #define SQLEXCEPTION_SYM 541
00869 #define SQLSTATE_SYM 542
00870 #define SQLWARNING_SYM 543
00871 #define SQL_BIG_RESULT 544
00872 #define SQL_BUFFER_RESULT 545
00873 #define SQL_CALC_FOUND_ROWS 546
00874 #define SQL_SMALL_RESULT 547
00875 #define SQL_SYM 548
00876 #define STARTING 549
00877 #define START_SYM 550
00878 #define STATUS_SYM 551
00879 #define STDDEV_SAMP_SYM 552
00880 #define STD_SYM 553
00881 #define STOP_SYM 554
00882 #define STORED_SYM 555
00883 #define STRAIGHT_JOIN 556
00884 #define STRING_SYM 557
00885 #define SUBDATE_SYM 558
00886 #define SUBJECT_SYM 559
00887 #define SUBSTRING 560
00888 #define SUM_SYM 561
00889 #define SUSPEND_SYM 562
00890 #define SYSDATE 563
00891 #define TABLES 564
00892 #define TABLESPACE 565
00893 #define TABLE_REF_PRIORITY 566
00894 #define TABLE_SYM 567
00895 #define TEMPORARY_SYM 568
00896 #define TERMINATED 569
00897 #define TEXT_STRING 570
00898 #define TEXT_SYM 571
00899 #define THEN_SYM 572
00900 #define TIMESTAMP_ADD 573
00901 #define TIMESTAMP_DIFF 574
00902 #define TIMESTAMP_SYM 575
00903 #define TIME_SYM 576
00904 #define TO_SYM 577
00905 #define TRAILING 578
00906 #define TRANSACTION_SYM 579
00907 #define TRIM 580
00908 #define TRUE_SYM 581
00909 #define TRUNCATE_SYM 582
00910 #define TYPE_SYM 583
00911 #define ULONGLONG_NUM 584
00912 #define UNCOMMITTED_SYM 585
00913 #define UNDOFILE_SYM 586
00914 #define UNDO_SYM 587
00915 #define UNION_SYM 588
00916 #define UNIQUE_SYM 589
00917 #define UNKNOWN_SYM 590
00918 #define UNLOCK_SYM 591
00919 #define UNSIGNED_SYM 592
00920 #define UPDATE_SYM 593
00921 #define USAGE 594
00922 #define USER 595
00923 #define USE_SYM 596
00924 #define USING 597
00925 #define UTC_DATE_SYM 598
00926 #define UTC_TIMESTAMP_SYM 599
00927 #define UTF8_SYM 600
00928 #define UUID_SYM 601
00929 #define VALUES 602
00930 #define VALUE_SYM 603
00931 #define VARBINARY 604
00932 #define VARCHAR_SYM 605
00933 #define VARIABLES 606
00934 #define VARIANCE_SYM 607
00935 #define VARYING 608
00936 #define VAR_SAMP_SYM 609
00937 #define WAIT_SYM 610
00938 #define WARNINGS 611
00939 #define WEEK_SYM 612
00940 #define WHEN_SYM 613
00941 #define WHERE 614
00942 #define WITH 615
00943 #define WITH_ROLLUP_SYM 616
00944 #define WORK_SYM 617
00945 #define WRITE_SYM 618
00946 #define XOR 619
00947 #define YEAR_MONTH_SYM 620
00948 #define YEAR_SYM 621
00949 #define ZEROFILL_SYM 622
00950 #define LESS_THAN 623
00951 #define GREATER_THAN 624
00952 #define CONCAT 625
00953 #define SHIFT_RIGHT 626
00954 #define SHIFT_LEFT 627
00955 #define UMINUS 628
00956
00957
00958
00959
00960 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00961 typedef union
00962
00963 #line 127 "drizzled/sql_yacc.yy"
00964 ParserType
00965 {
00966
00967
00968 #line 127 "drizzled/sql_yacc.yy"
00969
00970 bool boolean;
00971 int num;
00972 unsigned long ulong_num;
00973 uint64_t ulonglong_number;
00974 int64_t longlong_number;
00975 drizzled::lex_string_t lex_str;
00976 drizzled::lex_string_t *lex_str_ptr;
00977 drizzled::LEX_SYMBOL symbol;
00978 drizzled::Table_ident *table;
00979 const char* simple_string;
00980 drizzled::Item *item;
00981 drizzled::Item_num *item_num;
00982 drizzled::List<drizzled::Item> *item_list;
00983 drizzled::List<drizzled::String> *string_list;
00984 drizzled::String *string;
00985 drizzled::Key_part_spec *key_part;
00986 const drizzled::plugin::Function *udf;
00987 drizzled::TableList *table_list;
00988 drizzled::enum_field_types field_val;
00989 drizzled::sys_var_with_base variable;
00990 drizzled::sql_var_t var_type;
00991 drizzled::Key::Keytype key_type;
00992 drizzled::ha_key_alg key_alg;
00993 drizzled::ha_rkey_function ha_rkey_mode;
00994 drizzled::enum_tx_isolation tx_isolation;
00995 drizzled::Cast_target cast_type;
00996 const drizzled::charset_info_st *charset;
00997 drizzled::thr_lock_type lock_type;
00998 drizzled::interval_type interval, interval_time_st;
00999 drizzled::type::timestamp_t date_time_type;
01000 drizzled::Select_Lex *select_lex;
01001 drizzled::chooser_compare_func_creator boolfunc2creator;
01002 drizzled::LEX *lex;
01003 drizzled::index_hint_type index_hint;
01004 drizzled::enum_filetype filetype;
01005 drizzled::message::Table::ForeignKeyConstraint::ForeignKeyOption m_fk_option;
01006 drizzled::execute_string_t execute_string;
01007
01008
01009
01010
01011 #line 1012 "drizzled/sql_yacc.cc"
01012 } YYSTYPE;
01013 # define YYSTYPE_IS_TRIVIAL 1
01014 # define yystype YYSTYPE
01015 # define YYSTYPE_IS_DECLARED 1
01016 #endif
01017
01018
01019
01020
01021
01022 #line 167 "drizzled/sql_yacc.yy"
01023
01024 namespace drizzled
01025 {
01026 bool my_yyoverflow(short **a, union ParserType **b, unsigned long *yystacksize);
01027 }
01028
01029
01030
01031 #line 1032 "drizzled/sql_yacc.cc"
01032
01033 #ifdef short
01034 # undef short
01035 #endif
01036
01037 #ifdef YYTYPE_UINT8
01038 typedef YYTYPE_UINT8 yytype_uint8;
01039 #else
01040 typedef unsigned char yytype_uint8;
01041 #endif
01042
01043 #ifdef YYTYPE_INT8
01044 typedef YYTYPE_INT8 yytype_int8;
01045 #elif (defined __STDC__ || defined __C99__FUNC__ \
01046 || defined __cplusplus || defined _MSC_VER)
01047 typedef signed char yytype_int8;
01048 #else
01049 typedef short int yytype_int8;
01050 #endif
01051
01052 #ifdef YYTYPE_UINT16
01053 typedef YYTYPE_UINT16 yytype_uint16;
01054 #else
01055 typedef unsigned short int yytype_uint16;
01056 #endif
01057
01058 #ifdef YYTYPE_INT16
01059 typedef YYTYPE_INT16 yytype_int16;
01060 #else
01061 typedef short int yytype_int16;
01062 #endif
01063
01064 #ifndef YYSIZE_T
01065 # ifdef __SIZE_TYPE__
01066 # define YYSIZE_T __SIZE_TYPE__
01067 # elif defined size_t
01068 # define YYSIZE_T size_t
01069 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
01070 || defined __cplusplus || defined _MSC_VER)
01071 # include <stddef.h>
01072 # define YYSIZE_T size_t
01073 # else
01074 # define YYSIZE_T unsigned int
01075 # endif
01076 #endif
01077
01078 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
01079
01080 #ifndef YY_
01081 # if YYENABLE_NLS
01082 # if ENABLE_NLS
01083 # include <libintl.h>
01084 # define YY_(msgid) dgettext ("bison-runtime", msgid)
01085 # endif
01086 # endif
01087 # ifndef YY_
01088 # define YY_(msgid) msgid
01089 # endif
01090 #endif
01091
01092
01093 #if ! defined lint || defined __GNUC__
01094 # define YYUSE(e) ((void) (e))
01095 #else
01096 # define YYUSE(e)
01097 #endif
01098
01099
01100 #ifndef lint
01101 # define YYID(n) (n)
01102 #else
01103 #if (defined __STDC__ || defined __C99__FUNC__ \
01104 || defined __cplusplus || defined _MSC_VER)
01105 static int
01106 YYID (int yyi)
01107 #else
01108 static int
01109 YYID (yyi)
01110 int yyi;
01111 #endif
01112 {
01113 return yyi;
01114 }
01115 #endif
01116
01117 #if ! defined yyoverflow || YYERROR_VERBOSE
01118
01119
01120
01121 # ifdef YYSTACK_USE_ALLOCA
01122 # if YYSTACK_USE_ALLOCA
01123 # ifdef __GNUC__
01124 # define YYSTACK_ALLOC __builtin_alloca
01125 # elif defined __BUILTIN_VA_ARG_INCR
01126 # include <alloca.h>
01127 # elif defined _AIX
01128 # define YYSTACK_ALLOC __alloca
01129 # elif defined _MSC_VER
01130 # include <malloc.h>
01131 # define alloca _alloca
01132 # else
01133 # define YYSTACK_ALLOC alloca
01134 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01135 || defined __cplusplus || defined _MSC_VER)
01136 # include <stdlib.h>
01137 # ifndef _STDLIB_H
01138 # define _STDLIB_H 1
01139 # endif
01140 # endif
01141 # endif
01142 # endif
01143 # endif
01144
01145 # ifdef YYSTACK_ALLOC
01146
01147 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
01148 # ifndef YYSTACK_ALLOC_MAXIMUM
01149
01150
01151
01152
01153 # define YYSTACK_ALLOC_MAXIMUM 4032
01154 # endif
01155 # else
01156 # define YYSTACK_ALLOC YYMALLOC
01157 # define YYSTACK_FREE YYFREE
01158 # ifndef YYSTACK_ALLOC_MAXIMUM
01159 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
01160 # endif
01161 # if (defined __cplusplus && ! defined _STDLIB_H \
01162 && ! ((defined YYMALLOC || defined malloc) \
01163 && (defined YYFREE || defined free)))
01164 # include <stdlib.h>
01165 # ifndef _STDLIB_H
01166 # define _STDLIB_H 1
01167 # endif
01168 # endif
01169 # ifndef YYMALLOC
01170 # define YYMALLOC malloc
01171 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01172 || defined __cplusplus || defined _MSC_VER)
01173 void *malloc (YYSIZE_T);
01174 # endif
01175 # endif
01176 # ifndef YYFREE
01177 # define YYFREE free
01178 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01179 || defined __cplusplus || defined _MSC_VER)
01180 void free (void *);
01181 # endif
01182 # endif
01183 # endif
01184 #endif
01185
01186
01187 #if (! defined yyoverflow \
01188 && (! defined __cplusplus \
01189 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
01190
01191
01192 union yyalloc
01193 {
01194 yytype_int16 yyss_alloc;
01195 YYSTYPE yyvs_alloc;
01196 };
01197
01198
01199 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
01200
01201
01202
01203 # define YYSTACK_BYTES(N) \
01204 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
01205 + YYSTACK_GAP_MAXIMUM)
01206
01207
01208
01209 # ifndef YYCOPY
01210 # if defined __GNUC__ && 1 < __GNUC__
01211 # define YYCOPY(To, From, Count) \
01212 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
01213 # else
01214 # define YYCOPY(To, From, Count) \
01215 do \
01216 { \
01217 YYSIZE_T yyi; \
01218 for (yyi = 0; yyi < (Count); yyi++) \
01219 (To)[yyi] = (From)[yyi]; \
01220 } \
01221 while (YYID (0))
01222 # endif
01223 # endif
01224
01225
01226
01227
01228
01229
01230 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
01231 do \
01232 { \
01233 YYSIZE_T yynewbytes; \
01234 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
01235 Stack = &yyptr->Stack_alloc; \
01236 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
01237 yyptr += yynewbytes / sizeof (*yyptr); \
01238 } \
01239 while (YYID (0))
01240
01241 #endif
01242
01243
01244 #define YYFINAL 280
01245
01246 #define YYLAST 15292
01247
01248
01249 #define YYNTOKENS 391
01250
01251 #define YYNNTS 425
01252
01253 #define YYNRULES 1227
01254
01255 #define YYNSTATES 2118
01256
01257
01258 #define YYUNDEFTOK 2
01259 #define YYMAXUTOK 628
01260
01261 #define YYTRANSLATE(YYX) \
01262 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
01263
01264
01265 static const yytype_uint16 yytranslate[] =
01266 {
01267 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01268 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01269 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01270 2, 2, 2, 2, 2, 2, 2, 380, 373, 2,
01271 384, 385, 378, 377, 388, 376, 389, 379, 2, 2,
01272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01273 2, 368, 2, 2, 390, 2, 2, 2, 2, 2,
01274 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01275 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01276 2, 2, 2, 2, 381, 2, 2, 2, 2, 2,
01277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01278 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01279 2, 2, 2, 386, 372, 387, 382, 2, 2, 2,
01280 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01281 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01282 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01283 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01284 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01285 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01286 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01287 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01288 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01289 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01291 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01292 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
01293 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
01294 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
01295 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
01296 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
01297 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
01298 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
01299 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
01300 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
01301 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
01302 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
01303 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
01304 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
01305 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
01306 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
01307 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
01308 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
01309 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
01310 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
01311 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
01312 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
01313 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
01314 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
01315 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
01316 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
01317 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
01318 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
01319 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
01320 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
01321 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
01322 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
01323 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
01324 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
01325 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
01326 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
01327 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
01328 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
01329 365, 366, 367, 369, 370, 371, 374, 375, 383
01330 };
01331
01332 #if YYDEBUG
01333
01334
01335 static const yytype_uint16 yyprhs[] =
01336 {
01337 0, 0, 3, 5, 8, 10, 12, 14, 16, 18,
01338 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
01339 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
01340 60, 62, 64, 68, 69, 77, 78, 92, 93, 100,
01341 106, 107, 113, 118, 121, 124, 125, 126, 131, 132,
01342 139, 142, 144, 145, 146, 153, 154, 156, 159, 163,
01343 165, 167, 170, 174, 176, 180, 184, 187, 191, 195,
01344 199, 200, 202, 203, 207, 208, 210, 212, 215, 217,
01345 220, 224, 226, 230, 234, 238, 242, 246, 249, 253,
01346 257, 261, 265, 269, 271, 273, 276, 278, 280, 282,
01347 287, 292, 297, 299, 301, 303, 305, 307, 309, 311,
01348 313, 316, 318, 322, 324, 326, 329, 332, 340, 349,
01349 358, 361, 364, 365, 367, 370, 371, 373, 376, 377,
01350 382, 385, 391, 394, 397, 400, 406, 409, 410, 417,
01351 423, 426, 429, 432, 435, 439, 443, 447, 450, 453,
01352 456, 458, 461, 463, 465, 470, 475, 478, 481, 485,
01353 486, 490, 492, 498, 499, 503, 504, 506, 508, 509,
01354 513, 514, 516, 517, 521, 523, 525, 528, 531, 533,
01355 536, 537, 540, 544, 547, 548, 551, 555, 558, 559,
01356 561, 564, 566, 568, 571, 574, 576, 577, 579, 582,
01357 584, 586, 588, 592, 595, 597, 598, 600, 603, 605,
01358 607, 611, 614, 619, 621, 622, 625, 627, 629, 631,
01359 632, 634, 635, 637, 643, 644, 648, 652, 654, 655,
01360 658, 661, 664, 665, 669, 673, 680, 687, 689, 691,
01361 694, 697, 700, 702, 705, 708, 710, 712, 713, 715,
01362 717, 719, 721, 722, 724, 725, 727, 730, 731, 733,
01363 735, 738, 741, 743, 747, 750, 752, 754, 759, 762,
01364 764, 769, 770, 772, 773, 776, 778, 782, 783, 791,
01365 792, 798, 799, 802, 805, 807, 808, 810, 812, 814,
01366 818, 821, 825, 828, 833, 834, 841, 842, 843, 852,
01367 856, 861, 865, 869, 872, 875, 882, 888, 892, 896,
01368 898, 900, 902, 903, 905, 906, 908, 909, 912, 914,
01369 915, 917, 919, 923, 924, 928, 929, 934, 935, 940,
01370 941, 946, 948, 952, 956, 958, 961, 966, 969, 973,
01371 976, 980, 981, 985, 986, 987, 994, 997, 999, 1001,
01372 1004, 1007, 1015, 1016, 1018, 1021, 1023, 1025, 1027, 1029,
01373 1031, 1033, 1035, 1037, 1039, 1041, 1042, 1045, 1050, 1054,
01374 1056, 1058, 1062, 1067, 1068, 1069, 1070, 1073, 1076, 1078,
01375 1080, 1081, 1084, 1088, 1092, 1096, 1099, 1103, 1108, 1112,
01376 1117, 1121, 1126, 1128, 1132, 1137, 1141, 1145, 1152, 1154,
01377 1160, 1167, 1173, 1181, 1188, 1197, 1203, 1210, 1215, 1221,
01378 1225, 1230, 1232, 1236, 1240, 1244, 1248, 1252, 1256, 1262,
01379 1268, 1272, 1276, 1280, 1284, 1288, 1292, 1294, 1296, 1298,
01380 1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, 1318,
01381 1320, 1324, 1326, 1328, 1330, 1334, 1337, 1340, 1343, 1347,
01382 1351, 1357, 1364, 1369, 1374, 1377, 1384, 1390, 1397, 1402,
01383 1407, 1413, 1418, 1421, 1426, 1431, 1436, 1447, 1454, 1463,
01384 1470, 1475, 1480, 1487, 1492, 1497, 1502, 1510, 1518, 1526,
01385 1533, 1540, 1547, 1554, 1558, 1563, 1570, 1579, 1582, 1591,
01386 1600, 1607, 1610, 1615, 1622, 1629, 1638, 1647, 1654, 1663,
01387 1670, 1673, 1678, 1687, 1696, 1699, 1702, 1707, 1712, 1716,
01388 1720, 1726, 1735, 1741, 1746, 1753, 1758, 1765, 1774, 1781,
01389 1786, 1790, 1794, 1801, 1802, 1808, 1809, 1811, 1813, 1817,
01390 1822, 1827, 1833, 1839, 1844, 1845, 1846, 1854, 1859, 1865,
01391 1870, 1876, 1881, 1886, 1891, 1896, 1901, 1907, 1908, 1917,
01392 1918, 1922, 1926, 1928, 1933, 1934, 1936, 1937, 1940, 1941,
01393 1943, 1944, 1948, 1951, 1953, 1955, 1958, 1960, 1962, 1965,
01394 1968, 1970, 1972, 1974, 1977, 1979, 1983, 1984, 1986, 1987,
01395 1990, 1995, 2001, 2003, 2005, 2007, 2009, 2014, 2016, 2020,
01396 2024, 2028, 2029, 2036, 2037, 2044, 2045, 2054, 2059, 2060,
01397 2069, 2070, 2081, 2088, 2089, 2098, 2099, 2110, 2117, 2119,
01398 2122, 2125, 2126, 2131, 2135, 2141, 2145, 2146, 2147, 2156,
01399 2158, 2159, 2160, 2167, 2168, 2172, 2173, 2174, 2180, 2181,
01400 2183, 2184, 2186, 2187, 2190, 2194, 2198, 2200, 2202, 2203,
01401 2211, 2212, 2220, 2222, 2225, 2226, 2227, 2230, 2231, 2234,
01402 2235, 2237, 2239, 2241, 2243, 2247, 2249, 2253, 2255, 2257,
01403 2259, 2261, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277,
01404 2279, 2281, 2283, 2285, 2287, 2289, 2291, 2293, 2295, 2297,
01405 2299, 2300, 2302, 2303, 2306, 2307, 2309, 2310, 2311, 2315,
01406 2316, 2317, 2321, 2324, 2325, 2326, 2331, 2336, 2339, 2340,
01407 2342, 2346, 2350, 2352, 2355, 2356, 2358, 2359, 2364, 2369,
01408 2372, 2373, 2375, 2377, 2378, 2380, 2381, 2383, 2386, 2388,
01409 2392, 2396, 2398, 2400, 2402, 2403, 2406, 2408, 2410, 2412,
01410 2414, 2416, 2418, 2420, 2422, 2424, 2426, 2428, 2429, 2432,
01411 2436, 2438, 2441, 2442, 2446, 2447, 2453, 2456, 2458, 2462,
01412 2468, 2469, 2477, 2482, 2484, 2488, 2490, 2491, 2494, 2495,
01413 2497, 2503, 2505, 2508, 2509, 2513, 2514, 2516, 2517, 2519,
01414 2520, 2521, 2529, 2530, 2531, 2537, 2540, 2542, 2544, 2546,
01415 2550, 2555, 2556, 2560, 2564, 2566, 2569, 2572, 2573, 2577,
01416 2578, 2584, 2588, 2590, 2594, 2596, 2600, 2602, 2604, 2605,
01417 2607, 2608, 2613, 2614, 2616, 2620, 2622, 2624, 2626, 2627,
01418 2628, 2635, 2636, 2646, 2650, 2652, 2656, 2660, 2662, 2666,
01419 2667, 2676, 2677, 2679, 2683, 2684, 2686, 2687, 2691, 2694,
01420 2698, 2702, 2707, 2713, 2719, 2725, 2731, 2734, 2737, 2741,
01421 2744, 2748, 2750, 2754, 2759, 2760, 2763, 2765, 2767, 2768,
01422 2771, 2774, 2775, 2780, 2781, 2786, 2788, 2790, 2791, 2793,
01423 2794, 2796, 2798, 2799, 2803, 2807, 2809, 2810, 2814, 2819,
01424 2821, 2823, 2826, 2827, 2829, 2833, 2834, 2836, 2838, 2841,
01425 2842, 2843, 2844, 2845, 2864, 2866, 2867, 2869, 2870, 2872,
01426 2874, 2875, 2877, 2879, 2881, 2884, 2887, 2888, 2891, 2894,
01427 2896, 2900, 2905, 2909, 2913, 2914, 2917, 2920, 2922, 2926,
01428 2930, 2931, 2935, 2937, 2939, 2940, 2944, 2947, 2951, 2953,
01429 2955, 2958, 2959, 2962, 2964, 2967, 2969, 2971, 2973, 2975,
01430 2978, 2981, 2983, 2985, 2987, 2989, 2991, 2993, 2995, 2998,
01431 3001, 3003, 3005, 3007, 3009, 3011, 3014, 3017, 3019, 3021,
01432 3023, 3025, 3027, 3029, 3032, 3035, 3037, 3039, 3041, 3043,
01433 3045, 3047, 3049, 3053, 3059, 3061, 3063, 3065, 3069, 3074,
01434 3080, 3082, 3088, 3092, 3095, 3097, 3101, 3104, 3106, 3108,
01435 3110, 3112, 3114, 3116, 3118, 3120, 3122, 3124, 3126, 3128,
01436 3130, 3132, 3134, 3136, 3138, 3140, 3142, 3144, 3146, 3148,
01437 3150, 3152, 3154, 3156, 3158, 3160, 3162, 3164, 3166, 3168,
01438 3170, 3172, 3174, 3176, 3178, 3180, 3182, 3184, 3186, 3188,
01439 3190, 3192, 3194, 3196, 3198, 3200, 3202, 3204, 3206, 3208,
01440 3210, 3212, 3214, 3216, 3218, 3220, 3222, 3224, 3226, 3228,
01441 3230, 3232, 3234, 3236, 3238, 3240, 3242, 3244, 3246, 3248,
01442 3250, 3252, 3254, 3256, 3258, 3260, 3262, 3264, 3266, 3268,
01443 3270, 3272, 3274, 3276, 3278, 3280, 3282, 3284, 3286, 3288,
01444 3290, 3292, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308,
01445 3310, 3312, 3314, 3316, 3318, 3320, 3322, 3324, 3326, 3328,
01446 3330, 3332, 3334, 3336, 3338, 3340, 3342, 3344, 3346, 3348,
01447 3350, 3352, 3354, 3356, 3358, 3360, 3362, 3364, 3366, 3368,
01448 3370, 3372, 3374, 3376, 3378, 3380, 3382, 3384, 3386, 3388,
01449 3390, 3392, 3394, 3396, 3398, 3400, 3402, 3404, 3406, 3408,
01450 3410, 3412, 3414, 3416, 3418, 3420, 3422, 3424, 3426, 3428,
01451 3430, 3432, 3433, 3438, 3439, 3441, 3443, 3447, 3448, 3451,
01452 3453, 3455, 3457, 3459, 3460, 3462, 3463, 3465, 3467, 3469,
01453 3470, 3473, 3476, 3479, 3481, 3484, 3489, 3495, 3500, 3507,
01454 3509, 3511, 3513, 3515, 3517, 3519, 3522, 3525, 3528, 3530,
01455 3532, 3534, 3536, 3538, 3540, 3542, 3544, 3545, 3549, 3550,
01456 3554, 3555, 3557, 3558, 3562, 3565, 3566, 3568, 3571, 3572,
01457 3574, 3579, 3584, 3590, 3593, 3597, 3599, 3600, 3602, 3603,
01458 3608, 3609, 3611, 3613, 3614, 3617, 3620, 3622, 3623, 3625,
01459 3627, 3630, 3634, 3636, 3637, 3643, 3647, 3648
01460 };
01461
01462
01463 static const yytype_int16 yyrhs[] =
01464 {
01465 392, 0, -1, 108, -1, 393, 108, -1, 394, -1,
01466 791, -1, 491, -1, 508, -1, 510, -1, 797, -1,
01467 395, -1, 696, -1, 707, -1, 653, -1, 659, -1,
01468 713, -1, 664, -1, 719, -1, 722, -1, 800, -1,
01469 512, -1, 667, -1, 798, -1, 799, -1, 516, -1,
01470 770, -1, 701, -1, 506, -1, 699, -1, 789, -1,
01471 690, -1, 721, -1, 64, 38, 759, -1, -1, 64,
01472 412, 312, 413, 757, 396, 399, -1, -1, 64, 495,
01473 397, 478, 152, 764, 480, 219, 757, 384, 486, 385,
01474 481, -1, -1, 64, 70, 413, 758, 398, 409, -1,
01475 384, 427, 385, 414, 401, -1, -1, 384, 405, 385,
01476 400, 805, -1, 384, 404, 385, 414, -1, 404, 414,
01477 -1, 414, 401, -1, -1, -1, 730, 405, 402, 802,
01478 -1, -1, 730, 384, 405, 385, 403, 805, -1, 178,
01479 757, -1, 406, -1, -1, -1, 271, 407, 527, 533,
01480 408, 426, -1, -1, 423, -1, 423, 410, -1, 423,
01481 388, 410, -1, 410, -1, 411, -1, 411, 410, -1,
01482 411, 388, 410, -1, 765, -1, 254, 368, 326, -1,
01483 254, 368, 120, -1, 87, 761, -1, 87, 68, 538,
01484 -1, 765, 368, 765, -1, 765, 368, 644, -1, -1,
01485 313, -1, -1, 148, 211, 117, -1, -1, 416, -1,
01486 417, -1, 417, 415, -1, 417, -1, 417, 416, -1,
01487 417, 388, 416, -1, 418, -1, 109, 368, 765, -1,
01488 51, 682, 761, -1, 18, 682, 644, -1, 254, 368,
01489 326, -1, 254, 368, 120, -1, 87, 761, -1, 87,
01490 68, 538, -1, 265, 368, 425, -1, 121, 368, 761,
01491 -1, 765, 368, 766, -1, 765, 368, 644, -1, 421,
01492 -1, 422, -1, 42, 278, -1, 41, -1, 345, -1,
01493 86, -1, 465, 419, 682, 420, -1, 465, 47, 682,
01494 464, -1, 465, 47, 682, 464, -1, 54, -1, 55,
01495 -1, 86, -1, 101, -1, 123, -1, 246, -1, 424,
01496 -1, 638, -1, 526, 532, -1, 428, -1, 427, 388,
01497 428, -1, 429, -1, 430, -1, 435, 431, -1, 435,
01498 467, -1, 473, 488, 480, 384, 486, 385, 481, -1,
01499 433, 474, 488, 480, 384, 486, 385, 481, -1, 433,
01500 127, 170, 488, 384, 486, 385, 467, -1, 434, 431,
01501 -1, 433, 432, -1, -1, 432, -1, 44, 539, -1,
01502 -1, 434, -1, 60, 488, -1, -1, 756, 436, 437,
01503 462, -1, 320, 459, -1, 320, 384, 215, 385, 459,
01504 -1, 73, 459, -1, 440, 456, -1, 42, 453, -1,
01505 439, 384, 215, 385, 453, -1, 316, 453, -1, -1,
01506 110, 438, 384, 490, 385, 453, -1, 349, 384, 215,
01507 385, 451, -1, 441, 456, -1, 76, 451, -1, 321,
01508 451, -1, 27, 451, -1, 84, 442, 456, -1, 216,
01509 442, 456, -1, 123, 442, 456, -1, 346, 451, -1,
01510 166, 451, -1, 28, 452, -1, 275, -1, 42, 353,
01511 -1, 42, -1, 350, -1, 160, 446, 445, 447, -1,
01512 23, 446, 445, 447, -1, 245, 448, -1, 96, 448,
01513 -1, 96, 234, 448, -1, -1, 384, 215, 385, -1,
01514 443, -1, 384, 215, 388, 215, 385, -1, -1, 384,
01515 215, 385, -1, -1, 282, -1, 337, -1, -1, 384,
01516 215, 385, -1, -1, 367, -1, -1, 384, 215, 385,
01517 -1, 443, -1, 214, -1, 211, 214, -1, 466, 170,
01518 -1, 334, -1, 334, 170, -1, -1, 451, 449, -1,
01519 451, 86, 745, -1, 451, 450, -1, -1, 452, 449,
01520 -1, 452, 86, 748, -1, 452, 450, -1, -1, 454,
01521 -1, 454, 455, -1, 455, -1, 449, -1, 86, 745,
01522 -1, 47, 463, -1, 450, -1, -1, 457, -1, 457,
01523 458, -1, 458, -1, 449, -1, 18, -1, 275, 86,
01524 348, -1, 86, 747, -1, 450, -1, -1, 460, -1,
01525 460, 461, -1, 461, -1, 449, -1, 86, 212, 538,
01526 -1, 86, 749, -1, 219, 338, 212, 538, -1, 450,
01527 -1, -1, 51, 761, -1, 765, -1, 463, -1, 86,
01528 -1, -1, 86, -1, -1, 236, -1, 247, 757, 468,
01529 470, 471, -1, -1, 384, 469, 385, -1, 469, 388,
01530 764, -1, 764, -1, -1, 188, 132, -1, 188, 232,
01531 -1, 188, 283, -1, -1, 219, 338, 472, -1, 219,
01532 88, 472, -1, 219, 338, 472, 219, 88, 472, -1,
01533 219, 88, 472, 219, 338, 472, -1, 256, -1, 34,
01534 -1, 278, 214, -1, 213, 4, -1, 278, 86, -1,
01535 475, -1, 236, 170, -1, 334, 476, -1, 170, -1,
01536 152, -1, -1, 475, -1, 168, -1, 152, -1, 151,
01537 -1, -1, 334, -1, -1, 479, -1, 479, 483, -1,
01538 -1, 482, -1, 484, -1, 482, 484, -1, 342, 485,
01539 -1, 483, -1, 169, 682, 643, -1, 51, 761, -1,
01540 31, -1, 137, -1, 486, 388, 487, 636, -1, 487,
01541 636, -1, 764, -1, 764, 384, 215, 385, -1, -1,
01542 756, -1, -1, 389, 764, -1, 744, -1, 490, 388,
01543 744, -1, -1, 10, 495, 503, 312, 757, 492, 494,
01544 -1, -1, 10, 70, 758, 493, 423, -1, -1, 93,
01545 310, -1, 150, 310, -1, 496, -1, -1, 222, -1,
01546 217, -1, 498, -1, 496, 388, 498, -1, 6, 502,
01547 -1, 497, 429, 504, -1, 6, 430, -1, 497, 384,
01548 427, 385, -1, -1, 40, 502, 756, 499, 435, 504,
01549 -1, -1, -1, 200, 502, 756, 500, 437, 462, 501,
01550 504, -1, 98, 502, 756, -1, 98, 127, 170, 488,
01551 -1, 98, 236, 170, -1, 98, 475, 756, -1, 92,
01552 168, -1, 104, 168, -1, 10, 502, 756, 278, 86,
01553 745, -1, 10, 502, 756, 98, 86, -1, 250, 505,
01554 757, -1, 62, 322, 464, -1, 415, -1, 126, -1,
01555 629, -1, -1, 50, -1, -1, 149, -1, -1, 7,
01556 764, -1, 122, -1, -1, 322, -1, 14, -1, 295,
01557 324, 507, -1, -1, 360, 59, 284, -1, -1, 11,
01558 788, 509, 655, -1, -1, 44, 788, 511, 655, -1,
01559 -1, 250, 788, 513, 514, -1, 515, -1, 514, 388,
01560 515, -1, 757, 322, 757, -1, 517, -1, 271, 520,
01561 -1, 384, 518, 385, 805, -1, 271, 522, -1, 384,
01562 518, 385, -1, 271, 590, -1, 384, 519, 385, -1,
01563 -1, 522, 521, 802, -1, -1, -1, 523, 527, 533,
01564 524, 525, 532, -1, 632, 638, -1, 649, -1, 526,
01565 -1, 649, 526, -1, 526, 649, -1, 131, 572, 621,
01566 626, 623, 632, 638, -1, -1, 528, -1, 528, 531,
01567 -1, 531, -1, 94, -1, 9, -1, 292, -1, 289,
01568 -1, 301, -1, 290, -1, 530, -1, 529, -1, 291,
01569 -1, -1, 128, 338, -1, 184, 162, 280, 198, -1,
01570 533, 388, 534, -1, 534, -1, 378, -1, 535, 752,
01571 536, -1, 535, 539, 536, 537, -1, -1, -1, -1,
01572 14, 764, -1, 14, 761, -1, 764, -1, 761, -1,
01573 -1, 384, 385, -1, 539, 228, 539, -1, 539, 364,
01574 539, -1, 539, 12, 539, -1, 211, 539, -1, 540,
01575 163, 326, -1, 540, 163, 211, 326, -1, 540, 163,
01576 120, -1, 540, 163, 211, 120, -1, 540, 163, 335,
01577 -1, 540, 163, 211, 335, -1, 540, -1, 540, 163,
01578 214, -1, 540, 163, 211, 214, -1, 540, 111, 541,
01579 -1, 540, 543, 541, -1, 540, 543, 544, 384, 813,
01580 385, -1, 541, -1, 542, 162, 384, 813, 385, -1,
01581 542, 211, 162, 384, 813, 385, -1, 542, 162, 384,
01582 539, 385, -1, 542, 162, 384, 539, 388, 567, 385,
01583 -1, 542, 211, 162, 384, 539, 385, -1, 542, 211,
01584 162, 384, 539, 388, 567, 385, -1, 542, 22, 542,
01585 12, 541, -1, 542, 211, 22, 542, 12, 541, -1,
01586 542, 178, 545, 625, -1, 542, 211, 178, 545, 625,
01587 -1, 542, 248, 542, -1, 542, 211, 248, 542, -1,
01588 542, -1, 542, 372, 542, -1, 542, 373, 542, -1,
01589 542, 374, 542, -1, 542, 375, 542, -1, 542, 377,
01590 542, -1, 542, 376, 542, -1, 542, 377, 158, 539,
01591 615, -1, 542, 376, 158, 539, 615, -1, 542, 378,
01592 542, -1, 542, 379, 542, -1, 542, 380, 542, -1,
01593 542, 95, 542, -1, 542, 201, 542, -1, 542, 381,
01594 542, -1, 545, -1, 368, -1, 133, -1, 370, -1,
01595 173, -1, 369, -1, 207, -1, 9, -1, 13, -1,
01596 754, -1, 546, -1, 547, -1, 549, -1, 548, -1,
01597 545, 47, 765, -1, 746, -1, 558, -1, 554, -1,
01598 545, 371, 545, -1, 377, 545, -1, 376, 545, -1,
01599 382, 545, -1, 384, 813, 385, -1, 384, 539, 385,
01600 -1, 384, 539, 388, 567, 385, -1, 266, 384, 539,
01601 388, 567, 385, -1, 117, 384, 813, 385, -1, 386,
01602 764, 539, 387, -1, 24, 545, -1, 37, 384, 539,
01603 14, 566, 385, -1, 36, 568, 570, 569, 106, -1,
01604 62, 384, 539, 388, 566, 385, -1, 86, 384, 754,
01605 385, -1, 347, 384, 754, 385, -1, 158, 539, 615,
01606 377, 539, -1, 42, 384, 567, 385, -1, 68, 538,
01607 -1, 76, 384, 539, 385, -1, 81, 384, 539, 385,
01608 -1, 143, 384, 539, 385, -1, 157, 384, 539, 388,
01609 539, 388, 539, 388, 539, 385, -1, 158, 384, 539,
01610 388, 539, 385, -1, 158, 384, 539, 388, 539, 388,
01611 567, 385, -1, 175, 384, 539, 388, 539, 385, -1,
01612 196, 384, 539, 385, -1, 202, 384, 539, 385, -1,
01613 260, 384, 539, 388, 539, 385, -1, 269, 384, 539,
01614 385, -1, 320, 384, 539, 385, -1, 325, 384, 539,
01615 385, -1, 325, 384, 174, 539, 131, 539, 385, -1,
01616 325, 384, 323, 539, 131, 539, 385, -1, 325, 384,
01617 30, 539, 131, 539, 385, -1, 325, 384, 174, 131,
01618 539, 385, -1, 325, 384, 323, 131, 539, 385, -1,
01619 325, 384, 30, 131, 539, 385, -1, 325, 384, 539,
01620 131, 539, 385, -1, 340, 384, 385, -1, 366, 384,
01621 539, 385, -1, 5, 384, 539, 388, 539, 385, -1,
01622 5, 384, 539, 388, 158, 539, 615, 385, -1, 67,
01623 538, -1, 74, 384, 539, 388, 158, 539, 615, 385,
01624 -1, 75, 384, 539, 388, 158, 539, 615, 385, -1,
01625 119, 384, 615, 131, 539, 385, -1, 212, 538, -1,
01626 212, 384, 539, 385, -1, 233, 384, 542, 162, 539,
01627 385, -1, 303, 384, 539, 388, 539, 385, -1, 303,
01628 384, 539, 388, 158, 539, 615, 385, -1, 305, 384,
01629 539, 388, 539, 388, 539, 385, -1, 305, 384, 539,
01630 388, 539, 385, -1, 305, 384, 539, 131, 539, 128,
01631 539, 385, -1, 305, 384, 539, 131, 539, 385, -1,
01632 308, 538, -1, 308, 384, 539, 385, -1, 318, 384,
01633 616, 388, 539, 388, 539, 385, -1, 319, 384, 616,
01634 388, 539, 388, 539, 385, -1, 343, 538, -1, 344,
01635 538, -1, 46, 384, 567, 385, -1, 48, 384, 539,
01636 385, -1, 70, 384, 385, -1, 38, 384, 385, -1,
01637 116, 384, 539, 385, 663, -1, 148, 384, 539, 388,
01638 539, 388, 539, 385, -1, 171, 720, 384, 539, 385,
01639 -1, 193, 384, 539, 385, -1, 201, 384, 539, 388,
01640 539, 385, -1, 239, 384, 539, 385, -1, 252, 384,
01641 539, 388, 539, 385, -1, 253, 384, 539, 388, 539,
01642 388, 539, 385, -1, 327, 384, 539, 388, 539, 385,
01643 -1, 355, 384, 539, 385, -1, 346, 384, 385, -1,
01644 166, 384, 385, -1, 355, 384, 539, 388, 539, 385,
01645 -1, -1, 760, 384, 550, 551, 385, -1, -1, 552,
01646 -1, 553, -1, 552, 388, 553, -1, 535, 539, 536,
01647 537, -1, 19, 384, 564, 385, -1, 19, 384, 94,
01648 564, 385, -1, 63, 384, 620, 378, 385, -1, 63,
01649 384, 564, 385, -1, -1, -1, 63, 384, 94, 555,
01650 567, 556, 385, -1, 197, 384, 564, 385, -1, 197,
01651 384, 94, 564, 385, -1, 189, 384, 564, 385, -1,
01652 189, 384, 94, 564, 385, -1, 298, 384, 564, 385,
01653 -1, 352, 384, 564, 385, -1, 297, 384, 564, 385,
01654 -1, 354, 384, 564, 385, -1, 306, 384, 564, 385,
01655 -1, 306, 384, 94, 564, 385, -1, -1, 135, 384,
01656 561, 557, 567, 563, 562, 385, -1, -1, 390, 559,
01657 560, -1, 783, 279, 539, -1, 783, -1, 390, 779,
01658 783, 489, -1, -1, 94, -1, -1, 273, 744, -1,
01659 -1, 633, -1, -1, 620, 565, 539, -1, 24, 444,
01660 -1, 28, -1, 282, -1, 282, 160, -1, 160, -1,
01661 337, -1, 337, 160, -1, 42, 444, -1, 76, -1,
01662 321, -1, 73, -1, 84, 442, -1, 539, -1, 567,
01663 388, 539, -1, -1, 539, -1, -1, 103, 539, -1,
01664 358, 539, 317, 539, -1, 570, 358, 539, 317, 539,
01665 -1, 584, -1, 575, -1, 574, -1, 571, -1, 386,
01666 764, 571, 387, -1, 573, -1, 574, 388, 573, -1,
01667 571, 583, 571, -1, 571, 301, 584, -1, -1, 571,
01668 583, 571, 219, 576, 539, -1, -1, 571, 301, 584,
01669 219, 577, 539, -1, -1, 571, 583, 571, 342, 578,
01670 384, 614, 385, -1, 571, 206, 167, 584, -1, -1,
01671 571, 175, 600, 167, 571, 219, 579, 539, -1, -1,
01672 571, 175, 600, 167, 584, 580, 342, 384, 614, 385,
01673 -1, 571, 206, 175, 600, 167, 584, -1, -1, 571,
01674 260, 600, 167, 571, 219, 581, 539, -1, -1, 571,
01675 260, 600, 167, 584, 582, 342, 384, 614, 385, -1,
01676 571, 206, 260, 600, 167, 584, -1, 167, -1, 154,
01677 167, -1, 65, 167, -1, -1, 585, 757, 619, 609,
01678 -1, 599, 598, 595, -1, 384, 598, 586, 385, 619,
01679 -1, 593, 632, 638, -1, -1, -1, 586, 333, 809,
01680 587, 810, 588, 632, 638, -1, 590, -1, -1, -1,
01681 591, 527, 533, 592, 426, 532, -1, -1, 598, 594,
01682 574, -1, -1, -1, 596, 527, 533, 597, 426, -1,
01683 -1, 271, -1, -1, 229, -1, -1, 128, 167, -1,
01684 128, 227, 32, -1, 128, 136, 32, -1, 126, -1,
01685 149, -1, -1, 602, 475, 601, 604, 384, 613, 385,
01686 -1, -1, 341, 475, 601, 605, 384, 611, 385, -1,
01687 603, -1, 606, 603, -1, -1, -1, 608, 606, -1,
01688 -1, 610, 607, -1, -1, 613, -1, 764, -1, 236,
01689 -1, 612, -1, 613, 388, 612, -1, 764, -1, 614,
01690 388, 764, -1, 617, -1, 77, -1, 78, -1, 79,
01691 -1, 80, -1, 140, -1, 141, -1, 142, -1, 194,
01692 -1, 195, -1, 268, -1, 365, -1, 617, -1, 130,
01693 -1, 81, -1, 357, -1, 143, -1, 196, -1, 202,
01694 -1, 239, -1, 269, -1, 193, -1, 366, -1, -1,
01695 14, -1, -1, 618, 764, -1, -1, 9, -1, -1,
01696 -1, 359, 622, 539, -1, -1, -1, 138, 624, 539,
01697 -1, 114, 545, -1, -1, -1, 136, 32, 627, 628,
01698 -1, 627, 388, 753, 636, -1, 753, 636, -1, -1,
01699 361, -1, 227, 32, 630, -1, 630, 388, 631, -1,
01700 631, -1, 754, 636, -1, -1, 633, -1, -1, 227,
01701 32, 634, 635, -1, 635, 388, 753, 636, -1, 753,
01702 636, -1, -1, 15, -1, 89, -1, -1, 639, -1,
01703 -1, 639, -1, 179, 640, -1, 641, -1, 641, 388,
01704 641, -1, 641, 218, 641, -1, 329, -1, 186, -1,
01705 215, -1, -1, 179, 641, -1, 215, -1, 139, -1,
01706 186, -1, 329, -1, 83, -1, 124, -1, 215, -1,
01707 329, -1, 186, -1, 83, -1, 124, -1, -1, 646,
01708 647, -1, 647, 388, 648, -1, 648, -1, 390, 783,
01709 -1, -1, 159, 650, 651, -1, -1, 230, 763, 652,
01710 731, 734, -1, 99, 763, -1, 645, -1, 98, 38,
01711 759, -1, 98, 658, 788, 657, 655, -1, -1, 98,
01712 495, 152, 764, 219, 757, 654, -1, 98, 70, 657,
01713 758, -1, 656, -1, 655, 388, 656, -1, 757, -1,
01714 -1, 148, 117, -1, -1, 313, -1, 116, 660, 661,
01715 662, 663, -1, 783, -1, 390, 783, -1, -1, 360,
01716 213, 258, -1, -1, 56, -1, -1, 355, -1, -1,
01717 -1, 157, 665, 503, 670, 666, 672, 688, -1, -1,
01718 -1, 253, 668, 670, 669, 672, -1, 159, 671, -1,
01719 671, -1, 656, -1, 675, -1, 384, 385, 675, -1,
01720 384, 674, 385, 675, -1, -1, 278, 673, 679, -1,
01721 674, 388, 751, -1, 751, -1, 347, 678, -1, 348,
01722 678, -1, -1, 406, 676, 802, -1, -1, 384, 406,
01723 385, 677, 805, -1, 678, 388, 683, -1, 683, -1,
01724 679, 388, 680, -1, 680, -1, 754, 681, 687, -1,
01725 368, -1, 279, -1, -1, 368, -1, -1, 384, 684,
01726 685, 385, -1, -1, 686, -1, 686, 388, 687, -1,
01727 687, -1, 539, -1, 86, -1, -1, -1, 219, 100,
01728 689, 170, 338, 694, -1, -1, 338, 503, 757, 278,
01729 692, 691, 621, 632, 642, -1, 692, 388, 693, -1,
01730 693, -1, 754, 681, 687, -1, 694, 388, 695, -1,
01731 695, -1, 754, 681, 687, -1, -1, 88, 698, 131,
01732 757, 697, 621, 632, 642, -1, -1, 149, -1, 327,
01733 700, 656, -1, -1, 312, -1, -1, 281, 702, 703,
01734 -1, 71, 706, -1, 309, 704, 706, -1, 313, 309,
01735 706, -1, 312, 296, 704, 706, -1, 49, 705, 757,
01736 704, 706, -1, 477, 705, 757, 704, 621, -1, 63,
01737 384, 378, 385, 356, -1, 63, 384, 378, 385, 112,
01738 -1, 356, 637, -1, 112, 637, -1, 778, 296, 706,
01739 -1, 766, 296, -1, 64, 312, 757, -1, 238, -1,
01740 778, 351, 706, -1, 64, 70, 413, 764, -1, -1,
01741 705, 764, -1, 131, -1, 162, -1, -1, 178, 761,
01742 -1, 359, 539, -1, -1, 710, 757, 708, 712, -1,
01743 -1, 710, 711, 709, 516, -1, 89, -1, 90, -1,
01744 -1, 118, -1, -1, 744, -1, 764, -1, -1, 125,
01745 714, 715, -1, 715, 388, 716, -1, 716, -1, -1,
01746 788, 717, 718, -1, 309, 360, 243, 184, -1, 185,
01747 -1, 296, -1, 134, 296, -1, -1, 655, -1, 171,
01748 720, 539, -1, -1, 58, -1, 240, -1, 341, 758,
01749 -1, -1, -1, -1, -1, 181, 727, 723, 728, 153,
01750 763, 724, 729, 159, 725, 312, 757, 726, 731, 734,
01751 737, 739, 742, -1, 72, -1, -1, 56, -1, -1,
01752 253, -1, 149, -1, -1, 14, -1, 253, -1, 149,
01753 -1, 253, 14, -1, 149, 14, -1, -1, 49, 732,
01754 -1, 732, 733, -1, 733, -1, 314, 32, 744, -1,
01755 226, 105, 32, 744, -1, 105, 32, 744, -1, 113,
01756 32, 744, -1, -1, 180, 735, -1, 735, 736, -1,
01757 736, -1, 314, 32, 744, -1, 294, 32, 744, -1,
01758 -1, 149, 215, 738, -1, 180, -1, 264, -1, -1,
01759 384, 740, 385, -1, 384, 385, -1, 740, 388, 741,
01760 -1, 741, -1, 754, -1, 390, 783, -1, -1, 278,
01761 694, -1, 762, -1, 743, 762, -1, 762, -1, 139,
01762 -1, 25, -1, 746, -1, 377, 750, -1, 376, 750,
01763 -1, 743, -1, 750, -1, 214, -1, 120, -1, 326,
01764 -1, 139, -1, 25, -1, 76, 743, -1, 320, 743,
01765 -1, 743, -1, 139, -1, 25, -1, 750, -1, 214,
01766 -1, 377, 750, -1, 376, 750, -1, 214, -1, 120,
01767 -1, 326, -1, 743, -1, 214, -1, 750, -1, 76,
01768 743, -1, 320, 743, -1, 215, -1, 186, -1, 329,
01769 -1, 83, -1, 124, -1, 754, -1, 752, -1, 764,
01770 389, 378, -1, 764, 389, 764, 389, 378, -1, 539,
01771 -1, 764, -1, 755, -1, 764, 389, 764, -1, 389,
01772 764, 389, 764, -1, 764, 389, 764, 389, 764, -1,
01773 764, -1, 764, 389, 764, 389, 764, -1, 764, 389,
01774 764, -1, 389, 764, -1, 764, -1, 758, 389, 764,
01775 -1, 389, 764, -1, 764, -1, 764, -1, 144, -1,
01776 147, -1, 315, -1, 315, -1, 315, -1, 760, -1,
01777 768, -1, 760, -1, 761, -1, 760, -1, 761, -1,
01778 320, -1, 290, -1, 146, -1, 769, -1, 21, -1,
01779 43, -1, 45, -1, 51, -1, 53, -1, 61, -1,
01780 82, -1, 97, -1, 106, -1, 125, -1, 213, -1,
01781 223, -1, 261, -1, 267, -1, 270, -1, 276, -1,
01782 282, -1, 295, -1, 299, -1, 327, -1, 4, -1,
01783 5, -1, 7, -1, 8, -1, 13, -1, 17, -1,
01784 18, -1, 19, -1, 26, -1, 29, -1, 28, -1,
01785 31, -1, 35, -1, 39, -1, 46, -1, 48, -1,
01786 49, -1, 52, -1, 54, -1, 55, -1, 56, -1,
01787 58, -1, 59, -1, 66, -1, 72, -1, 71, -1,
01788 73, -1, 76, -1, 81, -1, 92, -1, 93, -1,
01789 99, -1, 100, -1, 101, -1, 107, -1, 110, -1,
01790 109, -1, 112, -1, 114, -1, 115, -1, 118, -1,
01791 129, -1, 104, -1, 132, -1, 121, -1, 122, -1,
01792 123, -1, 130, -1, 134, -1, 137, -1, 143, -1,
01793 145, -1, 150, -1, 151, -1, 164, -1, 166, -1,
01794 169, -1, 172, -1, 176, -1, 182, -1, 183, -1,
01795 185, -1, 190, -1, 191, -1, 192, -1, 193, -1,
01796 196, -1, 200, -1, 198, -1, 202, -1, 204, -1,
01797 203, -1, 205, -1, 209, -1, 208, -1, 210, -1,
01798 217, -1, 218, -1, 220, -1, 221, -1, 222, -1,
01799 232, -1, 235, -1, 237, -1, 238, -1, 239, -1,
01800 240, -1, 246, -1, 251, -1, 257, -1, 262, -1,
01801 263, -1, 264, -1, 265, -1, 266, -1, 269, -1,
01802 275, -1, 274, -1, 277, -1, 283, -1, 280, -1,
01803 284, -1, 296, -1, 302, -1, 303, -1, 304, -1,
01804 307, -1, 309, -1, 310, -1, 313, -1, 316, -1,
01805 324, -1, 321, -1, 318, -1, 319, -1, 328, -1,
01806 330, -1, 331, -1, 335, -1, 346, -1, 340, -1,
01807 351, -1, 348, -1, 356, -1, 357, -1, 362, -1,
01808 366, -1, -1, 278, 772, 771, 773, -1, -1, 225,
01809 -1, 774, -1, 773, 388, 774, -1, -1, 775, 780,
01810 -1, 777, -1, 134, -1, 182, -1, 277, -1, -1,
01811 220, -1, -1, 134, -1, 182, -1, 277, -1, -1,
01812 134, 389, -1, 182, 389, -1, 277, 389, -1, 781,
01813 -1, 777, 782, -1, 776, 785, 681, 787, -1, 776,
01814 324, 164, 176, 786, -1, 390, 783, 681, 539, -1,
01815 390, 390, 779, 785, 681, 787, -1, 784, -1, 761,
01816 -1, 177, -1, 767, -1, 760, -1, 784, -1, 243,
01817 330, -1, 243, 52, -1, 251, 243, -1, 274, -1,
01818 539, -1, 86, -1, 219, -1, 9, -1, 24, -1,
01819 312, -1, 309, -1, -1, 336, 790, 788, -1, -1,
01820 21, 792, 793, -1, -1, 362, -1, -1, 12, 213,
01821 39, -1, 12, 39, -1, -1, 249, -1, 213, 249,
01822 -1, -1, 267, -1, 53, 793, 794, 795, -1, 261,
01823 793, 794, 795, -1, 261, 793, 322, 796, 801, -1,
01824 267, 801, -1, 249, 267, 801, -1, 760, -1, -1,
01825 803, -1, -1, 333, 809, 804, 517, -1, -1, 803,
01826 -1, 806, -1, -1, 807, 808, -1, 633, 637, -1,
01827 639, -1, -1, 94, -1, 9, -1, 271, 589, -1,
01828 384, 519, 385, -1, 810, -1, -1, 811, 333, 809,
01829 812, 810, -1, 814, 811, 815, -1, -1, -1
01830 };
01831
01832
01833 static const yytype_uint16 yyrline[] =
01834 {
01835 0, 807, 807, 819, 823, 824, 829, 830, 831, 832,
01836 833, 834, 835, 836, 837, 838, 839, 840, 841, 842,
01837 843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
01838 853, 854, 860, 865, 864, 879, 878, 892, 891, 902,
01839 905, 904, 909, 911, 913, 918, 920, 919, 925, 924,
01840 932, 942, 952, 973, 951, 987, 988, 989, 990, 991,
01841 995, 996, 997, 1001, 1006, 1010, 1014, 1018, 1022, 1026,
01842 1033, 1034, 1038, 1039, 1042, 1044, 1048, 1049, 1053, 1054,
01843 1055, 1058, 1061, 1065, 1069, 1073, 1077, 1081, 1085, 1089,
01844 1093, 1097, 1101, 1105, 1106, 1110, 1111, 1115, 1116, 1120,
01845 1125, 1135, 1142, 1143, 1144, 1145, 1146, 1147, 1151, 1158,
01846 1159, 1163, 1164, 1168, 1169, 1173, 1174, 1181, 1185, 1190,
01847 1194, 1198, 1204, 1206, 1210, 1214, 1215, 1219, 1224, 1223,
01848 1249, 1253, 1257, 1264, 1268, 1272, 1276, 1285, 1284, 1295,
01849 1299, 1304, 1311, 1318, 1322, 1326, 1330, 1334, 1338, 1342,
01850 1346, 1353, 1355, 1357, 1362, 1366, 1373, 1377, 1381, 1389,
01851 1390, 1392, 1397, 1405, 1406, 1410, 1411, 1412, 1416, 1417,
01852 1421, 1422, 1427, 1428, 1430, 1435, 1439, 1451, 1455, 1459,
01853 1466, 1467, 1469, 1476, 1481, 1482, 1484, 1491, 1496, 1497,
01854 1501, 1502, 1506, 1508, 1515, 1528, 1533, 1534, 1538, 1539,
01855 1543, 1545, 1549, 1553, 1560, 1565, 1566, 1570, 1571, 1575,
01856 1577, 1584, 1591, 1595, 1600, 1601, 1612, 1623, 1624, 1628,
01857 1629, 1632, 1634, 1638, 1646, 1647, 1651, 1653, 1662, 1663,
01858 1665, 1667, 1673, 1677, 1682, 1687, 1693, 1702, 1703, 1704,
01859 1705, 1706, 1710, 1714, 1715, 1719, 1720, 1724, 1725, 1729,
01860 1730, 1731, 1735, 1736, 1740, 1752, 1753, 1757, 1758, 1762,
01861 1763, 1767, 1771, 1772, 1774, 1779, 1780, 1784, 1785, 1789,
01862 1790, 1802, 1803, 1807, 1808, 1812, 1813, 1821, 1820, 1837,
01863 1836, 1853, 1855, 1861, 1867, 1872, 1875, 1879, 1886, 1887,
01864 1891, 1901, 1902, 1908, 1916, 1915, 1923, 1936, 1922, 1950,
01865 1960, 1964, 1968, 1972, 1982, 1991, 1998, 2005, 2031, 2041,
01866 2047, 2053, 2062, 2063, 2067, 2068, 2072, 2073, 2077, 2084,
01867 2085, 2086, 2090, 2097, 2098, 2106, 2105, 2115, 2114, 2124,
01868 2123, 2132, 2133, 2137, 2154, 2162, 2163, 2167, 2172, 2177,
01869 2182, 2187, 2186, 2205, 2212, 2205, 2219, 2220, 2221, 2222,
01870 2223, 2227, 2236, 2238, 2243, 2244, 2248, 2258, 2271, 2281,
01871 2295, 2296, 2302, 2304, 2306, 2314, 2316, 2320, 2328, 2329,
01872 2330, 2338, 2342, 2361, 2368, 2375, 2376, 2377, 2378, 2379,
01873 2383, 2384, 2389, 2438, 2443, 2484, 2486, 2490, 2494, 2498,
01874 2502, 2506, 2510, 2514, 2518, 2522, 2526, 2530, 2534, 2538,
01875 2542, 2547, 2551, 2557, 2561, 2569, 2573, 2579, 2583, 2587,
01876 2597, 2608, 2612, 2616, 2620, 2624, 2628, 2632, 2636, 2640,
01877 2644, 2648, 2652, 2656, 2660, 2664, 2668, 2672, 2673, 2674,
01878 2675, 2676, 2677, 2681, 2682, 2686, 2687, 2688, 2689, 2690,
01879 2691, 2696, 2697, 2698, 2702, 2706, 2707, 2711, 2715, 2719,
01880 2720, 2725, 2730, 2734, 2735, 2740, 2747, 2749, 2756, 2761,
01881 2766, 2778, 2780, 2788, 2790, 2792, 2794, 2796, 2804, 2811,
01882 2813, 2815, 2817, 2819, 2821, 2823, 2825, 2827, 2829, 2831,
01883 2833, 2835, 2837, 2839, 2847, 2863, 2868, 2870, 2875, 2877,
01884 2879, 2881, 2886, 2891, 2893, 2898, 2900, 2911, 2921, 2932,
01885 2942, 2947, 2952, 2954, 2956, 2961, 2974, 2976, 2978, 2986,
01886 2994, 3009, 3013, 3028, 3030, 3032, 3034, 3036, 3038, 3040,
01887 3049, 3057, 3065, 3087, 3086, 3129, 3130, 3134, 3139, 3147,
01888 3167, 3169, 3171, 3173, 3176, 3178, 3175, 3181, 3188, 3190,
01889 3192, 3194, 3196, 3198, 3200, 3202, 3204, 3207, 3206, 3222,
01890 3221, 3230, 3235, 3240, 3254, 3255, 3260, 3263, 3268, 3271,
01891 3281, 3280, 3296, 3298, 3300, 3302, 3304, 3306, 3308, 3310,
01892 3312, 3314, 3316, 3318, 3323, 3328, 3336, 3337, 3341, 3342,
01893 3346, 3352, 3363, 3364, 3372, 3383, 3384, 3390, 3391, 3411,
01894 3416, 3422, 3420, 3437, 3435, 3452, 3450, 3457, 3466, 3464,
01895 3481, 3480, 3490, 3501, 3499, 3516, 3515, 3525, 3535, 3536,
01896 3537, 3553, 3553, 3564, 3602, 3643, 3647, 3652, 3644, 3664,
01897 3683, 3690, 3683, 3699, 3698, 3719, 3733, 3719, 3740, 3744,
01898 3762, 3763, 3768, 3771, 3772, 3773, 3777, 3778, 3783, 3782,
01899 3788, 3787, 3795, 3796, 3799, 3801, 3801, 3805, 3805, 3810,
01900 3811, 3815, 3817, 3822, 3823, 3827, 3832, 3840, 3841, 3842,
01901 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3855,
01902 3856, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882,
01903 3885, 3887, 3891, 3892, 3898, 3900, 3904, 3906, 3905, 3919,
01904 3922, 3921, 3936, 3942, 3952, 3954, 3958, 3960, 3965, 3966,
01905 3990, 3994, 3995, 3999, 4010, 4012, 4017, 4016, 4025, 4029,
01906 4036, 4037, 4038, 4043, 4048, 4052, 4053, 4057, 4061, 4068,
01907 4075, 4085, 4086, 4087, 4092, 4095, 4104, 4105, 4106, 4107,
01908 4108, 4109, 4113, 4114, 4115, 4116, 4117, 4121, 4121, 4130,
01909 4131, 4135, 4154, 4153, 4160, 4159, 4166, 4175, 4184, 4188,
01910 4195, 4195, 4211, 4221, 4222, 4226, 4234, 4235, 4239, 4240,
01911 4248, 4255, 4259, 4265, 4266, 4270, 4271, 4275, 4276, 4285,
01912 4293, 4284, 4303, 4309, 4302, 4318, 4319, 4323, 4331, 4332,
01913 4333, 4335, 4334, 4343, 4344, 4348, 4349, 4351, 4350, 4356,
01914 4355, 4363, 4364, 4368, 4369, 4373, 4381, 4382, 4386, 4387,
01915 4392, 4391, 4402, 4403, 4407, 4411, 4418, 4419, 4422, 4424,
01916 4424, 4432, 4431, 4458, 4459, 4463, 4471, 4472, 4476, 4487,
01917 4486, 4499, 4500, 4504, 4512, 4514, 4521, 4520, 4532, 4538,
01918 4544, 4550, 4556, 4562, 4567, 4571, 4575, 4579, 4583, 4588,
01919 4593, 4598, 4603, 4608, 4615, 4616, 4620, 4621, 4624, 4626,
01920 4630, 4641, 4640, 4649, 4648, 4657, 4658, 4662, 4663, 4667,
01921 4668, 4669, 4680, 4679, 4688, 4689, 4694, 4693, 4699, 4704,
01922 4709, 4714, 4722, 4723, 4729, 4736, 4737, 4738, 4744, 4755,
01923 4763, 4770, 4775, 4754, 4790, 4793, 4794, 4801, 4802, 4803,
01924 4807, 4808, 4809, 4810, 4811, 4812, 4815, 4817, 4821, 4822,
01925 4826, 4831, 4837, 4842, 4849, 4851, 4855, 4856, 4860, 4865,
01926 4872, 4874, 4882, 4883, 4887, 4888, 4889, 4893, 4895, 4900,
01927 4901, 4906, 4907, 4913, 4917, 4924, 4928, 4937, 4949, 4950,
01928 4951, 4959, 4960, 4961, 4966, 4967, 4968, 4969, 4970, 4971,
01929 4975, 4976, 4977, 4978, 4979, 4984, 4985, 4993, 4998, 5002,
01930 5009, 5010, 5015, 5016, 5017, 5021, 5026, 5031, 5033, 5041,
01931 5056, 5057, 5061, 5065, 5072, 5076, 5080, 5084, 5088, 5092,
01932 5099, 5103, 5110, 5117, 5124, 5128, 5132, 5139, 5143, 5147,
01933 5151, 5166, 5173, 5180, 5187, 5188, 5195, 5196, 5200, 5201,
01934 5205, 5206, 5207, 5212, 5213, 5214, 5215, 5216, 5217, 5218,
01935 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228,
01936 5229, 5230, 5231, 5232, 5242, 5243, 5244, 5245, 5246, 5247,
01937 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257,
01938 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267,
01939 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277,
01940 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287,
01941 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297,
01942 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307,
01943 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317,
01944 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327,
01945 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337,
01946 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347,
01947 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357,
01948 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367,
01949 5368, 5375, 5374, 5383, 5384, 5388, 5389, 5393, 5393, 5399,
01950 5400, 5401, 5402, 5406, 5407, 5411, 5412, 5413, 5414, 5418,
01951 5419, 5420, 5421, 5425, 5426, 5430, 5441, 5449, 5453, 5460,
01952 5461, 5462, 5466, 5470, 5474, 5489, 5490, 5491, 5492, 5496,
01953 5497, 5498, 5499, 5500, 5504, 5505, 5510, 5509, 5519, 5518,
01954 5526, 5527, 5532, 5533, 5534, 5539, 5540, 5541, 5545, 5546,
01955 5550, 5557, 5561, 5568, 5575, 5582, 5591, 5592, 5597, 5596,
01956 5612, 5613, 5614, 5618, 5618, 5639, 5640, 5644, 5645, 5646,
01957 5650, 5654, 5661, 5664, 5662, 5677, 5684, 5703
01958 };
01959 #endif
01960
01961 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01962
01963
01964 static const char *const yytname[] =
01965 {
01966 "$end", "error", "$undefined", "ABORT_SYM", "ACTION", "ADDDATE_SYM",
01967 "ADD_SYM", "AFTER_SYM", "AGGREGATE_SYM", "ALL", "ALTER_SYM",
01968 "ANALYZE_SYM", "AND_SYM", "ANY_SYM", "AS", "ASC", "ASENSITIVE_SYM",
01969 "AT_SYM", "AUTO_INC", "AVG_SYM", "BEFORE_SYM", "BEGIN_SYM",
01970 "BETWEEN_SYM", "BIGINT_SYM", "BINARY", "BIN_NUM", "BIT_SYM", "BLOB_SYM",
01971 "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", "BY", "CALL_SYM",
01972 "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", "CATALOG_SYM",
01973 "CHAIN_SYM", "CHANGE_SYM", "CHARSET", "CHAR_SYM", "CHECKSUM_SYM",
01974 "CHECK_SYM", "CLOSE_SYM", "COALESCE", "COLLATE_SYM", "COLLATION_SYM",
01975 "COLUMNS", "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM",
01976 "COMPACT_SYM", "COMPRESSED_SYM", "CONCURRENT", "CONDITION_SYM",
01977 "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT", "CONTAINS_SYM",
01978 "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE",
01979 "CURRENT_USER", "CURSOR_SYM", "DATABASE", "DATABASES", "DATA_SYM",
01980 "DATETIME_SYM", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL", "DATE_SYM",
01981 "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM",
01982 "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", "DECIMAL_NUM",
01983 "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DEFINER", "DELETE_SYM", "DESC",
01984 "DESCRIBE", "DETERMINISTIC_SYM", "DISABLE_SYM", "DISCARD", "DISTINCT",
01985 "DIV_SYM", "DOUBLE_SYM", "DO_SYM", "DROP", "DUMPFILE", "DUPLICATE_SYM",
01986 "DYNAMIC_SYM", "EACH_SYM", "ELSE", "ENABLE_SYM", "ENCLOSED", "END",
01987 "ENDS_SYM", "END_OF_INPUT", "ENGINE_SYM", "ENUM_SYM", "EQUAL_SYM",
01988 "ERRORS", "ESCAPED", "ESCAPE_SYM", "EXCLUSIVE_SYM", "EXECUTE_SYM",
01989 "EXISTS", "EXTENDED_SYM", "EXTRACT_SYM", "FALSE_SYM", "FILE_SYM",
01990 "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FLUSH_SYM", "FORCE_SYM",
01991 "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
01992 "GE", "GLOBAL_SYM", "GROUP_CONCAT_SYM", "GROUP_SYM", "HASH_SYM",
01993 "HAVING", "HEX_NUM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
01994 "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENTITY_SYM",
01995 "IDENT_QUOTED", "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM",
01996 "INFILE", "INNER_SYM", "INOUT_SYM", "INSENSITIVE_SYM", "INSERT",
01997 "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER", "IN_SYM", "IS",
01998 "ISOLATION", "ITERATE_SYM", "IPV6_SYM", "JOIN_SYM", "KEYS",
01999 "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LAST_SYM", "LE", "LEADING",
02000 "LEFT", "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LIMIT", "LINES", "LOAD",
02001 "LOCAL_SYM", "LOCKS_SYM", "LOCK_SYM", "LOGS_SYM", "LONG_NUM", "LONG_SYM",
02002 "MATCH", "MAX_SYM", "MAX_VALUE_SYM", "MEDIUM_SYM", "MERGE_SYM",
02003 "MICROSECOND_SYM", "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM",
02004 "MINUTE_SYM", "MIN_SYM", "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM",
02005 "MOD_SYM", "MONTH_SYM", "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM",
02006 "NATURAL", "NE", "NEW_SYM", "NEXT_SYM", "NONE_SYM", "NOT_SYM", "NOW_SYM",
02007 "NO_SYM", "NULL_SYM", "NUM", "NUMERIC_SYM", "OFFLINE_SYM", "OFFSET_SYM",
02008 "ON", "ONE_SHOT_SYM", "ONE_SYM", "ONLINE_SYM", "OPEN_SYM", "OPTIMIZE",
02009 "OPTION", "OPTIONALLY", "ORDER_SYM", "OR_SYM", "OUTER", "OUTFILE",
02010 "OUT_SYM", "PARTIAL", "POSITION_SYM", "PRECISION", "PREV_SYM",
02011 "PRIMARY_SYM", "PROCESS", "PROCESSLIST_SYM", "QUARTER_SYM", "QUERY_SYM",
02012 "RANGE_SYM", "READS_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL",
02013 "REDUNDANT_SYM", "REFERENCES", "REGEXP_SYM", "RELEASE_SYM", "RENAME",
02014 "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE", "REPLICATE", "REPLICATION",
02015 "RESTRICT", "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT",
02016 "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM",
02017 "ROW_FORMAT_SYM", "ROW_SYM", "SAVEPOINT_SYM", "SECOND_MICROSECOND_SYM",
02018 "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM", "SENSITIVE_SYM",
02019 "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM", "SERVER_SYM",
02020 "SESSION_SYM", "SET_SYM", "SET_VAR", "SHARE_SYM", "SHOW", "SIGNED_SYM",
02021 "SIMPLE_SYM", "SNAPSHOT_SYM", "SPECIFIC_SYM", "SQLEXCEPTION_SYM",
02022 "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT",
02023 "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT", "SQL_SYM", "STARTING",
02024 "START_SYM", "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM",
02025 "STORED_SYM", "STRAIGHT_JOIN", "STRING_SYM", "SUBDATE_SYM",
02026 "SUBJECT_SYM", "SUBSTRING", "SUM_SYM", "SUSPEND_SYM", "SYSDATE",
02027 "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
02028 "TEMPORARY_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM", "THEN_SYM",
02029 "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIMESTAMP_SYM", "TIME_SYM", "TO_SYM",
02030 "TRAILING", "TRANSACTION_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM",
02031 "TYPE_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDOFILE_SYM",
02032 "UNDO_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", "UNLOCK_SYM",
02033 "UNSIGNED_SYM", "UPDATE_SYM", "USAGE", "USER", "USE_SYM", "USING",
02034 "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UTF8_SYM", "UUID_SYM", "VALUES",
02035 "VALUE_SYM", "VARBINARY", "VARCHAR_SYM", "VARIABLES", "VARIANCE_SYM",
02036 "VARYING", "VAR_SAMP_SYM", "WAIT_SYM", "WARNINGS", "WEEK_SYM",
02037 "WHEN_SYM", "WHERE", "WITH", "WITH_ROLLUP_SYM", "WORK_SYM", "WRITE_SYM",
02038 "XOR", "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL_SYM", "'='", "LESS_THAN",
02039 "GREATER_THAN", "CONCAT", "'|'", "'&'", "SHIFT_RIGHT", "SHIFT_LEFT",
02040 "'-'", "'+'", "'*'", "'/'", "'%'", "'^'", "'~'", "UMINUS", "'('", "')'",
02041 "'{'", "'}'", "','", "'.'", "'@'", "$accept", "query", "verb_clause",
02042 "statement", "create", "$@1", "$@2", "$@3", "create_table_definition",
02043 "$@4", "create_select_as", "$@5", "$@6", "create_like", "create_select",
02044 "stored_select", "$@7", "$@8", "opt_create_database_options",
02045 "opt_database_custom_options", "custom_database_option",
02046 "opt_table_options", "opt_if_not_exists", "opt_create_table_options",
02047 "create_table_options_space_separated", "create_table_options",
02048 "create_table_option", "custom_engine_option", "charset",
02049 "charset_name_or_default", "default_charset", "default_collation",
02050 "default_collation_schema", "row_format", "row_format_or_text",
02051 "opt_select_from", "field_list", "field_list_item", "column_def",
02052 "key_def", "opt_check_constraint", "check_constraint", "opt_constraint",
02053 "constraint", "field_spec", "$@9", "field_def", "$@10", "varchar",
02054 "int_type", "real_type", "float_options", "precision", "opt_len",
02055 "opt_field_number_signed", "ignored_field_number_length", "opt_zerofill",
02056 "opt_precision", "opt_attribute_not_null", "opt_attribute_index",
02057 "opt_attribute", "opt_attribute_boolean", "opt_attribute_string",
02058 "opt_attribute_list_string", "attribute_string", "opt_attribute_number",
02059 "opt_attribute_list_integer", "attribute_integer",
02060 "opt_attribute_timestamp", "opt_attribute_list_timestamp",
02061 "attribute_timestamp", "opt_attribute_comment", "collation_name",
02062 "collation_name_or_default", "opt_default", "opt_primary", "references",
02063 "opt_ref_list", "ref_list", "opt_match_clause", "opt_on_update_delete",
02064 "delete_option", "key_type", "constraint_key_type", "key_or_index",
02065 "opt_key_or_index", "keys_or_index", "opt_unique", "init_key_options",
02066 "key_alg", "key_options", "key_opts", "key_using_alg", "key_opt",
02067 "btree_or_rtree", "key_list", "key_part", "opt_ident", "opt_component",
02068 "string_list", "alter", "$@11", "$@12", "alter_commands", "build_method",
02069 "alter_list", "add_column", "alter_list_item", "$@13", "$@14", "$@15",
02070 "opt_column", "opt_ignore", "opt_place", "opt_to", "start",
02071 "start_transaction_opts", "analyze", "$@16", "check", "$@17", "rename",
02072 "$@18", "table_to_table_list", "table_to_table", "select", "select_init",
02073 "select_paren", "select_paren_derived", "select_init2", "$@19",
02074 "select_part2", "$@20", "$@21", "select_into", "select_from",
02075 "select_options", "select_option_list", "select_option_distinct_or_all",
02076 "select_option_small_or_big", "select_option", "select_lock_type",
02077 "select_item_list", "select_item", "remember_name", "remember_end",
02078 "select_alias", "optional_braces", "expr", "bool_pri", "predicate",
02079 "bit_expr", "comp_op", "all_or_any", "simple_expr",
02080 "function_call_keyword", "function_call_nonkeyword",
02081 "function_call_conflict", "function_call_generic", "@22",
02082 "opt_udf_expr_list", "udf_expr_list", "udf_expr", "sum_expr", "$@23",
02083 "$@24", "$@25", "variable", "$@26", "variable_aux", "opt_distinct",
02084 "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "$@27",
02085 "cast_type", "expr_list", "opt_expr", "opt_else", "when_list",
02086 "table_ref", "join_table_list", "esc_table_ref", "derived_table_list",
02087 "join_table", "$@28", "$@29", "$@30", "$@31", "$@32", "$@33", "$@34",
02088 "normal_join", "table_factor", "$@35", "select_derived_union", "$@36",
02089 "$@37", "select_init2_derived", "select_part2_derived", "$@38", "$@39",
02090 "select_derived", "$@40", "select_derived2", "$@41", "$@42",
02091 "get_select_lex", "select_derived_init", "opt_outer",
02092 "index_hint_clause", "index_hint_type", "index_hint_definition", "$@43",
02093 "$@44", "index_hints_list", "opt_index_hints_list", "$@45",
02094 "opt_key_definition", "$@46", "opt_key_usage_list", "key_usage_element",
02095 "key_usage_list", "using_list", "interval", "interval_time_stamp",
02096 "interval_time_st", "table_alias", "opt_table_alias", "opt_all",
02097 "where_clause", "$@47", "having_clause", "$@48", "opt_escape",
02098 "group_clause", "group_list", "olap_opt", "alter_order_clause",
02099 "alter_order_list", "alter_order_item", "opt_order_clause",
02100 "order_clause", "$@49", "order_list", "order_dir",
02101 "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
02102 "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
02103 "ulonglong_num", "select_var_list_init", "$@50", "select_var_list",
02104 "select_var_ident", "into", "$@51", "into_destination", "$@52", "drop",
02105 "$@53", "table_list", "table_name", "if_exists", "opt_temporary",
02106 "execute", "execute_var_or_string", "opt_status", "opt_concurrent",
02107 "opt_wait", "insert", "$@54", "$@55", "replace", "$@56", "$@57",
02108 "insert2", "insert_table", "insert_field_spec", "$@58", "fields",
02109 "insert_values", "$@59", "$@60", "values_list", "ident_eq_list",
02110 "ident_eq_value", "equal", "opt_equal", "no_braces", "$@61",
02111 "opt_values", "values", "expr_or_default", "opt_insert_update", "$@62",
02112 "update", "$@63", "update_list", "update_elem", "insert_update_list",
02113 "insert_update_elem", "delete", "$@64", "opt_delete_option", "truncate",
02114 "opt_table_sym", "show", "$@65", "show_param", "opt_db", "from_or_in",
02115 "show_wild", "describe", "$@66", "$@67", "describe_command",
02116 "opt_extended_describe", "opt_describe_column", "flush", "$@68",
02117 "flush_options", "flush_option", "$@69", "opt_table_list", "kill",
02118 "kill_option", "use", "load", "$@70", "$@71", "$@72", "$@73",
02119 "data_file", "load_data_lock", "opt_duplicate", "opt_duplicate_as",
02120 "opt_field_term", "field_term_list", "field_term", "opt_line_term",
02121 "line_term_list", "line_term", "opt_ignore_lines", "lines_or_rows",
02122 "opt_field_or_var_spec", "fields_or_vars", "field_or_var",
02123 "opt_load_data_set_spec", "text_literal", "text_string",
02124 "signed_literal", "literal", "integer_literal", "boolean_literal",
02125 "date_literal", "NUM_literal", "insert_ident", "table_wild",
02126 "order_ident", "simple_ident", "simple_ident_q", "field_ident",
02127 "table_ident", "schema_name", "catalog_name", "IDENT_sys",
02128 "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
02129 "ident", "ident_or_text", "engine_option_value",
02130 "keyword_exception_for_variable", "keyword", "keyword_sp", "set", "$@74",
02131 "opt_option", "option_value_list", "option_type_value", "$@75",
02132 "option_type", "option_type2", "opt_var_type", "opt_var_ident_type",
02133 "ext_option_value", "sys_option_value", "option_value",
02134 "user_variable_ident", "internal_variable_ident",
02135 "internal_variable_name", "isolation_types", "set_expr_or_default",
02136 "table_or_tables", "unlock", "$@76", "begin", "$@77", "opt_work",
02137 "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
02138 "savepoint", "release", "savepoint_ident", "union_clause", "union_list",
02139 "$@78", "union_opt", "union_order_or_limit", "$@79", "order_or_limit",
02140 "union_option", "query_specification", "query_expression_body", "$@80",
02141 "subselect", "subselect_start", "subselect_end", 0
02142 };
02143 #endif
02144
02145 # ifdef YYPRINT
02146
02147
02148 static const yytype_uint16 yytoknum[] =
02149 {
02150 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
02151 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
02152 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
02153 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
02154 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
02155 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
02156 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
02157 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
02158 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
02159 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
02160 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
02161 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
02162 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
02163 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
02164 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
02165 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
02166 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
02167 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
02168 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
02169 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
02170 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
02171 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
02172 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
02173 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
02174 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
02175 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
02176 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
02177 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
02178 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
02179 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
02180 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
02181 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
02182 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
02183 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
02184 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
02185 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
02186 615, 616, 617, 618, 619, 620, 621, 622, 61, 623,
02187 624, 625, 124, 38, 626, 627, 45, 43, 42, 47,
02188 37, 94, 126, 628, 40, 41, 123, 125, 44, 46,
02189 64
02190 };
02191 # endif
02192
02193
02194 static const yytype_uint16 yyr1[] =
02195 {
02196 0, 391, 392, 392, 393, 393, 394, 394, 394, 394,
02197 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
02198 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
02199 394, 394, 395, 396, 395, 397, 395, 398, 395, 399,
02200 400, 399, 399, 399, 399, 401, 402, 401, 403, 401,
02201 404, 405, 407, 408, 406, 409, 409, 409, 409, 409,
02202 410, 410, 410, 411, 411, 411, 411, 411, 411, 411,
02203 412, 412, 413, 413, 414, 414, 415, 415, 416, 416,
02204 416, 417, 418, 418, 418, 418, 418, 418, 418, 418,
02205 418, 418, 418, 418, 418, 419, 419, 420, 420, 421,
02206 422, 423, 424, 424, 424, 424, 424, 424, 425, 426,
02207 426, 427, 427, 428, 428, 429, 429, 430, 430, 430,
02208 430, 430, 431, 431, 432, 433, 433, 434, 436, 435,
02209 437, 437, 437, 437, 437, 437, 437, 438, 437, 437,
02210 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
02211 437, 439, 439, 439, 440, 440, 441, 441, 441, 442,
02212 442, 442, 443, 444, 444, 445, 445, 445, 446, 446,
02213 447, 447, 448, 448, 448, 449, 449, 450, 450, 450,
02214 451, 451, 451, 451, 452, 452, 452, 452, 453, 453,
02215 454, 454, 455, 455, 455, 455, 456, 456, 457, 457,
02216 458, 458, 458, 458, 458, 459, 459, 460, 460, 461,
02217 461, 461, 461, 461, 462, 462, 463, 464, 464, 465,
02218 465, 466, 466, 467, 468, 468, 469, 469, 470, 470,
02219 470, 470, 471, 471, 471, 471, 471, 472, 472, 472,
02220 472, 472, 473, 474, 474, 475, 475, 476, 476, 477,
02221 477, 477, 478, 478, 479, 480, 480, 481, 481, 482,
02222 482, 483, 484, 484, 484, 485, 485, 486, 486, 487,
02223 487, 488, 488, 489, 489, 490, 490, 492, 491, 493,
02224 491, 494, 494, 494, 494, 495, 495, 495, 496, 496,
02225 497, 498, 498, 498, 499, 498, 500, 501, 498, 498,
02226 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
02227 498, 498, 502, 502, 503, 503, 504, 504, 504, 505,
02228 505, 505, 506, 507, 507, 509, 508, 511, 510, 513,
02229 512, 514, 514, 515, 516, 517, 517, 518, 518, 519,
02230 519, 521, 520, 523, 524, 522, 525, 525, 525, 525,
02231 525, 526, 527, 527, 528, 528, 529, 529, 530, 530,
02232 531, 531, 531, 531, 531, 532, 532, 532, 533, 533,
02233 533, 534, 534, 535, 536, 537, 537, 537, 537, 537,
02234 538, 538, 539, 539, 539, 539, 539, 539, 539, 539,
02235 539, 539, 539, 540, 540, 540, 540, 540, 540, 541,
02236 541, 541, 541, 541, 541, 541, 541, 541, 541, 541,
02237 541, 541, 542, 542, 542, 542, 542, 542, 542, 542,
02238 542, 542, 542, 542, 542, 542, 542, 543, 543, 543,
02239 543, 543, 543, 544, 544, 545, 545, 545, 545, 545,
02240 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
02241 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
02242 545, 546, 546, 546, 546, 546, 546, 546, 546, 546,
02243 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
02244 546, 546, 546, 546, 546, 547, 547, 547, 547, 547,
02245 547, 547, 547, 547, 547, 547, 547, 547, 547, 547,
02246 547, 547, 547, 547, 547, 547, 548, 548, 548, 548,
02247 548, 548, 548, 548, 548, 548, 548, 548, 548, 548,
02248 548, 548, 548, 550, 549, 551, 551, 552, 552, 553,
02249 554, 554, 554, 554, 555, 556, 554, 554, 554, 554,
02250 554, 554, 554, 554, 554, 554, 554, 557, 554, 559,
02251 558, 560, 560, 560, 561, 561, 562, 562, 563, 563,
02252 565, 564, 566, 566, 566, 566, 566, 566, 566, 566,
02253 566, 566, 566, 566, 567, 567, 568, 568, 569, 569,
02254 570, 570, 571, 571, 572, 573, 573, 574, 574, 575,
02255 575, 576, 575, 577, 575, 578, 575, 575, 579, 575,
02256 580, 575, 575, 581, 575, 582, 575, 575, 583, 583,
02257 583, 585, 584, 584, 584, 586, 587, 588, 586, 589,
02258 591, 592, 590, 594, 593, 596, 597, 595, 598, 599,
02259 600, 600, 601, 601, 601, 601, 602, 602, 604, 603,
02260 605, 603, 606, 606, 607, 608, 607, 610, 609, 611,
02261 611, 612, 612, 613, 613, 614, 614, 615, 615, 615,
02262 615, 615, 615, 615, 615, 615, 615, 615, 615, 616,
02263 616, 617, 617, 617, 617, 617, 617, 617, 617, 617,
02264 618, 618, 619, 619, 620, 620, 621, 622, 621, 623,
02265 624, 623, 625, 625, 626, 626, 627, 627, 628, 628,
02266 629, 630, 630, 631, 632, 632, 634, 633, 635, 635,
02267 636, 636, 636, 637, 637, 638, 638, 639, 640, 640,
02268 640, 641, 641, 641, 642, 642, 643, 643, 643, 643,
02269 643, 643, 644, 644, 644, 644, 644, 646, 645, 647,
02270 647, 648, 650, 649, 652, 651, 651, 651, 653, 653,
02271 654, 653, 653, 655, 655, 656, 657, 657, 658, 658,
02272 659, 660, 660, 661, 661, 662, 662, 663, 663, 665,
02273 666, 664, 668, 669, 667, 670, 670, 671, 672, 672,
02274 672, 673, 672, 674, 674, 675, 675, 676, 675, 677,
02275 675, 678, 678, 679, 679, 680, 681, 681, 682, 682,
02276 684, 683, 685, 685, 686, 686, 687, 687, 688, 689,
02277 688, 691, 690, 692, 692, 693, 694, 694, 695, 697,
02278 696, 698, 698, 699, 700, 700, 702, 701, 703, 703,
02279 703, 703, 703, 703, 703, 703, 703, 703, 703, 703,
02280 703, 703, 703, 703, 704, 704, 705, 705, 706, 706,
02281 706, 708, 707, 709, 707, 710, 710, 711, 711, 712,
02282 712, 712, 714, 713, 715, 715, 717, 716, 716, 716,
02283 716, 716, 718, 718, 719, 720, 720, 720, 721, 723,
02284 724, 725, 726, 722, 727, 728, 728, 729, 729, 729,
02285 730, 730, 730, 730, 730, 730, 731, 731, 732, 732,
02286 733, 733, 733, 733, 734, 734, 735, 735, 736, 736,
02287 737, 737, 738, 738, 739, 739, 739, 740, 740, 741,
02288 741, 742, 742, 743, 743, 744, 744, 744, 745, 745,
02289 745, 746, 746, 746, 746, 746, 746, 746, 746, 746,
02290 747, 747, 747, 747, 747, 747, 747, 748, 748, 748,
02291 749, 749, 749, 749, 749, 750, 750, 750, 750, 750,
02292 751, 751, 752, 752, 753, 754, 754, 755, 755, 755,
02293 756, 756, 756, 756, 757, 757, 757, 758, 759, 760,
02294 760, 761, 762, 763, 764, 764, 765, 765, 766, 766,
02295 767, 767, 767, 768, 768, 768, 768, 768, 768, 768,
02296 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
02297 768, 768, 768, 768, 769, 769, 769, 769, 769, 769,
02298 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02299 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02300 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02301 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02302 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02303 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02304 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02305 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02306 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02307 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02308 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02309 769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
02310 769, 771, 770, 772, 772, 773, 773, 775, 774, 776,
02311 776, 776, 776, 777, 777, 778, 778, 778, 778, 779,
02312 779, 779, 779, 780, 780, 781, 781, 782, 782, 783,
02313 783, 783, 784, 784, 785, 786, 786, 786, 786, 787,
02314 787, 787, 787, 787, 788, 788, 790, 789, 792, 791,
02315 793, 793, 794, 794, 794, 795, 795, 795, 796, 796,
02316 797, 798, 798, 799, 800, 801, 802, 802, 804, 803,
02317 805, 805, 805, 807, 806, 808, 808, 809, 809, 809,
02318 810, 810, 811, 812, 811, 813, 814, 815
02319 };
02320
02321
02322 static const yytype_uint8 yyr2[] =
02323 {
02324 0, 2, 1, 2, 1, 1, 1, 1, 1, 1,
02325 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02326 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02327 1, 1, 3, 0, 7, 0, 13, 0, 6, 5,
02328 0, 5, 4, 2, 2, 0, 0, 4, 0, 6,
02329 2, 1, 0, 0, 6, 0, 1, 2, 3, 1,
02330 1, 2, 3, 1, 3, 3, 2, 3, 3, 3,
02331 0, 1, 0, 3, 0, 1, 1, 2, 1, 2,
02332 3, 1, 3, 3, 3, 3, 3, 2, 3, 3,
02333 3, 3, 3, 1, 1, 2, 1, 1, 1, 4,
02334 4, 4, 1, 1, 1, 1, 1, 1, 1, 1,
02335 2, 1, 3, 1, 1, 2, 2, 7, 8, 8,
02336 2, 2, 0, 1, 2, 0, 1, 2, 0, 4,
02337 2, 5, 2, 2, 2, 5, 2, 0, 6, 5,
02338 2, 2, 2, 2, 3, 3, 3, 2, 2, 2,
02339 1, 2, 1, 1, 4, 4, 2, 2, 3, 0,
02340 3, 1, 5, 0, 3, 0, 1, 1, 0, 3,
02341 0, 1, 0, 3, 1, 1, 2, 2, 1, 2,
02342 0, 2, 3, 2, 0, 2, 3, 2, 0, 1,
02343 2, 1, 1, 2, 2, 1, 0, 1, 2, 1,
02344 1, 1, 3, 2, 1, 0, 1, 2, 1, 1,
02345 3, 2, 4, 1, 0, 2, 1, 1, 1, 0,
02346 1, 0, 1, 5, 0, 3, 3, 1, 0, 2,
02347 2, 2, 0, 3, 3, 6, 6, 1, 1, 2,
02348 2, 2, 1, 2, 2, 1, 1, 0, 1, 1,
02349 1, 1, 0, 1, 0, 1, 2, 0, 1, 1,
02350 2, 2, 1, 3, 2, 1, 1, 4, 2, 1,
02351 4, 0, 1, 0, 2, 1, 3, 0, 7, 0,
02352 5, 0, 2, 2, 1, 0, 1, 1, 1, 3,
02353 2, 3, 2, 4, 0, 6, 0, 0, 8, 3,
02354 4, 3, 3, 2, 2, 6, 5, 3, 3, 1,
02355 1, 1, 0, 1, 0, 1, 0, 2, 1, 0,
02356 1, 1, 3, 0, 3, 0, 4, 0, 4, 0,
02357 4, 1, 3, 3, 1, 2, 4, 2, 3, 2,
02358 3, 0, 3, 0, 0, 6, 2, 1, 1, 2,
02359 2, 7, 0, 1, 2, 1, 1, 1, 1, 1,
02360 1, 1, 1, 1, 1, 0, 2, 4, 3, 1,
02361 1, 3, 4, 0, 0, 0, 2, 2, 1, 1,
02362 0, 2, 3, 3, 3, 2, 3, 4, 3, 4,
02363 3, 4, 1, 3, 4, 3, 3, 6, 1, 5,
02364 6, 5, 7, 6, 8, 5, 6, 4, 5, 3,
02365 4, 1, 3, 3, 3, 3, 3, 3, 5, 5,
02366 3, 3, 3, 3, 3, 3, 1, 1, 1, 1,
02367 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02368 3, 1, 1, 1, 3, 2, 2, 2, 3, 3,
02369 5, 6, 4, 4, 2, 6, 5, 6, 4, 4,
02370 5, 4, 2, 4, 4, 4, 10, 6, 8, 6,
02371 4, 4, 6, 4, 4, 4, 7, 7, 7, 6,
02372 6, 6, 6, 3, 4, 6, 8, 2, 8, 8,
02373 6, 2, 4, 6, 6, 8, 8, 6, 8, 6,
02374 2, 4, 8, 8, 2, 2, 4, 4, 3, 3,
02375 5, 8, 5, 4, 6, 4, 6, 8, 6, 4,
02376 3, 3, 6, 0, 5, 0, 1, 1, 3, 4,
02377 4, 5, 5, 4, 0, 0, 7, 4, 5, 4,
02378 5, 4, 4, 4, 4, 4, 5, 0, 8, 0,
02379 3, 3, 1, 4, 0, 1, 0, 2, 0, 1,
02380 0, 3, 2, 1, 1, 2, 1, 1, 2, 2,
02381 1, 1, 1, 2, 1, 3, 0, 1, 0, 2,
02382 4, 5, 1, 1, 1, 1, 4, 1, 3, 3,
02383 3, 0, 6, 0, 6, 0, 8, 4, 0, 8,
02384 0, 10, 6, 0, 8, 0, 10, 6, 1, 2,
02385 2, 0, 4, 3, 5, 3, 0, 0, 8, 1,
02386 0, 0, 6, 0, 3, 0, 0, 5, 0, 1,
02387 0, 1, 0, 2, 3, 3, 1, 1, 0, 7,
02388 0, 7, 1, 2, 0, 0, 2, 0, 2, 0,
02389 1, 1, 1, 1, 3, 1, 3, 1, 1, 1,
02390 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02391 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02392 0, 1, 0, 2, 0, 1, 0, 0, 3, 0,
02393 0, 3, 2, 0, 0, 4, 4, 2, 0, 1,
02394 3, 3, 1, 2, 0, 1, 0, 4, 4, 2,
02395 0, 1, 1, 0, 1, 0, 1, 2, 1, 3,
02396 3, 1, 1, 1, 0, 2, 1, 1, 1, 1,
02397 1, 1, 1, 1, 1, 1, 1, 0, 2, 3,
02398 1, 2, 0, 3, 0, 5, 2, 1, 3, 5,
02399 0, 7, 4, 1, 3, 1, 0, 2, 0, 1,
02400 5, 1, 2, 0, 3, 0, 1, 0, 1, 0,
02401 0, 7, 0, 0, 5, 2, 1, 1, 1, 3,
02402 4, 0, 3, 3, 1, 2, 2, 0, 3, 0,
02403 5, 3, 1, 3, 1, 3, 1, 1, 0, 1,
02404 0, 4, 0, 1, 3, 1, 1, 1, 0, 0,
02405 6, 0, 9, 3, 1, 3, 3, 1, 3, 0,
02406 8, 0, 1, 3, 0, 1, 0, 3, 2, 3,
02407 3, 4, 5, 5, 5, 5, 2, 2, 3, 2,
02408 3, 1, 3, 4, 0, 2, 1, 1, 0, 2,
02409 2, 0, 4, 0, 4, 1, 1, 0, 1, 0,
02410 1, 1, 0, 3, 3, 1, 0, 3, 4, 1,
02411 1, 2, 0, 1, 3, 0, 1, 1, 2, 0,
02412 0, 0, 0, 18, 1, 0, 1, 0, 1, 1,
02413 0, 1, 1, 1, 2, 2, 0, 2, 2, 1,
02414 3, 4, 3, 3, 0, 2, 2, 1, 3, 3,
02415 0, 3, 1, 1, 0, 3, 2, 3, 1, 1,
02416 2, 0, 2, 1, 2, 1, 1, 1, 1, 2,
02417 2, 1, 1, 1, 1, 1, 1, 1, 2, 2,
02418 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
02419 1, 1, 1, 2, 2, 1, 1, 1, 1, 1,
02420 1, 1, 3, 5, 1, 1, 1, 3, 4, 5,
02421 1, 5, 3, 2, 1, 3, 2, 1, 1, 1,
02422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02430 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02431 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02432 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
02438 1, 0, 4, 0, 1, 1, 3, 0, 2, 1,
02439 1, 1, 1, 0, 1, 0, 1, 1, 1, 0,
02440 2, 2, 2, 1, 2, 4, 5, 4, 6, 1,
02441 1, 1, 1, 1, 1, 2, 2, 2, 1, 1,
02442 1, 1, 1, 1, 1, 1, 0, 3, 0, 3,
02443 0, 1, 0, 3, 2, 0, 1, 2, 0, 1,
02444 4, 4, 5, 2, 3, 1, 0, 1, 0, 4,
02445 0, 1, 1, 0, 2, 2, 1, 0, 1, 1,
02446 2, 3, 1, 0, 5, 3, 0, 0
02447 };
02448
02449
02450
02451
02452 static const yytype_uint16 yydefact[] =
02453 {
02454 0, 285, 0, 1188, 0, 1190, 285, 821, 855, 856,
02455 758, 2, 0, 862, 769, 875, 0, 0, 0, 772,
02456 1190, 0, 343, 1143, 826, 0, 824, 1186, 314, 0,
02457 0, 0, 0, 4, 10, 6, 27, 7, 8, 20,
02458 24, 334, 13, 14, 16, 21, 30, 11, 28, 26,
02459 12, 857, 15, 17, 31, 18, 25, 29, 5, 9,
02460 22, 23, 19, 0, 287, 286, 314, 1185, 1184, 325,
02461 1190, 327, 1191, 1192, 0, 72, 71, 0, 35, 822,
02462 0, 0, 756, 759, 0, 0, 979, 992, 980, 1171,
02463 991, 981, 990, 0, 763, 1173, 1170, 1172, 761, 1169,
02464 0, 314, 876, 877, 0, 884, 879, 0, 329, 0,
02465 1192, 1205, 1203, 335, 341, 352, 1144, 1141, 1155, 323,
02466 825, 0, 0, 315, 0, 1014, 1015, 1016, 1017, 1018,
02467 1019, 1020, 1021, 994, 1022, 1024, 1023, 1025, 1026, 1027,
02468 995, 996, 1028, 1029, 1030, 997, 1031, 998, 1032, 1033,
02469 1034, 1035, 1036, 999, 1037, 1039, 1038, 1040, 1041, 1042,
02470 1000, 1043, 1044, 1001, 1045, 1046, 1047, 1056, 1002, 1048,
02471 1050, 1049, 1051, 1052, 1053, 1054, 1058, 1059, 1060, 1003,
02472 1055, 1061, 1057, 1062, 1063, 1064, 1065, 1066, 1067, 1068,
02473 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
02474 1079, 1080, 1082, 1081, 1083, 1085, 1084, 1086, 1088, 1087,
02475 1089, 1004, 1090, 1091, 1092, 1093, 1094, 1005, 1095, 1096,
02476 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1006, 1104, 1105,
02477 1106, 1107, 1108, 1007, 1109, 1008, 1111, 1110, 1009, 1112,
02478 1114, 1010, 1113, 1115, 1011, 1116, 1012, 1117, 1118, 1119,
02479 1120, 1121, 1122, 1123, 1124, 1127, 1128, 1126, 1125, 1013,
02480 1129, 1130, 1131, 1132, 1134, 1133, 1136, 1135, 1137, 1138,
02481 1139, 1140, 878, 984, 977, 985, 993, 343, 0, 0,
02482 1, 3, 1054, 0, 853, 851, 0, 974, 279, 0,
02483 0, 1189, 0, 0, 1195, 32, 978, 0, 0, 72,
02484 252, 0, 748, 0, 0, 0, 756, 762, 0, 765,
02485 0, 869, 870, 1185, 863, 865, 866, 0, 1015, 1021,
02486 0, 937, 576, 0, 0, 0, 1028, 1029, 0, 0,
02487 380, 380, 0, 0, 0, 1041, 1042, 958, 0, 0,
02488 0, 0, 934, 959, 0, 936, 1064, 0, 0, 0,
02489 1069, 875, 0, 956, 0, 1079, 1080, 0, 0, 1083,
02490 0, 380, 933, 955, 0, 1099, 0, 0, 0, 1108,
02491 1109, 0, 0, 1118, 0, 0, 380, 982, 1127, 1128,
02492 0, 0, 935, 1013, 957, 1134, 380, 380, 1133, 0,
02493 0, 0, 0, 1140, 0, 0, 0, 1226, 0, 0,
02494 549, 874, 392, 398, 411, 426, 436, 437, 439, 438,
02495 443, 442, 931, 441, 932, 435, 966, 984, 923, 965,
02496 885, 1204, 0, 0, 777, 773, 776, 755, 1198, 1195,
02497 1206, 357, 356, 359, 361, 364, 358, 360, 373, 353,
02498 363, 362, 355, 1147, 0, 0, 0, 848, 713, 1156,
02499 251, 250, 249, 1157, 841, 1158, 844, 0, 0, 713,
02500 0, 827, 988, 989, 0, 0, 0, 322, 823, 1187,
02501 0, 337, 0, 1210, 976, 0, 859, 0, 219, 0,
02502 326, 753, 328, 1194, 0, 0, 1196, 1200, 0, 37,
02503 0, 253, 0, 819, 757, 752, 0, 0, 0, 766,
02504 767, 871, 0, 0, 872, 770, 0, 684, 454, 577,
02505 0, 0, 0, 0, 0, 0, 0, 684, 0, 487,
02506 462, 0, 0, 0, 0, 938, 0, 0, 0, 1226,
02507 0, 554, 0, 0, 0, 1226, 0, 0, 0, 0,
02508 684, 0, 0, 684, 0, 0, 385, 0, 491, 0,
02509 0, 0, 0, 0, 0, 0, 684, 684, 0, 0,
02510 684, 0, 500, 0, 0, 0, 939, 0, 0, 0,
02511 504, 505, 0, 0, 684, 684, 0, 0, 446, 445,
02512 447, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02513 0, 428, 0, 430, 432, 427, 431, 429, 0, 0,
02514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02515 0, 0, 0, 0, 0, 0, 0, 0, 924, 523,
02516 0, 886, 0, 330, 331, 0, 775, 0, 1199, 0,
02517 1201, 1217, 342, 1207, 370, 344, 369, 0, 354, 1142,
02518 1145, 1153, 846, 847, 0, 0, 72, 0, 0, 0,
02519 828, 0, 837, 714, 848, 0, 844, 848, 836, 0,
02520 839, 848, 848, 0, 0, 338, 1211, 336, 1212, 0,
02521 854, 927, 926, 852, 860, 925, 861, 975, 220, 280,
02522 0, 277, 0, 1193, 1197, 73, 55, 33, 0, 686,
02523 0, 749, 764, 768, 760, 0, 864, 873, 867, 0,
02524 0, 685, 684, 0, 560, 0, 578, 0, 509, 574,
02525 0, 0, 0, 0, 534, 0, 560, 381, 508, 0,
02526 0, 0, 0, 0, 0, 0, 658, 659, 660, 661,
02527 671, 662, 663, 664, 673, 678, 665, 666, 674, 675,
02528 676, 667, 677, 672, 668, 679, 0, 657, 555, 547,
02529 0, 0, 0, 0, 0, 521, 0, 0, 684, 0,
02530 0, 0, 684, 0, 0, 0, 0, 0, 0, 0,
02531 0, 0, 0, 0, 0, 0, 0, 0, 684, 0,
02532 0, 670, 0, 669, 0, 0, 0, 0, 0, 0,
02533 0, 483, 520, 0, 0, 0, 0, 0, 449, 0,
02534 448, 620, 0, 1222, 1227, 0, 0, 1159, 550, 552,
02535 384, 382, 383, 395, 388, 0, 393, 386, 390, 433,
02536 1018, 396, 0, 0, 423, 1226, 693, 424, 0, 0,
02537 0, 0, 409, 412, 413, 414, 415, 0, 417, 0,
02538 416, 420, 421, 422, 425, 986, 987, 440, 444, 373,
02539 967, 0, 0, 0, 52, 781, 0, 0, 0, 787,
02540 774, 778, 1202, 1219, 1218, 1208, 373, 704, 374, 374,
02541 965, 1147, 1150, 1151, 1154, 1152, 0, 1149, 1148, 1163,
02542 844, 0, 0, 840, 849, 850, 722, 723, 721, 717,
02543 718, 829, 845, 848, 830, 844, 838, 842, 324, 811,
02544 814, 0, 0, 713, 1216, 1214, 798, 219, 754, 0,
02545 0, 38, 59, 60, 56, 63, 74, 254, 687, 704,
02546 750, 868, 808, 0, 0, 530, 0, 0, 0, 0,
02547 0, 0, 461, 0, 506, 507, 0, 0, 533, 0,
02548 0, 0, 463, 464, 458, 767, 452, 0, 0, 465,
02549 0, 0, 0, 0, 0, 0, 0, 539, 513, 470,
02550 0, 537, 0, 471, 492, 0, 515, 0, 0, 0,
02551 0, 473, 543, 541, 0, 0, 0, 0, 545, 501,
02552 0, 0, 474, 0, 0, 0, 0, 0, 0, 0,
02553 475, 0, 459, 542, 544, 519, 0, 484, 0, 1220,
02554 619, 352, 620, 0, 0, 1217, 1225, 453, 968, 0,
02555 0, 0, 0, 0, 389, 394, 387, 391, 1226, 0,
02556 0, 0, 0, 407, 0, 1226, 693, 410, 0, 0,
02557 0, 0, 526, 527, 0, 983, 880, 332, 333, 352,
02558 0, 800, 785, 792, 786, 0, 0, 0, 784, 961,
02559 960, 1206, 0, 368, 611, 742, 365, 348, 715, 705,
02560 347, 375, 371, 0, 1146, 0, 1174, 0, 0, 1164,
02561 848, 0, 843, 0, 0, 831, 686, 0, 686, 797,
02562 796, 0, 706, 1215, 799, 0, 312, 312, 798, 312,
02563 798, 0, 0, 0, 0, 312, 0, 0, 0, 310,
02564 0, 312, 0, 319, 0, 0, 309, 219, 81, 93,
02565 94, 0, 278, 284, 0, 288, 311, 0, 380, 66,
02566 0, 0, 61, 0, 57, 0, 0, 125, 34, 219,
02567 890, 75, 78, 255, 0, 0, 724, 751, 0, 771,
02568 0, 0, 531, 561, 0, 579, 0, 456, 163, 563,
02569 163, 572, 570, 159, 566, 564, 571, 567, 0, 575,
02570 0, 535, 532, 0, 0, 510, 0, 558, 0, 0,
02571 0, 460, 512, 0, 540, 538, 0, 0, 0, 0,
02572 0, 0, 0, 0, 0, 0, 546, 0, 0, 0,
02573 0, 0, 0, 0, 0, 0, 0, 0, 450, 373,
02574 339, 0, 1221, 1223, 1160, 1161, 1162, 273, 551, 0,
02575 405, 401, 0, 399, 692, 0, 0, 0, 408, 419,
02576 418, 374, 524, 373, 969, 887, 373, 782, 794, 0,
02577 802, 0, 0, 779, 789, 0, 0, 788, 1209, 629,
02578 628, 0, 585, 686, 587, 584, 583, 582, 0, 628,
02579 737, 0, 0, 345, 350, 346, 716, 349, 0, 372,
02580 379, 378, 962, 967, 0, 0, 1159, 0, 832, 835,
02581 834, 720, 719, 833, 813, 704, 807, 806, 815, 0,
02582 218, 217, 101, 216, 313, 271, 246, 245, 292, 0,
02583 122, 271, 242, 290, 0, 0, 0, 0, 0, 380,
02584 87, 303, 282, 0, 0, 0, 0, 304, 0, 0,
02585 283, 0, 0, 321, 320, 0, 0, 0, 77, 96,
02586 0, 798, 798, 219, 125, 0, 316, 122, 128, 970,
02587 0, 67, 65, 64, 62, 58, 735, 736, 734, 732,
02588 733, 69, 68, 50, 0, 0, 51, 0, 111, 113,
02589 114, 43, 891, 893, 892, 44, 0, 219, 79, 0,
02590 256, 0, 688, 0, 820, 809, 0, 485, 580, 0,
02591 0, 562, 569, 0, 573, 161, 565, 568, 455, 457,
02592 0, 0, 0, 490, 556, 559, 0, 0, 467, 0,
02593 469, 514, 493, 516, 0, 472, 451, 0, 494, 0,
02594 499, 497, 0, 0, 0, 481, 0, 479, 0, 480,
02595 0, 482, 518, 522, 621, 340, 0, 0, 553, 397,
02596 0, 406, 403, 0, 400, 375, 528, 889, 888, 0,
02597 53, 0, 0, 0, 803, 805, 791, 1210, 780, 783,
02598 628, 611, 0, 0, 608, 630, 0, 630, 611, 611,
02599 694, 611, 680, 625, 0, 0, 747, 0, 743, 366,
02600 0, 377, 376, 0, 0, 1182, 1183, 1180, 1181, 1179,
02601 1165, 0, 0, 724, 964, 707, 710, 127, 272, 0,
02602 0, 0, 247, 121, 271, 120, 123, 254, 0, 84,
02603 294, 83, 308, 88, 271, 301, 302, 299, 82, 90,
02604 296, 700, 702, 710, 307, 86, 85, 102, 103, 104,
02605 105, 106, 107, 108, 89, 95, 0, 0, 289, 0,
02606 973, 0, 318, 291, 0, 115, 116, 0, 0, 92,
02607 91, 219, 40, 74, 125, 895, 894, 0, 46, 80,
02608 265, 266, 261, 0, 725, 0, 0, 581, 0, 0,
02609 536, 0, 0, 0, 0, 0, 0, 0, 0, 0,
02610 0, 0, 0, 0, 478, 476, 477, 715, 1224, 274,
02611 402, 0, 529, 881, 715, 793, 795, 801, 0, 790,
02612 0, 704, 623, 0, 610, 609, 631, 0, 611, 630,
02613 630, 0, 590, 589, 0, 689, 588, 681, 0, 647,
02614 613, 352, 746, 744, 0, 738, 740, 0, 963, 0,
02615 0, 1178, 1166, 0, 1167, 812, 0, 711, 712, 709,
02616 124, 271, 243, 248, 244, 254, 0, 0, 0, 0,
02617 300, 0, 0, 703, 100, 98, 97, 99, 293, 317,
02618 224, 168, 180, 184, 188, 205, 180, 159, 172, 137,
02619 159, 168, 180, 159, 172, 150, 188, 205, 180, 180,
02620 0, 153, 214, 0, 196, 196, 972, 42, 1213, 890,
02621 112, 0, 1206, 0, 0, 486, 164, 160, 0, 488,
02622 489, 557, 548, 511, 0, 468, 517, 495, 498, 496,
02623 502, 503, 365, 365, 109, 404, 0, 54, 804, 1217,
02624 680, 715, 611, 586, 611, 597, 0, 0, 611, 593,
02625 591, 595, 0, 690, 704, 683, 612, 644, 373, 896,
02626 741, 0, 367, 1176, 1175, 1177, 0, 710, 0, 0,
02627 0, 306, 0, 316, 214, 701, 0, 228, 0, 165,
02628 143, 149, 0, 0, 0, 175, 222, 178, 151, 192,
02629 195, 134, 189, 191, 0, 0, 0, 209, 213, 132,
02630 206, 208, 141, 196, 172, 0, 174, 157, 0, 196,
02631 165, 148, 196, 156, 136, 0, 130, 142, 147, 0,
02632 0, 129, 0, 201, 0, 0, 200, 204, 133, 197,
02633 199, 140, 0, 41, 39, 48, 47, 0, 710, 269,
02634 0, 0, 0, 622, 110, 0, 616, 614, 615, 624,
02635 0, 582, 611, 611, 0, 582, 0, 0, 0, 698,
02636 710, 0, 715, 648, 0, 626, 0, 904, 739, 1168,
02637 708, 0, 0, 0, 0, 0, 0, 0, 305, 928,
02638 295, 297, 0, 227, 0, 232, 0, 166, 167, 170,
02639 0, 181, 183, 0, 185, 187, 194, 193, 176, 179,
02640 190, 177, 0, 380, 951, 0, 950, 211, 952, 0,
02641 207, 144, 158, 0, 0, 146, 170, 145, 0, 0,
02642 215, 0, 942, 941, 944, 0, 0, 940, 203, 943,
02643 0, 198, 971, 1213, 257, 0, 268, 0, 810, 817,
02644 0, 162, 466, 882, 0, 598, 0, 602, 607, 603,
02645 0, 594, 592, 0, 699, 0, 695, 697, 691, 351,
02646 636, 637, 0, 0, 642, 646, 715, 0, 0, 0,
02647 0, 897, 899, 0, 745, 0, 0, 257, 930, 929,
02648 316, 225, 0, 229, 230, 231, 0, 223, 169, 171,
02649 155, 182, 948, 947, 949, 186, 953, 210, 954, 380,
02650 173, 0, 275, 154, 205, 180, 188, 946, 945, 202,
02651 49, 0, 798, 36, 258, 262, 259, 710, 0, 0,
02652 0, 896, 617, 0, 0, 0, 0, 0, 655, 710,
02653 632, 632, 643, 627, 0, 0, 0, 0, 898, 0,
02654 0, 905, 907, 0, 257, 117, 298, 226, 0, 0,
02655 212, 188, 0, 131, 139, 135, 264, 0, 260, 267,
02656 270, 816, 818, 904, 704, 599, 0, 604, 0, 596,
02657 0, 696, 0, 640, 638, 902, 903, 0, 900, 0,
02658 0, 906, 119, 118, 238, 0, 237, 0, 234, 233,
02659 138, 276, 730, 731, 727, 728, 726, 729, 263, 910,
02660 715, 0, 0, 656, 0, 633, 0, 0, 0, 901,
02661 909, 908, 240, 241, 239, 0, 0, 0, 914, 618,
02662 601, 606, 635, 634, 649, 0, 0, 0, 0, 0,
02663 921, 652, 0, 653, 650, 651, 0, 236, 235, 912,
02664 913, 911, 916, 0, 0, 918, 919, 0, 883, 641,
02665 0, 639, 920, 915, 0, 922, 654, 917
02666 };
02667
02668
02669 static const yytype_int16 yydefgoto[] =
02670 {
02671 -1, 31, 32, 33, 34, 916, 300, 686, 1128, 1668,
02672 1355, 1672, 1893, 1129, 1345, 859, 1039, 1574, 911, 912,
02673 913, 77, 298, 1130, 1106, 1131, 1132, 1108, 1322, 1637,
02674 1109, 1110, 679, 1513, 1514, 1692, 1347, 1348, 1349, 1350,
02675 1485, 1486, 1289, 1290, 1327, 1527, 1662, 1768, 1663, 1664,
02676 1665, 1374, 1375, 1371, 1849, 1739, 1950, 1767, 1786, 1787,
02677 1740, 1741, 1751, 1752, 1753, 1788, 1789, 1790, 1759, 1760,
02678 1761, 1781, 1281, 1282, 1111, 1754, 1526, 1737, 1842, 1845,
02679 1947, 2048, 1291, 1484, 1292, 1624, 460, 492, 1133, 1134,
02680 1973, 1974, 1975, 1976, 1542, 1797, 1798, 1477, 1418, 1961,
02681 35, 907, 478, 1112, 66, 1113, 1114, 1115, 1629, 1631,
02682 1940, 1293, 124, 1523, 1315, 36, 467, 37, 290, 38,
02683 292, 39, 422, 623, 624, 40, 41, 279, 1004, 113,
02684 430, 114, 115, 867, 1056, 1693, 438, 439, 440, 441,
02685 442, 1253, 635, 636, 637, 1061, 1259, 519, 709, 402,
02686 403, 404, 598, 822, 405, 406, 407, 408, 409, 849,
02687 1031, 1032, 1033, 410, 937, 1380, 948, 411, 586, 808,
02688 749, 1554, 1384, 703, 926, 1158, 998, 510, 930, 706,
02689 1242, 1243, 1244, 1245, 1246, 1817, 1816, 1818, 1983, 1906,
02690 1985, 1910, 1449, 1247, 1248, 1580, 1904, 2024, 999, 1000,
02691 1001, 1567, 1581, 1702, 1600, 1601, 1926, 1440, 1249, 1587,
02692 2033, 1923, 1924, 2068, 2067, 1925, 1823, 1824, 1716, 1717,
02693 2092, 2093, 2094, 1987, 746, 782, 747, 1598, 1599, 704,
02694 919, 1135, 1714, 1821, 1023, 1595, 1819, 1916, 1116, 1501,
02695 1502, 1058, 1059, 1279, 1475, 1619, 652, 1694, 1256, 889,
02696 890, 1364, 2058, 1341, 1456, 1457, 1605, 1606, 1060, 1250,
02697 1458, 1719, 42, 1137, 480, 481, 304, 85, 43, 94,
02698 309, 500, 694, 44, 101, 699, 45, 109, 627, 425,
02699 426, 860, 1040, 1047, 861, 1051, 1437, 1042, 1227, 1228,
02700 1081, 1085, 1043, 1230, 1433, 1434, 1278, 1139, 1545, 46,
02701 1078, 899, 900, 1898, 1899, 47, 689, 80, 48, 121,
02702 49, 118, 461, 654, 655, 650, 50, 476, 475, 51,
02703 284, 673, 52, 100, 314, 315, 504, 698, 53, 104,
02704 54, 55, 420, 1225, 1696, 1981, 106, 622, 1429, 1356,
02705 1827, 1931, 1932, 1934, 2001, 2002, 2078, 2101, 2090, 2104,
02706 2105, 2108, 412, 674, 1838, 413, 1888, 1955, 1867, 414,
02707 1048, 1049, 1476, 415, 416, 1328, 427, 286, 295, 417,
02708 846, 418, 1036, 419, 1117, 464, 97, 275, 276, 56,
02709 443, 117, 639, 640, 641, 876, 877, 465, 1012, 878,
02710 879, 1069, 98, 99, 1067, 1612, 1470, 316, 57, 122,
02711 58, 70, 73, 294, 487, 629, 59, 60, 61, 62,
02712 112, 632, 666, 1052, 667, 668, 669, 905, 865, 803,
02713 804, 1416, 582, 583, 1006
02714 };
02715
02716
02717
02718 #define YYPACT_NINF -1762
02719 static const yytype_int16 yypact[] =
02720 {
02721 855, 807, 468, -1762, 468, -171, 1008, 63, -1762, -1762,
02722 1023, -1762, 1562, -1762, -1762, 69, 491, -29, 468, -1762,
02723 -171, 780, -1762, 280, -1762, -82, 287, -1762, 443, 14926,
02724 326, 655, 541, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02725 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02726 -1762, 11366, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02727 -1762, -1762, -1762, 14926, -1762, -1762, 443, -1762, -1762, -1762,
02728 -171, -1762, -1762, 691, 14926, 571, -1762, 359, -1762, -1762,
02729 605, 14926, 599, -1762, 679, 468, -1762, -1762, -1762, -1762,
02730 -1762, -1762, -1762, 1579, 397, -1762, -1762, -1762, -1762, -1762,
02731 584, 443, -1762, -1762, 5730, -1762, -1762, 780, -1762, 10646,
02732 54, -1762, -1762, -1762, -1762, 795, -1762, -1762, 2124, 437,
02733 -1762, 11722, 468, -1762, 11722, -1762, -1762, -1762, -1762, -1762,
02734 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02735 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02736 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02737 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02738 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02739 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02740 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02741 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02742 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02743 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02744 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02745 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02746 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02747 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02748 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, 326, 454,
02749 -1762, -1762, 355, 14926, -1762, -1762, 479, 496, -1762, 586,
02750 11722, -1762, 11722, 81, -28, -1762, -1762, 712, 14926, 571,
02751 621, 11722, -1762, 857, 14926, 14926, 599, -1762, 721, 910,
02752 688, -1762, -1762, 630, 609, -1762, -1762, 10646, 673, 695,
02753 8052, -1762, 5730, 704, 728, 735, 741, 746, 751, 755,
02754 765, 765, 769, 786, 788, -152, 792, -1762, 808, 838,
02755 848, 858, -1762, -1762, 864, -1762, 870, 875, 879, 6117,
02756 881, 69, 891, -1762, 897, 908, 918, 930, 947, 953,
02757 5730, 959, -1762, -1762, 963, 969, 977, 978, 983, 987,
02758 1005, 1009, 1011, 1013, 1014, 1016, 1017, -1762, 1018, 1022,
02759 -143, 1026, -1762, 1027, -1762, 1032, 765, 765, 1040, 1044,
02760 1049, 1050, 1052, 1057, 8052, 8052, 8052, 5730, 14926, 14926,
02761 -1762, 56, 1366, -1762, 1585, 17, -1762, -1762, -1762, -1762,
02762 -1762, -1762, 716, -1762, -1762, -1762, -1762, 1059, -1762, 614,
02763 1007, -1762, 11722, 11722, -1762, -1762, -1762, -1762, 940, -28,
02764 868, -1762, -1762, -1762, -1762, -1762, -1762, -1762, 610, 795,
02765 -1762, -1762, -1762, -1762, 65, 1060, 16, -36, 1062, -1762,
02766 -1762, -1762, -1762, -1762, -1762, -1762, 65, 991, 946, 1062,
02767 65, -1762, -1762, -1762, 1084, -116, 1387, -1762, -1762, -1762,
02768 1172, -1762, 1067, -25, -1762, 390, 13502, 14926, 1369, 11722,
02769 1069, -1762, 1069, -1762, 1424, 1209, -1762, -1762, 1348, -1762,
02770 11722, -1762, 1315, -1762, -1762, -1762, 1250, 11722, 1212, -1762,
02771 1120, -1762, 1236, 584, 11722, -1762, 5730, 164, -1762, 56,
02772 1128, 5730, 1095, 5730, 5730, 5730, 5730, 596, 1103, -1762,
02773 -1762, 1105, 5730, 5730, 5730, 716, 5730, 12078, 5730, -1762,
02774 2250, 1399, 5730, 5730, 5730, 5730, 1663, 1111, 1114, 5730,
02775 649, 5730, 5730, 671, 5730, 5730, -1762, 4182, -1762, 8052,
02776 5730, 5730, 5730, 5730, 5730, 5730, 1491, 1491, 5730, 5730,
02777 778, 4182, -1762, 2226, 2226, 5730, 716, 3408, 5730, 1118,
02778 -1762, -1762, 1123, 12078, 1491, 1491, 5730, 5730, -1762, -1762,
02779 -1762, 33, 1125, 438, 5730, 1124, 1879, 5730, 5730, 5730,
02780 8052, -1762, 932, -1762, -1762, -1762, -1762, -1762, 6504, 8052,
02781 8052, 1131, 8052, 8052, 537, 8052, 8052, 8052, 8052, 8052,
02782 8439, 8826, 8052, 8052, 8052, 8052, 84, 8052, -1762, -1762,
02783 14926, -1762, 1364, 1130, -1762, 1203, -1762, -122, -1762, 780,
02784 -1762, 781, -1762, -1762, -1762, 1139, -1762, 5730, -1762, 1140,
02785 -1762, 871, -1762, -1762, 11722, 1152, 571, 11722, 1216, 5730,
02786 -1762, 36, -1762, -1762, -36, 14926, 65, -36, -1762, 11722,
02787 -1762, -36, -36, 1248, 12078, -1762, -1762, -1762, -1762, 28,
02788 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02789 1489, -1762, 11722, -1762, -1762, -1762, 1270, -1762, 14926, 1176,
02790 11722, 1069, -1762, -1762, -1762, 1354, -1762, 1069, -1762, -122,
02791 71, -1762, 1491, 1155, -1762, 5730, -23, 138, -1762, 56,
02792 566, 626, 133, 96, -1762, 1161, 1169, -1762, -1762, 98,
02793 99, 251, 309, 1166, 327, 1179, -1762, -1762, -1762, -1762,
02794 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02795 -1762, -1762, -1762, -1762, -1762, -1762, 1417, -1762, -1762, -1762,
02796 336, 106, 116, 42, 1188, -1762, 5730, 118, 1491, 1181,
02797 337, 338, 1491, 1183, 119, 342, 343, 1600, 352, 125,
02798 131, 139, 152, 360, 1184, 1185, 153, 48, 1491, 1187,
02799 361, -1762, 1186, -1762, 1189, 365, 4569, 4956, 5343, 53,
02800 156, -1762, -1762, 1190, 1191, 1194, 55, 367, -1762, 5730,
02801 -1762, -1762, 440, -1762, 1234, 90, 14926, 710, -1762, 1301,
02802 -1762, 87, 1569, -1762, -1762, 806, -1762, -1762, -1762, -1762,
02803 1199, -1762, 1206, 840, 1214, 5730, 12, 1214, 8052, 1217,
02804 8052, 8052, 1944, 1960, 1396, 1705, 1705, 6117, 696, 6117,
02805 696, 1214, 1214, 1214, 1223, -1762, -1762, -1762, 1551, 1220,
02806 1222, 1300, 11722, 11722, -1762, -1762, 1238, 1238, 10281, -1762,
02807 -1762, -1762, -1762, -1762, -1762, -1762, -1762, 996, 56, -1762,
02808 1239, -1762, -1762, -1762, -1762, -1762, 535, 1240, -1762, -1762,
02809 65, 1251, 14926, -1762, -1762, 56, -1762, -1762, -1762, -1762,
02810 363, -1762, -1762, -36, -1762, 65, -1762, -1762, -1762, 1247,
02811 -1762, -108, 1606, 1062, -1762, -1762, 1272, 2152, -1762, 30,
02812 1275, -1762, -1762, 874, 920, 1276, 1229, -1762, -1762, 1422,
02813 -1762, -1762, 1427, 6891, 1265, -1762, 5730, 456, 5730, 5730,
02814 1545, 1302, -1762, 5730, -1762, -1762, 1302, 5730, -1762, 1268,
02815 1496, 1498, -1762, -1762, -1762, 1120, -1762, 5730, 5730, -1762,
02816 5730, 5730, 5730, 5730, 370, 5730, 1277, -1762, -1762, -1762,
02817 1279, -1762, 5730, -1762, -1762, 5730, -1762, 5730, 5730, 5730,
02818 5730, -1762, -1762, -1762, 7278, 5730, 5730, 1284, -1762, -1762,
02819 5730, 5730, -1762, 5730, 165, 5730, 628, 5730, 651, 5730,
02820 -1762, 5730, -1762, -1762, -1762, -1762, 5730, -1762, 645, -1762,
02821 -1762, 795, -1762, 440, 1285, 781, -1762, -1762, -1762, 1288,
02822 1289, 1290, 1579, 5730, -1762, -1762, -1762, -1762, -1762, 8052,
02823 59, 1298, 8052, -1762, 1182, 5730, 12, 1944, 1663, 1663,
02824 5730, 1299, 1269, -1762, 14926, -1762, -1762, -1762, -1762, 795,
02825 12078, -1762, 1286, -1762, 1286, 562, 1303, 647, -1762, -1762,
02826 -1762, 868, 390, -1762, 427, -1762, 46, 1514, 1062, -1762,
02827 1555, 13858, -1762, 12790, -1762, 1525, -1762, -108, 2069, -1762,
02828 -36, 1, -1762, 36, 36, -1762, 1176, 12078, 1176, -1762,
02829 -1762, 7665, -1762, -1762, -1762, 76, 1451, 1640, 1272, 1640,
02830 1272, 1374, 47, 1523, 1391, 898, 1529, 1336, 1342, -1762,
02831 1401, 1640, 1680, 70, 1346, 1351, -1762, 1345, -1762, -1762,
02832 -1762, 1082, -1762, 1325, 11002, -1762, -1762, 1352, 765, -1762,
02833 5, 14, -1762, 14, -1762, 2036, 11722, 9569, -1762, 1800,
02834 543, -1762, 1317, 1379, 1508, 5730, 1558, -1762, 1646, -1762,
02835 6117, 378, -1762, 56, 5730, 56, 615, -1762, 1365, -1762,
02836 1365, -1762, -1762, 1368, -1762, 1590, -1762, 1594, 1370, 56,
02837 1375, 1371, -1762, 5730, 5730, -1762, 396, -14, 166, 170,
02838 60, -1762, -1762, 414, -1762, -1762, 422, 434, 457, 174,
02839 530, 659, 6117, 536, 205, 73, -1762, 185, 187, 548,
02840 5730, 556, 5730, 564, 5730, 565, 567, 573, -1762, 610,
02841 -1762, 1376, -1762, -1762, -1762, -1762, -1762, 1377, 56, 1380,
02842 -1762, -1762, 5730, -1762, 17, 8052, 88, 1382, -1762, -1762,
02843 -1762, 56, -1762, -1762, -1762, 44, 610, 1393, -1762, -108,
02844 7665, 1238, 1493, -1762, -1762, 562, 12078, -1762, -1762, -1762,
02845 -1762, 14926, 2318, 1176, -1762, 1394, -1762, -1762, 11722, -1762,
02846 68, 1441, 1621, -1762, -1762, -1762, -1762, -1762, 14214, -1762,
02847 -1762, -1762, -1762, 1395, 1611, 3795, 710, -108, -1762, -1762,
02848 -1762, -1762, -1762, -1762, -1762, 1422, 808, 56, -1762, 5730,
02849 -1762, -1762, -1762, -1762, -1762, 12434, -1762, -1762, -1762, 622,
02850 682, 12434, -1762, -1762, 12434, 956, 12434, 1216, 76, 765,
02851 -1762, -1762, -1762, 1620, 1622, 12434, 12434, -1762, 84, 1216,
02852 -1762, 12434, 12078, -1762, -1762, 11722, 15, 1419, -1762, -1762,
02853 1516, 1272, 1272, 2161, 9925, 14926, 150, 78, -1762, 1409,
02854 2036, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02855 -1762, -1762, -1762, -1762, 1423, 1425, -1762, 684, -1762, -1762,
02856 -1762, -1762, -1762, 1788, 1793, -1762, 467, 2133, -1762, 109,
02857 -1762, 11722, 56, 36, -1762, -1762, 1663, -1762, 56, 5730,
02858 1596, -1762, -1762, 1598, -1762, -1762, -1762, -1762, -1762, -1762,
02859 1430, 1663, 1663, -1762, 1536, -1762, 5730, 5730, -1762, 5730,
02860 -1762, -1762, -1762, -1762, 5730, -1762, -1762, 1663, -1762, 5730,
02861 -1762, -1762, 5730, 5730, 5730, -1762, 574, -1762, 575, -1762,
02862 600, -1762, -1762, -1762, 1139, -1762, 438, 14926, -1762, -1762,
02863 722, -1762, -1762, 5730, -1762, 13858, -1762, -1762, -1762, 1657,
02864 1139, 12078, 7665, 1432, 1435, -1762, -1762, -25, -1762, -1762,
02865 -1762, 483, 1658, 1659, -1762, 1595, 493, 1595, 483, 483,
02866 1691, 427, 1488, -1762, 1300, 1300, -1762, 1438, -1762, -1762,
02867 1554, -1762, -1762, 13146, -40, -1762, 8052, 808, -1762, 56,
02868 -1762, 1122, 5730, 1558, 56, 1443, 641, -1762, -1762, 5730,
02869 1668, 1669, 489, -1762, 12434, -1762, -1762, -1762, 111, -1762,
02870 -1762, -1762, -1762, -1762, 12434, -1762, -1762, -1762, -1762, -1762,
02871 -1762, 1452, -1762, 641, -1762, -1762, -1762, -1762, -1762, -1762,
02872 -1762, -1762, -1762, -1762, -1762, -1762, 76, -7, -1762, 766,
02873 -1762, 14926, -1762, -1762, 11722, -1762, -1762, 1965, 14926, -1762,
02874 -1762, 1800, -1762, 1794, 9925, -1762, -1762, 1493, -1762, -1762,
02875 -1762, -1762, -1762, 1458, -1762, 1673, 433, 56, 1463, 774,
02876 -1762, 1464, 1465, 257, 1468, 601, 203, 775, 604, 450,
02877 606, 608, 617, 619, -1762, -1762, -1762, 507, -1762, -1762,
02878 -1762, 796, -1762, -1762, 507, -1762, -1762, -1762, 7665, -1762,
02879 -141, 1422, -1762, 707, -1762, -1762, -1762, 1688, 483, 1595,
02880 1595, 1695, 1645, 458, 1835, 1730, -1762, -1762, 14926, -1762,
02881 -1762, 795, -1762, -1762, 1579, 1482, -1762, 1674, -1762, 21,
02882 1631, -1762, -1762, -108, 56, -1762, 5730, -1762, -1762, -1762,
02883 56, 12434, -1762, -1762, -1762, -1762, 1494, 1798, 1799, 12434,
02884 -1762, 1965, 12078, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02885 1495, 1509, -1762, -1762, 995, 1457, -1762, 1368, -93, -1762,
02886 1368, 1509, -1762, 1368, 1511, -1762, 1163, 1087, -1762, -1762,
02887 1512, -1762, 1841, 1513, 787, 787, 1518, -1762, 9, 543,
02888 -1762, 1520, 868, 14926, 1560, -1762, -1762, -1762, 1696, -1762,
02889 -1762, -1762, -1762, -1762, 5730, -1762, -1762, -1762, -1762, -1762,
02890 -1762, -1762, 46, 46, -1762, -1762, 1601, -1762, -1762, 781,
02891 529, 1062, 427, -1762, 483, -1762, 1745, 1747, 483, -1762,
02892 -1762, -1762, 5730, -1762, 1422, -1762, -1762, 485, 610, 1868,
02893 -1762, 1438, -1762, -1762, -1762, -1762, 3795, 641, 1534, 1535,
02894 14926, -1762, 1675, 150, 1841, -1762, 14926, 1734, 1708, -101,
02895 1211, 1652, 84, 1675, 1710, -1762, -1762, 1755, -1762, -1762,
02896 -1762, -1762, 1163, -1762, 1756, 1517, 1589, -1762, -1762, -1762,
02897 1457, -1762, 1211, 787, 1511, 1713, -1762, -1762, 1549, 787,
02898 -101, 1211, 787, -1762, -1762, 1719, -1762, 1211, 1211, 1720,
02899 1216, -1762, 1721, -1762, 823, 1853, -1762, -1762, -1762, 787,
02900 -1762, -1762, 14926, -1762, -1762, -1762, -1762, 810, 641, 1556,
02901 12078, 1557, 632, -1762, -1762, 11722, -1762, -1762, -1762, 1394,
02902 2232, 1603, 483, 483, 2307, 1604, 5730, 5730, 1559, 523,
02903 641, 5730, 1062, -1762, 546, 1139, 914, 1769, -1762, -1762,
02904 -1762, 14926, 14926, 817, 716, 716, 975, 975, -1762, -1762,
02905 -1762, -1762, 849, -1762, 7, 1731, 1566, -1762, -1762, 1586,
02906 1675, -1762, -1762, -6, -1762, -1762, -1762, -1762, -1762, -1762,
02907 -1762, -1762, 716, 765, -1762, 716, 716, -1762, -1762, 1742,
02908 -1762, -1762, -1762, 903, 257, -1762, 1586, -1762, 1583, 1597,
02909 -1762, 1599, -1762, -1762, -1762, 975, 975, 716, -1762, -1762,
02910 1623, -1762, -1762, 9, 26, 14926, -1762, 1768, 1582, -1762,
02911 -108, -1762, -1762, -1762, 438, -1762, 1647, -1762, -1762, -1762,
02912 1649, 56, 56, 14926, -1762, 5730, -1762, -1762, 56, -1762,
02913 -1762, -1762, 489, 489, -1762, 546, 507, 1955, 1962, 1892,
02914 1964, 914, -1762, -65, -1762, 934, 954, 26, -1762, -1762,
02915 150, -1762, 14926, -1762, -1762, -1762, 2, -1762, -1762, -1762,
02916 -1762, -1762, -1762, -1762, -1762, -1762, 716, -1762, 716, 765,
02917 -1762, 966, -1762, -1762, 1457, -1762, 1163, -1762, -1762, -1762,
02918 -1762, 1216, 1272, -1762, 26, -1762, -1762, 641, 1613, 12078,
02919 7665, 1868, -1762, 5730, 1615, 5730, 1616, 967, -1762, 641,
02920 1874, 1874, -1762, -1762, 257, 257, 1971, 257, -1762, 1973,
02921 1974, -65, -1762, 1761, 26, -1762, -1762, -1762, 100, 100,
02922 -1762, 1163, 257, -1762, 1211, -1762, -1762, 1542, -1762, -1762,
02923 -1762, -1762, -1762, 1769, 1422, 56, 14926, 56, 14926, -1762,
02924 14926, -1762, 442, -1762, -1762, -1762, -1762, 257, -1762, 257,
02925 257, -1762, -1762, -1762, -1762, 2005, -1762, 161, 1791, 1792,
02926 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, 1863,
02927 1062, 981, 999, -1762, 1983, -1762, 1985, 1637, 1638, -1762,
02928 -1762, -1762, -1762, -1762, -1762, 1686, 1942, 1816, 1648, -1762,
02929 -1762, -1762, -1762, -1762, 14570, 14570, 100, 100, -10, 2833,
02930 1757, -1762, 1651, -1762, 1654, -1762, 1000, -1762, -1762, -1762,
02931 -1762, -1762, -1762, 1579, 1006, -1762, -1762, 12078, -1762, -1762,
02932 14570, -1762, -1762, -1762, 9213, 1582, -1762, -1762
02933 };
02934
02935
02936 static const yytype_int16 yypgoto[] =
02937 {
02938 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02939 364, -1762, -1762, 907, -1166, -832, -1762, -1762, -1762, -181,
02940 -1762, -1762, -175, -1076, 933, -999, -857, -1762, -1762, -1762,
02941 -1762, -1762, 1357, -1762, -1762, -1451, 720, 511, 936, 960,
02942 726, 758, -1762, -1762, 428, -1762, 429, -1762, -1762, -1762,
02943 -1762, -470, -1460, 912, 288, 412, 188, -1071, -574, -488,
02944 -1570, -1762, -1455, -1762, 315, -666, -1762, 279, -1561, -1762,
02945 310, 335, 329, -1194, -375, -1762, 75, -1762, -1762, -1762,
02946 -1762, -1320, -1762, -1762, -1073, -1762, -1762, -1762, -1762, -1340,
02947 -1761, -1762, 941, 102, -1762, -1575, 192, -1217, -1762, -1762,
02948 -1762, -1762, -1762, -1762, 200, -1762, -1762, 767, -1762, -1762,
02949 -1762, 245, 117, -1626, -1762, -1762, -1762, -1762, -1762, -1762,
02950 -1762, -1762, -1762, -1762, 1237, 1617, 1041, 1818, 1094, -1762,
02951 -1762, 1823, -1762, -1762, -1762, -723, -976, -1762, -1762, -1762,
02952 1666, -592, -1165, 1241, -791, -733, 681, -330, 1588, -1762,
02953 -570, 1891, -1762, -1762, -302, -1762, -1762, -1762, -1762, -1762,
02954 -1762, -1762, 885, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02955 -1762, -1762, -1762, 1142, -1762, 1177, -498, -1762, -1762, -1762,
02956 -1303, -1762, 666, 416, -1762, -1762, -1762, -1762, -1762, -1762,
02957 -1762, -1762, -1762, -818, -1762, -1762, -1762, -1762, -1762, 1126,
02958 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1128, -1762, -1315,
02959 135, -1762, 209, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02960 -1762, 27, 39, -1053, -528, 1572, 581, -1762, 444, 1642,
02961 -195, -1762, -1762, -1762, 1137, -1762, -1762, -1762, -1762, -1762,
02962 516, -906, -636, -1762, -1762, -1468, -422, -1047, -404, -1762,
02963 -767, 693, -1762, -1106, -1762, -1762, -1762, 436, 1117, -1762,
02964 -1762, -1762, -1762, -1762, -187, -80, 1862, -1762, -1762, -1762,
02965 -1762, -1762, 1233, -1762, -1762, -1762, -1762, -1762, -1762, 1865,
02966 1762, 1487, -1762, -1762, -916, -1762, -1762, 1332, -1762, 759,
02967 -1063, -1069, 962, -1762, -1762, -1762, -1218, -1762, -1762, -1762,
02968 -1762, -1762, 1119, 91, 212, -1762, -1762, -1762, -1762, -1762,
02969 -1762, -1762, -1762, -17, -244, -614, -1762, -1762, -1762, -1762,
02970 -1762, -1762, -1762, -1762, -1762, 1694, -1762, -1762, -1762, 1849,
02971 -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02972 221, -1762, 273, 182, -1762, 206, -1762, -1762, -1762, -1762,
02973 92, -1762, -328, -1504, -1110, -1584, -1762, -1762, -1762, -576,
02974 982, 1574, -1376, -495, -1762, -251, -37, 794, 2136, -12,
02975 -2, -406, -228, 124, -611, 894, -1762, -1762, -1762, -1762,
02976 -1762, -1762, -1762, 1350, -1762, -1762, -1762, -1762, 961, -1762,
02977 -1762, -1762, -90, -852, 757, -1762, 500, 1323, -1762, -1762,
02978 -1762, -1762, 199, 2119, 1801, -1762, -1762, -1762, -1762, -1762,
02979 -77, -1024, -428, -1762, -1395, -1762, -1762, -1762, -982, -1378,
02980 -1762, -1762, -493, -1762, -1762
02981 };
02982
02983
02984
02985
02986
02987 #define YYTABLE_NINF -1214
02988 static const yytype_int16 yytable[] =
02989 {
02990 95, 520, 633, 307, 1265, 847, 618, 525, 754, 111,
02991 96, 1255, 1435, 1136, 285, 710, 711, 273, 508, 1295,
02992 813, 1297, 1305, 1203, 1066, 1199, 1046, 1237, 821, 424,
02993 421, 548, 723, 903, 1414, 1633, 725, 658, 1568, 273,
02994 891, 468, 1579, 894, 653, 587, 562, 896, 897, 1681,
02995 1107, 273, 566, 1351, 587, 653, 570, 571, 1030, 616,
02996 587, 1430, 273, 1226, 616, 587, 293, 587, 587, 273,
02997 675, 587, 587, 1723, 1487, 915, 1762, 1971, 793, 1635,
02998 928, 95, 1771, 587, 1313, 587, 646, 470, 1777, 1778,
02999 2008, 96, 578, 579, 580, 111, 1776, 273, 1118, 587,
03000 587, 909, 587, 680, 1492, 482, 462, 1840, 587, 273,
03001 587, 587, 273, 1269, 1952, 1299, 463, -1210, 587, 618,
03002 483, 1453, 1479, 1697, 490, 1332, 1022, 102, 587, 1233,
03003 587, 587, 1591, 1358, 2044, 1505, 1062, 587, 1583, 1943,
03004 1540, 1764, 648, 587, 1057, 587, 1593, 1626, 1839, 854,
03005 587, 587, 931, 274, -1213, 1833, 855, 1521, 86, 1839,
03006 618, 88, 1280, 377, 587, 587, 1432, 1454, 587, 901,
03007 2099, 1079, 377, 701, 1251, 287, 2005, 587, 587, 975,
03008 661, 1847, 587, 289, 989, 485, 587, 274, 1766, 1489,
03009 1538, 72, 1699, 1427, 1766, 1972, 642, 587, 296, 587,
03010 644, 1774, -1213, 1609, 1472, 296, 78, 651, 1953, 1627,
03011 84, 1610, 79, 902, 1576, 587, 659, 587, 317, 110,
03012 86, 486, 886, 88, 1529, 856, 857, 643, 86, 1999,
03013 1252, 88, 524, 287, 1611, 662, 1848, 424, 107, 1944,
03014 1727, 565, 119, 2043, 1700, 287, 1541, 2073, 287, 2000,
03015 1107, 887, 1516, 1517, 2100, 902, 1935, 1936, 702, 1830,
03016 1080, 588, 858, 587, 493, 904, 1839, 1625, 910, 291,
03017 588, 273, 1522, 1793, 1706, 1707, 588, 1630, 273, 1075,
03018 273, 588, 671, 588, 588, 1729, 273, 588, 588, 273,
03019 1945, 1765, 273, 273, 484, 1346, 1190, 1428, 1455, 588,
03020 826, 588, 915, 915, 1766, 273, 1271, 1272, 631, 103,
03021 691, 680, 1582, 2045, 2006, 848, 588, 697, 588, 1438,
03022 1954, 587, 1634, 649, 588, 1524, 588, 588, 647, 91,
03023 1896, 1333, 1021, 1399, 588, 929, 1820, 1257, 1636, 587,
03024 2009, 1506, 631, 424, 588, 91, 588, 588, 587, 587,
03025 587, 1724, 1917, 588, 587, 587, 2046, 1270, 1539, 588,
03026 1698, 588, 91, 1050, 587, 888, 588, 588, 1359, 1473,
03027 1962, 1671, 587, 587, 933, 2074, 428, 587, 2047, 587,
03028 588, 588, 587, 617, 588, 625, 273, 273, 617, 1628,
03029 587, 91, 1314, 588, 588, 2014, 672, 589, 588, 91,
03030 1046, 1810, 588, 2013, 1728, 1814, 589, 474, 587, 1623,
03031 273, 273, 589, 588, 287, 588, 287, 589, 798, 589,
03032 589, 799, 274, 589, 589, 287, 587, 798, 274, 496,
03033 952, 588, 1030, 588, 587, 589, 976, 589, 990, 1161,
03034 995, 287, 681, 996, 1211, 1388, 587, 1212, 1389, 1210,
03035 1167, 589, 589, 687, 589, 1667, 1268, 1669, 1401, 923,
03036 589, 1402, 589, 589, 273, 273, 1107, 273, 587, 587,
03037 589, 882, 1181, 1422, 1283, 1993, 1423, 1007, 273, 588,
03038 589, 1083, 589, 589, 936, 273, 940, 941, 1425, 589,
03039 2035, 2036, 273, 2038, 950, 589, 809, 589, 1970, 653,
03040 1219, 1220, 589, 589, 951, 116, 955, 962, 2051, 2019,
03041 915, 2015, 915, 967, 1342, 273, 589, 589, 935, 968,
03042 589, 2031, 584, 585, 1346, 1209, 1982, 969, 1026, 589,
03043 589, 1385, 1217, 2069, 589, 2070, 2071, 588, 589, 1989,
03044 970, 974, 587, 1597, 991, 1229, 287, 287, 587, 589,
03045 1726, 589, 862, 1825, 1386, 588, 2050, 1352, 1387, 828,
03046 587, 273, 1394, 105, 588, 588, 588, 589, 587, 589,
03047 588, 588, 377, 1403, 95, 1404, 587, 587, 2064, 587,
03048 588, 1073, 901, 1773, 96, 587, 587, 587, 588, 588,
03049 1400, 1684, 123, 588, -682, 588, 1544, 277, 588, 120,
03050 676, 677, 908, 287, 845, 701, 588, 880, 273, 2065,
03051 883, -645, 587, 587, 287, 589, 587, 111, 587, 1066,
03052 587, 287, 895, 633, 588, 1718, -858, 587, 287, 587,
03053 1592, 587, 273, 1857, -645, 273, 942, -682, 1054, 893,
03054 587, 1286, 588, 273, 587, 1421, 884, 273, 1796, 281,
03055 588, -45, 273, 920, 1808, 280, 1617, -682, 701, 1287,
03056 1588, 22, 588, 587, 1446, -682, 1479, -682, 1589, 2066,
03057 273, 299, 1920, 589, 845, 1701, 273, 1710, 273, 86,
03058 701, 87, 88, -682, 588, 588, 651, 1283, -682, 2049,
03059 714, 589, 1353, 1872, 943, 1921, -682, 1498, 1239, 829,
03060 589, 589, 589, 293, -682, 1346, 589, 589, -682, 801,
03061 278, 1002, 945, -682, 1420, 830, 589, 1806, 310, 297,
03062 1214, 949, 958, 959, 589, 589, 1479, 963, 964, 589,
03063 1618, 589, 1122, 1124, 589, -682, 301, 966, 854, -858,
03064 1951, 1050, 589, 758, 850, 971, 979, 303, -682, 1480,
03065 982, 1074, 997, 1590, 1239, 1172, -682, 308, 588, 1192,
03066 589, 870, 2022, 1367, 588, 762, 2097, 2098, 287, 311,
03067 1705, 287, 1442, 1144, 30, 1919, 588, 67, 589, 892,
03068 68, 1383, 1194, 287, 588, 831, 589, 701, 1331, -682,
03069 863, 600, 588, 588, 273, 588, 1354, 466, 589, 1390,
03070 1711, 588, 588, 588, 431, 1783, 287, 1391, 1822, -126,
03071 953, 1240, 917, 1241, 287, 625, 1038, 1503, 1675, 1392,
03072 589, 589, 802, 272, 1003, 90, -645, 953, 588, 588,
03073 -682, 305, 588, 854, 588, 1687, 588, 1980, 1546, 473,
03074 273, 273, 1393, 588, 1009, 588, 273, 588, 1882, 1990,
03075 1991, 1537, 1019, 1551, 1552, 92, 588, 288, 1481, 1065,
03076 588, 1443, -682, 1070, 95, 1, 2, 1240, 477, 1559,
03077 273, -682, 778, 1784, 1444, 864, 3, 63, 1076, 588,
03078 312, 1273, 1445, 1275, 1914, -977, 1811, 1922, -682, 432,
03079 1815, 1557, 1010, 313, 589, 845, 68, 603, 479, 4,
03080 589, 845, 845, 2017, 845, 1283, 337, 1119, 5, 856,
03081 857, 1915, 589, 1446, -682, 1395, -682, -682, -126, 6,
03082 589, 1398, 1207, 488, 86, 1571, 1014, 88, 589, 589,
03083 1008, 589, 1369, 1405, 498, 600, 1229, 589, 589, 589,
03084 1334, 1407, 1335, 7, 8, 9, 1232, 343, 1284, 1409,
03085 1411, 932, 1412, 10, 933, 491, 1482, -221, 1413, 1564,
03086 1565, 909, 1883, 11, 589, 589, 499, 1447, 589, 1493,
03087 589, 12, 589, 2061, 494, 2062, 287, 287, 1267, 589,
03088 13, 589, 870, 589, 501, 1566, 1683, 1011, 634, 1686,
03089 502, 1688, 589, 1689, 1907, 1908, 589, 503, 1744, 1791,
03090 95, 1745, 1690, 620, 1691, 872, 1072, 909, 1448, 353,
03091 96, 934, 14, 2079, 933, 589, -126, 1902, 86, 1927,
03092 1015, 88, 273, 1746, 64, 1303, 15, 1928, 273, 65,
03093 1198, 377, 1235, 933, 1478, 1236, 16, 1884, 363, 1336,
03094 1478, 603, 1742, 1488, 1396, 1490, 74, 933, 1450, 273,
03095 1286, 273, 814, 873, 1496, 1497, 95, 506, 337, 1260,
03096 1500, 81, 1785, 621, 86, 273, 96, 88, 1287, 1533,
03097 1749, 1757, 1534, 845, 612, 613, 614, 615, 75, 507,
03098 1337, 1743, 1749, 1757, 433, 434, 435, 436, 511, 1343,
03099 1300, 874, 489, 82, 1703, 845, 437, 1871, 495, 343,
03100 1803, 1804, 273, 1875, 17, 18, 1877, 1570, 19, 845,
03101 933, 845, 512, 845, 273, 273, 20, 845, 2060, 513,
03102 845, 1747, 21, 1319, 1320, 514, 22, 1054, 910, 1321,
03103 515, 1283, 1016, 23, 1304, 516, 24, 1503, 377, 517,
03104 1929, 1017, 1338, 815, 783, 783, 816, 675, 875, 518,
03105 25, 1638, 384, 521, 1534, 1055, 1750, 1758, 1224, 1677,
03106 1685, 353, 1678, 933, 508, -221, 1851, 1854, 1750, 1758,
03107 522, 1339, 523, 1755, 910, -285, 526, 1763, 1749, 1868,
03108 1769, 1695, 26, 1772, 933, 1261, 1757, 1263, 1851, 91,
03109 363, 27, 527, 28, 1215, 1894, 29, 1851, 1895, 1885,
03110 1886, 631, 1937, 1851, 1851, 1895, 1744, 628, 1889, 1745,
03111 1742, 1452, 606, 607, 608, 609, 610, 611, 612, 613,
03112 614, 615, 528, 902, 273, 64, 1602, 1603, 1930, 273,
03113 65, 1746, 529, 1478, 1941, 91, 273, 1942, 1329, 30,
03114 64, 651, 530, 1478, 633, 65, 273, 1088, 531, 1743,
03115 287, 1329, 1852, 1855, 532, 657, 1461, -221, 817, 533,
03116 1938, 1939, 1121, 534, 1750, 537, 86, 818, 87, 88,
03117 -219, -219, 1758, 273, 1852, 539, -219, 600, 1504, 273,
03118 1090, 540, 273, 1852, 273, 1340, 845, 656, 1960, 1852,
03119 1852, 1678, 541, 273, 273, 1491, 845, 1850, 1744, 273,
03120 273, 1745, 542, 273, 384, 1900, 1756, 1499, 1123, 1967,
03121 1968, 845, 273, 273, 543, 678, 1092, -219, 462, 2003,
03122 -70, 76, 1895, 1746, 1543, 69, 1148, 71, 463, 1747,
03123 1149, 544, 1294, -221, 1296, 1088, 83, 545, 1097, 2004,
03124 1306, 108, 1895, 547, 1150, 845, 1311, 549, 1748, 273,
03125 1098, 2011, 2029, 550, 2012, 2030, 678, 909, -219, -219,
03126 870, 551, 552, 1088, -219, 1441, 2080, 553, 1090, 2030,
03127 1478, 554, 287, 86, 1744, 1151, 88, 1745, 1152, -152,
03128 660, -221, 1462, 603, 2081, 2111, 1153, 2030, 2110, 555,
03129 1757, 2113, 1749, 556, 2114, 557, 1090, 558, 559, 1746,
03130 560, 561, 563, 678, 1092, 273, 564, 1126, 306, 1329,
03131 567, 568, 90, 273, 86, 1329, 569, 88, 1329, 273,
03132 1329, 1747, 1744, 1260, 572, 1745, 1097, 1866, 573, 1329,
03133 1329, 678, 1092, 574, 575, 1329, 576, 1749, 1098, 287,
03134 1851, 577, 92, 619, 645, 469, 663, 1746, 1329, 1520,
03135 664, 273, 665, -76, 1097, 678, 1887, 682, 684, 95,
03136 618, 86, 1154, 683, 88, 685, 1098, 688, 675, 690,
03137 692, 1775, 273, 1507, 1508, 693, 1758, 590, 1750, 695,
03138 708, 618, 273, 1104, 1900, 287, 705, 1640, 717, 86,
03139 718, 600, 88, 748, 1105, -125, 755, 1747, 756, 591,
03140 701, 1284, 1597, 791, 845, 1509, 525, 566, 792, 273,
03141 800, 1285, 273, 806, 1720, 825, 273, 851, 852, 845,
03142 1510, 845, 273, 1750, 910, 853, 1852, 866, 871, 592,
03143 881, 91, 898, 1957, 1956, 918, 906, 1958, 921, 593,
03144 925, 1569, 1511, 1755, 91, 1747, 938, 939, 947, 1261,
03145 618, 944, 618, -682, 606, 607, 608, 609, 610, 611,
03146 612, 613, 614, 615, 946, 953, 957, 1005, 961, 972,
03147 973, 1104, 978, 594, 980, 992, 993, 981, -125, 994,
03148 1013, 587, 1105, -434, 1155, 91, 273, 1224, 675, 675,
03149 1018, 675, 95, 1862, 2106, 615, -682, 603, 616, 1104,
03150 337, 1025, 96, 1286, -1214, -525, 675, 599, 1329, 273,
03151 1105, 1034, 1900, 1127, -682, 1035, -682, 273, 1329, 2106,
03152 273, 1287, 1041, 1156, -682, 2052, -682, -221, 1063, 2010,
03153 1068, 675, 91, 675, 675, 1077, 1071, -682, 1082, 1157,
03154 1084, 343, -682, 1120, 1125, 1639, 1138, -682, 287, 902,
03155 1142, 1147, 1666, 1162, 1163, -682, 1164, 1223, 1329, 715,
03156 91, 273, 1174, -682, 1175, 1512, 2053, -682, 1744, 1186,
03157 1202, 1745, -682, 1055, 1231, 587, 1756, 1204, 1205, 1206,
03158 600, 2054, 759, 1213, 1222, 763, 1054, -125, 1234, 1264,
03159 1284, 1301, 401, 1746, -682, 600, 1298, 1307, 774, 775,
03160 321, 1302, 779, 353, 1308, 1357, 86, -682, 87, 88,
03161 1309, 1310, 1312, 1323, 1316, -682, 794, 795, 273, 1317,
03162 1330, 1359, 1715, 86, 273, 87, 88, 1361, 2055, 1863,
03163 845, 1864, 363, -76, 595, 596, 597, 1363, 1853, 89,
03164 726, 727, 728, 729, 730, 1329, 1365, 601, -682, 1370,
03165 1376, 1834, 1373, 1329, 1377, 1378, 89, 2056, 337, 933,
03166 1379, 1415, 965, 602, 854, 1419, 1417, 1424, 1903, -1214,
03167 608, 609, 610, 611, 612, 613, 614, 615, 1880, 1459,
03168 273, 1431, 1451, 1460, 1463, -125, 603, 1464, 273, -682,
03169 1494, 1747, 1495, 273, 1515, 342, 604, 1799, 1528, 343,
03170 600, 603, 1535, 731, 732, 733, 734, 1536, 1531, 1553,
03171 1532, 1548, 1088, 1549, 345, 1550, 1573, 1577, 1088, 273,
03172 273, -682, -221, 1578, 1586, 1584, 1585, 1594, 1604, -682,
03173 -682, 1616, 377, 605, 1607, -219, -219, 1865, 1621, 1622,
03174 1632, -219, 1673, 1674, 924, 1090, 384, -682, 1676, 1679,
03175 1680, 1090, 90, 1682, 1799, 1704, 735, 736, 737, 738,
03176 1843, 353, 1708, 1744, 1709, 739, 1745, 1712, 1713, 90,
03177 1721, 2057, 1722, -682, 1725, -682, -682, 91, 1730, 1736,
03178 678, 1092, 92, 273, 1731, 1732, 678, 1092, 1746, 362,
03179 363, 588, 1780, 1738, 91, 1765, 1779, 1782, 1800, 92,
03180 956, 273, 740, 1097, 960, 1795, 603, 1792, -74, 1097,
03181 509, 1801, 1812, 1805, 1813, 1098, 1892, 1826, 1831, 1832,
03182 977, 1098, 1844, 1846, 1858, 1859, 1861, 1869, 1873, 287,
03183 273, 741, 742, 1874, 1878, 1879, 1881, 536, 86, 1890,
03184 1897, 88, 1901, 1913, 86, -600, -605, 88, 546, 1933,
03185 1946, 1948, 93, 1949, 1959, 1799, 1799, 606, 607, 608,
03186 609, 610, 611, 612, 613, 614, 615, 273, 1964, 2016,
03187 1979, 1969, 606, 607, 608, 609, 610, 611, 612, 613,
03188 614, 615, 1965, 1978, 1966, 581, 1747, 1994, 1641, 1984,
03189 377, 1986, 1642, 1643, 1995, 1835, 1997, 1996, 2020, 2026,
03190 2028, 382, 2032, 2037, 384, 2039, 2040, 1644, 1524, 2072,
03191 2075, 2076, 2077, 2112, 273, 2082, 273, 2083, 273, 1799,
03192 743, 2084, 2085, 86, 2086, 87, 88, 589, 744, 745,
03193 2087, 2088, 2089, 1794, 1344, 2107, 2109, 1988, 1645, 600,
03194 1318, 1646, 2110, 914, 1519, 1670, 1288, 1483, 1104, 1647,
03195 1326, 1836, 1837, 1525, 1104, 600, 89, 1733, 1876, 1105,
03196 1734, 1648, 1372, 1770, 1963, 1105, 2007, 1860, 1891, 1841,
03197 1870, 1856, 273, 273, 1360, 1649, 2018, 273, 2042, -1214,
03198 -1214, 610, 611, 612, 613, 614, 615, 1977, 1650, 1037,
03199 1518, 95, 670, 1238, 700, 273, 472, 1201, 273, 707,
03200 471, 96, 273, 712, 713, 638, 1572, 1053, 1426, 91,
03201 719, 720, 721, 1160, 722, 91, 724, 1596, 1809, 1336,
03202 750, 751, 752, 753, 2096, 1651, 2034, 757, 1200, 760,
03203 761, 1652, 764, 765, 1992, 766, 784, 2116, 768, 769,
03204 770, 771, 772, 773, 1807, 603, 776, 777, 1735, 780,
03205 1988, 1088, 1988, 785, 2063, 789, 790, 1828, 1086, 716,
03206 1337, 603, 1087, 1218, 796, 797, 1615, 1086, 497, 90,
03207 1088, 1087, 805, 444, 1254, 810, 811, 812, 1165, 1088,
03208 86, 1653, 505, 88, 1090, 626, 922, 445, 446, 1044,
03209 1575, 2021, 1089, 1436, 91, 447, 1274, 696, 2115, 92,
03210 538, 1089, 2023, 1090, 1998, 2059, 2117, 2041, 2095, 2095,
03211 1654, 869, 1090, 86, 1091, 87, 88, 302, 1439, 678,
03212 1092, 1064, 1338, 1091, 1530, 868, 1829, 1471, 1613, 429,
03213 630, 0, 0, 0, 2095, 0, 448, 885, 678, 1092,
03214 1655, 0, 1097, 0, 1093, 1094, 89, 678, 1092, 0,
03215 1095, 1339, 0, 1093, 1098, 0, 1096, 0, 449, 1095,
03216 -281, 1097, 0, 0, 0, 1096, 0, 0, 86, 807,
03217 1097, 88, 0, 1098, 0, 450, 451, 86, 1099, 0,
03218 88, 1656, 1098, 0, 0, 1657, 1658, 1099, 0, 0,
03219 0, 0, 452, 927, 0, 0, 86, 1442, 0, 88,
03220 0, 0, 1100, 0, 0, 86, 453, 730, 88, 0,
03221 0, 1659, 0, 0, 1660, 1661, 606, 607, 608, 609,
03222 610, 611, 612, 613, 614, 615, 0, 726, 727, 728,
03223 729, 730, -1214, 607, 608, 609, 610, 611, 612, 613,
03224 614, 615, 0, 0, 954, 0, 0, 0, 0, 0,
03225 0, 91, 1101, 0, 0, 0, 781, 0, 0, 90,
03226 0, 1101, 454, 0, 0, 1340, 0, 0, 0, 734,
03227 0, 0, 1442, 0, 984, 986, 988, 0, 0, 1102,
03228 0, 0, 0, 1442, 91, 0, 1443, 1104, 1102, 92,
03229 731, 732, 733, 734, 0, 0, 0, 0, 1105, 1444,
03230 0, 455, 1103, 0, 0, 0, 1104, 1445, 0, 0,
03231 0, 1103, 0, 1020, 0, 1104, 0, 1105, 0, 735,
03232 0, 0, 738, 0, 0, 1028, 1105, 1029, 739, 0,
03233 0, 0, 0, 456, 0, 0, 457, 458, 1446, 91,
03234 767, 0, 0, 735, 736, 737, 738, 0, 91, 0,
03235 0, 1905, 739, 0, 0, 0, 0, 0, 0, 1266,
03236 0, 1443, 0, 0, 0, 740, 0, 91, 0, 0,
03237 0, 0, 1443, 0, 1444, 0, 91, 0, 0, 0,
03238 459, 0, 1445, 0, 0, 1444, 0, 0, 0, 740,
03239 823, 824, 1447, 1445, 827, 742, 832, 833, 834, 835,
03240 836, 838, 840, 841, 842, 843, 844, 0, 0, 0,
03241 0, 1141, 0, 1446, 1143, 0, 1145, 1146, 741, 742,
03242 0, 1159, 0, 0, 1446, 0, 1909, 0, 0, 0,
03243 0, 0, 0, 1448, 0, 1166, 0, 0, 1168, 1169,
03244 1170, 1171, 0, 1173, 0, 0, 0, 0, 0, 0,
03245 1176, 0, 0, 1177, 0, 1178, 1179, 1180, 0, 0,
03246 0, 0, 1183, 1184, 1185, 0, 0, 1447, 1187, 1188,
03247 0, 1189, 0, 1191, 0, 1193, 0, 1195, 1447, 1196,
03248 0, 0, 0, 743, 1197, 0, 0, 0, 0, 0,
03249 0, 0, 745, 0, 0, 0, 0, 0, 0, 0,
03250 0, 1208, 0, 0, 0, 0, 0, 743, 1448, 0,
03251 0, 0, 0, 1216, 0, 744, 745, 0, 1221, 1448,
03252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03256 0, 0, 0, 0, 0, 0, 0, 0, 0, 1277,
03257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03261 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024,
03262 0, 0, 1027, 1362, 0, 0, 0, 0, 1366, 0,
03263 0, 0, 1368, 0, 0, 0, 0, 0, 0, 0,
03264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03265 0, 1381, 1382, 0, 0, 0, 0, 0, 0, 0,
03266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03267 1397, 0, 0, 0, 0, 0, 0, 0, 1406, 0,
03268 1408, 0, 1410, 0, 0, 0, 0, 0, 0, 0,
03269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03271 0, 0, 0, 0, 0, 0, 0, 0, 1277, 0,
03272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03273 0, 0, 0, 0, 0, 0, 0, 125, 126, 0,
03274 127, 128, 0, 0, 0, 0, 129, 0, 0, 0,
03275 130, 131, 132, 1469, 133, 0, 0, 0, 0, 134,
03276 0, 135, 136, 0, 137, 0, 0, 1474, 138, 0,
03277 0, 0, 139, 0, 0, 0, 140, 0, 141, 142,
03278 0, 143, 144, 0, 145, 146, 147, 148, 149, 150,
03279 0, 151, 152, 0, 153, 0, 0, 0, 0, 154,
03280 0, 0, 0, 0, 155, 156, 157, 0, 0, 158,
03281 0, 0, 0, 0, 159, 160, 0, 0, 0, 0,
03282 0, 0, 0, 0, 0, 161, 162, 0, 0, 0,
03283 163, 0, 164, 165, 166, 0, 0, 167, 0, 168,
03284 169, 0, 170, 171, 0, 172, 0, 173, 174, 0,
03285 0, 175, 0, 0, 176, 177, 178, 1547, 179, 0,
03286 0, 0, 180, 181, 0, 182, 0, 183, 0, 0,
03287 184, 0, 0, 0, 1555, 1556, 185, 86, 186, 0,
03288 88, 0, 1558, 187, 188, 0, 0, 1560, 0, 0,
03289 1561, 1562, 1563, 0, 0, 0, 0, 189, 0, 190,
03290 0, 0, 191, 0, 0, 192, 0, 0, 0, 193,
03291 0, 0, 0, 0, 0, 194, 195, 0, 196, 0,
03292 1277, 0, 0, 197, 198, 199, 200, 0, 0, 201,
03293 0, 202, 0, 203, 0, 204, 205, 206, 207, 0,
03294 0, 208, 209, 210, 0, 0, 211, 0, 0, 0,
03295 212, 213, 0, 214, 215, 216, 217, 0, 0, 0,
03296 1614, 0, 0, 0, 0, 218, 0, 1620, 219, 0,
03297 220, 221, 222, 223, 0, 0, 0, 0, 0, 224,
03298 0, 0, 0, 0, 225, 0, 0, 0, 0, 0,
03299 226, 0, 0, 0, 227, 228, 229, 230, 231, 232,
03300 233, 0, 234, 235, 0, 0, 0, 236, 237, 238,
03301 239, 0, 0, 240, 0, 241, 242, 243, 0, 0,
03302 0, 0, 0, 0, 0, 0, 0, 0, 244, 245,
03303 0, 0, 246, 0, 0, 247, 248, 249, 0, 0,
03304 250, 0, 251, 252, 0, 0, 253, 0, 0, 254,
03305 0, 255, 256, 0, 257, 0, 0, 258, 0, 0,
03306 259, 260, 0, 261, 262, 0, 1277, 0, 263, 0,
03307 0, 0, 0, 264, 0, 0, 0, 0, 0, 265,
03308 0, 266, 0, 0, 267, 0, 0, 0, 0, 268,
03309 269, 0, 0, 0, 0, 270, 0, 0, 0, 271,
03310 0, 0, 0, 0, 1474, 0, 0, 0, 0, 0,
03311 0, 0, 0, 0, 0, 0, 0, 0, 2102, 0,
03312 0, 0, 399, 2103, 0, 0, 0, 0, 0, 0,
03313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03317 0, 0, 1802, 0, 0, 0, 0, 0, 0, 0,
03318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03320 1474, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03321 0, 0, 0, 0, 1469, 0, 0, 0, 0, 0,
03322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03330 0, 0, 0, 0, 1911, 1912, 0, 0, 0, 1918,
03331 0, 0, 125, 318, 0, 127, 128, 0, 0, 0,
03332 0, 129, 0, 0, 0, 130, 131, 319, 0, 133,
03333 0, 0, 320, 321, 134, 0, 135, 136, 786, 137,
03334 0, 0, 0, 138, 322, 323, 324, 139, 0, 0,
03335 325, 140, 0, 141, 326, 0, 327, 144, 0, 145,
03336 146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
03337 328, 329, 0, 0, 154, 330, 331, 0, 332, 155,
03338 156, 157, 333, 334, 335, 0, 0, 0, 0, 336,
03339 160, 337, 0, 0, 338, 0, 0, 0, 0, 0,
03340 161, 162, 0, 1474, 0, 163, 0, 164, 165, 166,
03341 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
03342 172, 0, 173, 174, 339, 340, 175, 341, 342, 176,
03343 177, 178, 343, 179, 0, 0, 0, 180, 181, 0,
03344 182, 0, 183, 344, 0, 184, 0, 345, 0, 0,
03345 0, 346, 86, 186, 0, 88, 347, 0, 187, 188,
03346 0, 0, 0, 0, 0, 348, 349, 0, 1277, 0,
03347 0, 2025, 189, 2027, 350, 0, 0, 191, 0, 351,
03348 192, 0, 787, 352, 193, 0, 0, 0, 0, 0,
03349 194, 195, 0, 196, 353, 0, 0, 354, 197, 198,
03350 199, 355, 0, 0, 356, 357, 202, 0, 203, 358,
03351 359, 205, 206, 207, 0, 0, 208, 209, 210, 360,
03352 361, 211, 362, 363, 0, 212, 213, 0, 214, 215,
03353 216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
03354 218, 364, 0, 219, 0, 220, 221, 365, 223, 0,
03355 0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
03356 366, 367, 0, 0, 0, 226, 0, 0, 368, 227,
03357 228, 229, 230, 231, 369, 233, 0, 370, 235, 0,
03358 0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
03359 241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
03360 0, 0, 0, 244, 245, 371, 372, 246, 0, 0,
03361 247, 373, 249, 374, 375, 250, 376, 251, 252, 0,
03362 0, 253, 0, 377, 254, 0, 378, 379, 380, 257,
03363 0, 788, 258, 381, 382, 383, 260, 384, 261, 262,
03364 0, 0, 0, 263, 0, 0, 0, 0, 385, 0,
03365 0, 386, 387, 0, 388, 389, 266, 0, 0, 267,
03366 390, 0, 391, 392, 268, 269, 0, 0, 0, 0,
03367 270, 0, 0, 0, 393, 0, 0, 0, 0, 0,
03368 0, 0, 0, 0, 394, 395, 0, 0, 0, 0,
03369 396, 0, 397, 0, 398, 0, 0, 399, 400, 125,
03370 318, 0, 127, 128, 1465, 0, 0, 0, 129, 0,
03371 0, 0, 130, 131, 319, 0, 133, 0, 0, 1466,
03372 321, 134, 0, 135, 136, 0, 137, 0, 0, 0,
03373 138, 322, 323, 324, 139, 0, 0, 325, 140, 0,
03374 141, 326, 0, 327, 144, 0, 145, 146, 147, 148,
03375 149, 150, 0, 151, 152, 0, 153, 328, 329, 0,
03376 0, 154, 330, 331, 0, 332, 155, 156, 157, 333,
03377 334, 335, 0, 0, 0, 0, 336, 160, 337, 0,
03378 0, 1467, 0, 0, 0, 0, 0, 161, 162, 0,
03379 0, 0, 163, 0, 164, 165, 166, 0, 0, 167,
03380 0, 168, 169, 0, 170, 171, 0, 172, 0, 173,
03381 174, 339, 340, 175, 341, 342, 176, 177, 178, 343,
03382 179, 0, 0, 0, 180, 181, 0, 182, 0, 183,
03383 344, 0, 184, 0, 345, 0, 0, 0, 346, 86,
03384 186, 0, 88, 347, 0, 187, 188, 0, 0, 0,
03385 0, 0, 348, 349, 0, 0, 0, 0, 0, 189,
03386 0, 350, 0, 0, 191, 0, 351, 192, 0, 0,
03387 352, 193, 0, 0, 0, 0, 0, 194, 195, 0,
03388 196, 353, 0, 0, 354, 197, 198, 199, 355, 0,
03389 0, 356, 357, 202, 0, 203, 358, 359, 205, 206,
03390 207, 0, 0, 208, 209, 210, 360, 361, 211, 362,
03391 363, 0, 212, 213, 1468, 214, 215, 216, 217, 0,
03392 0, 0, 0, 0, 0, 0, 0, 218, 364, 0,
03393 219, 0, 220, 221, 365, 223, 0, 0, 0, 0,
03394 0, 224, 0, 0, 0, 0, 225, 366, 367, 0,
03395 0, 0, 226, 0, 0, 368, 227, 228, 229, 230,
03396 231, 369, 233, 0, 370, 235, 0, 0, 0, 236,
03397 237, 238, 239, 0, 0, 240, 0, 241, 242, 243,
03398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03399 244, 245, 371, 372, 246, 0, 0, 247, 373, 249,
03400 374, 375, 250, 376, 251, 252, 0, 0, 253, 0,
03401 377, 254, 0, 378, 379, 380, 257, 0, 0, 258,
03402 381, 382, 383, 260, 384, 261, 262, 0, 0, 0,
03403 263, 0, 0, 0, 0, 385, 0, 0, 386, 387,
03404 0, 388, 389, 266, 0, 0, 267, 390, 0, 391,
03405 392, 268, 269, 0, 0, 0, 0, 270, 0, 0,
03406 0, 393, 0, 0, 0, 0, 0, 0, 0, 0,
03407 0, 394, 395, 0, 0, 0, 0, 396, 0, 397,
03408 0, 398, 0, 0, 399, 400, 125, 318, 0, 127,
03409 128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
03410 131, 319, 0, 133, 0, 0, 320, 321, 134, 0,
03411 135, 136, 0, 137, 0, 0, 0, 138, 322, 323,
03412 324, 139, 0, 0, 325, 140, 0, 141, 326, 0,
03413 327, 144, 0, 145, 146, 147, 148, 149, 150, 0,
03414 151, 152, 0, 153, 328, 329, 0, 0, 154, 330,
03415 331, 0, 332, 155, 156, 157, 333, 334, 335, 0,
03416 0, 0, 0, 336, 160, 337, 0, 0, 338, 0,
03417 0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
03418 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
03419 0, 170, 171, 0, 172, 0, 173, 174, 339, 340,
03420 175, 341, 342, 176, 177, 178, 343, 179, 0, 0,
03421 0, 180, 181, 0, 182, 0, 183, 344, 0, 184,
03422 0, 345, 0, 0, 0, 346, 86, 186, 0, 88,
03423 347, 0, 187, 188, 0, 0, 0, 0, 0, 348,
03424 349, 0, 0, 0, 0, 0, 189, 0, 350, 0,
03425 0, 191, 0, 351, 192, 0, 0, 352, 193, 0,
03426 0, 0, 0, 0, 194, 195, 0, 196, 353, 0,
03427 0, 354, 197, 198, 199, 355, 0, 0, 356, 357,
03428 202, 0, 203, 358, 359, 205, 206, 207, 0, 0,
03429 208, 209, 210, 360, 361, 211, 362, 363, 0, 212,
03430 213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
03431 0, 0, 0, 0, 218, 364, 0, 219, 0, 220,
03432 221, 365, 223, 0, 0, 0, 0, 0, 224, 0,
03433 0, 0, 0, 225, 366, 367, 0, 0, 0, 226,
03434 0, 0, 368, 227, 228, 229, 230, 231, 369, 233,
03435 0, 370, 235, 0, 0, 0, 236, 237, 238, 239,
03436 0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
03437 0, 0, 0, 0, 0, 0, 0, 244, 245, 371,
03438 372, 246, 0, 0, 247, 373, 249, 374, 375, 250,
03439 376, 251, 252, 0, 0, 253, 0, 377, 254, 0,
03440 378, 379, 380, 257, 0, 0, 258, 381, 382, 383,
03441 260, 384, 261, 262, 0, 0, 0, 263, 0, 0,
03442 0, 0, 385, 0, 0, 386, 387, 0, 388, 389,
03443 266, 0, 0, 267, 390, 0, 391, 392, 268, 269,
03444 0, 0, 0, 0, 270, 0, 0, 0, 393, 0,
03445 0, 0, 0, 0, 0, 0, 0, 0, 394, 395,
03446 0, 0, 0, 0, 396, 0, 397, 717, 398, 0,
03447 0, 399, 400, 125, 318, 0, 127, 128, 0, 0,
03448 0, 0, 129, 0, 0, 0, 130, 131, 319, 0,
03449 133, 0, 0, 320, 321, 134, 0, 135, 136, 0,
03450 137, 0, 0, 0, 138, 322, 323, 324, 139, 0,
03451 0, 325, 140, 0, 141, 326, 0, 327, 144, 0,
03452 145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
03453 153, 328, 329, 0, 0, 154, 330, 331, 0, 332,
03454 155, 156, 157, 333, 334, 335, 0, 0, 0, 0,
03455 336, 160, 337, 0, 0, 338, 0, 0, 0, 0,
03456 0, 161, 162, 0, 0, 0, 163, 0, 164, 165,
03457 166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
03458 0, 172, 0, 173, 174, 339, 340, 175, 341, 342,
03459 176, 177, 178, 343, 179, 0, 0, 0, 180, 181,
03460 983, 182, 0, 183, 344, 0, 184, 0, 345, 0,
03461 0, 0, 346, 86, 186, 0, 88, 347, 0, 187,
03462 188, 0, 0, 0, 0, 0, 348, 349, 0, 0,
03463 0, 0, 0, 189, 0, 350, 0, 0, 191, 0,
03464 351, 192, 0, 0, 352, 193, 0, 0, 0, 0,
03465 0, 194, 195, 0, 196, 353, 0, 0, 354, 197,
03466 198, 199, 355, 0, 0, 356, 357, 202, 0, 203,
03467 358, 359, 205, 206, 207, 0, 0, 208, 209, 210,
03468 360, 361, 211, 362, 363, 0, 212, 213, 0, 214,
03469 215, 216, 217, 0, 0, 0, 0, 0, 0, 0,
03470 0, 218, 364, 0, 219, 0, 220, 221, 365, 223,
03471 0, 0, 0, 0, 0, 224, 0, 0, 0, 0,
03472 225, 366, 367, 0, 0, 0, 226, 0, 0, 368,
03473 227, 228, 229, 230, 231, 369, 233, 0, 370, 235,
03474 0, 0, 0, 236, 237, 238, 239, 0, 0, 240,
03475 0, 241, 242, 243, 0, 0, 0, 0, 0, 0,
03476 0, 0, 0, 0, 244, 245, 371, 372, 246, 0,
03477 0, 247, 373, 249, 374, 375, 250, 376, 251, 252,
03478 0, 0, 253, 0, 377, 254, 0, 378, 379, 380,
03479 257, 0, 0, 258, 381, 382, 383, 260, 384, 261,
03480 262, 0, 0, 0, 263, 0, 0, 0, 0, 385,
03481 0, 0, 386, 387, 0, 388, 389, 266, 0, 0,
03482 267, 390, 0, 391, 392, 268, 269, 0, 0, 0,
03483 0, 270, 0, 0, 0, 393, 0, 0, 0, 0,
03484 0, 0, 0, 0, 0, 394, 395, 0, 0, 0,
03485 0, 396, 0, 397, 0, 398, 0, 0, 399, 400,
03486 125, 318, 0, 127, 128, 0, 0, 0, 0, 129,
03487 0, 0, 0, 130, 131, 319, 0, 133, 0, 0,
03488 320, 321, 134, 0, 135, 136, 0, 137, 0, 0,
03489 0, 138, 322, 323, 324, 139, 0, 0, 325, 140,
03490 0, 141, 326, 0, 327, 144, 0, 145, 146, 147,
03491 148, 149, 150, 0, 151, 152, 0, 153, 328, 329,
03492 0, 0, 154, 330, 331, 0, 332, 155, 156, 157,
03493 333, 334, 335, 0, 0, 0, 0, 336, 160, 337,
03494 0, 0, 338, 0, 0, 0, 0, 0, 161, 162,
03495 0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
03496 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
03497 173, 174, 339, 340, 175, 341, 342, 176, 177, 178,
03498 343, 179, 0, 0, 0, 180, 181, 985, 182, 0,
03499 183, 344, 0, 184, 0, 345, 0, 0, 0, 346,
03500 86, 186, 0, 88, 347, 0, 187, 188, 0, 0,
03501 0, 0, 0, 348, 349, 0, 0, 0, 0, 0,
03502 189, 0, 350, 0, 0, 191, 0, 351, 192, 0,
03503 0, 352, 193, 0, 0, 0, 0, 0, 194, 195,
03504 0, 196, 353, 0, 0, 354, 197, 198, 199, 355,
03505 0, 0, 356, 357, 202, 0, 203, 358, 359, 205,
03506 206, 207, 0, 0, 208, 209, 210, 360, 361, 211,
03507 362, 363, 0, 212, 213, 0, 214, 215, 216, 217,
03508 0, 0, 0, 0, 0, 0, 0, 0, 218, 364,
03509 0, 219, 0, 220, 221, 365, 223, 0, 0, 0,
03510 0, 0, 224, 0, 0, 0, 0, 225, 366, 367,
03511 0, 0, 0, 226, 0, 0, 368, 227, 228, 229,
03512 230, 231, 369, 233, 0, 370, 235, 0, 0, 0,
03513 236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
03514 243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03515 0, 244, 245, 371, 372, 246, 0, 0, 247, 373,
03516 249, 374, 375, 250, 376, 251, 252, 0, 0, 253,
03517 0, 377, 254, 0, 378, 379, 380, 257, 0, 0,
03518 258, 381, 382, 383, 260, 384, 261, 262, 0, 0,
03519 0, 263, 0, 0, 0, 0, 385, 0, 0, 386,
03520 387, 0, 388, 389, 266, 0, 0, 267, 390, 0,
03521 391, 392, 268, 269, 0, 0, 0, 0, 270, 0,
03522 0, 0, 393, 0, 0, 0, 0, 0, 0, 0,
03523 0, 0, 394, 395, 0, 0, 0, 0, 396, 0,
03524 397, 0, 398, 0, 0, 399, 400, 125, 318, 0,
03525 127, 128, 0, 0, 0, 0, 129, 0, 0, 0,
03526 130, 131, 319, 0, 133, 0, 0, 320, 321, 134,
03527 0, 135, 136, 0, 137, 0, 0, 0, 138, 322,
03528 323, 324, 139, 0, 0, 325, 140, 0, 141, 326,
03529 0, 327, 144, 0, 145, 146, 147, 148, 149, 150,
03530 0, 151, 152, 0, 153, 328, 329, 0, 0, 154,
03531 330, 331, 0, 332, 155, 156, 157, 333, 334, 335,
03532 0, 0, 0, 0, 336, 160, 337, 0, 0, 338,
03533 0, 0, 0, 0, 0, 161, 162, 0, 0, 0,
03534 163, 0, 164, 165, 166, 0, 0, 167, 0, 168,
03535 169, 0, 170, 171, 0, 172, 0, 173, 174, 339,
03536 340, 175, 341, 342, 176, 177, 178, 343, 179, 0,
03537 0, 0, 180, 181, 987, 182, 0, 183, 344, 0,
03538 184, 0, 345, 0, 0, 0, 346, 86, 186, 0,
03539 88, 347, 0, 187, 188, 0, 0, 0, 0, 0,
03540 348, 349, 0, 0, 0, 0, 0, 189, 0, 350,
03541 0, 0, 191, 0, 351, 192, 0, 0, 352, 193,
03542 0, 0, 0, 0, 0, 194, 195, 0, 196, 353,
03543 0, 0, 354, 197, 198, 199, 355, 0, 0, 356,
03544 357, 202, 0, 203, 358, 359, 205, 206, 207, 0,
03545 0, 208, 209, 210, 360, 361, 211, 362, 363, 0,
03546 212, 213, 0, 214, 215, 216, 217, 0, 0, 0,
03547 0, 0, 0, 0, 0, 218, 364, 0, 219, 0,
03548 220, 221, 365, 223, 0, 0, 0, 0, 0, 224,
03549 0, 0, 0, 0, 225, 366, 367, 0, 0, 0,
03550 226, 0, 0, 368, 227, 228, 229, 230, 231, 369,
03551 233, 0, 370, 235, 0, 0, 0, 236, 237, 238,
03552 239, 0, 0, 240, 0, 241, 242, 243, 0, 0,
03553 0, 0, 0, 0, 0, 0, 0, 0, 244, 245,
03554 371, 372, 246, 0, 0, 247, 373, 249, 374, 375,
03555 250, 376, 251, 252, 0, 0, 253, 0, 377, 254,
03556 0, 378, 379, 380, 257, 0, 0, 258, 381, 382,
03557 383, 260, 384, 261, 262, 0, 0, 0, 263, 0,
03558 0, 0, 0, 385, 0, 0, 386, 387, 0, 388,
03559 389, 266, 0, 0, 267, 390, 0, 391, 392, 268,
03560 269, 0, 0, 0, 0, 270, 0, 0, 0, 393,
03561 0, 0, 0, 0, 0, 0, 0, 0, 0, 394,
03562 395, 0, 0, 0, 0, 396, 0, 397, 0, 398,
03563 0, 0, 399, 400, 125, 318, 0, 127, 128, 0,
03564 0, 0, 0, 129, 0, 0, 0, 130, 131, 319,
03565 0, 133, 0, 0, 320, 321, 134, 0, 135, 136,
03566 0, 137, 0, 0, 0, 138, 322, 323, 324, 139,
03567 0, 0, 325, 140, 0, 141, 326, 0, 327, 144,
03568 0, 145, 146, 147, 148, 149, 150, 0, 151, 152,
03569 0, 153, 328, 329, 0, 0, 154, 330, 331, 0,
03570 332, 155, 156, 157, 333, 334, 335, 0, 0, 0,
03571 0, 336, 160, 337, 0, 0, 338, 0, 0, 0,
03572 0, 0, 161, 162, 0, 0, 0, 163, 0, 164,
03573 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
03574 171, 0, 172, 0, 173, 174, 339, 340, 175, 341,
03575 342, 176, 177, 178, 343, 179, 0, 0, 0, 180,
03576 181, 0, 182, 0, 183, 344, 0, 184, 0, 345,
03577 0, 0, 0, 346, 86, 186, 0, 88, 347, 0,
03578 187, 188, 0, 0, 0, 0, 0, 348, 349, 0,
03579 0, 0, 0, 0, 189, 0, 350, 0, 0, 191,
03580 0, 351, 192, 0, 0, 352, 193, 0, 0, 0,
03581 0, 0, 194, 195, 0, 196, 353, 0, 0, 354,
03582 197, 198, 199, 355, 0, 0, 356, 357, 202, 0,
03583 203, 358, 359, 205, 206, 207, 0, 0, 208, 209,
03584 210, 360, 361, 211, 362, 363, 0, 212, 213, 0,
03585 214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
03586 0, 0, 218, 364, 0, 219, 0, 220, 221, 365,
03587 223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
03588 0, 225, 366, 367, 0, 0, 0, 226, 0, 0,
03589 368, 227, 228, 229, 230, 231, 369, 233, 0, 370,
03590 235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
03591 240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
03592 0, 0, 0, 0, 0, 244, 245, 371, 372, 246,
03593 0, 0, 247, 373, 249, 374, 375, 250, 376, 251,
03594 252, 0, 0, 253, 0, 377, 254, 0, 378, 379,
03595 380, 257, 0, 0, 258, 381, 382, 383, 260, 384,
03596 261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
03597 385, 0, 0, 386, 387, 0, 388, 389, 266, 0,
03598 0, 267, 390, 0, 391, 392, 268, 269, 0, 0,
03599 0, 0, 270, 0, 0, 0, 393, 0, 0, 0,
03600 0, 0, 0, 0, 0, 0, 394, 395, 0, 0,
03601 0, 0, 396, 0, 397, 0, 398, 0, 0, 399,
03602 400, 125, 318, 0, 127, 128, 0, 0, 0, 0,
03603 129, 0, 0, 0, 130, 131, 319, 0, 133, 0,
03604 0, 320, 321, 134, 0, 135, 136, 0, 137, 0,
03605 0, 0, 138, 322, 323, 324, 139, 0, 0, 325,
03606 140, 0, 141, 326, 0, 327, 144, 0, 145, 146,
03607 147, 148, 149, 150, 0, 151, 152, 0, 153, 328,
03608 329, 0, 0, 154, 330, 331, 0, 332, 155, 156,
03609 157, 333, 334, 335, 0, 0, 0, 0, 336, 160,
03610 337, 0, 0, 338, 0, 0, 0, 0, 0, 161,
03611 162, 0, 0, 0, 163, 0, 164, 165, 166, 0,
03612 0, 167, 0, 168, 169, 0, 170, 171, 0, 172,
03613 0, 173, 174, 339, 340, 175, 341, 342, 176, 177,
03614 178, 343, 179, 0, 0, 0, 180, 181, 0, 182,
03615 0, 183, 344, 0, 184, 0, 345, 0, 0, 0,
03616 346, 86, 186, 0, 88, 347, 0, 187, 188, 0,
03617 0, 0, 0, 0, 348, 349, 0, 0, 0, 0,
03618 0, 189, 0, 350, 0, 0, 191, 0, 351, 192,
03619 0, 0, 352, 193, 0, 0, 0, 0, 0, 194,
03620 195, 0, 196, 353, 0, 0, 354, 197, 198, 199,
03621 355, 0, 0, 356, 357, 202, 0, 203, 358, 359,
03622 205, 206, 207, 0, 0, 208, 209, 210, 360, 361,
03623 211, 362, 363, 0, 212, 213, 0, 214, 215, 216,
03624 217, 0, 0, 0, 0, 0, 0, 0, 0, 218,
03625 364, 0, 219, 0, 220, 221, 365, 223, 0, 0,
03626 0, 0, 0, 224, 0, 0, 0, 0, 225, 366,
03627 367, 0, 0, 0, 226, 0, 0, 368, 227, 228,
03628 229, 230, 231, 369, 233, 0, 370, 235, 0, 0,
03629 0, 236, 237, 238, 239, 0, 0, 240, 0, 241,
03630 242, 243, 0, 0, 0, 0, 0, 0, 0, 0,
03631 0, 0, 244, 245, 371, 372, 246, 0, 0, 247,
03632 373, 249, 374, 375, 250, 376, 251, 252, 0, 0,
03633 253, 0, 377, 254, 0, 378, 379, 380, 257, 0,
03634 0, 258, 381, 382, 383, 260, 384, 261, 262, 0,
03635 0, 0, 263, 0, 0, 0, 0, 385, 0, 0,
03636 386, 387, 0, 388, 389, 266, 0, 0, 267, 390,
03637 0, 391, 392, 268, 269, 0, 0, 0, 0, 270,
03638 0, 0, 0, 393, 0, 0, 0, 0, 0, 0,
03639 0, 0, 0, 394, 395, 0, 0, 0, 0, 396,
03640 0, 535, 0, 398, 0, 0, 399, 400, 125, 318,
03641 0, 127, 128, 819, 0, 0, 0, 820, 0, 0,
03642 0, 130, 131, 319, 0, 133, 0, 0, 320, 321,
03643 134, 0, 135, 136, 0, 137, 0, 0, 0, 138,
03644 322, 323, 324, 139, 0, 0, 325, 140, 0, 141,
03645 326, 0, 327, 144, 0, 145, 146, 147, 148, 149,
03646 150, 0, 151, 152, 0, 153, 328, 329, 0, 0,
03647 154, 330, 331, 0, 332, 155, 156, 157, 333, 334,
03648 335, 0, 0, 0, 0, 336, 160, 337, 0, 0,
03649 338, 0, 0, 0, 0, 0, 161, 162, 0, 0,
03650 0, 163, 0, 164, 165, 166, 0, 0, 167, 0,
03651 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
03652 339, 340, 175, 341, 342, 176, 177, 178, 343, 179,
03653 0, 0, 0, 180, 181, 0, 182, 0, 183, 344,
03654 0, 184, 0, 345, 0, 0, 0, 346, 86, 186,
03655 0, 88, 347, 0, 187, 188, 0, 0, 0, 0,
03656 0, 348, 349, 0, 0, 0, 0, 0, 189, 0,
03657 350, 0, 0, 191, 0, 351, 192, 0, 0, 352,
03658 193, 0, 0, 0, 0, 0, 194, 195, 0, 196,
03659 353, 0, 0, 354, 197, 198, 199, 355, 0, 0,
03660 356, 357, 202, 0, 203, 358, 359, 205, 206, 207,
03661 0, 0, 208, 209, 210, 0, 361, 211, 362, 363,
03662 0, 212, 213, 0, 214, 215, 216, 217, 0, 0,
03663 0, 0, 0, 0, 0, 0, 218, 364, 0, 219,
03664 0, 220, 221, 365, 223, 0, 0, 0, 0, 0,
03665 224, 0, 0, 0, 0, 225, 366, 367, 0, 0,
03666 0, 226, 0, 0, 368, 227, 228, 229, 230, 231,
03667 369, 233, 0, 370, 235, 0, 0, 0, 236, 237,
03668 238, 239, 0, 0, 240, 0, 241, 242, 243, 0,
03669 0, 0, 0, 0, 0, 0, 0, 0, 0, 244,
03670 245, 371, 372, 246, 0, 0, 247, 373, 249, 374,
03671 375, 250, 376, 251, 252, 0, 0, 253, 0, 377,
03672 254, 0, 378, 379, 380, 257, 0, 0, 258, 381,
03673 382, 383, 260, 384, 261, 262, 0, 0, 0, 263,
03674 0, 0, 0, 0, 385, 0, 0, 386, 387, 0,
03675 388, 389, 266, 0, 0, 267, 390, 0, 391, 392,
03676 268, 269, 0, 0, 0, 0, 270, 0, 0, 0,
03677 393, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03678 394, 395, 0, 0, 0, 0, 396, 0, 397, 0,
03679 398, 0, 0, 399, 400, 125, 318, 0, 127, 128,
03680 0, 0, 0, 0, 129, 0, 0, 0, 130, 131,
03681 319, 0, 133, 0, 0, 320, 321, 134, 0, 135,
03682 136, 0, 137, 0, 0, 0, 138, 322, 323, 324,
03683 139, 0, 0, 325, 140, 0, 141, 326, 0, 327,
03684 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
03685 152, 0, 153, 328, 329, 0, 0, 154, 330, 331,
03686 0, 332, 155, 156, 157, 333, 334, 335, 0, 0,
03687 0, 0, 336, 160, 337, 0, 0, 338, 0, 0,
03688 0, 0, 0, 161, 162, 0, 0, 0, 163, 0,
03689 164, 165, 166, 0, 0, 167, 0, 168, 169, 0,
03690 170, 171, 0, 172, 0, 173, 174, 339, 340, 175,
03691 341, 342, 176, 177, 178, 343, 179, 0, 0, 0,
03692 180, 181, 0, 182, 0, 183, 344, 0, 184, 0,
03693 345, 0, 0, 0, 346, 86, 186, 0, 88, 347,
03694 0, 187, 188, 0, 0, 0, 0, 0, 348, 1140,
03695 0, 0, 0, 0, 0, 189, 0, 350, 0, 0,
03696 191, 0, 351, 192, 0, 0, 352, 193, 0, 0,
03697 0, 0, 0, 194, 195, 0, 196, 353, 0, 0,
03698 354, 197, 198, 199, 355, 0, 0, 356, 357, 202,
03699 0, 203, 358, 359, 205, 206, 207, 0, 0, 208,
03700 209, 210, 360, 361, 211, 362, 363, 0, 212, 213,
03701 0, 214, 215, 216, 217, 0, 0, 0, 0, 0,
03702 0, 0, 0, 218, 364, 0, 219, 0, 220, 221,
03703 365, 223, 0, 0, 0, 0, 0, 224, 0, 0,
03704 0, 0, 225, 366, 367, 0, 0, 0, 226, 0,
03705 0, 368, 227, 228, 229, 230, 231, 369, 233, 0,
03706 370, 235, 0, 0, 0, 236, 237, 238, 239, 0,
03707 0, 240, 0, 241, 242, 243, 0, 0, 0, 0,
03708 0, 0, 0, 0, 0, 0, 244, 245, 371, 372,
03709 246, 0, 0, 247, 373, 249, 374, 375, 250, 376,
03710 251, 252, 0, 0, 253, 0, 377, 254, 0, 378,
03711 379, 380, 257, 0, 0, 258, 381, 382, 383, 260,
03712 384, 261, 262, 0, 0, 0, 263, 0, 0, 0,
03713 0, 385, 0, 0, 386, 387, 0, 388, 389, 266,
03714 0, 0, 267, 390, 0, 391, 392, 268, 269, 0,
03715 0, 0, 0, 270, 0, 0, 0, 393, 0, 0,
03716 0, 0, 0, 0, 0, 0, 0, 394, 395, 0,
03717 0, 0, 0, 396, 0, 397, 0, 398, 0, 0,
03718 399, 400, 125, 318, 0, 127, 128, 0, 0, 0,
03719 0, 129, 0, 0, 0, 130, 131, 319, 0, 133,
03720 0, 0, 320, 321, 134, 0, 135, 136, 0, 137,
03721 0, 0, 0, 138, 322, 323, 324, 139, 0, 0,
03722 325, 140, 0, 141, 326, 0, 327, 144, 0, 145,
03723 146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
03724 328, 329, 0, 0, 154, 330, 331, 0, 332, 155,
03725 156, 157, 333, 334, 335, 0, 0, 0, 0, 336,
03726 160, 337, 0, 0, 338, 0, 0, 0, 0, 0,
03727 161, 162, 0, 0, 0, 163, 0, 164, 165, 166,
03728 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
03729 172, 0, 173, 174, 339, 340, 175, 341, 342, 176,
03730 177, 178, 343, 179, 0, 0, 0, 180, 181, 0,
03731 182, 0, 183, 344, 0, 184, 0, 345, 0, 0,
03732 0, 346, 86, 186, 0, 88, 347, 0, 187, 188,
03733 0, 0, 0, 0, 0, 348, 1182, 0, 0, 0,
03734 0, 0, 189, 0, 350, 0, 0, 191, 0, 351,
03735 192, 0, 0, 352, 193, 0, 0, 0, 0, 0,
03736 194, 195, 0, 196, 353, 0, 0, 354, 197, 198,
03737 199, 355, 0, 0, 356, 357, 202, 0, 203, 358,
03738 359, 205, 206, 207, 0, 0, 208, 209, 210, 360,
03739 361, 211, 362, 363, 0, 212, 213, 0, 214, 215,
03740 216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
03741 218, 364, 0, 219, 0, 220, 221, 365, 223, 0,
03742 0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
03743 366, 367, 0, 0, 0, 226, 0, 0, 368, 227,
03744 228, 229, 230, 231, 369, 233, 0, 370, 235, 0,
03745 0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
03746 241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
03747 0, 0, 0, 244, 245, 371, 372, 246, 0, 0,
03748 247, 373, 249, 374, 375, 250, 376, 251, 252, 0,
03749 0, 253, 0, 377, 254, 0, 378, 379, 380, 257,
03750 0, 0, 258, 381, 382, 383, 260, 384, 261, 262,
03751 0, 0, 0, 263, 0, 0, 0, 0, 385, 0,
03752 0, 386, 387, 0, 388, 389, 266, 0, 0, 267,
03753 390, 0, 391, 392, 268, 269, 0, 0, 0, 0,
03754 270, 0, 0, 0, 393, 0, 0, 0, 0, 0,
03755 0, 0, 0, 0, 394, 395, 0, 0, 0, 0,
03756 396, 0, 397, 0, 398, 0, 0, 399, 400, 125,
03757 318, 0, 127, 128, 0, 0, 0, 0, 129, 0,
03758 0, 0, 130, 131, 319, 0, 133, 0, 0, 320,
03759 321, 134, 0, 135, 136, 0, 137, 0, 0, 0,
03760 138, 322, 323, 324, 139, 0, 0, 325, 140, 0,
03761 141, 326, 0, 327, 144, 0, 145, 146, 147, 148,
03762 149, 150, 0, 151, 152, 0, 153, 328, 329, 0,
03763 0, 154, 330, 331, 0, 332, 155, 156, 157, 333,
03764 334, 335, 0, 0, 0, 0, 336, 160, 337, 0,
03765 0, 1276, 0, 0, 0, 0, 0, 161, 162, 0,
03766 0, 0, 163, 0, 164, 165, 166, 0, 0, 167,
03767 0, 168, 169, 0, 170, 171, 0, 172, 0, 173,
03768 174, 339, 340, 175, 341, 342, 176, 177, 178, 343,
03769 179, 0, 0, 0, 180, 181, 0, 182, 0, 183,
03770 344, 0, 184, 0, 345, 0, 0, 0, 346, 86,
03771 186, 0, 88, 347, 0, 187, 188, 0, 0, 0,
03772 0, 0, 348, 349, 0, 0, 0, 0, 0, 189,
03773 0, 350, 0, 0, 191, 0, 351, 192, 0, 0,
03774 352, 193, 0, 0, 0, 0, 0, 194, 195, 0,
03775 196, 353, 0, 0, 354, 197, 198, 199, 355, 0,
03776 0, 356, 357, 202, 0, 203, 358, 359, 205, 206,
03777 207, 0, 0, 208, 209, 210, 360, 361, 211, 362,
03778 363, 0, 212, 213, 0, 214, 215, 216, 217, 0,
03779 0, 0, 0, 0, 0, 0, 0, 218, 364, 0,
03780 219, 0, 220, 221, 365, 223, 0, 0, 0, 0,
03781 0, 224, 0, 0, 0, 0, 225, 366, 367, 0,
03782 0, 0, 226, 0, 0, 368, 227, 228, 229, 230,
03783 231, 369, 233, 0, 370, 235, 0, 0, 0, 236,
03784 237, 238, 239, 0, 0, 240, 0, 241, 242, 243,
03785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03786 244, 245, 371, 372, 246, 0, 0, 247, 373, 249,
03787 374, 375, 250, 376, 251, 252, 0, 0, 253, 0,
03788 377, 254, 0, 378, 379, 380, 257, 0, 0, 258,
03789 381, 382, 383, 260, 384, 261, 262, 0, 0, 0,
03790 263, 0, 0, 0, 0, 385, 0, 0, 386, 387,
03791 0, 388, 389, 266, 0, 0, 267, 390, 0, 391,
03792 392, 268, 269, 0, 0, 0, 0, 270, 0, 0,
03793 0, 393, 0, 0, 0, 0, 0, 0, 0, 0,
03794 0, 394, 395, 0, 0, 0, 0, 396, 0, 397,
03795 0, 398, 0, 0, 399, 400, 125, 318, 0, 127,
03796 128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
03797 131, 319, 0, 133, 0, 0, 320, 321, 134, 0,
03798 135, 136, 0, 137, 0, 0, 0, 138, 322, 323,
03799 324, 139, 0, 0, 325, 140, 0, 141, 326, 0,
03800 327, 144, 0, 145, 146, 147, 148, 149, 150, 0,
03801 151, 152, 0, 153, 328, 329, 0, 0, 154, 330,
03802 331, 0, 332, 155, 156, 157, 333, 334, 335, 0,
03803 0, 0, 0, 336, 160, 337, 0, 0, 338, 0,
03804 0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
03805 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
03806 0, 170, 171, 0, 172, 0, 173, 174, 339, 340,
03807 175, 341, 342, 176, 177, 178, 343, 179, 0, 0,
03808 0, 180, 181, 0, 182, 0, 183, 344, 0, 184,
03809 0, 345, 0, 0, 0, 346, 86, 186, 0, 88,
03810 347, 0, 187, 188, 0, 0, 0, 0, 0, 348,
03811 349, 0, 0, 0, 0, 0, 189, 0, 350, 0,
03812 0, 191, 0, 351, 192, 0, 0, 352, 193, 0,
03813 0, 0, 0, 0, 194, 195, 0, 196, 353, 0,
03814 0, 354, 197, 198, 199, 355, 0, 0, 356, 357,
03815 202, 0, 203, 358, 359, 205, 206, 207, 0, 0,
03816 208, 209, 210, 0, 361, 211, 362, 363, 0, 212,
03817 213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
03818 0, 0, 0, 0, 218, 364, 0, 219, 0, 220,
03819 221, 365, 223, 0, 0, 0, 0, 0, 224, 0,
03820 0, 0, 0, 225, 366, 367, 0, 0, 0, 226,
03821 0, 0, 368, 227, 228, 229, 230, 231, 369, 233,
03822 0, 370, 235, 0, 0, 0, 236, 237, 238, 239,
03823 0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
03824 0, 0, 0, 0, 0, 0, 0, 244, 245, 371,
03825 372, 246, 0, 0, 247, 373, 249, 374, 375, 250,
03826 376, 251, 252, 0, 0, 253, 0, 377, 254, 0,
03827 378, 379, 380, 257, 0, 0, 258, 381, 382, 383,
03828 260, 384, 261, 262, 0, 0, 0, 263, 0, 0,
03829 0, 0, 385, 0, 0, 386, 387, 0, 388, 389,
03830 266, 0, 0, 267, 390, 0, 391, 392, 268, 269,
03831 0, 0, 0, 0, 270, 0, 0, 0, 393, 0,
03832 0, 0, 0, 0, 0, 0, 0, 0, 394, 395,
03833 0, 0, 0, 0, 396, 0, 397, 0, 398, 0,
03834 0, 399, 400, 125, 318, 0, 127, 128, 0, 0,
03835 0, 0, 129, 0, 0, 0, 130, 131, 319, 0,
03836 133, 0, 0, 320, 321, 134, 0, 135, 136, 0,
03837 137, 0, 0, 0, 138, 322, 323, 324, 139, 0,
03838 0, 325, 140, 0, 141, 326, 0, 327, 144, 0,
03839 145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
03840 153, 328, 329, 0, 0, 154, 330, 331, 0, 332,
03841 155, 156, 157, 333, 334, 335, 0, 0, 0, 0,
03842 336, 160, 337, 0, 0, 338, 0, 0, 0, 0,
03843 0, 161, 162, 0, 0, 0, 163, 0, 164, 165,
03844 166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
03845 0, 172, 0, 173, 174, 339, 340, 175, 341, 342,
03846 176, 177, 178, 343, 179, 0, 0, 0, 180, 181,
03847 0, 182, 0, 183, 344, 0, 184, 0, 345, 0,
03848 0, 0, 346, 86, 186, 0, 88, 347, 0, 187,
03849 188, 0, 0, 0, 0, 0, 348, 837, 0, 0,
03850 0, 0, 0, 189, 0, 350, 0, 0, 191, 0,
03851 351, 192, 0, 0, 352, 193, 0, 0, 0, 0,
03852 0, 194, 195, 0, 196, 353, 0, 0, 354, 197,
03853 198, 199, 355, 0, 0, 356, 357, 202, 0, 203,
03854 358, 359, 205, 206, 207, 0, 0, 208, 209, 210,
03855 0, 361, 211, 362, 363, 0, 212, 213, 0, 214,
03856 215, 216, 217, 0, 0, 0, 0, 0, 0, 0,
03857 0, 218, 364, 0, 219, 0, 220, 221, 365, 223,
03858 0, 0, 0, 0, 0, 224, 0, 0, 0, 0,
03859 225, 366, 367, 0, 0, 0, 226, 0, 0, 368,
03860 227, 228, 229, 230, 231, 369, 233, 0, 370, 235,
03861 0, 0, 0, 236, 237, 238, 239, 0, 0, 240,
03862 0, 241, 242, 243, 0, 0, 0, 0, 0, 0,
03863 0, 0, 0, 0, 244, 245, 371, 372, 246, 0,
03864 0, 247, 373, 249, 374, 375, 250, 376, 251, 252,
03865 0, 0, 253, 0, 377, 254, 0, 378, 379, 380,
03866 257, 0, 0, 258, 381, 382, 383, 260, 384, 261,
03867 262, 0, 0, 0, 263, 0, 0, 0, 0, 385,
03868 0, 0, 386, 387, 0, 388, 389, 266, 0, 0,
03869 267, 390, 0, 391, 392, 268, 269, 0, 0, 0,
03870 0, 270, 0, 0, 0, 393, 0, 0, 0, 0,
03871 0, 0, 0, 0, 0, 394, 395, 0, 0, 0,
03872 0, 396, 0, 397, 0, 398, 0, 0, 399, 400,
03873 125, 318, 0, 127, 128, 0, 0, 0, 0, 129,
03874 0, 0, 0, 130, 131, 319, 0, 133, 0, 0,
03875 320, 321, 134, 0, 135, 136, 0, 137, 0, 0,
03876 0, 138, 322, 323, 324, 139, 0, 0, 325, 140,
03877 0, 141, 326, 0, 327, 144, 0, 145, 146, 147,
03878 148, 149, 150, 0, 151, 152, 0, 153, 328, 329,
03879 0, 0, 154, 330, 331, 0, 332, 155, 156, 157,
03880 333, 334, 335, 0, 0, 0, 0, 336, 160, 337,
03881 0, 0, 338, 0, 0, 0, 0, 0, 161, 162,
03882 0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
03883 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
03884 173, 174, 339, 340, 175, 341, 342, 176, 177, 178,
03885 343, 179, 0, 0, 0, 180, 181, 0, 182, 0,
03886 183, 344, 0, 184, 0, 345, 0, 0, 0, 346,
03887 86, 186, 0, 88, 347, 0, 187, 188, 0, 0,
03888 0, 0, 0, 348, 839, 0, 0, 0, 0, 0,
03889 189, 0, 350, 0, 0, 191, 0, 351, 192, 0,
03890 0, 352, 193, 0, 0, 0, 0, 0, 194, 195,
03891 0, 196, 353, 0, 0, 354, 197, 198, 199, 355,
03892 0, 0, 356, 357, 202, 0, 203, 358, 359, 205,
03893 206, 207, 0, 0, 208, 209, 210, 0, 361, 211,
03894 362, 363, 0, 212, 213, 0, 214, 215, 216, 217,
03895 0, 0, 0, 0, 0, 0, 0, 0, 218, 364,
03896 0, 219, 0, 220, 221, 365, 223, 0, 0, 0,
03897 0, 0, 224, 0, 0, 0, 0, 225, 366, 367,
03898 0, 0, 0, 226, 0, 0, 368, 227, 228, 229,
03899 230, 231, 369, 233, 0, 370, 235, 0, 0, 0,
03900 236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
03901 243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
03902 0, 244, 245, 371, 372, 246, 0, 0, 247, 373,
03903 249, 374, 375, 250, 376, 251, 252, 0, 0, 253,
03904 0, 377, 254, 0, 378, 379, 380, 257, 0, 0,
03905 258, 381, 382, 383, 260, 384, 261, 262, 0, 0,
03906 0, 263, 0, 0, 0, 0, 385, 0, 0, 386,
03907 387, 0, 388, 389, 266, 0, 0, 267, 390, 0,
03908 391, 392, 268, 269, 0, 0, 0, 0, 270, 0,
03909 0, 0, 393, 0, 0, 0, 0, 0, 0, 0,
03910 0, 0, 394, 395, 0, 0, 0, 0, 396, 0,
03911 397, 0, 398, 0, 0, 399, 400, 125, 126, 0,
03912 127, 128, 0, 0, 0, 0, 129, 0, 0, 0,
03913 130, 131, 132, 0, 133, 0, 0, 0, 0, 134,
03914 0, 135, 136, 0, 137, 0, 0, 0, 138, 0,
03915 0, 0, 139, 0, 0, 0, 140, 0, 141, 142,
03916 0, 143, 144, 0, 145, 146, 147, 148, 149, 150,
03917 0, 151, 152, 0, 153, 0, 0, 0, 0, 154,
03918 0, 0, 0, 0, 155, 156, 157, 0, 0, 158,
03919 0, 0, 0, 0, 159, 160, 0, 0, 0, 0,
03920 0, 0, 0, 0, 0, 161, 162, 0, 0, 0,
03921 163, 0, 164, 165, 166, 0, 0, 167, 0, 168,
03922 169, 0, 170, 171, 0, 172, 0, 173, 174, 0,
03923 0, 175, 0, 0, 176, 177, 178, 0, 179, 0,
03924 0, 0, 180, 181, 0, 182, 0, 183, 0, 0,
03925 184, 0, 0, 0, 0, 0, 185, 86, 186, 0,
03926 88, 0, 0, 187, 188, 0, 0, 0, 0, 0,
03927 0, 0, 0, 0, 0, 0, 0, 189, 0, 190,
03928 0, 0, 191, 0, 0, 192, 0, 0, 0, 193,
03929 0, 0, 0, 0, 0, 194, 195, 0, 196, 0,
03930 0, 0, 0, 197, 198, 199, 200, 0, 0, 201,
03931 0, 202, 0, 203, 0, 204, 205, 206, 207, 0,
03932 0, 208, 209, 210, 0, 0, 211, 0, 0, 0,
03933 212, 213, 0, 214, 215, 216, 217, 0, 0, 0,
03934 0, 0, 0, 0, 0, 218, 0, 0, 219, 0,
03935 220, 221, 222, 223, 0, 0, 0, 0, 0, 224,
03936 0, 0, 0, 0, 225, 0, 0, 0, 0, 0,
03937 226, 0, 0, 0, 227, 228, 229, 230, 231, 232,
03938 233, 0, 234, 235, 0, 0, 0, 236, 237, 238,
03939 239, 0, 0, 240, 0, 241, 242, 243, 0, 0,
03940 0, 0, 0, 0, 0, 0, 0, 0, 244, 245,
03941 0, 0, 246, 0, 0, 247, 248, 249, 0, 0,
03942 250, 0, 251, 252, 0, 0, 253, 0, 0, 254,
03943 0, 255, 256, 0, 257, 0, 0, 258, 0, 0,
03944 259, 260, 0, 261, 262, 0, 0, 0, 263, 0,
03945 0, 0, 0, 264, 0, 0, 0, 0, 0, 265,
03946 0, 266, 0, 0, 267, 0, 0, 0, 0, 268,
03947 269, 0, 0, 125, 126, 270, 127, 128, 0, 271,
03948 0, 0, 129, 0, 0, 0, 130, 131, 132, 0,
03949 133, 0, 0, 0, 0, 134, 0, 135, 136, 0,
03950 137, 0, 399, 2103, 138, 0, 0, 0, 139, 0,
03951 0, 0, 140, 0, 141, 142, 0, 143, 144, 0,
03952 145, 146, 147, 148, 149, 150, 0, 151, 152, 1285,
03953 153, 0, 0, 0, 0, 154, 0, 0, 0, 0,
03954 155, 156, 157, 0, 0, 158, 0, 0, 0, 0,
03955 159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
03956 0, 161, 162, 0, 0, 0, 163, 0, 164, 165,
03957 166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
03958 0, 172, 0, 173, 174, 0, 0, 175, 0, 0,
03959 176, 177, 178, 0, 179, 0, 0, 0, 180, 181,
03960 0, 182, 0, 183, 0, 0, 184, 0, 0, 0,
03961 0, 0, 185, 86, 186, 0, 88, 0, 0, 187,
03962 188, 1286, 0, 0, 0, 0, 0, 0, 0, 0,
03963 0, 0, 0, 189, 0, 190, 0, 0, 191, 1287,
03964 0, 192, 0, 0, 0, 193, 0, 1126, 0, 0,
03965 0, 194, 195, 0, 196, 0, 0, 0, 0, 197,
03966 198, 199, 200, 0, 0, 201, 0, 202, 0, 203,
03967 0, 204, 205, 206, 207, 0, 0, 208, 209, 210,
03968 0, 0, 211, 0, 0, 0, 212, 213, 0, 214,
03969 215, 216, 217, 0, 0, 0, 0, 0, 0, 0,
03970 0, 218, 0, 0, 219, 0, 220, 221, 222, 223,
03971 0, 0, 0, 0, 0, 224, 0, 0, 0, 0,
03972 225, 0, 0, 0, 0, 0, 226, 0, 0, 0,
03973 227, 228, 229, 230, 231, 232, 233, 0, 234, 235,
03974 854, 0, 0, 236, 237, 238, 239, 0, 0, 240,
03975 0, 241, 242, 243, 0, 0, 0, 0, 0, 0,
03976 0, 0, 0, 0, 244, 245, 0, 0, 246, 0,
03977 0, 247, 248, 249, 0, 0, 250, 0, 251, 252,
03978 0, 0, 253, 0, 0, 254, 0, 255, 256, 0,
03979 257, 0, 0, 258, 0, 0, 259, 260, 0, 261,
03980 262, 0, 0, 0, 263, 0, 0, 0, 0, 264,
03981 0, 0, 0, 0, 0, 265, 0, 266, 0, 0,
03982 267, 0, 0, 0, 0, 268, 269, 0, 0, 125,
03983 126, 270, 127, 128, 0, 271, 0, 0, 129, 0,
03984 0, 0, 130, 131, 132, 0, 133, 0, 0, 0,
03985 0, 134, 0, 135, 136, 0, 137, 0, 1325, 0,
03986 138, 0, 0, 0, 139, 0, 0, 0, 140, 0,
03987 141, 142, 0, 143, 144, 0, 145, 146, 147, 148,
03988 149, 150, 0, 151, 152, 1285, 153, 0, 0, 0,
03989 0, 154, 0, 0, 0, 0, 155, 156, 157, 0,
03990 0, 158, 0, 0, 0, 0, 159, 160, 0, 0,
03991 0, 0, 0, 0, 0, 0, 0, 161, 162, 0,
03992 0, 0, 163, 0, 164, 165, 166, 0, 0, 167,
03993 0, 168, 169, 0, 170, 171, 0, 172, 0, 173,
03994 174, 0, 0, 175, 0, 0, 176, 177, 178, 0,
03995 179, 0, 0, 0, 180, 181, 0, 182, 0, 183,
03996 0, 0, 184, 0, 0, 0, 0, 0, 185, 86,
03997 186, 0, 88, 0, 0, 187, 188, 1286, 0, 0,
03998 0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
03999 0, 190, 0, 0, 191, 1287, 0, 192, 0, 0,
04000 0, 193, 0, 0, 0, 0, 0, 194, 195, 0,
04001 196, 0, 0, 0, 0, 197, 198, 199, 200, 0,
04002 0, 201, 0, 202, 0, 203, 0, 204, 205, 206,
04003 207, 0, 0, 208, 209, 210, 0, 0, 211, 0,
04004 0, 0, 212, 213, 0, 214, 215, 216, 217, 0,
04005 0, 0, 0, 0, 0, 0, 0, 218, 0, 0,
04006 219, 0, 220, 221, 222, 223, 0, 0, 0, 0,
04007 0, 224, 0, 0, 0, 0, 225, 0, 0, 0,
04008 0, 0, 226, 0, 0, 0, 227, 228, 229, 230,
04009 231, 232, 233, 0, 234, 235, 0, 0, 0, 236,
04010 237, 238, 239, 0, 0, 240, 0, 241, 242, 243,
04011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04012 244, 245, 0, 0, 246, 0, 0, 247, 248, 249,
04013 0, 0, 250, 0, 251, 252, 0, 0, 253, 0,
04014 0, 254, 0, 255, 256, 0, 257, 0, 0, 258,
04015 0, 0, 259, 260, 0, 261, 262, 0, 0, 0,
04016 263, 0, 0, 0, 0, 264, 0, 0, 0, 0,
04017 0, 265, 0, 266, 0, 0, 267, 0, 0, 0,
04018 0, 268, 269, 0, 0, 125, 126, 270, 127, 128,
04019 0, 271, 0, 0, 129, 0, 0, 0, 130, 131,
04020 132, 0, 133, 0, 0, 0, 0, 134, 0, 135,
04021 136, 0, 137, 0, 1325, 0, 138, 0, 0, 0,
04022 139, 0, 0, 0, 140, 0, 141, 142, 0, 143,
04023 144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
04024 152, 0, 153, 0, 0, 0, 0, 154, 0, 0,
04025 0, 0, 155, 156, 157, 0, 0, 158, 0, 0,
04026 0, 0, 159, 160, 0, 0, 0, 0, 0, 0,
04027 0, 0, 0, 161, 162, 0, 0, 0, 163, 0,
04028 164, 165, 166, 0, 0, 167, 0, 168, 169, 0,
04029 170, 171, 0, 172, 0, 173, 174, 0, 0, 175,
04030 0, 0, 176, 177, 178, 0, 179, 0, 0, 0,
04031 180, 181, 0, 182, 0, 183, 0, 0, 184, 0,
04032 0, 0, 0, 0, 185, 86, 186, 0, 88, 0,
04033 0, 187, 188, 0, 0, 0, 0, 0, 0, 0,
04034 0, 0, 0, 0, 0, 189, 0, 190, 0, 0,
04035 191, 0, 0, 192, 0, 0, 0, 193, 0, 0,
04036 0, 0, 0, 194, 195, 0, 196, 0, 0, 0,
04037 0, 197, 198, 199, 200, 0, 0, 201, 0, 202,
04038 0, 203, 0, 204, 205, 206, 207, 0, 0, 208,
04039 209, 210, 0, 0, 211, 0, 0, 0, 212, 213,
04040 0, 214, 215, 216, 217, 0, 0, 0, 0, 0,
04041 0, 0, 0, 218, 0, 0, 219, 0, 220, 221,
04042 222, 223, 0, 0, 0, 0, 0, 224, 0, 0,
04043 0, 0, 225, 0, 0, 0, 0, 0, 226, 0,
04044 0, 0, 227, 228, 229, 230, 231, 232, 233, 0,
04045 234, 235, 854, 0, 0, 236, 237, 238, 239, 0,
04046 0, 240, 0, 241, 242, 243, 0, 0, 0, 0,
04047 0, 0, 0, 0, 0, 0, 244, 245, 0, 0,
04048 246, 0, 0, 247, 248, 249, 0, 0, 250, 0,
04049 251, 252, 0, 0, 253, 0, 0, 254, 0, 255,
04050 256, 0, 257, 0, 0, 258, 0, 0, 259, 260,
04051 0, 261, 262, 0, 0, 0, 263, 0, 0, 0,
04052 0, 264, 0, 0, 0, 0, 0, 265, 0, 266,
04053 0, 0, 267, 0, 0, 0, 0, 268, 269, 0,
04054 0, 0, 0, 270, 0, 0, 0, 271, 0, 0,
04055 125, 126, 0, 127, 128, 0, 0, 0, 0, 129,
04056 0, 0, 0, 130, 131, 132, 1045, 133, 0, 0,
04057 399, 0, 134, 0, 135, 136, 0, 137, 0, 0,
04058 0, 138, 0, 0, 0, 139, 0, 0, 0, 140,
04059 0, 141, 142, 0, 143, 144, 0, 145, 146, 147,
04060 148, 149, 150, 0, 151, 152, 0, 153, 0, 0,
04061 0, 0, 154, 0, 0, 0, 0, 155, 156, 157,
04062 0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
04063 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
04064 0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
04065 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
04066 173, 174, 0, 0, 175, 0, 0, 176, 177, 178,
04067 0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
04068 183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
04069 86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
04070 0, 0, 0, 0, 0, 423, 0, 0, 0, 0,
04071 189, 0, 190, 0, 0, 191, 0, 0, 192, 0,
04072 0, 0, 193, 0, 0, 0, 0, 0, 194, 195,
04073 0, 196, 0, 0, 0, 0, 197, 198, 199, 200,
04074 0, 0, 201, 0, 202, 0, 203, 0, 204, 205,
04075 206, 207, 0, 0, 208, 209, 210, 0, 0, 211,
04076 0, 0, 0, 212, 213, 0, 214, 215, 216, 217,
04077 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
04078 0, 219, 0, 220, 221, 222, 223, 0, 0, 0,
04079 0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
04080 0, 0, 0, 226, 0, 0, 0, 227, 228, 229,
04081 230, 231, 232, 233, 0, 234, 235, 0, 0, 0,
04082 236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
04083 243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04084 0, 244, 245, 0, 0, 246, 0, 0, 247, 248,
04085 249, 0, 0, 250, 0, 251, 252, 0, 0, 253,
04086 0, 0, 254, 0, 255, 256, 0, 257, 0, 0,
04087 258, 0, 0, 259, 260, 0, 261, 262, 0, 0,
04088 0, 263, 0, 0, 0, 0, 264, 0, 0, 0,
04089 0, 0, 265, 0, 266, 0, 0, 267, 0, 0,
04090 0, 0, 268, 269, 0, 0, 125, 126, 270, 127,
04091 128, 0, 271, 0, 0, 129, 0, 0, 0, 130,
04092 131, 132, 0, 133, 0, 0, 0, 0, 134, 0,
04093 135, 136, 0, 137, 0, 283, 0, 138, 0, 0,
04094 0, 139, 0, 0, 0, 140, 0, 141, 142, 0,
04095 143, 144, 0, 145, 146, 147, 148, 149, 150, 0,
04096 151, 152, 0, 153, 0, 0, 0, 0, 154, 0,
04097 0, 0, 0, 155, 156, 157, 0, 0, 158, 0,
04098 0, 0, 0, 159, 160, 0, 0, 0, 0, 0,
04099 0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
04100 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
04101 0, 170, 171, 0, 172, 0, 173, 174, 0, 0,
04102 175, 0, 0, 176, 177, 178, 0, 179, 0, 0,
04103 0, 180, 181, 0, 182, 0, 183, 0, 0, 184,
04104 0, 0, 0, 0, 0, 185, 86, 186, 0, 88,
04105 0, 0, 187, 188, 0, 0, 0, 0, 0, 0,
04106 0, 0, 0, 0, 0, 0, 189, 0, 190, 0,
04107 0, 191, 0, 0, 192, 0, 0, 0, 193, 0,
04108 0, 0, 0, 0, 194, 195, 0, 196, 0, 0,
04109 0, 0, 197, 198, 199, 200, 0, 0, 201, 0,
04110 202, 0, 203, 0, 204, 205, 206, 207, 0, 0,
04111 208, 209, 210, 0, 0, 211, 0, 0, 0, 212,
04112 213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
04113 0, 0, 0, 0, 218, 0, 0, 219, 0, 220,
04114 221, 222, 223, 0, 0, 0, 0, 0, 224, 0,
04115 0, 0, 0, 225, 0, 0, 0, 0, 0, 226,
04116 0, 0, 0, 227, 228, 229, 230, 231, 232, 233,
04117 0, 234, 235, 0, 0, 0, 236, 237, 238, 239,
04118 0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
04119 0, 0, 0, 0, 0, 0, 0, 244, 245, 0,
04120 0, 246, 0, 0, 247, 248, 249, 0, 0, 250,
04121 0, 251, 252, 0, 0, 253, 0, 0, 254, 0,
04122 255, 256, 0, 257, 0, 0, 258, 0, 0, 259,
04123 260, 0, 261, 262, 0, 0, 0, 263, 0, 0,
04124 0, 0, 264, 0, 0, 0, 0, 0, 265, 0,
04125 266, 0, 0, 267, 0, 0, 0, 0, 268, 269,
04126 0, 0, 0, 0, 270, 0, 0, 0, 271, 0,
04127 125, 126, 0, 127, 128, 0, 0, 0, 0, 129,
04128 0, 0, 0, 130, 131, 132, 1324, 133, 0, 0,
04129 0, 1325, 134, 0, 135, 136, 0, 137, 0, 0,
04130 0, 138, 0, 0, 0, 139, 0, 0, 0, 140,
04131 0, 141, 142, 0, 143, 144, 0, 145, 146, 147,
04132 148, 149, 150, 0, 151, 152, 0, 153, 0, 0,
04133 0, 0, 154, 0, 0, 0, 0, 155, 156, 157,
04134 0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
04135 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
04136 0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
04137 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
04138 173, 174, 0, 0, 282, 0, 0, 176, 177, 178,
04139 0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
04140 183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
04141 86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
04142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04143 189, 0, 190, 0, 0, 191, 0, 0, 192, 0,
04144 0, 0, 193, 0, 0, 0, 0, 0, 194, 195,
04145 0, 196, 0, 0, 0, 0, 197, 198, 199, 200,
04146 0, 0, 201, 0, 202, 0, 203, 0, 204, 205,
04147 206, 207, 0, 0, 208, 209, 210, 0, 0, 211,
04148 0, 0, 0, 212, 213, 0, 214, 215, 216, 217,
04149 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
04150 0, 219, 0, 220, 221, 222, 223, 0, 0, 0,
04151 0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
04152 0, 0, 0, 226, 0, 0, 0, 227, 228, 229,
04153 230, 231, 232, 233, 0, 234, 235, 0, 0, 0,
04154 236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
04155 243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04156 0, 244, 245, 0, 0, 246, 0, 0, 247, 248,
04157 249, 0, 0, 250, 0, 251, 252, 0, 0, 253,
04158 0, 0, 254, 0, 255, 256, 0, 257, 0, 0,
04159 258, 0, 0, 259, 260, 0, 261, 262, 0, 0,
04160 0, 263, 0, 0, 0, 0, 264, 0, 0, 0,
04161 0, 0, 265, 0, 266, 0, 0, 267, 0, 0,
04162 0, 0, 268, 269, 0, 0, 125, 126, 270, 127,
04163 128, 0, 271, 0, 0, 129, 0, 0, 0, 130,
04164 131, 132, 0, 133, 0, 0, 0, 0, 134, 0,
04165 135, 136, 0, 137, 0, 283, 0, 138, 0, 0,
04166 0, 139, 0, 0, 0, 140, 0, 141, 142, 0,
04167 143, 144, 0, 145, 146, 147, 148, 149, 150, 0,
04168 151, 152, 0, 153, 0, 0, 0, 0, 154, 0,
04169 0, 0, 0, 155, 156, 157, 0, 0, 158, 0,
04170 0, 0, 0, 159, 160, 0, 0, 0, 0, 0,
04171 0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
04172 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
04173 0, 170, 171, 0, 172, 0, 173, 174, 0, 0,
04174 175, 0, 0, 176, 177, 178, 0, 179, 0, 0,
04175 0, 180, 181, 0, 182, 0, 183, 0, 0, 184,
04176 0, 0, 0, 0, 0, 185, 86, 186, 0, 88,
04177 0, 0, 187, 188, 0, 0, 0, 0, 0, 0,
04178 0, 0, 0, 0, 0, 0, 189, 0, 190, 0,
04179 0, 191, 0, 0, 192, 0, 0, 0, 193, 0,
04180 0, 0, 0, 0, 194, 195, 0, 196, 0, 0,
04181 0, 0, 197, 198, 199, 200, 0, 0, 201, 0,
04182 202, 0, 203, 0, 204, 205, 206, 207, 0, 0,
04183 208, 209, 210, 0, 0, 211, 0, 0, 0, 212,
04184 213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
04185 0, 0, 0, 0, 218, 0, 0, 219, 0, 220,
04186 221, 222, 223, 0, 0, 0, 0, 0, 224, 0,
04187 0, 0, 0, 225, 0, 0, 0, 0, 0, 226,
04188 0, 0, 0, 227, 228, 229, 230, 231, 232, 233,
04189 0, 234, 235, 0, 0, 0, 236, 237, 238, 239,
04190 0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
04191 0, 0, 0, 0, 0, 0, 0, 244, 245, 0,
04192 0, 246, 0, 0, 247, 248, 249, 0, 0, 250,
04193 0, 251, 252, 0, 0, 253, 0, 0, 254, 0,
04194 255, 256, 0, 257, 0, 0, 258, 0, 0, 259,
04195 260, 0, 261, 262, 0, 0, 0, 263, 0, 0,
04196 0, 0, 264, 0, 0, 0, 0, 0, 265, 0,
04197 266, 0, 0, 267, 0, 0, 0, 0, 268, 269,
04198 0, 0, 125, 126, 270, 127, 128, 0, 271, 0,
04199 0, 129, 0, 0, 0, 130, 131, 132, 0, 133,
04200 0, 0, 0, 0, 134, 0, 135, 136, 0, 137,
04201 0, 283, 0, 138, 0, 0, 0, 139, 0, 0,
04202 0, 140, 0, 141, 142, 0, 143, 144, 0, 145,
04203 146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
04204 0, 0, 0, 0, 154, 0, 0, 0, 0, 155,
04205 156, 157, 0, 0, 158, 0, 0, 0, 0, 159,
04206 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04207 161, 162, 0, 0, 0, 163, 0, 164, 165, 166,
04208 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
04209 172, 0, 173, 174, 0, 0, 175, 0, 0, 176,
04210 177, 178, 0, 179, 0, 0, 0, 180, 181, 0,
04211 182, 0, 183, 0, 0, 184, 0, 0, 0, 0,
04212 0, 185, 86, 186, 0, 88, 0, 0, 187, 188,
04213 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04214 0, 0, 189, 0, 190, 0, 0, 191, 0, 0,
04215 192, 0, 0, 0, 193, 0, 0, 0, 0, 0,
04216 194, 195, 0, 196, 0, 0, 0, 0, 197, 198,
04217 199, 200, 0, 0, 201, 0, 202, 0, 203, 0,
04218 204, 205, 206, 207, 0, 0, 208, 209, 210, 0,
04219 0, 211, 0, 0, 0, 212, 213, 0, 214, 215,
04220 216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
04221 218, 0, 0, 219, 0, 220, 221, 222, 223, 0,
04222 0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
04223 0, 0, 0, 0, 0, 226, 0, 0, 0, 227,
04224 228, 229, 230, 231, 232, 233, 0, 234, 235, 0,
04225 0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
04226 241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
04227 0, 0, 0, 244, 245, 0, 0, 246, 0, 0,
04228 247, 248, 249, 0, 0, 250, 0, 251, 252, 0,
04229 0, 253, 0, 0, 254, 0, 255, 256, 0, 257,
04230 0, 0, 258, 0, 0, 259, 260, 0, 261, 262,
04231 0, 0, 0, 263, 0, 0, 0, 0, 264, 0,
04232 0, 0, 0, 0, 265, 0, 266, 0, 0, 267,
04233 0, 0, 0, 0, 268, 269, 0, 0, 125, 126,
04234 270, 127, 128, 0, 271, 0, 0, 129, 0, 0,
04235 0, 130, 131, 132, 0, 133, 0, 0, 0, 0,
04236 134, 0, 135, 136, 0, 137, 0, 399, 0, 138,
04237 0, 0, 0, 139, 0, 0, 0, 140, 0, 141,
04238 142, 0, 143, 144, 0, 145, 146, 147, 148, 149,
04239 150, 0, 151, 152, 0, 153, 0, 0, 0, 0,
04240 154, 0, 0, 0, 0, 155, 156, 157, 0, 0,
04241 158, 0, 0, 0, 0, 159, 160, 0, 0, 0,
04242 0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
04243 0, 163, 0, 164, 165, 166, 0, 0, 167, 0,
04244 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
04245 0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
04246 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
04247 0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
04248 0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
04249 0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
04250 190, 0, 0, 191, 0, 0, 192, 0, 0, 0,
04251 193, 0, 0, 0, 0, 0, 194, 195, 0, 196,
04252 0, 0, 0, 0, 197, 198, 199, 200, 0, 0,
04253 201, 0, 202, 0, 203, 0, 204, 205, 206, 207,
04254 0, 0, 208, 209, 210, 0, 0, 211, 0, 0,
04255 0, 212, 213, 0, 214, 215, 216, 217, 0, 0,
04256 0, 0, 0, 0, 0, 0, 218, 0, 0, 219,
04257 0, 220, 221, 222, 223, 0, 0, 0, 0, 0,
04258 224, 0, 0, 0, 0, 225, 0, 0, 0, 0,
04259 0, 226, 0, 0, 0, 227, 228, 229, 230, 231,
04260 232, 233, 0, 234, 235, 0, 0, 0, 236, 237,
04261 238, 239, 0, 0, 240, 0, 241, 242, 243, 0,
04262 0, 0, 0, 0, 0, 0, 0, 0, 0, 244,
04263 245, 0, 0, 246, 0, 0, 247, 248, 249, 0,
04264 0, 250, 0, 251, 252, 0, 0, 253, 0, 0,
04265 254, 0, 255, 256, 0, 257, 0, 0, 258, 0,
04266 0, 259, 260, 0, 261, 262, 0, 0, 0, 263,
04267 0, 0, 0, 0, 264, 0, 0, 0, 0, 0,
04268 265, 0, 266, 0, 0, 267, 0, 0, 0, 0,
04269 268, 269, 0, 0, 125, 126, 270, 127, 128, 0,
04270 271, 0, 0, 129, 0, 0, 0, 130, 131, 132,
04271 0, 133, 0, 0, 0, 0, 134, 0, 135, 136,
04272 0, 137, 0, 1325, 0, 138, 0, 0, 0, 139,
04273 0, 0, 0, 140, 0, 141, 142, 0, 143, 144,
04274 0, 145, 146, 147, 148, 149, 150, 0, 151, 152,
04275 0, 153, 0, 0, 0, 0, 154, 0, 0, 0,
04276 0, 155, 156, 157, 0, 0, 158, 0, 0, 0,
04277 0, 159, 160, 0, 0, 0, 0, 0, 0, 0,
04278 0, 0, 161, 162, 0, 0, 0, 163, 0, 164,
04279 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
04280 171, 0, 172, 0, 173, 174, 0, 0, 175, 0,
04281 0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
04282 181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
04283 0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
04284 187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
04285 0, 0, 0, 0, 189, 0, 190, 0, 0, 191,
04286 0, 0, 192, 0, 0, 0, 193, 0, 0, 0,
04287 0, 0, 194, 195, 0, 196, 0, 0, 0, 0,
04288 197, 198, 199, 200, 0, 0, 201, 0, 202, 0,
04289 203, 0, 204, 205, 206, 207, 0, 0, 208, 209,
04290 210, 0, 0, 211, 0, 0, 0, 212, 213, 0,
04291 214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
04292 0, 0, 218, 0, 0, 219, 0, 220, 221, 222,
04293 223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
04294 0, 225, 0, 0, 0, 0, 0, 226, 0, 0,
04295 0, 227, 228, 229, 230, 231, 232, 233, 0, 234,
04296 235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
04297 240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
04298 0, 0, 0, 0, 0, 244, 245, 0, 0, 246,
04299 0, 0, 247, 248, 249, 0, 0, 250, 0, 251,
04300 252, 0, 0, 253, 0, 0, 254, 0, 255, 256,
04301 0, 257, 0, 0, 258, 0, 0, 259, 260, 0,
04302 261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
04303 264, 0, 0, 0, 0, 0, 265, 0, 266, 0,
04304 0, 267, 0, 0, 0, 0, 268, 269, 0, 0,
04305 125, 126, 270, 127, 128, 0, 271, 0, 0, 129,
04306 0, 0, 0, 130, 131, 132, 0, 133, 1262, 0,
04307 0, 0, 134, 0, 135, 136, 0, 137, 0, 0,
04308 0, 138, 0, 0, 0, 139, 0, 0, 0, 140,
04309 0, 141, 142, 0, 143, 144, 0, 145, 146, 147,
04310 148, 149, 150, 0, 151, 152, 0, 153, 0, 0,
04311 0, 0, 154, 0, 0, 0, 0, 155, 156, 157,
04312 0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
04313 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
04314 0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
04315 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
04316 173, 174, 0, 0, 175, 0, 0, 176, 177, 178,
04317 0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
04318 183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
04319 86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
04320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04321 189, 0, 190, 0, 0, 191, 0, 0, 192, 0,
04322 0, 0, 193, 0, 0, 0, 0, 0, 194, 195,
04323 0, 196, 0, 0, 0, 0, 197, 198, 199, 200,
04324 0, 0, 201, 0, 202, 0, 203, 0, 204, 205,
04325 206, 207, 0, 0, 208, 209, 210, 0, 0, 211,
04326 0, 0, 0, 212, 213, 0, 214, 215, 216, 217,
04327 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
04328 0, 219, 0, 220, 221, 222, 223, 0, 0, 0,
04329 0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
04330 0, 0, 0, 226, 0, 0, 0, 227, 228, 229,
04331 230, 231, 232, 233, 0, 234, 235, 0, 0, 0,
04332 236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
04333 243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04334 0, 244, 245, 0, 0, 246, 0, 0, 247, 248,
04335 249, 0, 0, 250, 0, 251, 252, 0, 0, 253,
04336 0, 0, 254, 0, 255, 256, 0, 257, 0, 0,
04337 258, 0, 0, 259, 260, 0, 261, 262, 0, 0,
04338 0, 263, 0, 0, 0, 0, 264, 0, 0, 0,
04339 0, 0, 265, 0, 266, 0, 0, 267, 0, 0,
04340 0, 0, 268, 269, 0, 0, 125, 126, 270, 127,
04341 128, 0, 271, 0, 0, 129, 0, 0, 0, 130,
04342 131, 132, 0, 133, 1608, 0, 0, 671, 134, 0,
04343 135, 136, 0, 137, 0, 0, 0, 138, 0, 0,
04344 0, 139, 0, 0, 0, 140, 0, 141, 142, 0,
04345 143, 144, 0, 145, 146, 147, 148, 149, 150, 0,
04346 151, 152, 0, 153, 0, 0, 0, 0, 154, 0,
04347 0, 0, 0, 155, 156, 157, 0, 0, 158, 0,
04348 0, 0, 0, 159, 160, 0, 0, 0, 0, 0,
04349 0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
04350 0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
04351 0, 170, 171, 0, 172, 0, 173, 174, 0, 0,
04352 175, 0, 0, 176, 177, 178, 0, 179, 0, 0,
04353 0, 180, 181, 0, 182, 0, 183, 0, 0, 184,
04354 0, 672, 0, 0, 0, 185, 86, 186, 0, 88,
04355 0, 0, 187, 188, 0, 0, 0, 0, 0, 0,
04356 0, 0, 0, 0, 0, 0, 189, 0, 190, 0,
04357 0, 191, 0, 0, 192, 0, 0, 0, 193, 0,
04358 0, 0, 0, 0, 194, 195, 0, 196, 0, 0,
04359 0, 0, 197, 198, 199, 200, 0, 0, 201, 0,
04360 202, 0, 203, 0, 204, 205, 206, 207, 0, 0,
04361 208, 209, 210, 0, 0, 211, 0, 0, 0, 212,
04362 213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
04363 0, 0, 0, 0, 218, 0, 0, 219, 0, 220,
04364 221, 222, 223, 0, 0, 0, 0, 0, 224, 0,
04365 0, 0, 0, 225, 0, 0, 0, 0, 0, 226,
04366 0, 0, 0, 227, 228, 229, 230, 231, 232, 233,
04367 0, 234, 235, 0, 0, 0, 236, 237, 238, 239,
04368 0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
04369 0, 0, 0, 0, 0, 0, 0, 244, 245, 0,
04370 0, 246, 0, 0, 247, 248, 249, 0, 0, 250,
04371 0, 251, 252, 0, 0, 253, 0, 377, 254, 0,
04372 255, 256, 0, 257, 0, 0, 258, 0, 0, 259,
04373 260, 0, 261, 262, 0, 0, 0, 263, 0, 0,
04374 0, 0, 264, 0, 0, 0, 0, 0, 265, 0,
04375 266, 0, 0, 267, 0, 0, 0, 0, 268, 269,
04376 0, 0, 125, 126, 270, 127, 128, 0, 271, 0,
04377 0, 129, 1258, 0, 0, 130, 131, 132, 0, 133,
04378 0, 0, 0, 0, 134, 0, 135, 136, 0, 137,
04379 0, 0, 0, 138, 0, 0, 0, 139, 0, 0,
04380 0, 140, 0, 141, 142, 0, 143, 144, 0, 145,
04381 146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
04382 0, 0, 0, 0, 154, 0, 0, 0, 0, 155,
04383 156, 157, 0, 0, 158, 0, 0, 0, 0, 159,
04384 160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04385 161, 162, 0, 0, 0, 163, 0, 164, 165, 166,
04386 0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
04387 172, 0, 173, 174, 0, 0, 175, 0, 0, 176,
04388 177, 178, 0, 179, 0, 0, 0, 180, 181, 0,
04389 182, 0, 183, 0, 0, 184, 0, 0, 0, 0,
04390 0, 185, 86, 186, 0, 88, 0, 0, 187, 188,
04391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04392 0, 0, 189, 0, 190, 0, 0, 191, 0, 0,
04393 192, 0, 0, 0, 193, 0, 0, 0, 0, 0,
04394 194, 195, 0, 196, 0, 0, 0, 0, 197, 198,
04395 199, 200, 0, 0, 201, 0, 202, 0, 203, 0,
04396 204, 205, 206, 207, 0, 0, 208, 209, 210, 0,
04397 0, 211, 0, 0, 0, 212, 213, 0, 214, 215,
04398 216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
04399 218, 0, 0, 219, 0, 220, 221, 222, 223, 0,
04400 0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
04401 0, 0, 0, 0, 0, 226, 0, 0, 0, 227,
04402 228, 229, 230, 231, 232, 233, 0, 234, 235, 0,
04403 0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
04404 241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
04405 0, 0, 0, 244, 245, 0, 0, 246, 0, 0,
04406 247, 248, 249, 0, 0, 250, 0, 251, 252, 0,
04407 0, 253, 0, 91, 254, 0, 255, 256, 0, 257,
04408 0, 0, 258, 0, 0, 259, 260, 0, 261, 262,
04409 0, 0, 0, 263, 0, 0, 0, 0, 264, 0,
04410 0, 0, 0, 0, 265, 0, 266, 0, 0, 267,
04411 0, 0, 0, 0, 268, 269, 0, 0, 125, 126,
04412 270, 127, 128, 0, 271, 0, 0, 129, 0, 0,
04413 0, 130, 131, 132, 0, 133, 0, 0, 0, 0,
04414 134, 0, 135, 136, 0, 137, 0, 0, 0, 138,
04415 0, 0, 0, 139, 0, 0, 0, 140, 0, 141,
04416 142, 0, 143, 144, 0, 145, 146, 147, 148, 149,
04417 150, 0, 151, 152, 0, 153, 0, 0, 0, 0,
04418 154, 0, 0, 0, 0, 155, 156, 157, 0, 0,
04419 158, 0, 0, 0, 0, 159, 160, 0, 0, 0,
04420 0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
04421 0, 163, 0, 164, 165, 166, 0, 0, 167, 0,
04422 168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
04423 0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
04424 0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
04425 0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
04426 0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
04427 0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
04428 190, 0, 0, 191, 0, 0, 192, 0, 0, 0,
04429 193, 0, 0, 0, 0, 0, 194, 195, 0, 196,
04430 0, 0, 0, 0, 197, 198, 199, 200, 0, 0,
04431 201, 0, 202, 0, 203, 0, 204, 205, 206, 207,
04432 0, 0, 208, 209, 210, 0, 0, 211, 0, 0,
04433 0, 212, 213, 0, 214, 215, 216, 217, 0, 0,
04434 0, 0, 0, 0, 0, 0, 218, 0, 0, 219,
04435 0, 220, 221, 222, 223, 0, 0, 0, 0, 0,
04436 224, 0, 0, 0, 0, 225, 0, 0, 0, 0,
04437 0, 226, 0, 0, 0, 227, 228, 229, 230, 231,
04438 232, 233, 0, 234, 235, 0, 0, 0, 236, 237,
04439 238, 239, 0, 0, 240, 0, 241, 242, 243, 0,
04440 0, 0, 0, 0, 0, 0, 0, 0, 0, 244,
04441 245, 0, 0, 246, 0, 0, 247, 248, 249, 0,
04442 0, 250, 0, 251, 252, 0, 0, 253, 0, 91,
04443 254, 0, 255, 256, 0, 257, 0, 0, 258, 0,
04444 0, 259, 260, 0, 261, 262, 0, 0, 0, 263,
04445 0, 0, 0, 0, 264, 0, 0, 0, 0, 0,
04446 265, 0, 266, 0, 0, 267, 0, 0, 0, 0,
04447 268, 269, 0, 0, 125, 126, 270, 127, 128, 0,
04448 271, 0, 0, 129, 0, 0, 0, 130, 131, 132,
04449 0, 133, 0, 0, 0, 0, 134, 0, 135, 136,
04450 0, 137, 0, 0, 0, 138, 0, 0, 0, 139,
04451 0, 0, 0, 140, 0, 141, 142, 0, 143, 144,
04452 0, 145, 146, 147, 148, 149, 150, 0, 151, 152,
04453 0, 153, 0, 0, 0, 0, 154, 0, 0, 0,
04454 0, 155, 156, 157, 0, 0, 158, 0, 0, 0,
04455 0, 159, 160, 0, 0, 0, 0, 0, 0, 0,
04456 0, 0, 161, 162, 0, 0, 0, 163, 0, 164,
04457 165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
04458 171, 0, 172, 0, 173, 174, 0, 0, 175, 0,
04459 0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
04460 181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
04461 0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
04462 187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
04463 0, 0, 0, 0, 189, 0, 190, 0, 0, 191,
04464 0, 0, 192, 0, 0, 0, 193, 0, 0, 0,
04465 0, 0, 194, 195, 0, 196, 0, 0, 0, 0,
04466 197, 198, 199, 200, 0, 0, 201, 0, 202, 0,
04467 203, 0, 204, 205, 206, 207, 0, 0, 208, 209,
04468 210, 0, 0, 211, 0, 0, 0, 212, 213, 0,
04469 214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
04470 0, 0, 218, 0, 0, 219, 2091, 220, 221, 222,
04471 223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
04472 0, 225, 0, 0, 0, 0, 0, 226, 0, 0,
04473 0, 227, 228, 229, 230, 231, 232, 233, 0, 234,
04474 235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
04475 240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
04476 0, 0, 0, 0, 0, 244, 245, 0, 0, 246,
04477 0, 0, 247, 248, 249, 0, 0, 250, 0, 251,
04478 252, 0, 0, 253, 0, 0, 254, 0, 255, 256,
04479 0, 257, 0, 0, 258, 0, 0, 259, 260, 0,
04480 261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
04481 264, 0, 0, 0, 0, 0, 265, 0, 266, 0,
04482 0, 267, 0, 0, 0, 0, 268, 269, 0, 0,
04483 125, 126, 270, 127, 128, 0, 271, 0, 0, 129,
04484 0, 0, 0, 130, 131, 132, 0, 133, 0, 0,
04485 0, 0, 134, 0, 135, 136, 0, 137, 0, 0,
04486 0, 138, 0, 0, 0, 139, 0, 0, 0, 140,
04487 0, 141, 142, 0, 143, 144, 0, 145, 146, 147,
04488 148, 149, 150, 0, 151, 152, 0, 153, 0, 0,
04489 0, 0, 154, 0, 0, 0, 0, 155, 156, 157,
04490 0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
04491 0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
04492 0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
04493 167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
04494 173, 174, 0, 0, 175, 0, 0, 176, 177, 178,
04495 0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
04496 183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
04497 86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
04498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04499 189, 0, 190, 0, 0, 191, 0, 0, 192, 0,
04500 0, 0, 193, 0, 0, 0, 0, 0, 194, 195,
04501 0, 196, 0, 0, 0, 0, 197, 198, 199, 200,
04502 0, 0, 201, 0, 202, 0, 203, 0, 204, 205,
04503 206, 207, 0, 0, 208, 209, 210, 0, 0, 211,
04504 0, 0, 0, 212, 213, 0, 214, 215, 216, 217,
04505 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
04506 0, 219, 0, 220, 221, 222, 223, 0, 0, 0,
04507 0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
04508 0, 0, 0, 226, 0, 0, 0, 227, 228, 229,
04509 230, 231, 232, 233, 0, 234, 235, 0, 0, 0,
04510 236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
04511 243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
04512 0, 244, 245, 0, 0, 246, 0, 0, 247, 248,
04513 249, 0, 0, 250, 0, 251, 252, 0, 0, 253,
04514 0, 0, 254, 0, 255, 256, 0, 257, 0, 0,
04515 258, 0, 0, 259, 260, 0, 261, 262, 0, 0,
04516 0, 263, 0, 0, 0, 0, 264, 0, 0, 0,
04517 0, 0, 265, 0, 266, 0, 0, 267, 0, 0,
04518 0, 0, 268, 269, 0, 0, 0, 0, 270, 0,
04519 0, 0, 271
04520 };
04521
04522 static const yytype_int16 yycheck[] =
04523 {
04524 12, 331, 430, 93, 1067, 616, 412, 335, 536, 21,
04525 12, 1058, 1230, 919, 51, 513, 514, 29, 320, 1088,
04526 590, 1090, 1095, 1005, 876, 1001, 858, 1051, 598, 109,
04527 107, 361, 527, 669, 1199, 1503, 529, 459, 1416, 51,
04528 654, 121, 1437, 657, 448, 12, 376, 661, 662, 1553,
04529 907, 63, 380, 1129, 12, 459, 386, 387, 849, 47,
04530 12, 1226, 74, 1039, 47, 12, 12, 12, 12, 81,
04531 476, 12, 12, 52, 1291, 686, 1646, 51, 573, 86,
04532 103, 93, 1652, 12, 14, 12, 70, 124, 1658, 1659,
04533 88, 93, 394, 395, 396, 107, 1657, 109, 68, 12,
04534 12, 87, 12, 478, 1298, 292, 118, 1733, 12, 121,
04535 12, 12, 124, 112, 120, 68, 118, 108, 12, 525,
04536 39, 1249, 44, 1574, 299, 120, 114, 58, 12, 1045,
04537 12, 12, 1447, 1132, 34, 120, 869, 12, 1441, 132,
04538 31, 234, 178, 12, 867, 12, 1449, 1487, 1732, 271,
04539 12, 12, 14, 29, 179, 1730, 278, 7, 144, 1743,
04540 566, 147, 86, 315, 12, 12, 1229, 99, 12, 664,
04541 180, 279, 315, 9, 128, 51, 1937, 12, 12, 131,
04542 296, 282, 12, 66, 131, 213, 12, 63, 1648, 1295,
04543 1356, 362, 333, 149, 1654, 169, 131, 12, 74, 12,
04544 444, 1656, 227, 243, 1267, 81, 6, 179, 214, 98,
04545 10, 251, 149, 227, 1432, 12, 460, 12, 101, 20,
04546 144, 249, 186, 147, 1330, 347, 348, 162, 144, 294,
04547 184, 147, 384, 109, 274, 351, 337, 317, 267, 232,
04548 1616, 384, 324, 2004, 385, 121, 137, 86, 124, 314,
04549 1107, 215, 1321, 1322, 264, 227, 1831, 1832, 94, 1727,
04550 368, 228, 384, 12, 301, 669, 1850, 1484, 254, 70,
04551 228, 283, 122, 1668, 1589, 1590, 228, 1494, 290, 893,
04552 292, 228, 25, 228, 228, 1625, 298, 228, 228, 301,
04553 283, 384, 304, 305, 213, 1127, 131, 253, 230, 228,
04554 602, 228, 913, 914, 1764, 317, 1073, 1074, 333, 240,
04555 497, 686, 1440, 213, 1940, 617, 228, 504, 228, 1235,
04556 326, 12, 1516, 359, 228, 247, 228, 228, 312, 315,
04557 1798, 326, 825, 128, 228, 358, 1712, 1060, 345, 12,
04558 338, 326, 333, 423, 228, 315, 228, 228, 12, 12,
04559 12, 330, 1820, 228, 12, 12, 256, 356, 1357, 228,
04560 1578, 228, 315, 858, 12, 329, 228, 228, 342, 1275,
04561 1874, 1537, 12, 12, 388, 214, 322, 12, 278, 12,
04562 228, 228, 12, 371, 228, 422, 398, 399, 371, 278,
04563 12, 315, 322, 228, 228, 1965, 139, 364, 228, 315,
04564 1232, 1704, 228, 1964, 1621, 1708, 364, 283, 12, 1482,
04565 422, 423, 364, 228, 290, 228, 292, 364, 385, 364,
04566 364, 388, 298, 364, 364, 301, 12, 385, 304, 305,
04567 388, 228, 1223, 228, 12, 364, 388, 364, 385, 937,
04568 385, 317, 479, 388, 385, 385, 12, 388, 388, 1019,
04569 948, 364, 364, 490, 364, 1531, 1070, 1533, 385, 388,
04570 364, 388, 364, 364, 476, 477, 1323, 479, 12, 12,
04571 364, 646, 970, 385, 1085, 1926, 388, 387, 490, 228,
04572 364, 903, 364, 364, 388, 497, 388, 388, 1221, 364,
04573 1994, 1995, 504, 1997, 388, 364, 586, 364, 1893, 903,
04574 1028, 1029, 364, 364, 388, 225, 388, 388, 2012, 1977,
04575 1121, 1966, 1123, 388, 1125, 527, 364, 364, 385, 388,
04576 364, 1989, 398, 399, 1356, 1018, 1904, 388, 830, 364,
04577 364, 1167, 1025, 2037, 364, 2039, 2040, 228, 364, 1915,
04578 388, 388, 12, 14, 388, 1040, 422, 423, 12, 364,
04579 1613, 364, 629, 1718, 388, 228, 2011, 14, 388, 22,
04580 12, 573, 388, 72, 228, 228, 228, 364, 12, 364,
04581 228, 228, 315, 388, 586, 388, 12, 12, 136, 12,
04582 228, 218, 1077, 1654, 586, 12, 12, 12, 228, 228,
04583 385, 388, 149, 228, 65, 228, 1363, 271, 228, 312,
04584 476, 477, 682, 479, 616, 9, 228, 644, 620, 167,
04585 647, 126, 12, 12, 490, 364, 12, 629, 12, 1471,
04586 12, 497, 659, 1051, 228, 1601, 271, 12, 504, 12,
04587 1448, 12, 644, 1743, 149, 647, 385, 108, 131, 656,
04588 12, 152, 228, 655, 12, 1215, 648, 659, 1672, 108,
04589 228, 108, 664, 690, 1701, 0, 15, 128, 9, 170,
04590 167, 271, 228, 12, 206, 136, 44, 138, 175, 227,
04591 682, 312, 126, 364, 686, 1581, 688, 219, 690, 144,
04592 9, 146, 147, 154, 228, 228, 179, 1298, 159, 2009,
04593 94, 364, 149, 1764, 385, 149, 167, 1308, 271, 162,
04594 364, 364, 364, 12, 175, 1537, 364, 364, 179, 271,
04595 384, 271, 385, 184, 1212, 178, 364, 1699, 134, 148,
04596 1022, 385, 385, 385, 364, 364, 44, 385, 385, 364,
04597 89, 364, 913, 914, 364, 206, 131, 385, 271, 384,
04598 1850, 1236, 364, 94, 620, 385, 385, 148, 219, 127,
04599 385, 388, 385, 260, 271, 385, 227, 360, 228, 131,
04600 364, 637, 1980, 385, 228, 94, 2086, 2087, 644, 185,
04601 1588, 647, 65, 317, 384, 1822, 228, 309, 364, 655,
04602 312, 385, 131, 659, 228, 248, 364, 9, 1118, 260,
04603 9, 95, 228, 228, 806, 228, 253, 360, 364, 385,
04604 342, 228, 228, 228, 9, 18, 682, 385, 1714, 127,
04605 377, 384, 688, 386, 690, 852, 853, 1312, 385, 385,
04606 364, 364, 384, 29, 384, 290, 341, 377, 228, 228,
04607 301, 152, 228, 271, 228, 385, 228, 1900, 1366, 385,
04608 852, 853, 385, 228, 134, 228, 858, 228, 25, 1922,
04609 1923, 384, 12, 1381, 1382, 320, 228, 63, 236, 324,
04610 228, 154, 333, 880, 876, 10, 11, 384, 389, 1397,
04611 882, 342, 94, 86, 167, 94, 21, 70, 895, 228,
04612 296, 1076, 175, 1078, 361, 389, 1704, 341, 359, 94,
04613 1708, 1389, 182, 309, 364, 907, 312, 201, 312, 44,
04614 364, 913, 914, 1972, 916, 1516, 83, 909, 53, 347,
04615 348, 388, 364, 206, 385, 385, 387, 388, 236, 64,
04616 364, 385, 1012, 211, 144, 1423, 120, 147, 364, 364,
04617 806, 364, 317, 385, 213, 95, 1431, 364, 364, 364,
04618 1121, 385, 1123, 88, 89, 90, 384, 124, 50, 385,
04619 385, 385, 385, 98, 388, 334, 334, 170, 385, 385,
04620 385, 87, 139, 108, 364, 364, 56, 260, 364, 1299,
04621 364, 116, 364, 2026, 117, 2028, 852, 853, 1068, 364,
04622 125, 364, 858, 364, 296, 385, 385, 277, 378, 385,
04623 360, 385, 364, 385, 1812, 1813, 364, 388, 211, 1665,
04624 1012, 214, 385, 389, 385, 134, 882, 87, 301, 186,
04625 1012, 385, 157, 2060, 388, 364, 334, 385, 144, 105,
04626 214, 147, 1034, 236, 217, 127, 171, 113, 1040, 222,
04627 385, 315, 385, 388, 1285, 388, 181, 214, 215, 83,
04628 1291, 201, 47, 1294, 385, 1296, 38, 388, 1243, 1061,
04629 152, 1063, 120, 182, 1305, 1306, 1068, 384, 83, 1061,
04630 1311, 38, 275, 56, 144, 1077, 1068, 147, 170, 385,
04631 1644, 1645, 388, 1085, 378, 379, 380, 381, 70, 384,
04632 124, 86, 1656, 1657, 289, 290, 291, 292, 384, 1126,
04633 1092, 220, 298, 70, 387, 1107, 301, 1763, 304, 124,
04634 1692, 1693, 1114, 1769, 249, 250, 1772, 385, 253, 1121,
04635 388, 1123, 384, 1125, 1126, 1127, 261, 1129, 2024, 384,
04636 1132, 334, 267, 41, 42, 384, 271, 131, 254, 47,
04637 384, 1742, 326, 278, 236, 384, 281, 1632, 315, 384,
04638 226, 335, 186, 211, 563, 564, 214, 1553, 277, 384,
04639 295, 385, 329, 384, 388, 159, 1644, 1645, 1034, 385,
04640 385, 186, 388, 388, 1466, 170, 1740, 1741, 1656, 1657,
04641 384, 215, 384, 86, 254, 152, 384, 1647, 1752, 1755,
04642 1650, 385, 327, 1653, 388, 1061, 1760, 1063, 1762, 315,
04643 215, 336, 384, 338, 12, 385, 341, 1771, 388, 376,
04644 377, 333, 385, 1777, 1778, 388, 211, 267, 1784, 214,
04645 47, 1248, 372, 373, 374, 375, 376, 377, 378, 379,
04646 380, 381, 384, 227, 1236, 217, 1454, 1455, 314, 1241,
04647 222, 236, 384, 1484, 385, 315, 1248, 388, 1114, 384,
04648 217, 179, 384, 1494, 1672, 222, 1258, 18, 384, 86,
04649 1126, 1127, 1740, 1741, 384, 309, 1258, 170, 326, 384,
04650 1836, 1837, 388, 384, 1752, 384, 144, 335, 146, 147,
04651 41, 42, 1760, 1285, 1762, 384, 47, 95, 1315, 1291,
04652 51, 384, 1294, 1771, 1296, 329, 1298, 296, 385, 1777,
04653 1778, 388, 384, 1305, 1306, 1297, 1308, 86, 211, 1311,
04654 1312, 214, 384, 1315, 329, 1800, 219, 1309, 388, 1885,
04655 1886, 1323, 1324, 1325, 384, 86, 87, 47, 1330, 385,
04656 312, 313, 388, 236, 1361, 2, 24, 4, 1330, 334,
04657 28, 384, 1087, 170, 1089, 18, 313, 384, 109, 385,
04658 1095, 18, 388, 384, 42, 1357, 1101, 384, 353, 1361,
04659 121, 385, 385, 384, 388, 388, 86, 87, 41, 42,
04660 1236, 384, 384, 18, 47, 1241, 385, 384, 51, 388,
04661 1621, 384, 1248, 144, 211, 73, 147, 214, 76, 384,
04662 296, 170, 1258, 201, 385, 385, 84, 388, 388, 384,
04663 1964, 385, 1966, 384, 388, 384, 51, 384, 384, 236,
04664 384, 384, 384, 86, 87, 1417, 384, 178, 85, 1285,
04665 384, 384, 290, 1425, 144, 1291, 384, 147, 1294, 1431,
04666 1296, 334, 211, 1425, 384, 214, 109, 1755, 384, 1305,
04667 1306, 86, 87, 384, 384, 1311, 384, 2011, 121, 1315,
04668 2014, 384, 320, 384, 384, 122, 59, 236, 1324, 1325,
04669 278, 1463, 385, 108, 109, 86, 1784, 388, 249, 1471,
04670 1866, 144, 160, 39, 147, 117, 121, 152, 1874, 219,
04671 258, 384, 1484, 54, 55, 355, 1964, 111, 1966, 243,
04672 385, 1887, 1494, 254, 1979, 1361, 358, 1524, 385, 144,
04673 385, 95, 147, 94, 265, 44, 385, 334, 384, 133,
04674 9, 50, 14, 385, 1516, 86, 1834, 1835, 385, 1521,
04675 385, 60, 1524, 389, 1604, 384, 1528, 153, 388, 1531,
04676 101, 1533, 1534, 2011, 254, 322, 2014, 388, 388, 163,
04677 378, 315, 284, 1863, 1862, 359, 47, 1865, 184, 173,
04678 385, 1417, 123, 86, 315, 334, 385, 378, 131, 1425,
04679 1956, 385, 1958, 65, 372, 373, 374, 375, 376, 377,
04680 378, 379, 380, 381, 385, 377, 385, 333, 385, 385,
04681 385, 254, 385, 207, 388, 385, 385, 388, 127, 385,
04682 279, 12, 265, 384, 282, 315, 1598, 1463, 1994, 1995,
04683 384, 1997, 1604, 76, 2089, 381, 108, 201, 47, 254,
04684 83, 384, 1604, 152, 381, 385, 2012, 22, 1484, 1621,
04685 265, 389, 2107, 384, 126, 315, 128, 1629, 1494, 2114,
04686 1632, 170, 384, 321, 136, 83, 138, 170, 389, 1959,
04687 390, 2037, 315, 2039, 2040, 388, 385, 149, 32, 337,
04688 368, 124, 154, 368, 368, 1521, 219, 159, 1524, 227,
04689 385, 106, 1528, 385, 158, 167, 158, 388, 1534, 517,
04690 315, 1673, 385, 175, 385, 246, 124, 179, 211, 385,
04691 385, 214, 184, 159, 388, 12, 219, 389, 389, 389,
04692 95, 139, 540, 385, 385, 543, 131, 236, 385, 164,
04693 50, 168, 104, 236, 206, 95, 322, 168, 556, 557,
04694 25, 310, 560, 186, 368, 388, 144, 219, 146, 147,
04695 368, 310, 32, 388, 368, 227, 574, 575, 1730, 368,
04696 368, 342, 1598, 144, 1736, 146, 147, 219, 186, 212,
04697 1742, 214, 215, 388, 368, 369, 370, 179, 86, 177,
04698 77, 78, 79, 80, 81, 1621, 100, 162, 260, 384,
04699 160, 76, 384, 1629, 160, 385, 177, 215, 83, 388,
04700 385, 385, 162, 178, 271, 385, 389, 385, 1805, 373,
04701 374, 375, 376, 377, 378, 379, 380, 381, 1780, 338,
04702 1792, 388, 388, 162, 389, 334, 201, 176, 1800, 301,
04703 170, 334, 170, 1805, 278, 120, 211, 1673, 389, 124,
04704 95, 201, 14, 140, 141, 142, 143, 14, 385, 273,
04705 385, 215, 18, 215, 139, 385, 159, 385, 18, 1831,
04706 1832, 333, 170, 388, 229, 167, 167, 136, 390, 341,
04707 342, 388, 315, 248, 280, 41, 42, 320, 170, 170,
04708 388, 47, 384, 170, 702, 51, 329, 359, 385, 385,
04709 385, 51, 290, 385, 1730, 167, 193, 194, 195, 196,
04710 1736, 186, 167, 211, 219, 202, 214, 32, 138, 290,
04711 388, 329, 198, 385, 243, 387, 388, 315, 384, 384,
04712 86, 87, 320, 1895, 86, 86, 86, 87, 236, 214,
04713 215, 228, 51, 384, 315, 384, 384, 384, 338, 320,
04714 758, 1913, 239, 109, 762, 385, 201, 389, 108, 109,
04715 322, 215, 167, 312, 167, 121, 1792, 49, 384, 384,
04716 778, 121, 188, 215, 214, 170, 170, 338, 215, 1805,
04717 1942, 268, 269, 384, 215, 215, 215, 349, 144, 86,
04718 384, 147, 385, 384, 144, 342, 342, 147, 360, 180,
04719 219, 385, 390, 367, 212, 1831, 1832, 372, 373, 374,
04720 375, 376, 377, 378, 379, 380, 381, 1979, 385, 1971,
04721 388, 348, 372, 373, 374, 375, 376, 377, 378, 379,
04722 380, 381, 385, 215, 385, 397, 334, 32, 23, 342,
04723 315, 342, 27, 28, 32, 320, 32, 105, 385, 384,
04724 384, 326, 128, 32, 329, 32, 32, 42, 247, 4,
04725 219, 219, 149, 2103, 2026, 32, 2028, 32, 2030, 1895,
04726 357, 384, 384, 144, 338, 146, 147, 364, 365, 366,
04727 88, 215, 384, 1669, 1127, 278, 385, 1913, 73, 95,
04728 1107, 76, 388, 686, 1324, 1534, 1086, 1289, 254, 84,
04729 1114, 376, 377, 1327, 254, 95, 177, 1629, 1770, 265,
04730 1631, 96, 1150, 1651, 1876, 265, 1942, 1752, 1789, 1734,
04731 1760, 1742, 2084, 2085, 1133, 110, 1974, 2089, 2003, 374,
04732 375, 376, 377, 378, 379, 380, 381, 1895, 123, 852,
04733 1323, 2103, 475, 1052, 506, 2107, 278, 1003, 2110, 511,
04734 277, 2103, 2114, 515, 516, 439, 1425, 866, 1223, 315,
04735 522, 523, 524, 936, 526, 315, 528, 1451, 1702, 83,
04736 532, 533, 534, 535, 2085, 160, 1991, 539, 1002, 541,
04737 542, 166, 544, 545, 1925, 547, 564, 2110, 550, 551,
04738 552, 553, 554, 555, 1700, 201, 558, 559, 1632, 561,
04739 2026, 18, 2028, 565, 2030, 567, 568, 1721, 6, 517,
04740 124, 201, 10, 1026, 576, 577, 1473, 6, 306, 290,
04741 18, 10, 584, 49, 1057, 587, 588, 589, 945, 18,
04742 144, 216, 317, 147, 51, 423, 699, 63, 64, 857,
04743 1431, 1979, 40, 1231, 315, 71, 1077, 503, 2107, 320,
04744 351, 40, 1981, 51, 1931, 2023, 2114, 2001, 2084, 2085,
04745 245, 637, 51, 144, 62, 146, 147, 81, 1236, 86,
04746 87, 871, 186, 62, 1330, 637, 1726, 1266, 1471, 110,
04747 429, -1, -1, -1, 2110, -1, 112, 649, 86, 87,
04748 275, -1, 109, -1, 92, 93, 177, 86, 87, -1,
04749 98, 215, -1, 92, 121, -1, 104, -1, 134, 98,
04750 108, 109, -1, -1, -1, 104, -1, -1, 144, 390,
04751 109, 147, -1, 121, -1, 151, 152, 144, 126, -1,
04752 147, 316, 121, -1, -1, 320, 321, 126, -1, -1,
04753 -1, -1, 168, 705, -1, -1, 144, 65, -1, 147,
04754 -1, -1, 150, -1, -1, 144, 182, 81, 147, -1,
04755 -1, 346, -1, -1, 349, 350, 372, 373, 374, 375,
04756 376, 377, 378, 379, 380, 381, -1, 77, 78, 79,
04757 80, 81, 372, 373, 374, 375, 376, 377, 378, 379,
04758 380, 381, -1, -1, 756, -1, -1, -1, -1, -1,
04759 -1, 315, 200, -1, -1, -1, 130, -1, -1, 290,
04760 -1, 200, 238, -1, -1, 329, -1, -1, -1, 143,
04761 -1, -1, 65, -1, 786, 787, 788, -1, -1, 227,
04762 -1, -1, -1, 65, 315, -1, 154, 254, 227, 320,
04763 140, 141, 142, 143, -1, -1, -1, -1, 265, 167,
04764 -1, 277, 250, -1, -1, -1, 254, 175, -1, -1,
04765 -1, 250, -1, 825, -1, 254, -1, 265, -1, 193,
04766 -1, -1, 196, -1, -1, 837, 265, 839, 202, -1,
04767 -1, -1, -1, 309, -1, -1, 312, 313, 206, 315,
04768 549, -1, -1, 193, 194, 195, 196, -1, 315, -1,
04769 -1, 219, 202, -1, -1, -1, -1, -1, -1, 390,
04770 -1, 154, -1, -1, -1, 239, -1, 315, -1, -1,
04771 -1, -1, 154, -1, 167, -1, 315, -1, -1, -1,
04772 356, -1, 175, -1, -1, 167, -1, -1, -1, 239,
04773 599, 600, 260, 175, 603, 269, 605, 606, 607, 608,
04774 609, 610, 611, 612, 613, 614, 615, -1, -1, -1,
04775 -1, 923, -1, 206, 926, -1, 928, 929, 268, 269,
04776 -1, 933, -1, -1, 206, -1, 219, -1, -1, -1,
04777 -1, -1, -1, 301, -1, 947, -1, -1, 950, 951,
04778 952, 953, -1, 955, -1, -1, -1, -1, -1, -1,
04779 962, -1, -1, 965, -1, 967, 968, 969, -1, -1,
04780 -1, -1, 974, 975, 976, -1, -1, 260, 980, 981,
04781 -1, 983, -1, 985, -1, 987, -1, 989, 260, 991,
04782 -1, -1, -1, 357, 996, -1, -1, -1, -1, -1,
04783 -1, -1, 366, -1, -1, -1, -1, -1, -1, -1,
04784 -1, 1013, -1, -1, -1, -1, -1, 357, 301, -1,
04785 -1, -1, -1, 1025, -1, 365, 366, -1, 1030, 301,
04786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04790 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1081,
04791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04794 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04795 -1, -1, -1, -1, -1, -1, -1, -1, -1, 828,
04796 -1, -1, 831, 1135, -1, -1, -1, -1, 1140, -1,
04797 -1, -1, 1144, -1, -1, -1, -1, -1, -1, -1,
04798 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04799 -1, 1163, 1164, -1, -1, -1, -1, -1, -1, -1,
04800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04801 1182, -1, -1, -1, -1, -1, -1, -1, 1190, -1,
04802 1192, -1, 1194, -1, -1, -1, -1, -1, -1, -1,
04803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04805 -1, -1, -1, -1, -1, -1, -1, -1, 1230, -1,
04806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04807 -1, -1, -1, -1, -1, -1, -1, 4, 5, -1,
04808 7, 8, -1, -1, -1, -1, 13, -1, -1, -1,
04809 17, 18, 19, 1265, 21, -1, -1, -1, -1, 26,
04810 -1, 28, 29, -1, 31, -1, -1, 1279, 35, -1,
04811 -1, -1, 39, -1, -1, -1, 43, -1, 45, 46,
04812 -1, 48, 49, -1, 51, 52, 53, 54, 55, 56,
04813 -1, 58, 59, -1, 61, -1, -1, -1, -1, 66,
04814 -1, -1, -1, -1, 71, 72, 73, -1, -1, 76,
04815 -1, -1, -1, -1, 81, 82, -1, -1, -1, -1,
04816 -1, -1, -1, -1, -1, 92, 93, -1, -1, -1,
04817 97, -1, 99, 100, 101, -1, -1, 104, -1, 106,
04818 107, -1, 109, 110, -1, 112, -1, 114, 115, -1,
04819 -1, 118, -1, -1, 121, 122, 123, 1369, 125, -1,
04820 -1, -1, 129, 130, -1, 132, -1, 134, -1, -1,
04821 137, -1, -1, -1, 1386, 1387, 143, 144, 145, -1,
04822 147, -1, 1394, 150, 151, -1, -1, 1399, -1, -1,
04823 1402, 1403, 1404, -1, -1, -1, -1, 164, -1, 166,
04824 -1, -1, 169, -1, -1, 172, -1, -1, -1, 176,
04825 -1, -1, -1, -1, -1, 182, 183, -1, 185, -1,
04826 1432, -1, -1, 190, 191, 192, 193, -1, -1, 196,
04827 -1, 198, -1, 200, -1, 202, 203, 204, 205, -1,
04828 -1, 208, 209, 210, -1, -1, 213, -1, -1, -1,
04829 217, 218, -1, 220, 221, 222, 223, -1, -1, -1,
04830 1472, -1, -1, -1, -1, 232, -1, 1479, 235, -1,
04831 237, 238, 239, 240, -1, -1, -1, -1, -1, 246,
04832 -1, -1, -1, -1, 251, -1, -1, -1, -1, -1,
04833 257, -1, -1, -1, 261, 262, 263, 264, 265, 266,
04834 267, -1, 269, 270, -1, -1, -1, 274, 275, 276,
04835 277, -1, -1, 280, -1, 282, 283, 284, -1, -1,
04836 -1, -1, -1, -1, -1, -1, -1, -1, 295, 296,
04837 -1, -1, 299, -1, -1, 302, 303, 304, -1, -1,
04838 307, -1, 309, 310, -1, -1, 313, -1, -1, 316,
04839 -1, 318, 319, -1, 321, -1, -1, 324, -1, -1,
04840 327, 328, -1, 330, 331, -1, 1578, -1, 335, -1,
04841 -1, -1, -1, 340, -1, -1, -1, -1, -1, 346,
04842 -1, 348, -1, -1, 351, -1, -1, -1, -1, 356,
04843 357, -1, -1, -1, -1, 362, -1, -1, -1, 366,
04844 -1, -1, -1, -1, 1616, -1, -1, -1, -1, -1,
04845 -1, -1, -1, -1, -1, -1, -1, -1, 385, -1,
04846 -1, -1, 389, 390, -1, -1, -1, -1, -1, -1,
04847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04851 -1, -1, 1684, -1, -1, -1, -1, -1, -1, -1,
04852 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04854 1712, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04855 -1, -1, -1, -1, 1726, -1, -1, -1, -1, -1,
04856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04860 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04863 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04864 -1, -1, -1, -1, 1816, 1817, -1, -1, -1, 1821,
04865 -1, -1, 4, 5, -1, 7, 8, -1, -1, -1,
04866 -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
04867 -1, -1, 24, 25, 26, -1, 28, 29, 30, 31,
04868 -1, -1, -1, 35, 36, 37, 38, 39, -1, -1,
04869 42, 43, -1, 45, 46, -1, 48, 49, -1, 51,
04870 52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
04871 62, 63, -1, -1, 66, 67, 68, -1, 70, 71,
04872 72, 73, 74, 75, 76, -1, -1, -1, -1, 81,
04873 82, 83, -1, -1, 86, -1, -1, -1, -1, -1,
04874 92, 93, -1, 1915, -1, 97, -1, 99, 100, 101,
04875 -1, -1, 104, -1, 106, 107, -1, 109, 110, -1,
04876 112, -1, 114, 115, 116, 117, 118, 119, 120, 121,
04877 122, 123, 124, 125, -1, -1, -1, 129, 130, -1,
04878 132, -1, 134, 135, -1, 137, -1, 139, -1, -1,
04879 -1, 143, 144, 145, -1, 147, 148, -1, 150, 151,
04880 -1, -1, -1, -1, -1, 157, 158, -1, 1980, -1,
04881 -1, 1983, 164, 1985, 166, -1, -1, 169, -1, 171,
04882 172, -1, 174, 175, 176, -1, -1, -1, -1, -1,
04883 182, 183, -1, 185, 186, -1, -1, 189, 190, 191,
04884 192, 193, -1, -1, 196, 197, 198, -1, 200, 201,
04885 202, 203, 204, 205, -1, -1, 208, 209, 210, 211,
04886 212, 213, 214, 215, -1, 217, 218, -1, 220, 221,
04887 222, 223, -1, -1, -1, -1, -1, -1, -1, -1,
04888 232, 233, -1, 235, -1, 237, 238, 239, 240, -1,
04889 -1, -1, -1, -1, 246, -1, -1, -1, -1, 251,
04890 252, 253, -1, -1, -1, 257, -1, -1, 260, 261,
04891 262, 263, 264, 265, 266, 267, -1, 269, 270, -1,
04892 -1, -1, 274, 275, 276, 277, -1, -1, 280, -1,
04893 282, 283, 284, -1, -1, -1, -1, -1, -1, -1,
04894 -1, -1, -1, 295, 296, 297, 298, 299, -1, -1,
04895 302, 303, 304, 305, 306, 307, 308, 309, 310, -1,
04896 -1, 313, -1, 315, 316, -1, 318, 319, 320, 321,
04897 -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
04898 -1, -1, -1, 335, -1, -1, -1, -1, 340, -1,
04899 -1, 343, 344, -1, 346, 347, 348, -1, -1, 351,
04900 352, -1, 354, 355, 356, 357, -1, -1, -1, -1,
04901 362, -1, -1, -1, 366, -1, -1, -1, -1, -1,
04902 -1, -1, -1, -1, 376, 377, -1, -1, -1, -1,
04903 382, -1, 384, -1, 386, -1, -1, 389, 390, 4,
04904 5, -1, 7, 8, 9, -1, -1, -1, 13, -1,
04905 -1, -1, 17, 18, 19, -1, 21, -1, -1, 24,
04906 25, 26, -1, 28, 29, -1, 31, -1, -1, -1,
04907 35, 36, 37, 38, 39, -1, -1, 42, 43, -1,
04908 45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
04909 55, 56, -1, 58, 59, -1, 61, 62, 63, -1,
04910 -1, 66, 67, 68, -1, 70, 71, 72, 73, 74,
04911 75, 76, -1, -1, -1, -1, 81, 82, 83, -1,
04912 -1, 86, -1, -1, -1, -1, -1, 92, 93, -1,
04913 -1, -1, 97, -1, 99, 100, 101, -1, -1, 104,
04914 -1, 106, 107, -1, 109, 110, -1, 112, -1, 114,
04915 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
04916 125, -1, -1, -1, 129, 130, -1, 132, -1, 134,
04917 135, -1, 137, -1, 139, -1, -1, -1, 143, 144,
04918 145, -1, 147, 148, -1, 150, 151, -1, -1, -1,
04919 -1, -1, 157, 158, -1, -1, -1, -1, -1, 164,
04920 -1, 166, -1, -1, 169, -1, 171, 172, -1, -1,
04921 175, 176, -1, -1, -1, -1, -1, 182, 183, -1,
04922 185, 186, -1, -1, 189, 190, 191, 192, 193, -1,
04923 -1, 196, 197, 198, -1, 200, 201, 202, 203, 204,
04924 205, -1, -1, 208, 209, 210, 211, 212, 213, 214,
04925 215, -1, 217, 218, 219, 220, 221, 222, 223, -1,
04926 -1, -1, -1, -1, -1, -1, -1, 232, 233, -1,
04927 235, -1, 237, 238, 239, 240, -1, -1, -1, -1,
04928 -1, 246, -1, -1, -1, -1, 251, 252, 253, -1,
04929 -1, -1, 257, -1, -1, 260, 261, 262, 263, 264,
04930 265, 266, 267, -1, 269, 270, -1, -1, -1, 274,
04931 275, 276, 277, -1, -1, 280, -1, 282, 283, 284,
04932 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
04933 295, 296, 297, 298, 299, -1, -1, 302, 303, 304,
04934 305, 306, 307, 308, 309, 310, -1, -1, 313, -1,
04935 315, 316, -1, 318, 319, 320, 321, -1, -1, 324,
04936 325, 326, 327, 328, 329, 330, 331, -1, -1, -1,
04937 335, -1, -1, -1, -1, 340, -1, -1, 343, 344,
04938 -1, 346, 347, 348, -1, -1, 351, 352, -1, 354,
04939 355, 356, 357, -1, -1, -1, -1, 362, -1, -1,
04940 -1, 366, -1, -1, -1, -1, -1, -1, -1, -1,
04941 -1, 376, 377, -1, -1, -1, -1, 382, -1, 384,
04942 -1, 386, -1, -1, 389, 390, 4, 5, -1, 7,
04943 8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
04944 18, 19, -1, 21, -1, -1, 24, 25, 26, -1,
04945 28, 29, -1, 31, -1, -1, -1, 35, 36, 37,
04946 38, 39, -1, -1, 42, 43, -1, 45, 46, -1,
04947 48, 49, -1, 51, 52, 53, 54, 55, 56, -1,
04948 58, 59, -1, 61, 62, 63, -1, -1, 66, 67,
04949 68, -1, 70, 71, 72, 73, 74, 75, 76, -1,
04950 -1, -1, -1, 81, 82, 83, -1, -1, 86, -1,
04951 -1, -1, -1, -1, 92, 93, -1, -1, -1, 97,
04952 -1, 99, 100, 101, -1, -1, 104, -1, 106, 107,
04953 -1, 109, 110, -1, 112, -1, 114, 115, 116, 117,
04954 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
04955 -1, 129, 130, -1, 132, -1, 134, 135, -1, 137,
04956 -1, 139, -1, -1, -1, 143, 144, 145, -1, 147,
04957 148, -1, 150, 151, -1, -1, -1, -1, -1, 157,
04958 158, -1, -1, -1, -1, -1, 164, -1, 166, -1,
04959 -1, 169, -1, 171, 172, -1, -1, 175, 176, -1,
04960 -1, -1, -1, -1, 182, 183, -1, 185, 186, -1,
04961 -1, 189, 190, 191, 192, 193, -1, -1, 196, 197,
04962 198, -1, 200, 201, 202, 203, 204, 205, -1, -1,
04963 208, 209, 210, 211, 212, 213, 214, 215, -1, 217,
04964 218, -1, 220, 221, 222, 223, -1, -1, -1, -1,
04965 -1, -1, -1, -1, 232, 233, -1, 235, -1, 237,
04966 238, 239, 240, -1, -1, -1, -1, -1, 246, -1,
04967 -1, -1, -1, 251, 252, 253, -1, -1, -1, 257,
04968 -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
04969 -1, 269, 270, -1, -1, -1, 274, 275, 276, 277,
04970 -1, -1, 280, -1, 282, 283, 284, -1, -1, -1,
04971 -1, -1, -1, -1, -1, -1, -1, 295, 296, 297,
04972 298, 299, -1, -1, 302, 303, 304, 305, 306, 307,
04973 308, 309, 310, -1, -1, 313, -1, 315, 316, -1,
04974 318, 319, 320, 321, -1, -1, 324, 325, 326, 327,
04975 328, 329, 330, 331, -1, -1, -1, 335, -1, -1,
04976 -1, -1, 340, -1, -1, 343, 344, -1, 346, 347,
04977 348, -1, -1, 351, 352, -1, 354, 355, 356, 357,
04978 -1, -1, -1, -1, 362, -1, -1, -1, 366, -1,
04979 -1, -1, -1, -1, -1, -1, -1, -1, 376, 377,
04980 -1, -1, -1, -1, 382, -1, 384, 385, 386, -1,
04981 -1, 389, 390, 4, 5, -1, 7, 8, -1, -1,
04982 -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
04983 21, -1, -1, 24, 25, 26, -1, 28, 29, -1,
04984 31, -1, -1, -1, 35, 36, 37, 38, 39, -1,
04985 -1, 42, 43, -1, 45, 46, -1, 48, 49, -1,
04986 51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
04987 61, 62, 63, -1, -1, 66, 67, 68, -1, 70,
04988 71, 72, 73, 74, 75, 76, -1, -1, -1, -1,
04989 81, 82, 83, -1, -1, 86, -1, -1, -1, -1,
04990 -1, 92, 93, -1, -1, -1, 97, -1, 99, 100,
04991 101, -1, -1, 104, -1, 106, 107, -1, 109, 110,
04992 -1, 112, -1, 114, 115, 116, 117, 118, 119, 120,
04993 121, 122, 123, 124, 125, -1, -1, -1, 129, 130,
04994 131, 132, -1, 134, 135, -1, 137, -1, 139, -1,
04995 -1, -1, 143, 144, 145, -1, 147, 148, -1, 150,
04996 151, -1, -1, -1, -1, -1, 157, 158, -1, -1,
04997 -1, -1, -1, 164, -1, 166, -1, -1, 169, -1,
04998 171, 172, -1, -1, 175, 176, -1, -1, -1, -1,
04999 -1, 182, 183, -1, 185, 186, -1, -1, 189, 190,
05000 191, 192, 193, -1, -1, 196, 197, 198, -1, 200,
05001 201, 202, 203, 204, 205, -1, -1, 208, 209, 210,
05002 211, 212, 213, 214, 215, -1, 217, 218, -1, 220,
05003 221, 222, 223, -1, -1, -1, -1, -1, -1, -1,
05004 -1, 232, 233, -1, 235, -1, 237, 238, 239, 240,
05005 -1, -1, -1, -1, -1, 246, -1, -1, -1, -1,
05006 251, 252, 253, -1, -1, -1, 257, -1, -1, 260,
05007 261, 262, 263, 264, 265, 266, 267, -1, 269, 270,
05008 -1, -1, -1, 274, 275, 276, 277, -1, -1, 280,
05009 -1, 282, 283, 284, -1, -1, -1, -1, -1, -1,
05010 -1, -1, -1, -1, 295, 296, 297, 298, 299, -1,
05011 -1, 302, 303, 304, 305, 306, 307, 308, 309, 310,
05012 -1, -1, 313, -1, 315, 316, -1, 318, 319, 320,
05013 321, -1, -1, 324, 325, 326, 327, 328, 329, 330,
05014 331, -1, -1, -1, 335, -1, -1, -1, -1, 340,
05015 -1, -1, 343, 344, -1, 346, 347, 348, -1, -1,
05016 351, 352, -1, 354, 355, 356, 357, -1, -1, -1,
05017 -1, 362, -1, -1, -1, 366, -1, -1, -1, -1,
05018 -1, -1, -1, -1, -1, 376, 377, -1, -1, -1,
05019 -1, 382, -1, 384, -1, 386, -1, -1, 389, 390,
05020 4, 5, -1, 7, 8, -1, -1, -1, -1, 13,
05021 -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
05022 24, 25, 26, -1, 28, 29, -1, 31, -1, -1,
05023 -1, 35, 36, 37, 38, 39, -1, -1, 42, 43,
05024 -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
05025 54, 55, 56, -1, 58, 59, -1, 61, 62, 63,
05026 -1, -1, 66, 67, 68, -1, 70, 71, 72, 73,
05027 74, 75, 76, -1, -1, -1, -1, 81, 82, 83,
05028 -1, -1, 86, -1, -1, -1, -1, -1, 92, 93,
05029 -1, -1, -1, 97, -1, 99, 100, 101, -1, -1,
05030 104, -1, 106, 107, -1, 109, 110, -1, 112, -1,
05031 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
05032 124, 125, -1, -1, -1, 129, 130, 131, 132, -1,
05033 134, 135, -1, 137, -1, 139, -1, -1, -1, 143,
05034 144, 145, -1, 147, 148, -1, 150, 151, -1, -1,
05035 -1, -1, -1, 157, 158, -1, -1, -1, -1, -1,
05036 164, -1, 166, -1, -1, 169, -1, 171, 172, -1,
05037 -1, 175, 176, -1, -1, -1, -1, -1, 182, 183,
05038 -1, 185, 186, -1, -1, 189, 190, 191, 192, 193,
05039 -1, -1, 196, 197, 198, -1, 200, 201, 202, 203,
05040 204, 205, -1, -1, 208, 209, 210, 211, 212, 213,
05041 214, 215, -1, 217, 218, -1, 220, 221, 222, 223,
05042 -1, -1, -1, -1, -1, -1, -1, -1, 232, 233,
05043 -1, 235, -1, 237, 238, 239, 240, -1, -1, -1,
05044 -1, -1, 246, -1, -1, -1, -1, 251, 252, 253,
05045 -1, -1, -1, 257, -1, -1, 260, 261, 262, 263,
05046 264, 265, 266, 267, -1, 269, 270, -1, -1, -1,
05047 274, 275, 276, 277, -1, -1, 280, -1, 282, 283,
05048 284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05049 -1, 295, 296, 297, 298, 299, -1, -1, 302, 303,
05050 304, 305, 306, 307, 308, 309, 310, -1, -1, 313,
05051 -1, 315, 316, -1, 318, 319, 320, 321, -1, -1,
05052 324, 325, 326, 327, 328, 329, 330, 331, -1, -1,
05053 -1, 335, -1, -1, -1, -1, 340, -1, -1, 343,
05054 344, -1, 346, 347, 348, -1, -1, 351, 352, -1,
05055 354, 355, 356, 357, -1, -1, -1, -1, 362, -1,
05056 -1, -1, 366, -1, -1, -1, -1, -1, -1, -1,
05057 -1, -1, 376, 377, -1, -1, -1, -1, 382, -1,
05058 384, -1, 386, -1, -1, 389, 390, 4, 5, -1,
05059 7, 8, -1, -1, -1, -1, 13, -1, -1, -1,
05060 17, 18, 19, -1, 21, -1, -1, 24, 25, 26,
05061 -1, 28, 29, -1, 31, -1, -1, -1, 35, 36,
05062 37, 38, 39, -1, -1, 42, 43, -1, 45, 46,
05063 -1, 48, 49, -1, 51, 52, 53, 54, 55, 56,
05064 -1, 58, 59, -1, 61, 62, 63, -1, -1, 66,
05065 67, 68, -1, 70, 71, 72, 73, 74, 75, 76,
05066 -1, -1, -1, -1, 81, 82, 83, -1, -1, 86,
05067 -1, -1, -1, -1, -1, 92, 93, -1, -1, -1,
05068 97, -1, 99, 100, 101, -1, -1, 104, -1, 106,
05069 107, -1, 109, 110, -1, 112, -1, 114, 115, 116,
05070 117, 118, 119, 120, 121, 122, 123, 124, 125, -1,
05071 -1, -1, 129, 130, 131, 132, -1, 134, 135, -1,
05072 137, -1, 139, -1, -1, -1, 143, 144, 145, -1,
05073 147, 148, -1, 150, 151, -1, -1, -1, -1, -1,
05074 157, 158, -1, -1, -1, -1, -1, 164, -1, 166,
05075 -1, -1, 169, -1, 171, 172, -1, -1, 175, 176,
05076 -1, -1, -1, -1, -1, 182, 183, -1, 185, 186,
05077 -1, -1, 189, 190, 191, 192, 193, -1, -1, 196,
05078 197, 198, -1, 200, 201, 202, 203, 204, 205, -1,
05079 -1, 208, 209, 210, 211, 212, 213, 214, 215, -1,
05080 217, 218, -1, 220, 221, 222, 223, -1, -1, -1,
05081 -1, -1, -1, -1, -1, 232, 233, -1, 235, -1,
05082 237, 238, 239, 240, -1, -1, -1, -1, -1, 246,
05083 -1, -1, -1, -1, 251, 252, 253, -1, -1, -1,
05084 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
05085 267, -1, 269, 270, -1, -1, -1, 274, 275, 276,
05086 277, -1, -1, 280, -1, 282, 283, 284, -1, -1,
05087 -1, -1, -1, -1, -1, -1, -1, -1, 295, 296,
05088 297, 298, 299, -1, -1, 302, 303, 304, 305, 306,
05089 307, 308, 309, 310, -1, -1, 313, -1, 315, 316,
05090 -1, 318, 319, 320, 321, -1, -1, 324, 325, 326,
05091 327, 328, 329, 330, 331, -1, -1, -1, 335, -1,
05092 -1, -1, -1, 340, -1, -1, 343, 344, -1, 346,
05093 347, 348, -1, -1, 351, 352, -1, 354, 355, 356,
05094 357, -1, -1, -1, -1, 362, -1, -1, -1, 366,
05095 -1, -1, -1, -1, -1, -1, -1, -1, -1, 376,
05096 377, -1, -1, -1, -1, 382, -1, 384, -1, 386,
05097 -1, -1, 389, 390, 4, 5, -1, 7, 8, -1,
05098 -1, -1, -1, 13, -1, -1, -1, 17, 18, 19,
05099 -1, 21, -1, -1, 24, 25, 26, -1, 28, 29,
05100 -1, 31, -1, -1, -1, 35, 36, 37, 38, 39,
05101 -1, -1, 42, 43, -1, 45, 46, -1, 48, 49,
05102 -1, 51, 52, 53, 54, 55, 56, -1, 58, 59,
05103 -1, 61, 62, 63, -1, -1, 66, 67, 68, -1,
05104 70, 71, 72, 73, 74, 75, 76, -1, -1, -1,
05105 -1, 81, 82, 83, -1, -1, 86, -1, -1, -1,
05106 -1, -1, 92, 93, -1, -1, -1, 97, -1, 99,
05107 100, 101, -1, -1, 104, -1, 106, 107, -1, 109,
05108 110, -1, 112, -1, 114, 115, 116, 117, 118, 119,
05109 120, 121, 122, 123, 124, 125, -1, -1, -1, 129,
05110 130, -1, 132, -1, 134, 135, -1, 137, -1, 139,
05111 -1, -1, -1, 143, 144, 145, -1, 147, 148, -1,
05112 150, 151, -1, -1, -1, -1, -1, 157, 158, -1,
05113 -1, -1, -1, -1, 164, -1, 166, -1, -1, 169,
05114 -1, 171, 172, -1, -1, 175, 176, -1, -1, -1,
05115 -1, -1, 182, 183, -1, 185, 186, -1, -1, 189,
05116 190, 191, 192, 193, -1, -1, 196, 197, 198, -1,
05117 200, 201, 202, 203, 204, 205, -1, -1, 208, 209,
05118 210, 211, 212, 213, 214, 215, -1, 217, 218, -1,
05119 220, 221, 222, 223, -1, -1, -1, -1, -1, -1,
05120 -1, -1, 232, 233, -1, 235, -1, 237, 238, 239,
05121 240, -1, -1, -1, -1, -1, 246, -1, -1, -1,
05122 -1, 251, 252, 253, -1, -1, -1, 257, -1, -1,
05123 260, 261, 262, 263, 264, 265, 266, 267, -1, 269,
05124 270, -1, -1, -1, 274, 275, 276, 277, -1, -1,
05125 280, -1, 282, 283, 284, -1, -1, -1, -1, -1,
05126 -1, -1, -1, -1, -1, 295, 296, 297, 298, 299,
05127 -1, -1, 302, 303, 304, 305, 306, 307, 308, 309,
05128 310, -1, -1, 313, -1, 315, 316, -1, 318, 319,
05129 320, 321, -1, -1, 324, 325, 326, 327, 328, 329,
05130 330, 331, -1, -1, -1, 335, -1, -1, -1, -1,
05131 340, -1, -1, 343, 344, -1, 346, 347, 348, -1,
05132 -1, 351, 352, -1, 354, 355, 356, 357, -1, -1,
05133 -1, -1, 362, -1, -1, -1, 366, -1, -1, -1,
05134 -1, -1, -1, -1, -1, -1, 376, 377, -1, -1,
05135 -1, -1, 382, -1, 384, -1, 386, -1, -1, 389,
05136 390, 4, 5, -1, 7, 8, -1, -1, -1, -1,
05137 13, -1, -1, -1, 17, 18, 19, -1, 21, -1,
05138 -1, 24, 25, 26, -1, 28, 29, -1, 31, -1,
05139 -1, -1, 35, 36, 37, 38, 39, -1, -1, 42,
05140 43, -1, 45, 46, -1, 48, 49, -1, 51, 52,
05141 53, 54, 55, 56, -1, 58, 59, -1, 61, 62,
05142 63, -1, -1, 66, 67, 68, -1, 70, 71, 72,
05143 73, 74, 75, 76, -1, -1, -1, -1, 81, 82,
05144 83, -1, -1, 86, -1, -1, -1, -1, -1, 92,
05145 93, -1, -1, -1, 97, -1, 99, 100, 101, -1,
05146 -1, 104, -1, 106, 107, -1, 109, 110, -1, 112,
05147 -1, 114, 115, 116, 117, 118, 119, 120, 121, 122,
05148 123, 124, 125, -1, -1, -1, 129, 130, -1, 132,
05149 -1, 134, 135, -1, 137, -1, 139, -1, -1, -1,
05150 143, 144, 145, -1, 147, 148, -1, 150, 151, -1,
05151 -1, -1, -1, -1, 157, 158, -1, -1, -1, -1,
05152 -1, 164, -1, 166, -1, -1, 169, -1, 171, 172,
05153 -1, -1, 175, 176, -1, -1, -1, -1, -1, 182,
05154 183, -1, 185, 186, -1, -1, 189, 190, 191, 192,
05155 193, -1, -1, 196, 197, 198, -1, 200, 201, 202,
05156 203, 204, 205, -1, -1, 208, 209, 210, 211, 212,
05157 213, 214, 215, -1, 217, 218, -1, 220, 221, 222,
05158 223, -1, -1, -1, -1, -1, -1, -1, -1, 232,
05159 233, -1, 235, -1, 237, 238, 239, 240, -1, -1,
05160 -1, -1, -1, 246, -1, -1, -1, -1, 251, 252,
05161 253, -1, -1, -1, 257, -1, -1, 260, 261, 262,
05162 263, 264, 265, 266, 267, -1, 269, 270, -1, -1,
05163 -1, 274, 275, 276, 277, -1, -1, 280, -1, 282,
05164 283, 284, -1, -1, -1, -1, -1, -1, -1, -1,
05165 -1, -1, 295, 296, 297, 298, 299, -1, -1, 302,
05166 303, 304, 305, 306, 307, 308, 309, 310, -1, -1,
05167 313, -1, 315, 316, -1, 318, 319, 320, 321, -1,
05168 -1, 324, 325, 326, 327, 328, 329, 330, 331, -1,
05169 -1, -1, 335, -1, -1, -1, -1, 340, -1, -1,
05170 343, 344, -1, 346, 347, 348, -1, -1, 351, 352,
05171 -1, 354, 355, 356, 357, -1, -1, -1, -1, 362,
05172 -1, -1, -1, 366, -1, -1, -1, -1, -1, -1,
05173 -1, -1, -1, 376, 377, -1, -1, -1, -1, 382,
05174 -1, 384, -1, 386, -1, -1, 389, 390, 4, 5,
05175 -1, 7, 8, 9, -1, -1, -1, 13, -1, -1,
05176 -1, 17, 18, 19, -1, 21, -1, -1, 24, 25,
05177 26, -1, 28, 29, -1, 31, -1, -1, -1, 35,
05178 36, 37, 38, 39, -1, -1, 42, 43, -1, 45,
05179 46, -1, 48, 49, -1, 51, 52, 53, 54, 55,
05180 56, -1, 58, 59, -1, 61, 62, 63, -1, -1,
05181 66, 67, 68, -1, 70, 71, 72, 73, 74, 75,
05182 76, -1, -1, -1, -1, 81, 82, 83, -1, -1,
05183 86, -1, -1, -1, -1, -1, 92, 93, -1, -1,
05184 -1, 97, -1, 99, 100, 101, -1, -1, 104, -1,
05185 106, 107, -1, 109, 110, -1, 112, -1, 114, 115,
05186 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
05187 -1, -1, -1, 129, 130, -1, 132, -1, 134, 135,
05188 -1, 137, -1, 139, -1, -1, -1, 143, 144, 145,
05189 -1, 147, 148, -1, 150, 151, -1, -1, -1, -1,
05190 -1, 157, 158, -1, -1, -1, -1, -1, 164, -1,
05191 166, -1, -1, 169, -1, 171, 172, -1, -1, 175,
05192 176, -1, -1, -1, -1, -1, 182, 183, -1, 185,
05193 186, -1, -1, 189, 190, 191, 192, 193, -1, -1,
05194 196, 197, 198, -1, 200, 201, 202, 203, 204, 205,
05195 -1, -1, 208, 209, 210, -1, 212, 213, 214, 215,
05196 -1, 217, 218, -1, 220, 221, 222, 223, -1, -1,
05197 -1, -1, -1, -1, -1, -1, 232, 233, -1, 235,
05198 -1, 237, 238, 239, 240, -1, -1, -1, -1, -1,
05199 246, -1, -1, -1, -1, 251, 252, 253, -1, -1,
05200 -1, 257, -1, -1, 260, 261, 262, 263, 264, 265,
05201 266, 267, -1, 269, 270, -1, -1, -1, 274, 275,
05202 276, 277, -1, -1, 280, -1, 282, 283, 284, -1,
05203 -1, -1, -1, -1, -1, -1, -1, -1, -1, 295,
05204 296, 297, 298, 299, -1, -1, 302, 303, 304, 305,
05205 306, 307, 308, 309, 310, -1, -1, 313, -1, 315,
05206 316, -1, 318, 319, 320, 321, -1, -1, 324, 325,
05207 326, 327, 328, 329, 330, 331, -1, -1, -1, 335,
05208 -1, -1, -1, -1, 340, -1, -1, 343, 344, -1,
05209 346, 347, 348, -1, -1, 351, 352, -1, 354, 355,
05210 356, 357, -1, -1, -1, -1, 362, -1, -1, -1,
05211 366, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05212 376, 377, -1, -1, -1, -1, 382, -1, 384, -1,
05213 386, -1, -1, 389, 390, 4, 5, -1, 7, 8,
05214 -1, -1, -1, -1, 13, -1, -1, -1, 17, 18,
05215 19, -1, 21, -1, -1, 24, 25, 26, -1, 28,
05216 29, -1, 31, -1, -1, -1, 35, 36, 37, 38,
05217 39, -1, -1, 42, 43, -1, 45, 46, -1, 48,
05218 49, -1, 51, 52, 53, 54, 55, 56, -1, 58,
05219 59, -1, 61, 62, 63, -1, -1, 66, 67, 68,
05220 -1, 70, 71, 72, 73, 74, 75, 76, -1, -1,
05221 -1, -1, 81, 82, 83, -1, -1, 86, -1, -1,
05222 -1, -1, -1, 92, 93, -1, -1, -1, 97, -1,
05223 99, 100, 101, -1, -1, 104, -1, 106, 107, -1,
05224 109, 110, -1, 112, -1, 114, 115, 116, 117, 118,
05225 119, 120, 121, 122, 123, 124, 125, -1, -1, -1,
05226 129, 130, -1, 132, -1, 134, 135, -1, 137, -1,
05227 139, -1, -1, -1, 143, 144, 145, -1, 147, 148,
05228 -1, 150, 151, -1, -1, -1, -1, -1, 157, 158,
05229 -1, -1, -1, -1, -1, 164, -1, 166, -1, -1,
05230 169, -1, 171, 172, -1, -1, 175, 176, -1, -1,
05231 -1, -1, -1, 182, 183, -1, 185, 186, -1, -1,
05232 189, 190, 191, 192, 193, -1, -1, 196, 197, 198,
05233 -1, 200, 201, 202, 203, 204, 205, -1, -1, 208,
05234 209, 210, 211, 212, 213, 214, 215, -1, 217, 218,
05235 -1, 220, 221, 222, 223, -1, -1, -1, -1, -1,
05236 -1, -1, -1, 232, 233, -1, 235, -1, 237, 238,
05237 239, 240, -1, -1, -1, -1, -1, 246, -1, -1,
05238 -1, -1, 251, 252, 253, -1, -1, -1, 257, -1,
05239 -1, 260, 261, 262, 263, 264, 265, 266, 267, -1,
05240 269, 270, -1, -1, -1, 274, 275, 276, 277, -1,
05241 -1, 280, -1, 282, 283, 284, -1, -1, -1, -1,
05242 -1, -1, -1, -1, -1, -1, 295, 296, 297, 298,
05243 299, -1, -1, 302, 303, 304, 305, 306, 307, 308,
05244 309, 310, -1, -1, 313, -1, 315, 316, -1, 318,
05245 319, 320, 321, -1, -1, 324, 325, 326, 327, 328,
05246 329, 330, 331, -1, -1, -1, 335, -1, -1, -1,
05247 -1, 340, -1, -1, 343, 344, -1, 346, 347, 348,
05248 -1, -1, 351, 352, -1, 354, 355, 356, 357, -1,
05249 -1, -1, -1, 362, -1, -1, -1, 366, -1, -1,
05250 -1, -1, -1, -1, -1, -1, -1, 376, 377, -1,
05251 -1, -1, -1, 382, -1, 384, -1, 386, -1, -1,
05252 389, 390, 4, 5, -1, 7, 8, -1, -1, -1,
05253 -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
05254 -1, -1, 24, 25, 26, -1, 28, 29, -1, 31,
05255 -1, -1, -1, 35, 36, 37, 38, 39, -1, -1,
05256 42, 43, -1, 45, 46, -1, 48, 49, -1, 51,
05257 52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
05258 62, 63, -1, -1, 66, 67, 68, -1, 70, 71,
05259 72, 73, 74, 75, 76, -1, -1, -1, -1, 81,
05260 82, 83, -1, -1, 86, -1, -1, -1, -1, -1,
05261 92, 93, -1, -1, -1, 97, -1, 99, 100, 101,
05262 -1, -1, 104, -1, 106, 107, -1, 109, 110, -1,
05263 112, -1, 114, 115, 116, 117, 118, 119, 120, 121,
05264 122, 123, 124, 125, -1, -1, -1, 129, 130, -1,
05265 132, -1, 134, 135, -1, 137, -1, 139, -1, -1,
05266 -1, 143, 144, 145, -1, 147, 148, -1, 150, 151,
05267 -1, -1, -1, -1, -1, 157, 158, -1, -1, -1,
05268 -1, -1, 164, -1, 166, -1, -1, 169, -1, 171,
05269 172, -1, -1, 175, 176, -1, -1, -1, -1, -1,
05270 182, 183, -1, 185, 186, -1, -1, 189, 190, 191,
05271 192, 193, -1, -1, 196, 197, 198, -1, 200, 201,
05272 202, 203, 204, 205, -1, -1, 208, 209, 210, 211,
05273 212, 213, 214, 215, -1, 217, 218, -1, 220, 221,
05274 222, 223, -1, -1, -1, -1, -1, -1, -1, -1,
05275 232, 233, -1, 235, -1, 237, 238, 239, 240, -1,
05276 -1, -1, -1, -1, 246, -1, -1, -1, -1, 251,
05277 252, 253, -1, -1, -1, 257, -1, -1, 260, 261,
05278 262, 263, 264, 265, 266, 267, -1, 269, 270, -1,
05279 -1, -1, 274, 275, 276, 277, -1, -1, 280, -1,
05280 282, 283, 284, -1, -1, -1, -1, -1, -1, -1,
05281 -1, -1, -1, 295, 296, 297, 298, 299, -1, -1,
05282 302, 303, 304, 305, 306, 307, 308, 309, 310, -1,
05283 -1, 313, -1, 315, 316, -1, 318, 319, 320, 321,
05284 -1, -1, 324, 325, 326, 327, 328, 329, 330, 331,
05285 -1, -1, -1, 335, -1, -1, -1, -1, 340, -1,
05286 -1, 343, 344, -1, 346, 347, 348, -1, -1, 351,
05287 352, -1, 354, 355, 356, 357, -1, -1, -1, -1,
05288 362, -1, -1, -1, 366, -1, -1, -1, -1, -1,
05289 -1, -1, -1, -1, 376, 377, -1, -1, -1, -1,
05290 382, -1, 384, -1, 386, -1, -1, 389, 390, 4,
05291 5, -1, 7, 8, -1, -1, -1, -1, 13, -1,
05292 -1, -1, 17, 18, 19, -1, 21, -1, -1, 24,
05293 25, 26, -1, 28, 29, -1, 31, -1, -1, -1,
05294 35, 36, 37, 38, 39, -1, -1, 42, 43, -1,
05295 45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
05296 55, 56, -1, 58, 59, -1, 61, 62, 63, -1,
05297 -1, 66, 67, 68, -1, 70, 71, 72, 73, 74,
05298 75, 76, -1, -1, -1, -1, 81, 82, 83, -1,
05299 -1, 86, -1, -1, -1, -1, -1, 92, 93, -1,
05300 -1, -1, 97, -1, 99, 100, 101, -1, -1, 104,
05301 -1, 106, 107, -1, 109, 110, -1, 112, -1, 114,
05302 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
05303 125, -1, -1, -1, 129, 130, -1, 132, -1, 134,
05304 135, -1, 137, -1, 139, -1, -1, -1, 143, 144,
05305 145, -1, 147, 148, -1, 150, 151, -1, -1, -1,
05306 -1, -1, 157, 158, -1, -1, -1, -1, -1, 164,
05307 -1, 166, -1, -1, 169, -1, 171, 172, -1, -1,
05308 175, 176, -1, -1, -1, -1, -1, 182, 183, -1,
05309 185, 186, -1, -1, 189, 190, 191, 192, 193, -1,
05310 -1, 196, 197, 198, -1, 200, 201, 202, 203, 204,
05311 205, -1, -1, 208, 209, 210, 211, 212, 213, 214,
05312 215, -1, 217, 218, -1, 220, 221, 222, 223, -1,
05313 -1, -1, -1, -1, -1, -1, -1, 232, 233, -1,
05314 235, -1, 237, 238, 239, 240, -1, -1, -1, -1,
05315 -1, 246, -1, -1, -1, -1, 251, 252, 253, -1,
05316 -1, -1, 257, -1, -1, 260, 261, 262, 263, 264,
05317 265, 266, 267, -1, 269, 270, -1, -1, -1, 274,
05318 275, 276, 277, -1, -1, 280, -1, 282, 283, 284,
05319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05320 295, 296, 297, 298, 299, -1, -1, 302, 303, 304,
05321 305, 306, 307, 308, 309, 310, -1, -1, 313, -1,
05322 315, 316, -1, 318, 319, 320, 321, -1, -1, 324,
05323 325, 326, 327, 328, 329, 330, 331, -1, -1, -1,
05324 335, -1, -1, -1, -1, 340, -1, -1, 343, 344,
05325 -1, 346, 347, 348, -1, -1, 351, 352, -1, 354,
05326 355, 356, 357, -1, -1, -1, -1, 362, -1, -1,
05327 -1, 366, -1, -1, -1, -1, -1, -1, -1, -1,
05328 -1, 376, 377, -1, -1, -1, -1, 382, -1, 384,
05329 -1, 386, -1, -1, 389, 390, 4, 5, -1, 7,
05330 8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
05331 18, 19, -1, 21, -1, -1, 24, 25, 26, -1,
05332 28, 29, -1, 31, -1, -1, -1, 35, 36, 37,
05333 38, 39, -1, -1, 42, 43, -1, 45, 46, -1,
05334 48, 49, -1, 51, 52, 53, 54, 55, 56, -1,
05335 58, 59, -1, 61, 62, 63, -1, -1, 66, 67,
05336 68, -1, 70, 71, 72, 73, 74, 75, 76, -1,
05337 -1, -1, -1, 81, 82, 83, -1, -1, 86, -1,
05338 -1, -1, -1, -1, 92, 93, -1, -1, -1, 97,
05339 -1, 99, 100, 101, -1, -1, 104, -1, 106, 107,
05340 -1, 109, 110, -1, 112, -1, 114, 115, 116, 117,
05341 118, 119, 120, 121, 122, 123, 124, 125, -1, -1,
05342 -1, 129, 130, -1, 132, -1, 134, 135, -1, 137,
05343 -1, 139, -1, -1, -1, 143, 144, 145, -1, 147,
05344 148, -1, 150, 151, -1, -1, -1, -1, -1, 157,
05345 158, -1, -1, -1, -1, -1, 164, -1, 166, -1,
05346 -1, 169, -1, 171, 172, -1, -1, 175, 176, -1,
05347 -1, -1, -1, -1, 182, 183, -1, 185, 186, -1,
05348 -1, 189, 190, 191, 192, 193, -1, -1, 196, 197,
05349 198, -1, 200, 201, 202, 203, 204, 205, -1, -1,
05350 208, 209, 210, -1, 212, 213, 214, 215, -1, 217,
05351 218, -1, 220, 221, 222, 223, -1, -1, -1, -1,
05352 -1, -1, -1, -1, 232, 233, -1, 235, -1, 237,
05353 238, 239, 240, -1, -1, -1, -1, -1, 246, -1,
05354 -1, -1, -1, 251, 252, 253, -1, -1, -1, 257,
05355 -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
05356 -1, 269, 270, -1, -1, -1, 274, 275, 276, 277,
05357 -1, -1, 280, -1, 282, 283, 284, -1, -1, -1,
05358 -1, -1, -1, -1, -1, -1, -1, 295, 296, 297,
05359 298, 299, -1, -1, 302, 303, 304, 305, 306, 307,
05360 308, 309, 310, -1, -1, 313, -1, 315, 316, -1,
05361 318, 319, 320, 321, -1, -1, 324, 325, 326, 327,
05362 328, 329, 330, 331, -1, -1, -1, 335, -1, -1,
05363 -1, -1, 340, -1, -1, 343, 344, -1, 346, 347,
05364 348, -1, -1, 351, 352, -1, 354, 355, 356, 357,
05365 -1, -1, -1, -1, 362, -1, -1, -1, 366, -1,
05366 -1, -1, -1, -1, -1, -1, -1, -1, 376, 377,
05367 -1, -1, -1, -1, 382, -1, 384, -1, 386, -1,
05368 -1, 389, 390, 4, 5, -1, 7, 8, -1, -1,
05369 -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
05370 21, -1, -1, 24, 25, 26, -1, 28, 29, -1,
05371 31, -1, -1, -1, 35, 36, 37, 38, 39, -1,
05372 -1, 42, 43, -1, 45, 46, -1, 48, 49, -1,
05373 51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
05374 61, 62, 63, -1, -1, 66, 67, 68, -1, 70,
05375 71, 72, 73, 74, 75, 76, -1, -1, -1, -1,
05376 81, 82, 83, -1, -1, 86, -1, -1, -1, -1,
05377 -1, 92, 93, -1, -1, -1, 97, -1, 99, 100,
05378 101, -1, -1, 104, -1, 106, 107, -1, 109, 110,
05379 -1, 112, -1, 114, 115, 116, 117, 118, 119, 120,
05380 121, 122, 123, 124, 125, -1, -1, -1, 129, 130,
05381 -1, 132, -1, 134, 135, -1, 137, -1, 139, -1,
05382 -1, -1, 143, 144, 145, -1, 147, 148, -1, 150,
05383 151, -1, -1, -1, -1, -1, 157, 158, -1, -1,
05384 -1, -1, -1, 164, -1, 166, -1, -1, 169, -1,
05385 171, 172, -1, -1, 175, 176, -1, -1, -1, -1,
05386 -1, 182, 183, -1, 185, 186, -1, -1, 189, 190,
05387 191, 192, 193, -1, -1, 196, 197, 198, -1, 200,
05388 201, 202, 203, 204, 205, -1, -1, 208, 209, 210,
05389 -1, 212, 213, 214, 215, -1, 217, 218, -1, 220,
05390 221, 222, 223, -1, -1, -1, -1, -1, -1, -1,
05391 -1, 232, 233, -1, 235, -1, 237, 238, 239, 240,
05392 -1, -1, -1, -1, -1, 246, -1, -1, -1, -1,
05393 251, 252, 253, -1, -1, -1, 257, -1, -1, 260,
05394 261, 262, 263, 264, 265, 266, 267, -1, 269, 270,
05395 -1, -1, -1, 274, 275, 276, 277, -1, -1, 280,
05396 -1, 282, 283, 284, -1, -1, -1, -1, -1, -1,
05397 -1, -1, -1, -1, 295, 296, 297, 298, 299, -1,
05398 -1, 302, 303, 304, 305, 306, 307, 308, 309, 310,
05399 -1, -1, 313, -1, 315, 316, -1, 318, 319, 320,
05400 321, -1, -1, 324, 325, 326, 327, 328, 329, 330,
05401 331, -1, -1, -1, 335, -1, -1, -1, -1, 340,
05402 -1, -1, 343, 344, -1, 346, 347, 348, -1, -1,
05403 351, 352, -1, 354, 355, 356, 357, -1, -1, -1,
05404 -1, 362, -1, -1, -1, 366, -1, -1, -1, -1,
05405 -1, -1, -1, -1, -1, 376, 377, -1, -1, -1,
05406 -1, 382, -1, 384, -1, 386, -1, -1, 389, 390,
05407 4, 5, -1, 7, 8, -1, -1, -1, -1, 13,
05408 -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
05409 24, 25, 26, -1, 28, 29, -1, 31, -1, -1,
05410 -1, 35, 36, 37, 38, 39, -1, -1, 42, 43,
05411 -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
05412 54, 55, 56, -1, 58, 59, -1, 61, 62, 63,
05413 -1, -1, 66, 67, 68, -1, 70, 71, 72, 73,
05414 74, 75, 76, -1, -1, -1, -1, 81, 82, 83,
05415 -1, -1, 86, -1, -1, -1, -1, -1, 92, 93,
05416 -1, -1, -1, 97, -1, 99, 100, 101, -1, -1,
05417 104, -1, 106, 107, -1, 109, 110, -1, 112, -1,
05418 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
05419 124, 125, -1, -1, -1, 129, 130, -1, 132, -1,
05420 134, 135, -1, 137, -1, 139, -1, -1, -1, 143,
05421 144, 145, -1, 147, 148, -1, 150, 151, -1, -1,
05422 -1, -1, -1, 157, 158, -1, -1, -1, -1, -1,
05423 164, -1, 166, -1, -1, 169, -1, 171, 172, -1,
05424 -1, 175, 176, -1, -1, -1, -1, -1, 182, 183,
05425 -1, 185, 186, -1, -1, 189, 190, 191, 192, 193,
05426 -1, -1, 196, 197, 198, -1, 200, 201, 202, 203,
05427 204, 205, -1, -1, 208, 209, 210, -1, 212, 213,
05428 214, 215, -1, 217, 218, -1, 220, 221, 222, 223,
05429 -1, -1, -1, -1, -1, -1, -1, -1, 232, 233,
05430 -1, 235, -1, 237, 238, 239, 240, -1, -1, -1,
05431 -1, -1, 246, -1, -1, -1, -1, 251, 252, 253,
05432 -1, -1, -1, 257, -1, -1, 260, 261, 262, 263,
05433 264, 265, 266, 267, -1, 269, 270, -1, -1, -1,
05434 274, 275, 276, 277, -1, -1, 280, -1, 282, 283,
05435 284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05436 -1, 295, 296, 297, 298, 299, -1, -1, 302, 303,
05437 304, 305, 306, 307, 308, 309, 310, -1, -1, 313,
05438 -1, 315, 316, -1, 318, 319, 320, 321, -1, -1,
05439 324, 325, 326, 327, 328, 329, 330, 331, -1, -1,
05440 -1, 335, -1, -1, -1, -1, 340, -1, -1, 343,
05441 344, -1, 346, 347, 348, -1, -1, 351, 352, -1,
05442 354, 355, 356, 357, -1, -1, -1, -1, 362, -1,
05443 -1, -1, 366, -1, -1, -1, -1, -1, -1, -1,
05444 -1, -1, 376, 377, -1, -1, -1, -1, 382, -1,
05445 384, -1, 386, -1, -1, 389, 390, 4, 5, -1,
05446 7, 8, -1, -1, -1, -1, 13, -1, -1, -1,
05447 17, 18, 19, -1, 21, -1, -1, -1, -1, 26,
05448 -1, 28, 29, -1, 31, -1, -1, -1, 35, -1,
05449 -1, -1, 39, -1, -1, -1, 43, -1, 45, 46,
05450 -1, 48, 49, -1, 51, 52, 53, 54, 55, 56,
05451 -1, 58, 59, -1, 61, -1, -1, -1, -1, 66,
05452 -1, -1, -1, -1, 71, 72, 73, -1, -1, 76,
05453 -1, -1, -1, -1, 81, 82, -1, -1, -1, -1,
05454 -1, -1, -1, -1, -1, 92, 93, -1, -1, -1,
05455 97, -1, 99, 100, 101, -1, -1, 104, -1, 106,
05456 107, -1, 109, 110, -1, 112, -1, 114, 115, -1,
05457 -1, 118, -1, -1, 121, 122, 123, -1, 125, -1,
05458 -1, -1, 129, 130, -1, 132, -1, 134, -1, -1,
05459 137, -1, -1, -1, -1, -1, 143, 144, 145, -1,
05460 147, -1, -1, 150, 151, -1, -1, -1, -1, -1,
05461 -1, -1, -1, -1, -1, -1, -1, 164, -1, 166,
05462 -1, -1, 169, -1, -1, 172, -1, -1, -1, 176,
05463 -1, -1, -1, -1, -1, 182, 183, -1, 185, -1,
05464 -1, -1, -1, 190, 191, 192, 193, -1, -1, 196,
05465 -1, 198, -1, 200, -1, 202, 203, 204, 205, -1,
05466 -1, 208, 209, 210, -1, -1, 213, -1, -1, -1,
05467 217, 218, -1, 220, 221, 222, 223, -1, -1, -1,
05468 -1, -1, -1, -1, -1, 232, -1, -1, 235, -1,
05469 237, 238, 239, 240, -1, -1, -1, -1, -1, 246,
05470 -1, -1, -1, -1, 251, -1, -1, -1, -1, -1,
05471 257, -1, -1, -1, 261, 262, 263, 264, 265, 266,
05472 267, -1, 269, 270, -1, -1, -1, 274, 275, 276,
05473 277, -1, -1, 280, -1, 282, 283, 284, -1, -1,
05474 -1, -1, -1, -1, -1, -1, -1, -1, 295, 296,
05475 -1, -1, 299, -1, -1, 302, 303, 304, -1, -1,
05476 307, -1, 309, 310, -1, -1, 313, -1, -1, 316,
05477 -1, 318, 319, -1, 321, -1, -1, 324, -1, -1,
05478 327, 328, -1, 330, 331, -1, -1, -1, 335, -1,
05479 -1, -1, -1, 340, -1, -1, -1, -1, -1, 346,
05480 -1, 348, -1, -1, 351, -1, -1, -1, -1, 356,
05481 357, -1, -1, 4, 5, 362, 7, 8, -1, 366,
05482 -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
05483 21, -1, -1, -1, -1, 26, -1, 28, 29, -1,
05484 31, -1, 389, 390, 35, -1, -1, -1, 39, -1,
05485 -1, -1, 43, -1, 45, 46, -1, 48, 49, -1,
05486 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
05487 61, -1, -1, -1, -1, 66, -1, -1, -1, -1,
05488 71, 72, 73, -1, -1, 76, -1, -1, -1, -1,
05489 81, 82, -1, -1, -1, -1, -1, -1, -1, -1,
05490 -1, 92, 93, -1, -1, -1, 97, -1, 99, 100,
05491 101, -1, -1, 104, -1, 106, 107, -1, 109, 110,
05492 -1, 112, -1, 114, 115, -1, -1, 118, -1, -1,
05493 121, 122, 123, -1, 125, -1, -1, -1, 129, 130,
05494 -1, 132, -1, 134, -1, -1, 137, -1, -1, -1,
05495 -1, -1, 143, 144, 145, -1, 147, -1, -1, 150,
05496 151, 152, -1, -1, -1, -1, -1, -1, -1, -1,
05497 -1, -1, -1, 164, -1, 166, -1, -1, 169, 170,
05498 -1, 172, -1, -1, -1, 176, -1, 178, -1, -1,
05499 -1, 182, 183, -1, 185, -1, -1, -1, -1, 190,
05500 191, 192, 193, -1, -1, 196, -1, 198, -1, 200,
05501 -1, 202, 203, 204, 205, -1, -1, 208, 209, 210,
05502 -1, -1, 213, -1, -1, -1, 217, 218, -1, 220,
05503 221, 222, 223, -1, -1, -1, -1, -1, -1, -1,
05504 -1, 232, -1, -1, 235, -1, 237, 238, 239, 240,
05505 -1, -1, -1, -1, -1, 246, -1, -1, -1, -1,
05506 251, -1, -1, -1, -1, -1, 257, -1, -1, -1,
05507 261, 262, 263, 264, 265, 266, 267, -1, 269, 270,
05508 271, -1, -1, 274, 275, 276, 277, -1, -1, 280,
05509 -1, 282, 283, 284, -1, -1, -1, -1, -1, -1,
05510 -1, -1, -1, -1, 295, 296, -1, -1, 299, -1,
05511 -1, 302, 303, 304, -1, -1, 307, -1, 309, 310,
05512 -1, -1, 313, -1, -1, 316, -1, 318, 319, -1,
05513 321, -1, -1, 324, -1, -1, 327, 328, -1, 330,
05514 331, -1, -1, -1, 335, -1, -1, -1, -1, 340,
05515 -1, -1, -1, -1, -1, 346, -1, 348, -1, -1,
05516 351, -1, -1, -1, -1, 356, 357, -1, -1, 4,
05517 5, 362, 7, 8, -1, 366, -1, -1, 13, -1,
05518 -1, -1, 17, 18, 19, -1, 21, -1, -1, -1,
05519 -1, 26, -1, 28, 29, -1, 31, -1, 389, -1,
05520 35, -1, -1, -1, 39, -1, -1, -1, 43, -1,
05521 45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
05522 55, 56, -1, 58, 59, 60, 61, -1, -1, -1,
05523 -1, 66, -1, -1, -1, -1, 71, 72, 73, -1,
05524 -1, 76, -1, -1, -1, -1, 81, 82, -1, -1,
05525 -1, -1, -1, -1, -1, -1, -1, 92, 93, -1,
05526 -1, -1, 97, -1, 99, 100, 101, -1, -1, 104,
05527 -1, 106, 107, -1, 109, 110, -1, 112, -1, 114,
05528 115, -1, -1, 118, -1, -1, 121, 122, 123, -1,
05529 125, -1, -1, -1, 129, 130, -1, 132, -1, 134,
05530 -1, -1, 137, -1, -1, -1, -1, -1, 143, 144,
05531 145, -1, 147, -1, -1, 150, 151, 152, -1, -1,
05532 -1, -1, -1, -1, -1, -1, -1, -1, -1, 164,
05533 -1, 166, -1, -1, 169, 170, -1, 172, -1, -1,
05534 -1, 176, -1, -1, -1, -1, -1, 182, 183, -1,
05535 185, -1, -1, -1, -1, 190, 191, 192, 193, -1,
05536 -1, 196, -1, 198, -1, 200, -1, 202, 203, 204,
05537 205, -1, -1, 208, 209, 210, -1, -1, 213, -1,
05538 -1, -1, 217, 218, -1, 220, 221, 222, 223, -1,
05539 -1, -1, -1, -1, -1, -1, -1, 232, -1, -1,
05540 235, -1, 237, 238, 239, 240, -1, -1, -1, -1,
05541 -1, 246, -1, -1, -1, -1, 251, -1, -1, -1,
05542 -1, -1, 257, -1, -1, -1, 261, 262, 263, 264,
05543 265, 266, 267, -1, 269, 270, -1, -1, -1, 274,
05544 275, 276, 277, -1, -1, 280, -1, 282, 283, 284,
05545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05546 295, 296, -1, -1, 299, -1, -1, 302, 303, 304,
05547 -1, -1, 307, -1, 309, 310, -1, -1, 313, -1,
05548 -1, 316, -1, 318, 319, -1, 321, -1, -1, 324,
05549 -1, -1, 327, 328, -1, 330, 331, -1, -1, -1,
05550 335, -1, -1, -1, -1, 340, -1, -1, -1, -1,
05551 -1, 346, -1, 348, -1, -1, 351, -1, -1, -1,
05552 -1, 356, 357, -1, -1, 4, 5, 362, 7, 8,
05553 -1, 366, -1, -1, 13, -1, -1, -1, 17, 18,
05554 19, -1, 21, -1, -1, -1, -1, 26, -1, 28,
05555 29, -1, 31, -1, 389, -1, 35, -1, -1, -1,
05556 39, -1, -1, -1, 43, -1, 45, 46, -1, 48,
05557 49, -1, 51, 52, 53, 54, 55, 56, -1, 58,
05558 59, -1, 61, -1, -1, -1, -1, 66, -1, -1,
05559 -1, -1, 71, 72, 73, -1, -1, 76, -1, -1,
05560 -1, -1, 81, 82, -1, -1, -1, -1, -1, -1,
05561 -1, -1, -1, 92, 93, -1, -1, -1, 97, -1,
05562 99, 100, 101, -1, -1, 104, -1, 106, 107, -1,
05563 109, 110, -1, 112, -1, 114, 115, -1, -1, 118,
05564 -1, -1, 121, 122, 123, -1, 125, -1, -1, -1,
05565 129, 130, -1, 132, -1, 134, -1, -1, 137, -1,
05566 -1, -1, -1, -1, 143, 144, 145, -1, 147, -1,
05567 -1, 150, 151, -1, -1, -1, -1, -1, -1, -1,
05568 -1, -1, -1, -1, -1, 164, -1, 166, -1, -1,
05569 169, -1, -1, 172, -1, -1, -1, 176, -1, -1,
05570 -1, -1, -1, 182, 183, -1, 185, -1, -1, -1,
05571 -1, 190, 191, 192, 193, -1, -1, 196, -1, 198,
05572 -1, 200, -1, 202, 203, 204, 205, -1, -1, 208,
05573 209, 210, -1, -1, 213, -1, -1, -1, 217, 218,
05574 -1, 220, 221, 222, 223, -1, -1, -1, -1, -1,
05575 -1, -1, -1, 232, -1, -1, 235, -1, 237, 238,
05576 239, 240, -1, -1, -1, -1, -1, 246, -1, -1,
05577 -1, -1, 251, -1, -1, -1, -1, -1, 257, -1,
05578 -1, -1, 261, 262, 263, 264, 265, 266, 267, -1,
05579 269, 270, 271, -1, -1, 274, 275, 276, 277, -1,
05580 -1, 280, -1, 282, 283, 284, -1, -1, -1, -1,
05581 -1, -1, -1, -1, -1, -1, 295, 296, -1, -1,
05582 299, -1, -1, 302, 303, 304, -1, -1, 307, -1,
05583 309, 310, -1, -1, 313, -1, -1, 316, -1, 318,
05584 319, -1, 321, -1, -1, 324, -1, -1, 327, 328,
05585 -1, 330, 331, -1, -1, -1, 335, -1, -1, -1,
05586 -1, 340, -1, -1, -1, -1, -1, 346, -1, 348,
05587 -1, -1, 351, -1, -1, -1, -1, 356, 357, -1,
05588 -1, -1, -1, 362, -1, -1, -1, 366, -1, -1,
05589 4, 5, -1, 7, 8, -1, -1, -1, -1, 13,
05590 -1, -1, -1, 17, 18, 19, 385, 21, -1, -1,
05591 389, -1, 26, -1, 28, 29, -1, 31, -1, -1,
05592 -1, 35, -1, -1, -1, 39, -1, -1, -1, 43,
05593 -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
05594 54, 55, 56, -1, 58, 59, -1, 61, -1, -1,
05595 -1, -1, 66, -1, -1, -1, -1, 71, 72, 73,
05596 -1, -1, 76, -1, -1, -1, -1, 81, 82, -1,
05597 -1, -1, -1, -1, -1, -1, -1, -1, 92, 93,
05598 -1, -1, -1, 97, -1, 99, 100, 101, -1, -1,
05599 104, -1, 106, 107, -1, 109, 110, -1, 112, -1,
05600 114, 115, -1, -1, 118, -1, -1, 121, 122, 123,
05601 -1, 125, -1, -1, -1, 129, 130, -1, 132, -1,
05602 134, -1, -1, 137, -1, -1, -1, -1, -1, 143,
05603 144, 145, -1, 147, -1, -1, 150, 151, -1, -1,
05604 -1, -1, -1, -1, -1, 159, -1, -1, -1, -1,
05605 164, -1, 166, -1, -1, 169, -1, -1, 172, -1,
05606 -1, -1, 176, -1, -1, -1, -1, -1, 182, 183,
05607 -1, 185, -1, -1, -1, -1, 190, 191, 192, 193,
05608 -1, -1, 196, -1, 198, -1, 200, -1, 202, 203,
05609 204, 205, -1, -1, 208, 209, 210, -1, -1, 213,
05610 -1, -1, -1, 217, 218, -1, 220, 221, 222, 223,
05611 -1, -1, -1, -1, -1, -1, -1, -1, 232, -1,
05612 -1, 235, -1, 237, 238, 239, 240, -1, -1, -1,
05613 -1, -1, 246, -1, -1, -1, -1, 251, -1, -1,
05614 -1, -1, -1, 257, -1, -1, -1, 261, 262, 263,
05615 264, 265, 266, 267, -1, 269, 270, -1, -1, -1,
05616 274, 275, 276, 277, -1, -1, 280, -1, 282, 283,
05617 284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05618 -1, 295, 296, -1, -1, 299, -1, -1, 302, 303,
05619 304, -1, -1, 307, -1, 309, 310, -1, -1, 313,
05620 -1, -1, 316, -1, 318, 319, -1, 321, -1, -1,
05621 324, -1, -1, 327, 328, -1, 330, 331, -1, -1,
05622 -1, 335, -1, -1, -1, -1, 340, -1, -1, -1,
05623 -1, -1, 346, -1, 348, -1, -1, 351, -1, -1,
05624 -1, -1, 356, 357, -1, -1, 4, 5, 362, 7,
05625 8, -1, 366, -1, -1, 13, -1, -1, -1, 17,
05626 18, 19, -1, 21, -1, -1, -1, -1, 26, -1,
05627 28, 29, -1, 31, -1, 389, -1, 35, -1, -1,
05628 -1, 39, -1, -1, -1, 43, -1, 45, 46, -1,
05629 48, 49, -1, 51, 52, 53, 54, 55, 56, -1,
05630 58, 59, -1, 61, -1, -1, -1, -1, 66, -1,
05631 -1, -1, -1, 71, 72, 73, -1, -1, 76, -1,
05632 -1, -1, -1, 81, 82, -1, -1, -1, -1, -1,
05633 -1, -1, -1, -1, 92, 93, -1, -1, -1, 97,
05634 -1, 99, 100, 101, -1, -1, 104, -1, 106, 107,
05635 -1, 109, 110, -1, 112, -1, 114, 115, -1, -1,
05636 118, -1, -1, 121, 122, 123, -1, 125, -1, -1,
05637 -1, 129, 130, -1, 132, -1, 134, -1, -1, 137,
05638 -1, -1, -1, -1, -1, 143, 144, 145, -1, 147,
05639 -1, -1, 150, 151, -1, -1, -1, -1, -1, -1,
05640 -1, -1, -1, -1, -1, -1, 164, -1, 166, -1,
05641 -1, 169, -1, -1, 172, -1, -1, -1, 176, -1,
05642 -1, -1, -1, -1, 182, 183, -1, 185, -1, -1,
05643 -1, -1, 190, 191, 192, 193, -1, -1, 196, -1,
05644 198, -1, 200, -1, 202, 203, 204, 205, -1, -1,
05645 208, 209, 210, -1, -1, 213, -1, -1, -1, 217,
05646 218, -1, 220, 221, 222, 223, -1, -1, -1, -1,
05647 -1, -1, -1, -1, 232, -1, -1, 235, -1, 237,
05648 238, 239, 240, -1, -1, -1, -1, -1, 246, -1,
05649 -1, -1, -1, 251, -1, -1, -1, -1, -1, 257,
05650 -1, -1, -1, 261, 262, 263, 264, 265, 266, 267,
05651 -1, 269, 270, -1, -1, -1, 274, 275, 276, 277,
05652 -1, -1, 280, -1, 282, 283, 284, -1, -1, -1,
05653 -1, -1, -1, -1, -1, -1, -1, 295, 296, -1,
05654 -1, 299, -1, -1, 302, 303, 304, -1, -1, 307,
05655 -1, 309, 310, -1, -1, 313, -1, -1, 316, -1,
05656 318, 319, -1, 321, -1, -1, 324, -1, -1, 327,
05657 328, -1, 330, 331, -1, -1, -1, 335, -1, -1,
05658 -1, -1, 340, -1, -1, -1, -1, -1, 346, -1,
05659 348, -1, -1, 351, -1, -1, -1, -1, 356, 357,
05660 -1, -1, -1, -1, 362, -1, -1, -1, 366, -1,
05661 4, 5, -1, 7, 8, -1, -1, -1, -1, 13,
05662 -1, -1, -1, 17, 18, 19, 384, 21, -1, -1,
05663 -1, 389, 26, -1, 28, 29, -1, 31, -1, -1,
05664 -1, 35, -1, -1, -1, 39, -1, -1, -1, 43,
05665 -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
05666 54, 55, 56, -1, 58, 59, -1, 61, -1, -1,
05667 -1, -1, 66, -1, -1, -1, -1, 71, 72, 73,
05668 -1, -1, 76, -1, -1, -1, -1, 81, 82, -1,
05669 -1, -1, -1, -1, -1, -1, -1, -1, 92, 93,
05670 -1, -1, -1, 97, -1, 99, 100, 101, -1, -1,
05671 104, -1, 106, 107, -1, 109, 110, -1, 112, -1,
05672 114, 115, -1, -1, 118, -1, -1, 121, 122, 123,
05673 -1, 125, -1, -1, -1, 129, 130, -1, 132, -1,
05674 134, -1, -1, 137, -1, -1, -1, -1, -1, 143,
05675 144, 145, -1, 147, -1, -1, 150, 151, -1, -1,
05676 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05677 164, -1, 166, -1, -1, 169, -1, -1, 172, -1,
05678 -1, -1, 176, -1, -1, -1, -1, -1, 182, 183,
05679 -1, 185, -1, -1, -1, -1, 190, 191, 192, 193,
05680 -1, -1, 196, -1, 198, -1, 200, -1, 202, 203,
05681 204, 205, -1, -1, 208, 209, 210, -1, -1, 213,
05682 -1, -1, -1, 217, 218, -1, 220, 221, 222, 223,
05683 -1, -1, -1, -1, -1, -1, -1, -1, 232, -1,
05684 -1, 235, -1, 237, 238, 239, 240, -1, -1, -1,
05685 -1, -1, 246, -1, -1, -1, -1, 251, -1, -1,
05686 -1, -1, -1, 257, -1, -1, -1, 261, 262, 263,
05687 264, 265, 266, 267, -1, 269, 270, -1, -1, -1,
05688 274, 275, 276, 277, -1, -1, 280, -1, 282, 283,
05689 284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05690 -1, 295, 296, -1, -1, 299, -1, -1, 302, 303,
05691 304, -1, -1, 307, -1, 309, 310, -1, -1, 313,
05692 -1, -1, 316, -1, 318, 319, -1, 321, -1, -1,
05693 324, -1, -1, 327, 328, -1, 330, 331, -1, -1,
05694 -1, 335, -1, -1, -1, -1, 340, -1, -1, -1,
05695 -1, -1, 346, -1, 348, -1, -1, 351, -1, -1,
05696 -1, -1, 356, 357, -1, -1, 4, 5, 362, 7,
05697 8, -1, 366, -1, -1, 13, -1, -1, -1, 17,
05698 18, 19, -1, 21, -1, -1, -1, -1, 26, -1,
05699 28, 29, -1, 31, -1, 389, -1, 35, -1, -1,
05700 -1, 39, -1, -1, -1, 43, -1, 45, 46, -1,
05701 48, 49, -1, 51, 52, 53, 54, 55, 56, -1,
05702 58, 59, -1, 61, -1, -1, -1, -1, 66, -1,
05703 -1, -1, -1, 71, 72, 73, -1, -1, 76, -1,
05704 -1, -1, -1, 81, 82, -1, -1, -1, -1, -1,
05705 -1, -1, -1, -1, 92, 93, -1, -1, -1, 97,
05706 -1, 99, 100, 101, -1, -1, 104, -1, 106, 107,
05707 -1, 109, 110, -1, 112, -1, 114, 115, -1, -1,
05708 118, -1, -1, 121, 122, 123, -1, 125, -1, -1,
05709 -1, 129, 130, -1, 132, -1, 134, -1, -1, 137,
05710 -1, -1, -1, -1, -1, 143, 144, 145, -1, 147,
05711 -1, -1, 150, 151, -1, -1, -1, -1, -1, -1,
05712 -1, -1, -1, -1, -1, -1, 164, -1, 166, -1,
05713 -1, 169, -1, -1, 172, -1, -1, -1, 176, -1,
05714 -1, -1, -1, -1, 182, 183, -1, 185, -1, -1,
05715 -1, -1, 190, 191, 192, 193, -1, -1, 196, -1,
05716 198, -1, 200, -1, 202, 203, 204, 205, -1, -1,
05717 208, 209, 210, -1, -1, 213, -1, -1, -1, 217,
05718 218, -1, 220, 221, 222, 223, -1, -1, -1, -1,
05719 -1, -1, -1, -1, 232, -1, -1, 235, -1, 237,
05720 238, 239, 240, -1, -1, -1, -1, -1, 246, -1,
05721 -1, -1, -1, 251, -1, -1, -1, -1, -1, 257,
05722 -1, -1, -1, 261, 262, 263, 264, 265, 266, 267,
05723 -1, 269, 270, -1, -1, -1, 274, 275, 276, 277,
05724 -1, -1, 280, -1, 282, 283, 284, -1, -1, -1,
05725 -1, -1, -1, -1, -1, -1, -1, 295, 296, -1,
05726 -1, 299, -1, -1, 302, 303, 304, -1, -1, 307,
05727 -1, 309, 310, -1, -1, 313, -1, -1, 316, -1,
05728 318, 319, -1, 321, -1, -1, 324, -1, -1, 327,
05729 328, -1, 330, 331, -1, -1, -1, 335, -1, -1,
05730 -1, -1, 340, -1, -1, -1, -1, -1, 346, -1,
05731 348, -1, -1, 351, -1, -1, -1, -1, 356, 357,
05732 -1, -1, 4, 5, 362, 7, 8, -1, 366, -1,
05733 -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
05734 -1, -1, -1, -1, 26, -1, 28, 29, -1, 31,
05735 -1, 389, -1, 35, -1, -1, -1, 39, -1, -1,
05736 -1, 43, -1, 45, 46, -1, 48, 49, -1, 51,
05737 52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
05738 -1, -1, -1, -1, 66, -1, -1, -1, -1, 71,
05739 72, 73, -1, -1, 76, -1, -1, -1, -1, 81,
05740 82, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05741 92, 93, -1, -1, -1, 97, -1, 99, 100, 101,
05742 -1, -1, 104, -1, 106, 107, -1, 109, 110, -1,
05743 112, -1, 114, 115, -1, -1, 118, -1, -1, 121,
05744 122, 123, -1, 125, -1, -1, -1, 129, 130, -1,
05745 132, -1, 134, -1, -1, 137, -1, -1, -1, -1,
05746 -1, 143, 144, 145, -1, 147, -1, -1, 150, 151,
05747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05748 -1, -1, 164, -1, 166, -1, -1, 169, -1, -1,
05749 172, -1, -1, -1, 176, -1, -1, -1, -1, -1,
05750 182, 183, -1, 185, -1, -1, -1, -1, 190, 191,
05751 192, 193, -1, -1, 196, -1, 198, -1, 200, -1,
05752 202, 203, 204, 205, -1, -1, 208, 209, 210, -1,
05753 -1, 213, -1, -1, -1, 217, 218, -1, 220, 221,
05754 222, 223, -1, -1, -1, -1, -1, -1, -1, -1,
05755 232, -1, -1, 235, -1, 237, 238, 239, 240, -1,
05756 -1, -1, -1, -1, 246, -1, -1, -1, -1, 251,
05757 -1, -1, -1, -1, -1, 257, -1, -1, -1, 261,
05758 262, 263, 264, 265, 266, 267, -1, 269, 270, -1,
05759 -1, -1, 274, 275, 276, 277, -1, -1, 280, -1,
05760 282, 283, 284, -1, -1, -1, -1, -1, -1, -1,
05761 -1, -1, -1, 295, 296, -1, -1, 299, -1, -1,
05762 302, 303, 304, -1, -1, 307, -1, 309, 310, -1,
05763 -1, 313, -1, -1, 316, -1, 318, 319, -1, 321,
05764 -1, -1, 324, -1, -1, 327, 328, -1, 330, 331,
05765 -1, -1, -1, 335, -1, -1, -1, -1, 340, -1,
05766 -1, -1, -1, -1, 346, -1, 348, -1, -1, 351,
05767 -1, -1, -1, -1, 356, 357, -1, -1, 4, 5,
05768 362, 7, 8, -1, 366, -1, -1, 13, -1, -1,
05769 -1, 17, 18, 19, -1, 21, -1, -1, -1, -1,
05770 26, -1, 28, 29, -1, 31, -1, 389, -1, 35,
05771 -1, -1, -1, 39, -1, -1, -1, 43, -1, 45,
05772 46, -1, 48, 49, -1, 51, 52, 53, 54, 55,
05773 56, -1, 58, 59, -1, 61, -1, -1, -1, -1,
05774 66, -1, -1, -1, -1, 71, 72, 73, -1, -1,
05775 76, -1, -1, -1, -1, 81, 82, -1, -1, -1,
05776 -1, -1, -1, -1, -1, -1, 92, 93, -1, -1,
05777 -1, 97, -1, 99, 100, 101, -1, -1, 104, -1,
05778 106, 107, -1, 109, 110, -1, 112, -1, 114, 115,
05779 -1, -1, 118, -1, -1, 121, 122, 123, -1, 125,
05780 -1, -1, -1, 129, 130, -1, 132, -1, 134, -1,
05781 -1, 137, -1, -1, -1, -1, -1, 143, 144, 145,
05782 -1, 147, -1, -1, 150, 151, -1, -1, -1, -1,
05783 -1, -1, -1, -1, -1, -1, -1, -1, 164, -1,
05784 166, -1, -1, 169, -1, -1, 172, -1, -1, -1,
05785 176, -1, -1, -1, -1, -1, 182, 183, -1, 185,
05786 -1, -1, -1, -1, 190, 191, 192, 193, -1, -1,
05787 196, -1, 198, -1, 200, -1, 202, 203, 204, 205,
05788 -1, -1, 208, 209, 210, -1, -1, 213, -1, -1,
05789 -1, 217, 218, -1, 220, 221, 222, 223, -1, -1,
05790 -1, -1, -1, -1, -1, -1, 232, -1, -1, 235,
05791 -1, 237, 238, 239, 240, -1, -1, -1, -1, -1,
05792 246, -1, -1, -1, -1, 251, -1, -1, -1, -1,
05793 -1, 257, -1, -1, -1, 261, 262, 263, 264, 265,
05794 266, 267, -1, 269, 270, -1, -1, -1, 274, 275,
05795 276, 277, -1, -1, 280, -1, 282, 283, 284, -1,
05796 -1, -1, -1, -1, -1, -1, -1, -1, -1, 295,
05797 296, -1, -1, 299, -1, -1, 302, 303, 304, -1,
05798 -1, 307, -1, 309, 310, -1, -1, 313, -1, -1,
05799 316, -1, 318, 319, -1, 321, -1, -1, 324, -1,
05800 -1, 327, 328, -1, 330, 331, -1, -1, -1, 335,
05801 -1, -1, -1, -1, 340, -1, -1, -1, -1, -1,
05802 346, -1, 348, -1, -1, 351, -1, -1, -1, -1,
05803 356, 357, -1, -1, 4, 5, 362, 7, 8, -1,
05804 366, -1, -1, 13, -1, -1, -1, 17, 18, 19,
05805 -1, 21, -1, -1, -1, -1, 26, -1, 28, 29,
05806 -1, 31, -1, 389, -1, 35, -1, -1, -1, 39,
05807 -1, -1, -1, 43, -1, 45, 46, -1, 48, 49,
05808 -1, 51, 52, 53, 54, 55, 56, -1, 58, 59,
05809 -1, 61, -1, -1, -1, -1, 66, -1, -1, -1,
05810 -1, 71, 72, 73, -1, -1, 76, -1, -1, -1,
05811 -1, 81, 82, -1, -1, -1, -1, -1, -1, -1,
05812 -1, -1, 92, 93, -1, -1, -1, 97, -1, 99,
05813 100, 101, -1, -1, 104, -1, 106, 107, -1, 109,
05814 110, -1, 112, -1, 114, 115, -1, -1, 118, -1,
05815 -1, 121, 122, 123, -1, 125, -1, -1, -1, 129,
05816 130, -1, 132, -1, 134, -1, -1, 137, -1, -1,
05817 -1, -1, -1, 143, 144, 145, -1, 147, -1, -1,
05818 150, 151, -1, -1, -1, -1, -1, -1, -1, -1,
05819 -1, -1, -1, -1, 164, -1, 166, -1, -1, 169,
05820 -1, -1, 172, -1, -1, -1, 176, -1, -1, -1,
05821 -1, -1, 182, 183, -1, 185, -1, -1, -1, -1,
05822 190, 191, 192, 193, -1, -1, 196, -1, 198, -1,
05823 200, -1, 202, 203, 204, 205, -1, -1, 208, 209,
05824 210, -1, -1, 213, -1, -1, -1, 217, 218, -1,
05825 220, 221, 222, 223, -1, -1, -1, -1, -1, -1,
05826 -1, -1, 232, -1, -1, 235, -1, 237, 238, 239,
05827 240, -1, -1, -1, -1, -1, 246, -1, -1, -1,
05828 -1, 251, -1, -1, -1, -1, -1, 257, -1, -1,
05829 -1, 261, 262, 263, 264, 265, 266, 267, -1, 269,
05830 270, -1, -1, -1, 274, 275, 276, 277, -1, -1,
05831 280, -1, 282, 283, 284, -1, -1, -1, -1, -1,
05832 -1, -1, -1, -1, -1, 295, 296, -1, -1, 299,
05833 -1, -1, 302, 303, 304, -1, -1, 307, -1, 309,
05834 310, -1, -1, 313, -1, -1, 316, -1, 318, 319,
05835 -1, 321, -1, -1, 324, -1, -1, 327, 328, -1,
05836 330, 331, -1, -1, -1, 335, -1, -1, -1, -1,
05837 340, -1, -1, -1, -1, -1, 346, -1, 348, -1,
05838 -1, 351, -1, -1, -1, -1, 356, 357, -1, -1,
05839 4, 5, 362, 7, 8, -1, 366, -1, -1, 13,
05840 -1, -1, -1, 17, 18, 19, -1, 21, 378, -1,
05841 -1, -1, 26, -1, 28, 29, -1, 31, -1, -1,
05842 -1, 35, -1, -1, -1, 39, -1, -1, -1, 43,
05843 -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
05844 54, 55, 56, -1, 58, 59, -1, 61, -1, -1,
05845 -1, -1, 66, -1, -1, -1, -1, 71, 72, 73,
05846 -1, -1, 76, -1, -1, -1, -1, 81, 82, -1,
05847 -1, -1, -1, -1, -1, -1, -1, -1, 92, 93,
05848 -1, -1, -1, 97, -1, 99, 100, 101, -1, -1,
05849 104, -1, 106, 107, -1, 109, 110, -1, 112, -1,
05850 114, 115, -1, -1, 118, -1, -1, 121, 122, 123,
05851 -1, 125, -1, -1, -1, 129, 130, -1, 132, -1,
05852 134, -1, -1, 137, -1, -1, -1, -1, -1, 143,
05853 144, 145, -1, 147, -1, -1, 150, 151, -1, -1,
05854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05855 164, -1, 166, -1, -1, 169, -1, -1, 172, -1,
05856 -1, -1, 176, -1, -1, -1, -1, -1, 182, 183,
05857 -1, 185, -1, -1, -1, -1, 190, 191, 192, 193,
05858 -1, -1, 196, -1, 198, -1, 200, -1, 202, 203,
05859 204, 205, -1, -1, 208, 209, 210, -1, -1, 213,
05860 -1, -1, -1, 217, 218, -1, 220, 221, 222, 223,
05861 -1, -1, -1, -1, -1, -1, -1, -1, 232, -1,
05862 -1, 235, -1, 237, 238, 239, 240, -1, -1, -1,
05863 -1, -1, 246, -1, -1, -1, -1, 251, -1, -1,
05864 -1, -1, -1, 257, -1, -1, -1, 261, 262, 263,
05865 264, 265, 266, 267, -1, 269, 270, -1, -1, -1,
05866 274, 275, 276, 277, -1, -1, 280, -1, 282, 283,
05867 284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05868 -1, 295, 296, -1, -1, 299, -1, -1, 302, 303,
05869 304, -1, -1, 307, -1, 309, 310, -1, -1, 313,
05870 -1, -1, 316, -1, 318, 319, -1, 321, -1, -1,
05871 324, -1, -1, 327, 328, -1, 330, 331, -1, -1,
05872 -1, 335, -1, -1, -1, -1, 340, -1, -1, -1,
05873 -1, -1, 346, -1, 348, -1, -1, 351, -1, -1,
05874 -1, -1, 356, 357, -1, -1, 4, 5, 362, 7,
05875 8, -1, 366, -1, -1, 13, -1, -1, -1, 17,
05876 18, 19, -1, 21, 378, -1, -1, 25, 26, -1,
05877 28, 29, -1, 31, -1, -1, -1, 35, -1, -1,
05878 -1, 39, -1, -1, -1, 43, -1, 45, 46, -1,
05879 48, 49, -1, 51, 52, 53, 54, 55, 56, -1,
05880 58, 59, -1, 61, -1, -1, -1, -1, 66, -1,
05881 -1, -1, -1, 71, 72, 73, -1, -1, 76, -1,
05882 -1, -1, -1, 81, 82, -1, -1, -1, -1, -1,
05883 -1, -1, -1, -1, 92, 93, -1, -1, -1, 97,
05884 -1, 99, 100, 101, -1, -1, 104, -1, 106, 107,
05885 -1, 109, 110, -1, 112, -1, 114, 115, -1, -1,
05886 118, -1, -1, 121, 122, 123, -1, 125, -1, -1,
05887 -1, 129, 130, -1, 132, -1, 134, -1, -1, 137,
05888 -1, 139, -1, -1, -1, 143, 144, 145, -1, 147,
05889 -1, -1, 150, 151, -1, -1, -1, -1, -1, -1,
05890 -1, -1, -1, -1, -1, -1, 164, -1, 166, -1,
05891 -1, 169, -1, -1, 172, -1, -1, -1, 176, -1,
05892 -1, -1, -1, -1, 182, 183, -1, 185, -1, -1,
05893 -1, -1, 190, 191, 192, 193, -1, -1, 196, -1,
05894 198, -1, 200, -1, 202, 203, 204, 205, -1, -1,
05895 208, 209, 210, -1, -1, 213, -1, -1, -1, 217,
05896 218, -1, 220, 221, 222, 223, -1, -1, -1, -1,
05897 -1, -1, -1, -1, 232, -1, -1, 235, -1, 237,
05898 238, 239, 240, -1, -1, -1, -1, -1, 246, -1,
05899 -1, -1, -1, 251, -1, -1, -1, -1, -1, 257,
05900 -1, -1, -1, 261, 262, 263, 264, 265, 266, 267,
05901 -1, 269, 270, -1, -1, -1, 274, 275, 276, 277,
05902 -1, -1, 280, -1, 282, 283, 284, -1, -1, -1,
05903 -1, -1, -1, -1, -1, -1, -1, 295, 296, -1,
05904 -1, 299, -1, -1, 302, 303, 304, -1, -1, 307,
05905 -1, 309, 310, -1, -1, 313, -1, 315, 316, -1,
05906 318, 319, -1, 321, -1, -1, 324, -1, -1, 327,
05907 328, -1, 330, 331, -1, -1, -1, 335, -1, -1,
05908 -1, -1, 340, -1, -1, -1, -1, -1, 346, -1,
05909 348, -1, -1, 351, -1, -1, -1, -1, 356, 357,
05910 -1, -1, 4, 5, 362, 7, 8, -1, 366, -1,
05911 -1, 13, 14, -1, -1, 17, 18, 19, -1, 21,
05912 -1, -1, -1, -1, 26, -1, 28, 29, -1, 31,
05913 -1, -1, -1, 35, -1, -1, -1, 39, -1, -1,
05914 -1, 43, -1, 45, 46, -1, 48, 49, -1, 51,
05915 52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
05916 -1, -1, -1, -1, 66, -1, -1, -1, -1, 71,
05917 72, 73, -1, -1, 76, -1, -1, -1, -1, 81,
05918 82, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05919 92, 93, -1, -1, -1, 97, -1, 99, 100, 101,
05920 -1, -1, 104, -1, 106, 107, -1, 109, 110, -1,
05921 112, -1, 114, 115, -1, -1, 118, -1, -1, 121,
05922 122, 123, -1, 125, -1, -1, -1, 129, 130, -1,
05923 132, -1, 134, -1, -1, 137, -1, -1, -1, -1,
05924 -1, 143, 144, 145, -1, 147, -1, -1, 150, 151,
05925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
05926 -1, -1, 164, -1, 166, -1, -1, 169, -1, -1,
05927 172, -1, -1, -1, 176, -1, -1, -1, -1, -1,
05928 182, 183, -1, 185, -1, -1, -1, -1, 190, 191,
05929 192, 193, -1, -1, 196, -1, 198, -1, 200, -1,
05930 202, 203, 204, 205, -1, -1, 208, 209, 210, -1,
05931 -1, 213, -1, -1, -1, 217, 218, -1, 220, 221,
05932 222, 223, -1, -1, -1, -1, -1, -1, -1, -1,
05933 232, -1, -1, 235, -1, 237, 238, 239, 240, -1,
05934 -1, -1, -1, -1, 246, -1, -1, -1, -1, 251,
05935 -1, -1, -1, -1, -1, 257, -1, -1, -1, 261,
05936 262, 263, 264, 265, 266, 267, -1, 269, 270, -1,
05937 -1, -1, 274, 275, 276, 277, -1, -1, 280, -1,
05938 282, 283, 284, -1, -1, -1, -1, -1, -1, -1,
05939 -1, -1, -1, 295, 296, -1, -1, 299, -1, -1,
05940 302, 303, 304, -1, -1, 307, -1, 309, 310, -1,
05941 -1, 313, -1, 315, 316, -1, 318, 319, -1, 321,
05942 -1, -1, 324, -1, -1, 327, 328, -1, 330, 331,
05943 -1, -1, -1, 335, -1, -1, -1, -1, 340, -1,
05944 -1, -1, -1, -1, 346, -1, 348, -1, -1, 351,
05945 -1, -1, -1, -1, 356, 357, -1, -1, 4, 5,
05946 362, 7, 8, -1, 366, -1, -1, 13, -1, -1,
05947 -1, 17, 18, 19, -1, 21, -1, -1, -1, -1,
05948 26, -1, 28, 29, -1, 31, -1, -1, -1, 35,
05949 -1, -1, -1, 39, -1, -1, -1, 43, -1, 45,
05950 46, -1, 48, 49, -1, 51, 52, 53, 54, 55,
05951 56, -1, 58, 59, -1, 61, -1, -1, -1, -1,
05952 66, -1, -1, -1, -1, 71, 72, 73, -1, -1,
05953 76, -1, -1, -1, -1, 81, 82, -1, -1, -1,
05954 -1, -1, -1, -1, -1, -1, 92, 93, -1, -1,
05955 -1, 97, -1, 99, 100, 101, -1, -1, 104, -1,
05956 106, 107, -1, 109, 110, -1, 112, -1, 114, 115,
05957 -1, -1, 118, -1, -1, 121, 122, 123, -1, 125,
05958 -1, -1, -1, 129, 130, -1, 132, -1, 134, -1,
05959 -1, 137, -1, -1, -1, -1, -1, 143, 144, 145,
05960 -1, 147, -1, -1, 150, 151, -1, -1, -1, -1,
05961 -1, -1, -1, -1, -1, -1, -1, -1, 164, -1,
05962 166, -1, -1, 169, -1, -1, 172, -1, -1, -1,
05963 176, -1, -1, -1, -1, -1, 182, 183, -1, 185,
05964 -1, -1, -1, -1, 190, 191, 192, 193, -1, -1,
05965 196, -1, 198, -1, 200, -1, 202, 203, 204, 205,
05966 -1, -1, 208, 209, 210, -1, -1, 213, -1, -1,
05967 -1, 217, 218, -1, 220, 221, 222, 223, -1, -1,
05968 -1, -1, -1, -1, -1, -1, 232, -1, -1, 235,
05969 -1, 237, 238, 239, 240, -1, -1, -1, -1, -1,
05970 246, -1, -1, -1, -1, 251, -1, -1, -1, -1,
05971 -1, 257, -1, -1, -1, 261, 262, 263, 264, 265,
05972 266, 267, -1, 269, 270, -1, -1, -1, 274, 275,
05973 276, 277, -1, -1, 280, -1, 282, 283, 284, -1,
05974 -1, -1, -1, -1, -1, -1, -1, -1, -1, 295,
05975 296, -1, -1, 299, -1, -1, 302, 303, 304, -1,
05976 -1, 307, -1, 309, 310, -1, -1, 313, -1, 315,
05977 316, -1, 318, 319, -1, 321, -1, -1, 324, -1,
05978 -1, 327, 328, -1, 330, 331, -1, -1, -1, 335,
05979 -1, -1, -1, -1, 340, -1, -1, -1, -1, -1,
05980 346, -1, 348, -1, -1, 351, -1, -1, -1, -1,
05981 356, 357, -1, -1, 4, 5, 362, 7, 8, -1,
05982 366, -1, -1, 13, -1, -1, -1, 17, 18, 19,
05983 -1, 21, -1, -1, -1, -1, 26, -1, 28, 29,
05984 -1, 31, -1, -1, -1, 35, -1, -1, -1, 39,
05985 -1, -1, -1, 43, -1, 45, 46, -1, 48, 49,
05986 -1, 51, 52, 53, 54, 55, 56, -1, 58, 59,
05987 -1, 61, -1, -1, -1, -1, 66, -1, -1, -1,
05988 -1, 71, 72, 73, -1, -1, 76, -1, -1, -1,
05989 -1, 81, 82, -1, -1, -1, -1, -1, -1, -1,
05990 -1, -1, 92, 93, -1, -1, -1, 97, -1, 99,
05991 100, 101, -1, -1, 104, -1, 106, 107, -1, 109,
05992 110, -1, 112, -1, 114, 115, -1, -1, 118, -1,
05993 -1, 121, 122, 123, -1, 125, -1, -1, -1, 129,
05994 130, -1, 132, -1, 134, -1, -1, 137, -1, -1,
05995 -1, -1, -1, 143, 144, 145, -1, 147, -1, -1,
05996 150, 151, -1, -1, -1, -1, -1, -1, -1, -1,
05997 -1, -1, -1, -1, 164, -1, 166, -1, -1, 169,
05998 -1, -1, 172, -1, -1, -1, 176, -1, -1, -1,
05999 -1, -1, 182, 183, -1, 185, -1, -1, -1, -1,
06000 190, 191, 192, 193, -1, -1, 196, -1, 198, -1,
06001 200, -1, 202, 203, 204, 205, -1, -1, 208, 209,
06002 210, -1, -1, 213, -1, -1, -1, 217, 218, -1,
06003 220, 221, 222, 223, -1, -1, -1, -1, -1, -1,
06004 -1, -1, 232, -1, -1, 235, 236, 237, 238, 239,
06005 240, -1, -1, -1, -1, -1, 246, -1, -1, -1,
06006 -1, 251, -1, -1, -1, -1, -1, 257, -1, -1,
06007 -1, 261, 262, 263, 264, 265, 266, 267, -1, 269,
06008 270, -1, -1, -1, 274, 275, 276, 277, -1, -1,
06009 280, -1, 282, 283, 284, -1, -1, -1, -1, -1,
06010 -1, -1, -1, -1, -1, 295, 296, -1, -1, 299,
06011 -1, -1, 302, 303, 304, -1, -1, 307, -1, 309,
06012 310, -1, -1, 313, -1, -1, 316, -1, 318, 319,
06013 -1, 321, -1, -1, 324, -1, -1, 327, 328, -1,
06014 330, 331, -1, -1, -1, 335, -1, -1, -1, -1,
06015 340, -1, -1, -1, -1, -1, 346, -1, 348, -1,
06016 -1, 351, -1, -1, -1, -1, 356, 357, -1, -1,
06017 4, 5, 362, 7, 8, -1, 366, -1, -1, 13,
06018 -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
06019 -1, -1, 26, -1, 28, 29, -1, 31, -1, -1,
06020 -1, 35, -1, -1, -1, 39, -1, -1, -1, 43,
06021 -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
06022 54, 55, 56, -1, 58, 59, -1, 61, -1, -1,
06023 -1, -1, 66, -1, -1, -1, -1, 71, 72, 73,
06024 -1, -1, 76, -1, -1, -1, -1, 81, 82, -1,
06025 -1, -1, -1, -1, -1, -1, -1, -1, 92, 93,
06026 -1, -1, -1, 97, -1, 99, 100, 101, -1, -1,
06027 104, -1, 106, 107, -1, 109, 110, -1, 112, -1,
06028 114, 115, -1, -1, 118, -1, -1, 121, 122, 123,
06029 -1, 125, -1, -1, -1, 129, 130, -1, 132, -1,
06030 134, -1, -1, 137, -1, -1, -1, -1, -1, 143,
06031 144, 145, -1, 147, -1, -1, 150, 151, -1, -1,
06032 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
06033 164, -1, 166, -1, -1, 169, -1, -1, 172, -1,
06034 -1, -1, 176, -1, -1, -1, -1, -1, 182, 183,
06035 -1, 185, -1, -1, -1, -1, 190, 191, 192, 193,
06036 -1, -1, 196, -1, 198, -1, 200, -1, 202, 203,
06037 204, 205, -1, -1, 208, 209, 210, -1, -1, 213,
06038 -1, -1, -1, 217, 218, -1, 220, 221, 222, 223,
06039 -1, -1, -1, -1, -1, -1, -1, -1, 232, -1,
06040 -1, 235, -1, 237, 238, 239, 240, -1, -1, -1,
06041 -1, -1, 246, -1, -1, -1, -1, 251, -1, -1,
06042 -1, -1, -1, 257, -1, -1, -1, 261, 262, 263,
06043 264, 265, 266, 267, -1, 269, 270, -1, -1, -1,
06044 274, 275, 276, 277, -1, -1, 280, -1, 282, 283,
06045 284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
06046 -1, 295, 296, -1, -1, 299, -1, -1, 302, 303,
06047 304, -1, -1, 307, -1, 309, 310, -1, -1, 313,
06048 -1, -1, 316, -1, 318, 319, -1, 321, -1, -1,
06049 324, -1, -1, 327, 328, -1, 330, 331, -1, -1,
06050 -1, 335, -1, -1, -1, -1, 340, -1, -1, -1,
06051 -1, -1, 346, -1, 348, -1, -1, 351, -1, -1,
06052 -1, -1, 356, 357, -1, -1, -1, -1, 362, -1,
06053 -1, -1, 366
06054 };
06055
06056
06057
06058 static const yytype_uint16 yystos[] =
06059 {
06060 0, 10, 11, 21, 44, 53, 64, 88, 89, 90,
06061 98, 108, 116, 125, 157, 171, 181, 249, 250, 253,
06062 261, 267, 271, 278, 281, 295, 327, 336, 338, 341,
06063 384, 392, 393, 394, 395, 491, 506, 508, 510, 512,
06064 516, 517, 653, 659, 664, 667, 690, 696, 699, 701,
06065 707, 710, 713, 719, 721, 722, 770, 789, 791, 797,
06066 798, 799, 800, 70, 217, 222, 495, 309, 312, 788,
06067 792, 788, 362, 793, 38, 70, 313, 412, 495, 149,
06068 698, 38, 70, 313, 495, 658, 144, 146, 147, 177,
06069 290, 315, 320, 390, 660, 760, 761, 767, 783, 784,
06070 714, 665, 58, 240, 720, 72, 727, 267, 788, 668,
06071 793, 760, 801, 520, 522, 523, 225, 772, 702, 324,
06072 312, 700, 790, 149, 503, 4, 5, 7, 8, 13,
06073 17, 18, 19, 21, 26, 28, 29, 31, 35, 39,
06074 43, 45, 46, 48, 49, 51, 52, 53, 54, 55,
06075 56, 58, 59, 61, 66, 71, 72, 73, 76, 81,
06076 82, 92, 93, 97, 99, 100, 101, 104, 106, 107,
06077 109, 110, 112, 114, 115, 118, 121, 122, 123, 125,
06078 129, 130, 132, 134, 137, 143, 145, 150, 151, 164,
06079 166, 169, 172, 176, 182, 183, 185, 190, 191, 192,
06080 193, 196, 198, 200, 202, 203, 204, 205, 208, 209,
06081 210, 213, 217, 218, 220, 221, 222, 223, 232, 235,
06082 237, 238, 239, 240, 246, 251, 257, 261, 262, 263,
06083 264, 265, 266, 267, 269, 270, 274, 275, 276, 277,
06084 280, 282, 283, 284, 295, 296, 299, 302, 303, 304,
06085 307, 309, 310, 313, 316, 318, 319, 321, 324, 327,
06086 328, 330, 331, 335, 340, 346, 348, 351, 356, 357,
06087 362, 366, 758, 760, 764, 768, 769, 271, 384, 518,
06088 0, 108, 118, 389, 711, 757, 758, 764, 758, 503,
06089 509, 793, 511, 12, 794, 759, 764, 148, 413, 312,
06090 397, 131, 759, 148, 657, 152, 788, 783, 360, 661,
06091 134, 185, 296, 309, 715, 716, 788, 503, 5, 19,
06092 24, 25, 36, 37, 38, 42, 46, 48, 62, 63,
06093 67, 68, 70, 74, 75, 76, 81, 83, 86, 116,
06094 117, 119, 120, 124, 135, 139, 143, 148, 157, 158,
06095 166, 171, 175, 186, 189, 193, 196, 197, 201, 202,
06096 211, 212, 214, 215, 233, 239, 252, 253, 260, 266,
06097 269, 297, 298, 303, 305, 306, 308, 315, 318, 319,
06098 320, 325, 326, 327, 329, 340, 343, 344, 346, 347,
06099 352, 354, 355, 366, 376, 377, 382, 384, 386, 389,
06100 390, 539, 540, 541, 542, 545, 546, 547, 548, 549,
06101 554, 558, 743, 746, 750, 754, 755, 760, 762, 764,
06102 723, 801, 513, 159, 656, 670, 671, 757, 322, 794,
06103 521, 9, 94, 289, 290, 291, 292, 301, 527, 528,
06104 529, 530, 531, 771, 49, 63, 64, 71, 112, 134,
06105 151, 152, 168, 182, 238, 277, 309, 312, 313, 356,
06106 477, 703, 760, 761, 766, 778, 360, 507, 656, 788,
06107 757, 522, 518, 385, 764, 709, 708, 389, 493, 312,
06108 655, 656, 655, 39, 213, 213, 249, 795, 211, 758,
06109 413, 334, 478, 757, 117, 758, 764, 657, 213, 56,
06110 662, 296, 360, 388, 717, 670, 384, 384, 545, 539,
06111 568, 384, 384, 384, 384, 384, 384, 384, 384, 538,
06112 538, 384, 384, 384, 384, 743, 384, 384, 384, 384,
06113 384, 384, 384, 384, 384, 384, 539, 384, 720, 384,
06114 384, 384, 384, 384, 384, 384, 539, 384, 538, 384,
06115 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
06116 384, 384, 538, 384, 384, 384, 743, 384, 384, 384,
06117 538, 538, 384, 384, 384, 384, 384, 384, 545, 545,
06118 545, 539, 813, 814, 764, 764, 559, 12, 228, 364,
06119 111, 133, 163, 173, 207, 368, 369, 370, 543, 22,
06120 95, 162, 178, 201, 211, 248, 372, 373, 374, 375,
06121 376, 377, 378, 379, 380, 381, 47, 371, 762, 384,
06122 389, 56, 728, 514, 515, 757, 671, 669, 267, 796,
06123 795, 333, 802, 803, 378, 533, 534, 535, 531, 773,
06124 774, 775, 131, 162, 705, 384, 70, 312, 178, 359,
06125 706, 179, 637, 639, 704, 705, 296, 309, 637, 705,
06126 296, 296, 351, 59, 278, 385, 803, 805, 806, 807,
06127 516, 25, 139, 712, 744, 762, 764, 764, 86, 423,
06128 465, 757, 388, 39, 249, 117, 398, 757, 152, 697,
06129 219, 655, 258, 355, 663, 243, 716, 655, 718, 666,
06130 539, 9, 94, 564, 620, 358, 570, 539, 385, 539,
06131 567, 567, 539, 539, 94, 564, 620, 385, 385, 539,
06132 539, 539, 539, 754, 539, 813, 77, 78, 79, 80,
06133 81, 140, 141, 142, 143, 193, 194, 195, 196, 202,
06134 239, 268, 269, 357, 365, 366, 615, 617, 94, 561,
06135 539, 539, 539, 539, 615, 385, 384, 539, 94, 564,
06136 539, 539, 94, 564, 539, 539, 539, 542, 539, 539,
06137 539, 539, 539, 539, 564, 564, 539, 539, 94, 564,
06138 539, 130, 616, 617, 616, 539, 30, 174, 323, 539,
06139 539, 385, 385, 754, 564, 564, 539, 539, 385, 388,
06140 385, 271, 384, 810, 811, 539, 389, 390, 560, 783,
06141 539, 539, 539, 541, 120, 211, 214, 326, 335, 9,
06142 13, 541, 544, 542, 542, 384, 545, 542, 22, 162,
06143 178, 248, 542, 542, 542, 542, 542, 158, 542, 158,
06144 542, 542, 542, 542, 542, 760, 761, 765, 545, 550,
06145 764, 153, 388, 322, 271, 278, 347, 348, 384, 406,
06146 672, 675, 801, 9, 94, 809, 388, 524, 539, 752,
06147 764, 388, 134, 182, 220, 277, 776, 777, 780, 781,
06148 757, 378, 413, 757, 761, 539, 186, 215, 329, 640,
06149 641, 706, 764, 704, 706, 757, 706, 706, 284, 692,
06150 693, 754, 227, 633, 639, 808, 47, 492, 656, 87,
06151 254, 409, 410, 411, 423, 765, 396, 764, 359, 621,
06152 757, 184, 672, 388, 564, 385, 565, 539, 103, 358,
06153 569, 14, 385, 388, 385, 385, 388, 555, 385, 378,
06154 388, 388, 385, 385, 385, 385, 385, 131, 557, 385,
06155 388, 388, 388, 377, 539, 388, 564, 385, 385, 385,
06156 564, 385, 388, 385, 385, 162, 385, 388, 388, 388,
06157 388, 385, 385, 385, 388, 131, 388, 564, 385, 385,
06158 388, 388, 385, 131, 539, 131, 539, 131, 539, 131,
06159 385, 388, 385, 385, 385, 385, 388, 385, 567, 589,
06160 590, 591, 271, 384, 519, 333, 815, 387, 764, 134,
06161 182, 277, 779, 279, 120, 214, 326, 335, 384, 12,
06162 539, 813, 114, 625, 542, 384, 545, 542, 539, 539,
06163 535, 551, 552, 553, 389, 315, 763, 515, 757, 407,
06164 673, 384, 678, 683, 678, 385, 406, 674, 751, 752,
06165 754, 676, 804, 534, 131, 159, 525, 526, 632, 633,
06166 649, 536, 536, 389, 774, 324, 784, 785, 390, 782,
06167 704, 385, 764, 218, 388, 706, 704, 388, 691, 279,
06168 368, 681, 32, 637, 368, 682, 6, 10, 18, 40,
06169 51, 62, 87, 92, 93, 98, 104, 109, 121, 126,
06170 150, 200, 227, 250, 254, 265, 415, 417, 418, 421,
06171 422, 465, 494, 496, 497, 498, 629, 765, 68, 761,
06172 368, 388, 410, 388, 410, 368, 178, 384, 399, 404,
06173 414, 416, 417, 479, 480, 622, 632, 654, 219, 688,
06174 158, 539, 385, 539, 317, 539, 539, 106, 24, 28,
06175 42, 73, 76, 84, 160, 282, 321, 337, 566, 539,
06176 566, 567, 385, 158, 158, 663, 539, 567, 539, 539,
06177 539, 539, 385, 539, 385, 385, 539, 539, 539, 539,
06178 539, 567, 158, 539, 539, 539, 385, 539, 539, 539,
06179 131, 539, 131, 539, 131, 539, 539, 539, 385, 527,
06180 590, 519, 385, 809, 389, 389, 389, 783, 539, 813,
06181 541, 385, 388, 385, 545, 12, 539, 813, 625, 615,
06182 615, 539, 385, 388, 764, 724, 527, 679, 680, 754,
06183 684, 388, 384, 675, 385, 385, 388, 802, 517, 271,
06184 384, 386, 571, 572, 573, 574, 575, 584, 585, 599,
06185 650, 128, 184, 532, 649, 638, 639, 526, 14, 537,
06186 761, 764, 378, 764, 164, 681, 390, 783, 706, 112,
06187 356, 641, 641, 621, 693, 621, 86, 539, 687, 634,
06188 86, 463, 464, 765, 50, 60, 152, 170, 430, 433,
06189 434, 473, 475, 502, 502, 682, 502, 682, 322, 68,
06190 761, 168, 310, 127, 236, 475, 502, 168, 368, 368,
06191 310, 502, 32, 14, 322, 505, 368, 368, 415, 41,
06192 42, 47, 419, 388, 384, 389, 429, 435, 756, 764,
06193 368, 538, 120, 326, 410, 410, 83, 124, 186, 215,
06194 329, 644, 765, 757, 404, 405, 406, 427, 428, 429,
06195 430, 414, 14, 149, 253, 401, 730, 388, 416, 342,
06196 483, 219, 539, 179, 642, 100, 539, 385, 539, 317,
06197 384, 444, 444, 384, 442, 443, 160, 160, 385, 385,
06198 556, 539, 539, 385, 563, 633, 388, 388, 385, 388,
06199 385, 385, 385, 385, 388, 385, 385, 539, 385, 128,
06200 385, 385, 388, 388, 388, 385, 539, 385, 539, 385,
06201 539, 385, 385, 385, 533, 385, 812, 389, 489, 385,
06202 567, 541, 385, 388, 385, 536, 553, 149, 253, 729,
06203 533, 388, 681, 685, 686, 687, 683, 677, 675, 751,
06204 598, 764, 65, 154, 167, 175, 206, 260, 301, 583,
06205 621, 388, 757, 598, 99, 230, 645, 646, 651, 338,
06206 162, 761, 764, 389, 176, 9, 24, 86, 219, 539,
06207 787, 779, 681, 632, 539, 635, 753, 488, 756, 44,
06208 127, 236, 334, 432, 474, 431, 432, 488, 756, 644,
06209 756, 761, 464, 538, 170, 170, 756, 756, 765, 761,
06210 756, 630, 631, 754, 757, 120, 326, 54, 55, 86,
06211 101, 123, 246, 424, 425, 278, 682, 682, 498, 427,
06212 764, 7, 122, 504, 247, 431, 467, 436, 389, 644,
06213 766, 385, 385, 385, 388, 14, 14, 384, 405, 416,
06214 31, 137, 485, 757, 641, 689, 615, 539, 215, 215,
06215 385, 615, 615, 273, 562, 539, 539, 567, 539, 615,
06216 539, 539, 539, 539, 385, 385, 385, 592, 810, 764,
06217 385, 567, 537, 159, 408, 680, 687, 385, 388, 805,
06218 586, 593, 598, 571, 167, 167, 229, 600, 167, 175,
06219 260, 600, 584, 571, 136, 626, 573, 14, 618, 619,
06220 595, 596, 763, 763, 390, 647, 648, 280, 378, 243,
06221 251, 274, 786, 785, 539, 642, 388, 15, 89, 636,
06222 539, 170, 170, 475, 476, 488, 480, 98, 278, 499,
06223 488, 500, 388, 636, 464, 86, 345, 420, 385, 764,
06224 757, 23, 27, 28, 42, 73, 76, 84, 96, 110,
06225 123, 160, 166, 216, 245, 275, 316, 320, 321, 346,
06226 349, 350, 437, 439, 440, 441, 764, 414, 400, 414,
06227 428, 405, 402, 384, 170, 385, 385, 385, 388, 385,
06228 385, 744, 385, 385, 388, 385, 385, 385, 385, 385,
06229 385, 385, 426, 526, 638, 385, 725, 426, 687, 333,
06230 385, 632, 594, 387, 167, 584, 600, 600, 167, 219,
06231 219, 342, 32, 138, 623, 764, 609, 610, 527, 652,
06232 783, 388, 198, 52, 330, 243, 681, 753, 488, 480,
06233 384, 86, 86, 435, 437, 631, 384, 468, 384, 446,
06234 451, 452, 47, 86, 211, 214, 236, 334, 353, 449,
06235 450, 453, 454, 455, 466, 86, 219, 449, 450, 459,
06236 460, 461, 451, 442, 234, 384, 443, 448, 438, 442,
06237 446, 451, 442, 448, 453, 384, 459, 451, 451, 384,
06238 51, 462, 384, 18, 86, 275, 449, 450, 456, 457,
06239 458, 456, 389, 805, 401, 385, 802, 486, 487, 764,
06240 338, 215, 539, 532, 532, 312, 809, 619, 638, 574,
06241 571, 584, 167, 167, 571, 584, 577, 576, 578, 627,
06242 753, 624, 632, 607, 608, 533, 49, 731, 648, 787,
06243 636, 384, 384, 486, 76, 320, 376, 377, 745, 746,
06244 504, 462, 469, 764, 188, 470, 215, 282, 337, 445,
06245 86, 449, 450, 86, 449, 450, 463, 745, 214, 170,
06246 455, 170, 76, 212, 214, 320, 743, 749, 750, 338,
06247 461, 456, 448, 215, 384, 456, 445, 456, 215, 215,
06248 761, 215, 25, 139, 214, 376, 377, 743, 747, 750,
06249 86, 458, 764, 403, 385, 388, 636, 384, 694, 695,
06250 754, 385, 385, 757, 587, 219, 580, 584, 584, 219,
06251 582, 539, 539, 384, 361, 388, 628, 636, 539, 638,
06252 126, 149, 341, 602, 603, 606, 597, 105, 113, 226,
06253 314, 732, 733, 180, 734, 486, 486, 385, 750, 750,
06254 501, 385, 388, 132, 232, 283, 219, 471, 385, 367,
06255 447, 745, 120, 214, 326, 748, 743, 538, 743, 212,
06256 385, 490, 744, 447, 385, 385, 385, 750, 750, 348,
06257 805, 51, 169, 481, 482, 483, 484, 487, 215, 388,
06258 681, 726, 810, 579, 342, 581, 342, 614, 764, 753,
06259 475, 475, 603, 426, 32, 32, 105, 32, 733, 294,
06260 314, 735, 736, 385, 385, 481, 504, 764, 88, 338,
06261 538, 385, 388, 459, 451, 453, 761, 682, 484, 636,
06262 385, 695, 687, 731, 588, 539, 384, 539, 384, 385,
06263 388, 636, 128, 601, 601, 744, 744, 32, 744, 32,
06264 32, 736, 467, 481, 34, 213, 256, 278, 472, 472,
06265 453, 744, 83, 124, 139, 186, 215, 329, 643, 734,
06266 632, 614, 614, 764, 136, 167, 227, 605, 604, 744,
06267 744, 744, 4, 86, 214, 219, 219, 149, 737, 638,
06268 385, 385, 32, 32, 384, 384, 338, 88, 215, 384,
06269 739, 236, 611, 612, 613, 764, 613, 472, 472, 180,
06270 264, 738, 385, 390, 740, 741, 754, 278, 742, 385,
06271 388, 385, 783, 385, 388, 694, 612, 741
06272 };
06273
06274 #define yyerrok (yyerrstatus = 0)
06275 #define yyclearin (yychar = YYEMPTY)
06276 #define YYEMPTY (-2)
06277 #define YYEOF 0
06278
06279 #define YYACCEPT goto yyacceptlab
06280 #define YYABORT goto yyabortlab
06281 #define YYERROR goto yyerrorlab
06282
06283
06284
06285
06286
06287
06288 #define YYFAIL goto yyerrlab
06289
06290 #define YYRECOVERING() (!!yyerrstatus)
06291
06292 #define YYBACKUP(Token, Value) \
06293 do \
06294 if (yychar == YYEMPTY && yylen == 1) \
06295 { \
06296 yychar = (Token); \
06297 yylval = (Value); \
06298 yytoken = YYTRANSLATE (yychar); \
06299 YYPOPSTACK (1); \
06300 goto yybackup; \
06301 } \
06302 else \
06303 { \
06304 yyerror (session, YY_("syntax error: cannot back up")); \
06305 YYERROR; \
06306 } \
06307 while (YYID (0))
06308
06309
06310 #define YYTERROR 1
06311 #define YYERRCODE 256
06312
06313
06314
06315
06316
06317
06318 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
06319 #ifndef YYLLOC_DEFAULT
06320 # define YYLLOC_DEFAULT(Current, Rhs, N) \
06321 do \
06322 if (YYID (N)) \
06323 { \
06324 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
06325 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
06326 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
06327 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
06328 } \
06329 else \
06330 { \
06331 (Current).first_line = (Current).last_line = \
06332 YYRHSLOC (Rhs, 0).last_line; \
06333 (Current).first_column = (Current).last_column = \
06334 YYRHSLOC (Rhs, 0).last_column; \
06335 } \
06336 while (YYID (0))
06337 #endif
06338
06339
06340
06341
06342
06343
06344 #ifndef YY_LOCATION_PRINT
06345 # if YYLTYPE_IS_TRIVIAL
06346 # define YY_LOCATION_PRINT(File, Loc) \
06347 fprintf (File, "%d.%d-%d.%d", \
06348 (Loc).first_line, (Loc).first_column, \
06349 (Loc).last_line, (Loc).last_column)
06350 # else
06351 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
06352 # endif
06353 #endif
06354
06355
06356
06357
06358 #ifdef YYLEX_PARAM
06359 # define YYLEX yylex (&yylval, YYLEX_PARAM)
06360 #else
06361 # define YYLEX yylex (&yylval, session)
06362 #endif
06363
06364
06365 #if YYDEBUG
06366
06367 # ifndef YYFPRINTF
06368 # include <stdio.h>
06369 # define YYFPRINTF fprintf
06370 # endif
06371
06372 # define YYDPRINTF(Args) \
06373 do { \
06374 if (yydebug) \
06375 YYFPRINTF Args; \
06376 } while (YYID (0))
06377
06378 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
06379 do { \
06380 if (yydebug) \
06381 { \
06382 YYFPRINTF (stderr, "%s ", Title); \
06383 yy_symbol_print (stderr, \
06384 Type, Value, session); \
06385 YYFPRINTF (stderr, "\n"); \
06386 } \
06387 } while (YYID (0))
06388
06389
06390
06391
06392
06393
06394
06395 #if (defined __STDC__ || defined __C99__FUNC__ \
06396 || defined __cplusplus || defined _MSC_VER)
06397 static void
06398 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06399 #else
06400 static void
06401 yy_symbol_value_print (yyoutput, yytype, yyvaluep, session)
06402 FILE *yyoutput;
06403 int yytype;
06404 YYSTYPE const * const yyvaluep;
06405 drizzled::Session *session;
06406 #endif
06407 {
06408 if (!yyvaluep)
06409 return;
06410 YYUSE (session);
06411 # ifdef YYPRINT
06412 if (yytype < YYNTOKENS)
06413 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
06414 # else
06415 YYUSE (yyoutput);
06416 # endif
06417 switch (yytype)
06418 {
06419 default:
06420 break;
06421 }
06422 }
06423
06424
06425
06426
06427
06428
06429 #if (defined __STDC__ || defined __C99__FUNC__ \
06430 || defined __cplusplus || defined _MSC_VER)
06431 static void
06432 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06433 #else
06434 static void
06435 yy_symbol_print (yyoutput, yytype, yyvaluep, session)
06436 FILE *yyoutput;
06437 int yytype;
06438 YYSTYPE const * const yyvaluep;
06439 drizzled::Session *session;
06440 #endif
06441 {
06442 if (yytype < YYNTOKENS)
06443 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
06444 else
06445 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
06446
06447 yy_symbol_value_print (yyoutput, yytype, yyvaluep, session);
06448 YYFPRINTF (yyoutput, ")");
06449 }
06450
06451
06452
06453
06454
06455
06456 #if (defined __STDC__ || defined __C99__FUNC__ \
06457 || defined __cplusplus || defined _MSC_VER)
06458 static void
06459 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
06460 #else
06461 static void
06462 yy_stack_print (yybottom, yytop)
06463 yytype_int16 *yybottom;
06464 yytype_int16 *yytop;
06465 #endif
06466 {
06467 YYFPRINTF (stderr, "Stack now");
06468 for (; yybottom <= yytop; yybottom++)
06469 {
06470 int yybot = *yybottom;
06471 YYFPRINTF (stderr, " %d", yybot);
06472 }
06473 YYFPRINTF (stderr, "\n");
06474 }
06475
06476 # define YY_STACK_PRINT(Bottom, Top) \
06477 do { \
06478 if (yydebug) \
06479 yy_stack_print ((Bottom), (Top)); \
06480 } while (YYID (0))
06481
06482
06483
06484
06485
06486
06487 #if (defined __STDC__ || defined __C99__FUNC__ \
06488 || defined __cplusplus || defined _MSC_VER)
06489 static void
06490 yy_reduce_print (YYSTYPE *yyvsp, int yyrule, drizzled::Session *session)
06491 #else
06492 static void
06493 yy_reduce_print (yyvsp, yyrule, session)
06494 YYSTYPE *yyvsp;
06495 int yyrule;
06496 drizzled::Session *session;
06497 #endif
06498 {
06499 int yynrhs = yyr2[yyrule];
06500 int yyi;
06501 unsigned long int yylno = yyrline[yyrule];
06502 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
06503 yyrule - 1, yylno);
06504
06505 for (yyi = 0; yyi < yynrhs; yyi++)
06506 {
06507 YYFPRINTF (stderr, " $%d = ", yyi + 1);
06508 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
06509 &(yyvsp[(yyi + 1) - (yynrhs)])
06510 , session);
06511 YYFPRINTF (stderr, "\n");
06512 }
06513 }
06514
06515 # define YY_REDUCE_PRINT(Rule) \
06516 do { \
06517 if (yydebug) \
06518 yy_reduce_print (yyvsp, Rule, session); \
06519 } while (YYID (0))
06520
06521
06522
06523 int yydebug;
06524 #else
06525 # define YYDPRINTF(Args)
06526 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
06527 # define YY_STACK_PRINT(Bottom, Top)
06528 # define YY_REDUCE_PRINT(Rule)
06529 #endif
06530
06531
06532
06533 #ifndef YYINITDEPTH
06534 # define YYINITDEPTH 200
06535 #endif
06536
06537
06538
06539
06540
06541
06542
06543
06544 #ifndef YYMAXDEPTH
06545 # define YYMAXDEPTH 10000
06546 #endif
06547
06548
06549
06550 #if YYERROR_VERBOSE
06551
06552 # ifndef yystrlen
06553 # if defined __GLIBC__ && defined _STRING_H
06554 # define yystrlen strlen
06555 # else
06556
06557 #if (defined __STDC__ || defined __C99__FUNC__ \
06558 || defined __cplusplus || defined _MSC_VER)
06559 static YYSIZE_T
06560 yystrlen (const char *yystr)
06561 #else
06562 static YYSIZE_T
06563 yystrlen (yystr)
06564 const char *yystr;
06565 #endif
06566 {
06567 YYSIZE_T yylen;
06568 for (yylen = 0; yystr[yylen]; yylen++)
06569 continue;
06570 return yylen;
06571 }
06572 # endif
06573 # endif
06574
06575 # ifndef yystpcpy
06576 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
06577 # define yystpcpy stpcpy
06578 # else
06579
06580
06581 #if (defined __STDC__ || defined __C99__FUNC__ \
06582 || defined __cplusplus || defined _MSC_VER)
06583 static char *
06584 yystpcpy (char *yydest, const char *yysrc)
06585 #else
06586 static char *
06587 yystpcpy (yydest, yysrc)
06588 char *yydest;
06589 const char *yysrc;
06590 #endif
06591 {
06592 char *yyd = yydest;
06593 const char *yys = yysrc;
06594
06595 while ((*yyd++ = *yys++) != '\0')
06596 continue;
06597
06598 return yyd - 1;
06599 }
06600 # endif
06601 # endif
06602
06603 # ifndef yytnamerr
06604
06605
06606
06607
06608
06609
06610
06611 static YYSIZE_T
06612 yytnamerr (char *yyres, const char *yystr)
06613 {
06614 if (*yystr == '"')
06615 {
06616 YYSIZE_T yyn = 0;
06617 char const *yyp = yystr;
06618
06619 for (;;)
06620 switch (*++yyp)
06621 {
06622 case '\'':
06623 case ',':
06624 goto do_not_strip_quotes;
06625
06626 case '\\':
06627 if (*++yyp != '\\')
06628 goto do_not_strip_quotes;
06629
06630 default:
06631 if (yyres)
06632 yyres[yyn] = *yyp;
06633 yyn++;
06634 break;
06635
06636 case '"':
06637 if (yyres)
06638 yyres[yyn] = '\0';
06639 return yyn;
06640 }
06641 do_not_strip_quotes: ;
06642 }
06643
06644 if (! yyres)
06645 return yystrlen (yystr);
06646
06647 return yystpcpy (yyres, yystr) - yyres;
06648 }
06649 # endif
06650
06651
06652
06653
06654
06655
06656
06657
06658 static YYSIZE_T
06659 yysyntax_error (char *yyresult, int yystate, int yychar)
06660 {
06661 int yyn = yypact[yystate];
06662
06663 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
06664 return 0;
06665 else
06666 {
06667 int yytype = YYTRANSLATE (yychar);
06668 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
06669 YYSIZE_T yysize = yysize0;
06670 YYSIZE_T yysize1;
06671 int yysize_overflow = 0;
06672 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
06673 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
06674 int yyx;
06675
06676 # if 0
06677
06678
06679 YY_("syntax error, unexpected %s");
06680 YY_("syntax error, unexpected %s, expecting %s");
06681 YY_("syntax error, unexpected %s, expecting %s or %s");
06682 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
06683 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
06684 # endif
06685 char *yyfmt;
06686 char const *yyf;
06687 static char const yyunexpected[] = "syntax error, unexpected %s";
06688 static char const yyexpecting[] = ", expecting %s";
06689 static char const yyor[] = " or %s";
06690 char yyformat[sizeof yyunexpected
06691 + sizeof yyexpecting - 1
06692 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
06693 * (sizeof yyor - 1))];
06694 char const *yyprefix = yyexpecting;
06695
06696
06697
06698 int yyxbegin = yyn < 0 ? -yyn : 0;
06699
06700
06701 int yychecklim = YYLAST - yyn + 1;
06702 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
06703 int yycount = 1;
06704
06705 yyarg[0] = yytname[yytype];
06706 yyfmt = yystpcpy (yyformat, yyunexpected);
06707
06708 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
06709 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
06710 {
06711 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
06712 {
06713 yycount = 1;
06714 yysize = yysize0;
06715 yyformat[sizeof yyunexpected - 1] = '\0';
06716 break;
06717 }
06718 yyarg[yycount++] = yytname[yyx];
06719 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
06720 yysize_overflow |= (yysize1 < yysize);
06721 yysize = yysize1;
06722 yyfmt = yystpcpy (yyfmt, yyprefix);
06723 yyprefix = yyor;
06724 }
06725
06726 yyf = YY_(yyformat);
06727 yysize1 = yysize + yystrlen (yyf);
06728 yysize_overflow |= (yysize1 < yysize);
06729 yysize = yysize1;
06730
06731 if (yysize_overflow)
06732 return YYSIZE_MAXIMUM;
06733
06734 if (yyresult)
06735 {
06736
06737
06738
06739 char *yyp = yyresult;
06740 int yyi = 0;
06741 while ((*yyp = *yyf) != '\0')
06742 {
06743 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
06744 {
06745 yyp += yytnamerr (yyp, yyarg[yyi++]);
06746 yyf += 2;
06747 }
06748 else
06749 {
06750 yyp++;
06751 yyf++;
06752 }
06753 }
06754 }
06755 return yysize;
06756 }
06757 }
06758 #endif
06759
06760
06761
06762
06763
06764
06765
06766 #if (defined __STDC__ || defined __C99__FUNC__ \
06767 || defined __cplusplus || defined _MSC_VER)
06768 static void
06769 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, drizzled::Session *session)
06770 #else
06771 static void
06772 yydestruct (yymsg, yytype, yyvaluep, session)
06773 const char *yymsg;
06774 int yytype;
06775 YYSTYPE *yyvaluep;
06776 drizzled::Session *session;
06777 #endif
06778 {
06779 YYUSE (yyvaluep);
06780 YYUSE (session);
06781
06782 if (!yymsg)
06783 yymsg = "Deleting";
06784 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
06785
06786 switch (yytype)
06787 {
06788
06789 default:
06790 break;
06791 }
06792 }
06793
06794
06795 #ifdef YYPARSE_PARAM
06796 #if defined __STDC__ || defined __cplusplus
06797 int yyparse (void *YYPARSE_PARAM);
06798 #else
06799 int yyparse ();
06800 #endif
06801 #else
06802 #if defined __STDC__ || defined __cplusplus
06803 int yyparse (drizzled::Session *session);
06804 #else
06805 int yyparse ();
06806 #endif
06807 #endif
06808
06809
06810
06811
06812
06813
06814
06815
06816
06817 #ifdef YYPARSE_PARAM
06818 #if (defined __STDC__ || defined __C99__FUNC__ \
06819 || defined __cplusplus || defined _MSC_VER)
06820 int
06821 yyparse (void *YYPARSE_PARAM)
06822 #else
06823 int
06824 yyparse (YYPARSE_PARAM)
06825 void *YYPARSE_PARAM;
06826 #endif
06827 #else
06828 #if (defined __STDC__ || defined __C99__FUNC__ \
06829 || defined __cplusplus || defined _MSC_VER)
06830 int
06831 yyparse (drizzled::Session *session)
06832 #else
06833 int
06834 yyparse (session)
06835 drizzled::Session *session;
06836 #endif
06837 #endif
06838 {
06839
06840 int yychar;
06841
06842
06843 YYSTYPE yylval;
06844
06845
06846 int yynerrs;
06847
06848 int yystate;
06849
06850 int yyerrstatus;
06851
06852
06853
06854
06855
06856
06857
06858
06859
06860 yytype_int16 yyssa[YYINITDEPTH];
06861 yytype_int16 *yyss;
06862 yytype_int16 *yyssp;
06863
06864
06865 YYSTYPE yyvsa[YYINITDEPTH];
06866 YYSTYPE *yyvs;
06867 YYSTYPE *yyvsp;
06868
06869 YYSIZE_T yystacksize;
06870
06871 int yyn;
06872 int yyresult;
06873
06874 int yytoken;
06875
06876
06877 YYSTYPE yyval;
06878
06879 #if YYERROR_VERBOSE
06880
06881 char yymsgbuf[128];
06882 char *yymsg = yymsgbuf;
06883 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
06884 #endif
06885
06886 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
06887
06888
06889
06890 int yylen = 0;
06891
06892 yytoken = 0;
06893 yyss = yyssa;
06894 yyvs = yyvsa;
06895 yystacksize = YYINITDEPTH;
06896
06897 YYDPRINTF ((stderr, "Starting parse\n"));
06898
06899 yystate = 0;
06900 yyerrstatus = 0;
06901 yynerrs = 0;
06902 yychar = YYEMPTY;
06903
06904
06905
06906
06907
06908 yyssp = yyss;
06909 yyvsp = yyvs;
06910
06911 goto yysetstate;
06912
06913
06914
06915
06916 yynewstate:
06917
06918
06919 yyssp++;
06920
06921 yysetstate:
06922 *yyssp = yystate;
06923
06924 if (yyss + yystacksize - 1 <= yyssp)
06925 {
06926
06927 YYSIZE_T yysize = yyssp - yyss + 1;
06928
06929 #ifdef yyoverflow
06930 {
06931
06932
06933
06934 YYSTYPE *yyvs1 = yyvs;
06935 yytype_int16 *yyss1 = yyss;
06936
06937
06938
06939
06940
06941 yyoverflow (YY_("memory exhausted"),
06942 &yyss1, yysize * sizeof (*yyssp),
06943 &yyvs1, yysize * sizeof (*yyvsp),
06944 &yystacksize);
06945
06946 yyss = yyss1;
06947 yyvs = yyvs1;
06948 }
06949 #else
06950 # ifndef YYSTACK_RELOCATE
06951 goto yyexhaustedlab;
06952 # else
06953
06954 if (YYMAXDEPTH <= yystacksize)
06955 goto yyexhaustedlab;
06956 yystacksize *= 2;
06957 if (YYMAXDEPTH < yystacksize)
06958 yystacksize = YYMAXDEPTH;
06959
06960 {
06961 yytype_int16 *yyss1 = yyss;
06962 union yyalloc *yyptr =
06963 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
06964 if (! yyptr)
06965 goto yyexhaustedlab;
06966 YYSTACK_RELOCATE (yyss_alloc, yyss);
06967 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
06968 # undef YYSTACK_RELOCATE
06969 if (yyss1 != yyssa)
06970 YYSTACK_FREE (yyss1);
06971 }
06972 # endif
06973 #endif
06974
06975 yyssp = yyss + yysize - 1;
06976 yyvsp = yyvs + yysize - 1;
06977
06978 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
06979 (unsigned long int) yystacksize));
06980
06981 if (yyss + yystacksize - 1 <= yyssp)
06982 YYABORT;
06983 }
06984
06985 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
06986
06987 if (yystate == YYFINAL)
06988 YYACCEPT;
06989
06990 goto yybackup;
06991
06992
06993
06994
06995 yybackup:
06996
06997
06998
06999
07000
07001 yyn = yypact[yystate];
07002 if (yyn == YYPACT_NINF)
07003 goto yydefault;
07004
07005
07006
07007
07008 if (yychar == YYEMPTY)
07009 {
07010 YYDPRINTF ((stderr, "Reading a token: "));
07011 yychar = YYLEX;
07012 }
07013
07014 if (yychar <= YYEOF)
07015 {
07016 yychar = yytoken = YYEOF;
07017 YYDPRINTF ((stderr, "Now at end of input.\n"));
07018 }
07019 else
07020 {
07021 yytoken = YYTRANSLATE (yychar);
07022 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
07023 }
07024
07025
07026
07027 yyn += yytoken;
07028 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
07029 goto yydefault;
07030 yyn = yytable[yyn];
07031 if (yyn <= 0)
07032 {
07033 if (yyn == 0 || yyn == YYTABLE_NINF)
07034 goto yyerrlab;
07035 yyn = -yyn;
07036 goto yyreduce;
07037 }
07038
07039
07040
07041 if (yyerrstatus)
07042 yyerrstatus--;
07043
07044
07045 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
07046
07047
07048 yychar = YYEMPTY;
07049
07050 yystate = yyn;
07051 *++yyvsp = yylval;
07052
07053 goto yynewstate;
07054
07055
07056
07057
07058
07059 yydefault:
07060 yyn = yydefact[yystate];
07061 if (yyn == 0)
07062 goto yyerrlab;
07063 goto yyreduce;
07064
07065
07066
07067
07068
07069 yyreduce:
07070
07071 yylen = yyr2[yyn];
07072
07073
07074
07075
07076
07077
07078
07079
07080
07081 yyval = yyvsp[1-yylen];
07082
07083
07084 YY_REDUCE_PRINT (yyn);
07085 switch (yyn)
07086 {
07087 case 2:
07088
07089
07090 #line 808 "drizzled/sql_yacc.yy"
07091 {
07092 if (!(YYSession->lex().select_lex.options & OPTION_FOUND_COMMENT))
07093 {
07094 my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
07095 DRIZZLE_YYABORT;
07096 }
07097 else
07098 {
07099 YYSession->lex().statement= new statement::EmptyQuery(YYSession);
07100 }
07101 }
07102 break;
07103
07104 case 3:
07105
07106
07107 #line 819 "drizzled/sql_yacc.yy"
07108 {}
07109 break;
07110
07111 case 32:
07112
07113
07114 #line 861 "drizzled/sql_yacc.yy"
07115 {
07116 Lex.statement= new statement::catalog::Create(YYSession, (yyvsp[(3) - (3)].lex_str));
07117 }
07118 break;
07119
07120 case 33:
07121
07122
07123 #line 865 "drizzled/sql_yacc.yy"
07124 {
07125 Lex.statement= new statement::CreateTable(YYSession, (yyvsp[(5) - (5)].table), (yyvsp[(2) - (5)].num));
07126
07127 if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL,
07128 TL_OPTION_UPDATING,
07129 TL_WRITE))
07130 DRIZZLE_YYABORT;
07131 Lex.col_list.clear();
07132 }
07133 break;
07134
07135 case 34:
07136
07137
07138 #line 875 "drizzled/sql_yacc.yy"
07139 {
07140 Lex.current_select= &Lex.select_lex;
07141 }
07142 break;
07143
07144 case 35:
07145
07146
07147 #line 879 "drizzled/sql_yacc.yy"
07148 {
07149 Lex.statement= new statement::CreateIndex(YYSession);
07150 }
07151 break;
07152
07153 case 36:
07154
07155
07156 #line 883 "drizzled/sql_yacc.yy"
07157 {
07158 if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(9) - (13)].table),
07159 NULL,
07160 TL_OPTION_UPDATING))
07161 DRIZZLE_YYABORT;
07162
07163 parser::buildKey(&Lex, (yyvsp[(4) - (13)].key_type), (yyvsp[(6) - (13)].lex_str));
07164 }
07165 break;
07166
07167 case 37:
07168
07169
07170 #line 892 "drizzled/sql_yacc.yy"
07171 {
07172 Lex.statement= new statement::CreateSchema(YYSession);
07173 }
07174 break;
07175
07176 case 38:
07177
07178
07179 #line 896 "drizzled/sql_yacc.yy"
07180 {
07181 Lex.name= (yyvsp[(4) - (6)].lex_str);
07182 }
07183 break;
07184
07185 case 39:
07186
07187
07188 #line 903 "drizzled/sql_yacc.yy"
07189 { }
07190 break;
07191
07192 case 40:
07193
07194
07195 #line 905 "drizzled/sql_yacc.yy"
07196 {
07197 Lex.current_select->set_braces(1);
07198 }
07199 break;
07200
07201 case 41:
07202
07203
07204 #line 908 "drizzled/sql_yacc.yy"
07205 {}
07206 break;
07207
07208 case 42:
07209
07210
07211 #line 910 "drizzled/sql_yacc.yy"
07212 { }
07213 break;
07214
07215 case 43:
07216
07217
07218 #line 912 "drizzled/sql_yacc.yy"
07219 { }
07220 break;
07221
07222 case 44:
07223
07224
07225 #line 914 "drizzled/sql_yacc.yy"
07226 { }
07227 break;
07228
07229 case 45:
07230
07231
07232 #line 918 "drizzled/sql_yacc.yy"
07233 {}
07234 break;
07235
07236 case 46:
07237
07238
07239 #line 920 "drizzled/sql_yacc.yy"
07240 {
07241 Lex.current_select->set_braces(0);
07242 }
07243 break;
07244
07245 case 47:
07246
07247
07248 #line 923 "drizzled/sql_yacc.yy"
07249 {}
07250 break;
07251
07252 case 48:
07253
07254
07255 #line 925 "drizzled/sql_yacc.yy"
07256 {
07257 Lex.current_select->set_braces(1);
07258 }
07259 break;
07260
07261 case 49:
07262
07263
07264 #line 928 "drizzled/sql_yacc.yy"
07265 {}
07266 break;
07267
07268 case 50:
07269
07270
07271 #line 933 "drizzled/sql_yacc.yy"
07272 {
07273 ((statement::CreateTable *)(YYSession->lex().statement))->is_create_table_like= true;
07274
07275 if (not YYSession->lex().select_lex.add_table_to_list(YYSession, (yyvsp[(2) - (2)].table), NULL, 0, TL_READ))
07276 DRIZZLE_YYABORT;
07277 }
07278 break;
07279
07280 case 51:
07281
07282
07283 #line 943 "drizzled/sql_yacc.yy"
07284 {
07285 }
07286 break;
07287
07288 case 52:
07289
07290
07291 #line 952 "drizzled/sql_yacc.yy"
07292 {
07293 Lex.lock_option= TL_READ;
07294 if (Lex.sql_command == SQLCOM_INSERT)
07295 {
07296 delete Lex.statement;
07297 Lex.statement= new statement::InsertSelect(YYSession);
07298 }
07299 else if (Lex.sql_command == SQLCOM_REPLACE)
07300 {
07301 delete Lex.statement;
07302 Lex.statement= new statement::ReplaceSelect(YYSession);
07303 }
07304
07305
07306
07307
07308 Lex.current_select->table_list.save_and_clear(&Lex.save_list);
07309 init_select(&Lex);
07310 Lex.current_select->parsing_place= SELECT_LIST;
07311 }
07312 break;
07313
07314 case 53:
07315
07316
07317 #line 973 "drizzled/sql_yacc.yy"
07318 {
07319 Lex.current_select->parsing_place= NO_MATTER;
07320 }
07321 break;
07322
07323 case 54:
07324
07325
07326 #line 977 "drizzled/sql_yacc.yy"
07327 {
07328
07329
07330
07331
07332 Lex.current_select->table_list.push_front(&Lex.save_list);
07333 }
07334 break;
07335
07336 case 55:
07337
07338
07339 #line 987 "drizzled/sql_yacc.yy"
07340 {}
07341 break;
07342
07343 case 63:
07344
07345
07346 #line 1002 "drizzled/sql_yacc.yy"
07347 {
07348 statement::CreateSchema *statement= (statement::CreateSchema *)Lex.statement;
07349 statement->schema_message.mutable_engine()->add_options()->set_name((yyvsp[(1) - (1)].lex_str).data());
07350 }
07351 break;
07352
07353 case 64:
07354
07355
07356 #line 1007 "drizzled/sql_yacc.yy"
07357 {
07358 parser::buildReplicationOption(&Lex, true);
07359 }
07360 break;
07361
07362 case 65:
07363
07364
07365 #line 1011 "drizzled/sql_yacc.yy"
07366 {
07367 parser::buildReplicationOption(&Lex, false);
07368 }
07369 break;
07370
07371 case 66:
07372
07373
07374 #line 1015 "drizzled/sql_yacc.yy"
07375 {
07376 parser::buildSchemaDefiner(&Lex, identifier::User((yyvsp[(2) - (2)].lex_str)));
07377 }
07378 break;
07379
07380 case 67:
07381
07382
07383 #line 1019 "drizzled/sql_yacc.yy"
07384 {
07385 parser::buildSchemaDefiner(&Lex, *session->user());
07386 }
07387 break;
07388
07389 case 68:
07390
07391
07392 #line 1023 "drizzled/sql_yacc.yy"
07393 {
07394 parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str));
07395 }
07396 break;
07397
07398 case 69:
07399
07400
07401 #line 1027 "drizzled/sql_yacc.yy"
07402 {
07403 parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].ulonglong_number));
07404 }
07405 break;
07406
07407 case 70:
07408
07409
07410 #line 1033 "drizzled/sql_yacc.yy"
07411 { (yyval.num)= false; }
07412 break;
07413
07414 case 71:
07415
07416
07417 #line 1034 "drizzled/sql_yacc.yy"
07418 { (yyval.num)= true; }
07419 break;
07420
07421 case 72:
07422
07423
07424 #line 1038 "drizzled/sql_yacc.yy"
07425 { (yyval.boolean)= false; }
07426 break;
07427
07428 case 73:
07429
07430
07431 #line 1039 "drizzled/sql_yacc.yy"
07432 { (yyval.boolean)= true; YYSession->lex().setExists(); }
07433 break;
07434
07435 case 82:
07436
07437
07438 #line 1062 "drizzled/sql_yacc.yy"
07439 {
07440 Lex.table()->mutable_engine()->set_name((yyvsp[(3) - (3)].lex_str).data());
07441 }
07442 break;
07443
07444 case 83:
07445
07446
07447 #line 1066 "drizzled/sql_yacc.yy"
07448 {
07449 Lex.table()->mutable_options()->set_comment((yyvsp[(3) - (3)].lex_str).data());
07450 }
07451 break;
07452
07453 case 84:
07454
07455
07456 #line 1070 "drizzled/sql_yacc.yy"
07457 {
07458 Lex.table()->mutable_options()->set_auto_increment_value((yyvsp[(3) - (3)].ulonglong_number));
07459 }
07460 break;
07461
07462 case 85:
07463
07464
07465 #line 1074 "drizzled/sql_yacc.yy"
07466 {
07467 message::set_is_replicated(*Lex.table(), true);
07468 }
07469 break;
07470
07471 case 86:
07472
07473
07474 #line 1078 "drizzled/sql_yacc.yy"
07475 {
07476 message::set_is_replicated(*Lex.table(), false);
07477 }
07478 break;
07479
07480 case 87:
07481
07482
07483 #line 1082 "drizzled/sql_yacc.yy"
07484 {
07485 message::set_definer(*Lex.table(), identifier::User((yyvsp[(2) - (2)].lex_str)));
07486 }
07487 break;
07488
07489 case 88:
07490
07491
07492 #line 1086 "drizzled/sql_yacc.yy"
07493 {
07494 message::set_definer(*Lex.table(), *session->user());
07495 }
07496 break;
07497
07498 case 89:
07499
07500
07501 #line 1090 "drizzled/sql_yacc.yy"
07502 {
07503 parser::buildEngineOption(&Lex, "ROW_FORMAT", (yyvsp[(3) - (3)].lex_str));
07504 }
07505 break;
07506
07507 case 90:
07508
07509
07510 #line 1094 "drizzled/sql_yacc.yy"
07511 {
07512 parser::buildEngineOption(&Lex, "FILE", (yyvsp[(3) - (3)].lex_str));
07513 }
07514 break;
07515
07516 case 91:
07517
07518
07519 #line 1098 "drizzled/sql_yacc.yy"
07520 {
07521 parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str));
07522 }
07523 break;
07524
07525 case 92:
07526
07527
07528 #line 1102 "drizzled/sql_yacc.yy"
07529 {
07530 parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].ulonglong_number));
07531 }
07532 break;
07533
07534 case 95:
07535
07536
07537 #line 1110 "drizzled/sql_yacc.yy"
07538 {}
07539 break;
07540
07541 case 96:
07542
07543
07544 #line 1111 "drizzled/sql_yacc.yy"
07545 {}
07546 break;
07547
07548 case 97:
07549
07550
07551 #line 1115 "drizzled/sql_yacc.yy"
07552 { }
07553 break;
07554
07555 case 98:
07556
07557
07558 #line 1116 "drizzled/sql_yacc.yy"
07559 { }
07560 break;
07561
07562 case 99:
07563
07564
07565 #line 1121 "drizzled/sql_yacc.yy"
07566 {
07567 }
07568 break;
07569
07570 case 100:
07571
07572
07573 #line 1126 "drizzled/sql_yacc.yy"
07574 {
07575 if (not parser::buildCollation(&Lex, (yyvsp[(4) - (4)].charset)))
07576 {
07577 DRIZZLE_YYABORT;
07578 }
07579 }
07580 break;
07581
07582 case 101:
07583
07584
07585 #line 1136 "drizzled/sql_yacc.yy"
07586 {
07587 ((statement::CreateSchema *)Lex.statement)->schema_message.set_collation((yyvsp[(4) - (4)].charset)->name);
07588 }
07589 break;
07590
07591 case 102:
07592
07593
07594 #line 1142 "drizzled/sql_yacc.yy"
07595 {}
07596 break;
07597
07598 case 103:
07599
07600
07601 #line 1143 "drizzled/sql_yacc.yy"
07602 {}
07603 break;
07604
07605 case 104:
07606
07607
07608 #line 1144 "drizzled/sql_yacc.yy"
07609 {}
07610 break;
07611
07612 case 105:
07613
07614
07615 #line 1145 "drizzled/sql_yacc.yy"
07616 {}
07617 break;
07618
07619 case 106:
07620
07621
07622 #line 1146 "drizzled/sql_yacc.yy"
07623 {}
07624 break;
07625
07626 case 107:
07627
07628
07629 #line 1147 "drizzled/sql_yacc.yy"
07630 {}
07631 break;
07632
07633 case 108:
07634
07635
07636 #line 1152 "drizzled/sql_yacc.yy"
07637 {
07638 (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
07639 }
07640 break;
07641
07642 case 109:
07643
07644
07645 #line 1158 "drizzled/sql_yacc.yy"
07646 {}
07647 break;
07648
07649 case 116:
07650
07651
07652 #line 1175 "drizzled/sql_yacc.yy"
07653 {
07654 Lex.col_list.clear();
07655 }
07656 break;
07657
07658 case 117:
07659
07660
07661 #line 1182 "drizzled/sql_yacc.yy"
07662 {
07663 parser::buildKey(&Lex, (yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].lex_str));
07664 }
07665 break;
07666
07667 case 118:
07668
07669
07670 #line 1187 "drizzled/sql_yacc.yy"
07671 {
07672 parser::buildKey(&Lex, (yyvsp[(2) - (8)].key_type), (yyvsp[(3) - (8)].lex_str).data() ? (yyvsp[(3) - (8)].lex_str) : (yyvsp[(1) - (8)].lex_str));
07673 }
07674 break;
07675
07676 case 119:
07677
07678
07679 #line 1191 "drizzled/sql_yacc.yy"
07680 {
07681 parser::buildForeignKey(&Lex, (yyvsp[(1) - (8)].lex_str).data() ? (yyvsp[(1) - (8)].lex_str) : (yyvsp[(4) - (8)].lex_str), (yyvsp[(8) - (8)].table));
07682 }
07683 break;
07684
07685 case 120:
07686
07687
07688 #line 1195 "drizzled/sql_yacc.yy"
07689 {
07690 Lex.col_list.clear();
07691 }
07692 break;
07693
07694 case 121:
07695
07696
07697 #line 1199 "drizzled/sql_yacc.yy"
07698 {
07699 Lex.col_list.clear();
07700 }
07701 break;
07702
07703 case 125:
07704
07705
07706 #line 1214 "drizzled/sql_yacc.yy"
07707 { (yyval.lex_str)= null_lex_string(); }
07708 break;
07709
07710 case 126:
07711
07712
07713 #line 1215 "drizzled/sql_yacc.yy"
07714 { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
07715 break;
07716
07717 case 127:
07718
07719
07720 #line 1219 "drizzled/sql_yacc.yy"
07721 { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
07722 break;
07723
07724 case 128:
07725
07726
07727 #line 1224 "drizzled/sql_yacc.yy"
07728 {
07729 parser::buildCreateFieldIdent(&Lex);
07730 }
07731 break;
07732
07733 case 129:
07734
07735
07736 #line 1228 "drizzled/sql_yacc.yy"
07737 {
07738 statement::CreateTable *statement= (statement::CreateTable*)Lex.statement;
07739
07740 if (Lex.field())
07741 {
07742 Lex.field()->set_name((yyvsp[(1) - (4)].lex_str).data());
07743 }
07744
07745 if (add_field_to_list(Lex.session, (yyvsp[(1) - (4)].lex_str), (enum_field_types) (yyvsp[(3) - (4)].field_val),
07746 Lex.length, Lex.dec, Lex.type,
07747 statement->column_format,
07748 statement->default_value, statement->on_update_value,
07749 statement->comment,
07750 statement->change, &Lex.interval_list, Lex.charset))
07751 DRIZZLE_YYABORT;
07752
07753 Lex.setField(NULL);
07754 }
07755 break;
07756
07757 case 130:
07758
07759
07760 #line 1250 "drizzled/sql_yacc.yy"
07761 {
07762 (yyval.field_val)=parser::buildTimestampColumn(&Lex, NULL);
07763 }
07764 break;
07765
07766 case 131:
07767
07768
07769 #line 1254 "drizzled/sql_yacc.yy"
07770 {
07771 (yyval.field_val)=parser::buildTimestampColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
07772 }
07773 break;
07774
07775 case 132:
07776
07777
07778 #line 1258 "drizzled/sql_yacc.yy"
07779 {
07780 (yyval.field_val)=DRIZZLE_TYPE_DATETIME;
07781
07782 if (Lex.field())
07783 Lex.field()->set_type(message::Table::Field::DATETIME);
07784 }
07785 break;
07786
07787 case 133:
07788
07789
07790 #line 1265 "drizzled/sql_yacc.yy"
07791 {
07792 (yyval.field_val)= (yyvsp[(1) - (2)].field_val);
07793 }
07794 break;
07795
07796 case 134:
07797
07798
07799 #line 1269 "drizzled/sql_yacc.yy"
07800 {
07801 (yyval.field_val)= parser::buildVarcharColumn(&Lex, "1");
07802 }
07803 break;
07804
07805 case 135:
07806
07807
07808 #line 1273 "drizzled/sql_yacc.yy"
07809 {
07810 (yyval.field_val)= parser::buildVarcharColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
07811 }
07812 break;
07813
07814 case 136:
07815
07816
07817 #line 1277 "drizzled/sql_yacc.yy"
07818 {
07819 (yyval.field_val)=DRIZZLE_TYPE_BLOB;
07820 Lex.length= NULL;
07821
07822 if (Lex.field())
07823 Lex.field()->set_type(message::Table::Field::BLOB);
07824 }
07825 break;
07826
07827 case 137:
07828
07829
07830 #line 1285 "drizzled/sql_yacc.yy"
07831 {
07832 Lex.interval_list.clear();
07833 }
07834 break;
07835
07836 case 138:
07837
07838
07839 #line 1289 "drizzled/sql_yacc.yy"
07840 {
07841 (yyval.field_val)=DRIZZLE_TYPE_ENUM;
07842
07843 if (Lex.field())
07844 Lex.field()->set_type(message::Table::Field::ENUM);
07845 }
07846 break;
07847
07848 case 139:
07849
07850
07851 #line 1296 "drizzled/sql_yacc.yy"
07852 {
07853 (yyval.field_val)= parser::buildVarbinaryColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
07854 }
07855 break;
07856
07857 case 140:
07858
07859
07860 #line 1300 "drizzled/sql_yacc.yy"
07861 {
07862 assert ((yyvsp[(1) - (2)].field_val) == DRIZZLE_TYPE_DOUBLE);
07863 (yyval.field_val)= parser::buildDoubleColumn(&Lex);
07864 }
07865 break;
07866
07867 case 141:
07868
07869
07870 #line 1305 "drizzled/sql_yacc.yy"
07871 {
07872 (yyval.field_val)=DRIZZLE_TYPE_DATE;
07873
07874 if (Lex.field())
07875 Lex.field()->set_type(message::Table::Field::DATE);
07876 }
07877 break;
07878
07879 case 142:
07880
07881
07882 #line 1312 "drizzled/sql_yacc.yy"
07883 {
07884 (yyval.field_val)=DRIZZLE_TYPE_TIME;
07885
07886 if (Lex.field())
07887 Lex.field()->set_type(message::Table::Field::TIME);
07888 }
07889 break;
07890
07891 case 143:
07892
07893
07894 #line 1319 "drizzled/sql_yacc.yy"
07895 {
07896 (yyval.field_val)= parser::buildBlobColumn(&Lex);
07897 }
07898 break;
07899
07900 case 144:
07901
07902
07903 #line 1323 "drizzled/sql_yacc.yy"
07904 {
07905 (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07906 }
07907 break;
07908
07909 case 145:
07910
07911
07912 #line 1327 "drizzled/sql_yacc.yy"
07913 {
07914 (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07915 }
07916 break;
07917
07918 case 146:
07919
07920
07921 #line 1331 "drizzled/sql_yacc.yy"
07922 {
07923 (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07924 }
07925 break;
07926
07927 case 147:
07928
07929
07930 #line 1335 "drizzled/sql_yacc.yy"
07931 {
07932 (yyval.field_val)= parser::buildUuidColumn(&Lex);
07933 }
07934 break;
07935
07936 case 148:
07937
07938
07939 #line 1339 "drizzled/sql_yacc.yy"
07940 {
07941 (yyval.field_val)= parser::buildIPv6Column(&Lex);
07942 }
07943 break;
07944
07945 case 149:
07946
07947
07948 #line 1343 "drizzled/sql_yacc.yy"
07949 {
07950 (yyval.field_val)= parser::buildBooleanColumn(&Lex);
07951 }
07952 break;
07953
07954 case 150:
07955
07956
07957 #line 1347 "drizzled/sql_yacc.yy"
07958 {
07959 (yyval.field_val)= parser::buildSerialColumn(&Lex);
07960 }
07961 break;
07962
07963 case 151:
07964
07965
07966 #line 1354 "drizzled/sql_yacc.yy"
07967 { }
07968 break;
07969
07970 case 152:
07971
07972
07973 #line 1356 "drizzled/sql_yacc.yy"
07974 { }
07975 break;
07976
07977 case 153:
07978
07979
07980 #line 1358 "drizzled/sql_yacc.yy"
07981 { }
07982 break;
07983
07984 case 154:
07985
07986
07987 #line 1363 "drizzled/sql_yacc.yy"
07988 {
07989 (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07990 }
07991 break;
07992
07993 case 155:
07994
07995
07996 #line 1367 "drizzled/sql_yacc.yy"
07997 {
07998 (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONGLONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07999 }
08000 break;
08001
08002 case 156:
08003
08004
08005 #line 1374 "drizzled/sql_yacc.yy"
08006 {
08007 (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
08008 }
08009 break;
08010
08011 case 157:
08012
08013
08014 #line 1378 "drizzled/sql_yacc.yy"
08015 {
08016 (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
08017 }
08018 break;
08019
08020 case 158:
08021
08022
08023 #line 1382 "drizzled/sql_yacc.yy"
08024 {
08025 (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
08026 }
08027 break;
08028
08029 case 159:
08030
08031
08032 #line 1389 "drizzled/sql_yacc.yy"
08033 { Lex.dec=Lex.length= NULL; }
08034 break;
08035
08036 case 160:
08037
08038
08039 #line 1391 "drizzled/sql_yacc.yy"
08040 { Lex.length=(yyvsp[(2) - (3)].lex_str).data(); Lex.dec= NULL; }
08041 break;
08042
08043 case 161:
08044
08045
08046 #line 1393 "drizzled/sql_yacc.yy"
08047 {}
08048 break;
08049
08050 case 162:
08051
08052
08053 #line 1398 "drizzled/sql_yacc.yy"
08054 {
08055 Lex.length= (yyvsp[(2) - (5)].lex_str).data();
08056 Lex.dec= (yyvsp[(4) - (5)].lex_str).data();
08057 }
08058 break;
08059
08060 case 163:
08061
08062
08063 #line 1405 "drizzled/sql_yacc.yy"
08064 { Lex.length= NULL; }
08065 break;
08066
08067 case 164:
08068
08069
08070 #line 1406 "drizzled/sql_yacc.yy"
08071 { Lex.length= (yyvsp[(2) - (3)].lex_str).data(); }
08072 break;
08073
08074 case 165:
08075
08076
08077 #line 1410 "drizzled/sql_yacc.yy"
08078 { (yyval.boolean)= false; }
08079 break;
08080
08081 case 166:
08082
08083
08084 #line 1411 "drizzled/sql_yacc.yy"
08085 { (yyval.boolean)= false; }
08086 break;
08087
08088 case 167:
08089
08090
08091 #line 1412 "drizzled/sql_yacc.yy"
08092 { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
08093 break;
08094
08095 case 168:
08096
08097
08098 #line 1416 "drizzled/sql_yacc.yy"
08099 { }
08100 break;
08101
08102 case 169:
08103
08104
08105 #line 1417 "drizzled/sql_yacc.yy"
08106 { }
08107 break;
08108
08109 case 170:
08110
08111
08112 #line 1421 "drizzled/sql_yacc.yy"
08113 { (yyval.boolean)= false; }
08114 break;
08115
08116 case 171:
08117
08118
08119 #line 1422 "drizzled/sql_yacc.yy"
08120 { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
08121 break;
08122
08123 case 172:
08124
08125
08126 #line 1427 "drizzled/sql_yacc.yy"
08127 { Lex.dec=Lex.length= NULL; }
08128 break;
08129
08130 case 173:
08131
08132
08133 #line 1429 "drizzled/sql_yacc.yy"
08134 { Lex.length=Lex.dec= NULL; }
08135 break;
08136
08137 case 174:
08138
08139
08140 #line 1431 "drizzled/sql_yacc.yy"
08141 {}
08142 break;
08143
08144 case 175:
08145
08146
08147 #line 1436 "drizzled/sql_yacc.yy"
08148 {
08149 Lex.type&= ~ NOT_NULL_FLAG;
08150 }
08151 break;
08152
08153 case 176:
08154
08155
08156 #line 1440 "drizzled/sql_yacc.yy"
08157 {
08158 Lex.type|= NOT_NULL_FLAG;
08159
08160 if (Lex.field())
08161 {
08162 Lex.field()->mutable_constraints()->set_is_notnull(true);
08163 }
08164 }
08165 break;
08166
08167 case 177:
08168
08169
08170 #line 1452 "drizzled/sql_yacc.yy"
08171 {
08172 parser::buildPrimaryOnColumn(&Lex);
08173 }
08174 break;
08175
08176 case 178:
08177
08178
08179 #line 1456 "drizzled/sql_yacc.yy"
08180 {
08181 parser::buildKeyOnColumn(&Lex);
08182 }
08183 break;
08184
08185 case 179:
08186
08187
08188 #line 1460 "drizzled/sql_yacc.yy"
08189 {
08190 parser::buildKeyOnColumn(&Lex);
08191 }
08192 break;
08193
08194 case 180:
08195
08196
08197 #line 1466 "drizzled/sql_yacc.yy"
08198 {}
08199 break;
08200
08201 case 181:
08202
08203
08204 #line 1468 "drizzled/sql_yacc.yy"
08205 { }
08206 break;
08207
08208 case 182:
08209
08210
08211 #line 1470 "drizzled/sql_yacc.yy"
08212 {
08213 statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08214
08215 statement->default_value= (yyvsp[(3) - (3)].item);
08216 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08217 }
08218 break;
08219
08220 case 183:
08221
08222
08223 #line 1477 "drizzled/sql_yacc.yy"
08224 { }
08225 break;
08226
08227 case 184:
08228
08229
08230 #line 1481 "drizzled/sql_yacc.yy"
08231 { }
08232 break;
08233
08234 case 185:
08235
08236
08237 #line 1483 "drizzled/sql_yacc.yy"
08238 { }
08239 break;
08240
08241 case 186:
08242
08243
08244 #line 1485 "drizzled/sql_yacc.yy"
08245 {
08246 statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08247
08248 statement->default_value= (yyvsp[(3) - (3)].item);
08249 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08250 }
08251 break;
08252
08253 case 187:
08254
08255
08256 #line 1492 "drizzled/sql_yacc.yy"
08257 { }
08258 break;
08259
08260 case 188:
08261
08262
08263 #line 1496 "drizzled/sql_yacc.yy"
08264 {}
08265 break;
08266
08267 case 189:
08268
08269
08270 #line 1497 "drizzled/sql_yacc.yy"
08271 {}
08272 break;
08273
08274 case 190:
08275
08276
08277 #line 1501 "drizzled/sql_yacc.yy"
08278 {}
08279 break;
08280
08281 case 192:
08282
08283
08284 #line 1507 "drizzled/sql_yacc.yy"
08285 { }
08286 break;
08287
08288 case 193:
08289
08290
08291 #line 1509 "drizzled/sql_yacc.yy"
08292 {
08293 statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08294
08295 statement->default_value=(yyvsp[(2) - (2)].item);
08296 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08297 }
08298 break;
08299
08300 case 194:
08301
08302
08303 #line 1516 "drizzled/sql_yacc.yy"
08304 {
08305 if (Lex.charset && !my_charset_same(Lex.charset,(yyvsp[(2) - (2)].charset)))
08306 {
08307 my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
08308 (yyvsp[(2) - (2)].charset)->name,Lex.charset->csname);
08309 DRIZZLE_YYABORT;
08310 }
08311 else
08312 {
08313 Lex.charset=(yyvsp[(2) - (2)].charset);
08314 }
08315 }
08316 break;
08317
08318 case 195:
08319
08320
08321 #line 1529 "drizzled/sql_yacc.yy"
08322 { }
08323 break;
08324
08325 case 196:
08326
08327
08328 #line 1533 "drizzled/sql_yacc.yy"
08329 {}
08330 break;
08331
08332 case 197:
08333
08334
08335 #line 1534 "drizzled/sql_yacc.yy"
08336 {}
08337 break;
08338
08339 case 198:
08340
08341
08342 #line 1538 "drizzled/sql_yacc.yy"
08343 {}
08344 break;
08345
08346 case 200:
08347
08348
08349 #line 1544 "drizzled/sql_yacc.yy"
08350 { }
08351 break;
08352
08353 case 201:
08354
08355
08356 #line 1546 "drizzled/sql_yacc.yy"
08357 {
08358 parser::buildAutoOnColumn(&Lex);
08359 }
08360 break;
08361
08362 case 202:
08363
08364
08365 #line 1550 "drizzled/sql_yacc.yy"
08366 {
08367 (void)parser::buildSerialColumn(&Lex);
08368 }
08369 break;
08370
08371 case 203:
08372
08373
08374 #line 1554 "drizzled/sql_yacc.yy"
08375 {
08376 statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08377
08378 statement->default_value=(yyvsp[(2) - (2)].item);
08379 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08380 }
08381 break;
08382
08383 case 204:
08384
08385
08386 #line 1561 "drizzled/sql_yacc.yy"
08387 { }
08388 break;
08389
08390 case 205:
08391
08392
08393 #line 1565 "drizzled/sql_yacc.yy"
08394 {}
08395 break;
08396
08397 case 206:
08398
08399
08400 #line 1566 "drizzled/sql_yacc.yy"
08401 {}
08402 break;
08403
08404 case 207:
08405
08406
08407 #line 1570 "drizzled/sql_yacc.yy"
08408 {}
08409 break;
08410
08411 case 209:
08412
08413
08414 #line 1576 "drizzled/sql_yacc.yy"
08415 { }
08416 break;
08417
08418 case 210:
08419
08420
08421 #line 1578 "drizzled/sql_yacc.yy"
08422 {
08423 statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08424
08425 statement->default_value= new Item_func_now_local();
08426 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08427 }
08428 break;
08429
08430 case 211:
08431
08432
08433 #line 1585 "drizzled/sql_yacc.yy"
08434 {
08435 statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08436
08437 statement->default_value=(yyvsp[(2) - (2)].item);
08438 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08439 }
08440 break;
08441
08442 case 212:
08443
08444
08445 #line 1592 "drizzled/sql_yacc.yy"
08446 {
08447 ((statement::AlterTable*)Lex.statement)->on_update_value= new Item_func_now_local();
08448 }
08449 break;
08450
08451 case 213:
08452
08453
08454 #line 1596 "drizzled/sql_yacc.yy"
08455 { }
08456 break;
08457
08458 case 214:
08459
08460
08461 #line 1600 "drizzled/sql_yacc.yy"
08462 { }
08463 break;
08464
08465 case 215:
08466
08467
08468 #line 1602 "drizzled/sql_yacc.yy"
08469 {
08470 statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08471 statement->comment= (yyvsp[(2) - (2)].lex_str);
08472
08473 if (Lex.field())
08474 Lex.field()->set_comment((yyvsp[(2) - (2)].lex_str).data());
08475 }
08476 break;
08477
08478 case 216:
08479
08480
08481 #line 1613 "drizzled/sql_yacc.yy"
08482 {
08483 if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).data())))
08484 {
08485 my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).data());
08486 DRIZZLE_YYABORT;
08487 }
08488 }
08489 break;
08490
08491 case 217:
08492
08493
08494 #line 1623 "drizzled/sql_yacc.yy"
08495 { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
08496 break;
08497
08498 case 218:
08499
08500
08501 #line 1624 "drizzled/sql_yacc.yy"
08502 { (yyval.charset)=NULL; }
08503 break;
08504
08505 case 219:
08506
08507
08508 #line 1628 "drizzled/sql_yacc.yy"
08509 {}
08510 break;
08511
08512 case 220:
08513
08514
08515 #line 1629 "drizzled/sql_yacc.yy"
08516 {}
08517 break;
08518
08519 case 223:
08520
08521
08522 #line 1639 "drizzled/sql_yacc.yy"
08523 {
08524 (yyval.table)=(yyvsp[(2) - (5)].table);
08525 }
08526 break;
08527
08528 case 224:
08529
08530
08531 #line 1646 "drizzled/sql_yacc.yy"
08532 { Lex.ref_list.clear(); }
08533 break;
08534
08535 case 226:
08536
08537
08538 #line 1652 "drizzled/sql_yacc.yy"
08539 { Lex.ref_list.push_back(new Key_part_spec((yyvsp[(3) - (3)].lex_str), 0)); }
08540 break;
08541
08542 case 227:
08543
08544
08545 #line 1654 "drizzled/sql_yacc.yy"
08546 {
08547 Lex.ref_list.clear();
08548 Lex.ref_list.push_back(new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0));
08549 }
08550 break;
08551
08552 case 228:
08553
08554
08555 #line 1662 "drizzled/sql_yacc.yy"
08556 { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_UNDEFINED; }
08557 break;
08558
08559 case 229:
08560
08561
08562 #line 1664 "drizzled/sql_yacc.yy"
08563 { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_FULL; }
08564 break;
08565
08566 case 230:
08567
08568
08569 #line 1666 "drizzled/sql_yacc.yy"
08570 { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_PARTIAL; }
08571 break;
08572
08573 case 231:
08574
08575
08576 #line 1668 "drizzled/sql_yacc.yy"
08577 { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_SIMPLE; }
08578 break;
08579
08580 case 232:
08581
08582
08583 #line 1673 "drizzled/sql_yacc.yy"
08584 {
08585 ((statement::CreateTable*)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08586 ((statement::CreateTable*)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08587 }
08588 break;
08589
08590 case 233:
08591
08592
08593 #line 1678 "drizzled/sql_yacc.yy"
08594 {
08595 ((statement::CreateTable*)Lex.statement)->fk_update_opt= (yyvsp[(3) - (3)].m_fk_option);
08596 ((statement::CreateTable*)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08597 }
08598 break;
08599
08600 case 234:
08601
08602
08603 #line 1683 "drizzled/sql_yacc.yy"
08604 {
08605 ((statement::CreateTable*)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08606 ((statement::CreateTable*)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (3)].m_fk_option);
08607 }
08608 break;
08609
08610 case 235:
08611
08612
08613 #line 1689 "drizzled/sql_yacc.yy"
08614 {
08615 ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(3) - (6)].m_fk_option);
08616 ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(6) - (6)].m_fk_option);
08617 }
08618 break;
08619
08620 case 236:
08621
08622
08623 #line 1695 "drizzled/sql_yacc.yy"
08624 {
08625 ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(6) - (6)].m_fk_option);
08626 ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (6)].m_fk_option);
08627 }
08628 break;
08629
08630 case 237:
08631
08632
08633 #line 1702 "drizzled/sql_yacc.yy"
08634 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_RESTRICT; }
08635 break;
08636
08637 case 238:
08638
08639
08640 #line 1703 "drizzled/sql_yacc.yy"
08641 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_CASCADE; }
08642 break;
08643
08644 case 239:
08645
08646
08647 #line 1704 "drizzled/sql_yacc.yy"
08648 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_NULL; }
08649 break;
08650
08651 case 240:
08652
08653
08654 #line 1705 "drizzled/sql_yacc.yy"
08655 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_NO_ACTION; }
08656 break;
08657
08658 case 241:
08659
08660
08661 #line 1706 "drizzled/sql_yacc.yy"
08662 { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_DEFAULT; }
08663 break;
08664
08665 case 242:
08666
08667
08668 #line 1710 "drizzled/sql_yacc.yy"
08669 { (yyval.key_type)= Key::MULTIPLE; }
08670 break;
08671
08672 case 243:
08673
08674
08675 #line 1714 "drizzled/sql_yacc.yy"
08676 { (yyval.key_type)= Key::PRIMARY; }
08677 break;
08678
08679 case 244:
08680
08681
08682 #line 1715 "drizzled/sql_yacc.yy"
08683 { (yyval.key_type)= Key::UNIQUE; }
08684 break;
08685
08686 case 245:
08687
08688
08689 #line 1719 "drizzled/sql_yacc.yy"
08690 {}
08691 break;
08692
08693 case 246:
08694
08695
08696 #line 1720 "drizzled/sql_yacc.yy"
08697 {}
08698 break;
08699
08700 case 247:
08701
08702
08703 #line 1724 "drizzled/sql_yacc.yy"
08704 {}
08705 break;
08706
08707 case 249:
08708
08709
08710 #line 1729 "drizzled/sql_yacc.yy"
08711 {}
08712 break;
08713
08714 case 250:
08715
08716
08717 #line 1730 "drizzled/sql_yacc.yy"
08718 {}
08719 break;
08720
08721 case 251:
08722
08723
08724 #line 1731 "drizzled/sql_yacc.yy"
08725 {}
08726 break;
08727
08728 case 252:
08729
08730
08731 #line 1735 "drizzled/sql_yacc.yy"
08732 { (yyval.key_type)= Key::MULTIPLE; }
08733 break;
08734
08735 case 253:
08736
08737
08738 #line 1736 "drizzled/sql_yacc.yy"
08739 { (yyval.key_type)= Key::UNIQUE; }
08740 break;
08741
08742 case 254:
08743
08744
08745 #line 1740 "drizzled/sql_yacc.yy"
08746 {
08747 ((statement::CreateTable *)Lex.statement)->key_create_info= default_key_create_info;
08748 }
08749 break;
08750
08751 case 257:
08752
08753
08754 #line 1757 "drizzled/sql_yacc.yy"
08755 {}
08756 break;
08757
08758 case 261:
08759
08760
08761 #line 1767 "drizzled/sql_yacc.yy"
08762 { ((statement::CreateTable *)Lex.statement)->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
08763 break;
08764
08765 case 263:
08766
08767
08768 #line 1773 "drizzled/sql_yacc.yy"
08769 { ((statement::CreateTable *)Lex.statement)->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
08770 break;
08771
08772 case 264:
08773
08774
08775 #line 1775 "drizzled/sql_yacc.yy"
08776 { ((statement::CreateTable *)Lex.statement)->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
08777 break;
08778
08779 case 265:
08780
08781
08782 #line 1779 "drizzled/sql_yacc.yy"
08783 { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
08784 break;
08785
08786 case 266:
08787
08788
08789 #line 1780 "drizzled/sql_yacc.yy"
08790 { (yyval.key_alg)= HA_KEY_ALG_HASH; }
08791 break;
08792
08793 case 267:
08794
08795
08796 #line 1784 "drizzled/sql_yacc.yy"
08797 { Lex.col_list.push_back((yyvsp[(3) - (4)].key_part)); }
08798 break;
08799
08800 case 268:
08801
08802
08803 #line 1785 "drizzled/sql_yacc.yy"
08804 { Lex.col_list.push_back((yyvsp[(1) - (2)].key_part)); }
08805 break;
08806
08807 case 269:
08808
08809
08810 #line 1789 "drizzled/sql_yacc.yy"
08811 { (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0); }
08812 break;
08813
08814 case 270:
08815
08816
08817 #line 1791 "drizzled/sql_yacc.yy"
08818 {
08819 int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).data());
08820 if (!key_part_len)
08821 {
08822 my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).data());
08823 }
08824 (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (4)].lex_str), (uint) key_part_len);
08825 }
08826 break;
08827
08828 case 271:
08829
08830
08831 #line 1802 "drizzled/sql_yacc.yy"
08832 { (yyval.lex_str)= null_lex_string(); }
08833 break;
08834
08835 case 272:
08836
08837
08838 #line 1803 "drizzled/sql_yacc.yy"
08839 { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
08840 break;
08841
08842 case 273:
08843
08844
08845 #line 1807 "drizzled/sql_yacc.yy"
08846 { (yyval.lex_str)= null_lex_string(); }
08847 break;
08848
08849 case 274:
08850
08851
08852 #line 1808 "drizzled/sql_yacc.yy"
08853 { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
08854 break;
08855
08856 case 275:
08857
08858
08859 #line 1812 "drizzled/sql_yacc.yy"
08860 { Lex.interval_list.push_back((yyvsp[(1) - (1)].string)); }
08861 break;
08862
08863 case 276:
08864
08865
08866 #line 1813 "drizzled/sql_yacc.yy"
08867 { Lex.interval_list.push_back((yyvsp[(3) - (3)].string)); }
08868 break;
08869
08870 case 277:
08871
08872
08873 #line 1821 "drizzled/sql_yacc.yy"
08874 {
08875 statement::AlterTable *statement= new statement::AlterTable(YYSession, (yyvsp[(5) - (5)].table));
08876 Lex.statement= statement;
08877 Lex.duplicates= DUP_ERROR;
08878 if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL, TL_OPTION_UPDATING))
08879 {
08880 DRIZZLE_YYABORT;
08881 }
08882
08883 Lex.col_list.clear();
08884 Lex.select_lex.init_order();
08885 Lex.select_lex.db= ((TableList*) Lex.select_lex.table_list.first)->getSchemaName();
08886 }
08887 break;
08888
08889 case 278:
08890
08891
08892 #line 1835 "drizzled/sql_yacc.yy"
08893 {}
08894 break;
08895
08896 case 279:
08897
08898
08899 #line 1837 "drizzled/sql_yacc.yy"
08900 {
08901 Lex.statement= new statement::AlterSchema(YYSession);
08902 }
08903 break;
08904
08905 case 280:
08906
08907
08908 #line 1841 "drizzled/sql_yacc.yy"
08909 {
08910 Lex.name= (yyvsp[(3) - (5)].lex_str);
08911 if (not Lex.name.data())
08912 {
08913 str_ref db = Lex.session->copy_db_to();
08914 if (db.empty())
08915 DRIZZLE_YYABORT;
08916 Lex.name.assign(db.data(), db.size());
08917 }
08918 }
08919 break;
08920
08921 case 282:
08922
08923
08924 #line 1856 "drizzled/sql_yacc.yy"
08925 {
08926 message::AlterTable::AlterTableOperation *alter_operation;
08927 alter_operation= Lex.alter_table()->add_operations();
08928 alter_operation->set_operation(message::AlterTable::AlterTableOperation::DISCARD_TABLESPACE);
08929 }
08930 break;
08931
08932 case 283:
08933
08934
08935 #line 1862 "drizzled/sql_yacc.yy"
08936 {
08937 message::AlterTable::AlterTableOperation *alter_operation;
08938 alter_operation= Lex.alter_table()->add_operations();
08939 alter_operation->set_operation(message::AlterTable::AlterTableOperation::IMPORT_TABLESPACE);
08940 }
08941 break;
08942
08943 case 285:
08944
08945
08946 #line 1872 "drizzled/sql_yacc.yy"
08947 {
08948 Lex.alter_table()->set_build_method(message::AlterTable::BUILD_DEFAULT);
08949 }
08950 break;
08951
08952 case 286:
08953
08954
08955 #line 1876 "drizzled/sql_yacc.yy"
08956 {
08957 Lex.alter_table()->set_build_method(message::AlterTable::BUILD_ONLINE);
08958 }
08959 break;
08960
08961 case 287:
08962
08963
08964 #line 1880 "drizzled/sql_yacc.yy"
08965 {
08966 Lex.alter_table()->set_build_method(message::AlterTable::BUILD_OFFLINE);
08967 }
08968 break;
08969
08970 case 290:
08971
08972
08973 #line 1892 "drizzled/sql_yacc.yy"
08974 {
08975 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08976
08977 statement->change=0;
08978 statement->alter_info.flags.set(ALTER_ADD_COLUMN);
08979 }
08980 break;
08981
08982 case 291:
08983
08984
08985 #line 1901 "drizzled/sql_yacc.yy"
08986 { }
08987 break;
08988
08989 case 292:
08990
08991
08992 #line 1903 "drizzled/sql_yacc.yy"
08993 {
08994 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08995
08996 statement->alter_info.flags.set(ALTER_ADD_INDEX);
08997 }
08998 break;
08999
09000 case 293:
09001
09002
09003 #line 1909 "drizzled/sql_yacc.yy"
09004 {
09005 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09006
09007 statement->alter_info.flags.set(ALTER_ADD_COLUMN);
09008 statement->alter_info.flags.set(ALTER_ADD_INDEX);
09009 }
09010 break;
09011
09012 case 294:
09013
09014
09015 #line 1916 "drizzled/sql_yacc.yy"
09016 {
09017 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09018 statement->change= (yyvsp[(3) - (3)].lex_str).data();
09019 statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
09020 }
09021 break;
09022
09023 case 296:
09024
09025
09026 #line 1923 "drizzled/sql_yacc.yy"
09027 {
09028 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09029 Lex.length= Lex.dec=0;
09030 Lex.type= 0;
09031 statement->default_value= statement->on_update_value= 0;
09032 statement->comment= null_lex_string();
09033 Lex.charset= NULL;
09034 statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
09035 statement->column_format= COLUMN_FORMAT_TYPE_DEFAULT;
09036
09037 Lex.setField(NULL);
09038 }
09039 break;
09040
09041 case 297:
09042
09043
09044 #line 1936 "drizzled/sql_yacc.yy"
09045 {
09046 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09047
09048 if (add_field_to_list(Lex.session, (yyvsp[(3) - (6)].lex_str),
09049 (enum enum_field_types) (yyvsp[(5) - (6)].field_val),
09050 Lex.length, Lex.dec, Lex.type,
09051 statement->column_format,
09052 statement->default_value,
09053 statement->on_update_value,
09054 statement->comment,
09055 (yyvsp[(3) - (6)].lex_str).data(), &Lex.interval_list, Lex.charset))
09056 DRIZZLE_YYABORT;
09057 }
09058 break;
09059
09060 case 299:
09061
09062
09063 #line 1951 "drizzled/sql_yacc.yy"
09064 {
09065 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09066
09067 statement->alter_info.flags.set(ALTER_DROP_COLUMN);
09068 message::AlterTable::AlterTableOperation *operation;
09069 operation= Lex.alter_table()->add_operations();
09070 operation->set_operation(message::AlterTable::AlterTableOperation::DROP_COLUMN);
09071 operation->set_drop_name((yyvsp[(3) - (3)].lex_str).data());
09072 }
09073 break;
09074
09075 case 300:
09076
09077
09078 #line 1961 "drizzled/sql_yacc.yy"
09079 {
09080 parser::buildAddAlterDropIndex(&Lex, (yyvsp[(4) - (4)].lex_str).data(), true);
09081 }
09082 break;
09083
09084 case 301:
09085
09086
09087 #line 1965 "drizzled/sql_yacc.yy"
09088 {
09089 parser::buildAddAlterDropIndex(&Lex, "PRIMARY");
09090 }
09091 break;
09092
09093 case 302:
09094
09095
09096 #line 1969 "drizzled/sql_yacc.yy"
09097 {
09098 parser::buildAddAlterDropIndex(&Lex, (yyvsp[(3) - (3)].lex_str).data());
09099 }
09100 break;
09101
09102 case 303:
09103
09104
09105 #line 1973 "drizzled/sql_yacc.yy"
09106 {
09107 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09108
09109 statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
09110
09111 message::AlterTable::AlterKeysOnOff *alter_keys_operation;
09112 alter_keys_operation= Lex.alter_table()->mutable_alter_keys_onoff();
09113 alter_keys_operation->set_enable(false);
09114 }
09115 break;
09116
09117 case 304:
09118
09119
09120 #line 1983 "drizzled/sql_yacc.yy"
09121 {
09122 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09123
09124 statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
09125 message::AlterTable::AlterKeysOnOff *alter_keys_operation;
09126 alter_keys_operation= Lex.alter_table()->mutable_alter_keys_onoff();
09127 alter_keys_operation->set_enable(true);
09128 }
09129 break;
09130
09131 case 305:
09132
09133
09134 #line 1992 "drizzled/sql_yacc.yy"
09135 {
09136 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09137
09138 statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (6)].lex_str).data(),(yyvsp[(6) - (6)].item)));
09139 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
09140 }
09141 break;
09142
09143 case 306:
09144
09145
09146 #line 1999 "drizzled/sql_yacc.yy"
09147 {
09148 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09149
09150 statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (5)].lex_str).data(), NULL));
09151 statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
09152 }
09153 break;
09154
09155 case 307:
09156
09157
09158 #line 2006 "drizzled/sql_yacc.yy"
09159 {
09160 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09161 Lex.select_lex.db= (yyvsp[(3) - (3)].table)->db.data();
09162 if (not Lex.select_lex.db)
09163 {
09164 str_ref db = Lex.session->copy_db_to();
09165 if (db.empty())
09166 DRIZZLE_YYABORT;
09167 Lex.select_lex.db = db.data();
09168 }
09169
09170 if (check_table_name((yyvsp[(3) - (3)].table)->table))
09171 {
09172 my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.data());
09173 DRIZZLE_YYABORT;
09174 }
09175
09176 Lex.name= (yyvsp[(3) - (3)].table)->table;
09177 statement->alter_info.flags.set(ALTER_RENAME);
09178
09179 message::AlterTable::RenameTable *rename_operation;
09180 rename_operation= Lex.alter_table()->mutable_rename();
09181 rename_operation->set_to_schema(Lex.select_lex.db);
09182 rename_operation->set_to_name(Lex.name.data());
09183 }
09184 break;
09185
09186 case 308:
09187
09188
09189 #line 2032 "drizzled/sql_yacc.yy"
09190 {
09191 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09192
09193 statement->create_info().table_charset=
09194 statement->create_info().default_table_charset= (yyvsp[(3) - (3)].charset);
09195 statement->create_info().used_fields|= (HA_CREATE_USED_CHARSET |
09196 HA_CREATE_USED_DEFAULT_CHARSET);
09197 statement->alter_info.flags.set(ALTER_CONVERT);
09198 }
09199 break;
09200
09201 case 309:
09202
09203
09204 #line 2042 "drizzled/sql_yacc.yy"
09205 {
09206 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09207
09208 statement->alter_info.flags.set(ALTER_OPTIONS);
09209 }
09210 break;
09211
09212 case 310:
09213
09214
09215 #line 2048 "drizzled/sql_yacc.yy"
09216 {
09217 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09218
09219 statement->alter_info.flags.set(ALTER_FORCE);
09220 }
09221 break;
09222
09223 case 311:
09224
09225
09226 #line 2054 "drizzled/sql_yacc.yy"
09227 {
09228 statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09229
09230 statement->alter_info.flags.set(ALTER_ORDER);
09231 }
09232 break;
09233
09234 case 312:
09235
09236
09237 #line 2062 "drizzled/sql_yacc.yy"
09238 {}
09239 break;
09240
09241 case 313:
09242
09243
09244 #line 2063 "drizzled/sql_yacc.yy"
09245 {}
09246 break;
09247
09248 case 314:
09249
09250
09251 #line 2067 "drizzled/sql_yacc.yy"
09252 { Lex.ignore= 0;}
09253 break;
09254
09255 case 315:
09256
09257
09258 #line 2068 "drizzled/sql_yacc.yy"
09259 { Lex.ignore= 1;}
09260 break;
09261
09262 case 316:
09263
09264
09265 #line 2072 "drizzled/sql_yacc.yy"
09266 {}
09267 break;
09268
09269 case 317:
09270
09271
09272 #line 2074 "drizzled/sql_yacc.yy"
09273 {
09274 parser::storeAlterColumnPosition(&Lex, (yyvsp[(2) - (2)].lex_str).data());
09275 }
09276 break;
09277
09278 case 318:
09279
09280
09281 #line 2078 "drizzled/sql_yacc.yy"
09282 {
09283 parser::storeAlterColumnPosition(&Lex, first_keyword);
09284 }
09285 break;
09286
09287 case 319:
09288
09289
09290 #line 2084 "drizzled/sql_yacc.yy"
09291 {}
09292 break;
09293
09294 case 320:
09295
09296
09297 #line 2085 "drizzled/sql_yacc.yy"
09298 {}
09299 break;
09300
09301 case 321:
09302
09303
09304 #line 2086 "drizzled/sql_yacc.yy"
09305 {}
09306 break;
09307
09308 case 322:
09309
09310
09311 #line 2091 "drizzled/sql_yacc.yy"
09312 {
09313 Lex.statement= new statement::StartTransaction(YYSession, (start_transaction_option_t)(yyvsp[(3) - (3)].num));
09314 }
09315 break;
09316
09317 case 323:
09318
09319
09320 #line 2097 "drizzled/sql_yacc.yy"
09321 { (yyval.num) = START_TRANS_NO_OPTIONS; }
09322 break;
09323
09324 case 324:
09325
09326
09327 #line 2099 "drizzled/sql_yacc.yy"
09328 {
09329 (yyval.num)= START_TRANS_OPT_WITH_CONS_SNAPSHOT;
09330 }
09331 break;
09332
09333 case 325:
09334
09335
09336 #line 2106 "drizzled/sql_yacc.yy"
09337 {
09338 Lex.statement= new statement::Analyze(YYSession);
09339 }
09340 break;
09341
09342 case 326:
09343
09344
09345 #line 2110 "drizzled/sql_yacc.yy"
09346 {}
09347 break;
09348
09349 case 327:
09350
09351
09352 #line 2115 "drizzled/sql_yacc.yy"
09353 {
09354 Lex.statement= new statement::Check(YYSession);
09355 }
09356 break;
09357
09358 case 328:
09359
09360
09361 #line 2119 "drizzled/sql_yacc.yy"
09362 {}
09363 break;
09364
09365 case 329:
09366
09367
09368 #line 2124 "drizzled/sql_yacc.yy"
09369 {
09370 Lex.statement= new statement::RenameTable(YYSession);
09371 }
09372 break;
09373
09374 case 330:
09375
09376
09377 #line 2128 "drizzled/sql_yacc.yy"
09378 {}
09379 break;
09380
09381 case 333:
09382
09383
09384 #line 2138 "drizzled/sql_yacc.yy"
09385 {
09386 Select_Lex *sl= Lex.current_select;
09387 if (!sl->add_table_to_list(Lex.session, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
09388 TL_IGNORE) ||
09389 !sl->add_table_to_list(Lex.session, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
09390 TL_IGNORE))
09391 DRIZZLE_YYABORT;
09392 }
09393 break;
09394
09395 case 334:
09396
09397
09398 #line 2155 "drizzled/sql_yacc.yy"
09399 {
09400 Lex.statement= new statement::Select(YYSession);
09401 }
09402 break;
09403
09404 case 337:
09405
09406
09407 #line 2168 "drizzled/sql_yacc.yy"
09408 {
09409 if (parser::setup_select_in_parentheses(YYSession, &Lex))
09410 DRIZZLE_YYABORT;
09411 }
09412 break;
09413
09414 case 339:
09415
09416
09417 #line 2178 "drizzled/sql_yacc.yy"
09418 {
09419 if (parser::setup_select_in_parentheses(YYSession, &Lex))
09420 DRIZZLE_YYABORT;
09421 }
09422 break;
09423
09424 case 341:
09425
09426
09427 #line 2187 "drizzled/sql_yacc.yy"
09428 {
09429 Select_Lex * sel= Lex.current_select;
09430 if (Lex.current_select->set_braces(0))
09431 {
09432 parser::my_parse_error(YYSession->m_lip);
09433 DRIZZLE_YYABORT;
09434 }
09435 if (sel->linkage == UNION_TYPE &&
09436 sel->master_unit()->first_select()->braces)
09437 {
09438 parser::my_parse_error(YYSession->m_lip);
09439 DRIZZLE_YYABORT;
09440 }
09441 }
09442 break;
09443
09444 case 343:
09445
09446
09447 #line 2205 "drizzled/sql_yacc.yy"
09448 {
09449 Select_Lex *sel= Lex.current_select;
09450 if (sel->linkage != UNION_TYPE)
09451 init_select(&Lex);
09452 Lex.current_select->parsing_place= SELECT_LIST;
09453 }
09454 break;
09455
09456 case 344:
09457
09458
09459 #line 2212 "drizzled/sql_yacc.yy"
09460 {
09461 Lex.current_select->parsing_place= NO_MATTER;
09462 }
09463 break;
09464
09465 case 346:
09466
09467
09468 #line 2219 "drizzled/sql_yacc.yy"
09469 {}
09470 break;
09471
09472 case 351:
09473
09474
09475 #line 2229 "drizzled/sql_yacc.yy"
09476 {
09477 Lex.current_select->context.table_list=
09478 Lex.current_select->context.first_name_resolution_table=
09479 reinterpret_cast<TableList *>(Lex.current_select->table_list.first);
09480 }
09481 break;
09482
09483 case 353:
09484
09485
09486 #line 2239 "drizzled/sql_yacc.yy"
09487 { }
09488 break;
09489
09490 case 356:
09491
09492
09493 #line 2249 "drizzled/sql_yacc.yy"
09494 {
09495 Lex.current_select->options|= SELECT_DISTINCT;
09496
09497 if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09498 {
09499 my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09500 DRIZZLE_YYABORT;
09501 }
09502 }
09503 break;
09504
09505 case 357:
09506
09507
09508 #line 2259 "drizzled/sql_yacc.yy"
09509 {
09510 Lex.current_select->options|= SELECT_ALL;
09511
09512 if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09513 {
09514 my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09515 DRIZZLE_YYABORT;
09516 }
09517 }
09518 break;
09519
09520 case 358:
09521
09522
09523 #line 2272 "drizzled/sql_yacc.yy"
09524 {
09525 Lex.current_select->options|= SELECT_SMALL_RESULT;
09526
09527 if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09528 {
09529 my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09530 DRIZZLE_YYABORT;
09531 }
09532 }
09533 break;
09534
09535 case 359:
09536
09537
09538 #line 2282 "drizzled/sql_yacc.yy"
09539 {
09540 Lex.current_select->options|= SELECT_BIG_RESULT;
09541
09542 if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09543 {
09544 my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09545 DRIZZLE_YYABORT;
09546 }
09547 }
09548 break;
09549
09550 case 360:
09551
09552
09553 #line 2295 "drizzled/sql_yacc.yy"
09554 { Lex.current_select->options|= SELECT_STRAIGHT_JOIN; }
09555 break;
09556
09557 case 361:
09558
09559
09560 #line 2297 "drizzled/sql_yacc.yy"
09561 {
09562 if (check_simple_select(YYSession))
09563 DRIZZLE_YYABORT;
09564 Lex.current_select->options|= OPTION_BUFFER_RESULT;
09565 }
09566 break;
09567
09568 case 362:
09569
09570
09571 #line 2303 "drizzled/sql_yacc.yy"
09572 { }
09573 break;
09574
09575 case 363:
09576
09577
09578 #line 2305 "drizzled/sql_yacc.yy"
09579 { }
09580 break;
09581
09582 case 364:
09583
09584
09585 #line 2307 "drizzled/sql_yacc.yy"
09586 {
09587 if (check_simple_select(YYSession))
09588 DRIZZLE_YYABORT;
09589 Lex.current_select->options|= OPTION_FOUND_ROWS;
09590 }
09591 break;
09592
09593 case 366:
09594
09595
09596 #line 2317 "drizzled/sql_yacc.yy"
09597 {
09598 Lex.current_select->set_lock_for_tables(TL_WRITE);
09599 }
09600 break;
09601
09602 case 367:
09603
09604
09605 #line 2321 "drizzled/sql_yacc.yy"
09606 {
09607 Lex.current_select->
09608 set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
09609 }
09610 break;
09611
09612 case 370:
09613
09614
09615 #line 2331 "drizzled/sql_yacc.yy"
09616 {
09617 YYSession->add_item_to_list( new Item_field(&YYSession->lex().current_select->context, NULL, NULL, "*"));
09618 YYSession->lex().current_select->with_wild++;
09619 }
09620 break;
09621
09622 case 371:
09623
09624
09625 #line 2339 "drizzled/sql_yacc.yy"
09626 {
09627 YYSession->add_item_to_list((yyvsp[(2) - (3)].item));
09628 }
09629 break;
09630
09631 case 372:
09632
09633
09634 #line 2343 "drizzled/sql_yacc.yy"
09635 {
09636 assert((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));
09637
09638 YYSession->add_item_to_list((yyvsp[(2) - (4)].item));
09639
09640 if ((yyvsp[(4) - (4)].lex_str).data())
09641 {
09642 (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
09643 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).data(), (yyvsp[(4) - (4)].lex_str).size(), system_charset_info);
09644 }
09645 else if (!(yyvsp[(2) - (4)].item)->name)
09646 {
09647 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
09648 }
09649 }
09650 break;
09651
09652 case 373:
09653
09654
09655 #line 2361 "drizzled/sql_yacc.yy"
09656 {
09657 Lex_input_stream *lip= YYSession->m_lip;
09658 (yyval.simple_string)= lip->get_cpp_tok_start();
09659 }
09660 break;
09661
09662 case 374:
09663
09664
09665 #line 2368 "drizzled/sql_yacc.yy"
09666 {
09667 Lex_input_stream *lip= YYSession->m_lip;
09668 (yyval.simple_string)= lip->get_cpp_tok_end();
09669 }
09670 break;
09671
09672 case 375:
09673
09674
09675 #line 2375 "drizzled/sql_yacc.yy"
09676 { (yyval.lex_str)= null_lex_string();}
09677 break;
09678
09679 case 376:
09680
09681
09682 #line 2376 "drizzled/sql_yacc.yy"
09683 { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09684 break;
09685
09686 case 377:
09687
09688
09689 #line 2377 "drizzled/sql_yacc.yy"
09690 { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09691 break;
09692
09693 case 378:
09694
09695
09696 #line 2378 "drizzled/sql_yacc.yy"
09697 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09698 break;
09699
09700 case 379:
09701
09702
09703 #line 2379 "drizzled/sql_yacc.yy"
09704 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09705 break;
09706
09707 case 380:
09708
09709
09710 #line 2383 "drizzled/sql_yacc.yy"
09711 {}
09712 break;
09713
09714 case 381:
09715
09716
09717 #line 2384 "drizzled/sql_yacc.yy"
09718 {}
09719 break;
09720
09721 case 382:
09722
09723
09724 #line 2390 "drizzled/sql_yacc.yy"
09725 {
09726
09727
09728
09729
09730
09731
09732
09733
09734
09735 Item_cond_or *item1;
09736 Item_cond_or *item3;
09737 if (is_cond_or((yyvsp[(1) - (3)].item)))
09738 {
09739 item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
09740 if (is_cond_or((yyvsp[(3) - (3)].item)))
09741 {
09742 item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09743
09744
09745
09746 item3->add_at_head(item1->argument_list());
09747 (yyval.item) = (yyvsp[(3) - (3)].item);
09748 }
09749 else
09750 {
09751
09752
09753
09754 item1->add((yyvsp[(3) - (3)].item));
09755 (yyval.item) = (yyvsp[(1) - (3)].item);
09756 }
09757 }
09758 else if (is_cond_or((yyvsp[(3) - (3)].item)))
09759 {
09760 item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09761
09762
09763
09764 item3->add_at_head((yyvsp[(1) - (3)].item));
09765 (yyval.item) = (yyvsp[(3) - (3)].item);
09766 }
09767 else
09768 {
09769
09770 (yyval.item) = new (YYSession->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09771 }
09772 }
09773 break;
09774
09775 case 383:
09776
09777
09778 #line 2439 "drizzled/sql_yacc.yy"
09779 {
09780
09781 (yyval.item) = new (YYSession->mem_root) Item_cond_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09782 }
09783 break;
09784
09785 case 384:
09786
09787
09788 #line 2444 "drizzled/sql_yacc.yy"
09789 {
09790
09791 Item_cond_and *item1;
09792 Item_cond_and *item3;
09793 if (is_cond_and((yyvsp[(1) - (3)].item)))
09794 {
09795 item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
09796 if (is_cond_and((yyvsp[(3) - (3)].item)))
09797 {
09798 item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09799
09800
09801
09802 item3->add_at_head(item1->argument_list());
09803 (yyval.item) = (yyvsp[(3) - (3)].item);
09804 }
09805 else
09806 {
09807
09808
09809
09810 item1->add((yyvsp[(3) - (3)].item));
09811 (yyval.item) = (yyvsp[(1) - (3)].item);
09812 }
09813 }
09814 else if (is_cond_and((yyvsp[(3) - (3)].item)))
09815 {
09816 item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09817
09818
09819
09820 item3->add_at_head((yyvsp[(1) - (3)].item));
09821 (yyval.item) = (yyvsp[(3) - (3)].item);
09822 }
09823 else
09824 {
09825
09826 (yyval.item) = new (YYSession->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09827 }
09828 }
09829 break;
09830
09831 case 385:
09832
09833
09834 #line 2485 "drizzled/sql_yacc.yy"
09835 { (yyval.item)= negate_expression(YYSession, (yyvsp[(2) - (2)].item)); }
09836 break;
09837
09838 case 386:
09839
09840
09841 #line 2487 "drizzled/sql_yacc.yy"
09842 {
09843 (yyval.item)= new (YYSession->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
09844 }
09845 break;
09846
09847 case 387:
09848
09849
09850 #line 2491 "drizzled/sql_yacc.yy"
09851 {
09852 (yyval.item)= new (YYSession->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
09853 }
09854 break;
09855
09856 case 388:
09857
09858
09859 #line 2495 "drizzled/sql_yacc.yy"
09860 {
09861 (yyval.item)= new (YYSession->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
09862 }
09863 break;
09864
09865 case 389:
09866
09867
09868 #line 2499 "drizzled/sql_yacc.yy"
09869 {
09870 (yyval.item)= new (YYSession->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
09871 }
09872 break;
09873
09874 case 390:
09875
09876
09877 #line 2503 "drizzled/sql_yacc.yy"
09878 {
09879 (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09880 }
09881 break;
09882
09883 case 391:
09884
09885
09886 #line 2507 "drizzled/sql_yacc.yy"
09887 {
09888 (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09889 }
09890 break;
09891
09892 case 393:
09893
09894
09895 #line 2515 "drizzled/sql_yacc.yy"
09896 {
09897 (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09898 }
09899 break;
09900
09901 case 394:
09902
09903
09904 #line 2519 "drizzled/sql_yacc.yy"
09905 {
09906 (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09907 }
09908 break;
09909
09910 case 395:
09911
09912
09913 #line 2523 "drizzled/sql_yacc.yy"
09914 {
09915 (yyval.item)= new Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09916 }
09917 break;
09918
09919 case 396:
09920
09921
09922 #line 2527 "drizzled/sql_yacc.yy"
09923 {
09924 (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09925 }
09926 break;
09927
09928 case 397:
09929
09930
09931 #line 2531 "drizzled/sql_yacc.yy"
09932 {
09933 (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
09934 }
09935 break;
09936
09937 case 399:
09938
09939
09940 #line 2539 "drizzled/sql_yacc.yy"
09941 {
09942 (yyval.item)= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
09943 }
09944 break;
09945
09946 case 400:
09947
09948
09949 #line 2543 "drizzled/sql_yacc.yy"
09950 {
09951 Item *item= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
09952 (yyval.item)= negate_expression(YYSession, item);
09953 }
09954 break;
09955
09956 case 401:
09957
09958
09959 #line 2548 "drizzled/sql_yacc.yy"
09960 {
09961 (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
09962 }
09963 break;
09964
09965 case 402:
09966
09967
09968 #line 2552 "drizzled/sql_yacc.yy"
09969 {
09970 (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
09971 (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
09972 (yyval.item)= new (YYSession->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
09973 }
09974 break;
09975
09976 case 403:
09977
09978
09979 #line 2558 "drizzled/sql_yacc.yy"
09980 {
09981 (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
09982 }
09983 break;
09984
09985 case 404:
09986
09987
09988 #line 2562 "drizzled/sql_yacc.yy"
09989 {
09990 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
09991 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
09992 Item_func_in *item = new (YYSession->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
09993 item->negate();
09994 (yyval.item)= item;
09995 }
09996 break;
09997
09998 case 405:
09999
10000
10001 #line 2570 "drizzled/sql_yacc.yy"
10002 {
10003 (yyval.item)= new Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
10004 }
10005 break;
10006
10007 case 406:
10008
10009
10010 #line 2574 "drizzled/sql_yacc.yy"
10011 {
10012 Item_func_between *item= new Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
10013 item->negate();
10014 (yyval.item)= item;
10015 }
10016 break;
10017
10018 case 407:
10019
10020
10021 #line 2580 "drizzled/sql_yacc.yy"
10022 {
10023 (yyval.item)= new Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex.escape_used);
10024 }
10025 break;
10026
10027 case 408:
10028
10029
10030 #line 2584 "drizzled/sql_yacc.yy"
10031 {
10032 (yyval.item)= new Item_func_not(new Item_func_like((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].item), Lex.escape_used));
10033 }
10034 break;
10035
10036 case 409:
10037
10038
10039 #line 2588 "drizzled/sql_yacc.yy"
10040 {
10041 List<Item> *args= new (YYSession->mem_root) List<Item>;
10042 args->push_back((yyvsp[(1) - (3)].item));
10043 args->push_back((yyvsp[(3) - (3)].item));
10044 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
10045 {
10046 DRIZZLE_YYABORT;
10047 }
10048 }
10049 break;
10050
10051 case 410:
10052
10053
10054 #line 2598 "drizzled/sql_yacc.yy"
10055 {
10056 List<Item> *args= new (YYSession->mem_root) List<Item>;
10057 args->push_back((yyvsp[(1) - (4)].item));
10058 args->push_back((yyvsp[(4) - (4)].item));
10059 args->push_back(new (YYSession->mem_root) Item_int(1));
10060 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
10061 {
10062 DRIZZLE_YYABORT;
10063 }
10064 }
10065 break;
10066
10067 case 412:
10068
10069
10070 #line 2613 "drizzled/sql_yacc.yy"
10071 {
10072 (yyval.item)= new function::bit::Or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10073 }
10074 break;
10075
10076 case 413:
10077
10078
10079 #line 2617 "drizzled/sql_yacc.yy"
10080 {
10081 (yyval.item)= new function::bit::And((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10082 }
10083 break;
10084
10085 case 414:
10086
10087
10088 #line 2621 "drizzled/sql_yacc.yy"
10089 {
10090 (yyval.item)= new function::bit::ShiftRight((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10091 }
10092 break;
10093
10094 case 415:
10095
10096
10097 #line 2625 "drizzled/sql_yacc.yy"
10098 {
10099 (yyval.item)= new function::bit::ShiftLeft((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10100 }
10101 break;
10102
10103 case 416:
10104
10105
10106 #line 2629 "drizzled/sql_yacc.yy"
10107 {
10108 (yyval.item)= new Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10109 }
10110 break;
10111
10112 case 417:
10113
10114
10115 #line 2633 "drizzled/sql_yacc.yy"
10116 {
10117 (yyval.item)= new Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10118 }
10119 break;
10120
10121 case 418:
10122
10123
10124 #line 2637 "drizzled/sql_yacc.yy"
10125 {
10126 (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
10127 }
10128 break;
10129
10130 case 419:
10131
10132
10133 #line 2641 "drizzled/sql_yacc.yy"
10134 {
10135 (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
10136 }
10137 break;
10138
10139 case 420:
10140
10141
10142 #line 2645 "drizzled/sql_yacc.yy"
10143 {
10144 (yyval.item)= new Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10145 }
10146 break;
10147
10148 case 421:
10149
10150
10151 #line 2649 "drizzled/sql_yacc.yy"
10152 {
10153 (yyval.item)= new Item_func_div(YYSession,(yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10154 }
10155 break;
10156
10157 case 422:
10158
10159
10160 #line 2653 "drizzled/sql_yacc.yy"
10161 {
10162 (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10163 }
10164 break;
10165
10166 case 423:
10167
10168
10169 #line 2657 "drizzled/sql_yacc.yy"
10170 {
10171 (yyval.item)= new Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10172 }
10173 break;
10174
10175 case 424:
10176
10177
10178 #line 2661 "drizzled/sql_yacc.yy"
10179 {
10180 (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10181 }
10182 break;
10183
10184 case 425:
10185
10186
10187 #line 2665 "drizzled/sql_yacc.yy"
10188 {
10189 (yyval.item)= new (YYSession->mem_root) function::bit::Xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10190 }
10191 break;
10192
10193 case 427:
10194
10195
10196 #line 2672 "drizzled/sql_yacc.yy"
10197 { (yyval.boolfunc2creator) = &comp_eq_creator; }
10198 break;
10199
10200 case 428:
10201
10202
10203 #line 2673 "drizzled/sql_yacc.yy"
10204 { (yyval.boolfunc2creator) = &comp_ge_creator; }
10205 break;
10206
10207 case 429:
10208
10209
10210 #line 2674 "drizzled/sql_yacc.yy"
10211 { (yyval.boolfunc2creator) = &comp_gt_creator; }
10212 break;
10213
10214 case 430:
10215
10216
10217 #line 2675 "drizzled/sql_yacc.yy"
10218 { (yyval.boolfunc2creator) = &comp_le_creator; }
10219 break;
10220
10221 case 431:
10222
10223
10224 #line 2676 "drizzled/sql_yacc.yy"
10225 { (yyval.boolfunc2creator) = &comp_lt_creator; }
10226 break;
10227
10228 case 432:
10229
10230
10231 #line 2677 "drizzled/sql_yacc.yy"
10232 { (yyval.boolfunc2creator) = &comp_ne_creator; }
10233 break;
10234
10235 case 433:
10236
10237
10238 #line 2681 "drizzled/sql_yacc.yy"
10239 { (yyval.num) = 1; }
10240 break;
10241
10242 case 434:
10243
10244
10245 #line 2682 "drizzled/sql_yacc.yy"
10246 { (yyval.num) = 0; }
10247 break;
10248
10249 case 440:
10250
10251
10252 #line 2692 "drizzled/sql_yacc.yy"
10253 {
10254 Item *i1= new (YYSession->mem_root) Item_string((yyvsp[(3) - (3)].lex_str), YYSession->charset());
10255 (yyval.item)= new (YYSession->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
10256 }
10257 break;
10258
10259 case 443:
10260
10261
10262 #line 2699 "drizzled/sql_yacc.yy"
10263 {
10264 Lex.setSumExprUsed();
10265 }
10266 break;
10267
10268 case 444:
10269
10270
10271 #line 2703 "drizzled/sql_yacc.yy"
10272 {
10273 (yyval.item)= new (YYSession->mem_root) Item_func_concat(*YYSession, (yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10274 }
10275 break;
10276
10277 case 445:
10278
10279
10280 #line 2706 "drizzled/sql_yacc.yy"
10281 { (yyval.item)= (yyvsp[(2) - (2)].item); }
10282 break;
10283
10284 case 446:
10285
10286
10287 #line 2708 "drizzled/sql_yacc.yy"
10288 {
10289 (yyval.item)= new (YYSession->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
10290 }
10291 break;
10292
10293 case 447:
10294
10295
10296 #line 2712 "drizzled/sql_yacc.yy"
10297 {
10298 (yyval.item)= new (YYSession->mem_root) function::bit::Neg((yyvsp[(2) - (2)].item));
10299 }
10300 break;
10301
10302 case 448:
10303
10304
10305 #line 2716 "drizzled/sql_yacc.yy"
10306 {
10307 (yyval.item)= new (YYSession->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
10308 }
10309 break;
10310
10311 case 449:
10312
10313
10314 #line 2719 "drizzled/sql_yacc.yy"
10315 { (yyval.item)= (yyvsp[(2) - (3)].item); }
10316 break;
10317
10318 case 450:
10319
10320
10321 #line 2721 "drizzled/sql_yacc.yy"
10322 {
10323 (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
10324 (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
10325 }
10326 break;
10327
10328 case 451:
10329
10330
10331 #line 2726 "drizzled/sql_yacc.yy"
10332 {
10333 (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
10334 (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
10335 }
10336 break;
10337
10338 case 452:
10339
10340
10341 #line 2731 "drizzled/sql_yacc.yy"
10342 {
10343 (yyval.item)= new (YYSession->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
10344 }
10345 break;
10346
10347 case 453:
10348
10349
10350 #line 2734 "drizzled/sql_yacc.yy"
10351 { (yyval.item)= (yyvsp[(3) - (4)].item); }
10352 break;
10353
10354 case 454:
10355
10356
10357 #line 2736 "drizzled/sql_yacc.yy"
10358 {
10359 (yyval.item)= create_func_cast(YYSession, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
10360 &my_charset_bin);
10361 }
10362 break;
10363
10364 case 455:
10365
10366
10367 #line 2741 "drizzled/sql_yacc.yy"
10368 {
10369 (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10370 Lex.charset);
10371 if (!(yyval.item))
10372 DRIZZLE_YYABORT;
10373 }
10374 break;
10375
10376 case 456:
10377
10378
10379 #line 2748 "drizzled/sql_yacc.yy"
10380 { (yyval.item)= new (YYSession->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) ); }
10381 break;
10382
10383 case 457:
10384
10385
10386 #line 2750 "drizzled/sql_yacc.yy"
10387 {
10388 (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10389 Lex.charset);
10390 if (!(yyval.item))
10391 DRIZZLE_YYABORT;
10392 }
10393 break;
10394
10395 case 458:
10396
10397
10398 #line 2757 "drizzled/sql_yacc.yy"
10399 {
10400 (yyval.item)= new (YYSession->mem_root) Item_default_value(Lex.current_context(),
10401 (yyvsp[(3) - (4)].item));
10402 }
10403 break;
10404
10405 case 459:
10406
10407
10408 #line 2762 "drizzled/sql_yacc.yy"
10409 {
10410 (yyval.item)= new (YYSession->mem_root) Item_insert_value(Lex.current_context(),
10411 (yyvsp[(3) - (4)].item));
10412 }
10413 break;
10414
10415 case 460:
10416
10417
10418 #line 2768 "drizzled/sql_yacc.yy"
10419 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0); }
10420 break;
10421
10422 case 461:
10423
10424
10425 #line 2779 "drizzled/sql_yacc.yy"
10426 { (yyval.item)= new (YYSession->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list)); }
10427 break;
10428
10429 case 462:
10430
10431
10432 #line 2781 "drizzled/sql_yacc.yy"
10433 {
10434 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10435 {
10436 DRIZZLE_YYABORT;
10437 }
10438 Lex.setCacheable(false);
10439 }
10440 break;
10441
10442 case 463:
10443
10444
10445 #line 2789 "drizzled/sql_yacc.yy"
10446 { (yyval.item)= new (YYSession->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item)); }
10447 break;
10448
10449 case 464:
10450
10451
10452 #line 2791 "drizzled/sql_yacc.yy"
10453 { (yyval.item)= new (YYSession->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item)); }
10454 break;
10455
10456 case 465:
10457
10458
10459 #line 2793 "drizzled/sql_yacc.yy"
10460 { (yyval.item)= new (YYSession->mem_root) Item_func_hour((yyvsp[(3) - (4)].item)); }
10461 break;
10462
10463 case 466:
10464
10465
10466 #line 2795 "drizzled/sql_yacc.yy"
10467 { (yyval.item)= new (YYSession->mem_root) Item_func_insert(*YYSession, (yyvsp[(3) - (10)].item), (yyvsp[(5) - (10)].item), (yyvsp[(7) - (10)].item), (yyvsp[(9) - (10)].item)); }
10468 break;
10469
10470 case 467:
10471
10472
10473 #line 2797 "drizzled/sql_yacc.yy"
10474 {
10475 List<Item> *list= new (YYSession->mem_root) List<Item>;
10476 list->push_front((yyvsp[(5) - (6)].item));
10477 list->push_front((yyvsp[(3) - (6)].item));
10478 Item_row *item= new (YYSession->mem_root) Item_row(*list);
10479 (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10480 }
10481 break;
10482
10483 case 468:
10484
10485
10486 #line 2805 "drizzled/sql_yacc.yy"
10487 {
10488 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
10489 (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
10490 Item_row *item= new (YYSession->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
10491 (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10492 }
10493 break;
10494
10495 case 469:
10496
10497
10498 #line 2812 "drizzled/sql_yacc.yy"
10499 { (yyval.item)= new (YYSession->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10500 break;
10501
10502 case 470:
10503
10504
10505 #line 2814 "drizzled/sql_yacc.yy"
10506 { (yyval.item)= new (YYSession->mem_root) Item_func_minute((yyvsp[(3) - (4)].item)); }
10507 break;
10508
10509 case 471:
10510
10511
10512 #line 2816 "drizzled/sql_yacc.yy"
10513 { (yyval.item)= new (YYSession->mem_root) Item_func_month((yyvsp[(3) - (4)].item)); }
10514 break;
10515
10516 case 472:
10517
10518
10519 #line 2818 "drizzled/sql_yacc.yy"
10520 { (yyval.item)= new (YYSession->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10521 break;
10522
10523 case 473:
10524
10525
10526 #line 2820 "drizzled/sql_yacc.yy"
10527 { (yyval.item)= new (YYSession->mem_root) Item_func_second((yyvsp[(3) - (4)].item)); }
10528 break;
10529
10530 case 474:
10531
10532
10533 #line 2822 "drizzled/sql_yacc.yy"
10534 { (yyval.item)= new (YYSession->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item)); }
10535 break;
10536
10537 case 475:
10538
10539
10540 #line 2824 "drizzled/sql_yacc.yy"
10541 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(3) - (4)].item)); }
10542 break;
10543
10544 case 476:
10545
10546
10547 #line 2826 "drizzled/sql_yacc.yy"
10548 { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10549 break;
10550
10551 case 477:
10552
10553
10554 #line 2828 "drizzled/sql_yacc.yy"
10555 { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10556 break;
10557
10558 case 478:
10559
10560
10561 #line 2830 "drizzled/sql_yacc.yy"
10562 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10563 break;
10564
10565 case 479:
10566
10567
10568 #line 2832 "drizzled/sql_yacc.yy"
10569 { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item)); }
10570 break;
10571
10572 case 480:
10573
10574
10575 #line 2834 "drizzled/sql_yacc.yy"
10576 { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item)); }
10577 break;
10578
10579 case 481:
10580
10581
10582 #line 2836 "drizzled/sql_yacc.yy"
10583 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item)); }
10584 break;
10585
10586 case 482:
10587
10588
10589 #line 2838 "drizzled/sql_yacc.yy"
10590 { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10591 break;
10592
10593 case 483:
10594
10595
10596 #line 2840 "drizzled/sql_yacc.yy"
10597 {
10598 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10599 {
10600 DRIZZLE_YYABORT;
10601 }
10602 Lex.setCacheable(false);
10603 }
10604 break;
10605
10606 case 484:
10607
10608
10609 #line 2848 "drizzled/sql_yacc.yy"
10610 { (yyval.item)= new (YYSession->mem_root) Item_func_year((yyvsp[(3) - (4)].item)); }
10611 break;
10612
10613 case 485:
10614
10615
10616 #line 2864 "drizzled/sql_yacc.yy"
10617 {
10618 (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10619 INTERVAL_DAY, 0);
10620 }
10621 break;
10622
10623 case 486:
10624
10625
10626 #line 2869 "drizzled/sql_yacc.yy"
10627 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0); }
10628 break;
10629
10630 case 487:
10631
10632
10633 #line 2871 "drizzled/sql_yacc.yy"
10634 {
10635 (yyval.item)= new (YYSession->mem_root) Item_func_curdate_local();
10636 Lex.setCacheable(false);
10637 }
10638 break;
10639
10640 case 488:
10641
10642
10643 #line 2876 "drizzled/sql_yacc.yy"
10644 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0); }
10645 break;
10646
10647 case 489:
10648
10649
10650 #line 2878 "drizzled/sql_yacc.yy"
10651 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1); }
10652 break;
10653
10654 case 490:
10655
10656
10657 #line 2880 "drizzled/sql_yacc.yy"
10658 { (yyval.item)=new (YYSession->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item)); }
10659 break;
10660
10661 case 491:
10662
10663
10664 #line 2882 "drizzled/sql_yacc.yy"
10665 {
10666 (yyval.item)= new (YYSession->mem_root) Item_func_now_local();
10667 Lex.setCacheable(false);
10668 }
10669 break;
10670
10671 case 492:
10672
10673
10674 #line 2887 "drizzled/sql_yacc.yy"
10675 {
10676 (yyval.item)= new (YYSession->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
10677 Lex.setCacheable(false);
10678 }
10679 break;
10680
10681 case 493:
10682
10683
10684 #line 2892 "drizzled/sql_yacc.yy"
10685 { (yyval.item) = new (YYSession->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10686 break;
10687
10688 case 494:
10689
10690
10691 #line 2894 "drizzled/sql_yacc.yy"
10692 {
10693 (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10694 INTERVAL_DAY, 1);
10695 }
10696 break;
10697
10698 case 495:
10699
10700
10701 #line 2899 "drizzled/sql_yacc.yy"
10702 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1); }
10703 break;
10704
10705 case 496:
10706
10707
10708 #line 2901 "drizzled/sql_yacc.yy"
10709 {
10710 List<Item> *args= new (YYSession->mem_root) List<Item>;
10711 args->push_back((yyvsp[(3) - (8)].item));
10712 args->push_back((yyvsp[(5) - (8)].item));
10713 args->push_back((yyvsp[(7) - (8)].item));
10714 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10715 {
10716 DRIZZLE_YYABORT;
10717 }
10718 }
10719 break;
10720
10721 case 497:
10722
10723
10724 #line 2912 "drizzled/sql_yacc.yy"
10725 {
10726 List<Item> *args= new (YYSession->mem_root) List<Item>;
10727 args->push_back((yyvsp[(3) - (6)].item));
10728 args->push_back((yyvsp[(5) - (6)].item));
10729 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10730 {
10731 DRIZZLE_YYABORT;
10732 }
10733 }
10734 break;
10735
10736 case 498:
10737
10738
10739 #line 2922 "drizzled/sql_yacc.yy"
10740 {
10741 List<Item> *args= new (YYSession->mem_root) List<Item>;
10742 args->push_back((yyvsp[(3) - (8)].item));
10743 args->push_back((yyvsp[(5) - (8)].item));
10744 args->push_back((yyvsp[(7) - (8)].item));
10745 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10746 {
10747 DRIZZLE_YYABORT;
10748 }
10749 }
10750 break;
10751
10752 case 499:
10753
10754
10755 #line 2933 "drizzled/sql_yacc.yy"
10756 {
10757 List<Item> *args= new (YYSession->mem_root) List<Item>;
10758 args->push_back((yyvsp[(3) - (6)].item));
10759 args->push_back((yyvsp[(5) - (6)].item));
10760 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10761 {
10762 DRIZZLE_YYABORT;
10763 }
10764 }
10765 break;
10766
10767 case 500:
10768
10769
10770 #line 2943 "drizzled/sql_yacc.yy"
10771 {
10772 (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local();
10773 Lex.setCacheable(false);
10774 }
10775 break;
10776
10777 case 501:
10778
10779
10780 #line 2948 "drizzled/sql_yacc.yy"
10781 {
10782 (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
10783 Lex.setCacheable(false);
10784 }
10785 break;
10786
10787 case 502:
10788
10789
10790 #line 2953 "drizzled/sql_yacc.yy"
10791 { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0); }
10792 break;
10793
10794 case 503:
10795
10796
10797 #line 2955 "drizzled/sql_yacc.yy"
10798 { (yyval.item)= new (YYSession->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st)); }
10799 break;
10800
10801 case 504:
10802
10803
10804 #line 2957 "drizzled/sql_yacc.yy"
10805 {
10806 (yyval.item)= new (YYSession->mem_root) Item_func_curdate_utc();
10807 Lex.setCacheable(false);
10808 }
10809 break;
10810
10811 case 505:
10812
10813
10814 #line 2962 "drizzled/sql_yacc.yy"
10815 {
10816 (yyval.item)= new (YYSession->mem_root) Item_func_now_utc();
10817 Lex.setCacheable(false);
10818 }
10819 break;
10820
10821 case 506:
10822
10823
10824 #line 2975 "drizzled/sql_yacc.yy"
10825 { (yyval.item)= new (YYSession->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list)); }
10826 break;
10827
10828 case 507:
10829
10830
10831 #line 2977 "drizzled/sql_yacc.yy"
10832 { (yyval.item)= new (YYSession->mem_root) Item_func_collation((yyvsp[(3) - (4)].item)); }
10833 break;
10834
10835 case 508:
10836
10837
10838 #line 2979 "drizzled/sql_yacc.yy"
10839 {
10840 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "database", NULL)))
10841 {
10842 DRIZZLE_YYABORT;
10843 }
10844 Lex.setCacheable(false);
10845 }
10846 break;
10847
10848 case 509:
10849
10850
10851 #line 2987 "drizzled/sql_yacc.yy"
10852 {
10853 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "catalog", NULL)))
10854 {
10855 DRIZZLE_YYABORT;
10856 }
10857 Lex.setCacheable(false);
10858 }
10859 break;
10860
10861 case 510:
10862
10863
10864 #line 2995 "drizzled/sql_yacc.yy"
10865 {
10866 List<Item> *args= new (YYSession->mem_root) List<Item>;
10867 args->push_back((yyvsp[(3) - (5)].item));
10868
10869 if ((yyvsp[(5) - (5)].boolean))
10870 {
10871 args->push_back(new (YYSession->mem_root) Item_int(1));
10872 }
10873
10874 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "execute", args)))
10875 {
10876 DRIZZLE_YYABORT;
10877 }
10878 }
10879 break;
10880
10881 case 511:
10882
10883
10884 #line 3010 "drizzled/sql_yacc.yy"
10885 {
10886 (yyval.item)= new (YYSession->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
10887 }
10888 break;
10889
10890 case 512:
10891
10892
10893 #line 3014 "drizzled/sql_yacc.yy"
10894 {
10895 List<Item> *args= new (YYSession->mem_root) List<Item>;
10896 args->push_back((yyvsp[(4) - (5)].item));
10897
10898 if ((yyvsp[(2) - (5)].num))
10899 {
10900 args->push_back(new (YYSession->mem_root) Item_uint(1));
10901 }
10902
10903 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "kill", args)))
10904 {
10905 DRIZZLE_YYABORT;
10906 }
10907 }
10908 break;
10909
10910 case 513:
10911
10912
10913 #line 3029 "drizzled/sql_yacc.yy"
10914 { (yyval.item)= new (YYSession->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item)); }
10915 break;
10916
10917 case 514:
10918
10919
10920 #line 3031 "drizzled/sql_yacc.yy"
10921 { (yyval.item) = new (YYSession->mem_root) Item_func_mod( (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10922 break;
10923
10924 case 515:
10925
10926
10927 #line 3033 "drizzled/sql_yacc.yy"
10928 { (yyval.item) = new (YYSession->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item)); }
10929 break;
10930
10931 case 516:
10932
10933
10934 #line 3035 "drizzled/sql_yacc.yy"
10935 { (yyval.item)= new (YYSession->mem_root) Item_func_repeat(*YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10936 break;
10937
10938 case 517:
10939
10940
10941 #line 3037 "drizzled/sql_yacc.yy"
10942 { (yyval.item)= new (YYSession->mem_root) Item_func_replace(*YYSession, (yyvsp[(3) - (8)].item), (yyvsp[(5) - (8)].item), (yyvsp[(7) - (8)].item)); }
10943 break;
10944
10945 case 518:
10946
10947
10948 #line 3039 "drizzled/sql_yacc.yy"
10949 { (yyval.item)= new (YYSession->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1); }
10950 break;
10951
10952 case 519:
10953
10954
10955 #line 3041 "drizzled/sql_yacc.yy"
10956 {
10957 List<Item> *args= new (YYSession->mem_root) List<Item>;
10958 args->push_back((yyvsp[(3) - (4)].item));
10959 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
10960 {
10961 DRIZZLE_YYABORT;
10962 }
10963 }
10964 break;
10965
10966 case 520:
10967
10968
10969 #line 3050 "drizzled/sql_yacc.yy"
10970 {
10971 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "uuid", NULL)))
10972 {
10973 DRIZZLE_YYABORT;
10974 }
10975 Lex.setCacheable(false);
10976 }
10977 break;
10978
10979 case 521:
10980
10981
10982 #line 3058 "drizzled/sql_yacc.yy"
10983 {
10984 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "ipv6", NULL)))
10985 {
10986 DRIZZLE_YYABORT;
10987 }
10988 Lex.setCacheable(false);
10989 }
10990 break;
10991
10992 case 522:
10993
10994
10995 #line 3066 "drizzled/sql_yacc.yy"
10996 {
10997 List<Item> *args= new (YYSession->mem_root) List<Item>;
10998 args->push_back((yyvsp[(3) - (6)].item));
10999 args->push_back((yyvsp[(5) - (6)].item));
11000 if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
11001 {
11002 DRIZZLE_YYABORT;
11003 }
11004 }
11005 break;
11006
11007 case 523:
11008
11009
11010 #line 3087 "drizzled/sql_yacc.yy"
11011 {
11012 const plugin::Function *udf= plugin::Function::get(to_string((yyvsp[(1) - (2)].lex_str)));
11013
11014
11015 (yyval.udf)= udf;
11016 }
11017 break;
11018
11019 case 524:
11020
11021
11022 #line 3094 "drizzled/sql_yacc.yy"
11023 {
11024 Item *item= NULL;
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035 if (Create_func* builder= find_native_function_builder((yyvsp[(1) - (5)].lex_str)))
11036 {
11037 item= builder->create(YYSession, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
11038 }
11039 else if (const plugin::Function* udf= (yyvsp[(3) - (5)].udf))
11040 {
11041 item= Create_udf_func::s_singleton.create(YYSession, udf, (yyvsp[(4) - (5)].item_list));
11042 }
11043 else
11044 {
11045
11046 my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "FUNCTION", (yyvsp[(1) - (5)].lex_str).data());
11047 }
11048
11049 if (not ((yyval.item)= item))
11050 {
11051 DRIZZLE_YYABORT;
11052 }
11053 Lex.setCacheable(false);
11054 }
11055 break;
11056
11057 case 525:
11058
11059
11060 #line 3129 "drizzled/sql_yacc.yy"
11061 { (yyval.item_list)= NULL; }
11062 break;
11063
11064 case 526:
11065
11066
11067 #line 3130 "drizzled/sql_yacc.yy"
11068 { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
11069 break;
11070
11071 case 527:
11072
11073
11074 #line 3135 "drizzled/sql_yacc.yy"
11075 {
11076 (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11077 (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11078 }
11079 break;
11080
11081 case 528:
11082
11083
11084 #line 3140 "drizzled/sql_yacc.yy"
11085 {
11086 (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11087 (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11088 }
11089 break;
11090
11091 case 529:
11092
11093
11094 #line 3148 "drizzled/sql_yacc.yy"
11095 {
11096
11097
11098
11099
11100
11101
11102 if ((yyvsp[(4) - (4)].lex_str).data())
11103 {
11104 (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
11105 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).data(), (yyvsp[(4) - (4)].lex_str).size(), system_charset_info);
11106 }
11107 else
11108 (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
11109 (yyval.item)= (yyvsp[(2) - (4)].item);
11110 }
11111 break;
11112
11113 case 530:
11114
11115
11116 #line 3168 "drizzled/sql_yacc.yy"
11117 { (yyval.item)=new Item_sum_avg((yyvsp[(3) - (4)].item)); }
11118 break;
11119
11120 case 531:
11121
11122
11123 #line 3170 "drizzled/sql_yacc.yy"
11124 { (yyval.item)=new Item_sum_avg_distinct((yyvsp[(4) - (5)].item)); }
11125 break;
11126
11127 case 532:
11128
11129
11130 #line 3172 "drizzled/sql_yacc.yy"
11131 { (yyval.item)=new Item_sum_count(new Item_int(0, 1)); }
11132 break;
11133
11134 case 533:
11135
11136
11137 #line 3174 "drizzled/sql_yacc.yy"
11138 { (yyval.item)=new Item_sum_count((yyvsp[(3) - (4)].item)); }
11139 break;
11140
11141 case 534:
11142
11143
11144 #line 3176 "drizzled/sql_yacc.yy"
11145 { Lex.current_select->in_sum_expr++; }
11146 break;
11147
11148 case 535:
11149
11150
11151 #line 3178 "drizzled/sql_yacc.yy"
11152 { Lex.current_select->in_sum_expr--; }
11153 break;
11154
11155 case 536:
11156
11157
11158 #line 3180 "drizzled/sql_yacc.yy"
11159 { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list)); }
11160 break;
11161
11162 case 537:
11163
11164
11165 #line 3182 "drizzled/sql_yacc.yy"
11166 { (yyval.item)=new Item_sum_min((yyvsp[(3) - (4)].item)); }
11167 break;
11168
11169 case 538:
11170
11171
11172 #line 3189 "drizzled/sql_yacc.yy"
11173 { (yyval.item)=new Item_sum_min((yyvsp[(4) - (5)].item)); }
11174 break;
11175
11176 case 539:
11177
11178
11179 #line 3191 "drizzled/sql_yacc.yy"
11180 { (yyval.item)=new Item_sum_max((yyvsp[(3) - (4)].item)); }
11181 break;
11182
11183 case 540:
11184
11185
11186 #line 3193 "drizzled/sql_yacc.yy"
11187 { (yyval.item)=new Item_sum_max((yyvsp[(4) - (5)].item)); }
11188 break;
11189
11190 case 541:
11191
11192
11193 #line 3195 "drizzled/sql_yacc.yy"
11194 { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 0); }
11195 break;
11196
11197 case 542:
11198
11199
11200 #line 3197 "drizzled/sql_yacc.yy"
11201 { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 0); }
11202 break;
11203
11204 case 543:
11205
11206
11207 #line 3199 "drizzled/sql_yacc.yy"
11208 { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 1); }
11209 break;
11210
11211 case 544:
11212
11213
11214 #line 3201 "drizzled/sql_yacc.yy"
11215 { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 1); }
11216 break;
11217
11218 case 545:
11219
11220
11221 #line 3203 "drizzled/sql_yacc.yy"
11222 { (yyval.item)=new Item_sum_sum((yyvsp[(3) - (4)].item)); }
11223 break;
11224
11225 case 546:
11226
11227
11228 #line 3205 "drizzled/sql_yacc.yy"
11229 { (yyval.item)=new Item_sum_sum_distinct((yyvsp[(4) - (5)].item)); }
11230 break;
11231
11232 case 547:
11233
11234
11235 #line 3207 "drizzled/sql_yacc.yy"
11236 { Lex.current_select->in_sum_expr++; }
11237 break;
11238
11239 case 548:
11240
11241
11242 #line 3211 "drizzled/sql_yacc.yy"
11243 {
11244 Select_Lex *sel= Lex.current_select;
11245 sel->in_sum_expr--;
11246 (yyval.item)=new Item_func_group_concat(Lex.current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
11247 sel->gorder_list, (yyvsp[(7) - (8)].string));
11248 (yyvsp[(5) - (8)].item_list)->clear();
11249 }
11250 break;
11251
11252 case 549:
11253
11254
11255 #line 3222 "drizzled/sql_yacc.yy"
11256 { }
11257 break;
11258
11259 case 550:
11260
11261
11262 #line 3224 "drizzled/sql_yacc.yy"
11263 {
11264 (yyval.item)= (yyvsp[(3) - (3)].item);
11265 }
11266 break;
11267
11268 case 551:
11269
11270
11271 #line 3231 "drizzled/sql_yacc.yy"
11272 {
11273 (yyval.item)= new Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
11274 Lex.setCacheable(false);
11275 }
11276 break;
11277
11278 case 552:
11279
11280
11281 #line 3236 "drizzled/sql_yacc.yy"
11282 {
11283 (yyval.item)= new Item_func_get_user_var(*YYSession, (yyvsp[(1) - (1)].lex_str));
11284 Lex.setCacheable(false);
11285 }
11286 break;
11287
11288 case 553:
11289
11290
11291 #line 3241 "drizzled/sql_yacc.yy"
11292 {
11293
11294 if ((yyvsp[(3) - (4)].lex_str).data() && (yyvsp[(4) - (4)].lex_str).data() && parser::check_reserved_words((yyvsp[(3) - (4)].lex_str)))
11295 {
11296 parser::my_parse_error(YYSession->m_lip);
11297 DRIZZLE_YYABORT;
11298 }
11299 if (!((yyval.item)= get_system_var(YYSession, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
11300 DRIZZLE_YYABORT;
11301 }
11302 break;
11303
11304 case 554:
11305
11306
11307 #line 3254 "drizzled/sql_yacc.yy"
11308 { (yyval.num) = false; }
11309 break;
11310
11311 case 555:
11312
11313
11314 #line 3255 "drizzled/sql_yacc.yy"
11315 { (yyval.num) = true; }
11316 break;
11317
11318 case 556:
11319
11320
11321 #line 3260 "drizzled/sql_yacc.yy"
11322 {
11323 (yyval.string)= new (YYSession->mem_root) String(",", 1, &my_charset_utf8_general_ci);
11324 }
11325 break;
11326
11327 case 557:
11328
11329
11330 #line 3263 "drizzled/sql_yacc.yy"
11331 { (yyval.string) = (yyvsp[(2) - (2)].string); }
11332 break;
11333
11334 case 558:
11335
11336
11337 #line 3268 "drizzled/sql_yacc.yy"
11338 {
11339 Lex.current_select->gorder_list = NULL;
11340 }
11341 break;
11342
11343 case 559:
11344
11345
11346 #line 3272 "drizzled/sql_yacc.yy"
11347 {
11348 Select_Lex *select= Lex.current_select;
11349 select->gorder_list= (SQL_LIST*) memory::sql_memdup(&select->order_list, sizeof(SQL_LIST));
11350 select->order_list.clear();
11351 }
11352 break;
11353
11354 case 560:
11355
11356
11357 #line 3281 "drizzled/sql_yacc.yy"
11358 {
11359 if (Lex.current_select->inc_in_sum_expr())
11360 {
11361 parser::my_parse_error(YYSession->m_lip);
11362 DRIZZLE_YYABORT;
11363 }
11364 }
11365 break;
11366
11367 case 561:
11368
11369
11370 #line 3289 "drizzled/sql_yacc.yy"
11371 {
11372 Lex.current_select->in_sum_expr--;
11373 (yyval.item)= (yyvsp[(3) - (3)].item);
11374 }
11375 break;
11376
11377 case 562:
11378
11379
11380 #line 3297 "drizzled/sql_yacc.yy"
11381 { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11382 break;
11383
11384 case 563:
11385
11386
11387 #line 3299 "drizzled/sql_yacc.yy"
11388 { (yyval.cast_type)=ITEM_CAST_BOOLEAN; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11389 break;
11390
11391 case 564:
11392
11393
11394 #line 3301 "drizzled/sql_yacc.yy"
11395 { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11396 break;
11397
11398 case 565:
11399
11400
11401 #line 3303 "drizzled/sql_yacc.yy"
11402 { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11403 break;
11404
11405 case 566:
11406
11407
11408 #line 3305 "drizzled/sql_yacc.yy"
11409 { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11410 break;
11411
11412 case 567:
11413
11414
11415 #line 3307 "drizzled/sql_yacc.yy"
11416 { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11417 break;
11418
11419 case 568:
11420
11421
11422 #line 3309 "drizzled/sql_yacc.yy"
11423 { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11424 break;
11425
11426 case 569:
11427
11428
11429 #line 3311 "drizzled/sql_yacc.yy"
11430 { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.dec= 0; }
11431 break;
11432
11433 case 570:
11434
11435
11436 #line 3313 "drizzled/sql_yacc.yy"
11437 { (yyval.cast_type)=ITEM_CAST_DATE; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11438 break;
11439
11440 case 571:
11441
11442
11443 #line 3315 "drizzled/sql_yacc.yy"
11444 { (yyval.cast_type)=ITEM_CAST_TIME; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11445 break;
11446
11447 case 572:
11448
11449
11450 #line 3317 "drizzled/sql_yacc.yy"
11451 { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11452 break;
11453
11454 case 573:
11455
11456
11457 #line 3319 "drizzled/sql_yacc.yy"
11458 { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex.charset= NULL; }
11459 break;
11460
11461 case 574:
11462
11463
11464 #line 3324 "drizzled/sql_yacc.yy"
11465 {
11466 (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11467 (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11468 }
11469 break;
11470
11471 case 575:
11472
11473
11474 #line 3329 "drizzled/sql_yacc.yy"
11475 {
11476 (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11477 (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11478 }
11479 break;
11480
11481 case 576:
11482
11483
11484 #line 3336 "drizzled/sql_yacc.yy"
11485 { (yyval.item)= NULL; }
11486 break;
11487
11488 case 577:
11489
11490
11491 #line 3337 "drizzled/sql_yacc.yy"
11492 { (yyval.item)= (yyvsp[(1) - (1)].item); }
11493 break;
11494
11495 case 578:
11496
11497
11498 #line 3341 "drizzled/sql_yacc.yy"
11499 { (yyval.item)= NULL; }
11500 break;
11501
11502 case 579:
11503
11504
11505 #line 3342 "drizzled/sql_yacc.yy"
11506 { (yyval.item)= (yyvsp[(2) - (2)].item); }
11507 break;
11508
11509 case 580:
11510
11511
11512 #line 3347 "drizzled/sql_yacc.yy"
11513 {
11514 (yyval.item_list)= new List<Item>;
11515 (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
11516 (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
11517 }
11518 break;
11519
11520 case 581:
11521
11522
11523 #line 3353 "drizzled/sql_yacc.yy"
11524 {
11525 (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
11526 (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
11527 (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
11528 }
11529 break;
11530
11531 case 582:
11532
11533
11534 #line 3363 "drizzled/sql_yacc.yy"
11535 { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11536 break;
11537
11538 case 583:
11539
11540
11541 #line 3365 "drizzled/sql_yacc.yy"
11542 {
11543 if (!((yyval.table_list)= Lex.current_select->nest_last_join(Lex.session)))
11544 DRIZZLE_YYABORT;
11545 }
11546 break;
11547
11548 case 584:
11549
11550
11551 #line 3372 "drizzled/sql_yacc.yy"
11552 { DRIZZLE_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
11553 break;
11554
11555 case 585:
11556
11557
11558 #line 3383 "drizzled/sql_yacc.yy"
11559 { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11560 break;
11561
11562 case 586:
11563
11564
11565 #line 3384 "drizzled/sql_yacc.yy"
11566 { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
11567 break;
11568
11569 case 587:
11570
11571
11572 #line 3390 "drizzled/sql_yacc.yy"
11573 { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11574 break;
11575
11576 case 588:
11577
11578
11579 #line 3392 "drizzled/sql_yacc.yy"
11580 {
11581 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11582 }
11583 break;
11584
11585 case 589:
11586
11587
11588 #line 3412 "drizzled/sql_yacc.yy"
11589 {
11590 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11591 Lex.is_cross= false;
11592 }
11593 break;
11594
11595 case 590:
11596
11597
11598 #line 3417 "drizzled/sql_yacc.yy"
11599 {
11600 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1;
11601 }
11602 break;
11603
11604 case 591:
11605
11606
11607 #line 3422 "drizzled/sql_yacc.yy"
11608 {
11609 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11610 DRIZZLE_YYABORT_UNLESS( not Lex.is_cross );
11611
11612 push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (4)].table_list), *(yyvsp[(3) - (4)].table_list));
11613 Lex.current_select->parsing_place= IN_ON;
11614 }
11615 break;
11616
11617 case 592:
11618
11619
11620 #line 3430 "drizzled/sql_yacc.yy"
11621 {
11622 add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11623 Lex.pop_context();
11624 Lex.current_select->parsing_place= NO_MATTER;
11625 }
11626 break;
11627
11628 case 593:
11629
11630
11631 #line 3437 "drizzled/sql_yacc.yy"
11632 {
11633 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11634
11635 push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (4)].table_list), *(yyvsp[(3) - (4)].table_list));
11636 Lex.current_select->parsing_place= IN_ON;
11637 }
11638 break;
11639
11640 case 594:
11641
11642
11643 #line 3444 "drizzled/sql_yacc.yy"
11644 {
11645 (yyvsp[(3) - (6)].table_list)->straight=1;
11646 add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11647 Lex.pop_context();
11648 Lex.current_select->parsing_place= NO_MATTER;
11649 }
11650 break;
11651
11652 case 595:
11653
11654
11655 #line 3452 "drizzled/sql_yacc.yy"
11656 {
11657 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11658 }
11659 break;
11660
11661 case 596:
11662
11663
11664 #line 3456 "drizzled/sql_yacc.yy"
11665 { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Lex.current_select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
11666 break;
11667
11668 case 597:
11669
11670
11671 #line 3458 "drizzled/sql_yacc.yy"
11672 {
11673 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
11674 add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Lex.current_select);
11675 }
11676 break;
11677
11678 case 598:
11679
11680
11681 #line 3466 "drizzled/sql_yacc.yy"
11682 {
11683 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11684
11685 push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (6)].table_list), *(yyvsp[(5) - (6)].table_list));
11686 Lex.current_select->parsing_place= IN_ON;
11687 }
11688 break;
11689
11690 case 599:
11691
11692
11693 #line 3473 "drizzled/sql_yacc.yy"
11694 {
11695 add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
11696 Lex.pop_context();
11697 (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11698 (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
11699 Lex.current_select->parsing_place= NO_MATTER;
11700 }
11701 break;
11702
11703 case 600:
11704
11705
11706 #line 3481 "drizzled/sql_yacc.yy"
11707 {
11708 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11709 }
11710 break;
11711
11712 case 601:
11713
11714
11715 #line 3485 "drizzled/sql_yacc.yy"
11716 {
11717 add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11718 (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11719 (yyval.table_list)=(yyvsp[(5) - (10)].table_list);
11720 }
11721 break;
11722
11723 case 602:
11724
11725
11726 #line 3491 "drizzled/sql_yacc.yy"
11727 {
11728 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11729 add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Lex.current_select);
11730 (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11731 (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
11732 }
11733 break;
11734
11735 case 603:
11736
11737
11738 #line 3501 "drizzled/sql_yacc.yy"
11739 {
11740 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11741
11742 push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (6)].table_list), *(yyvsp[(5) - (6)].table_list));
11743 Lex.current_select->parsing_place= IN_ON;
11744 }
11745 break;
11746
11747 case 604:
11748
11749
11750 #line 3508 "drizzled/sql_yacc.yy"
11751 {
11752 if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11753 DRIZZLE_YYABORT;
11754 add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
11755 Lex.pop_context();
11756 Lex.current_select->parsing_place= NO_MATTER;
11757 }
11758 break;
11759
11760 case 605:
11761
11762
11763 #line 3516 "drizzled/sql_yacc.yy"
11764 {
11765 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11766 }
11767 break;
11768
11769 case 606:
11770
11771
11772 #line 3520 "drizzled/sql_yacc.yy"
11773 {
11774 if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11775 DRIZZLE_YYABORT;
11776 add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11777 }
11778 break;
11779
11780 case 607:
11781
11782
11783 #line 3526 "drizzled/sql_yacc.yy"
11784 {
11785 DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11786 add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Lex.current_select);
11787 if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11788 DRIZZLE_YYABORT;
11789 }
11790 break;
11791
11792 case 608:
11793
11794
11795 #line 3535 "drizzled/sql_yacc.yy"
11796 {}
11797 break;
11798
11799 case 609:
11800
11801
11802 #line 3536 "drizzled/sql_yacc.yy"
11803 {}
11804 break;
11805
11806 case 610:
11807
11808
11809 #line 3538 "drizzled/sql_yacc.yy"
11810 {
11811 Lex.is_cross= true;
11812 Lex.current_select->is_cross= true;
11813 }
11814 break;
11815
11816 case 611:
11817
11818
11819 #line 3553 "drizzled/sql_yacc.yy"
11820 {
11821 }
11822 break;
11823
11824 case 612:
11825
11826
11827 #line 3556 "drizzled/sql_yacc.yy"
11828 {
11829 if (!((yyval.table_list)= Lex.current_select->add_table_to_list(YYSession, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
11830 0,
11831 Lex.lock_option,
11832 Lex.current_select->pop_index_hints())))
11833 DRIZZLE_YYABORT;
11834 Lex.current_select->add_joined_table((yyval.table_list));
11835 }
11836 break;
11837
11838 case 613:
11839
11840
11841 #line 3565 "drizzled/sql_yacc.yy"
11842 {
11843 Select_Lex *sel= Lex.current_select;
11844 if ((yyvsp[(1) - (3)].num))
11845 {
11846 if (sel->set_braces(1))
11847 {
11848 parser::my_parse_error(YYSession->m_lip);
11849 DRIZZLE_YYABORT;
11850 }
11851
11852 if (sel->master_unit()->fake_select_lex)
11853 sel->master_unit()->global_parameters=
11854 sel->master_unit()->fake_select_lex;
11855 }
11856 (yyvsp[(2) - (3)].select_lex)->init_nested_join(*Lex.session);
11857 (yyval.table_list)= 0;
11858
11859
11860 }
11861 break;
11862
11863 case 614:
11864
11865
11866 #line 3603 "drizzled/sql_yacc.yy"
11867 {
11868
11869
11870 if (!((yyvsp[(3) - (5)].table_list) || (yyvsp[(5) - (5)].lex_str_ptr)) && (yyvsp[(2) - (5)].select_lex)->embedding &&
11871 !(yyvsp[(2) - (5)].select_lex)->embedding->getNestedJoin()->join_list.size())
11872 {
11873
11874
11875
11876
11877 (yyval.table_list)= 0;
11878 }
11879 else if (!(yyvsp[(3) - (5)].table_list))
11880 {
11881
11882
11883
11884 Select_Lex *sel= Lex.current_select;
11885 Select_Lex_Unit *unit= sel->master_unit();
11886 Lex.current_select= sel= unit->outer_select();
11887 if (!((yyval.table_list)= sel->add_table_to_list(Lex.session,
11888 new Table_ident(unit), (yyvsp[(5) - (5)].lex_str_ptr), 0,
11889 TL_READ)))
11890
11891 DRIZZLE_YYABORT;
11892 sel->add_joined_table((yyval.table_list));
11893 Lex.pop_context();
11894 }
11895 else if (((yyvsp[(3) - (5)].table_list)->select_lex && (yyvsp[(3) - (5)].table_list)->select_lex->master_unit()->is_union()) || (yyvsp[(5) - (5)].lex_str_ptr))
11896 {
11897
11898 parser::my_parse_error(YYSession->m_lip);
11899 DRIZZLE_YYABORT;
11900 }
11901 else
11902 (yyval.table_list)= (yyvsp[(3) - (5)].table_list);
11903 }
11904 break;
11905
11906 case 616:
11907
11908
11909 #line 3647 "drizzled/sql_yacc.yy"
11910 {
11911 if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
11912 DRIZZLE_YYABORT;
11913 }
11914 break;
11915
11916 case 617:
11917
11918
11919 #line 3652 "drizzled/sql_yacc.yy"
11920 {
11921
11922
11923
11924
11925 Lex.pop_context();
11926 }
11927 break;
11928
11929 case 619:
11930
11931
11932 #line 3665 "drizzled/sql_yacc.yy"
11933 {
11934 Select_Lex * sel= Lex.current_select;
11935 if (Lex.current_select->set_braces(0))
11936 {
11937 parser::my_parse_error(YYSession->m_lip);
11938 DRIZZLE_YYABORT;
11939 }
11940 if (sel->linkage == UNION_TYPE &&
11941 sel->master_unit()->first_select()->braces)
11942 {
11943 parser::my_parse_error(YYSession->m_lip);
11944 DRIZZLE_YYABORT;
11945 }
11946 }
11947 break;
11948
11949 case 620:
11950
11951
11952 #line 3683 "drizzled/sql_yacc.yy"
11953 {
11954 Select_Lex *sel= Lex.current_select;
11955 if (sel->linkage != UNION_TYPE)
11956 init_select(&Lex);
11957 Lex.current_select->parsing_place= SELECT_LIST;
11958 }
11959 break;
11960
11961 case 621:
11962
11963
11964 #line 3690 "drizzled/sql_yacc.yy"
11965 {
11966 Lex.current_select->parsing_place= NO_MATTER;
11967 }
11968 break;
11969
11970 case 623:
11971
11972
11973 #line 3699 "drizzled/sql_yacc.yy"
11974 {
11975 (yyvsp[(1) - (1)].select_lex)->init_nested_join(*Lex.session);
11976 }
11977 break;
11978
11979 case 624:
11980
11981
11982 #line 3703 "drizzled/sql_yacc.yy"
11983 {
11984
11985
11986
11987 if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join()) && (yyvsp[(3) - (3)].table_list))
11988 DRIZZLE_YYABORT;
11989
11990 if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
11991 {
11992 parser::my_parse_error(YYSession->m_lip);
11993 DRIZZLE_YYABORT;
11994 }
11995 }
11996 break;
11997
11998 case 625:
11999
12000
12001 #line 3719 "drizzled/sql_yacc.yy"
12002 {
12003 Lex.derived_tables|= DERIVED_SUBQUERY;
12004 if (not Lex.expr_allows_subselect)
12005 {
12006 parser::my_parse_error(YYSession->m_lip);
12007 DRIZZLE_YYABORT;
12008 }
12009 if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE || new_select(&Lex, 1))
12010 DRIZZLE_YYABORT;
12011 init_select(&Lex);
12012 Lex.current_select->linkage= DERIVED_TABLE_TYPE;
12013 Lex.current_select->parsing_place= SELECT_LIST;
12014 }
12015 break;
12016
12017 case 626:
12018
12019
12020 #line 3733 "drizzled/sql_yacc.yy"
12021 {
12022 Lex.current_select->parsing_place= NO_MATTER;
12023 }
12024 break;
12025
12026 case 628:
12027
12028
12029 #line 3740 "drizzled/sql_yacc.yy"
12030 { (yyval.select_lex)= Lex.current_select; }
12031 break;
12032
12033 case 629:
12034
12035
12036 #line 3745 "drizzled/sql_yacc.yy"
12037 {
12038 Select_Lex *sel= Lex.current_select;
12039 TableList *embedding;
12040 if (!sel->embedding || sel->end_nested_join())
12041 {
12042
12043 parser::my_parse_error(YYSession->m_lip);
12044 DRIZZLE_YYABORT;
12045 }
12046 embedding= Lex.current_select->embedding;
12047 (yyval.num)= embedding &&
12048 !embedding->getNestedJoin()->join_list.size();
12049
12050 }
12051 break;
12052
12053 case 630:
12054
12055
12056 #line 3762 "drizzled/sql_yacc.yy"
12057 {}
12058 break;
12059
12060 case 631:
12061
12062
12063 #line 3763 "drizzled/sql_yacc.yy"
12064 {}
12065 break;
12066
12067 case 632:
12068
12069
12070 #line 3768 "drizzled/sql_yacc.yy"
12071 {
12072 (yyval.num)= INDEX_HINT_MASK_ALL;
12073 }
12074 break;
12075
12076 case 633:
12077
12078
12079 #line 3771 "drizzled/sql_yacc.yy"
12080 { (yyval.num)= INDEX_HINT_MASK_JOIN; }
12081 break;
12082
12083 case 634:
12084
12085
12086 #line 3772 "drizzled/sql_yacc.yy"
12087 { (yyval.num)= INDEX_HINT_MASK_ORDER; }
12088 break;
12089
12090 case 635:
12091
12092
12093 #line 3773 "drizzled/sql_yacc.yy"
12094 { (yyval.num)= INDEX_HINT_MASK_GROUP; }
12095 break;
12096
12097 case 636:
12098
12099
12100 #line 3777 "drizzled/sql_yacc.yy"
12101 { (yyval.index_hint)= INDEX_HINT_FORCE; }
12102 break;
12103
12104 case 637:
12105
12106
12107 #line 3778 "drizzled/sql_yacc.yy"
12108 { (yyval.index_hint)= INDEX_HINT_IGNORE; }
12109 break;
12110
12111 case 638:
12112
12113
12114 #line 3783 "drizzled/sql_yacc.yy"
12115 {
12116 Lex.current_select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
12117 }
12118 break;
12119
12120 case 640:
12121
12122
12123 #line 3788 "drizzled/sql_yacc.yy"
12124 {
12125 Lex.current_select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
12126 }
12127 break;
12128
12129 case 645:
12130
12131
12132 #line 3801 "drizzled/sql_yacc.yy"
12133 { Lex.current_select->alloc_index_hints(YYSession); }
12134 break;
12135
12136 case 647:
12137
12138
12139 #line 3805 "drizzled/sql_yacc.yy"
12140 { Lex.current_select->clear_index_hints(); }
12141 break;
12142
12143 case 649:
12144
12145
12146 #line 3810 "drizzled/sql_yacc.yy"
12147 { Lex.current_select->add_index_hint(YYSession, NULL); }
12148 break;
12149
12150 case 650:
12151
12152
12153 #line 3811 "drizzled/sql_yacc.yy"
12154 {}
12155 break;
12156
12157 case 651:
12158
12159
12160 #line 3816 "drizzled/sql_yacc.yy"
12161 { Lex.current_select->add_index_hint(YYSession, (yyvsp[(1) - (1)].lex_str).data()); }
12162 break;
12163
12164 case 652:
12165
12166
12167 #line 3818 "drizzled/sql_yacc.yy"
12168 { Lex.current_select->add_index_hint(YYSession, "PRIMARY"); }
12169 break;
12170
12171 case 655:
12172
12173
12174 #line 3828 "drizzled/sql_yacc.yy"
12175 {
12176 (yyval.string_list)= new List<String>;
12177 (yyval.string_list)->push_back(new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), system_charset_info));
12178 }
12179 break;
12180
12181 case 656:
12182
12183
12184 #line 3833 "drizzled/sql_yacc.yy"
12185 {
12186 (yyvsp[(1) - (3)].string_list)->push_back(new (YYSession->mem_root) String((yyvsp[(3) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str).size(), system_charset_info));
12187 (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
12188 }
12189 break;
12190
12191 case 657:
12192
12193
12194 #line 3840 "drizzled/sql_yacc.yy"
12195 {}
12196 break;
12197
12198 case 658:
12199
12200
12201 #line 3841 "drizzled/sql_yacc.yy"
12202 { (yyval.interval)=INTERVAL_DAY_HOUR; }
12203 break;
12204
12205 case 659:
12206
12207
12208 #line 3842 "drizzled/sql_yacc.yy"
12209 { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
12210 break;
12211
12212 case 660:
12213
12214
12215 #line 3843 "drizzled/sql_yacc.yy"
12216 { (yyval.interval)=INTERVAL_DAY_MINUTE; }
12217 break;
12218
12219 case 661:
12220
12221
12222 #line 3844 "drizzled/sql_yacc.yy"
12223 { (yyval.interval)=INTERVAL_DAY_SECOND; }
12224 break;
12225
12226 case 662:
12227
12228
12229 #line 3845 "drizzled/sql_yacc.yy"
12230 { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
12231 break;
12232
12233 case 663:
12234
12235
12236 #line 3846 "drizzled/sql_yacc.yy"
12237 { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
12238 break;
12239
12240 case 664:
12241
12242
12243 #line 3847 "drizzled/sql_yacc.yy"
12244 { (yyval.interval)=INTERVAL_HOUR_SECOND; }
12245 break;
12246
12247 case 665:
12248
12249
12250 #line 3848 "drizzled/sql_yacc.yy"
12251 { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
12252 break;
12253
12254 case 666:
12255
12256
12257 #line 3849 "drizzled/sql_yacc.yy"
12258 { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
12259 break;
12260
12261 case 667:
12262
12263
12264 #line 3850 "drizzled/sql_yacc.yy"
12265 { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
12266 break;
12267
12268 case 668:
12269
12270
12271 #line 3851 "drizzled/sql_yacc.yy"
12272 { (yyval.interval)=INTERVAL_YEAR_MONTH; }
12273 break;
12274
12275 case 669:
12276
12277
12278 #line 3855 "drizzled/sql_yacc.yy"
12279 {}
12280 break;
12281
12282 case 670:
12283
12284
12285 #line 3856 "drizzled/sql_yacc.yy"
12286 {
12287 (yyval.interval_time_st)=INTERVAL_MICROSECOND;
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300 }
12301 break;
12302
12303 case 671:
12304
12305
12306 #line 3874 "drizzled/sql_yacc.yy"
12307 { (yyval.interval_time_st)=INTERVAL_DAY; }
12308 break;
12309
12310 case 672:
12311
12312
12313 #line 3875 "drizzled/sql_yacc.yy"
12314 { (yyval.interval_time_st)=INTERVAL_WEEK; }
12315 break;
12316
12317 case 673:
12318
12319
12320 #line 3876 "drizzled/sql_yacc.yy"
12321 { (yyval.interval_time_st)=INTERVAL_HOUR; }
12322 break;
12323
12324 case 674:
12325
12326
12327 #line 3877 "drizzled/sql_yacc.yy"
12328 { (yyval.interval_time_st)=INTERVAL_MINUTE; }
12329 break;
12330
12331 case 675:
12332
12333
12334 #line 3878 "drizzled/sql_yacc.yy"
12335 { (yyval.interval_time_st)=INTERVAL_MONTH; }
12336 break;
12337
12338 case 676:
12339
12340
12341 #line 3879 "drizzled/sql_yacc.yy"
12342 { (yyval.interval_time_st)=INTERVAL_QUARTER; }
12343 break;
12344
12345 case 677:
12346
12347
12348 #line 3880 "drizzled/sql_yacc.yy"
12349 { (yyval.interval_time_st)=INTERVAL_SECOND; }
12350 break;
12351
12352 case 678:
12353
12354
12355 #line 3881 "drizzled/sql_yacc.yy"
12356 { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
12357 break;
12358
12359 case 679:
12360
12361
12362 #line 3882 "drizzled/sql_yacc.yy"
12363 { (yyval.interval_time_st)=INTERVAL_YEAR; }
12364 break;
12365
12366 case 682:
12367
12368
12369 #line 3891 "drizzled/sql_yacc.yy"
12370 { (yyval.lex_str_ptr)=0; }
12371 break;
12372
12373 case 683:
12374
12375
12376 #line 3893 "drizzled/sql_yacc.yy"
12377 {
12378 (yyval.lex_str_ptr)= (drizzled::lex_string_t*) memory::sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(drizzled::lex_string_t));
12379 }
12380 break;
12381
12382 case 686:
12383
12384
12385 #line 3904 "drizzled/sql_yacc.yy"
12386 { Lex.current_select->where= 0; }
12387 break;
12388
12389 case 687:
12390
12391
12392 #line 3906 "drizzled/sql_yacc.yy"
12393 {
12394 Lex.current_select->parsing_place= IN_WHERE;
12395 }
12396 break;
12397
12398 case 688:
12399
12400
12401 #line 3910 "drizzled/sql_yacc.yy"
12402 {
12403 Select_Lex *select= Lex.current_select;
12404 select->where= (yyvsp[(3) - (3)].item);
12405 select->parsing_place= NO_MATTER;
12406 if ((yyvsp[(3) - (3)].item))
12407 (yyvsp[(3) - (3)].item)->top_level_item();
12408 }
12409 break;
12410
12411 case 690:
12412
12413
12414 #line 3922 "drizzled/sql_yacc.yy"
12415 {
12416 Lex.current_select->parsing_place= IN_HAVING;
12417 }
12418 break;
12419
12420 case 691:
12421
12422
12423 #line 3926 "drizzled/sql_yacc.yy"
12424 {
12425 Select_Lex *sel= Lex.current_select;
12426 sel->having= (yyvsp[(3) - (3)].item);
12427 sel->parsing_place= NO_MATTER;
12428 if ((yyvsp[(3) - (3)].item))
12429 (yyvsp[(3) - (3)].item)->top_level_item();
12430 }
12431 break;
12432
12433 case 692:
12434
12435
12436 #line 3937 "drizzled/sql_yacc.yy"
12437 {
12438 Lex.escape_used= true;
12439 (yyval.item)= (yyvsp[(2) - (2)].item);
12440 }
12441 break;
12442
12443 case 693:
12444
12445
12446 #line 3942 "drizzled/sql_yacc.yy"
12447 {
12448 Lex.escape_used= false;
12449 (yyval.item)= new Item_string(str_ref("\\"), &my_charset_utf8_general_ci);
12450 }
12451 break;
12452
12453 case 696:
12454
12455
12456 #line 3959 "drizzled/sql_yacc.yy"
12457 { YYSession->add_group_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num)); }
12458 break;
12459
12460 case 697:
12461
12462
12463 #line 3961 "drizzled/sql_yacc.yy"
12464 { YYSession->add_group_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num)); }
12465 break;
12466
12467 case 698:
12468
12469
12470 #line 3965 "drizzled/sql_yacc.yy"
12471 {}
12472 break;
12473
12474 case 699:
12475
12476
12477 #line 3967 "drizzled/sql_yacc.yy"
12478 {
12479
12480
12481
12482
12483
12484
12485
12486 if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE)
12487 {
12488 my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
12489 "global union parameters");
12490 DRIZZLE_YYABORT;
12491 }
12492 Lex.current_select->olap= ROLLUP_TYPE;
12493 }
12494 break;
12495
12496 case 703:
12497
12498
12499 #line 4000 "drizzled/sql_yacc.yy"
12500 {
12501 bool ascending= (yyvsp[(2) - (2)].num) == 1;
12502 YYSession->add_order_to_list((yyvsp[(1) - (2)].item), ascending);
12503 }
12504 break;
12505
12506 case 706:
12507
12508
12509 #line 4017 "drizzled/sql_yacc.yy"
12510 {
12511 if (not parser::buildOrderBy(&Lex))
12512 DRIZZLE_YYABORT;
12513 }
12514 break;
12515
12516 case 708:
12517
12518
12519 #line 4026 "drizzled/sql_yacc.yy"
12520 {
12521 YYSession->add_order_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num));
12522 }
12523 break;
12524
12525 case 709:
12526
12527
12528 #line 4030 "drizzled/sql_yacc.yy"
12529 {
12530 YYSession->add_order_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num));
12531 }
12532 break;
12533
12534 case 710:
12535
12536
12537 #line 4036 "drizzled/sql_yacc.yy"
12538 { (yyval.num) = 1; }
12539 break;
12540
12541 case 711:
12542
12543
12544 #line 4037 "drizzled/sql_yacc.yy"
12545 { (yyval.num) =1; }
12546 break;
12547
12548 case 712:
12549
12550
12551 #line 4038 "drizzled/sql_yacc.yy"
12552 { (yyval.num) =0; }
12553 break;
12554
12555 case 713:
12556
12557
12558 #line 4043 "drizzled/sql_yacc.yy"
12559 {
12560 Select_Lex *sel= Lex.current_select;
12561 sel->offset_limit= 0;
12562 sel->select_limit= 0;
12563 }
12564 break;
12565
12566 case 714:
12567
12568
12569 #line 4048 "drizzled/sql_yacc.yy"
12570 {}
12571 break;
12572
12573 case 715:
12574
12575
12576 #line 4052 "drizzled/sql_yacc.yy"
12577 {}
12578 break;
12579
12580 case 716:
12581
12582
12583 #line 4053 "drizzled/sql_yacc.yy"
12584 {}
12585 break;
12586
12587 case 717:
12588
12589
12590 #line 4057 "drizzled/sql_yacc.yy"
12591 {}
12592 break;
12593
12594 case 718:
12595
12596
12597 #line 4062 "drizzled/sql_yacc.yy"
12598 {
12599 Select_Lex *sel= Lex.current_select;
12600 sel->select_limit= (yyvsp[(1) - (1)].item);
12601 sel->offset_limit= 0;
12602 sel->explicit_limit= 1;
12603 }
12604 break;
12605
12606 case 719:
12607
12608
12609 #line 4069 "drizzled/sql_yacc.yy"
12610 {
12611 Select_Lex *sel= Lex.current_select;
12612 sel->select_limit= (yyvsp[(3) - (3)].item);
12613 sel->offset_limit= (yyvsp[(1) - (3)].item);
12614 sel->explicit_limit= 1;
12615 }
12616 break;
12617
12618 case 720:
12619
12620
12621 #line 4076 "drizzled/sql_yacc.yy"
12622 {
12623 Select_Lex *sel= Lex.current_select;
12624 sel->select_limit= (yyvsp[(1) - (3)].item);
12625 sel->offset_limit= (yyvsp[(3) - (3)].item);
12626 sel->explicit_limit= 1;
12627 }
12628 break;
12629
12630 case 721:
12631
12632
12633 #line 4085 "drizzled/sql_yacc.yy"
12634 { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12635 break;
12636
12637 case 722:
12638
12639
12640 #line 4086 "drizzled/sql_yacc.yy"
12641 { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12642 break;
12643
12644 case 723:
12645
12646
12647 #line 4087 "drizzled/sql_yacc.yy"
12648 { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12649 break;
12650
12651 case 724:
12652
12653
12654 #line 4092 "drizzled/sql_yacc.yy"
12655 {
12656 Lex.current_select->select_limit= 0;
12657 }
12658 break;
12659
12660 case 725:
12661
12662
12663 #line 4096 "drizzled/sql_yacc.yy"
12664 {
12665 Select_Lex *sel= Lex.current_select;
12666 sel->select_limit= (yyvsp[(2) - (2)].item);
12667 sel->explicit_limit= 1;
12668 }
12669 break;
12670
12671 case 726:
12672
12673
12674 #line 4104 "drizzled/sql_yacc.yy"
12675 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12676 break;
12677
12678 case 727:
12679
12680
12681 #line 4105 "drizzled/sql_yacc.yy"
12682 { (yyval.ulong_num)= (unsigned long) strtol((yyvsp[(1) - (1)].lex_str).data(), NULL, 16); }
12683 break;
12684
12685 case 728:
12686
12687
12688 #line 4106 "drizzled/sql_yacc.yy"
12689 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12690 break;
12691
12692 case 729:
12693
12694
12695 #line 4107 "drizzled/sql_yacc.yy"
12696 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12697 break;
12698
12699 case 730:
12700
12701
12702 #line 4108 "drizzled/sql_yacc.yy"
12703 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12704 break;
12705
12706 case 731:
12707
12708
12709 #line 4109 "drizzled/sql_yacc.yy"
12710 { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12711 break;
12712
12713 case 732:
12714
12715
12716 #line 4113 "drizzled/sql_yacc.yy"
12717 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12718 break;
12719
12720 case 733:
12721
12722
12723 #line 4114 "drizzled/sql_yacc.yy"
12724 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12725 break;
12726
12727 case 734:
12728
12729
12730 #line 4115 "drizzled/sql_yacc.yy"
12731 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12732 break;
12733
12734 case 735:
12735
12736
12737 #line 4116 "drizzled/sql_yacc.yy"
12738 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12739 break;
12740
12741 case 736:
12742
12743
12744 #line 4117 "drizzled/sql_yacc.yy"
12745 { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12746 break;
12747
12748 case 737:
12749
12750
12751 #line 4121 "drizzled/sql_yacc.yy"
12752 {
12753 if (not Lex.describe)
12754 Lex.result= new select_dumpvar;
12755 }
12756 break;
12757
12758 case 738:
12759
12760
12761 #line 4126 "drizzled/sql_yacc.yy"
12762 {}
12763 break;
12764
12765 case 740:
12766
12767
12768 #line 4131 "drizzled/sql_yacc.yy"
12769 {}
12770 break;
12771
12772 case 741:
12773
12774
12775 #line 4136 "drizzled/sql_yacc.yy"
12776 {
12777 if (Lex.result)
12778 {
12779 ((select_dumpvar *)Lex.result)->var_list.push_back( new var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0));
12780 }
12781 else
12782 {
12783
12784
12785
12786
12787 assert(Lex.describe);
12788 }
12789 }
12790 break;
12791
12792 case 742:
12793
12794
12795 #line 4154 "drizzled/sql_yacc.yy"
12796 { }
12797 break;
12798
12799 case 744:
12800
12801
12802 #line 4160 "drizzled/sql_yacc.yy"
12803 {
12804 Lex.setCacheable(false);
12805 Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).data(), 0);
12806 Lex.result= new select_export(Lex.exchange);
12807 }
12808 break;
12809
12810 case 746:
12811
12812
12813 #line 4167 "drizzled/sql_yacc.yy"
12814 {
12815 if (not Lex.describe)
12816 {
12817 Lex.setCacheable(false);
12818 Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).data(),1);
12819 Lex.result= new select_dump(Lex.exchange);
12820 }
12821 }
12822 break;
12823
12824 case 747:
12825
12826
12827 #line 4176 "drizzled/sql_yacc.yy"
12828 {Lex.setCacheable(false);}
12829 break;
12830
12831 case 748:
12832
12833
12834 #line 4185 "drizzled/sql_yacc.yy"
12835 {
12836 Lex.statement= new statement::catalog::Drop(YYSession, (yyvsp[(3) - (3)].lex_str));
12837 }
12838 break;
12839
12840 case 749:
12841
12842
12843 #line 4189 "drizzled/sql_yacc.yy"
12844 {
12845 statement::DropTable *statement= new statement::DropTable(YYSession);
12846 Lex.statement= statement;
12847 statement->drop_temporary= (yyvsp[(2) - (5)].boolean);
12848 statement->drop_if_exists= (yyvsp[(4) - (5)].boolean);
12849 }
12850 break;
12851
12852 case 750:
12853
12854
12855 #line 4195 "drizzled/sql_yacc.yy"
12856 {}
12857 break;
12858
12859 case 751:
12860
12861
12862 #line 4196 "drizzled/sql_yacc.yy"
12863 {
12864 statement::DropIndex *statement= new statement::DropIndex(YYSession);
12865 Lex.statement= statement;
12866 statement->alter_info.flags.set(ALTER_DROP_INDEX);
12867
12868 if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(6) - (7)].table), NULL,
12869 TL_OPTION_UPDATING))
12870 DRIZZLE_YYABORT;
12871
12872 message::AlterTable::AlterTableOperation *operation;
12873 operation= Lex.alter_table()->add_operations();
12874 operation->set_operation(message::AlterTable::AlterTableOperation::DROP_KEY);
12875 operation->set_drop_name((yyvsp[(4) - (7)].lex_str).data());
12876
12877 }
12878 break;
12879
12880 case 752:
12881
12882
12883 #line 4212 "drizzled/sql_yacc.yy"
12884 {
12885 statement::DropSchema *statement= new statement::DropSchema(YYSession);
12886 Lex.statement= statement;
12887 statement->drop_if_exists=(yyvsp[(3) - (4)].boolean);
12888 Lex.name= (yyvsp[(4) - (4)].lex_str);
12889 }
12890 break;
12891
12892 case 755:
12893
12894
12895 #line 4227 "drizzled/sql_yacc.yy"
12896 {
12897 if (!Lex.current_select->add_table_to_list(YYSession, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
12898 DRIZZLE_YYABORT;
12899 }
12900 break;
12901
12902 case 756:
12903
12904
12905 #line 4234 "drizzled/sql_yacc.yy"
12906 { (yyval.boolean)= false; }
12907 break;
12908
12909 case 757:
12910
12911
12912 #line 4235 "drizzled/sql_yacc.yy"
12913 { (yyval.boolean)= true; }
12914 break;
12915
12916 case 758:
12917
12918
12919 #line 4239 "drizzled/sql_yacc.yy"
12920 { (yyval.boolean)= false; }
12921 break;
12922
12923 case 759:
12924
12925
12926 #line 4240 "drizzled/sql_yacc.yy"
12927 { (yyval.boolean)= true; }
12928 break;
12929
12930 case 760:
12931
12932
12933 #line 4249 "drizzled/sql_yacc.yy"
12934 {
12935 Lex.statement= new statement::Execute(YYSession, (yyvsp[(2) - (5)].execute_string), (yyvsp[(3) - (5)].boolean), (yyvsp[(4) - (5)].boolean), (yyvsp[(5) - (5)].boolean));
12936 }
12937 break;
12938
12939 case 761:
12940
12941
12942 #line 4256 "drizzled/sql_yacc.yy"
12943 {
12944 (yyval.execute_string).set((yyvsp[(1) - (1)].lex_str));
12945 }
12946 break;
12947
12948 case 762:
12949
12950
12951 #line 4260 "drizzled/sql_yacc.yy"
12952 {
12953 (yyval.execute_string).set((yyvsp[(2) - (2)].lex_str), true);
12954 }
12955 break;
12956
12957 case 763:
12958
12959
12960 #line 4265 "drizzled/sql_yacc.yy"
12961 { (yyval.boolean)= false; }
12962 break;
12963
12964 case 764:
12965
12966
12967 #line 4266 "drizzled/sql_yacc.yy"
12968 { (yyval.boolean)= true; }
12969 break;
12970
12971 case 765:
12972
12973
12974 #line 4270 "drizzled/sql_yacc.yy"
12975 { (yyval.boolean)= false; }
12976 break;
12977
12978 case 766:
12979
12980
12981 #line 4271 "drizzled/sql_yacc.yy"
12982 { (yyval.boolean)= true; }
12983 break;
12984
12985 case 767:
12986
12987
12988 #line 4275 "drizzled/sql_yacc.yy"
12989 { (yyval.boolean)= false; }
12990 break;
12991
12992 case 768:
12993
12994
12995 #line 4276 "drizzled/sql_yacc.yy"
12996 { (yyval.boolean)= true; }
12997 break;
12998
12999 case 769:
13000
13001
13002 #line 4285 "drizzled/sql_yacc.yy"
13003 {
13004 Lex.statement= new statement::Insert(YYSession);
13005 Lex.duplicates= DUP_ERROR;
13006 init_select(&Lex);
13007
13008 Lex.lock_option= TL_READ;
13009 }
13010 break;
13011
13012 case 770:
13013
13014
13015 #line 4293 "drizzled/sql_yacc.yy"
13016 {
13017 Lex.current_select->set_lock_for_tables(TL_WRITE_CONCURRENT_INSERT);
13018 Lex.current_select= &Lex.select_lex;
13019 }
13020 break;
13021
13022 case 771:
13023
13024
13025 #line 4298 "drizzled/sql_yacc.yy"
13026 {}
13027 break;
13028
13029 case 772:
13030
13031
13032 #line 4303 "drizzled/sql_yacc.yy"
13033 {
13034 Lex.statement= new statement::Replace(YYSession);
13035 Lex.duplicates= DUP_REPLACE;
13036 init_select(&Lex);
13037 }
13038 break;
13039
13040 case 773:
13041
13042
13043 #line 4309 "drizzled/sql_yacc.yy"
13044 {
13045 Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13046 Lex.current_select= &Lex.select_lex;
13047 }
13048 break;
13049
13050 case 774:
13051
13052
13053 #line 4314 "drizzled/sql_yacc.yy"
13054 {}
13055 break;
13056
13057 case 775:
13058
13059
13060 #line 4318 "drizzled/sql_yacc.yy"
13061 {}
13062 break;
13063
13064 case 776:
13065
13066
13067 #line 4319 "drizzled/sql_yacc.yy"
13068 {}
13069 break;
13070
13071 case 777:
13072
13073
13074 #line 4324 "drizzled/sql_yacc.yy"
13075 {
13076 Lex.field_list.clear();
13077 Lex.many_values.clear();
13078 Lex.insert_list=0;
13079 }
13080 break;
13081
13082 case 778:
13083
13084
13085 #line 4331 "drizzled/sql_yacc.yy"
13086 {}
13087 break;
13088
13089 case 779:
13090
13091
13092 #line 4332 "drizzled/sql_yacc.yy"
13093 {}
13094 break;
13095
13096 case 780:
13097
13098
13099 #line 4333 "drizzled/sql_yacc.yy"
13100 {}
13101 break;
13102
13103 case 781:
13104
13105
13106 #line 4335 "drizzled/sql_yacc.yy"
13107 {
13108 Lex.insert_list = new List_item;
13109 Lex.many_values.push_back(Lex.insert_list);
13110 }
13111 break;
13112
13113 case 783:
13114
13115
13116 #line 4343 "drizzled/sql_yacc.yy"
13117 { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
13118 break;
13119
13120 case 784:
13121
13122
13123 #line 4344 "drizzled/sql_yacc.yy"
13124 { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
13125 break;
13126
13127 case 785:
13128
13129
13130 #line 4348 "drizzled/sql_yacc.yy"
13131 {}
13132 break;
13133
13134 case 786:
13135
13136
13137 #line 4349 "drizzled/sql_yacc.yy"
13138 {}
13139 break;
13140
13141 case 787:
13142
13143
13144 #line 4351 "drizzled/sql_yacc.yy"
13145 {
13146 Lex.current_select->set_braces(0);
13147 }
13148 break;
13149
13150 case 788:
13151
13152
13153 #line 4354 "drizzled/sql_yacc.yy"
13154 {}
13155 break;
13156
13157 case 789:
13158
13159
13160 #line 4356 "drizzled/sql_yacc.yy"
13161 {
13162 Lex.current_select->set_braces(1);
13163 }
13164 break;
13165
13166 case 790:
13167
13168
13169 #line 4359 "drizzled/sql_yacc.yy"
13170 {}
13171 break;
13172
13173 case 795:
13174
13175
13176 #line 4374 "drizzled/sql_yacc.yy"
13177 {
13178 Lex.field_list.push_back((yyvsp[(1) - (3)].item));
13179 Lex.insert_list->push_back((yyvsp[(3) - (3)].item));
13180 }
13181 break;
13182
13183 case 796:
13184
13185
13186 #line 4381 "drizzled/sql_yacc.yy"
13187 {}
13188 break;
13189
13190 case 797:
13191
13192
13193 #line 4382 "drizzled/sql_yacc.yy"
13194 {}
13195 break;
13196
13197 case 798:
13198
13199
13200 #line 4386 "drizzled/sql_yacc.yy"
13201 {}
13202 break;
13203
13204 case 799:
13205
13206
13207 #line 4387 "drizzled/sql_yacc.yy"
13208 {}
13209 break;
13210
13211 case 800:
13212
13213
13214 #line 4392 "drizzled/sql_yacc.yy"
13215 {
13216 Lex.insert_list = new List_item;
13217 }
13218 break;
13219
13220 case 801:
13221
13222
13223 #line 4396 "drizzled/sql_yacc.yy"
13224 {
13225 Lex.many_values.push_back(Lex.insert_list);
13226 }
13227 break;
13228
13229 case 802:
13230
13231
13232 #line 4402 "drizzled/sql_yacc.yy"
13233 {}
13234 break;
13235
13236 case 804:
13237
13238
13239 #line 4408 "drizzled/sql_yacc.yy"
13240 {
13241 Lex.insert_list->push_back((yyvsp[(3) - (3)].item));
13242 }
13243 break;
13244
13245 case 805:
13246
13247
13248 #line 4412 "drizzled/sql_yacc.yy"
13249 {
13250 Lex.insert_list->push_back((yyvsp[(1) - (1)].item));
13251 }
13252 break;
13253
13254 case 806:
13255
13256
13257 #line 4418 "drizzled/sql_yacc.yy"
13258 { (yyval.item)= (yyvsp[(1) - (1)].item);}
13259 break;
13260
13261 case 807:
13262
13263
13264 #line 4419 "drizzled/sql_yacc.yy"
13265 {(yyval.item)= new Item_default_value(Lex.current_context()); }
13266 break;
13267
13268 case 809:
13269
13270
13271 #line 4424 "drizzled/sql_yacc.yy"
13272 { Lex.duplicates= DUP_UPDATE; }
13273 break;
13274
13275 case 811:
13276
13277
13278 #line 4432 "drizzled/sql_yacc.yy"
13279 {
13280 init_select(&Lex);
13281 Lex.statement= new statement::Update(YYSession);
13282 Lex.lock_option= TL_UNLOCK;
13283 Lex.duplicates= DUP_ERROR;
13284 if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(3) - (5)].table), NULL,0))
13285 DRIZZLE_YYABORT;
13286
13287 if (Lex.select_lex.get_table_list()->derived)
13288 {
13289
13290 my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
13291 Lex.select_lex.get_table_list()->alias, "UPDATE");
13292 DRIZZLE_YYABORT;
13293 }
13294
13295
13296
13297
13298
13299 Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13300 }
13301 break;
13302
13303 case 812:
13304
13305
13306 #line 4454 "drizzled/sql_yacc.yy"
13307 {}
13308 break;
13309
13310 case 815:
13311
13312
13313 #line 4464 "drizzled/sql_yacc.yy"
13314 {
13315 YYSession->add_item_to_list((yyvsp[(1) - (3)].item));
13316 YYSession->add_value_to_list((yyvsp[(3) - (3)].item));
13317 }
13318 break;
13319
13320 case 818:
13321
13322
13323 #line 4477 "drizzled/sql_yacc.yy"
13324 {
13325 Lex.update_list.push_back((yyvsp[(1) - (3)].item));
13326 Lex.value_list.push_back((yyvsp[(3) - (3)].item));
13327 }
13328 break;
13329
13330 case 819:
13331
13332
13333 #line 4487 "drizzled/sql_yacc.yy"
13334 {
13335 Lex.statement= new statement::Delete(YYSession);
13336 init_select(&Lex);
13337 Lex.lock_option= TL_WRITE_DEFAULT;
13338 Lex.select_lex.init_order();
13339 Lex.current_select->add_table_to_list(YYSession, (yyvsp[(4) - (4)].table), NULL, TL_OPTION_UPDATING, Lex.lock_option);
13340 }
13341 break;
13342
13343 case 820:
13344
13345
13346 #line 4495 "drizzled/sql_yacc.yy"
13347 {}
13348 break;
13349
13350 case 821:
13351
13352
13353 #line 4499 "drizzled/sql_yacc.yy"
13354 { Lex.ignore= 0; }
13355 break;
13356
13357 case 822:
13358
13359
13360 #line 4500 "drizzled/sql_yacc.yy"
13361 { Lex.ignore= 1; }
13362 break;
13363
13364 case 823:
13365
13366
13367 #line 4505 "drizzled/sql_yacc.yy"
13368 {
13369 Lex.statement= new statement::Truncate(YYSession);
13370 Lex.select_lex.options= 0;
13371 Lex.select_lex.init_order();
13372 }
13373 break;
13374
13375 case 826:
13376
13377
13378 #line 4521 "drizzled/sql_yacc.yy"
13379 {
13380 Lex.lock_option= TL_READ;
13381 init_select(&Lex);
13382 Lex.current_select->parsing_place= SELECT_LIST;
13383 }
13384 break;
13385
13386 case 827:
13387
13388
13389 #line 4527 "drizzled/sql_yacc.yy"
13390 {}
13391 break;
13392
13393 case 828:
13394
13395
13396 #line 4533 "drizzled/sql_yacc.yy"
13397 {
13398 if (not show::buildSchemas(YYSession))
13399 DRIZZLE_YYABORT;
13400 }
13401 break;
13402
13403 case 829:
13404
13405
13406 #line 4539 "drizzled/sql_yacc.yy"
13407 {
13408 if (not show::buildTables(YYSession, (yyvsp[(2) - (3)].simple_string)))
13409 DRIZZLE_YYABORT;
13410 }
13411 break;
13412
13413 case 830:
13414
13415
13416 #line 4545 "drizzled/sql_yacc.yy"
13417 {
13418 if (not show::buildTemporaryTables(YYSession))
13419 DRIZZLE_YYABORT;
13420 }
13421 break;
13422
13423 case 831:
13424
13425
13426 #line 4551 "drizzled/sql_yacc.yy"
13427 {
13428 if (not show::buildTableStatus(YYSession, (yyvsp[(3) - (4)].simple_string)))
13429 DRIZZLE_YYABORT;
13430 }
13431 break;
13432
13433 case 832:
13434
13435
13436 #line 4557 "drizzled/sql_yacc.yy"
13437 {
13438 if (not show::buildColumns(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13439 DRIZZLE_YYABORT;
13440 }
13441 break;
13442
13443 case 833:
13444
13445
13446 #line 4563 "drizzled/sql_yacc.yy"
13447 {
13448 if (not show::buildIndex(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13449 DRIZZLE_YYABORT;
13450 }
13451 break;
13452
13453 case 834:
13454
13455
13456 #line 4568 "drizzled/sql_yacc.yy"
13457 {
13458 show::buildSelectWarning(YYSession);
13459 }
13460 break;
13461
13462 case 835:
13463
13464
13465 #line 4572 "drizzled/sql_yacc.yy"
13466 {
13467 show::buildSelectError(YYSession);
13468 }
13469 break;
13470
13471 case 836:
13472
13473
13474 #line 4576 "drizzled/sql_yacc.yy"
13475 {
13476 show::buildWarnings(YYSession);
13477 }
13478 break;
13479
13480 case 837:
13481
13482
13483 #line 4580 "drizzled/sql_yacc.yy"
13484 {
13485 show::buildErrors(YYSession);
13486 }
13487 break;
13488
13489 case 838:
13490
13491
13492 #line 4584 "drizzled/sql_yacc.yy"
13493 {
13494 if (not show::buildStatus(YYSession, (yyvsp[(1) - (3)].var_type)))
13495 DRIZZLE_YYABORT;
13496 }
13497 break;
13498
13499 case 839:
13500
13501
13502 #line 4589 "drizzled/sql_yacc.yy"
13503 {
13504 if (not show::buildEngineStatus(YYSession, (yyvsp[(1) - (2)].lex_str)))
13505 DRIZZLE_YYABORT;
13506 }
13507 break;
13508
13509 case 840:
13510
13511
13512 #line 4594 "drizzled/sql_yacc.yy"
13513 {
13514 if (not show::buildCreateTable(YYSession, (yyvsp[(3) - (3)].table)))
13515 DRIZZLE_YYABORT;
13516 }
13517 break;
13518
13519 case 841:
13520
13521
13522 #line 4599 "drizzled/sql_yacc.yy"
13523 {
13524 if (not show::buildProcesslist(YYSession))
13525 DRIZZLE_YYABORT;
13526 }
13527 break;
13528
13529 case 842:
13530
13531
13532 #line 4604 "drizzled/sql_yacc.yy"
13533 {
13534 if (not show::buildVariables(YYSession, (yyvsp[(1) - (3)].var_type)))
13535 DRIZZLE_YYABORT;
13536 }
13537 break;
13538
13539 case 843:
13540
13541
13542 #line 4609 "drizzled/sql_yacc.yy"
13543 {
13544 if (not show::buildCreateSchema(YYSession, (yyvsp[(4) - (4)].lex_str)))
13545 DRIZZLE_YYABORT;
13546 }
13547 break;
13548
13549 case 844:
13550
13551
13552 #line 4615 "drizzled/sql_yacc.yy"
13553 { (yyval.simple_string)= 0; }
13554 break;
13555
13556 case 845:
13557
13558
13559 #line 4616 "drizzled/sql_yacc.yy"
13560 { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).data(); }
13561 break;
13562
13563 case 849:
13564
13565
13566 #line 4627 "drizzled/sql_yacc.yy"
13567 {
13568 Lex.wild= new (YYSession->mem_root) String((yyvsp[(2) - (2)].lex_str).data(), (yyvsp[(2) - (2)].lex_str).size(), system_charset_info);
13569 }
13570 break;
13571
13572 case 850:
13573
13574
13575 #line 4631 "drizzled/sql_yacc.yy"
13576 {
13577 Lex.current_select->where= (yyvsp[(2) - (2)].item);
13578 if ((yyvsp[(2) - (2)].item))
13579 (yyvsp[(2) - (2)].item)->top_level_item();
13580 }
13581 break;
13582
13583 case 851:
13584
13585
13586 #line 4641 "drizzled/sql_yacc.yy"
13587 {
13588 if (not show::buildDescribe(YYSession, (yyvsp[(2) - (2)].table)))
13589 {
13590 DRIZZLE_YYABORT;
13591 }
13592 }
13593 break;
13594
13595 case 852:
13596
13597
13598 #line 4647 "drizzled/sql_yacc.yy"
13599 {}
13600 break;
13601
13602 case 853:
13603
13604
13605 #line 4649 "drizzled/sql_yacc.yy"
13606 { Lex.describe|= DESCRIBE_NORMAL; }
13607 break;
13608
13609 case 854:
13610
13611
13612 #line 4651 "drizzled/sql_yacc.yy"
13613 {
13614 Lex.select_lex.options|= SELECT_DESCRIBE;
13615 }
13616 break;
13617
13618 case 857:
13619
13620
13621 #line 4662 "drizzled/sql_yacc.yy"
13622 {}
13623 break;
13624
13625 case 858:
13626
13627
13628 #line 4663 "drizzled/sql_yacc.yy"
13629 { Lex.describe|= DESCRIBE_EXTENDED; }
13630 break;
13631
13632 case 859:
13633
13634
13635 #line 4667 "drizzled/sql_yacc.yy"
13636 {}
13637 break;
13638
13639 case 860:
13640
13641
13642 #line 4668 "drizzled/sql_yacc.yy"
13643 { Lex.wild= (yyvsp[(1) - (1)].string); }
13644 break;
13645
13646 case 861:
13647
13648
13649 #line 4670 "drizzled/sql_yacc.yy"
13650 {
13651 Lex.wild= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), system_charset_info);
13652 }
13653 break;
13654
13655 case 862:
13656
13657
13658 #line 4680 "drizzled/sql_yacc.yy"
13659 {
13660 Lex.statement= new statement::Flush(YYSession);
13661 }
13662 break;
13663
13664 case 863:
13665
13666
13667 #line 4684 "drizzled/sql_yacc.yy"
13668 {}
13669 break;
13670
13671 case 866:
13672
13673
13674 #line 4694 "drizzled/sql_yacc.yy"
13675 {
13676 statement::Flush *statement= (statement::Flush*)Lex.statement;
13677 statement->setFlushTables(true);
13678 }
13679 break;
13680
13681 case 867:
13682
13683
13684 #line 4698 "drizzled/sql_yacc.yy"
13685 {}
13686 break;
13687
13688 case 868:
13689
13690
13691 #line 4700 "drizzled/sql_yacc.yy"
13692 {
13693 statement::Flush *statement= (statement::Flush*)Lex.statement;
13694 statement->setFlushTablesWithReadLock(true);
13695 }
13696 break;
13697
13698 case 869:
13699
13700
13701 #line 4705 "drizzled/sql_yacc.yy"
13702 {
13703 statement::Flush *statement= (statement::Flush*)Lex.statement;
13704 statement->setFlushLog(true);
13705 }
13706 break;
13707
13708 case 870:
13709
13710
13711 #line 4710 "drizzled/sql_yacc.yy"
13712 {
13713 statement::Flush *statement= (statement::Flush*)Lex.statement;
13714 statement->setFlushStatus(true);
13715 }
13716 break;
13717
13718 case 871:
13719
13720
13721 #line 4715 "drizzled/sql_yacc.yy"
13722 {
13723 statement::Flush *statement= (statement::Flush*)Lex.statement;
13724 statement->setFlushGlobalStatus(true);
13725 }
13726 break;
13727
13728 case 872:
13729
13730
13731 #line 4722 "drizzled/sql_yacc.yy"
13732 {}
13733 break;
13734
13735 case 873:
13736
13737
13738 #line 4723 "drizzled/sql_yacc.yy"
13739 {}
13740 break;
13741
13742 case 874:
13743
13744
13745 #line 4730 "drizzled/sql_yacc.yy"
13746 {
13747 Lex.statement= new statement::Kill(YYSession, (yyvsp[(3) - (3)].item), (yyvsp[(2) - (3)].num));
13748 }
13749 break;
13750
13751 case 875:
13752
13753
13754 #line 4736 "drizzled/sql_yacc.yy"
13755 { (yyval.num)= false; }
13756 break;
13757
13758 case 876:
13759
13760
13761 #line 4737 "drizzled/sql_yacc.yy"
13762 { (yyval.num)= false; }
13763 break;
13764
13765 case 877:
13766
13767
13768 #line 4738 "drizzled/sql_yacc.yy"
13769 { (yyval.num)= true; }
13770 break;
13771
13772 case 878:
13773
13774
13775 #line 4745 "drizzled/sql_yacc.yy"
13776 {
13777 Lex.statement= new statement::ChangeSchema(YYSession);
13778 Lex.select_lex.db= (yyvsp[(2) - (2)].lex_str).data();
13779 }
13780 break;
13781
13782 case 879:
13783
13784
13785 #line 4755 "drizzled/sql_yacc.yy"
13786 {
13787 statement::Load *statement= new statement::Load(YYSession);
13788 Lex.statement= statement;
13789
13790 Lex_input_stream *lip= YYSession->m_lip;
13791 statement->fname_start= lip->get_ptr();
13792 }
13793 break;
13794
13795 case 880:
13796
13797
13798 #line 4763 "drizzled/sql_yacc.yy"
13799 {
13800 Lex.lock_option= (yyvsp[(4) - (6)].lock_type);
13801 Lex.duplicates= DUP_ERROR;
13802 Lex.ignore= 0;
13803 Lex.exchange= new file_exchange((yyvsp[(6) - (6)].lex_str).data(), 0, (yyvsp[(2) - (6)].filetype));
13804 }
13805 break;
13806
13807 case 881:
13808
13809
13810 #line 4770 "drizzled/sql_yacc.yy"
13811 {
13812 Lex_input_stream *lip= YYSession->m_lip;
13813 ((statement::Load *)Lex.statement)->fname_end= lip->get_ptr();
13814 }
13815 break;
13816
13817 case 882:
13818
13819
13820 #line 4775 "drizzled/sql_yacc.yy"
13821 {
13822 if (!Lex.current_select->add_table_to_list(YYSession,
13823 (yyvsp[(12) - (12)].table), NULL, TL_OPTION_UPDATING,
13824 Lex.lock_option))
13825 DRIZZLE_YYABORT;
13826 Lex.field_list.clear();
13827 Lex.update_list.clear();
13828 Lex.value_list.clear();
13829 }
13830 break;
13831
13832 case 883:
13833
13834
13835 #line 4786 "drizzled/sql_yacc.yy"
13836 {}
13837 break;
13838
13839 case 884:
13840
13841
13842 #line 4790 "drizzled/sql_yacc.yy"
13843 { (yyval.filetype)= FILETYPE_CSV; }
13844 break;
13845
13846 case 885:
13847
13848
13849 #line 4793 "drizzled/sql_yacc.yy"
13850 { (yyval.lock_type)= TL_WRITE_DEFAULT; }
13851 break;
13852
13853 case 886:
13854
13855
13856 #line 4795 "drizzled/sql_yacc.yy"
13857 {
13858 (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
13859 }
13860 break;
13861
13862 case 887:
13863
13864
13865 #line 4801 "drizzled/sql_yacc.yy"
13866 { Lex.duplicates=DUP_ERROR; }
13867 break;
13868
13869 case 888:
13870
13871
13872 #line 4802 "drizzled/sql_yacc.yy"
13873 { Lex.duplicates=DUP_REPLACE; }
13874 break;
13875
13876 case 889:
13877
13878
13879 #line 4803 "drizzled/sql_yacc.yy"
13880 { Lex.ignore= 1; }
13881 break;
13882
13883 case 890:
13884
13885
13886 #line 4807 "drizzled/sql_yacc.yy"
13887 { Lex.duplicates=DUP_ERROR; }
13888 break;
13889
13890 case 891:
13891
13892
13893 #line 4808 "drizzled/sql_yacc.yy"
13894 { Lex.duplicates=DUP_ERROR; }
13895 break;
13896
13897 case 892:
13898
13899
13900 #line 4809 "drizzled/sql_yacc.yy"
13901 { Lex.duplicates=DUP_REPLACE; }
13902 break;
13903
13904 case 893:
13905
13906
13907 #line 4810 "drizzled/sql_yacc.yy"
13908 { Lex.ignore= true; }
13909 break;
13910
13911 case 894:
13912
13913
13914 #line 4811 "drizzled/sql_yacc.yy"
13915 { Lex.duplicates=DUP_REPLACE; }
13916 break;
13917
13918 case 895:
13919
13920
13921 #line 4812 "drizzled/sql_yacc.yy"
13922 { Lex.ignore= true; }
13923 break;
13924
13925 case 900:
13926
13927
13928 #line 4827 "drizzled/sql_yacc.yy"
13929 {
13930 assert(Lex.exchange != 0);
13931 Lex.exchange->field_term= (yyvsp[(3) - (3)].string);
13932 }
13933 break;
13934
13935 case 901:
13936
13937
13938 #line 4832 "drizzled/sql_yacc.yy"
13939 {
13940 assert(Lex.exchange != 0);
13941 Lex.exchange->enclosed= (yyvsp[(4) - (4)].string);
13942 Lex.exchange->opt_enclosed= 1;
13943 }
13944 break;
13945
13946 case 902:
13947
13948
13949 #line 4838 "drizzled/sql_yacc.yy"
13950 {
13951 assert(Lex.exchange != 0);
13952 Lex.exchange->enclosed= (yyvsp[(3) - (3)].string);
13953 }
13954 break;
13955
13956 case 903:
13957
13958
13959 #line 4843 "drizzled/sql_yacc.yy"
13960 {
13961 assert(Lex.exchange != 0);
13962 Lex.exchange->escaped= (yyvsp[(3) - (3)].string);
13963 }
13964 break;
13965
13966 case 908:
13967
13968
13969 #line 4861 "drizzled/sql_yacc.yy"
13970 {
13971 assert(Lex.exchange != 0);
13972 Lex.exchange->line_term= (yyvsp[(3) - (3)].string);
13973 }
13974 break;
13975
13976 case 909:
13977
13978
13979 #line 4866 "drizzled/sql_yacc.yy"
13980 {
13981 assert(Lex.exchange != 0);
13982 Lex.exchange->line_start= (yyvsp[(3) - (3)].string);
13983 }
13984 break;
13985
13986 case 911:
13987
13988
13989 #line 4875 "drizzled/sql_yacc.yy"
13990 {
13991 assert(Lex.exchange != 0);
13992 Lex.exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).data());
13993 }
13994 break;
13995
13996 case 912:
13997
13998
13999 #line 4882 "drizzled/sql_yacc.yy"
14000 { }
14001 break;
14002
14003 case 913:
14004
14005
14006 #line 4883 "drizzled/sql_yacc.yy"
14007 { }
14008 break;
14009
14010 case 914:
14011
14012
14013 #line 4887 "drizzled/sql_yacc.yy"
14014 {}
14015 break;
14016
14017 case 915:
14018
14019
14020 #line 4888 "drizzled/sql_yacc.yy"
14021 {}
14022 break;
14023
14024 case 916:
14025
14026
14027 #line 4889 "drizzled/sql_yacc.yy"
14028 {}
14029 break;
14030
14031 case 917:
14032
14033
14034 #line 4894 "drizzled/sql_yacc.yy"
14035 { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
14036 break;
14037
14038 case 918:
14039
14040
14041 #line 4896 "drizzled/sql_yacc.yy"
14042 { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
14043 break;
14044
14045 case 919:
14046
14047
14048 #line 4900 "drizzled/sql_yacc.yy"
14049 {(yyval.item)= (yyvsp[(1) - (1)].item);}
14050 break;
14051
14052 case 920:
14053
14054
14055 #line 4902 "drizzled/sql_yacc.yy"
14056 { (yyval.item)= new Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str)); }
14057 break;
14058
14059 case 921:
14060
14061
14062 #line 4906 "drizzled/sql_yacc.yy"
14063 {}
14064 break;
14065
14066 case 922:
14067
14068
14069 #line 4907 "drizzled/sql_yacc.yy"
14070 {}
14071 break;
14072
14073 case 923:
14074
14075
14076 #line 4914 "drizzled/sql_yacc.yy"
14077 {
14078 (yyval.item) = new Item_string((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->variables.getCollation());
14079 }
14080 break;
14081
14082 case 924:
14083
14084
14085 #line 4918 "drizzled/sql_yacc.yy"
14086 {
14087 ((Item_string*) (yyvsp[(1) - (2)].item))->append((yyvsp[(2) - (2)].lex_str));
14088 }
14089 break;
14090
14091 case 925:
14092
14093
14094 #line 4925 "drizzled/sql_yacc.yy"
14095 {
14096 (yyval.string)= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->variables.getCollation());
14097 }
14098 break;
14099
14100 case 926:
14101
14102
14103 #line 4929 "drizzled/sql_yacc.yy"
14104 {
14105 Item *tmp= new Item_hex_string((yyvsp[(1) - (1)].lex_str));
14106
14107
14108
14109
14110 (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str(NULL) : NULL;
14111 }
14112 break;
14113
14114 case 927:
14115
14116
14117 #line 4938 "drizzled/sql_yacc.yy"
14118 {
14119 Item *tmp= new Item_bin_string((yyvsp[(1) - (1)].lex_str));
14120
14121
14122
14123
14124 (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str(NULL) : NULL;
14125 }
14126 break;
14127
14128 case 928:
14129
14130
14131 #line 4949 "drizzled/sql_yacc.yy"
14132 { (yyval.item) = (yyvsp[(1) - (1)].item); }
14133 break;
14134
14135 case 929:
14136
14137
14138 #line 4950 "drizzled/sql_yacc.yy"
14139 { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14140 break;
14141
14142 case 930:
14143
14144
14145 #line 4952 "drizzled/sql_yacc.yy"
14146 {
14147 (yyvsp[(2) - (2)].item_num)->max_length++;
14148 (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14149 }
14150 break;
14151
14152 case 931:
14153
14154
14155 #line 4959 "drizzled/sql_yacc.yy"
14156 { (yyval.item) = (yyvsp[(1) - (1)].item); }
14157 break;
14158
14159 case 932:
14160
14161
14162 #line 4960 "drizzled/sql_yacc.yy"
14163 { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14164 break;
14165
14166 case 933:
14167
14168
14169 #line 4962 "drizzled/sql_yacc.yy"
14170 {
14171 (yyval.item) = new Item_null();
14172 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14173 }
14174 break;
14175
14176 case 934:
14177
14178
14179 #line 4966 "drizzled/sql_yacc.yy"
14180 { (yyval.item)= new drizzled::item::False(); }
14181 break;
14182
14183 case 935:
14184
14185
14186 #line 4967 "drizzled/sql_yacc.yy"
14187 { (yyval.item)= new drizzled::item::True(); }
14188 break;
14189
14190 case 936:
14191
14192
14193 #line 4968 "drizzled/sql_yacc.yy"
14194 { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str));}
14195 break;
14196
14197 case 937:
14198
14199
14200 #line 4969 "drizzled/sql_yacc.yy"
14201 { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str)); }
14202 break;
14203
14204 case 938:
14205
14206
14207 #line 4970 "drizzled/sql_yacc.yy"
14208 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14209 break;
14210
14211 case 939:
14212
14213
14214 #line 4971 "drizzled/sql_yacc.yy"
14215 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14216 break;
14217
14218 case 940:
14219
14220
14221 #line 4975 "drizzled/sql_yacc.yy"
14222 { (yyval.item) = (yyvsp[(1) - (1)].item); }
14223 break;
14224
14225 case 941:
14226
14227
14228 #line 4976 "drizzled/sql_yacc.yy"
14229 { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str));}
14230 break;
14231
14232 case 942:
14233
14234
14235 #line 4977 "drizzled/sql_yacc.yy"
14236 { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str)); }
14237 break;
14238
14239 case 943:
14240
14241
14242 #line 4978 "drizzled/sql_yacc.yy"
14243 { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14244 break;
14245
14246 case 944:
14247
14248
14249 #line 4980 "drizzled/sql_yacc.yy"
14250 {
14251 (yyval.item) = new Item_null();
14252 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14253 }
14254 break;
14255
14256 case 945:
14257
14258
14259 #line 4984 "drizzled/sql_yacc.yy"
14260 { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14261 break;
14262
14263 case 946:
14264
14265
14266 #line 4986 "drizzled/sql_yacc.yy"
14267 {
14268 (yyvsp[(2) - (2)].item_num)->max_length++;
14269 (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14270 }
14271 break;
14272
14273 case 947:
14274
14275
14276 #line 4994 "drizzled/sql_yacc.yy"
14277 {
14278 (yyval.item) = new Item_null();
14279 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14280 }
14281 break;
14282
14283 case 948:
14284
14285
14286 #line 4999 "drizzled/sql_yacc.yy"
14287 {
14288 (yyval.item)= new drizzled::item::False();
14289 }
14290 break;
14291
14292 case 949:
14293
14294
14295 #line 5003 "drizzled/sql_yacc.yy"
14296 {
14297 (yyval.item)= new drizzled::item::True();
14298 }
14299 break;
14300
14301 case 950:
14302
14303
14304 #line 5009 "drizzled/sql_yacc.yy"
14305 { (yyval.item) = (yyvsp[(1) - (1)].item); }
14306 break;
14307
14308 case 951:
14309
14310
14311 #line 5011 "drizzled/sql_yacc.yy"
14312 {
14313 (yyval.item) = new Item_null();
14314 YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14315 }
14316 break;
14317
14318 case 952:
14319
14320
14321 #line 5015 "drizzled/sql_yacc.yy"
14322 { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14323 break;
14324
14325 case 953:
14326
14327
14328 #line 5016 "drizzled/sql_yacc.yy"
14329 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14330 break;
14331
14332 case 954:
14333
14334
14335 #line 5017 "drizzled/sql_yacc.yy"
14336 { (yyval.item) = (yyvsp[(2) - (2)].item); }
14337 break;
14338
14339 case 955:
14340
14341
14342 #line 5022 "drizzled/sql_yacc.yy"
14343 {
14344 int error;
14345 (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).data(), internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error), (yyvsp[(1) - (1)].lex_str).size());
14346 }
14347 break;
14348
14349 case 956:
14350
14351
14352 #line 5027 "drizzled/sql_yacc.yy"
14353 {
14354 int error;
14355 (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).data(), internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error), (yyvsp[(1) - (1)].lex_str).size());
14356 }
14357 break;
14358
14359 case 957:
14360
14361
14362 #line 5032 "drizzled/sql_yacc.yy"
14363 { (yyval.item_num) = new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
14364 break;
14365
14366 case 958:
14367
14368
14369 #line 5034 "drizzled/sql_yacc.yy"
14370 {
14371 (yyval.item_num)= new Item_decimal((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->charset());
14372 if (YYSession->is_error())
14373 {
14374 DRIZZLE_YYABORT;
14375 }
14376 }
14377 break;
14378
14379 case 959:
14380
14381
14382 #line 5042 "drizzled/sql_yacc.yy"
14383 {
14384 (yyval.item_num) = new Item_float((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size());
14385 if (YYSession->is_error())
14386 {
14387 DRIZZLE_YYABORT;
14388 }
14389 }
14390 break;
14391
14392 case 960:
14393
14394
14395 #line 5056 "drizzled/sql_yacc.yy"
14396 { (yyval.item)=(yyvsp[(1) - (1)].item); }
14397 break;
14398
14399 case 961:
14400
14401
14402 #line 5057 "drizzled/sql_yacc.yy"
14403 { (yyval.item)=(yyvsp[(1) - (1)].item); }
14404 break;
14405
14406 case 962:
14407
14408
14409 #line 5062 "drizzled/sql_yacc.yy"
14410 {
14411 (yyval.item)= parser::buildTableWild(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str));
14412 }
14413 break;
14414
14415 case 963:
14416
14417
14418 #line 5066 "drizzled/sql_yacc.yy"
14419 {
14420 (yyval.item)= parser::buildTableWild(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str));
14421 }
14422 break;
14423
14424 case 964:
14425
14426
14427 #line 5072 "drizzled/sql_yacc.yy"
14428 { (yyval.item)=(yyvsp[(1) - (1)].item); }
14429 break;
14430
14431 case 965:
14432
14433
14434 #line 5077 "drizzled/sql_yacc.yy"
14435 {
14436 (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), null_lex_string(), (yyvsp[(1) - (1)].lex_str));
14437 }
14438 break;
14439
14440 case 966:
14441
14442
14443 #line 5080 "drizzled/sql_yacc.yy"
14444 { (yyval.item)= (yyvsp[(1) - (1)].item); }
14445 break;
14446
14447 case 967:
14448
14449
14450 #line 5085 "drizzled/sql_yacc.yy"
14451 {
14452 (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str));
14453 }
14454 break;
14455
14456 case 968:
14457
14458
14459 #line 5089 "drizzled/sql_yacc.yy"
14460 {
14461 (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), (yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str));
14462 }
14463 break;
14464
14465 case 969:
14466
14467
14468 #line 5093 "drizzled/sql_yacc.yy"
14469 {
14470 (yyval.item)= parser::buildIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), (yyvsp[(5) - (5)].lex_str));
14471 }
14472 break;
14473
14474 case 970:
14475
14476
14477 #line 5100 "drizzled/sql_yacc.yy"
14478 {
14479 (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);
14480 }
14481 break;
14482
14483 case 971:
14484
14485
14486 #line 5104 "drizzled/sql_yacc.yy"
14487 {
14488 if (not parser::checkFieldIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str)))
14489 DRIZZLE_YYABORT;
14490
14491 (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
14492 }
14493 break;
14494
14495 case 972:
14496
14497
14498 #line 5111 "drizzled/sql_yacc.yy"
14499 {
14500 if (not parser::checkFieldIdent(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str)))
14501 DRIZZLE_YYABORT;
14502
14503 (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
14504 }
14505 break;
14506
14507 case 973:
14508
14509
14510 #line 5118 "drizzled/sql_yacc.yy"
14511 {
14512 (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);
14513 }
14514 break;
14515
14516 case 974:
14517
14518
14519 #line 5125 "drizzled/sql_yacc.yy"
14520 {
14521 (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
14522 }
14523 break;
14524
14525 case 975:
14526
14527
14528 #line 5129 "drizzled/sql_yacc.yy"
14529 {
14530 (yyval.table)=new Table_ident((yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str));
14531 }
14532 break;
14533
14534 case 976:
14535
14536
14537 #line 5133 "drizzled/sql_yacc.yy"
14538 {
14539 (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
14540 }
14541 break;
14542
14543 case 979:
14544
14545
14546 #line 5148 "drizzled/sql_yacc.yy"
14547 {
14548 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14549 }
14550 break;
14551
14552 case 980:
14553
14554
14555 #line 5152 "drizzled/sql_yacc.yy"
14556 {
14557 const charset_info_st * const cs= system_charset_info;
14558 int dummy_error;
14559 uint32_t wlen= cs->cset->well_formed_len(*cs, (yyvsp[(1) - (1)].lex_str), (yyvsp[(1) - (1)].lex_str).size(), &dummy_error);
14560 if (wlen < (yyvsp[(1) - (1)].lex_str).size())
14561 {
14562 my_error(ER_INVALID_CHARACTER_STRING, MYF(0), cs->csname, (yyvsp[(1) - (1)].lex_str).data() + wlen);
14563 DRIZZLE_YYABORT;
14564 }
14565 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14566 }
14567 break;
14568
14569 case 981:
14570
14571
14572 #line 5167 "drizzled/sql_yacc.yy"
14573 {
14574 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14575 }
14576 break;
14577
14578 case 982:
14579
14580
14581 #line 5174 "drizzled/sql_yacc.yy"
14582 {
14583 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14584 }
14585 break;
14586
14587 case 983:
14588
14589
14590 #line 5181 "drizzled/sql_yacc.yy"
14591 {
14592 (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14593 }
14594 break;
14595
14596 case 984:
14597
14598
14599 #line 5187 "drizzled/sql_yacc.yy"
14600 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
14601 break;
14602
14603 case 985:
14604
14605
14606 #line 5189 "drizzled/sql_yacc.yy"
14607 {
14608 (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
14609 }
14610 break;
14611
14612 case 986:
14613
14614
14615 #line 5195 "drizzled/sql_yacc.yy"
14616 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14617 break;
14618
14619 case 987:
14620
14621
14622 #line 5196 "drizzled/sql_yacc.yy"
14623 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14624 break;
14625
14626 case 988:
14627
14628
14629 #line 5200 "drizzled/sql_yacc.yy"
14630 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14631 break;
14632
14633 case 989:
14634
14635
14636 #line 5201 "drizzled/sql_yacc.yy"
14637 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14638 break;
14639
14640 case 990:
14641
14642
14643 #line 5205 "drizzled/sql_yacc.yy"
14644 {}
14645 break;
14646
14647 case 991:
14648
14649
14650 #line 5206 "drizzled/sql_yacc.yy"
14651 {}
14652 break;
14653
14654 case 992:
14655
14656
14657 #line 5207 "drizzled/sql_yacc.yy"
14658 {}
14659 break;
14660
14661 case 993:
14662
14663
14664 #line 5212 "drizzled/sql_yacc.yy"
14665 {}
14666 break;
14667
14668 case 994:
14669
14670
14671 #line 5213 "drizzled/sql_yacc.yy"
14672 {}
14673 break;
14674
14675 case 995:
14676
14677
14678 #line 5214 "drizzled/sql_yacc.yy"
14679 {}
14680 break;
14681
14682 case 996:
14683
14684
14685 #line 5215 "drizzled/sql_yacc.yy"
14686 {}
14687 break;
14688
14689 case 997:
14690
14691
14692 #line 5216 "drizzled/sql_yacc.yy"
14693 {}
14694 break;
14695
14696 case 998:
14697
14698
14699 #line 5217 "drizzled/sql_yacc.yy"
14700 {}
14701 break;
14702
14703 case 999:
14704
14705
14706 #line 5218 "drizzled/sql_yacc.yy"
14707 {}
14708 break;
14709
14710 case 1000:
14711
14712
14713 #line 5219 "drizzled/sql_yacc.yy"
14714 {}
14715 break;
14716
14717 case 1001:
14718
14719
14720 #line 5220 "drizzled/sql_yacc.yy"
14721 {}
14722 break;
14723
14724 case 1002:
14725
14726
14727 #line 5221 "drizzled/sql_yacc.yy"
14728 {}
14729 break;
14730
14731 case 1003:
14732
14733
14734 #line 5222 "drizzled/sql_yacc.yy"
14735 {}
14736 break;
14737
14738 case 1004:
14739
14740
14741 #line 5223 "drizzled/sql_yacc.yy"
14742 {}
14743 break;
14744
14745 case 1005:
14746
14747
14748 #line 5224 "drizzled/sql_yacc.yy"
14749 {}
14750 break;
14751
14752 case 1006:
14753
14754
14755 #line 5225 "drizzled/sql_yacc.yy"
14756 {}
14757 break;
14758
14759 case 1007:
14760
14761
14762 #line 5226 "drizzled/sql_yacc.yy"
14763 {}
14764 break;
14765
14766 case 1008:
14767
14768
14769 #line 5227 "drizzled/sql_yacc.yy"
14770 {}
14771 break;
14772
14773 case 1009:
14774
14775
14776 #line 5228 "drizzled/sql_yacc.yy"
14777 {}
14778 break;
14779
14780 case 1010:
14781
14782
14783 #line 5229 "drizzled/sql_yacc.yy"
14784 {}
14785 break;
14786
14787 case 1011:
14788
14789
14790 #line 5230 "drizzled/sql_yacc.yy"
14791 {}
14792 break;
14793
14794 case 1012:
14795
14796
14797 #line 5231 "drizzled/sql_yacc.yy"
14798 {}
14799 break;
14800
14801 case 1013:
14802
14803
14804 #line 5232 "drizzled/sql_yacc.yy"
14805 {}
14806 break;
14807
14808 case 1014:
14809
14810
14811 #line 5242 "drizzled/sql_yacc.yy"
14812 {}
14813 break;
14814
14815 case 1015:
14816
14817
14818 #line 5243 "drizzled/sql_yacc.yy"
14819 {}
14820 break;
14821
14822 case 1016:
14823
14824
14825 #line 5244 "drizzled/sql_yacc.yy"
14826 {}
14827 break;
14828
14829 case 1017:
14830
14831
14832 #line 5245 "drizzled/sql_yacc.yy"
14833 {}
14834 break;
14835
14836 case 1018:
14837
14838
14839 #line 5246 "drizzled/sql_yacc.yy"
14840 {}
14841 break;
14842
14843 case 1019:
14844
14845
14846 #line 5247 "drizzled/sql_yacc.yy"
14847 {}
14848 break;
14849
14850 case 1020:
14851
14852
14853 #line 5248 "drizzled/sql_yacc.yy"
14854 {}
14855 break;
14856
14857 case 1021:
14858
14859
14860 #line 5249 "drizzled/sql_yacc.yy"
14861 {}
14862 break;
14863
14864 case 1022:
14865
14866
14867 #line 5250 "drizzled/sql_yacc.yy"
14868 {}
14869 break;
14870
14871 case 1023:
14872
14873
14874 #line 5251 "drizzled/sql_yacc.yy"
14875 {}
14876 break;
14877
14878 case 1024:
14879
14880
14881 #line 5252 "drizzled/sql_yacc.yy"
14882 {}
14883 break;
14884
14885 case 1025:
14886
14887
14888 #line 5253 "drizzled/sql_yacc.yy"
14889 {}
14890 break;
14891
14892 case 1026:
14893
14894
14895 #line 5254 "drizzled/sql_yacc.yy"
14896 {}
14897 break;
14898
14899 case 1027:
14900
14901
14902 #line 5255 "drizzled/sql_yacc.yy"
14903 {}
14904 break;
14905
14906 case 1028:
14907
14908
14909 #line 5256 "drizzled/sql_yacc.yy"
14910 {}
14911 break;
14912
14913 case 1029:
14914
14915
14916 #line 5257 "drizzled/sql_yacc.yy"
14917 {}
14918 break;
14919
14920 case 1030:
14921
14922
14923 #line 5258 "drizzled/sql_yacc.yy"
14924 {}
14925 break;
14926
14927 case 1031:
14928
14929
14930 #line 5259 "drizzled/sql_yacc.yy"
14931 {}
14932 break;
14933
14934 case 1032:
14935
14936
14937 #line 5260 "drizzled/sql_yacc.yy"
14938 {}
14939 break;
14940
14941 case 1033:
14942
14943
14944 #line 5261 "drizzled/sql_yacc.yy"
14945 {}
14946 break;
14947
14948 case 1034:
14949
14950
14951 #line 5262 "drizzled/sql_yacc.yy"
14952 {}
14953 break;
14954
14955 case 1035:
14956
14957
14958 #line 5263 "drizzled/sql_yacc.yy"
14959 {}
14960 break;
14961
14962 case 1036:
14963
14964
14965 #line 5264 "drizzled/sql_yacc.yy"
14966 {}
14967 break;
14968
14969 case 1037:
14970
14971
14972 #line 5265 "drizzled/sql_yacc.yy"
14973 {}
14974 break;
14975
14976 case 1038:
14977
14978
14979 #line 5266 "drizzled/sql_yacc.yy"
14980 {}
14981 break;
14982
14983 case 1039:
14984
14985
14986 #line 5267 "drizzled/sql_yacc.yy"
14987 {}
14988 break;
14989
14990 case 1040:
14991
14992
14993 #line 5268 "drizzled/sql_yacc.yy"
14994 {}
14995 break;
14996
14997 case 1041:
14998
14999
15000 #line 5269 "drizzled/sql_yacc.yy"
15001 {}
15002 break;
15003
15004 case 1042:
15005
15006
15007 #line 5270 "drizzled/sql_yacc.yy"
15008 {}
15009 break;
15010
15011 case 1043:
15012
15013
15014 #line 5271 "drizzled/sql_yacc.yy"
15015 {}
15016 break;
15017
15018 case 1044:
15019
15020
15021 #line 5272 "drizzled/sql_yacc.yy"
15022 {}
15023 break;
15024
15025 case 1045:
15026
15027
15028 #line 5273 "drizzled/sql_yacc.yy"
15029 {}
15030 break;
15031
15032 case 1046:
15033
15034
15035 #line 5274 "drizzled/sql_yacc.yy"
15036 {}
15037 break;
15038
15039 case 1047:
15040
15041
15042 #line 5275 "drizzled/sql_yacc.yy"
15043 {}
15044 break;
15045
15046 case 1048:
15047
15048
15049 #line 5276 "drizzled/sql_yacc.yy"
15050 {}
15051 break;
15052
15053 case 1049:
15054
15055
15056 #line 5277 "drizzled/sql_yacc.yy"
15057 {}
15058 break;
15059
15060 case 1050:
15061
15062
15063 #line 5278 "drizzled/sql_yacc.yy"
15064 {}
15065 break;
15066
15067 case 1051:
15068
15069
15070 #line 5279 "drizzled/sql_yacc.yy"
15071 {}
15072 break;
15073
15074 case 1052:
15075
15076
15077 #line 5280 "drizzled/sql_yacc.yy"
15078 {}
15079 break;
15080
15081 case 1053:
15082
15083
15084 #line 5281 "drizzled/sql_yacc.yy"
15085 {}
15086 break;
15087
15088 case 1054:
15089
15090
15091 #line 5282 "drizzled/sql_yacc.yy"
15092 {}
15093 break;
15094
15095 case 1055:
15096
15097
15098 #line 5283 "drizzled/sql_yacc.yy"
15099 {}
15100 break;
15101
15102 case 1056:
15103
15104
15105 #line 5284 "drizzled/sql_yacc.yy"
15106 {}
15107 break;
15108
15109 case 1057:
15110
15111
15112 #line 5285 "drizzled/sql_yacc.yy"
15113 {}
15114 break;
15115
15116 case 1058:
15117
15118
15119 #line 5286 "drizzled/sql_yacc.yy"
15120 {}
15121 break;
15122
15123 case 1059:
15124
15125
15126 #line 5287 "drizzled/sql_yacc.yy"
15127 {}
15128 break;
15129
15130 case 1060:
15131
15132
15133 #line 5288 "drizzled/sql_yacc.yy"
15134 {}
15135 break;
15136
15137 case 1061:
15138
15139
15140 #line 5289 "drizzled/sql_yacc.yy"
15141 {}
15142 break;
15143
15144 case 1062:
15145
15146
15147 #line 5290 "drizzled/sql_yacc.yy"
15148 {}
15149 break;
15150
15151 case 1063:
15152
15153
15154 #line 5291 "drizzled/sql_yacc.yy"
15155 {}
15156 break;
15157
15158 case 1064:
15159
15160
15161 #line 5292 "drizzled/sql_yacc.yy"
15162 {}
15163 break;
15164
15165 case 1065:
15166
15167
15168 #line 5293 "drizzled/sql_yacc.yy"
15169 {}
15170 break;
15171
15172 case 1066:
15173
15174
15175 #line 5294 "drizzled/sql_yacc.yy"
15176 {}
15177 break;
15178
15179 case 1067:
15180
15181
15182 #line 5295 "drizzled/sql_yacc.yy"
15183 {}
15184 break;
15185
15186 case 1068:
15187
15188
15189 #line 5296 "drizzled/sql_yacc.yy"
15190 {}
15191 break;
15192
15193 case 1069:
15194
15195
15196 #line 5297 "drizzled/sql_yacc.yy"
15197 {}
15198 break;
15199
15200 case 1070:
15201
15202
15203 #line 5298 "drizzled/sql_yacc.yy"
15204 {}
15205 break;
15206
15207 case 1071:
15208
15209
15210 #line 5299 "drizzled/sql_yacc.yy"
15211 {}
15212 break;
15213
15214 case 1072:
15215
15216
15217 #line 5300 "drizzled/sql_yacc.yy"
15218 {}
15219 break;
15220
15221 case 1073:
15222
15223
15224 #line 5301 "drizzled/sql_yacc.yy"
15225 {}
15226 break;
15227
15228 case 1074:
15229
15230
15231 #line 5302 "drizzled/sql_yacc.yy"
15232 {}
15233 break;
15234
15235 case 1075:
15236
15237
15238 #line 5303 "drizzled/sql_yacc.yy"
15239 {}
15240 break;
15241
15242 case 1076:
15243
15244
15245 #line 5304 "drizzled/sql_yacc.yy"
15246 {}
15247 break;
15248
15249 case 1077:
15250
15251
15252 #line 5305 "drizzled/sql_yacc.yy"
15253 {}
15254 break;
15255
15256 case 1078:
15257
15258
15259 #line 5306 "drizzled/sql_yacc.yy"
15260 {}
15261 break;
15262
15263 case 1079:
15264
15265
15266 #line 5307 "drizzled/sql_yacc.yy"
15267 {}
15268 break;
15269
15270 case 1080:
15271
15272
15273 #line 5308 "drizzled/sql_yacc.yy"
15274 {}
15275 break;
15276
15277 case 1081:
15278
15279
15280 #line 5309 "drizzled/sql_yacc.yy"
15281 {}
15282 break;
15283
15284 case 1082:
15285
15286
15287 #line 5310 "drizzled/sql_yacc.yy"
15288 {}
15289 break;
15290
15291 case 1083:
15292
15293
15294 #line 5311 "drizzled/sql_yacc.yy"
15295 {}
15296 break;
15297
15298 case 1084:
15299
15300
15301 #line 5312 "drizzled/sql_yacc.yy"
15302 {}
15303 break;
15304
15305 case 1085:
15306
15307
15308 #line 5313 "drizzled/sql_yacc.yy"
15309 {}
15310 break;
15311
15312 case 1086:
15313
15314
15315 #line 5314 "drizzled/sql_yacc.yy"
15316 {}
15317 break;
15318
15319 case 1087:
15320
15321
15322 #line 5315 "drizzled/sql_yacc.yy"
15323 {}
15324 break;
15325
15326 case 1088:
15327
15328
15329 #line 5316 "drizzled/sql_yacc.yy"
15330 {}
15331 break;
15332
15333 case 1089:
15334
15335
15336 #line 5317 "drizzled/sql_yacc.yy"
15337 {}
15338 break;
15339
15340 case 1090:
15341
15342
15343 #line 5318 "drizzled/sql_yacc.yy"
15344 {}
15345 break;
15346
15347 case 1091:
15348
15349
15350 #line 5319 "drizzled/sql_yacc.yy"
15351 {}
15352 break;
15353
15354 case 1092:
15355
15356
15357 #line 5320 "drizzled/sql_yacc.yy"
15358 {}
15359 break;
15360
15361 case 1093:
15362
15363
15364 #line 5321 "drizzled/sql_yacc.yy"
15365 {}
15366 break;
15367
15368 case 1094:
15369
15370
15371 #line 5322 "drizzled/sql_yacc.yy"
15372 {}
15373 break;
15374
15375 case 1095:
15376
15377
15378 #line 5323 "drizzled/sql_yacc.yy"
15379 {}
15380 break;
15381
15382 case 1096:
15383
15384
15385 #line 5324 "drizzled/sql_yacc.yy"
15386 {}
15387 break;
15388
15389 case 1097:
15390
15391
15392 #line 5325 "drizzled/sql_yacc.yy"
15393 {}
15394 break;
15395
15396 case 1098:
15397
15398
15399 #line 5326 "drizzled/sql_yacc.yy"
15400 {}
15401 break;
15402
15403 case 1099:
15404
15405
15406 #line 5327 "drizzled/sql_yacc.yy"
15407 {}
15408 break;
15409
15410 case 1100:
15411
15412
15413 #line 5328 "drizzled/sql_yacc.yy"
15414 {}
15415 break;
15416
15417 case 1101:
15418
15419
15420 #line 5329 "drizzled/sql_yacc.yy"
15421 {}
15422 break;
15423
15424 case 1102:
15425
15426
15427 #line 5330 "drizzled/sql_yacc.yy"
15428 {}
15429 break;
15430
15431 case 1103:
15432
15433
15434 #line 5331 "drizzled/sql_yacc.yy"
15435 {}
15436 break;
15437
15438 case 1104:
15439
15440
15441 #line 5332 "drizzled/sql_yacc.yy"
15442 {}
15443 break;
15444
15445 case 1105:
15446
15447
15448 #line 5333 "drizzled/sql_yacc.yy"
15449 {}
15450 break;
15451
15452 case 1106:
15453
15454
15455 #line 5334 "drizzled/sql_yacc.yy"
15456 {}
15457 break;
15458
15459 case 1107:
15460
15461
15462 #line 5335 "drizzled/sql_yacc.yy"
15463 {}
15464 break;
15465
15466 case 1108:
15467
15468
15469 #line 5336 "drizzled/sql_yacc.yy"
15470 {}
15471 break;
15472
15473 case 1109:
15474
15475
15476 #line 5337 "drizzled/sql_yacc.yy"
15477 {}
15478 break;
15479
15480 case 1110:
15481
15482
15483 #line 5338 "drizzled/sql_yacc.yy"
15484 {}
15485 break;
15486
15487 case 1111:
15488
15489
15490 #line 5339 "drizzled/sql_yacc.yy"
15491 {}
15492 break;
15493
15494 case 1112:
15495
15496
15497 #line 5340 "drizzled/sql_yacc.yy"
15498 {}
15499 break;
15500
15501 case 1113:
15502
15503
15504 #line 5341 "drizzled/sql_yacc.yy"
15505 {}
15506 break;
15507
15508 case 1114:
15509
15510
15511 #line 5342 "drizzled/sql_yacc.yy"
15512 {}
15513 break;
15514
15515 case 1115:
15516
15517
15518 #line 5343 "drizzled/sql_yacc.yy"
15519 {}
15520 break;
15521
15522 case 1116:
15523
15524
15525 #line 5344 "drizzled/sql_yacc.yy"
15526 {}
15527 break;
15528
15529 case 1117:
15530
15531
15532 #line 5345 "drizzled/sql_yacc.yy"
15533 {}
15534 break;
15535
15536 case 1118:
15537
15538
15539 #line 5346 "drizzled/sql_yacc.yy"
15540 {}
15541 break;
15542
15543 case 1119:
15544
15545
15546 #line 5347 "drizzled/sql_yacc.yy"
15547 {}
15548 break;
15549
15550 case 1120:
15551
15552
15553 #line 5348 "drizzled/sql_yacc.yy"
15554 {}
15555 break;
15556
15557 case 1121:
15558
15559
15560 #line 5349 "drizzled/sql_yacc.yy"
15561 {}
15562 break;
15563
15564 case 1122:
15565
15566
15567 #line 5350 "drizzled/sql_yacc.yy"
15568 {}
15569 break;
15570
15571 case 1123:
15572
15573
15574 #line 5351 "drizzled/sql_yacc.yy"
15575 {}
15576 break;
15577
15578 case 1124:
15579
15580
15581 #line 5352 "drizzled/sql_yacc.yy"
15582 {}
15583 break;
15584
15585 case 1125:
15586
15587
15588 #line 5353 "drizzled/sql_yacc.yy"
15589 {}
15590 break;
15591
15592 case 1126:
15593
15594
15595 #line 5354 "drizzled/sql_yacc.yy"
15596 {}
15597 break;
15598
15599 case 1127:
15600
15601
15602 #line 5355 "drizzled/sql_yacc.yy"
15603 {}
15604 break;
15605
15606 case 1128:
15607
15608
15609 #line 5356 "drizzled/sql_yacc.yy"
15610 {}
15611 break;
15612
15613 case 1129:
15614
15615
15616 #line 5357 "drizzled/sql_yacc.yy"
15617 {}
15618 break;
15619
15620 case 1130:
15621
15622
15623 #line 5358 "drizzled/sql_yacc.yy"
15624 {}
15625 break;
15626
15627 case 1131:
15628
15629
15630 #line 5359 "drizzled/sql_yacc.yy"
15631 {}
15632 break;
15633
15634 case 1132:
15635
15636
15637 #line 5360 "drizzled/sql_yacc.yy"
15638 {}
15639 break;
15640
15641 case 1133:
15642
15643
15644 #line 5361 "drizzled/sql_yacc.yy"
15645 {}
15646 break;
15647
15648 case 1134:
15649
15650
15651 #line 5362 "drizzled/sql_yacc.yy"
15652 {}
15653 break;
15654
15655 case 1135:
15656
15657
15658 #line 5363 "drizzled/sql_yacc.yy"
15659 {}
15660 break;
15661
15662 case 1136:
15663
15664
15665 #line 5364 "drizzled/sql_yacc.yy"
15666 {}
15667 break;
15668
15669 case 1137:
15670
15671
15672 #line 5365 "drizzled/sql_yacc.yy"
15673 {}
15674 break;
15675
15676 case 1138:
15677
15678
15679 #line 5366 "drizzled/sql_yacc.yy"
15680 {}
15681 break;
15682
15683 case 1139:
15684
15685
15686 #line 5367 "drizzled/sql_yacc.yy"
15687 {}
15688 break;
15689
15690 case 1140:
15691
15692
15693 #line 5368 "drizzled/sql_yacc.yy"
15694 {}
15695 break;
15696
15697 case 1141:
15698
15699
15700 #line 5375 "drizzled/sql_yacc.yy"
15701 {
15702 Lex.statement= new statement::SetOption(YYSession);
15703 }
15704 break;
15705
15706 case 1142:
15707
15708
15709 #line 5379 "drizzled/sql_yacc.yy"
15710 {}
15711 break;
15712
15713 case 1143:
15714
15715
15716 #line 5383 "drizzled/sql_yacc.yy"
15717 {}
15718 break;
15719
15720 case 1144:
15721
15722
15723 #line 5384 "drizzled/sql_yacc.yy"
15724 {}
15725 break;
15726
15727 case 1147:
15728
15729
15730 #line 5393 "drizzled/sql_yacc.yy"
15731 { }
15732 break;
15733
15734 case 1148:
15735
15736
15737 #line 5395 "drizzled/sql_yacc.yy"
15738 { }
15739 break;
15740
15741 case 1149:
15742
15743
15744 #line 5399 "drizzled/sql_yacc.yy"
15745 {}
15746 break;
15747
15748 case 1150:
15749
15750
15751 #line 5400 "drizzled/sql_yacc.yy"
15752 { (yyval.var_type)=OPT_GLOBAL; }
15753 break;
15754
15755 case 1151:
15756
15757
15758 #line 5401 "drizzled/sql_yacc.yy"
15759 { (yyval.var_type)=OPT_SESSION; }
15760 break;
15761
15762 case 1152:
15763
15764
15765 #line 5402 "drizzled/sql_yacc.yy"
15766 { (yyval.var_type)=OPT_SESSION; }
15767 break;
15768
15769 case 1153:
15770
15771
15772 #line 5406 "drizzled/sql_yacc.yy"
15773 { (yyval.num)= OPT_DEFAULT; }
15774 break;
15775
15776 case 1154:
15777
15778
15779 #line 5407 "drizzled/sql_yacc.yy"
15780 { ((statement::SetOption *)Lex.statement)->one_shot_set= true; (yyval.num)= OPT_SESSION; }
15781 break;
15782
15783 case 1155:
15784
15785
15786 #line 5411 "drizzled/sql_yacc.yy"
15787 { (yyval.var_type)=OPT_SESSION; }
15788 break;
15789
15790 case 1156:
15791
15792
15793 #line 5412 "drizzled/sql_yacc.yy"
15794 { (yyval.var_type)=OPT_GLOBAL; }
15795 break;
15796
15797 case 1157:
15798
15799
15800 #line 5413 "drizzled/sql_yacc.yy"
15801 { (yyval.var_type)=OPT_SESSION; }
15802 break;
15803
15804 case 1158:
15805
15806
15807 #line 5414 "drizzled/sql_yacc.yy"
15808 { (yyval.var_type)=OPT_SESSION; }
15809 break;
15810
15811 case 1159:
15812
15813
15814 #line 5418 "drizzled/sql_yacc.yy"
15815 { (yyval.var_type)=OPT_DEFAULT; }
15816 break;
15817
15818 case 1160:
15819
15820
15821 #line 5419 "drizzled/sql_yacc.yy"
15822 { (yyval.var_type)=OPT_GLOBAL; }
15823 break;
15824
15825 case 1161:
15826
15827
15828 #line 5420 "drizzled/sql_yacc.yy"
15829 { (yyval.var_type)=OPT_SESSION; }
15830 break;
15831
15832 case 1162:
15833
15834
15835 #line 5421 "drizzled/sql_yacc.yy"
15836 { (yyval.var_type)=OPT_SESSION; }
15837 break;
15838
15839 case 1165:
15840
15841
15842 #line 5431 "drizzled/sql_yacc.yy"
15843 {
15844 if ((yyvsp[(2) - (4)].variable).var)
15845 {
15846 if ((yyvsp[(1) - (4)].var_type))
15847 {
15848 Lex.option_type= (yyvsp[(1) - (4)].var_type);
15849 }
15850 Lex.var_list.push_back(SetVarPtr(new set_var(Lex.option_type, (yyvsp[(2) - (4)].variable).var, (yyvsp[(2) - (4)].variable).base_name, (yyvsp[(4) - (4)].item))));
15851 }
15852 }
15853 break;
15854
15855 case 1166:
15856
15857
15858 #line 5442 "drizzled/sql_yacc.yy"
15859 {
15860 Lex.option_type= (yyvsp[(1) - (5)].var_type);
15861 Lex.var_list.push_back(SetVarPtr(new set_var(Lex.option_type, find_sys_var("tx_isolation"), str_ref(), new Item_int((int32_t) (yyvsp[(5) - (5)].tx_isolation)))));
15862 }
15863 break;
15864
15865 case 1167:
15866
15867
15868 #line 5450 "drizzled/sql_yacc.yy"
15869 {
15870 Lex.var_list.push_back(SetVarPtr(new set_var_user(new Item_func_set_user_var((yyvsp[(2) - (4)].lex_str),(yyvsp[(4) - (4)].item)))));
15871 }
15872 break;
15873
15874 case 1168:
15875
15876
15877 #line 5454 "drizzled/sql_yacc.yy"
15878 {
15879 Lex.var_list.push_back(SetVarPtr(new set_var((yyvsp[(3) - (6)].var_type), (yyvsp[(4) - (6)].variable).var, (yyvsp[(4) - (6)].variable).base_name, (yyvsp[(6) - (6)].item))));
15880 }
15881 break;
15882
15883 case 1169:
15884
15885
15886 #line 5460 "drizzled/sql_yacc.yy"
15887 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15888 break;
15889
15890 case 1170:
15891
15892
15893 #line 5461 "drizzled/sql_yacc.yy"
15894 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15895 break;
15896
15897 case 1171:
15898
15899
15900 #line 5462 "drizzled/sql_yacc.yy"
15901 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15902 break;
15903
15904 case 1172:
15905
15906
15907 #line 5467 "drizzled/sql_yacc.yy"
15908 {
15909 (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
15910 }
15911 break;
15912
15913 case 1173:
15914
15915
15916 #line 5470 "drizzled/sql_yacc.yy"
15917 { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
15918 break;
15919
15920 case 1174:
15921
15922
15923 #line 5475 "drizzled/sql_yacc.yy"
15924 {
15925
15926 {
15927
15928 sys_var *tmp= find_sys_var(to_string((yyvsp[(1) - (1)].lex_str)));
15929 if (not tmp)
15930 DRIZZLE_YYABORT;
15931 (yyval.variable).var= tmp;
15932 (yyval.variable).base_name= null_lex_string();
15933 }
15934 }
15935 break;
15936
15937 case 1175:
15938
15939
15940 #line 5489 "drizzled/sql_yacc.yy"
15941 { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
15942 break;
15943
15944 case 1176:
15945
15946
15947 #line 5490 "drizzled/sql_yacc.yy"
15948 { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
15949 break;
15950
15951 case 1177:
15952
15953
15954 #line 5491 "drizzled/sql_yacc.yy"
15955 { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
15956 break;
15957
15958 case 1178:
15959
15960
15961 #line 5492 "drizzled/sql_yacc.yy"
15962 { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
15963 break;
15964
15965 case 1179:
15966
15967
15968 #line 5496 "drizzled/sql_yacc.yy"
15969 { (yyval.item)=(yyvsp[(1) - (1)].item); }
15970 break;
15971
15972 case 1180:
15973
15974
15975 #line 5497 "drizzled/sql_yacc.yy"
15976 { (yyval.item)=0; }
15977 break;
15978
15979 case 1181:
15980
15981
15982 #line 5498 "drizzled/sql_yacc.yy"
15983 { (yyval.item)=new Item_string(str_ref("ON"), system_charset_info); }
15984 break;
15985
15986 case 1182:
15987
15988
15989 #line 5499 "drizzled/sql_yacc.yy"
15990 { (yyval.item)=new Item_string(str_ref("ALL"), system_charset_info); }
15991 break;
15992
15993 case 1183:
15994
15995
15996 #line 5500 "drizzled/sql_yacc.yy"
15997 { (yyval.item)=new Item_string(str_ref("binary"), system_charset_info); }
15998 break;
15999
16000 case 1186:
16001
16002
16003 #line 5510 "drizzled/sql_yacc.yy"
16004 {
16005 Lex.statement= new statement::UnlockTables(YYSession);
16006 }
16007 break;
16008
16009 case 1187:
16010
16011
16012 #line 5514 "drizzled/sql_yacc.yy"
16013 {}
16014 break;
16015
16016 case 1188:
16017
16018
16019 #line 5519 "drizzled/sql_yacc.yy"
16020 {
16021 Lex.statement= new statement::StartTransaction(YYSession);
16022 }
16023 break;
16024
16025 case 1189:
16026
16027
16028 #line 5522 "drizzled/sql_yacc.yy"
16029 {}
16030 break;
16031
16032 case 1190:
16033
16034
16035 #line 5526 "drizzled/sql_yacc.yy"
16036 {}
16037 break;
16038
16039 case 1191:
16040
16041
16042 #line 5527 "drizzled/sql_yacc.yy"
16043 {}
16044 break;
16045
16046 case 1192:
16047
16048
16049 #line 5532 "drizzled/sql_yacc.yy"
16050 { (yyval.num)= (YYSession->variables.completion_type == 1); }
16051 break;
16052
16053 case 1193:
16054
16055
16056 #line 5533 "drizzled/sql_yacc.yy"
16057 { (yyval.num)=0; }
16058 break;
16059
16060 case 1194:
16061
16062
16063 #line 5534 "drizzled/sql_yacc.yy"
16064 { (yyval.num)=1; }
16065 break;
16066
16067 case 1195:
16068
16069
16070 #line 5539 "drizzled/sql_yacc.yy"
16071 { (yyval.num)= (YYSession->variables.completion_type == 2); }
16072 break;
16073
16074 case 1196:
16075
16076
16077 #line 5540 "drizzled/sql_yacc.yy"
16078 { (yyval.num)=1; }
16079 break;
16080
16081 case 1197:
16082
16083
16084 #line 5541 "drizzled/sql_yacc.yy"
16085 { (yyval.num)=0; }
16086 break;
16087
16088 case 1198:
16089
16090
16091 #line 5545 "drizzled/sql_yacc.yy"
16092 {}
16093 break;
16094
16095 case 1199:
16096
16097
16098 #line 5546 "drizzled/sql_yacc.yy"
16099 {}
16100 break;
16101
16102 case 1200:
16103
16104
16105 #line 5551 "drizzled/sql_yacc.yy"
16106 {
16107 Lex.statement= new statement::Commit(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
16108 }
16109 break;
16110
16111 case 1201:
16112
16113
16114 #line 5558 "drizzled/sql_yacc.yy"
16115 {
16116 Lex.statement= new statement::Rollback(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
16117 }
16118 break;
16119
16120 case 1202:
16121
16122
16123 #line 5562 "drizzled/sql_yacc.yy"
16124 {
16125 Lex.statement= new statement::RollbackToSavepoint(YYSession, (yyvsp[(5) - (5)].lex_str));
16126 }
16127 break;
16128
16129 case 1203:
16130
16131
16132 #line 5569 "drizzled/sql_yacc.yy"
16133 {
16134 Lex.statement= new statement::Savepoint(YYSession, (yyvsp[(2) - (2)].lex_str));
16135 }
16136 break;
16137
16138 case 1204:
16139
16140
16141 #line 5576 "drizzled/sql_yacc.yy"
16142 {
16143 Lex.statement= new statement::ReleaseSavepoint(YYSession, (yyvsp[(3) - (3)].lex_str));
16144 }
16145 break;
16146
16147 case 1206:
16148
16149
16150 #line 5591 "drizzled/sql_yacc.yy"
16151 {}
16152 break;
16153
16154 case 1208:
16155
16156
16157 #line 5597 "drizzled/sql_yacc.yy"
16158 {
16159 if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(2) - (2)].num)))
16160 DRIZZLE_YYABORT;
16161 }
16162 break;
16163
16164 case 1209:
16165
16166
16167 #line 5602 "drizzled/sql_yacc.yy"
16168 {
16169
16170
16171
16172
16173 Lex.pop_context();
16174 }
16175 break;
16176
16177 case 1210:
16178
16179
16180 #line 5612 "drizzled/sql_yacc.yy"
16181 { (yyval.num)= 0; }
16182 break;
16183
16184 case 1211:
16185
16186
16187 #line 5613 "drizzled/sql_yacc.yy"
16188 { (yyval.num)= 1; }
16189 break;
16190
16191 case 1212:
16192
16193
16194 #line 5614 "drizzled/sql_yacc.yy"
16195 { (yyval.num)= 1; }
16196 break;
16197
16198 case 1213:
16199
16200
16201 #line 5618 "drizzled/sql_yacc.yy"
16202 {
16203 assert(Lex.current_select->linkage != GLOBAL_OPTIONS_TYPE);
16204 Select_Lex *sel= Lex.current_select;
16205 Select_Lex_Unit *unit= sel->master_unit();
16206 Select_Lex *fake= unit->fake_select_lex;
16207 if (fake)
16208 {
16209 unit->global_parameters= fake;
16210 fake->no_table_names_allowed= 1;
16211 Lex.current_select= fake;
16212 }
16213 YYSession->setWhere("global ORDER clause");
16214 }
16215 break;
16216
16217 case 1214:
16218
16219
16220 #line 5632 "drizzled/sql_yacc.yy"
16221 {
16222 YYSession->lex().current_select->no_table_names_allowed= 0;
16223 YYSession->setWhere("");
16224 }
16225 break;
16226
16227 case 1217:
16228
16229
16230 #line 5644 "drizzled/sql_yacc.yy"
16231 { (yyval.num)=1; }
16232 break;
16233
16234 case 1218:
16235
16236
16237 #line 5645 "drizzled/sql_yacc.yy"
16238 { (yyval.num)=1; }
16239 break;
16240
16241 case 1219:
16242
16243
16244 #line 5646 "drizzled/sql_yacc.yy"
16245 { (yyval.num)=0; }
16246 break;
16247
16248 case 1220:
16249
16250
16251 #line 5651 "drizzled/sql_yacc.yy"
16252 {
16253 (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16254 }
16255 break;
16256
16257 case 1221:
16258
16259
16260 #line 5655 "drizzled/sql_yacc.yy"
16261 {
16262 (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16263 }
16264 break;
16265
16266 case 1223:
16267
16268
16269 #line 5664 "drizzled/sql_yacc.yy"
16270 {
16271 if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
16272 DRIZZLE_YYABORT;
16273 }
16274 break;
16275
16276 case 1224:
16277
16278
16279 #line 5669 "drizzled/sql_yacc.yy"
16280 {
16281 Lex.pop_context();
16282 (yyval.select_lex)= (yyvsp[(1) - (5)].select_lex);
16283 }
16284 break;
16285
16286 case 1225:
16287
16288
16289 #line 5678 "drizzled/sql_yacc.yy"
16290 {
16291 (yyval.select_lex)= (yyvsp[(2) - (3)].select_lex);
16292 }
16293 break;
16294
16295 case 1226:
16296
16297
16298 #line 5684 "drizzled/sql_yacc.yy"
16299 {
16300 if (not Lex.expr_allows_subselect)
16301 {
16302 parser::my_parse_error(YYSession->m_lip);
16303 DRIZZLE_YYABORT;
16304 }
16305
16306
16307
16308
16309
16310
16311
16312 if (new_select(&Lex, 1))
16313 DRIZZLE_YYABORT;
16314 }
16315 break;
16316
16317 case 1227:
16318
16319
16320 #line 5703 "drizzled/sql_yacc.yy"
16321 {
16322 Lex.pop_context();
16323 Select_Lex *child= Lex.current_select;
16324 Lex.current_select= Lex.current_select->return_after_parsing();
16325 Lex.nest_level--;
16326 Lex.current_select->n_child_sum_items += child->n_sum_items;
16327
16328
16329
16330
16331 Lex.current_select->select_n_where_fields+=
16332 child->select_n_where_fields;
16333 }
16334 break;
16335
16336
16337
16338
16339 #line 16340 "drizzled/sql_yacc.cc"
16340 default: break;
16341 }
16342 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
16343
16344 YYPOPSTACK (yylen);
16345 yylen = 0;
16346 YY_STACK_PRINT (yyss, yyssp);
16347
16348 *++yyvsp = yyval;
16349
16350
16351
16352
16353
16354 yyn = yyr1[yyn];
16355
16356 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
16357 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
16358 yystate = yytable[yystate];
16359 else
16360 yystate = yydefgoto[yyn - YYNTOKENS];
16361
16362 goto yynewstate;
16363
16364
16365
16366
16367
16368 yyerrlab:
16369
16370 if (!yyerrstatus)
16371 {
16372 ++yynerrs;
16373 #if ! YYERROR_VERBOSE
16374 yyerror (session, YY_("syntax error"));
16375 #else
16376 {
16377 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
16378 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
16379 {
16380 YYSIZE_T yyalloc = 2 * yysize;
16381 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
16382 yyalloc = YYSTACK_ALLOC_MAXIMUM;
16383 if (yymsg != yymsgbuf)
16384 YYSTACK_FREE (yymsg);
16385 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
16386 if (yymsg)
16387 yymsg_alloc = yyalloc;
16388 else
16389 {
16390 yymsg = yymsgbuf;
16391 yymsg_alloc = sizeof yymsgbuf;
16392 }
16393 }
16394
16395 if (0 < yysize && yysize <= yymsg_alloc)
16396 {
16397 (void) yysyntax_error (yymsg, yystate, yychar);
16398 yyerror (session, yymsg);
16399 }
16400 else
16401 {
16402 yyerror (session, YY_("syntax error"));
16403 if (yysize != 0)
16404 goto yyexhaustedlab;
16405 }
16406 }
16407 #endif
16408 }
16409
16410
16411
16412 if (yyerrstatus == 3)
16413 {
16414
16415
16416
16417 if (yychar <= YYEOF)
16418 {
16419
16420 if (yychar == YYEOF)
16421 YYABORT;
16422 }
16423 else
16424 {
16425 yydestruct ("Error: discarding",
16426 yytoken, &yylval, session);
16427 yychar = YYEMPTY;
16428 }
16429 }
16430
16431
16432
16433 goto yyerrlab1;
16434
16435
16436
16437
16438
16439 yyerrorlab:
16440
16441
16442
16443
16444 if ( 0)
16445 goto yyerrorlab;
16446
16447
16448
16449 YYPOPSTACK (yylen);
16450 yylen = 0;
16451 YY_STACK_PRINT (yyss, yyssp);
16452 yystate = *yyssp;
16453 goto yyerrlab1;
16454
16455
16456
16457
16458
16459 yyerrlab1:
16460 yyerrstatus = 3;
16461
16462 for (;;)
16463 {
16464 yyn = yypact[yystate];
16465 if (yyn != YYPACT_NINF)
16466 {
16467 yyn += YYTERROR;
16468 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
16469 {
16470 yyn = yytable[yyn];
16471 if (0 < yyn)
16472 break;
16473 }
16474 }
16475
16476
16477 if (yyssp == yyss)
16478 YYABORT;
16479
16480
16481 yydestruct ("Error: popping",
16482 yystos[yystate], yyvsp, session);
16483 YYPOPSTACK (1);
16484 yystate = *yyssp;
16485 YY_STACK_PRINT (yyss, yyssp);
16486 }
16487
16488 *++yyvsp = yylval;
16489
16490
16491
16492 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
16493
16494 yystate = yyn;
16495 goto yynewstate;
16496
16497
16498
16499
16500
16501 yyacceptlab:
16502 yyresult = 0;
16503 goto yyreturn;
16504
16505
16506
16507
16508 yyabortlab:
16509 yyresult = 1;
16510 goto yyreturn;
16511
16512 #if !defined(yyoverflow) || YYERROR_VERBOSE
16513
16514
16515
16516 yyexhaustedlab:
16517 yyerror (session, YY_("memory exhausted"));
16518 yyresult = 2;
16519
16520 #endif
16521
16522 yyreturn:
16523 if (yychar != YYEMPTY)
16524 yydestruct ("Cleanup: discarding lookahead",
16525 yytoken, &yylval, session);
16526
16527
16528 YYPOPSTACK (yylen);
16529 YY_STACK_PRINT (yyss, yyssp);
16530 while (yyssp != yyss)
16531 {
16532 yydestruct ("Cleanup: popping",
16533 yystos[*yyssp], yyvsp, session);
16534 YYPOPSTACK (1);
16535 }
16536 #ifndef yyoverflow
16537 if (yyss != yyssa)
16538 YYSTACK_FREE (yyss);
16539 #endif
16540 #if YYERROR_VERBOSE
16541 if (yymsg != yymsgbuf)
16542 YYSTACK_FREE (yymsg);
16543 #endif
16544
16545 return YYID (yyresult);
16546 }
16547
16548
16549