Drizzled Public API Documentation

sql_yacc.cc
00001 
00002 /* A Bison parser, made by GNU Bison 2.4.1.  */
00003 
00004 /* Skeleton implementation for Bison's Yacc-like parsers in C
00005    
00006       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
00007    Free Software Foundation, Inc.
00008    
00009    This program is free software: you can redistribute it and/or modify
00010    it under the terms of the GNU General Public License as published by
00011    the Free Software Foundation, either version 3 of the License, or
00012    (at your option) any later version.
00013    
00014    This program is distributed in the hope that it will be useful,
00015    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017    GNU General Public License for more details.
00018    
00019    You should have received a copy of the GNU General Public License
00020    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
00021 
00022 /* As a special exception, you may create a larger work that contains
00023    part or all of the Bison parser skeleton and distribute that work
00024    under terms of your choice, so long as that work isn't itself a
00025    parser generator using the skeleton or a modified version thereof
00026    as a parser skeleton.  Alternatively, if you modify or redistribute
00027    the parser skeleton itself, you may (at your option) remove this
00028    special exception, which will cause the skeleton and the resulting
00029    Bison output files to be licensed under the GNU General Public
00030    License without this special exception.
00031    
00032    This special exception was added by the Free Software Foundation in
00033    version 2.2 of Bison.  */
00034 
00035 /* C LALR(1) parser skeleton written by Richard Stallman, by
00036    simplifying the original so-called "semantic" parser.  */
00037 
00038 /* All symbols defined below should begin with yy or YY, to avoid
00039    infringing on user name space.  This should be done even for local
00040    variables, as they might otherwise be expanded by user macros.
00041    There are some unavoidable exceptions within include files to
00042    define necessary library symbols; they are noted "INFRINGES ON
00043    USER NAME SPACE" below.  */
00044 
00045 /* Identify Bison output.  */
00046 #define YYBISON 1
00047 
00048 /* Bison version.  */
00049 #define YYBISON_VERSION "2.4.1"
00050 
00051 /* Skeleton name.  */
00052 #define YYSKELETON_NAME "yacc.c"
00053 
00054 /* Pure parsers.  */
00055 #define YYPURE 1
00056 
00057 /* Push parsers.  */
00058 #define YYPUSH 0
00059 
00060 /* Pull parsers.  */
00061 #define YYPULL 1
00062 
00063 /* Using locations.  */
00064 #define YYLSP_NEEDED 0
00065 
00066 /* Substitute the variable and function names.  */
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 /* Copy the first part of user declarations.  */
00077 
00078 /* Line 189 of yacc.c  */
00079 #line 23 "drizzled/sql_yacc.yy"
00080 
00081 /* session is passed as an argument to yyparse(), and subsequently to yylex().
00082 ** The type will be void*, so it must be  cast to (Session*) when used.
00083 ** Use the YYSession macro for this.
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                        /* Because of 64K stack */
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_drop.h>
00101 #include <drizzled/alter_info.h>
00102 #include <drizzled/item/subselect.h>
00103 
00104 int yylex(union ParserType *yylval, drizzled::Session *session);
00105 
00106 #define yyoverflow(A,B,C,D,E,F)               \
00107   {                                           \
00108     unsigned long val= *(F);                          \
00109     if (drizzled::my_yyoverflow((B), (D), &val)) \
00110     {                                         \
00111       yyerror(NULL, (char*) (A));                   \
00112       return 2;                               \
00113     }                                         \
00114     else                                      \
00115     {                                         \
00116       *(F)= (YYSIZE_T)val;                    \
00117     }                                         \
00118   }
00119 
00120 #define DRIZZLE_YYABORT                         \
00121   do                                          \
00122   {                                           \
00123     YYABORT;                                  \
00124   } while (0)
00125 
00126 #define DRIZZLE_YYABORT_UNLESS(A)         \
00127   if (!(A))                             \
00128   {                                     \
00129     parser::my_parse_error(YYSession->m_lip);\
00130     DRIZZLE_YYABORT;                      \
00131   }
00132 
00133 namespace drizzled
00134 {
00135 
00136 class Table_ident;
00137 class Item;
00138 class Item_num;
00139 
00140 namespace item
00141 {
00142 class Boolean;
00143 class True;
00144 class False;
00145 }
00146 
00147 
00168 static void base_sql_error(drizzled::Session *session, const char *s)
00169 {
00170   parser::errorOn(session, s);
00171 }
00172 
00173 } /* namespace drizzled; */
00174 
00175 using namespace drizzled;
00176 
00177 
00178 /* Line 189 of yacc.c  */
00179 #line 180 "drizzled/sql_yacc.cc"
00180 
00181 /* Enabling traces.  */
00182 #ifndef YYDEBUG
00183 # define YYDEBUG 1
00184 #endif
00185 
00186 /* Enabling verbose error messages.  */
00187 #ifdef YYERROR_VERBOSE
00188 # undef YYERROR_VERBOSE
00189 # define YYERROR_VERBOSE 1
00190 #else
00191 # define YYERROR_VERBOSE 0
00192 #endif
00193 
00194 /* Enabling the token table.  */
00195 #ifndef YYTOKEN_TABLE
00196 # define YYTOKEN_TABLE 0
00197 #endif
00198 
00199 
00200 /* Tokens.  */
00201 #ifndef YYTOKENTYPE
00202 # define YYTOKENTYPE
00203    /* Put the tokens into the symbol table, so that GDB and other debuggers
00204       know about them.  */
00205    enum yytokentype {
00206      ABORT_SYM = 258,
00207      ACTION = 259,
00208      ADD_SYM = 260,
00209      ADDDATE_SYM = 261,
00210      AFTER_SYM = 262,
00211      AGGREGATE_SYM = 263,
00212      ALL = 264,
00213      ALTER_SYM = 265,
00214      ANALYZE_SYM = 266,
00215      AND_SYM = 267,
00216      ANY_SYM = 268,
00217      AS = 269,
00218      ASC = 270,
00219      ASENSITIVE_SYM = 271,
00220      AT_SYM = 272,
00221      AUTO_INC = 273,
00222      AVG_SYM = 274,
00223      BEFORE_SYM = 275,
00224      BEGIN_SYM = 276,
00225      BETWEEN_SYM = 277,
00226      BIGINT_SYM = 278,
00227      BINARY = 279,
00228      BIN_NUM = 280,
00229      BIT_SYM = 281,
00230      BLOB_SYM = 282,
00231      BOOLEAN_SYM = 283,
00232      BOOL_SYM = 284,
00233      BOTH = 285,
00234      BTREE_SYM = 286,
00235      BY = 287,
00236      CALL_SYM = 288,
00237      CASCADE = 289,
00238      CASCADED = 290,
00239      CASE_SYM = 291,
00240      CAST_SYM = 292,
00241      CATALOG_SYM = 293,
00242      CHAIN_SYM = 294,
00243      CHANGE_SYM = 295,
00244      CHAR_SYM = 296,
00245      CHECKSUM_SYM = 297,
00246      CHECK_SYM = 298,
00247      CLOSE_SYM = 299,
00248      COALESCE = 300,
00249      COLLATE_SYM = 301,
00250      COLLATION_SYM = 302,
00251      COLUMNS = 303,
00252      COLUMN_SYM = 304,
00253      COMMENT_SYM = 305,
00254      COMMITTED_SYM = 306,
00255      COMMIT_SYM = 307,
00256      COMPACT_SYM = 308,
00257      COMPRESSED_SYM = 309,
00258      CONCURRENT = 310,
00259      CONDITION_SYM = 311,
00260      CONNECTION_SYM = 312,
00261      CONSISTENT_SYM = 313,
00262      CONSTRAINT = 314,
00263      CONTAINS_SYM = 315,
00264      CONVERT_SYM = 316,
00265      COUNT_SYM = 317,
00266      CREATE = 318,
00267      CROSS = 319,
00268      CUBE_SYM = 320,
00269      CURDATE = 321,
00270      CURRENT_USER = 322,
00271      CURSOR_SYM = 323,
00272      DATABASE = 324,
00273      DATABASES = 325,
00274      DATA_SYM = 326,
00275      DATETIME_SYM = 327,
00276      DATE_ADD_INTERVAL = 328,
00277      DATE_SUB_INTERVAL = 329,
00278      DATE_SYM = 330,
00279      DAY_HOUR_SYM = 331,
00280      DAY_MICROSECOND_SYM = 332,
00281      DAY_MINUTE_SYM = 333,
00282      DAY_SECOND_SYM = 334,
00283      DAY_SYM = 335,
00284      DEALLOCATE_SYM = 336,
00285      DECIMAL_NUM = 337,
00286      DECIMAL_SYM = 338,
00287      DECLARE_SYM = 339,
00288      DEFAULT = 340,
00289      DELETE_SYM = 341,
00290      DESC = 342,
00291      DESCRIBE = 343,
00292      DETERMINISTIC_SYM = 344,
00293      DISABLE_SYM = 345,
00294      DISCARD = 346,
00295      DISTINCT = 347,
00296      DIV_SYM = 348,
00297      DO_SYM = 349,
00298      DOUBLE_SYM = 350,
00299      DROP = 351,
00300      DUMPFILE = 352,
00301      DUPLICATE_SYM = 353,
00302      DYNAMIC_SYM = 354,
00303      EACH_SYM = 355,
00304      ELSE = 356,
00305      ENABLE_SYM = 357,
00306      ENCLOSED = 358,
00307      END = 359,
00308      ENDS_SYM = 360,
00309      END_OF_INPUT = 361,
00310      ENGINE_SYM = 362,
00311      ENUM_SYM = 363,
00312      EQUAL_SYM = 364,
00313      ERRORS = 365,
00314      ESCAPED = 366,
00315      ESCAPE_SYM = 367,
00316      EXCLUSIVE_SYM = 368,
00317      EXECUTE_SYM = 369,
00318      EXISTS = 370,
00319      EXTENDED_SYM = 371,
00320      EXTRACT_SYM = 372,
00321      FALSE_SYM = 373,
00322      FILE_SYM = 374,
00323      FIRST_SYM = 375,
00324      FIXED_SYM = 376,
00325      FLOAT_NUM = 377,
00326      FLUSH_SYM = 378,
00327      FORCE_SYM = 379,
00328      FOREIGN = 380,
00329      FOR_SYM = 381,
00330      FOUND_SYM = 382,
00331      FRAC_SECOND_SYM = 383,
00332      FROM = 384,
00333      FULL = 385,
00334      GE = 386,
00335      GLOBAL_SYM = 387,
00336      GROUP_SYM = 388,
00337      GROUP_CONCAT_SYM = 389,
00338      HASH_SYM = 390,
00339      HAVING = 391,
00340      HEX_NUM = 392,
00341      HOUR_MICROSECOND_SYM = 393,
00342      HOUR_MINUTE_SYM = 394,
00343      HOUR_SECOND_SYM = 395,
00344      HOUR_SYM = 396,
00345      IDENT = 397,
00346      IDENTIFIED_SYM = 398,
00347      IDENTITY_SYM = 399,
00348      IDENT_QUOTED = 400,
00349      IF = 401,
00350      IGNORE_SYM = 402,
00351      IMPORT = 403,
00352      INDEXES = 404,
00353      INDEX_SYM = 405,
00354      INFILE = 406,
00355      INNER_SYM = 407,
00356      INOUT_SYM = 408,
00357      INSENSITIVE_SYM = 409,
00358      INSERT = 410,
00359      INTERVAL_SYM = 411,
00360      INTO = 412,
00361      INT_SYM = 413,
00362      IN_SYM = 414,
00363      IS = 415,
00364      ISOLATION = 416,
00365      ITERATE_SYM = 417,
00366      JOIN_SYM = 418,
00367      KEYS = 419,
00368      KEY_BLOCK_SIZE = 420,
00369      KEY_SYM = 421,
00370      KILL_SYM = 422,
00371      LAST_SYM = 423,
00372      LE = 424,
00373      LEADING = 425,
00374      LEFT = 426,
00375      LEVEL_SYM = 427,
00376      LEX_HOSTNAME = 428,
00377      LIKE = 429,
00378      LIMIT = 430,
00379      LINES = 431,
00380      LOAD = 432,
00381      LOCAL_SYM = 433,
00382      LOCKS_SYM = 434,
00383      LOCK_SYM = 435,
00384      LOGS_SYM = 436,
00385      LONG_NUM = 437,
00386      LONG_SYM = 438,
00387      MATCH = 439,
00388      MAX_SYM = 440,
00389      MAX_VALUE_SYM = 441,
00390      MEDIUM_SYM = 442,
00391      MERGE_SYM = 443,
00392      MICROSECOND_SYM = 444,
00393      MINUTE_MICROSECOND_SYM = 445,
00394      MINUTE_SECOND_SYM = 446,
00395      MINUTE_SYM = 447,
00396      MIN_SYM = 448,
00397      MODE_SYM = 449,
00398      MODIFIES_SYM = 450,
00399      MODIFY_SYM = 451,
00400      MOD_SYM = 452,
00401      MONTH_SYM = 453,
00402      NAMES_SYM = 454,
00403      NAME_SYM = 455,
00404      NATIONAL_SYM = 456,
00405      NATURAL = 457,
00406      NE = 458,
00407      NEW_SYM = 459,
00408      NEXT_SYM = 460,
00409      NONE_SYM = 461,
00410      NOT_SYM = 462,
00411      NOW_SYM = 463,
00412      NO_SYM = 464,
00413      NULL_SYM = 465,
00414      NUM = 466,
00415      NUMERIC_SYM = 467,
00416      OFFLINE_SYM = 468,
00417      OFFSET_SYM = 469,
00418      ON = 470,
00419      ONE_SHOT_SYM = 471,
00420      ONE_SYM = 472,
00421      ONLINE_SYM = 473,
00422      OPEN_SYM = 474,
00423      OPTIMIZE = 475,
00424      OPTION = 476,
00425      OPTIONALLY = 477,
00426      ORDER_SYM = 478,
00427      OR_SYM = 479,
00428      OUTER = 480,
00429      OUTFILE = 481,
00430      OUT_SYM = 482,
00431      PARTIAL = 483,
00432      POSITION_SYM = 484,
00433      PRECISION = 485,
00434      PREV_SYM = 486,
00435      PRIMARY_SYM = 487,
00436      PROCESS = 488,
00437      PROCESSLIST_SYM = 489,
00438      QUARTER_SYM = 490,
00439      QUERY_SYM = 491,
00440      RANGE_SYM = 492,
00441      READS_SYM = 493,
00442      READ_SYM = 494,
00443      READ_WRITE_SYM = 495,
00444      REAL = 496,
00445      REDUNDANT_SYM = 497,
00446      REGEXP_SYM = 498,
00447      REFERENCES = 499,
00448      RELEASE_SYM = 500,
00449      RENAME = 501,
00450      REPEATABLE_SYM = 502,
00451      REPEAT_SYM = 503,
00452      REPLACE = 504,
00453      REPLICATE = 505,
00454      REPLICATION = 506,
00455      RESTRICT = 507,
00456      RETURNS_SYM = 508,
00457      RETURN_SYM = 509,
00458      REVOKE = 510,
00459      RIGHT = 511,
00460      ROLLBACK_SYM = 512,
00461      ROLLUP_SYM = 513,
00462      ROUTINE_SYM = 514,
00463      ROWS_SYM = 515,
00464      ROW_FORMAT_SYM = 516,
00465      ROW_SYM = 517,
00466      SAVEPOINT_SYM = 518,
00467      SECOND_MICROSECOND_SYM = 519,
00468      SECOND_SYM = 520,
00469      SECURITY_SYM = 521,
00470      SELECT_SYM = 522,
00471      SENSITIVE_SYM = 523,
00472      SEPARATOR_SYM = 524,
00473      SERIALIZABLE_SYM = 525,
00474      SERIAL_SYM = 526,
00475      SESSION_SYM = 527,
00476      SERVER_SYM = 528,
00477      SET_SYM = 529,
00478      SET_VAR = 530,
00479      SHARE_SYM = 531,
00480      SHOW = 532,
00481      SIGNED_SYM = 533,
00482      SIMPLE_SYM = 534,
00483      SNAPSHOT_SYM = 535,
00484      SPECIFIC_SYM = 536,
00485      SQLEXCEPTION_SYM = 537,
00486      SQLSTATE_SYM = 538,
00487      SQLWARNING_SYM = 539,
00488      SQL_BIG_RESULT = 540,
00489      SQL_BUFFER_RESULT = 541,
00490      SQL_CALC_FOUND_ROWS = 542,
00491      SQL_SMALL_RESULT = 543,
00492      SQL_SYM = 544,
00493      STARTING = 545,
00494      START_SYM = 546,
00495      STATUS_SYM = 547,
00496      STDDEV_SAMP_SYM = 548,
00497      STD_SYM = 549,
00498      STOP_SYM = 550,
00499      STORED_SYM = 551,
00500      STRAIGHT_JOIN = 552,
00501      STRING_SYM = 553,
00502      SUBDATE_SYM = 554,
00503      SUBJECT_SYM = 555,
00504      SUBSTRING = 556,
00505      SUM_SYM = 557,
00506      SUSPEND_SYM = 558,
00507      SYSDATE = 559,
00508      TABLES = 560,
00509      TABLESPACE = 561,
00510      TABLE_REF_PRIORITY = 562,
00511      TABLE_SYM = 563,
00512      TEMPORARY_SYM = 564,
00513      TERMINATED = 565,
00514      TEXT_STRING = 566,
00515      TEXT_SYM = 567,
00516      THEN_SYM = 568,
00517      TIME_SYM = 569,
00518      TIMESTAMP_SYM = 570,
00519      TIMESTAMP_ADD = 571,
00520      TIMESTAMP_DIFF = 572,
00521      TO_SYM = 573,
00522      TRAILING = 574,
00523      TRANSACTION_SYM = 575,
00524      TRIM = 576,
00525      TRUE_SYM = 577,
00526      TRUNCATE_SYM = 578,
00527      TYPE_SYM = 579,
00528      ULONGLONG_NUM = 580,
00529      UNCOMMITTED_SYM = 581,
00530      UNDOFILE_SYM = 582,
00531      UNDO_SYM = 583,
00532      UNION_SYM = 584,
00533      UNIQUE_SYM = 585,
00534      UNKNOWN_SYM = 586,
00535      UNLOCK_SYM = 587,
00536      UNSIGNED_SYM = 588,
00537      UPDATE_SYM = 589,
00538      USAGE = 590,
00539      USER = 591,
00540      USE_SYM = 592,
00541      USING = 593,
00542      UTC_DATE_SYM = 594,
00543      UTC_TIMESTAMP_SYM = 595,
00544      UUID_SYM = 596,
00545      VALUES = 597,
00546      VALUE_SYM = 598,
00547      VARBINARY = 599,
00548      VARCHAR_SYM = 600,
00549      VARIABLES = 601,
00550      VARIANCE_SYM = 602,
00551      VARYING = 603,
00552      VAR_SAMP_SYM = 604,
00553      WAIT_SYM = 605,
00554      WARNINGS = 606,
00555      WEEK_SYM = 607,
00556      WHEN_SYM = 608,
00557      WHERE = 609,
00558      WITH = 610,
00559      WITH_ROLLUP_SYM = 611,
00560      WORK_SYM = 612,
00561      WRITE_SYM = 613,
00562      XOR = 614,
00563      YEAR_MONTH_SYM = 615,
00564      YEAR_SYM = 616,
00565      ZEROFILL_SYM = 617,
00566      LESS_THAN = 618,
00567      GREATER_THAN = 619,
00568      CONCAT = 620,
00569      SHIFT_RIGHT = 621,
00570      SHIFT_LEFT = 622,
00571      UMINUS = 623
00572    };
00573 #endif
00574 /* Tokens.  */
00575 #define ABORT_SYM 258
00576 #define ACTION 259
00577 #define ADD_SYM 260
00578 #define ADDDATE_SYM 261
00579 #define AFTER_SYM 262
00580 #define AGGREGATE_SYM 263
00581 #define ALL 264
00582 #define ALTER_SYM 265
00583 #define ANALYZE_SYM 266
00584 #define AND_SYM 267
00585 #define ANY_SYM 268
00586 #define AS 269
00587 #define ASC 270
00588 #define ASENSITIVE_SYM 271
00589 #define AT_SYM 272
00590 #define AUTO_INC 273
00591 #define AVG_SYM 274
00592 #define BEFORE_SYM 275
00593 #define BEGIN_SYM 276
00594 #define BETWEEN_SYM 277
00595 #define BIGINT_SYM 278
00596 #define BINARY 279
00597 #define BIN_NUM 280
00598 #define BIT_SYM 281
00599 #define BLOB_SYM 282
00600 #define BOOLEAN_SYM 283
00601 #define BOOL_SYM 284
00602 #define BOTH 285
00603 #define BTREE_SYM 286
00604 #define BY 287
00605 #define CALL_SYM 288
00606 #define CASCADE 289
00607 #define CASCADED 290
00608 #define CASE_SYM 291
00609 #define CAST_SYM 292
00610 #define CATALOG_SYM 293
00611 #define CHAIN_SYM 294
00612 #define CHANGE_SYM 295
00613 #define CHAR_SYM 296
00614 #define CHECKSUM_SYM 297
00615 #define CHECK_SYM 298
00616 #define CLOSE_SYM 299
00617 #define COALESCE 300
00618 #define COLLATE_SYM 301
00619 #define COLLATION_SYM 302
00620 #define COLUMNS 303
00621 #define COLUMN_SYM 304
00622 #define COMMENT_SYM 305
00623 #define COMMITTED_SYM 306
00624 #define COMMIT_SYM 307
00625 #define COMPACT_SYM 308
00626 #define COMPRESSED_SYM 309
00627 #define CONCURRENT 310
00628 #define CONDITION_SYM 311
00629 #define CONNECTION_SYM 312
00630 #define CONSISTENT_SYM 313
00631 #define CONSTRAINT 314
00632 #define CONTAINS_SYM 315
00633 #define CONVERT_SYM 316
00634 #define COUNT_SYM 317
00635 #define CREATE 318
00636 #define CROSS 319
00637 #define CUBE_SYM 320
00638 #define CURDATE 321
00639 #define CURRENT_USER 322
00640 #define CURSOR_SYM 323
00641 #define DATABASE 324
00642 #define DATABASES 325
00643 #define DATA_SYM 326
00644 #define DATETIME_SYM 327
00645 #define DATE_ADD_INTERVAL 328
00646 #define DATE_SUB_INTERVAL 329
00647 #define DATE_SYM 330
00648 #define DAY_HOUR_SYM 331
00649 #define DAY_MICROSECOND_SYM 332
00650 #define DAY_MINUTE_SYM 333
00651 #define DAY_SECOND_SYM 334
00652 #define DAY_SYM 335
00653 #define DEALLOCATE_SYM 336
00654 #define DECIMAL_NUM 337
00655 #define DECIMAL_SYM 338
00656 #define DECLARE_SYM 339
00657 #define DEFAULT 340
00658 #define DELETE_SYM 341
00659 #define DESC 342
00660 #define DESCRIBE 343
00661 #define DETERMINISTIC_SYM 344
00662 #define DISABLE_SYM 345
00663 #define DISCARD 346
00664 #define DISTINCT 347
00665 #define DIV_SYM 348
00666 #define DO_SYM 349
00667 #define DOUBLE_SYM 350
00668 #define DROP 351
00669 #define DUMPFILE 352
00670 #define DUPLICATE_SYM 353
00671 #define DYNAMIC_SYM 354
00672 #define EACH_SYM 355
00673 #define ELSE 356
00674 #define ENABLE_SYM 357
00675 #define ENCLOSED 358
00676 #define END 359
00677 #define ENDS_SYM 360
00678 #define END_OF_INPUT 361
00679 #define ENGINE_SYM 362
00680 #define ENUM_SYM 363
00681 #define EQUAL_SYM 364
00682 #define ERRORS 365
00683 #define ESCAPED 366
00684 #define ESCAPE_SYM 367
00685 #define EXCLUSIVE_SYM 368
00686 #define EXECUTE_SYM 369
00687 #define EXISTS 370
00688 #define EXTENDED_SYM 371
00689 #define EXTRACT_SYM 372
00690 #define FALSE_SYM 373
00691 #define FILE_SYM 374
00692 #define FIRST_SYM 375
00693 #define FIXED_SYM 376
00694 #define FLOAT_NUM 377
00695 #define FLUSH_SYM 378
00696 #define FORCE_SYM 379
00697 #define FOREIGN 380
00698 #define FOR_SYM 381
00699 #define FOUND_SYM 382
00700 #define FRAC_SECOND_SYM 383
00701 #define FROM 384
00702 #define FULL 385
00703 #define GE 386
00704 #define GLOBAL_SYM 387
00705 #define GROUP_SYM 388
00706 #define GROUP_CONCAT_SYM 389
00707 #define HASH_SYM 390
00708 #define HAVING 391
00709 #define HEX_NUM 392
00710 #define HOUR_MICROSECOND_SYM 393
00711 #define HOUR_MINUTE_SYM 394
00712 #define HOUR_SECOND_SYM 395
00713 #define HOUR_SYM 396
00714 #define IDENT 397
00715 #define IDENTIFIED_SYM 398
00716 #define IDENTITY_SYM 399
00717 #define IDENT_QUOTED 400
00718 #define IF 401
00719 #define IGNORE_SYM 402
00720 #define IMPORT 403
00721 #define INDEXES 404
00722 #define INDEX_SYM 405
00723 #define INFILE 406
00724 #define INNER_SYM 407
00725 #define INOUT_SYM 408
00726 #define INSENSITIVE_SYM 409
00727 #define INSERT 410
00728 #define INTERVAL_SYM 411
00729 #define INTO 412
00730 #define INT_SYM 413
00731 #define IN_SYM 414
00732 #define IS 415
00733 #define ISOLATION 416
00734 #define ITERATE_SYM 417
00735 #define JOIN_SYM 418
00736 #define KEYS 419
00737 #define KEY_BLOCK_SIZE 420
00738 #define KEY_SYM 421
00739 #define KILL_SYM 422
00740 #define LAST_SYM 423
00741 #define LE 424
00742 #define LEADING 425
00743 #define LEFT 426
00744 #define LEVEL_SYM 427
00745 #define LEX_HOSTNAME 428
00746 #define LIKE 429
00747 #define LIMIT 430
00748 #define LINES 431
00749 #define LOAD 432
00750 #define LOCAL_SYM 433
00751 #define LOCKS_SYM 434
00752 #define LOCK_SYM 435
00753 #define LOGS_SYM 436
00754 #define LONG_NUM 437
00755 #define LONG_SYM 438
00756 #define MATCH 439
00757 #define MAX_SYM 440
00758 #define MAX_VALUE_SYM 441
00759 #define MEDIUM_SYM 442
00760 #define MERGE_SYM 443
00761 #define MICROSECOND_SYM 444
00762 #define MINUTE_MICROSECOND_SYM 445
00763 #define MINUTE_SECOND_SYM 446
00764 #define MINUTE_SYM 447
00765 #define MIN_SYM 448
00766 #define MODE_SYM 449
00767 #define MODIFIES_SYM 450
00768 #define MODIFY_SYM 451
00769 #define MOD_SYM 452
00770 #define MONTH_SYM 453
00771 #define NAMES_SYM 454
00772 #define NAME_SYM 455
00773 #define NATIONAL_SYM 456
00774 #define NATURAL 457
00775 #define NE 458
00776 #define NEW_SYM 459
00777 #define NEXT_SYM 460
00778 #define NONE_SYM 461
00779 #define NOT_SYM 462
00780 #define NOW_SYM 463
00781 #define NO_SYM 464
00782 #define NULL_SYM 465
00783 #define NUM 466
00784 #define NUMERIC_SYM 467
00785 #define OFFLINE_SYM 468
00786 #define OFFSET_SYM 469
00787 #define ON 470
00788 #define ONE_SHOT_SYM 471
00789 #define ONE_SYM 472
00790 #define ONLINE_SYM 473
00791 #define OPEN_SYM 474
00792 #define OPTIMIZE 475
00793 #define OPTION 476
00794 #define OPTIONALLY 477
00795 #define ORDER_SYM 478
00796 #define OR_SYM 479
00797 #define OUTER 480
00798 #define OUTFILE 481
00799 #define OUT_SYM 482
00800 #define PARTIAL 483
00801 #define POSITION_SYM 484
00802 #define PRECISION 485
00803 #define PREV_SYM 486
00804 #define PRIMARY_SYM 487
00805 #define PROCESS 488
00806 #define PROCESSLIST_SYM 489
00807 #define QUARTER_SYM 490
00808 #define QUERY_SYM 491
00809 #define RANGE_SYM 492
00810 #define READS_SYM 493
00811 #define READ_SYM 494
00812 #define READ_WRITE_SYM 495
00813 #define REAL 496
00814 #define REDUNDANT_SYM 497
00815 #define REGEXP_SYM 498
00816 #define REFERENCES 499
00817 #define RELEASE_SYM 500
00818 #define RENAME 501
00819 #define REPEATABLE_SYM 502
00820 #define REPEAT_SYM 503
00821 #define REPLACE 504
00822 #define REPLICATE 505
00823 #define REPLICATION 506
00824 #define RESTRICT 507
00825 #define RETURNS_SYM 508
00826 #define RETURN_SYM 509
00827 #define REVOKE 510
00828 #define RIGHT 511
00829 #define ROLLBACK_SYM 512
00830 #define ROLLUP_SYM 513
00831 #define ROUTINE_SYM 514
00832 #define ROWS_SYM 515
00833 #define ROW_FORMAT_SYM 516
00834 #define ROW_SYM 517
00835 #define SAVEPOINT_SYM 518
00836 #define SECOND_MICROSECOND_SYM 519
00837 #define SECOND_SYM 520
00838 #define SECURITY_SYM 521
00839 #define SELECT_SYM 522
00840 #define SENSITIVE_SYM 523
00841 #define SEPARATOR_SYM 524
00842 #define SERIALIZABLE_SYM 525
00843 #define SERIAL_SYM 526
00844 #define SESSION_SYM 527
00845 #define SERVER_SYM 528
00846 #define SET_SYM 529
00847 #define SET_VAR 530
00848 #define SHARE_SYM 531
00849 #define SHOW 532
00850 #define SIGNED_SYM 533
00851 #define SIMPLE_SYM 534
00852 #define SNAPSHOT_SYM 535
00853 #define SPECIFIC_SYM 536
00854 #define SQLEXCEPTION_SYM 537
00855 #define SQLSTATE_SYM 538
00856 #define SQLWARNING_SYM 539
00857 #define SQL_BIG_RESULT 540
00858 #define SQL_BUFFER_RESULT 541
00859 #define SQL_CALC_FOUND_ROWS 542
00860 #define SQL_SMALL_RESULT 543
00861 #define SQL_SYM 544
00862 #define STARTING 545
00863 #define START_SYM 546
00864 #define STATUS_SYM 547
00865 #define STDDEV_SAMP_SYM 548
00866 #define STD_SYM 549
00867 #define STOP_SYM 550
00868 #define STORED_SYM 551
00869 #define STRAIGHT_JOIN 552
00870 #define STRING_SYM 553
00871 #define SUBDATE_SYM 554
00872 #define SUBJECT_SYM 555
00873 #define SUBSTRING 556
00874 #define SUM_SYM 557
00875 #define SUSPEND_SYM 558
00876 #define SYSDATE 559
00877 #define TABLES 560
00878 #define TABLESPACE 561
00879 #define TABLE_REF_PRIORITY 562
00880 #define TABLE_SYM 563
00881 #define TEMPORARY_SYM 564
00882 #define TERMINATED 565
00883 #define TEXT_STRING 566
00884 #define TEXT_SYM 567
00885 #define THEN_SYM 568
00886 #define TIME_SYM 569
00887 #define TIMESTAMP_SYM 570
00888 #define TIMESTAMP_ADD 571
00889 #define TIMESTAMP_DIFF 572
00890 #define TO_SYM 573
00891 #define TRAILING 574
00892 #define TRANSACTION_SYM 575
00893 #define TRIM 576
00894 #define TRUE_SYM 577
00895 #define TRUNCATE_SYM 578
00896 #define TYPE_SYM 579
00897 #define ULONGLONG_NUM 580
00898 #define UNCOMMITTED_SYM 581
00899 #define UNDOFILE_SYM 582
00900 #define UNDO_SYM 583
00901 #define UNION_SYM 584
00902 #define UNIQUE_SYM 585
00903 #define UNKNOWN_SYM 586
00904 #define UNLOCK_SYM 587
00905 #define UNSIGNED_SYM 588
00906 #define UPDATE_SYM 589
00907 #define USAGE 590
00908 #define USER 591
00909 #define USE_SYM 592
00910 #define USING 593
00911 #define UTC_DATE_SYM 594
00912 #define UTC_TIMESTAMP_SYM 595
00913 #define UUID_SYM 596
00914 #define VALUES 597
00915 #define VALUE_SYM 598
00916 #define VARBINARY 599
00917 #define VARCHAR_SYM 600
00918 #define VARIABLES 601
00919 #define VARIANCE_SYM 602
00920 #define VARYING 603
00921 #define VAR_SAMP_SYM 604
00922 #define WAIT_SYM 605
00923 #define WARNINGS 606
00924 #define WEEK_SYM 607
00925 #define WHEN_SYM 608
00926 #define WHERE 609
00927 #define WITH 610
00928 #define WITH_ROLLUP_SYM 611
00929 #define WORK_SYM 612
00930 #define WRITE_SYM 613
00931 #define XOR 614
00932 #define YEAR_MONTH_SYM 615
00933 #define YEAR_SYM 616
00934 #define ZEROFILL_SYM 617
00935 #define LESS_THAN 618
00936 #define GREATER_THAN 619
00937 #define CONCAT 620
00938 #define SHIFT_RIGHT 621
00939 #define SHIFT_LEFT 622
00940 #define UMINUS 623
00941 
00942 
00943 
00944 
00945 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00946 typedef union 
00947 /* Line 214 of yacc.c  */
00948 #line 120 "drizzled/sql_yacc.yy"
00949 ParserType
00950 {
00951 
00952 /* Line 214 of yacc.c  */
00953 #line 120 "drizzled/sql_yacc.yy"
00954 
00955   bool boolean;
00956   int  num;
00957   unsigned long ulong_num;
00958   uint64_t ulonglong_number;
00959   int64_t longlong_number;
00960   drizzled::LEX_STRING lex_str;
00961   drizzled::LEX_STRING *lex_str_ptr;
00962   drizzled::LEX_SYMBOL symbol;
00963   drizzled::Table_ident *table;
00964   char *simple_string;
00965   drizzled::Item *item;
00966   drizzled::Item_num *item_num;
00967   drizzled::List<drizzled::Item> *item_list;
00968   drizzled::List<drizzled::String> *string_list;
00969   drizzled::String *string;
00970   drizzled::Key_part_spec *key_part;
00971   const drizzled::plugin::Function *udf;
00972   drizzled::TableList *table_list;
00973   drizzled::enum_field_types field_val;
00974   drizzled::sys_var_with_base variable;
00975   drizzled::sql_var_t var_type;
00976   drizzled::Key::Keytype key_type;
00977   drizzled::ha_key_alg key_alg;
00978   drizzled::ha_rkey_function ha_rkey_mode;
00979   drizzled::enum_tx_isolation tx_isolation;
00980   drizzled::Cast_target cast_type;
00981   const drizzled::CHARSET_INFO *charset;
00982   drizzled::thr_lock_type lock_type;
00983   drizzled::interval_type interval, interval_time_st;
00984   drizzled::type::timestamp_t date_time_type;
00985   drizzled::Select_Lex *select_lex;
00986   drizzled::chooser_compare_func_creator boolfunc2creator;
00987   drizzled::st_lex *lex;
00988   drizzled::index_hint_type index_hint;
00989   drizzled::enum_filetype filetype;
00990   drizzled::ha_build_method build_method;
00991   drizzled::message::Table::ForeignKeyConstraint::ForeignKeyOption m_fk_option;
00992   drizzled::execute_string_t execute_string;
00993 
00994 
00995 
00996 /* Line 214 of yacc.c  */
00997 #line 998 "drizzled/sql_yacc.cc"
00998 } YYSTYPE;
00999 # define YYSTYPE_IS_TRIVIAL 1
01000 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
01001 # define YYSTYPE_IS_DECLARED 1
01002 #endif
01003 
01004 
01005 /* Copy the second part of user declarations.  */
01006 
01007 /* Line 264 of yacc.c  */
01008 #line 161 "drizzled/sql_yacc.yy"
01009 
01010 namespace drizzled
01011 {
01012 bool my_yyoverflow(short **a, union ParserType **b, unsigned long *yystacksize);
01013 }
01014 
01015 
01016 /* Line 264 of yacc.c  */
01017 #line 1018 "drizzled/sql_yacc.cc"
01018 
01019 #ifdef short
01020 # undef short
01021 #endif
01022 
01023 #ifdef YYTYPE_UINT8
01024 typedef YYTYPE_UINT8 yytype_uint8;
01025 #else
01026 typedef unsigned char yytype_uint8;
01027 #endif
01028 
01029 #ifdef YYTYPE_INT8
01030 typedef YYTYPE_INT8 yytype_int8;
01031 #elif (defined __STDC__ || defined __C99__FUNC__ \
01032      || defined __cplusplus || defined _MSC_VER)
01033 typedef signed char yytype_int8;
01034 #else
01035 typedef short int yytype_int8;
01036 #endif
01037 
01038 #ifdef YYTYPE_UINT16
01039 typedef YYTYPE_UINT16 yytype_uint16;
01040 #else
01041 typedef unsigned short int yytype_uint16;
01042 #endif
01043 
01044 #ifdef YYTYPE_INT16
01045 typedef YYTYPE_INT16 yytype_int16;
01046 #else
01047 typedef short int yytype_int16;
01048 #endif
01049 
01050 #ifndef YYSIZE_T
01051 # ifdef __SIZE_TYPE__
01052 #  define YYSIZE_T __SIZE_TYPE__
01053 # elif defined size_t
01054 #  define YYSIZE_T size_t
01055 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
01056      || defined __cplusplus || defined _MSC_VER)
01057 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
01058 #  define YYSIZE_T size_t
01059 # else
01060 #  define YYSIZE_T unsigned int
01061 # endif
01062 #endif
01063 
01064 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
01065 
01066 #ifndef YY_
01067 # if YYENABLE_NLS
01068 #  if ENABLE_NLS
01069 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
01070 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
01071 #  endif
01072 # endif
01073 # ifndef YY_
01074 #  define YY_(msgid) msgid
01075 # endif
01076 #endif
01077 
01078 /* Suppress unused-variable warnings by "using" E.  */
01079 #if ! defined lint || defined __GNUC__
01080 # define YYUSE(e) ((void) (e))
01081 #else
01082 # define YYUSE(e) /* empty */
01083 #endif
01084 
01085 /* Identity function, used to suppress warnings about constant conditions.  */
01086 #ifndef lint
01087 # define YYID(n) (n)
01088 #else
01089 #if (defined __STDC__ || defined __C99__FUNC__ \
01090      || defined __cplusplus || defined _MSC_VER)
01091 static int
01092 YYID (int yyi)
01093 #else
01094 static int
01095 YYID (yyi)
01096     int yyi;
01097 #endif
01098 {
01099   return yyi;
01100 }
01101 #endif
01102 
01103 #if ! defined yyoverflow || YYERROR_VERBOSE
01104 
01105 /* The parser invokes alloca or malloc; define the necessary symbols.  */
01106 
01107 # ifdef YYSTACK_USE_ALLOCA
01108 #  if YYSTACK_USE_ALLOCA
01109 #   ifdef __GNUC__
01110 #    define YYSTACK_ALLOC __builtin_alloca
01111 #   elif defined __BUILTIN_VA_ARG_INCR
01112 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
01113 #   elif defined _AIX
01114 #    define YYSTACK_ALLOC __alloca
01115 #   elif defined _MSC_VER
01116 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
01117 #    define alloca _alloca
01118 #   else
01119 #    define YYSTACK_ALLOC alloca
01120 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01121      || defined __cplusplus || defined _MSC_VER)
01122 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
01123 #     ifndef _STDLIB_H
01124 #      define _STDLIB_H 1
01125 #     endif
01126 #    endif
01127 #   endif
01128 #  endif
01129 # endif
01130 
01131 # ifdef YYSTACK_ALLOC
01132    /* Pacify GCC's `empty if-body' warning.  */
01133 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
01134 #  ifndef YYSTACK_ALLOC_MAXIMUM
01135     /* The OS might guarantee only one guard page at the bottom of the stack,
01136        and a page size can be as small as 4096 bytes.  So we cannot safely
01137        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
01138        to allow for a few compiler-allocated temporary stack slots.  */
01139 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
01140 #  endif
01141 # else
01142 #  define YYSTACK_ALLOC YYMALLOC
01143 #  define YYSTACK_FREE YYFREE
01144 #  ifndef YYSTACK_ALLOC_MAXIMUM
01145 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
01146 #  endif
01147 #  if (defined __cplusplus && ! defined _STDLIB_H \
01148        && ! ((defined YYMALLOC || defined malloc) \
01149        && (defined YYFREE || defined free)))
01150 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
01151 #   ifndef _STDLIB_H
01152 #    define _STDLIB_H 1
01153 #   endif
01154 #  endif
01155 #  ifndef YYMALLOC
01156 #   define YYMALLOC malloc
01157 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01158      || defined __cplusplus || defined _MSC_VER)
01159 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
01160 #   endif
01161 #  endif
01162 #  ifndef YYFREE
01163 #   define YYFREE free
01164 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01165      || defined __cplusplus || defined _MSC_VER)
01166 void free (void *); /* INFRINGES ON USER NAME SPACE */
01167 #   endif
01168 #  endif
01169 # endif
01170 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
01171 
01172 
01173 #if (! defined yyoverflow \
01174      && (! defined __cplusplus \
01175    || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
01176 
01177 /* A type that is properly aligned for any stack member.  */
01178 union yyalloc
01179 {
01180   yytype_int16 yyss_alloc;
01181   YYSTYPE yyvs_alloc;
01182 };
01183 
01184 /* The size of the maximum gap between one aligned stack and the next.  */
01185 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
01186 
01187 /* The size of an array large to enough to hold all stacks, each with
01188    N elements.  */
01189 # define YYSTACK_BYTES(N) \
01190      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
01191       + YYSTACK_GAP_MAXIMUM)
01192 
01193 /* Copy COUNT objects from FROM to TO.  The source and destination do
01194    not overlap.  */
01195 # ifndef YYCOPY
01196 #  if defined __GNUC__ && 1 < __GNUC__
01197 #   define YYCOPY(To, From, Count) \
01198       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
01199 #  else
01200 #   define YYCOPY(To, From, Count)    \
01201       do          \
01202   {         \
01203     YYSIZE_T yyi;       \
01204     for (yyi = 0; yyi < (Count); yyi++) \
01205       (To)[yyi] = (From)[yyi];    \
01206   }         \
01207       while (YYID (0))
01208 #  endif
01209 # endif
01210 
01211 /* Relocate STACK from its old location to the new one.  The
01212    local variables YYSIZE and YYSTACKSIZE give the old and new number of
01213    elements in the stack, and YYPTR gives the new location of the
01214    stack.  Advance YYPTR to a properly aligned location for the next
01215    stack.  */
01216 # define YYSTACK_RELOCATE(Stack_alloc, Stack)       \
01217     do                  \
01218       {                 \
01219   YYSIZE_T yynewbytes;            \
01220   YYCOPY (&yyptr->Stack_alloc, Stack, yysize);      \
01221   Stack = &yyptr->Stack_alloc;          \
01222   yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
01223   yyptr += yynewbytes / sizeof (*yyptr);        \
01224       }                 \
01225     while (YYID (0))
01226 
01227 #endif
01228 
01229 /* YYFINAL -- State number of the termination state.  */
01230 #define YYFINAL  279
01231 /* YYLAST -- Last index in YYTABLE.  */
01232 #define YYLAST   14939
01233 
01234 /* YYNTOKENS -- Number of terminals.  */
01235 #define YYNTOKENS  386
01236 /* YYNNTS -- Number of nonterminals.  */
01237 #define YYNNTS  422
01238 /* YYNRULES -- Number of rules.  */
01239 #define YYNRULES  1211
01240 /* YYNRULES -- Number of states.  */
01241 #define YYNSTATES  2091
01242 
01243 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
01244 #define YYUNDEFTOK  2
01245 #define YYMAXUTOK   623
01246 
01247 #define YYTRANSLATE(YYX)            \
01248   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
01249 
01250 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
01251 static const yytype_uint16 yytranslate[] =
01252 {
01253        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01254        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01255        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01256        2,     2,     2,     2,     2,     2,     2,   375,   368,     2,
01257      379,   380,   373,   372,   383,   371,   384,   374,     2,     2,
01258        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01259        2,   363,     2,     2,   385,     2,     2,     2,     2,     2,
01260        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01261        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01262        2,     2,     2,     2,   376,     2,     2,     2,     2,     2,
01263        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01264        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01265        2,     2,     2,   381,   367,   382,   377,     2,     2,     2,
01266        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01267        2,     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,     2,     2,     2,
01271        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01272        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01273        2,     2,     2,     2,     2,     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,     2,     2,     2,     2,     2,     2,
01277        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01278        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
01279        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
01280       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
01281       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
01282       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
01283       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
01284       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
01285       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
01286       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
01287       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
01288       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
01289      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
01290      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
01291      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
01292      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
01293      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
01294      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
01295      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
01296      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
01297      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
01298      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01299      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
01300      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
01301      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
01302      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
01303      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
01304      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
01305      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
01306      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
01307      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
01308      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
01309      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
01310      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
01311      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
01312      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
01313      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
01314      355,   356,   357,   358,   359,   360,   361,   362,   364,   365,
01315      366,   369,   370,   378
01316 };
01317 
01318 #if YYDEBUG
01319 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
01320    YYRHS.  */
01321 static const yytype_uint16 yyprhs[] =
01322 {
01323        0,     0,     3,     5,     8,    10,    12,    14,    16,    18,
01324       20,    22,    24,    26,    28,    30,    32,    34,    36,    38,
01325       40,    42,    44,    46,    48,    50,    52,    54,    56,    58,
01326       60,    62,    64,    68,    69,    77,    78,    92,    93,   100,
01327      106,   107,   113,   118,   121,   124,   125,   126,   131,   132,
01328      139,   142,   144,   145,   146,   153,   154,   156,   158,   160,
01329      164,   166,   170,   174,   178,   182,   183,   185,   186,   190,
01330      191,   193,   195,   198,   200,   203,   207,   209,   213,   217,
01331      221,   225,   229,   233,   237,   241,   245,   247,   252,   257,
01332      259,   261,   263,   265,   267,   269,   271,   273,   276,   278,
01333      282,   284,   286,   289,   292,   300,   309,   318,   321,   324,
01334      325,   327,   330,   331,   333,   336,   337,   342,   345,   351,
01335      354,   357,   360,   366,   369,   370,   377,   383,   386,   389,
01336      392,   395,   399,   403,   407,   410,   413,   415,   418,   420,
01337      422,   427,   432,   435,   438,   442,   443,   447,   449,   455,
01338      456,   460,   461,   463,   465,   466,   470,   471,   473,   474,
01339      478,   480,   482,   485,   488,   490,   493,   494,   497,   501,
01340      504,   505,   508,   512,   515,   516,   518,   521,   523,   525,
01341      528,   531,   533,   534,   536,   539,   541,   543,   545,   549,
01342      552,   554,   555,   557,   560,   562,   564,   568,   571,   576,
01343      578,   579,   582,   584,   586,   588,   589,   591,   592,   594,
01344      600,   601,   605,   609,   611,   612,   615,   618,   621,   622,
01345      626,   630,   637,   644,   646,   648,   651,   654,   657,   659,
01346      662,   665,   667,   669,   670,   672,   674,   676,   678,   679,
01347      681,   682,   684,   687,   688,   690,   692,   695,   698,   700,
01348      704,   707,   709,   711,   716,   719,   721,   726,   727,   729,
01349      730,   733,   735,   739,   740,   748,   749,   755,   756,   759,
01350      762,   764,   765,   767,   769,   771,   775,   778,   782,   785,
01351      790,   791,   798,   799,   800,   809,   813,   818,   822,   826,
01352      829,   832,   839,   845,   849,   853,   855,   857,   859,   860,
01353      862,   863,   865,   866,   869,   871,   872,   874,   876,   880,
01354      881,   885,   886,   891,   892,   897,   898,   903,   905,   909,
01355      913,   915,   918,   923,   926,   930,   933,   937,   938,   942,
01356      943,   944,   951,   954,   956,   958,   961,   964,   972,   973,
01357      975,   978,   980,   982,   984,   986,   988,   990,   992,   994,
01358      996,   998,   999,  1002,  1007,  1011,  1013,  1015,  1019,  1024,
01359     1025,  1026,  1027,  1030,  1033,  1035,  1037,  1038,  1041,  1045,
01360     1049,  1053,  1056,  1060,  1065,  1069,  1074,  1078,  1083,  1085,
01361     1089,  1094,  1098,  1102,  1109,  1111,  1117,  1124,  1130,  1138,
01362     1145,  1154,  1160,  1167,  1172,  1178,  1182,  1187,  1189,  1193,
01363     1197,  1201,  1205,  1209,  1213,  1219,  1225,  1229,  1233,  1237,
01364     1241,  1245,  1249,  1251,  1253,  1255,  1257,  1259,  1261,  1263,
01365     1265,  1267,  1269,  1271,  1273,  1275,  1277,  1281,  1283,  1285,
01366     1287,  1291,  1294,  1297,  1300,  1304,  1308,  1314,  1321,  1326,
01367     1331,  1334,  1341,  1347,  1354,  1359,  1364,  1370,  1375,  1378,
01368     1383,  1388,  1393,  1404,  1411,  1420,  1427,  1432,  1437,  1444,
01369     1449,  1454,  1459,  1467,  1475,  1483,  1490,  1497,  1504,  1511,
01370     1515,  1520,  1527,  1536,  1539,  1548,  1557,  1564,  1567,  1572,
01371     1579,  1586,  1595,  1604,  1611,  1620,  1627,  1630,  1635,  1644,
01372     1653,  1656,  1659,  1664,  1669,  1673,  1677,  1683,  1692,  1698,
01373     1703,  1710,  1715,  1722,  1731,  1738,  1743,  1747,  1754,  1755,
01374     1761,  1762,  1764,  1766,  1770,  1775,  1780,  1786,  1792,  1797,
01375     1798,  1799,  1807,  1812,  1818,  1823,  1829,  1834,  1839,  1844,
01376     1849,  1854,  1860,  1861,  1870,  1871,  1875,  1879,  1881,  1886,
01377     1887,  1889,  1890,  1893,  1894,  1896,  1897,  1901,  1904,  1906,
01378     1908,  1911,  1913,  1915,  1918,  1921,  1923,  1925,  1927,  1930,
01379     1932,  1936,  1937,  1939,  1940,  1943,  1948,  1954,  1956,  1958,
01380     1960,  1962,  1967,  1969,  1973,  1977,  1981,  1982,  1989,  1990,
01381     1997,  1998,  2007,  2012,  2013,  2022,  2023,  2034,  2041,  2042,
01382     2051,  2052,  2063,  2070,  2072,  2075,  2078,  2079,  2084,  2088,
01383     2094,  2098,  2099,  2100,  2109,  2111,  2112,  2113,  2120,  2121,
01384     2125,  2126,  2127,  2133,  2134,  2136,  2137,  2139,  2140,  2143,
01385     2147,  2151,  2153,  2155,  2156,  2164,  2165,  2173,  2175,  2178,
01386     2179,  2180,  2183,  2184,  2187,  2188,  2190,  2192,  2194,  2196,
01387     2200,  2202,  2206,  2208,  2210,  2212,  2214,  2216,  2218,  2220,
01388     2222,  2224,  2226,  2228,  2230,  2232,  2234,  2236,  2238,  2240,
01389     2242,  2244,  2246,  2248,  2250,  2252,  2253,  2255,  2256,  2259,
01390     2260,  2262,  2263,  2264,  2268,  2269,  2270,  2274,  2277,  2278,
01391     2279,  2284,  2289,  2292,  2293,  2295,  2299,  2303,  2305,  2308,
01392     2309,  2311,  2312,  2317,  2322,  2325,  2326,  2328,  2330,  2331,
01393     2333,  2334,  2336,  2339,  2341,  2345,  2349,  2351,  2353,  2355,
01394     2356,  2359,  2361,  2363,  2365,  2367,  2369,  2371,  2373,  2375,
01395     2377,  2379,  2381,  2382,  2385,  2389,  2391,  2394,  2395,  2399,
01396     2400,  2406,  2409,  2411,  2415,  2421,  2422,  2430,  2435,  2437,
01397     2441,  2443,  2444,  2447,  2448,  2450,  2456,  2458,  2461,  2462,
01398     2466,  2467,  2469,  2470,  2472,  2473,  2474,  2482,  2483,  2484,
01399     2490,  2493,  2495,  2497,  2499,  2503,  2508,  2509,  2513,  2517,
01400     2519,  2522,  2525,  2526,  2530,  2531,  2537,  2541,  2543,  2547,
01401     2549,  2553,  2555,  2557,  2558,  2560,  2561,  2566,  2567,  2569,
01402     2573,  2575,  2577,  2579,  2580,  2581,  2588,  2589,  2599,  2603,
01403     2605,  2609,  2613,  2615,  2619,  2620,  2629,  2630,  2632,  2636,
01404     2637,  2639,  2640,  2644,  2647,  2651,  2655,  2660,  2666,  2672,
01405     2678,  2684,  2687,  2690,  2694,  2697,  2701,  2703,  2707,  2712,
01406     2713,  2716,  2718,  2720,  2721,  2724,  2727,  2728,  2733,  2734,
01407     2739,  2741,  2743,  2744,  2746,  2747,  2749,  2751,  2752,  2756,
01408     2760,  2762,  2763,  2767,  2772,  2774,  2776,  2779,  2780,  2782,
01409     2786,  2787,  2789,  2791,  2794,  2795,  2796,  2797,  2798,  2817,
01410     2819,  2820,  2822,  2823,  2825,  2827,  2828,  2830,  2832,  2834,
01411     2837,  2840,  2841,  2844,  2847,  2849,  2853,  2858,  2862,  2866,
01412     2867,  2870,  2873,  2875,  2879,  2883,  2884,  2888,  2890,  2892,
01413     2893,  2897,  2900,  2904,  2906,  2908,  2911,  2912,  2915,  2917,
01414     2920,  2922,  2924,  2926,  2928,  2931,  2934,  2936,  2938,  2940,
01415     2942,  2944,  2946,  2948,  2951,  2954,  2956,  2958,  2960,  2962,
01416     2964,  2967,  2970,  2972,  2974,  2976,  2978,  2980,  2982,  2985,
01417     2988,  2990,  2992,  2994,  2996,  2998,  3000,  3002,  3006,  3012,
01418     3014,  3016,  3018,  3022,  3027,  3033,  3035,  3041,  3045,  3048,
01419     3050,  3054,  3057,  3059,  3061,  3063,  3065,  3067,  3069,  3071,
01420     3073,  3075,  3077,  3079,  3081,  3083,  3085,  3087,  3089,  3091,
01421     3093,  3095,  3097,  3099,  3101,  3103,  3105,  3107,  3109,  3111,
01422     3113,  3115,  3117,  3119,  3121,  3123,  3125,  3127,  3129,  3131,
01423     3133,  3135,  3137,  3139,  3141,  3143,  3145,  3147,  3149,  3151,
01424     3153,  3155,  3157,  3159,  3161,  3163,  3165,  3167,  3169,  3171,
01425     3173,  3175,  3177,  3179,  3181,  3183,  3185,  3187,  3189,  3191,
01426     3193,  3195,  3197,  3199,  3201,  3203,  3205,  3207,  3209,  3211,
01427     3213,  3215,  3217,  3219,  3221,  3223,  3225,  3227,  3229,  3231,
01428     3233,  3235,  3237,  3239,  3241,  3243,  3245,  3247,  3249,  3251,
01429     3253,  3255,  3257,  3259,  3261,  3263,  3265,  3267,  3269,  3271,
01430     3273,  3275,  3277,  3279,  3281,  3283,  3285,  3287,  3289,  3291,
01431     3293,  3295,  3297,  3299,  3301,  3303,  3305,  3307,  3309,  3311,
01432     3313,  3315,  3317,  3319,  3321,  3323,  3325,  3327,  3329,  3331,
01433     3333,  3335,  3337,  3339,  3341,  3343,  3345,  3347,  3349,  3351,
01434     3353,  3355,  3357,  3359,  3361,  3363,  3365,  3367,  3369,  3371,
01435     3373,  3375,  3377,  3379,  3381,  3383,  3384,  3389,  3390,  3392,
01436     3394,  3398,  3399,  3402,  3404,  3406,  3408,  3410,  3411,  3413,
01437     3414,  3416,  3418,  3420,  3421,  3424,  3427,  3430,  3432,  3435,
01438     3440,  3446,  3451,  3458,  3460,  3462,  3464,  3466,  3468,  3470,
01439     3473,  3476,  3479,  3481,  3483,  3485,  3487,  3489,  3491,  3493,
01440     3495,  3496,  3500,  3501,  3505,  3506,  3508,  3509,  3513,  3516,
01441     3517,  3519,  3522,  3523,  3525,  3530,  3535,  3541,  3544,  3548,
01442     3550,  3551,  3553,  3554,  3559,  3560,  3562,  3564,  3565,  3568,
01443     3571,  3573,  3574,  3576,  3578,  3581,  3585,  3587,  3588,  3594,
01444     3598,  3599
01445 };
01446 
01447 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
01448 static const yytype_int16 yyrhs[] =
01449 {
01450      387,     0,    -1,   106,    -1,   388,   106,    -1,   389,    -1,
01451      783,    -1,   483,    -1,   500,    -1,   502,    -1,   789,    -1,
01452      390,    -1,   688,    -1,   699,    -1,   645,    -1,   651,    -1,
01453      705,    -1,   656,    -1,   711,    -1,   714,    -1,   792,    -1,
01454      504,    -1,   659,    -1,   790,    -1,   791,    -1,   508,    -1,
01455      762,    -1,   693,    -1,   498,    -1,   691,    -1,   781,    -1,
01456      682,    -1,   713,    -1,    63,    38,   751,    -1,    -1,    63,
01457      407,   308,   408,   749,   391,   394,    -1,    -1,    63,   487,
01458      392,   470,   150,   756,   472,   215,   749,   379,   478,   380,
01459      473,    -1,    -1,    63,    69,   408,   750,   393,   404,    -1,
01460      379,   419,   380,   409,   396,    -1,    -1,   379,   400,   380,
01461      395,   797,    -1,   379,   399,   380,   409,    -1,   399,   409,
01462       -1,   409,   396,    -1,    -1,    -1,   722,   400,   397,   794,
01463       -1,    -1,   722,   379,   400,   380,   398,   797,    -1,   174,
01464      749,    -1,   401,    -1,    -1,    -1,   267,   402,   519,   525,
01465      403,   418,    -1,    -1,   415,    -1,   405,    -1,   406,    -1,
01466      406,   383,   405,    -1,   757,    -1,   250,   674,   322,    -1,
01467      250,   674,   118,    -1,   757,   673,   757,    -1,   757,   673,
01468      636,    -1,    -1,   309,    -1,    -1,   146,   207,   115,    -1,
01469       -1,   411,    -1,   412,    -1,   412,   410,    -1,   412,    -1,
01470      412,   411,    -1,   412,   383,   411,    -1,   413,    -1,   107,
01471      673,   757,    -1,    50,   674,   753,    -1,    18,   674,   636,
01472       -1,   250,   674,   322,    -1,   250,   674,   118,    -1,   261,
01473      673,   417,    -1,   119,   673,   753,    -1,   757,   673,   758,
01474       -1,   757,   673,   636,    -1,   414,    -1,   457,    46,   674,
01475      456,    -1,   457,    46,   674,   456,    -1,    53,    -1,    54,
01476       -1,    85,    -1,    99,    -1,   121,    -1,   242,    -1,   416,
01477       -1,   630,    -1,   518,   524,    -1,   420,    -1,   419,   383,
01478      420,    -1,   421,    -1,   422,    -1,   427,   423,    -1,   427,
01479      459,    -1,   465,   480,   472,   379,   478,   380,   473,    -1,
01480      425,   466,   480,   472,   379,   478,   380,   473,    -1,   425,
01481      125,   166,   480,   379,   478,   380,   459,    -1,   426,   423,
01482       -1,   425,   424,    -1,    -1,   424,    -1,    43,   531,    -1,
01483       -1,   426,    -1,    59,   480,    -1,    -1,   748,   428,   429,
01484      454,    -1,   315,   451,    -1,   315,   379,   211,   380,   451,
01485       -1,    72,   451,    -1,   432,   448,    -1,    41,   445,    -1,
01486      431,   379,   211,   380,   445,    -1,   312,   445,    -1,    -1,
01487      108,   430,   379,   482,   380,   445,    -1,   344,   379,   211,
01488      380,   443,    -1,   433,   448,    -1,    75,   443,    -1,   314,
01489      443,    -1,    27,   443,    -1,    83,   434,   448,    -1,   212,
01490      434,   448,    -1,   121,   434,   448,    -1,   341,   443,    -1,
01491       28,   444,    -1,   271,    -1,    41,   348,    -1,    41,    -1,
01492      345,    -1,   158,   438,   437,   439,    -1,    23,   438,   437,
01493      439,    -1,   241,   440,    -1,    95,   440,    -1,    95,   230,
01494      440,    -1,    -1,   379,   211,   380,    -1,   435,    -1,   379,
01495      211,   383,   211,   380,    -1,    -1,   379,   211,   380,    -1,
01496       -1,   278,    -1,   333,    -1,    -1,   379,   211,   380,    -1,
01497       -1,   362,    -1,    -1,   379,   211,   380,    -1,   435,    -1,
01498      210,    -1,   207,   210,    -1,   458,   166,    -1,   330,    -1,
01499      330,   166,    -1,    -1,   443,   441,    -1,   443,    85,   737,
01500       -1,   443,   442,    -1,    -1,   444,   441,    -1,   444,    85,
01501      740,    -1,   444,   442,    -1,    -1,   446,    -1,   446,   447,
01502       -1,   447,    -1,   441,    -1,    85,   737,    -1,    46,   455,
01503       -1,   442,    -1,    -1,   449,    -1,   449,   450,    -1,   450,
01504       -1,   441,    -1,    18,    -1,   271,    85,   343,    -1,    85,
01505      739,    -1,   442,    -1,    -1,   452,    -1,   452,   453,    -1,
01506      453,    -1,   441,    -1,    85,   208,   530,    -1,    85,   741,
01507       -1,   215,   334,   208,   530,    -1,   442,    -1,    -1,    50,
01508      753,    -1,   757,    -1,   455,    -1,    85,    -1,    -1,    85,
01509       -1,    -1,   232,    -1,   244,   749,   460,   462,   463,    -1,
01510       -1,   379,   461,   380,    -1,   461,   383,   756,    -1,   756,
01511       -1,    -1,   184,   130,    -1,   184,   228,    -1,   184,   279,
01512       -1,    -1,   215,   334,   464,    -1,   215,    86,   464,    -1,
01513      215,   334,   464,   215,    86,   464,    -1,   215,    86,   464,
01514      215,   334,   464,    -1,   252,    -1,    34,    -1,   274,   210,
01515       -1,   209,     4,    -1,   274,    85,    -1,   467,    -1,   232,
01516      166,    -1,   330,   468,    -1,   166,    -1,   150,    -1,    -1,
01517      467,    -1,   164,    -1,   150,    -1,   149,    -1,    -1,   330,
01518       -1,    -1,   471,    -1,   471,   475,    -1,    -1,   474,    -1,
01519      476,    -1,   474,   476,    -1,   338,   477,    -1,   475,    -1,
01520      165,   674,   635,    -1,    50,   753,    -1,    31,    -1,   135,
01521       -1,   478,   383,   479,   628,    -1,   479,   628,    -1,   756,
01522       -1,   756,   379,   211,   380,    -1,    -1,   748,    -1,    -1,
01523      384,   756,    -1,   736,    -1,   482,   383,   736,    -1,    -1,
01524       10,   487,   495,   308,   749,   484,   486,    -1,    -1,    10,
01525       69,   750,   485,   415,    -1,    -1,    91,   306,    -1,   148,
01526      306,    -1,   488,    -1,    -1,   218,    -1,   213,    -1,   490,
01527       -1,   488,   383,   490,    -1,     5,   494,    -1,   489,   421,
01528      496,    -1,     5,   422,    -1,   489,   379,   419,   380,    -1,
01529       -1,    40,   494,   748,   491,   427,   496,    -1,    -1,    -1,
01530      196,   494,   748,   492,   429,   454,   493,   496,    -1,    96,
01531      494,   748,    -1,    96,   125,   166,   480,    -1,    96,   232,
01532      166,    -1,    96,   467,   748,    -1,    90,   164,    -1,   102,
01533      164,    -1,    10,   494,   748,   274,    85,   737,    -1,    10,
01534      494,   748,    96,    85,    -1,   246,   497,   749,    -1,    61,
01535      318,   456,    -1,   410,    -1,   124,    -1,   621,    -1,    -1,
01536       49,    -1,    -1,   147,    -1,    -1,     7,   756,    -1,   120,
01537       -1,    -1,   318,    -1,    14,    -1,   291,   320,   499,    -1,
01538       -1,   355,    58,   280,    -1,    -1,    11,   780,   501,   647,
01539       -1,    -1,    43,   780,   503,   647,    -1,    -1,   246,   780,
01540      505,   506,    -1,   507,    -1,   506,   383,   507,    -1,   749,
01541      318,   749,    -1,   509,    -1,   267,   512,    -1,   379,   510,
01542      380,   797,    -1,   267,   514,    -1,   379,   510,   380,    -1,
01543      267,   582,    -1,   379,   511,   380,    -1,    -1,   514,   513,
01544      794,    -1,    -1,    -1,   515,   519,   525,   516,   517,   524,
01545       -1,   624,   630,    -1,   641,    -1,   518,    -1,   641,   518,
01546       -1,   518,   641,    -1,   129,   564,   613,   618,   615,   624,
01547      630,    -1,    -1,   520,    -1,   520,   523,    -1,   523,    -1,
01548       92,    -1,     9,    -1,   288,    -1,   285,    -1,   297,    -1,
01549      286,    -1,   522,    -1,   521,    -1,   287,    -1,    -1,   126,
01550      334,    -1,   180,   159,   276,   194,    -1,   525,   383,   526,
01551       -1,   526,    -1,   373,    -1,   527,   744,   528,    -1,   527,
01552      531,   528,   529,    -1,    -1,    -1,    -1,    14,   756,    -1,
01553       14,   753,    -1,   756,    -1,   753,    -1,    -1,   379,   380,
01554       -1,   531,   224,   531,    -1,   531,   359,   531,    -1,   531,
01555       12,   531,    -1,   207,   531,    -1,   532,   160,   322,    -1,
01556      532,   160,   207,   322,    -1,   532,   160,   118,    -1,   532,
01557      160,   207,   118,    -1,   532,   160,   331,    -1,   532,   160,
01558      207,   331,    -1,   532,    -1,   532,   160,   210,    -1,   532,
01559      160,   207,   210,    -1,   532,   109,   533,    -1,   532,   535,
01560      533,    -1,   532,   535,   536,   379,   805,   380,    -1,   533,
01561       -1,   534,   159,   379,   805,   380,    -1,   534,   207,   159,
01562      379,   805,   380,    -1,   534,   159,   379,   531,   380,    -1,
01563      534,   159,   379,   531,   383,   559,   380,    -1,   534,   207,
01564      159,   379,   531,   380,    -1,   534,   207,   159,   379,   531,
01565      383,   559,   380,    -1,   534,    22,   534,    12,   533,    -1,
01566      534,   207,    22,   534,    12,   533,    -1,   534,   174,   537,
01567      617,    -1,   534,   207,   174,   537,   617,    -1,   534,   243,
01568      534,    -1,   534,   207,   243,   534,    -1,   534,    -1,   534,
01569      367,   534,    -1,   534,   368,   534,    -1,   534,   369,   534,
01570       -1,   534,   370,   534,    -1,   534,   372,   534,    -1,   534,
01571      371,   534,    -1,   534,   372,   156,   531,   607,    -1,   534,
01572      371,   156,   531,   607,    -1,   534,   373,   534,    -1,   534,
01573      374,   534,    -1,   534,   375,   534,    -1,   534,    93,   534,
01574       -1,   534,   197,   534,    -1,   534,   376,   534,    -1,   537,
01575       -1,   363,    -1,   131,    -1,   365,    -1,   169,    -1,   364,
01576       -1,   203,    -1,     9,    -1,    13,    -1,   746,    -1,   538,
01577       -1,   539,    -1,   541,    -1,   540,    -1,   537,    46,   757,
01578       -1,   738,    -1,   550,    -1,   546,    -1,   537,   366,   537,
01579       -1,   372,   537,    -1,   371,   537,    -1,   377,   537,    -1,
01580      379,   805,   380,    -1,   379,   531,   380,    -1,   379,   531,
01581      383,   559,   380,    -1,   262,   379,   531,   383,   559,   380,
01582       -1,   115,   379,   805,   380,    -1,   381,   756,   531,   382,
01583       -1,    24,   537,    -1,    37,   379,   531,    14,   558,   380,
01584       -1,    36,   560,   562,   561,   104,    -1,    61,   379,   531,
01585      383,   558,   380,    -1,    85,   379,   746,   380,    -1,   342,
01586      379,   746,   380,    -1,   156,   531,   607,   372,   531,    -1,
01587       41,   379,   559,   380,    -1,    67,   530,    -1,    75,   379,
01588      531,   380,    -1,    80,   379,   531,   380,    -1,   141,   379,
01589      531,   380,    -1,   155,   379,   531,   383,   531,   383,   531,
01590      383,   531,   380,    -1,   156,   379,   531,   383,   531,   380,
01591       -1,   156,   379,   531,   383,   531,   383,   559,   380,    -1,
01592      171,   379,   531,   383,   531,   380,    -1,   192,   379,   531,
01593      380,    -1,   198,   379,   531,   380,    -1,   256,   379,   531,
01594      383,   531,   380,    -1,   265,   379,   531,   380,    -1,   315,
01595      379,   531,   380,    -1,   321,   379,   531,   380,    -1,   321,
01596      379,   170,   531,   129,   531,   380,    -1,   321,   379,   319,
01597      531,   129,   531,   380,    -1,   321,   379,    30,   531,   129,
01598      531,   380,    -1,   321,   379,   170,   129,   531,   380,    -1,
01599      321,   379,   319,   129,   531,   380,    -1,   321,   379,    30,
01600      129,   531,   380,    -1,   321,   379,   531,   129,   531,   380,
01601       -1,   336,   379,   380,    -1,   361,   379,   531,   380,    -1,
01602        6,   379,   531,   383,   531,   380,    -1,     6,   379,   531,
01603      383,   156,   531,   607,   380,    -1,    66,   530,    -1,    73,
01604      379,   531,   383,   156,   531,   607,   380,    -1,    74,   379,
01605      531,   383,   156,   531,   607,   380,    -1,   117,   379,   607,
01606      129,   531,   380,    -1,   208,   530,    -1,   208,   379,   531,
01607      380,    -1,   229,   379,   534,   159,   531,   380,    -1,   299,
01608      379,   531,   383,   531,   380,    -1,   299,   379,   531,   383,
01609      156,   531,   607,   380,    -1,   301,   379,   531,   383,   531,
01610      383,   531,   380,    -1,   301,   379,   531,   383,   531,   380,
01611       -1,   301,   379,   531,   129,   531,   126,   531,   380,    -1,
01612      301,   379,   531,   129,   531,   380,    -1,   304,   530,    -1,
01613      304,   379,   531,   380,    -1,   316,   379,   608,   383,   531,
01614      383,   531,   380,    -1,   317,   379,   608,   383,   531,   383,
01615      531,   380,    -1,   339,   530,    -1,   340,   530,    -1,    45,
01616      379,   559,   380,    -1,    47,   379,   531,   380,    -1,    69,
01617      379,   380,    -1,    38,   379,   380,    -1,   114,   379,   531,
01618      380,   655,    -1,   146,   379,   531,   383,   531,   383,   531,
01619      380,    -1,   167,   712,   379,   531,   380,    -1,   189,   379,
01620      531,   380,    -1,   197,   379,   531,   383,   531,   380,    -1,
01621      235,   379,   531,   380,    -1,   248,   379,   531,   383,   531,
01622      380,    -1,   249,   379,   531,   383,   531,   383,   531,   380,
01623       -1,   323,   379,   531,   383,   531,   380,    -1,   350,   379,
01624      531,   380,    -1,   341,   379,   380,    -1,   350,   379,   531,
01625      383,   531,   380,    -1,    -1,   752,   379,   542,   543,   380,
01626       -1,    -1,   544,    -1,   545,    -1,   544,   383,   545,    -1,
01627      527,   531,   528,   529,    -1,    19,   379,   556,   380,    -1,
01628       19,   379,    92,   556,   380,    -1,    62,   379,   612,   373,
01629      380,    -1,    62,   379,   556,   380,    -1,    -1,    -1,    62,
01630      379,    92,   547,   559,   548,   380,    -1,   193,   379,   556,
01631      380,    -1,   193,   379,    92,   556,   380,    -1,   185,   379,
01632      556,   380,    -1,   185,   379,    92,   556,   380,    -1,   294,
01633      379,   556,   380,    -1,   347,   379,   556,   380,    -1,   293,
01634      379,   556,   380,    -1,   349,   379,   556,   380,    -1,   302,
01635      379,   556,   380,    -1,   302,   379,    92,   556,   380,    -1,
01636       -1,   134,   379,   553,   549,   559,   555,   554,   380,    -1,
01637       -1,   385,   551,   552,    -1,   775,   275,   531,    -1,   775,
01638       -1,   385,   771,   775,   481,    -1,    -1,    92,    -1,    -1,
01639      269,   736,    -1,    -1,   625,    -1,    -1,   612,   557,   531,
01640       -1,    24,   436,    -1,    28,    -1,   278,    -1,   278,   158,
01641       -1,   158,    -1,   333,    -1,   333,   158,    -1,    41,   436,
01642       -1,    75,    -1,   314,    -1,    72,    -1,    83,   434,    -1,
01643      531,    -1,   559,   383,   531,    -1,    -1,   531,    -1,    -1,
01644      101,   531,    -1,   353,   531,   313,   531,    -1,   562,   353,
01645      531,   313,   531,    -1,   576,    -1,   567,    -1,   566,    -1,
01646      563,    -1,   381,   756,   563,   382,    -1,   565,    -1,   566,
01647      383,   565,    -1,   563,   575,   563,    -1,   563,   297,   576,
01648       -1,    -1,   563,   575,   563,   215,   568,   531,    -1,    -1,
01649      563,   297,   576,   215,   569,   531,    -1,    -1,   563,   575,
01650      563,   338,   570,   379,   606,   380,    -1,   563,   202,   163,
01651      576,    -1,    -1,   563,   171,   592,   163,   563,   215,   571,
01652      531,    -1,    -1,   563,   171,   592,   163,   576,   572,   338,
01653      379,   606,   380,    -1,   563,   202,   171,   592,   163,   576,
01654       -1,    -1,   563,   256,   592,   163,   563,   215,   573,   531,
01655       -1,    -1,   563,   256,   592,   163,   576,   574,   338,   379,
01656      606,   380,    -1,   563,   202,   256,   592,   163,   576,    -1,
01657      163,    -1,   152,   163,    -1,    64,   163,    -1,    -1,   577,
01658      749,   611,   601,    -1,   591,   590,   587,    -1,   379,   590,
01659      578,   380,   611,    -1,   585,   624,   630,    -1,    -1,    -1,
01660      578,   329,   801,   579,   802,   580,   624,   630,    -1,   582,
01661       -1,    -1,    -1,   583,   519,   525,   584,   418,   524,    -1,
01662       -1,   590,   586,   566,    -1,    -1,    -1,   588,   519,   525,
01663      589,   418,    -1,    -1,   267,    -1,    -1,   225,    -1,    -1,
01664      126,   163,    -1,   126,   223,    32,    -1,   126,   133,    32,
01665       -1,   124,    -1,   147,    -1,    -1,   594,   467,   593,   596,
01666      379,   605,   380,    -1,    -1,   337,   467,   593,   597,   379,
01667      603,   380,    -1,   595,    -1,   598,   595,    -1,    -1,    -1,
01668      600,   598,    -1,    -1,   602,   599,    -1,    -1,   605,    -1,
01669      756,    -1,   232,    -1,   604,    -1,   605,   383,   604,    -1,
01670      756,    -1,   606,   383,   756,    -1,   609,    -1,    76,    -1,
01671       77,    -1,    78,    -1,    79,    -1,   138,    -1,   139,    -1,
01672      140,    -1,   190,    -1,   191,    -1,   264,    -1,   360,    -1,
01673      609,    -1,   128,    -1,    80,    -1,   352,    -1,   141,    -1,
01674      192,    -1,   198,    -1,   235,    -1,   265,    -1,   189,    -1,
01675      361,    -1,    -1,    14,    -1,    -1,   610,   756,    -1,    -1,
01676        9,    -1,    -1,    -1,   354,   614,   531,    -1,    -1,    -1,
01677      136,   616,   531,    -1,   112,   537,    -1,    -1,    -1,   133,
01678       32,   619,   620,    -1,   619,   383,   745,   628,    -1,   745,
01679      628,    -1,    -1,   356,    -1,   223,    32,   622,    -1,   622,
01680      383,   623,    -1,   623,    -1,   746,   628,    -1,    -1,   625,
01681       -1,    -1,   223,    32,   626,   627,    -1,   627,   383,   745,
01682      628,    -1,   745,   628,    -1,    -1,    15,    -1,    87,    -1,
01683       -1,   631,    -1,    -1,   631,    -1,   175,   632,    -1,   633,
01684       -1,   633,   383,   633,    -1,   633,   214,   633,    -1,   325,
01685       -1,   182,    -1,   211,    -1,    -1,   175,   633,    -1,   211,
01686       -1,   137,    -1,   182,    -1,   325,    -1,    82,    -1,   122,
01687       -1,   211,    -1,   325,    -1,   182,    -1,    82,    -1,   122,
01688       -1,    -1,   638,   639,    -1,   639,   383,   640,    -1,   640,
01689       -1,   385,   775,    -1,    -1,   157,   642,   643,    -1,    -1,
01690      226,   755,   644,   723,   726,    -1,    97,   755,    -1,   637,
01691       -1,    96,    38,   751,    -1,    96,   650,   780,   649,   647,
01692       -1,    -1,    96,   487,   150,   756,   215,   749,   646,    -1,
01693       96,    69,   649,   750,    -1,   648,    -1,   647,   383,   648,
01694       -1,   749,    -1,    -1,   146,   115,    -1,    -1,   309,    -1,
01695      114,   652,   653,   654,   655,    -1,   775,    -1,   385,   775,
01696       -1,    -1,   355,   209,   254,    -1,    -1,    55,    -1,    -1,
01697      350,    -1,    -1,    -1,   155,   657,   495,   662,   658,   664,
01698      680,    -1,    -1,    -1,   249,   660,   662,   661,   664,    -1,
01699      157,   663,    -1,   663,    -1,   648,    -1,   667,    -1,   379,
01700      380,   667,    -1,   379,   666,   380,   667,    -1,    -1,   274,
01701      665,   671,    -1,   666,   383,   743,    -1,   743,    -1,   342,
01702      670,    -1,   343,   670,    -1,    -1,   401,   668,   794,    -1,
01703       -1,   379,   401,   380,   669,   797,    -1,   670,   383,   675,
01704       -1,   675,    -1,   671,   383,   672,    -1,   672,    -1,   746,
01705      673,   679,    -1,   363,    -1,   275,    -1,    -1,   673,    -1,
01706       -1,   379,   676,   677,   380,    -1,    -1,   678,    -1,   678,
01707      383,   679,    -1,   679,    -1,   531,    -1,    85,    -1,    -1,
01708       -1,   215,    98,   681,   166,   334,   686,    -1,    -1,   334,
01709      495,   749,   274,   684,   683,   613,   624,   634,    -1,   684,
01710      383,   685,    -1,   685,    -1,   746,   673,   679,    -1,   686,
01711      383,   687,    -1,   687,    -1,   746,   673,   679,    -1,    -1,
01712       86,   690,   129,   749,   689,   613,   624,   634,    -1,    -1,
01713      147,    -1,   323,   692,   648,    -1,    -1,   308,    -1,    -1,
01714      277,   694,   695,    -1,    70,   698,    -1,   305,   696,   698,
01715       -1,   309,   305,   698,    -1,   308,   292,   696,   698,    -1,
01716       48,   697,   749,   696,   698,    -1,   469,   697,   749,   696,
01717      613,    -1,    62,   379,   373,   380,   351,    -1,    62,   379,
01718      373,   380,   110,    -1,   351,   629,    -1,   110,   629,    -1,
01719      770,   292,   698,    -1,   758,   292,    -1,    63,   308,   749,
01720       -1,   234,    -1,   770,   346,   698,    -1,    63,    69,   408,
01721      756,    -1,    -1,   697,   756,    -1,   129,    -1,   159,    -1,
01722       -1,   174,   753,    -1,   354,   531,    -1,    -1,   702,   749,
01723      700,   704,    -1,    -1,   702,   703,   701,   508,    -1,    87,
01724       -1,    88,    -1,    -1,   116,    -1,    -1,   736,    -1,   756,
01725       -1,    -1,   123,   706,   707,    -1,   707,   383,   708,    -1,
01726      708,    -1,    -1,   780,   709,   710,    -1,   305,   355,   239,
01727      180,    -1,   181,    -1,   292,    -1,   132,   292,    -1,    -1,
01728      647,    -1,   167,   712,   531,    -1,    -1,    57,    -1,   236,
01729       -1,   337,   750,    -1,    -1,    -1,    -1,    -1,   177,   719,
01730      715,   720,   151,   755,   716,   721,   157,   717,   308,   749,
01731      718,   723,   726,   729,   731,   734,    -1,    71,    -1,    -1,
01732       55,    -1,    -1,   249,    -1,   147,    -1,    -1,    14,    -1,
01733      249,    -1,   147,    -1,   249,    14,    -1,   147,    14,    -1,
01734       -1,    48,   724,    -1,   724,   725,    -1,   725,    -1,   310,
01735       32,   736,    -1,   222,   103,    32,   736,    -1,   103,    32,
01736      736,    -1,   111,    32,   736,    -1,    -1,   176,   727,    -1,
01737      727,   728,    -1,   728,    -1,   310,    32,   736,    -1,   290,
01738       32,   736,    -1,    -1,   147,   211,   730,    -1,   176,    -1,
01739      260,    -1,    -1,   379,   732,   380,    -1,   379,   380,    -1,
01740      732,   383,   733,    -1,   733,    -1,   746,    -1,   385,   775,
01741       -1,    -1,   274,   686,    -1,   754,    -1,   735,   754,    -1,
01742      754,    -1,   137,    -1,    25,    -1,   738,    -1,   372,   742,
01743       -1,   371,   742,    -1,   735,    -1,   742,    -1,   210,    -1,
01744      118,    -1,   322,    -1,   137,    -1,    25,    -1,    75,   735,
01745       -1,   315,   735,    -1,   735,    -1,   137,    -1,    25,    -1,
01746      742,    -1,   210,    -1,   372,   742,    -1,   371,   742,    -1,
01747      210,    -1,   118,    -1,   322,    -1,   735,    -1,   210,    -1,
01748      742,    -1,    75,   735,    -1,   315,   735,    -1,   211,    -1,
01749      182,    -1,   325,    -1,    82,    -1,   122,    -1,   746,    -1,
01750      744,    -1,   756,   384,   373,    -1,   756,   384,   756,   384,
01751      373,    -1,   531,    -1,   756,    -1,   747,    -1,   756,   384,
01752      756,    -1,   384,   756,   384,   756,    -1,   756,   384,   756,
01753      384,   756,    -1,   756,    -1,   756,   384,   756,   384,   756,
01754       -1,   756,   384,   756,    -1,   384,   756,    -1,   756,    -1,
01755      750,   384,   756,    -1,   384,   756,    -1,   756,    -1,   756,
01756       -1,   142,    -1,   145,    -1,   311,    -1,   311,    -1,   311,
01757       -1,   752,    -1,   760,    -1,   752,    -1,   753,    -1,   752,
01758       -1,   753,    -1,   315,    -1,   286,    -1,   144,    -1,   761,
01759       -1,    21,    -1,    42,    -1,    44,    -1,    50,    -1,    52,
01760       -1,    60,    -1,    81,    -1,    94,    -1,   104,    -1,   123,
01761       -1,   209,    -1,   219,    -1,   257,    -1,   263,    -1,   266,
01762       -1,   273,    -1,   278,    -1,   291,    -1,   295,    -1,   323,
01763       -1,     4,    -1,     6,    -1,     7,    -1,     8,    -1,    13,
01764       -1,    17,    -1,    18,    -1,    19,    -1,    26,    -1,    29,
01765       -1,    28,    -1,    31,    -1,    35,    -1,    39,    -1,    45,
01766       -1,    47,    -1,    48,    -1,    51,    -1,    53,    -1,    54,
01767       -1,    55,    -1,    57,    -1,    58,    -1,    65,    -1,    71,
01768       -1,    70,    -1,    72,    -1,    75,    -1,    80,    -1,    90,
01769       -1,    91,    -1,    97,    -1,    98,    -1,    99,    -1,   105,
01770       -1,   108,    -1,   107,    -1,   110,    -1,   112,    -1,   113,
01771       -1,   116,    -1,   127,    -1,   102,    -1,   130,    -1,   119,
01772       -1,   120,    -1,   121,    -1,   128,    -1,   132,    -1,   135,
01773       -1,   141,    -1,   143,    -1,   148,    -1,   149,    -1,   161,
01774       -1,   165,    -1,   168,    -1,   172,    -1,   178,    -1,   179,
01775       -1,   181,    -1,   186,    -1,   187,    -1,   188,    -1,   189,
01776       -1,   192,    -1,   196,    -1,   194,    -1,   198,    -1,   200,
01777       -1,   199,    -1,   201,    -1,   205,    -1,   204,    -1,   206,
01778       -1,   213,    -1,   214,    -1,   216,    -1,   217,    -1,   218,
01779       -1,   228,    -1,   231,    -1,   233,    -1,   234,    -1,   235,
01780       -1,   236,    -1,   242,    -1,   247,    -1,   253,    -1,   258,
01781       -1,   259,    -1,   260,    -1,   261,    -1,   262,    -1,   265,
01782       -1,   271,    -1,   270,    -1,   272,    -1,   279,    -1,   276,
01783       -1,   280,    -1,   292,    -1,   298,    -1,   299,    -1,   300,
01784       -1,   303,    -1,   305,    -1,   306,    -1,   309,    -1,   312,
01785       -1,   320,    -1,   314,    -1,   316,    -1,   317,    -1,   324,
01786       -1,   326,    -1,   327,    -1,   331,    -1,   341,    -1,   336,
01787       -1,   346,    -1,   343,    -1,   351,    -1,   352,    -1,   357,
01788       -1,   361,    -1,    -1,   274,   764,   763,   765,    -1,    -1,
01789      221,    -1,   766,    -1,   765,   383,   766,    -1,    -1,   767,
01790      772,    -1,   769,    -1,   132,    -1,   178,    -1,   272,    -1,
01791       -1,   216,    -1,    -1,   132,    -1,   178,    -1,   272,    -1,
01792       -1,   132,   384,    -1,   178,   384,    -1,   272,   384,    -1,
01793      773,    -1,   769,   774,    -1,   768,   777,   673,   779,    -1,
01794      768,   320,   161,   172,   778,    -1,   385,   775,   673,   531,
01795       -1,   385,   385,   771,   777,   673,   779,    -1,   776,    -1,
01796      753,    -1,   173,    -1,   759,    -1,   752,    -1,   776,    -1,
01797      239,   326,    -1,   239,    51,    -1,   247,   239,    -1,   270,
01798       -1,   531,    -1,    85,    -1,   215,    -1,     9,    -1,    24,
01799       -1,   308,    -1,   305,    -1,    -1,   332,   782,   780,    -1,
01800       -1,    21,   784,   785,    -1,    -1,   357,    -1,    -1,    12,
01801      209,    39,    -1,    12,    39,    -1,    -1,   245,    -1,   209,
01802      245,    -1,    -1,   263,    -1,    52,   785,   786,   787,    -1,
01803      257,   785,   786,   787,    -1,   257,   785,   318,   788,   793,
01804       -1,   263,   793,    -1,   245,   263,   793,    -1,   752,    -1,
01805       -1,   795,    -1,    -1,   329,   801,   796,   509,    -1,    -1,
01806      795,    -1,   798,    -1,    -1,   799,   800,    -1,   625,   629,
01807       -1,   631,    -1,    -1,    92,    -1,     9,    -1,   267,   581,
01808       -1,   379,   511,   380,    -1,   802,    -1,    -1,   803,   329,
01809      801,   804,   802,    -1,   806,   803,   807,    -1,    -1,    -1
01810 };
01811 
01812 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
01813 static const yytype_uint16 yyrline[] =
01814 {
01815        0,   798,   798,   810,   814,   815,   820,   821,   822,   823,
01816      824,   825,   826,   827,   828,   829,   830,   831,   832,   833,
01817      834,   835,   836,   837,   838,   839,   840,   841,   842,   843,
01818      844,   845,   851,   856,   855,   870,   869,   883,   882,   893,
01819      896,   895,   900,   902,   904,   909,   911,   910,   916,   915,
01820      923,   933,   943,   964,   942,   978,   979,   980,   984,   985,
01821      989,   994,   998,  1002,  1006,  1013,  1014,  1018,  1019,  1022,
01822     1024,  1028,  1029,  1033,  1034,  1035,  1038,  1041,  1045,  1049,
01823     1053,  1057,  1061,  1065,  1069,  1073,  1077,  1081,  1091,  1098,
01824     1099,  1100,  1101,  1102,  1103,  1107,  1115,  1116,  1120,  1121,
01825     1125,  1126,  1130,  1131,  1138,  1142,  1147,  1151,  1155,  1161,
01826     1163,  1167,  1171,  1172,  1176,  1181,  1180,  1206,  1210,  1214,
01827     1221,  1225,  1229,  1233,  1242,  1241,  1252,  1256,  1261,  1268,
01828     1275,  1279,  1283,  1287,  1291,  1295,  1299,  1306,  1308,  1310,
01829     1315,  1319,  1326,  1330,  1334,  1342,  1343,  1345,  1350,  1358,
01830     1359,  1363,  1364,  1365,  1369,  1370,  1374,  1375,  1380,  1381,
01831     1383,  1388,  1392,  1404,  1408,  1412,  1419,  1420,  1422,  1429,
01832     1434,  1435,  1437,  1444,  1449,  1450,  1454,  1455,  1459,  1461,
01833     1468,  1481,  1486,  1487,  1491,  1492,  1496,  1498,  1502,  1506,
01834     1513,  1518,  1519,  1523,  1524,  1528,  1530,  1537,  1544,  1548,
01835     1553,  1554,  1565,  1576,  1577,  1581,  1582,  1585,  1587,  1591,
01836     1599,  1600,  1604,  1606,  1615,  1616,  1618,  1620,  1626,  1630,
01837     1635,  1640,  1646,  1655,  1656,  1657,  1658,  1659,  1663,  1667,
01838     1668,  1672,  1673,  1677,  1678,  1682,  1683,  1684,  1688,  1689,
01839     1693,  1705,  1706,  1710,  1711,  1715,  1716,  1720,  1724,  1725,
01840     1727,  1732,  1733,  1737,  1738,  1742,  1743,  1755,  1756,  1760,
01841     1761,  1765,  1766,  1774,  1773,  1790,  1789,  1801,  1803,  1808,
01842     1813,  1818,  1821,  1825,  1832,  1833,  1837,  1847,  1848,  1854,
01843     1862,  1861,  1869,  1882,  1868,  1896,  1903,  1907,  1911,  1915,
01844     1922,  1929,  1936,  1943,  1964,  1974,  1980,  1986,  1995,  1996,
01845     2000,  2001,  2005,  2006,  2010,  2017,  2018,  2019,  2023,  2030,
01846     2031,  2039,  2038,  2048,  2047,  2057,  2056,  2065,  2066,  2070,
01847     2087,  2095,  2096,  2100,  2105,  2110,  2115,  2120,  2119,  2138,
01848     2145,  2138,  2152,  2153,  2154,  2155,  2156,  2160,  2169,  2171,
01849     2176,  2177,  2181,  2191,  2204,  2214,  2228,  2229,  2235,  2237,
01850     2239,  2247,  2249,  2253,  2261,  2262,  2263,  2273,  2278,  2298,
01851     2305,  2312,  2313,  2314,  2315,  2316,  2320,  2321,  2326,  2375,
01852     2380,  2421,  2423,  2427,  2431,  2435,  2439,  2443,  2447,  2451,
01853     2455,  2459,  2463,  2467,  2471,  2475,  2479,  2484,  2488,  2494,
01854     2498,  2506,  2510,  2516,  2520,  2524,  2534,  2545,  2549,  2553,
01855     2557,  2561,  2565,  2569,  2573,  2577,  2581,  2585,  2589,  2593,
01856     2597,  2601,  2605,  2609,  2610,  2611,  2612,  2613,  2614,  2618,
01857     2619,  2623,  2624,  2625,  2626,  2627,  2628,  2635,  2636,  2637,
01858     2641,  2645,  2646,  2650,  2654,  2658,  2659,  2664,  2669,  2673,
01859     2674,  2679,  2686,  2688,  2695,  2700,  2705,  2717,  2719,  2727,
01860     2729,  2731,  2733,  2735,  2743,  2750,  2752,  2754,  2756,  2758,
01861     2760,  2762,  2764,  2766,  2768,  2770,  2772,  2774,  2776,  2778,
01862     2786,  2802,  2807,  2809,  2814,  2816,  2818,  2820,  2825,  2830,
01863     2832,  2837,  2839,  2850,  2860,  2871,  2881,  2886,  2891,  2893,
01864     2895,  2900,  2913,  2915,  2917,  2925,  2933,  2948,  2950,  2965,
01865     2967,  2969,  2971,  2973,  2975,  2977,  2986,  2994,  3016,  3015,
01866     3063,  3064,  3068,  3073,  3081,  3101,  3103,  3105,  3107,  3110,
01867     3112,  3109,  3115,  3122,  3124,  3126,  3128,  3130,  3132,  3134,
01868     3136,  3138,  3141,  3140,  3156,  3155,  3164,  3169,  3174,  3188,
01869     3189,  3194,  3197,  3202,  3205,  3217,  3216,  3232,  3234,  3236,
01870     3238,  3240,  3242,  3244,  3246,  3248,  3250,  3252,  3254,  3259,
01871     3264,  3272,  3273,  3277,  3278,  3282,  3288,  3299,  3300,  3308,
01872     3319,  3320,  3326,  3327,  3347,  3352,  3358,  3356,  3374,  3372,
01873     3390,  3388,  3395,  3404,  3402,  3420,  3419,  3429,  3440,  3438,
01874     3456,  3455,  3465,  3475,  3476,  3477,  3493,  3493,  3504,  3543,
01875     3584,  3588,  3593,  3585,  3605,  3624,  3631,  3624,  3640,  3639,
01876     3661,  3675,  3661,  3682,  3686,  3704,  3705,  3710,  3713,  3714,
01877     3715,  3719,  3720,  3725,  3724,  3730,  3729,  3737,  3738,  3741,
01878     3743,  3743,  3747,  3747,  3752,  3753,  3757,  3759,  3764,  3765,
01879     3769,  3777,  3787,  3788,  3789,  3790,  3791,  3792,  3793,  3794,
01880     3795,  3796,  3797,  3798,  3802,  3803,  3821,  3822,  3823,  3824,
01881     3825,  3826,  3827,  3828,  3829,  3832,  3834,  3838,  3839,  3845,
01882     3847,  3851,  3853,  3852,  3866,  3869,  3868,  3883,  3889,  3899,
01883     3901,  3905,  3907,  3912,  3913,  3937,  3941,  3942,  3946,  3958,
01884     3960,  3965,  3964,  3973,  3978,  3986,  3987,  3988,  3993,  3998,
01885     4002,  4003,  4007,  4011,  4018,  4025,  4035,  4036,  4037,  4042,
01886     4045,  4054,  4055,  4056,  4057,  4058,  4059,  4063,  4064,  4065,
01887     4066,  4067,  4071,  4071,  4080,  4081,  4085,  4104,  4103,  4110,
01888     4109,  4117,  4128,  4137,  4141,  4148,  4148,  4159,  4169,  4170,
01889     4174,  4182,  4183,  4187,  4188,  4196,  4203,  4207,  4213,  4214,
01890     4218,  4219,  4223,  4224,  4233,  4241,  4232,  4251,  4257,  4250,
01891     4266,  4267,  4271,  4279,  4280,  4281,  4283,  4282,  4292,  4293,
01892     4297,  4298,  4300,  4299,  4305,  4304,  4312,  4313,  4317,  4318,
01893     4322,  4331,  4332,  4336,  4337,  4342,  4341,  4354,  4355,  4359,
01894     4364,  4372,  4373,  4376,  4378,  4378,  4386,  4385,  4412,  4413,
01895     4417,  4425,  4426,  4430,  4442,  4441,  4457,  4458,  4462,  4470,
01896     4472,  4479,  4478,  4490,  4496,  4502,  4508,  4514,  4520,  4525,
01897     4529,  4533,  4537,  4541,  4546,  4551,  4556,  4561,  4566,  4573,
01898     4574,  4578,  4579,  4582,  4584,  4591,  4602,  4601,  4610,  4609,
01899     4618,  4619,  4623,  4624,  4628,  4629,  4630,  4643,  4642,  4651,
01900     4652,  4657,  4656,  4662,  4667,  4672,  4677,  4685,  4686,  4692,
01901     4699,  4700,  4701,  4707,  4718,  4726,  4734,  4739,  4717,  4754,
01902     4757,  4758,  4765,  4766,  4767,  4771,  4772,  4773,  4774,  4775,
01903     4776,  4779,  4781,  4785,  4786,  4790,  4795,  4801,  4806,  4813,
01904     4815,  4819,  4820,  4824,  4829,  4836,  4838,  4846,  4847,  4851,
01905     4852,  4853,  4857,  4859,  4864,  4865,  4870,  4871,  4877,  4881,
01906     4888,  4894,  4905,  4918,  4919,  4920,  4928,  4929,  4930,  4935,
01907     4936,  4937,  4938,  4939,  4940,  4944,  4945,  4946,  4947,  4948,
01908     4953,  4954,  4962,  4967,  4971,  4978,  4979,  4984,  4985,  4986,
01909     4990,  4995,  5000,  5002,  5010,  5025,  5026,  5030,  5034,  5041,
01910     5045,  5049,  5053,  5057,  5061,  5068,  5072,  5079,  5086,  5093,
01911     5097,  5101,  5108,  5112,  5116,  5120,  5138,  5145,  5152,  5159,
01912     5160,  5168,  5169,  5173,  5174,  5178,  5179,  5180,  5185,  5186,
01913     5187,  5188,  5189,  5190,  5191,  5192,  5193,  5194,  5195,  5196,
01914     5197,  5198,  5199,  5200,  5201,  5202,  5203,  5204,  5205,  5215,
01915     5216,  5217,  5218,  5219,  5220,  5221,  5222,  5223,  5224,  5225,
01916     5226,  5227,  5228,  5229,  5230,  5231,  5232,  5233,  5234,  5235,
01917     5236,  5237,  5238,  5239,  5240,  5241,  5242,  5243,  5244,  5245,
01918     5246,  5247,  5248,  5249,  5250,  5251,  5252,  5253,  5254,  5255,
01919     5256,  5257,  5258,  5259,  5260,  5261,  5262,  5263,  5264,  5265,
01920     5266,  5267,  5268,  5269,  5270,  5271,  5272,  5273,  5274,  5275,
01921     5276,  5277,  5278,  5279,  5280,  5281,  5282,  5283,  5284,  5285,
01922     5286,  5287,  5288,  5289,  5290,  5291,  5292,  5293,  5294,  5295,
01923     5296,  5297,  5298,  5299,  5300,  5301,  5302,  5303,  5304,  5305,
01924     5306,  5307,  5308,  5309,  5310,  5311,  5312,  5313,  5314,  5315,
01925     5316,  5317,  5318,  5319,  5320,  5321,  5322,  5323,  5324,  5325,
01926     5326,  5327,  5328,  5329,  5330,  5331,  5332,  5333,  5334,  5335,
01927     5336,  5337,  5338,  5339,  5340,  5347,  5346,  5355,  5356,  5360,
01928     5361,  5365,  5365,  5371,  5372,  5373,  5374,  5378,  5379,  5383,
01929     5384,  5385,  5386,  5390,  5391,  5392,  5393,  5397,  5398,  5402,
01930     5413,  5425,  5429,  5436,  5437,  5438,  5442,  5447,  5451,  5466,
01931     5467,  5468,  5469,  5473,  5474,  5475,  5476,  5477,  5481,  5482,
01932     5487,  5486,  5496,  5495,  5503,  5504,  5509,  5510,  5511,  5516,
01933     5517,  5518,  5522,  5523,  5527,  5534,  5538,  5545,  5552,  5559,
01934     5568,  5569,  5574,  5573,  5589,  5590,  5591,  5595,  5595,  5616,
01935     5617,  5621,  5622,  5623,  5627,  5631,  5638,  5641,  5639,  5654,
01936     5661,  5680
01937 };
01938 #endif
01939 
01940 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01941 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
01942    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
01943 static const char *const yytname[] =
01944 {
01945   "$end", "error", "$undefined", "ABORT_SYM", "ACTION", "ADD_SYM",
01946   "ADDDATE_SYM", "AFTER_SYM", "AGGREGATE_SYM", "ALL", "ALTER_SYM",
01947   "ANALYZE_SYM", "AND_SYM", "ANY_SYM", "AS", "ASC", "ASENSITIVE_SYM",
01948   "AT_SYM", "AUTO_INC", "AVG_SYM", "BEFORE_SYM", "BEGIN_SYM",
01949   "BETWEEN_SYM", "BIGINT_SYM", "BINARY", "BIN_NUM", "BIT_SYM", "BLOB_SYM",
01950   "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", "BY", "CALL_SYM",
01951   "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", "CATALOG_SYM",
01952   "CHAIN_SYM", "CHANGE_SYM", "CHAR_SYM", "CHECKSUM_SYM", "CHECK_SYM",
01953   "CLOSE_SYM", "COALESCE", "COLLATE_SYM", "COLLATION_SYM", "COLUMNS",
01954   "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM",
01955   "COMPACT_SYM", "COMPRESSED_SYM", "CONCURRENT", "CONDITION_SYM",
01956   "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT", "CONTAINS_SYM",
01957   "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE",
01958   "CURRENT_USER", "CURSOR_SYM", "DATABASE", "DATABASES", "DATA_SYM",
01959   "DATETIME_SYM", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL", "DATE_SYM",
01960   "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM",
01961   "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", "DECIMAL_NUM",
01962   "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DELETE_SYM", "DESC",
01963   "DESCRIBE", "DETERMINISTIC_SYM", "DISABLE_SYM", "DISCARD", "DISTINCT",
01964   "DIV_SYM", "DO_SYM", "DOUBLE_SYM", "DROP", "DUMPFILE", "DUPLICATE_SYM",
01965   "DYNAMIC_SYM", "EACH_SYM", "ELSE", "ENABLE_SYM", "ENCLOSED", "END",
01966   "ENDS_SYM", "END_OF_INPUT", "ENGINE_SYM", "ENUM_SYM", "EQUAL_SYM",
01967   "ERRORS", "ESCAPED", "ESCAPE_SYM", "EXCLUSIVE_SYM", "EXECUTE_SYM",
01968   "EXISTS", "EXTENDED_SYM", "EXTRACT_SYM", "FALSE_SYM", "FILE_SYM",
01969   "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FLUSH_SYM", "FORCE_SYM",
01970   "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
01971   "GE", "GLOBAL_SYM", "GROUP_SYM", "GROUP_CONCAT_SYM", "HASH_SYM",
01972   "HAVING", "HEX_NUM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
01973   "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENTITY_SYM",
01974   "IDENT_QUOTED", "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM",
01975   "INFILE", "INNER_SYM", "INOUT_SYM", "INSENSITIVE_SYM", "INSERT",
01976   "INTERVAL_SYM", "INTO", "INT_SYM", "IN_SYM", "IS", "ISOLATION",
01977   "ITERATE_SYM", "JOIN_SYM", "KEYS", "KEY_BLOCK_SIZE", "KEY_SYM",
01978   "KILL_SYM", "LAST_SYM", "LE", "LEADING", "LEFT", "LEVEL_SYM",
01979   "LEX_HOSTNAME", "LIKE", "LIMIT", "LINES", "LOAD", "LOCAL_SYM",
01980   "LOCKS_SYM", "LOCK_SYM", "LOGS_SYM", "LONG_NUM", "LONG_SYM", "MATCH",
01981   "MAX_SYM", "MAX_VALUE_SYM", "MEDIUM_SYM", "MERGE_SYM", "MICROSECOND_SYM",
01982   "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_SYM",
01983   "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM", "MONTH_SYM",
01984   "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM", "NATURAL", "NE", "NEW_SYM",
01985   "NEXT_SYM", "NONE_SYM", "NOT_SYM", "NOW_SYM", "NO_SYM", "NULL_SYM",
01986   "NUM", "NUMERIC_SYM", "OFFLINE_SYM", "OFFSET_SYM", "ON", "ONE_SHOT_SYM",
01987   "ONE_SYM", "ONLINE_SYM", "OPEN_SYM", "OPTIMIZE", "OPTION", "OPTIONALLY",
01988   "ORDER_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM", "PARTIAL",
01989   "POSITION_SYM", "PRECISION", "PREV_SYM", "PRIMARY_SYM", "PROCESS",
01990   "PROCESSLIST_SYM", "QUARTER_SYM", "QUERY_SYM", "RANGE_SYM", "READS_SYM",
01991   "READ_SYM", "READ_WRITE_SYM", "REAL", "REDUNDANT_SYM", "REGEXP_SYM",
01992   "REFERENCES", "RELEASE_SYM", "RENAME", "REPEATABLE_SYM", "REPEAT_SYM",
01993   "REPLACE", "REPLICATE", "REPLICATION", "RESTRICT", "RETURNS_SYM",
01994   "RETURN_SYM", "REVOKE", "RIGHT", "ROLLBACK_SYM", "ROLLUP_SYM",
01995   "ROUTINE_SYM", "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM", "SAVEPOINT_SYM",
01996   "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM",
01997   "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM",
01998   "SESSION_SYM", "SERVER_SYM", "SET_SYM", "SET_VAR", "SHARE_SYM", "SHOW",
01999   "SIGNED_SYM", "SIMPLE_SYM", "SNAPSHOT_SYM", "SPECIFIC_SYM",
02000   "SQLEXCEPTION_SYM", "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT",
02001   "SQL_BUFFER_RESULT", "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT",
02002   "SQL_SYM", "STARTING", "START_SYM", "STATUS_SYM", "STDDEV_SAMP_SYM",
02003   "STD_SYM", "STOP_SYM", "STORED_SYM", "STRAIGHT_JOIN", "STRING_SYM",
02004   "SUBDATE_SYM", "SUBJECT_SYM", "SUBSTRING", "SUM_SYM", "SUSPEND_SYM",
02005   "SYSDATE", "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
02006   "TEMPORARY_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM", "THEN_SYM",
02007   "TIME_SYM", "TIMESTAMP_SYM", "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TO_SYM",
02008   "TRAILING", "TRANSACTION_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM",
02009   "TYPE_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDOFILE_SYM",
02010   "UNDO_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", "UNLOCK_SYM",
02011   "UNSIGNED_SYM", "UPDATE_SYM", "USAGE", "USER", "USE_SYM", "USING",
02012   "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UUID_SYM", "VALUES", "VALUE_SYM",
02013   "VARBINARY", "VARCHAR_SYM", "VARIABLES", "VARIANCE_SYM", "VARYING",
02014   "VAR_SAMP_SYM", "WAIT_SYM", "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE",
02015   "WITH", "WITH_ROLLUP_SYM", "WORK_SYM", "WRITE_SYM", "XOR",
02016   "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL_SYM", "'='", "LESS_THAN",
02017   "GREATER_THAN", "CONCAT", "'|'", "'&'", "SHIFT_RIGHT", "SHIFT_LEFT",
02018   "'-'", "'+'", "'*'", "'/'", "'%'", "'^'", "'~'", "UMINUS", "'('", "')'",
02019   "'{'", "'}'", "','", "'.'", "'@'", "$accept", "query", "verb_clause",
02020   "statement", "create", "$@1", "$@2", "$@3", "create_table_definition",
02021   "$@4", "create_select_as", "$@5", "$@6", "create_like", "create_select",
02022   "stored_select", "$@7", "$@8", "opt_create_database_options",
02023   "opt_database_custom_options", "custom_database_option",
02024   "opt_table_options", "opt_if_not_exists", "opt_create_table_options",
02025   "create_table_options_space_separated", "create_table_options",
02026   "create_table_option", "custom_engine_option", "default_collation",
02027   "default_collation_schema", "row_format", "row_format_or_text",
02028   "opt_select_from", "field_list", "field_list_item", "column_def",
02029   "key_def", "opt_check_constraint", "check_constraint", "opt_constraint",
02030   "constraint", "field_spec", "$@9", "field_def", "$@10", "varchar",
02031   "int_type", "real_type", "float_options", "precision", "opt_len",
02032   "opt_field_number_signed", "ignored_field_number_length", "opt_zerofill",
02033   "opt_precision", "opt_attribute_not_null", "opt_attribute_index",
02034   "opt_attribute", "opt_attribute_boolean", "opt_attribute_string",
02035   "opt_attribute_list_string", "attribute_string", "opt_attribute_number",
02036   "opt_attribute_list_integer", "attribute_integer",
02037   "opt_attribute_timestamp", "opt_attribute_list_timestamp",
02038   "attribute_timestamp", "opt_attribute_comment", "collation_name",
02039   "collation_name_or_default", "opt_default", "opt_primary", "references",
02040   "opt_ref_list", "ref_list", "opt_match_clause", "opt_on_update_delete",
02041   "delete_option", "key_type", "constraint_key_type", "key_or_index",
02042   "opt_key_or_index", "keys_or_index", "opt_unique", "init_key_options",
02043   "key_alg", "key_options", "key_opts", "key_using_alg", "key_opt",
02044   "btree_or_rtree", "key_list", "key_part", "opt_ident", "opt_component",
02045   "string_list", "alter", "$@11", "$@12", "alter_commands", "build_method",
02046   "alter_list", "add_column", "alter_list_item", "$@13", "$@14", "$@15",
02047   "opt_column", "opt_ignore", "opt_place", "opt_to", "start",
02048   "start_transaction_opts", "analyze", "$@16", "check", "$@17", "rename",
02049   "$@18", "table_to_table_list", "table_to_table", "select", "select_init",
02050   "select_paren", "select_paren_derived", "select_init2", "$@19",
02051   "select_part2", "$@20", "$@21", "select_into", "select_from",
02052   "select_options", "select_option_list", "select_option_distinct_or_all",
02053   "select_option_small_or_big", "select_option", "select_lock_type",
02054   "select_item_list", "select_item", "remember_name", "remember_end",
02055   "select_alias", "optional_braces", "expr", "bool_pri", "predicate",
02056   "bit_expr", "comp_op", "all_or_any", "simple_expr",
02057   "function_call_keyword", "function_call_nonkeyword",
02058   "function_call_conflict", "function_call_generic", "@22",
02059   "opt_udf_expr_list", "udf_expr_list", "udf_expr", "sum_expr", "$@23",
02060   "$@24", "$@25", "variable", "$@26", "variable_aux", "opt_distinct",
02061   "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "$@27",
02062   "cast_type", "expr_list", "opt_expr", "opt_else", "when_list",
02063   "table_ref", "join_table_list", "esc_table_ref", "derived_table_list",
02064   "join_table", "$@28", "$@29", "$@30", "$@31", "$@32", "$@33", "$@34",
02065   "normal_join", "table_factor", "$@35", "select_derived_union", "$@36",
02066   "$@37", "select_init2_derived", "select_part2_derived", "$@38", "$@39",
02067   "select_derived", "$@40", "select_derived2", "$@41", "$@42",
02068   "get_select_lex", "select_derived_init", "opt_outer",
02069   "index_hint_clause", "index_hint_type", "index_hint_definition", "$@43",
02070   "$@44", "index_hints_list", "opt_index_hints_list", "$@45",
02071   "opt_key_definition", "$@46", "opt_key_usage_list", "key_usage_element",
02072   "key_usage_list", "using_list", "interval", "interval_time_stamp",
02073   "interval_time_st", "table_alias", "opt_table_alias", "opt_all",
02074   "where_clause", "$@47", "having_clause", "$@48", "opt_escape",
02075   "group_clause", "group_list", "olap_opt", "alter_order_clause",
02076   "alter_order_list", "alter_order_item", "opt_order_clause",
02077   "order_clause", "$@49", "order_list", "order_dir",
02078   "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
02079   "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
02080   "ulonglong_num", "select_var_list_init", "$@50", "select_var_list",
02081   "select_var_ident", "into", "$@51", "into_destination", "$@52", "drop",
02082   "$@53", "table_list", "table_name", "if_exists", "opt_temporary",
02083   "execute", "execute_var_or_string", "opt_status", "opt_concurrent",
02084   "opt_wait", "insert", "$@54", "$@55", "replace", "$@56", "$@57",
02085   "insert2", "insert_table", "insert_field_spec", "$@58", "fields",
02086   "insert_values", "$@59", "$@60", "values_list", "ident_eq_list",
02087   "ident_eq_value", "equal", "opt_equal", "no_braces", "$@61",
02088   "opt_values", "values", "expr_or_default", "opt_insert_update", "$@62",
02089   "update", "$@63", "update_list", "update_elem", "insert_update_list",
02090   "insert_update_elem", "delete", "$@64", "opt_delete_option", "truncate",
02091   "opt_table_sym", "show", "$@65", "show_param", "opt_db", "from_or_in",
02092   "show_wild", "describe", "$@66", "$@67", "describe_command",
02093   "opt_extended_describe", "opt_describe_column", "flush", "$@68",
02094   "flush_options", "flush_option", "$@69", "opt_table_list", "kill",
02095   "kill_option", "use", "load", "$@70", "$@71", "$@72", "$@73",
02096   "data_file", "load_data_lock", "opt_duplicate", "opt_duplicate_as",
02097   "opt_field_term", "field_term_list", "field_term", "opt_line_term",
02098   "line_term_list", "line_term", "opt_ignore_lines", "lines_or_rows",
02099   "opt_field_or_var_spec", "fields_or_vars", "field_or_var",
02100   "opt_load_data_set_spec", "text_literal", "text_string",
02101   "signed_literal", "literal", "integer_literal", "boolean_literal",
02102   "date_literal", "NUM_literal", "insert_ident", "table_wild",
02103   "order_ident", "simple_ident", "simple_ident_q", "field_ident",
02104   "table_ident", "schema_name", "catalog_name", "IDENT_sys",
02105   "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
02106   "ident", "ident_or_text", "engine_option_value",
02107   "keyword_exception_for_variable", "keyword", "keyword_sp", "set", "$@74",
02108   "opt_option", "option_value_list", "option_type_value", "$@75",
02109   "option_type", "option_type2", "opt_var_type", "opt_var_ident_type",
02110   "ext_option_value", "sys_option_value", "option_value",
02111   "user_variable_ident", "internal_variable_ident",
02112   "internal_variable_name", "isolation_types", "set_expr_or_default",
02113   "table_or_tables", "unlock", "$@76", "begin", "$@77", "opt_work",
02114   "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
02115   "savepoint", "release", "savepoint_ident", "union_clause", "union_list",
02116   "$@78", "union_opt", "union_order_or_limit", "$@79", "order_or_limit",
02117   "union_option", "query_specification", "query_expression_body", "$@80",
02118   "subselect", "subselect_start", "subselect_end", 0
02119 };
02120 #endif
02121 
02122 # ifdef YYPRINT
02123 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
02124    token YYLEX-NUM.  */
02125 static const yytype_uint16 yytoknum[] =
02126 {
02127        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
02128      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
02129      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
02130      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
02131      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
02132      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
02133      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
02134      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
02135      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
02136      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
02137      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
02138      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
02139      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
02140      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
02141      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
02142      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
02143      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
02144      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
02145      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
02146      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
02147      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
02148      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
02149      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
02150      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
02151      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
02152      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
02153      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
02154      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
02155      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
02156      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
02157      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
02158      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
02159      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
02160      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
02161      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
02162      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
02163      615,   616,   617,    61,   618,   619,   620,   124,    38,   621,
02164      622,    45,    43,    42,    47,    37,    94,   126,   623,    40,
02165       41,   123,   125,    44,    46,    64
02166 };
02167 # endif
02168 
02169 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
02170 static const yytype_uint16 yyr1[] =
02171 {
02172        0,   386,   387,   387,   388,   388,   389,   389,   389,   389,
02173      389,   389,   389,   389,   389,   389,   389,   389,   389,   389,
02174      389,   389,   389,   389,   389,   389,   389,   389,   389,   389,
02175      389,   389,   390,   391,   390,   392,   390,   393,   390,   394,
02176      395,   394,   394,   394,   394,   396,   397,   396,   398,   396,
02177      399,   400,   402,   403,   401,   404,   404,   404,   405,   405,
02178      406,   406,   406,   406,   406,   407,   407,   408,   408,   409,
02179      409,   410,   410,   411,   411,   411,   412,   413,   413,   413,
02180      413,   413,   413,   413,   413,   413,   413,   414,   415,   416,
02181      416,   416,   416,   416,   416,   417,   418,   418,   419,   419,
02182      420,   420,   421,   421,   422,   422,   422,   422,   422,   423,
02183      423,   424,   425,   425,   426,   428,   427,   429,   429,   429,
02184      429,   429,   429,   429,   430,   429,   429,   429,   429,   429,
02185      429,   429,   429,   429,   429,   429,   429,   431,   431,   431,
02186      432,   432,   433,   433,   433,   434,   434,   434,   435,   436,
02187      436,   437,   437,   437,   438,   438,   439,   439,   440,   440,
02188      440,   441,   441,   442,   442,   442,   443,   443,   443,   443,
02189      444,   444,   444,   444,   445,   445,   446,   446,   447,   447,
02190      447,   447,   448,   448,   449,   449,   450,   450,   450,   450,
02191      450,   451,   451,   452,   452,   453,   453,   453,   453,   453,
02192      454,   454,   455,   456,   456,   457,   457,   458,   458,   459,
02193      460,   460,   461,   461,   462,   462,   462,   462,   463,   463,
02194      463,   463,   463,   464,   464,   464,   464,   464,   465,   466,
02195      466,   467,   467,   468,   468,   469,   469,   469,   470,   470,
02196      471,   472,   472,   473,   473,   474,   474,   475,   476,   476,
02197      476,   477,   477,   478,   478,   479,   479,   480,   480,   481,
02198      481,   482,   482,   484,   483,   485,   483,   486,   486,   486,
02199      486,   487,   487,   487,   488,   488,   489,   490,   490,   490,
02200      491,   490,   492,   493,   490,   490,   490,   490,   490,   490,
02201      490,   490,   490,   490,   490,   490,   490,   490,   494,   494,
02202      495,   495,   496,   496,   496,   497,   497,   497,   498,   499,
02203      499,   501,   500,   503,   502,   505,   504,   506,   506,   507,
02204      508,   509,   509,   510,   510,   511,   511,   513,   512,   515,
02205      516,   514,   517,   517,   517,   517,   517,   518,   519,   519,
02206      520,   520,   521,   521,   522,   522,   523,   523,   523,   523,
02207      523,   524,   524,   524,   525,   525,   525,   526,   526,   527,
02208      528,   529,   529,   529,   529,   529,   530,   530,   531,   531,
02209      531,   531,   531,   531,   531,   531,   531,   531,   531,   532,
02210      532,   532,   532,   532,   532,   533,   533,   533,   533,   533,
02211      533,   533,   533,   533,   533,   533,   533,   533,   534,   534,
02212      534,   534,   534,   534,   534,   534,   534,   534,   534,   534,
02213      534,   534,   534,   535,   535,   535,   535,   535,   535,   536,
02214      536,   537,   537,   537,   537,   537,   537,   537,   537,   537,
02215      537,   537,   537,   537,   537,   537,   537,   537,   537,   537,
02216      537,   537,   537,   537,   537,   537,   537,   538,   538,   538,
02217      538,   538,   538,   538,   538,   538,   538,   538,   538,   538,
02218      538,   538,   538,   538,   538,   538,   538,   538,   538,   538,
02219      538,   539,   539,   539,   539,   539,   539,   539,   539,   539,
02220      539,   539,   539,   539,   539,   539,   539,   539,   539,   539,
02221      539,   539,   540,   540,   540,   540,   540,   540,   540,   540,
02222      540,   540,   540,   540,   540,   540,   540,   540,   542,   541,
02223      543,   543,   544,   544,   545,   546,   546,   546,   546,   547,
02224      548,   546,   546,   546,   546,   546,   546,   546,   546,   546,
02225      546,   546,   549,   546,   551,   550,   552,   552,   552,   553,
02226      553,   554,   554,   555,   555,   557,   556,   558,   558,   558,
02227      558,   558,   558,   558,   558,   558,   558,   558,   558,   559,
02228      559,   560,   560,   561,   561,   562,   562,   563,   563,   564,
02229      565,   565,   566,   566,   567,   567,   568,   567,   569,   567,
02230      570,   567,   567,   571,   567,   572,   567,   567,   573,   567,
02231      574,   567,   567,   575,   575,   575,   577,   576,   576,   576,
02232      578,   579,   580,   578,   581,   583,   584,   582,   586,   585,
02233      588,   589,   587,   590,   591,   592,   592,   593,   593,   593,
02234      593,   594,   594,   596,   595,   597,   595,   598,   598,   599,
02235      600,   599,   602,   601,   603,   603,   604,   604,   605,   605,
02236      606,   606,   607,   607,   607,   607,   607,   607,   607,   607,
02237      607,   607,   607,   607,   608,   608,   609,   609,   609,   609,
02238      609,   609,   609,   609,   609,   610,   610,   611,   611,   612,
02239      612,   613,   614,   613,   615,   616,   615,   617,   617,   618,
02240      618,   619,   619,   620,   620,   621,   622,   622,   623,   624,
02241      624,   626,   625,   627,   627,   628,   628,   628,   629,   629,
02242      630,   630,   631,   632,   632,   632,   633,   633,   633,   634,
02243      634,   635,   635,   635,   635,   635,   635,   636,   636,   636,
02244      636,   636,   638,   637,   639,   639,   640,   642,   641,   644,
02245      643,   643,   643,   645,   645,   646,   645,   645,   647,   647,
02246      648,   649,   649,   650,   650,   651,   652,   652,   653,   653,
02247      654,   654,   655,   655,   657,   658,   656,   660,   661,   659,
02248      662,   662,   663,   664,   664,   664,   665,   664,   666,   666,
02249      667,   667,   668,   667,   669,   667,   670,   670,   671,   671,
02250      672,   673,   673,   674,   674,   676,   675,   677,   677,   678,
02251      678,   679,   679,   680,   681,   680,   683,   682,   684,   684,
02252      685,   686,   686,   687,   689,   688,   690,   690,   691,   692,
02253      692,   694,   693,   695,   695,   695,   695,   695,   695,   695,
02254      695,   695,   695,   695,   695,   695,   695,   695,   695,   696,
02255      696,   697,   697,   698,   698,   698,   700,   699,   701,   699,
02256      702,   702,   703,   703,   704,   704,   704,   706,   705,   707,
02257      707,   709,   708,   708,   708,   708,   708,   710,   710,   711,
02258      712,   712,   712,   713,   715,   716,   717,   718,   714,   719,
02259      720,   720,   721,   721,   721,   722,   722,   722,   722,   722,
02260      722,   723,   723,   724,   724,   725,   725,   725,   725,   726,
02261      726,   727,   727,   728,   728,   729,   729,   730,   730,   731,
02262      731,   731,   732,   732,   733,   733,   734,   734,   735,   735,
02263      736,   736,   736,   737,   737,   737,   738,   738,   738,   738,
02264      738,   738,   738,   738,   738,   739,   739,   739,   739,   739,
02265      739,   739,   740,   740,   740,   741,   741,   741,   741,   741,
02266      742,   742,   742,   742,   742,   743,   743,   744,   744,   745,
02267      746,   746,   747,   747,   747,   748,   748,   748,   748,   749,
02268      749,   749,   750,   751,   752,   752,   753,   754,   755,   756,
02269      756,   757,   757,   758,   758,   759,   759,   759,   760,   760,
02270      760,   760,   760,   760,   760,   760,   760,   760,   760,   760,
02271      760,   760,   760,   760,   760,   760,   760,   760,   760,   761,
02272      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02273      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02274      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02275      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02276      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02277      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02278      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02279      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02280      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02281      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02282      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02283      761,   761,   761,   761,   761,   761,   761,   761,   761,   761,
02284      761,   761,   761,   761,   761,   763,   762,   764,   764,   765,
02285      765,   767,   766,   768,   768,   768,   768,   769,   769,   770,
02286      770,   770,   770,   771,   771,   771,   771,   772,   772,   773,
02287      773,   774,   774,   775,   775,   775,   776,   776,   777,   778,
02288      778,   778,   778,   779,   779,   779,   779,   779,   780,   780,
02289      782,   781,   784,   783,   785,   785,   786,   786,   786,   787,
02290      787,   787,   788,   788,   789,   790,   790,   791,   792,   793,
02291      794,   794,   796,   795,   797,   797,   797,   799,   798,   800,
02292      800,   801,   801,   801,   802,   802,   803,   804,   803,   805,
02293      806,   807
02294 };
02295 
02296 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
02297 static const yytype_uint8 yyr2[] =
02298 {
02299        0,     2,     1,     2,     1,     1,     1,     1,     1,     1,
02300        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02301        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02302        1,     1,     3,     0,     7,     0,    13,     0,     6,     5,
02303        0,     5,     4,     2,     2,     0,     0,     4,     0,     6,
02304        2,     1,     0,     0,     6,     0,     1,     1,     1,     3,
02305        1,     3,     3,     3,     3,     0,     1,     0,     3,     0,
02306        1,     1,     2,     1,     2,     3,     1,     3,     3,     3,
02307        3,     3,     3,     3,     3,     3,     1,     4,     4,     1,
02308        1,     1,     1,     1,     1,     1,     1,     2,     1,     3,
02309        1,     1,     2,     2,     7,     8,     8,     2,     2,     0,
02310        1,     2,     0,     1,     2,     0,     4,     2,     5,     2,
02311        2,     2,     5,     2,     0,     6,     5,     2,     2,     2,
02312        2,     3,     3,     3,     2,     2,     1,     2,     1,     1,
02313        4,     4,     2,     2,     3,     0,     3,     1,     5,     0,
02314        3,     0,     1,     1,     0,     3,     0,     1,     0,     3,
02315        1,     1,     2,     2,     1,     2,     0,     2,     3,     2,
02316        0,     2,     3,     2,     0,     1,     2,     1,     1,     2,
02317        2,     1,     0,     1,     2,     1,     1,     1,     3,     2,
02318        1,     0,     1,     2,     1,     1,     3,     2,     4,     1,
02319        0,     2,     1,     1,     1,     0,     1,     0,     1,     5,
02320        0,     3,     3,     1,     0,     2,     2,     2,     0,     3,
02321        3,     6,     6,     1,     1,     2,     2,     2,     1,     2,
02322        2,     1,     1,     0,     1,     1,     1,     1,     0,     1,
02323        0,     1,     2,     0,     1,     1,     2,     2,     1,     3,
02324        2,     1,     1,     4,     2,     1,     4,     0,     1,     0,
02325        2,     1,     3,     0,     7,     0,     5,     0,     2,     2,
02326        1,     0,     1,     1,     1,     3,     2,     3,     2,     4,
02327        0,     6,     0,     0,     8,     3,     4,     3,     3,     2,
02328        2,     6,     5,     3,     3,     1,     1,     1,     0,     1,
02329        0,     1,     0,     2,     1,     0,     1,     1,     3,     0,
02330        3,     0,     4,     0,     4,     0,     4,     1,     3,     3,
02331        1,     2,     4,     2,     3,     2,     3,     0,     3,     0,
02332        0,     6,     2,     1,     1,     2,     2,     7,     0,     1,
02333        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02334        1,     0,     2,     4,     3,     1,     1,     3,     4,     0,
02335        0,     0,     2,     2,     1,     1,     0,     2,     3,     3,
02336        3,     2,     3,     4,     3,     4,     3,     4,     1,     3,
02337        4,     3,     3,     6,     1,     5,     6,     5,     7,     6,
02338        8,     5,     6,     4,     5,     3,     4,     1,     3,     3,
02339        3,     3,     3,     3,     5,     5,     3,     3,     3,     3,
02340        3,     3,     1,     1,     1,     1,     1,     1,     1,     1,
02341        1,     1,     1,     1,     1,     1,     3,     1,     1,     1,
02342        3,     2,     2,     2,     3,     3,     5,     6,     4,     4,
02343        2,     6,     5,     6,     4,     4,     5,     4,     2,     4,
02344        4,     4,    10,     6,     8,     6,     4,     4,     6,     4,
02345        4,     4,     7,     7,     7,     6,     6,     6,     6,     3,
02346        4,     6,     8,     2,     8,     8,     6,     2,     4,     6,
02347        6,     8,     8,     6,     8,     6,     2,     4,     8,     8,
02348        2,     2,     4,     4,     3,     3,     5,     8,     5,     4,
02349        6,     4,     6,     8,     6,     4,     3,     6,     0,     5,
02350        0,     1,     1,     3,     4,     4,     5,     5,     4,     0,
02351        0,     7,     4,     5,     4,     5,     4,     4,     4,     4,
02352        4,     5,     0,     8,     0,     3,     3,     1,     4,     0,
02353        1,     0,     2,     0,     1,     0,     3,     2,     1,     1,
02354        2,     1,     1,     2,     2,     1,     1,     1,     2,     1,
02355        3,     0,     1,     0,     2,     4,     5,     1,     1,     1,
02356        1,     4,     1,     3,     3,     3,     0,     6,     0,     6,
02357        0,     8,     4,     0,     8,     0,    10,     6,     0,     8,
02358        0,    10,     6,     1,     2,     2,     0,     4,     3,     5,
02359        3,     0,     0,     8,     1,     0,     0,     6,     0,     3,
02360        0,     0,     5,     0,     1,     0,     1,     0,     2,     3,
02361        3,     1,     1,     0,     7,     0,     7,     1,     2,     0,
02362        0,     2,     0,     2,     0,     1,     1,     1,     1,     3,
02363        1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
02364        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02365        1,     1,     1,     1,     1,     0,     1,     0,     2,     0,
02366        1,     0,     0,     3,     0,     0,     3,     2,     0,     0,
02367        4,     4,     2,     0,     1,     3,     3,     1,     2,     0,
02368        1,     0,     4,     4,     2,     0,     1,     1,     0,     1,
02369        0,     1,     2,     1,     3,     3,     1,     1,     1,     0,
02370        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02371        1,     1,     0,     2,     3,     1,     2,     0,     3,     0,
02372        5,     2,     1,     3,     5,     0,     7,     4,     1,     3,
02373        1,     0,     2,     0,     1,     5,     1,     2,     0,     3,
02374        0,     1,     0,     1,     0,     0,     7,     0,     0,     5,
02375        2,     1,     1,     1,     3,     4,     0,     3,     3,     1,
02376        2,     2,     0,     3,     0,     5,     3,     1,     3,     1,
02377        3,     1,     1,     0,     1,     0,     4,     0,     1,     3,
02378        1,     1,     1,     0,     0,     6,     0,     9,     3,     1,
02379        3,     3,     1,     3,     0,     8,     0,     1,     3,     0,
02380        1,     0,     3,     2,     3,     3,     4,     5,     5,     5,
02381        5,     2,     2,     3,     2,     3,     1,     3,     4,     0,
02382        2,     1,     1,     0,     2,     2,     0,     4,     0,     4,
02383        1,     1,     0,     1,     0,     1,     1,     0,     3,     3,
02384        1,     0,     3,     4,     1,     1,     2,     0,     1,     3,
02385        0,     1,     1,     2,     0,     0,     0,     0,    18,     1,
02386        0,     1,     0,     1,     1,     0,     1,     1,     1,     2,
02387        2,     0,     2,     2,     1,     3,     4,     3,     3,     0,
02388        2,     2,     1,     3,     3,     0,     3,     1,     1,     0,
02389        3,     2,     3,     1,     1,     2,     0,     2,     1,     2,
02390        1,     1,     1,     1,     2,     2,     1,     1,     1,     1,
02391        1,     1,     1,     2,     2,     1,     1,     1,     1,     1,
02392        2,     2,     1,     1,     1,     1,     1,     1,     2,     2,
02393        1,     1,     1,     1,     1,     1,     1,     3,     5,     1,
02394        1,     1,     3,     4,     5,     1,     5,     3,     2,     1,
02395        3,     2,     1,     1,     1,     1,     1,     1,     1,     1,
02396        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02397        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02398        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02399        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02400        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02401        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02402        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02403        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02404        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02405        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02406        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02407        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02408        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02409        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02410        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02411        1,     1,     1,     1,     1,     0,     4,     0,     1,     1,
02412        3,     0,     2,     1,     1,     1,     1,     0,     1,     0,
02413        1,     1,     1,     0,     2,     2,     2,     1,     2,     4,
02414        5,     4,     6,     1,     1,     1,     1,     1,     1,     2,
02415        2,     2,     1,     1,     1,     1,     1,     1,     1,     1,
02416        0,     3,     0,     3,     0,     1,     0,     3,     2,     0,
02417        1,     2,     0,     1,     4,     4,     5,     2,     3,     1,
02418        0,     1,     0,     4,     0,     1,     1,     0,     2,     2,
02419        1,     0,     1,     1,     2,     3,     1,     0,     5,     3,
02420        0,     0
02421 };
02422 
02423 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
02424    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
02425    means the default is an error.  */
02426 static const yytype_uint16 yydefact[] =
02427 {
02428        0,   271,     0,  1172,     0,  1174,   271,   806,   840,   841,
02429      743,     2,     0,   847,   754,   860,     0,     0,     0,   757,
02430     1174,     0,   329,  1127,   811,     0,   809,  1170,   300,     0,
02431        0,     0,     0,     4,    10,     6,    27,     7,     8,    20,
02432       24,   320,    13,    14,    16,    21,    30,    11,    28,    26,
02433       12,   842,    15,    17,    31,    18,    25,    29,     5,     9,
02434       22,    23,    19,     0,   273,   272,   300,  1169,  1168,   311,
02435     1174,   313,  1175,  1176,     0,    67,    66,     0,    35,   807,
02436        0,     0,   741,   744,     0,     0,   964,   977,   965,  1155,
02437      976,   966,   975,     0,   748,  1157,  1154,  1156,   746,  1153,
02438        0,   300,   861,   862,     0,   869,   864,     0,   315,     0,
02439     1176,  1189,  1187,   321,   327,   338,  1128,  1125,  1139,   309,
02440      810,     0,     0,   301,     0,   999,  1000,  1001,  1002,  1003,
02441     1004,  1005,  1006,   979,  1007,  1009,  1008,  1010,  1011,  1012,
02442      980,   981,  1013,  1014,  1015,   982,  1016,   983,  1017,  1018,
02443     1019,  1020,  1021,   984,  1022,  1024,  1023,  1025,  1026,  1027,
02444      985,  1028,  1029,   986,  1030,  1031,  1032,  1041,   987,  1033,
02445     1035,  1034,  1036,  1037,  1038,  1039,  1043,  1044,  1045,   988,
02446     1040,  1046,  1042,  1047,  1048,  1049,  1050,  1051,  1052,  1053,
02447     1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,  1062,  1063,
02448     1064,  1066,  1065,  1067,  1069,  1068,  1070,  1072,  1071,  1073,
02449      989,  1074,  1075,  1076,  1077,  1078,   990,  1079,  1080,  1081,
02450     1082,  1083,  1084,  1085,  1086,  1087,   991,  1088,  1089,  1090,
02451     1091,  1092,   992,  1093,   993,  1095,  1094,  1096,   994,  1098,
02452      995,  1097,  1099,   996,  1100,   997,  1101,  1102,  1103,  1104,
02453     1105,  1106,  1107,  1108,  1110,  1111,  1112,  1109,   998,  1113,
02454     1114,  1115,  1116,  1118,  1117,  1120,  1119,  1121,  1122,  1123,
02455     1124,   863,   969,   962,   970,   978,   329,     0,     0,     1,
02456        3,  1039,     0,   838,   836,     0,   959,   265,     0,     0,
02457     1173,     0,     0,  1179,    32,   963,     0,     0,    67,   238,
02458        0,   733,     0,     0,     0,   741,   747,     0,   750,     0,
02459      854,   855,  1169,   848,   850,   851,     0,  1000,  1006,     0,
02460      922,   561,     0,     0,     0,  1013,  1014,     0,     0,   366,
02461      366,     0,     0,     0,  1026,  1027,   943,     0,     0,     0,
02462        0,   919,   944,     0,   921,  1049,     0,     0,     0,   860,
02463        0,   941,     0,  1063,  1064,     0,     0,  1067,     0,   366,
02464      918,   940,     0,  1083,     0,     0,     0,  1092,  1093,     0,
02465        0,  1102,     0,     0,   366,   967,     0,  1111,  1112,     0,
02466      920,   998,   942,  1118,   366,   366,  1117,     0,     0,     0,
02467        0,  1124,     0,     0,     0,  1210,     0,     0,   534,   859,
02468      378,   384,   397,   412,   422,   423,   425,   424,   429,   428,
02469      916,   427,   917,   421,   951,   969,   908,   950,   870,  1188,
02470        0,     0,   762,   758,   761,   740,  1182,  1179,  1190,   343,
02471      342,   345,   347,   350,   344,   346,   359,   339,   349,   348,
02472      341,  1131,     0,     0,     0,   833,   698,  1140,   237,   236,
02473      235,  1141,   826,  1142,   829,     0,     0,   698,     0,   812,
02474      973,   974,     0,     0,     0,   308,   808,  1171,     0,   323,
02475        0,  1194,   961,     0,   844,     0,   205,     0,   312,   738,
02476      314,  1178,     0,     0,  1180,  1184,     0,    37,     0,   239,
02477        0,   804,   742,   737,     0,     0,     0,   751,   752,   856,
02478        0,     0,   857,   755,     0,   669,   440,   562,     0,     0,
02479        0,     0,     0,     0,     0,   669,     0,   473,   448,     0,
02480        0,     0,     0,   923,     0,     0,     0,  1210,     0,   539,
02481        0,     0,     0,  1210,     0,     0,     0,   669,     0,     0,
02482      669,     0,     0,   371,     0,   477,     0,     0,     0,     0,
02483        0,     0,     0,   669,   669,     0,     0,   669,     0,   486,
02484        0,   924,     0,     0,     0,     0,     0,   490,   491,     0,
02485        0,   669,   669,     0,     0,   432,   431,   433,     0,     0,
02486        0,     0,     0,     0,     0,     0,     0,     0,   414,     0,
02487      416,   418,   413,   417,   415,     0,     0,     0,     0,     0,
02488        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02489        0,     0,     0,     0,     0,   909,   508,     0,   871,     0,
02490      316,   317,     0,   760,     0,  1183,     0,  1185,  1201,   328,
02491     1191,   356,   330,   355,     0,   340,  1126,  1129,  1137,   831,
02492      832,     0,     0,    67,     0,     0,     0,   813,     0,   822,
02493      699,   833,     0,   829,   833,   821,     0,   824,   833,   833,
02494        0,     0,   324,  1195,   322,  1196,     0,   839,   912,   911,
02495      837,   845,   910,   846,   960,   206,   266,     0,   263,     0,
02496     1177,  1181,    68,    55,    33,     0,   671,     0,   734,   749,
02497      753,   745,     0,   849,   858,   852,     0,     0,   670,   669,
02498        0,   545,     0,   563,     0,   495,   559,     0,     0,     0,
02499        0,   519,     0,   545,   367,   494,     0,     0,     0,     0,
02500        0,     0,     0,   643,   644,   645,   646,   656,   647,   648,
02501      649,   658,   663,   650,   651,   659,   660,   661,   652,   662,
02502      657,   653,   664,     0,   642,   540,   532,     0,     0,     0,
02503        0,     0,     0,     0,   669,     0,     0,     0,   669,     0,
02504        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02505        0,     0,     0,     0,   669,     0,     0,     0,   655,     0,
02506      654,     0,     0,     0,     0,     0,     0,   469,   506,     0,
02507        0,     0,     0,     0,   435,     0,   434,   605,     0,  1206,
02508     1211,     0,     0,  1143,   535,   537,   370,   368,   369,   381,
02509      374,     0,   379,   372,   376,   419,  1003,   382,     0,     0,
02510      409,  1210,   678,   410,     0,     0,     0,     0,   395,   398,
02511      399,   400,   401,     0,   403,     0,   402,   406,   407,   408,
02512      411,   971,   972,   426,   430,   359,   952,     0,     0,     0,
02513       52,   766,     0,     0,     0,   772,   759,   763,  1186,  1203,
02514     1202,  1192,   359,   689,   360,   360,   950,  1131,  1134,  1135,
02515     1138,  1136,     0,  1133,  1132,  1147,   829,     0,     0,   825,
02516      834,   835,   707,   708,   706,   702,   703,   814,   830,   833,
02517      815,   829,   823,   827,   310,   796,   799,     0,     0,   698,
02518     1200,  1198,   783,   205,   739,   783,    38,    57,    58,    56,
02519       60,    69,   240,   672,   689,   735,   853,   793,     0,     0,
02520      515,     0,     0,     0,     0,     0,     0,   447,     0,   492,
02521      493,     0,     0,   518,     0,     0,     0,   449,   450,   444,
02522      752,   438,     0,     0,   451,     0,     0,     0,     0,     0,
02523        0,     0,   524,   499,   456,     0,   522,     0,   457,   478,
02524        0,   501,     0,     0,     0,     0,   459,   528,   526,     0,
02525        0,     0,     0,   530,   487,   460,     0,     0,     0,     0,
02526        0,     0,     0,     0,     0,   461,     0,   445,   527,   529,
02527      505,     0,   470,     0,  1204,   604,   338,   605,     0,     0,
02528     1201,  1209,   439,   953,     0,     0,     0,     0,     0,   375,
02529      380,   373,   377,  1210,     0,     0,     0,     0,   393,     0,
02530     1210,   678,   396,     0,     0,     0,     0,   511,   512,     0,
02531      968,   865,   318,   319,   338,     0,   785,   770,   777,   771,
02532        0,     0,     0,   769,   946,   945,  1190,     0,   354,   596,
02533      727,   351,   334,   700,   690,   333,   361,   357,     0,  1130,
02534        0,  1158,     0,     0,  1148,   833,     0,   828,     0,     0,
02535      816,   671,     0,   671,   782,   781,     0,   691,  1199,   784,
02536        0,   298,   298,   783,   298,   783,     0,     0,     0,   298,
02537        0,     0,     0,   296,     0,   298,     0,   305,   783,     0,
02538      295,    71,    76,    86,     0,   264,   270,     0,   274,   297,
02539        0,     0,     0,     0,     0,   112,    34,    69,   875,    70,
02540       73,   241,     0,     0,   709,   736,     0,   756,     0,     0,
02541      516,   546,     0,   564,     0,   442,   149,   548,   149,   557,
02542      555,   145,   551,   549,   556,   552,     0,   560,     0,   520,
02543      517,     0,     0,   496,     0,   543,     0,     0,     0,   446,
02544      498,     0,   525,   523,     0,     0,     0,     0,     0,     0,
02545        0,     0,     0,     0,   531,     0,     0,     0,     0,     0,
02546        0,     0,     0,     0,     0,     0,   436,   359,   325,     0,
02547     1205,  1207,  1144,  1145,  1146,   259,   536,     0,   391,   387,
02548        0,   385,   677,     0,     0,     0,   394,   405,   404,   360,
02549      509,   359,   954,   872,   359,   767,   779,     0,   787,     0,
02550        0,   764,   774,     0,     0,   773,  1193,   614,   613,     0,
02551      570,   671,   572,   569,   568,   567,     0,   613,   722,     0,
02552        0,   331,   336,   332,   701,   335,     0,   358,   365,   364,
02553      947,   952,     0,     0,  1143,     0,   817,   820,   819,   705,
02554      704,   818,   798,   689,   792,   791,   800,     0,   204,   203,
02555       88,   202,   299,   257,   232,   231,   278,     0,   109,   257,
02556      228,   276,     0,     0,     0,     0,     0,   289,   268,     0,
02557        0,     0,     0,   290,     0,     0,   269,     0,     0,   307,
02558      306,     0,     0,     0,    72,   783,   205,   112,     0,   302,
02559      109,   115,   955,     0,    62,    61,    59,   720,   721,   719,
02560      717,   718,    64,    63,    50,     0,     0,    51,     0,    98,
02561      100,   101,    43,   876,   878,   877,    44,     0,   205,    74,
02562        0,   242,     0,   673,     0,   805,   794,     0,   471,   565,
02563        0,     0,   547,   554,     0,   558,   147,   550,   553,   441,
02564      443,     0,     0,     0,   476,   541,   544,     0,     0,   453,
02565        0,   455,   500,   479,   502,     0,   458,   437,     0,   480,
02566        0,   485,   483,     0,     0,     0,   467,     0,   465,     0,
02567      466,     0,   468,   504,   507,   606,   326,     0,     0,   538,
02568      383,     0,   392,   389,     0,   386,   361,   513,   874,   873,
02569        0,    53,     0,     0,     0,   788,   790,   776,  1194,   765,
02570      768,   613,   596,     0,     0,   593,   615,     0,   615,   596,
02571      596,   679,   596,   665,   610,     0,     0,   732,     0,   728,
02572      352,     0,   363,   362,     0,     0,  1166,  1167,  1164,  1165,
02573     1163,  1149,     0,     0,   709,   949,   692,   695,   114,   258,
02574        0,     0,     0,   233,   108,   257,   107,   110,   240,     0,
02575       79,   280,    78,   294,   257,   287,   288,   285,    77,    83,
02576      282,   685,   687,   695,   293,    81,    80,    89,    90,    91,
02577       92,    93,    94,    95,    82,     0,   275,     0,   958,     0,
02578      304,   277,     0,   102,   103,     0,     0,    85,    84,    69,
02579       40,    69,   112,   880,   879,     0,    46,    75,   251,   252,
02580      247,     0,   710,     0,     0,   566,     0,     0,   521,     0,
02581        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02582        0,     0,   464,   462,   463,   700,  1208,   260,   388,     0,
02583      514,   866,   700,   778,   780,   786,     0,   775,     0,   689,
02584      608,     0,   595,   594,   616,     0,   596,   615,   615,     0,
02585      575,   574,     0,   674,   573,   666,     0,   632,   598,   338,
02586      731,   729,     0,   723,   725,     0,   948,     0,     0,  1162,
02587     1150,     0,  1151,   797,     0,   696,   697,   694,   111,   257,
02588      229,   234,   230,   240,     0,     0,     0,     0,   286,     0,
02589        0,   688,    87,   279,   303,   210,   154,   166,   170,   174,
02590      191,   166,   145,   158,   124,   145,   154,   145,   158,   136,
02591      174,   166,   191,   166,     0,   139,   200,     0,   182,   182,
02592      957,    42,  1197,   875,    99,     0,  1190,     0,     0,   472,
02593      150,   146,     0,   474,   475,   542,   533,   497,     0,   454,
02594      503,   481,   484,   482,   488,   489,   351,   351,    96,   390,
02595        0,    54,   789,  1201,   665,   700,   596,   571,   596,   582,
02596        0,     0,   596,   578,   576,   580,     0,   675,   689,   668,
02597      597,   629,   359,   881,   726,     0,   353,  1160,  1159,  1161,
02598        0,   695,     0,     0,     0,   292,     0,   302,   200,   686,
02599        0,   214,     0,   151,   130,   135,     0,     0,     0,   161,
02600      208,   164,   137,   178,   181,   121,   175,   177,     0,     0,
02601        0,   195,   199,   119,   192,   194,   128,   182,   158,     0,
02602      160,   143,     0,   182,   151,   182,   142,   123,   129,     0,
02603      117,   134,     0,     0,   116,     0,   187,     0,     0,   186,
02604      190,   120,   183,   185,   127,     0,    41,    39,    48,    47,
02605        0,   695,   255,     0,     0,     0,   607,    97,     0,   601,
02606      599,   600,   609,     0,   567,   596,   596,     0,   567,     0,
02607        0,     0,   683,   695,     0,   700,   633,     0,   611,     0,
02608      889,   724,  1152,   693,     0,     0,     0,     0,     0,     0,
02609        0,   291,   913,   281,   283,     0,   213,     0,   218,     0,
02610      152,   153,   156,     0,   167,   169,     0,   171,   173,   180,
02611      179,   162,   165,   176,   163,     0,   366,   936,     0,   935,
02612      197,   937,     0,   193,   131,   144,     0,     0,   133,   156,
02613      132,     0,     0,   201,     0,   927,   926,   929,     0,     0,
02614      925,   189,   928,     0,   184,   956,  1197,   243,     0,   254,
02615        0,   795,   802,     0,   148,   452,   867,     0,   583,     0,
02616      587,   592,   588,     0,   579,   577,     0,   684,     0,   680,
02617      682,   676,   337,   621,   622,     0,     0,   627,   631,   700,
02618        0,     0,     0,     0,   882,   884,     0,   730,     0,     0,
02619      243,   915,   914,   302,   211,     0,   215,   216,   217,     0,
02620      209,   155,   157,   141,   168,   933,   932,   934,   172,   938,
02621      196,   939,   366,   159,     0,   261,   140,   191,   166,   174,
02622      931,   930,   188,    49,     0,   783,    36,   244,   248,   245,
02623      695,     0,     0,     0,   881,   602,     0,     0,     0,     0,
02624        0,   640,   695,   617,   617,   628,   612,     0,     0,     0,
02625        0,   883,     0,     0,   890,   892,     0,   243,   104,   284,
02626      212,     0,     0,   198,   174,     0,   118,   126,   122,   250,
02627        0,   246,   253,   256,   801,   803,   889,   689,   584,     0,
02628      589,     0,   581,     0,   681,     0,   625,   623,   887,   888,
02629        0,   885,     0,     0,   891,   106,   105,   224,     0,   223,
02630        0,   220,   219,   125,   262,   715,   716,   712,   713,   711,
02631      714,   249,   895,   700,     0,     0,   641,     0,   618,     0,
02632        0,     0,   886,   894,   893,   226,   227,   225,     0,     0,
02633        0,   899,   603,   586,   591,   620,   619,   634,     0,     0,
02634        0,     0,     0,   906,   637,     0,   638,   635,   636,     0,
02635      222,   221,   897,   898,   896,   901,     0,     0,   903,   904,
02636        0,   868,   626,     0,   624,   905,   900,     0,   907,   639,
02637      902
02638 };
02639 
02640 /* YYDEFGOTO[NTERM-NUM].  */
02641 static const yytype_int16 yydefgoto[] =
02642 {
02643       -1,    31,    32,    33,    34,   911,   299,   683,  1116,  1642,
02644     1336,  1646,  1866,  1117,  1326,   855,  1034,  1552,   906,   907,
02645      908,    77,   297,  1118,  1100,  1119,  1120,  1102,  1103,   676,
02646     1493,  1494,  1666,  1328,  1329,  1330,  1331,  1466,  1467,  1277,
02647     1278,  1310,  1505,  1636,  1742,  1637,  1638,  1639,  1355,  1356,
02648     1352,  1822,  1713,  1923,  1741,  1759,  1760,  1714,  1715,  1725,
02649     1726,  1727,  1761,  1762,  1763,  1733,  1734,  1735,  1754,  1269,
02650     1270,  1104,  1728,  1504,  1711,  1815,  1818,  1920,  2021,  1279,
02651     1465,  1280,  1602,   458,   490,  1121,  1122,  1946,  1947,  1948,
02652     1949,  1520,  1770,  1771,  1458,  1399,  1934,    35,   903,   476,
02653     1105,    66,  1106,  1107,  1108,  1607,  1609,  1913,  1281,   124,
02654     1501,  1301,    36,   465,    37,   289,    38,   291,    39,   420,
02655      620,   621,    40,    41,   278,   999,   113,   428,   114,   115,
02656      863,  1051,  1667,   436,   437,   438,   439,   440,  1241,   632,
02657      633,   634,  1056,  1247,   517,   706,   400,   401,   402,   595,
02658      818,   403,   404,   405,   406,   407,   845,  1026,  1027,  1028,
02659      408,   932,  1361,   943,   409,   583,   804,   746,  1532,  1365,
02660      700,   921,  1146,   993,   508,   925,   703,  1230,  1231,  1232,
02661     1233,  1234,  1790,  1789,  1791,  1956,  1879,  1958,  1883,  1430,
02662     1235,  1236,  1558,  1877,  1997,   994,   995,   996,  1545,  1559,
02663     1676,  1578,  1579,  1899,  1421,  1237,  1565,  2006,  1896,  1897,
02664     2041,  2040,  1898,  1796,  1797,  1690,  1691,  2065,  2066,  2067,
02665     1960,   743,   779,   744,  1576,  1577,   701,   914,  1123,  1688,
02666     1794,  1018,  1573,  1792,  1889,  1109,  1481,  1482,  1053,  1054,
02667     1267,  1456,  1597,   649,  1668,  1244,   885,   886,  1345,  2031,
02668     1322,  1437,  1438,  1583,  1584,  1055,  1238,  1439,  1693,    42,
02669     1125,   478,   479,   303,    85,    43,    94,   308,   498,   691,
02670       44,   101,   696,    45,   109,   624,   423,   424,   856,  1035,
02671     1042,   857,  1046,  1418,  1037,  1215,  1216,  1079,  1080,  1038,
02672     1218,  1414,  1415,  1266,  1127,  1523,    46,  1073,   895,   896,
02673     1871,  1872,    47,   686,    80,    48,   121,    49,   118,   459,
02674      651,   652,   647,    50,   474,   473,    51,   283,   670,    52,
02675      100,   313,   314,   502,   695,    53,   104,    54,    55,   418,
02676     1213,  1670,  1954,   106,   619,  1410,  1337,  1800,  1904,  1905,
02677     1907,  1974,  1975,  2051,  2074,  2063,  2077,  2078,  2081,   410,
02678      671,  1811,   411,  1861,  1928,  1840,   412,  1043,  1044,  1457,
02679      413,   414,  1311,   425,   285,   294,   415,   842,   416,  1031,
02680      417,  1110,   462,    97,   274,   275,    56,   441,   117,   636,
02681      637,   638,   872,   873,   463,  1007,   874,   875,  1064,    98,
02682       99,  1062,  1590,  1451,   315,    57,   122,    58,    70,    73,
02683      293,   485,   626,    59,    60,    61,    62,   112,   629,   663,
02684     1047,   664,   665,   666,   901,   861,   799,   800,  1397,   579,
02685      580,  1001
02686 };
02687 
02688 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
02689    STATE-NUM.  */
02690 #define YYPACT_NINF -1565
02691 static const yytype_int16 yypact[] =
02692 {
02693     1833,   558,   -85, -1565,   -85,  -144,   487,   398, -1565, -1565,
02694     1028, -1565,    -8, -1565, -1565,   107,   151,   299,   -85, -1565,
02695     -144,   981, -1565,   394, -1565,   322,   340, -1565,   519, 14578,
02696        8,   698,   633, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02697    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02698    -1565, 11168, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02699    -1565, -1565, -1565, 14578, -1565, -1565,   519, -1565, -1565, -1565,
02700     -144, -1565, -1565,   720, 14578,   636, -1565,   495, -1565, -1565,
02701      728, 14578,   718, -1565,   733,   -85, -1565, -1565, -1565, -1565,
02702    -1565, -1565, -1565,  1471,   551, -1565, -1565, -1565, -1565, -1565,
02703     1136,   519, -1565, -1565,  5294, -1565, -1565,   981, -1565, 10486,
02704       49, -1565, -1565, -1565, -1565,   875, -1565, -1565,  1820,   590,
02705    -1565, 11509,   -85, -1565, 11509, -1565, -1565, -1565, -1565, -1565,
02706    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02707    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02708    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02709    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02710    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02711    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02712    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02713    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02714    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02715    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02716    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02717    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02718    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02719    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02720    -1565, -1565, -1565, -1565, -1565, -1565, -1565,     8,   566, -1565,
02721    -1565,   364, 14578, -1565, -1565,   577,   624, -1565,   675, 11509,
02722    -1565, 11509,    91,     3, -1565, -1565,   783, 14578,   636,   671,
02723    11509, -1565,   905, 14578, 14578,   718, -1565,   827,  1010,   777,
02724    -1565, -1565,   715,   699, -1565, -1565, 10486,   708,   753,  7586,
02725    -1565,  5294,   760,   762,   776,   785,   798,   805,   813,   814,
02726      814,   818,   825,   829,   305,   839, -1565,   849,   854,   861,
02727      863, -1565, -1565,   865, -1565,   878,   879,   885,  5676,   107,
02728      894, -1565,   896,   911,   920,   924,   937,   944,  5294,   953,
02729    -1565, -1565,   968,   970,   979,   980,   992,  1024,  1032,  1033,
02730     1037,  1046,  1048,  1051,  1054, -1565,   664,  1060,  1066,  1068,
02731    -1565,  1079, -1565,  1080,   814,   814,  1095,  1096,  1098,  1116,
02732     1125,  1128,  7586,  7586,  7586,  5294, 14578, 14578, -1565,    58,
02733     1050, -1565,   993,    67, -1565, -1565, -1565, -1565, -1565, -1565,
02734      781, -1565, -1565, -1565, -1565,  1129, -1565,   723,  1044, -1565,
02735    11509, 11509, -1565, -1565, -1565, -1565,   986,     3,   942, -1565,
02736    -1565, -1565, -1565, -1565, -1565, -1565,   739,   875, -1565, -1565,
02737    -1565, -1565,    68,  1134,    29,    -5,  1143, -1565, -1565, -1565,
02738    -1565, -1565, -1565, -1565,    68,  1085,  1084,  1143,    68, -1565,
02739    -1565, -1565,  1225,  -110,  1461, -1565, -1565, -1565,  1265, -1565,
02740     1152,   478, -1565,   429, 13214, 14578,  1448, 11509,  1160, -1565,
02741     1160, -1565,  1513,  1309, -1565, -1565,  1441, -1565, 11509, -1565,
02742     1412, -1565, -1565, -1565,  1352, 11509,  1317, -1565,  1239, -1565,
02743     1364,  1136, 11509, -1565,  5294,   170, -1565,    58,  1267,  5294,
02744     1221,  5294,  5294,  5294,  5294,   591,  1227, -1565, -1565,  1238,
02745     5294,  5294,  5294,   781,  5294, 11850,  5294, -1565,  2312,  1535,
02746     5294,  5294,  5294,  5294,  1945,  1250,  5294,   626,  5294,  5294,
02747      713,  5294,  5294, -1565,  3766, -1565,  7586,  5294,  5294,  5294,
02748     5294,  5294,  5294,  1623,  1623,  5294,  5294,   761,  3766, -1565,
02749     5294,   781,  2147,  2147,  3002,  5294,  1253, -1565, -1565,  1261,
02750    11850,  1623,  1623,  5294,  5294, -1565, -1565, -1565,    42,  1262,
02751      464,  5294,  1255,  1337,  5294,  5294,  5294,  7586, -1565,  1141,
02752    -1565, -1565, -1565, -1565, -1565,  6058,  7586,  7586,  1266,  7586,
02753     7586,   779,  7586,  7586,  7586,  7586,  7586,  7968,  8350,  7586,
02754     7586,  7586,  7586,   579,  7586, -1565, -1565, 14578, -1565,  1487,
02755     1263, -1565,  1332, -1565,  1283, -1565,   981, -1565,   888, -1565,
02756    -1565, -1565,  1270, -1565,  5294, -1565,  1272, -1565,  1047, -1565,
02757    -1565, 11509,  1284,   636, 11509,  1347,  5294, -1565,   -10, -1565,
02758    -1565,    -5, 14578,    68,    -5, -1565, 11509, -1565,    -5,    -5,
02759     1379, 11850, -1565, -1565, -1565, -1565,   734, -1565, -1565, -1565,
02760    -1565, -1565, -1565, -1565, -1565, -1565, -1565,  1614, -1565, 11509,
02761    -1565, -1565, -1565,  1120, -1565, 14578,  1310, 11509,  1160, -1565,
02762    -1565, -1565,  1483, -1565,  1160, -1565,  1283,    88, -1565,  1623,
02763     1288, -1565,  5294,   -23,    70, -1565,    58,   771,   788,   188,
02764       89, -1565,  1289,  1297, -1565, -1565,    92,    98,   261,   275,
02765     1292,   284,  1293, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02766    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02767    -1565, -1565, -1565,  1545, -1565, -1565, -1565,   302,   129,   144,
02768       43,  1305,  5294,   150,  1623,  1298,   313,   317,  1623,  1300,
02769      156,   319,   326,  1362,   343,   159,   171,   181,   187,   345,
02770     1301,  1302,   190,    47,  1623,  1303,   360,   369, -1565,  1304,
02771    -1565,  1306,  4148,  4530,  4912,   134,   204, -1565, -1565,  1308,
02772     1313,  1314,    56,   374, -1565,  5294, -1565, -1565,   486, -1565,
02773     1356,    84, 14578,    18, -1565,  1411, -1565,    33,  1678, -1565,
02774    -1565,   609, -1565, -1565, -1565, -1565,  1321, -1565,  1322,   704,
02775     1320,  5294,    10,  1320,  7586,  1323,  7586,  7586,  1666,  1745,
02776      939,  1403,  1403,  5676,   -13,  5676,   -13,  1320,  1320,  1320,
02777     1327, -1565, -1565, -1565,    93,  1325,  1324,  1399, 11509, 11509,
02778    -1565, -1565,  1333,  1333, 10126, -1565, -1565, -1565, -1565, -1565,
02779    -1565, -1565, -1565,   563,    58, -1565,  1330, -1565, -1565, -1565,
02780    -1565, -1565,   773,  1326, -1565, -1565,    68,  1336, 14578, -1565,
02781    -1565,    58, -1565, -1565, -1565, -1565,   -74, -1565, -1565,    -5,
02782    -1565,    68, -1565, -1565, -1565,  1334, -1565,   -89,  1686,  1143,
02783    -1565, -1565,   -89,  2224, -1565,   -89, -1565, -1565,  1338, -1565,
02784      -89,  1124, -1565, -1565,  1501, -1565, -1565,  1510,  6440,  1346,
02785    -1565,  5294,   401,  5294,  5294,  1635,  1259, -1565,  5294, -1565,
02786    -1565,  1259,  5294, -1565,  1360,  1585,  1586, -1565, -1565, -1565,
02787     1239, -1565,  5294,  5294, -1565,  5294,  5294,  5294,  5294,   386,
02788     5294,  1363, -1565, -1565, -1565,  1365, -1565,  5294, -1565, -1565,
02789     5294, -1565,  5294,  5294,  5294,  5294, -1565, -1565, -1565,  6822,
02790     5294,  5294,  1368, -1565, -1565, -1565,  5294,  5294,  5294,   488,
02791     5294,   703,  5294,   726,  5294, -1565,  5294, -1565, -1565, -1565,
02792    -1565,  5294, -1565,   811, -1565, -1565,   875, -1565,   486,  1369,
02793      888, -1565, -1565, -1565,  1366,  1367,  1370,  1471,  5294, -1565,
02794    -1565, -1565, -1565, -1565,  7586,    73,  1372,  7586, -1565,   746,
02795     5294,    10,  1666,  1945,  1945,  5294,  1375,  1361, -1565, 14578,
02796    -1565, -1565, -1565, -1565,   875, 11850, -1565,  1373, -1565,  1373,
02797     1123,  1378,   823, -1565, -1565, -1565,   942,   429, -1565,  -125,
02798    -1565,    63,  1605,  1143, -1565,  1634, 13555, -1565, 12532, -1565,
02799     1603, -1565,   -89,  1380, -1565,    -5,   -31, -1565,   -10,   -10,
02800    -1565,  1310, 11850,  1310, -1565, -1565,  7204, -1565, -1565, -1565,
02801       35,  1088,  1718,   -89,  1718,   -89,  1450,  1607,  1475,   719,
02802     1619,   -89,   -89, -1565,  1478,  1718,  1755,    34,   -89,   -89,
02803    -1565,  1404, -1565, -1565,  1742, -1565,  1408, 10827, -1565, -1565,
02804      -89,    25,   584,  1850, 11509,  9444, -1565,  1404,   564, -1565,
02805      199,  1456,  1580,  5294,  1624, -1565,  1705, -1565,  5676,   430,
02806    -1565,    58,  5294,    58,   548, -1565,  1426, -1565,  1426, -1565,
02807    -1565,  1432, -1565,  1655, -1565,  1658,  1442,    58,  1449,  1438,
02808    -1565,  5294,  5294, -1565,   470,   -90,   207,   220,    75, -1565,
02809    -1565,   479, -1565, -1565,   523,   539,   541,   230,   545,   840,
02810     5676,   549,   175,    81, -1565,   245,   253,   553,  5294,   599,
02811     5294,   606,  5294,   607,   611,   638, -1565,   739, -1565,  1455,
02812    -1565, -1565, -1565, -1565, -1565,  1446,    58,  1457, -1565, -1565,
02813     5294, -1565,    67,  7586,    87,  1459, -1565, -1565, -1565,    58,
02814    -1565, -1565, -1565,   348,   739,  1462, -1565,   -89,  7204,  1333,
02815     1579, -1565, -1565,  1123, 11850, -1565, -1565, -1565, -1565, 14578,
02816     1258,  1310, -1565,  1465, -1565, -1565, 11509, -1565,    55,  1517,
02817     1693, -1565, -1565, -1565, -1565, -1565, 13896, -1565, -1565, -1565,
02818    -1565,  1469,  1683,  3384,    18,   -89, -1565, -1565, -1565, -1565,
02819    -1565, -1565, -1565,  1501,   849,    58, -1565,  5294, -1565, -1565,
02820    -1565, -1565, -1565, 12191, -1565, -1565, -1565,   296,   543, 12191,
02821    -1565, -1565, 12191,   499, 12191,  1347,    35, -1565, -1565,  1698,
02822     1700, 12191, 12191, -1565,   579,  1347, -1565, 12191, 11850, -1565,
02823    -1565, 11509,    57,   940, -1565,   -89,  2277,  9785, 14578,   148,
02824       83, -1565,  1485,  1850, -1565, -1565, -1565, -1565, -1565, -1565,
02825    -1565, -1565, -1565, -1565, -1565,  1479,  1490, -1565,   901, -1565,
02826    -1565, -1565, -1565, -1565,  1853,  1857, -1565,   526,  1386, -1565,
02827      210, -1565, 11509,    58,   -10, -1565, -1565,  1945, -1565,    58,
02828     5294,  1661, -1565, -1565,  1662, -1565, -1565, -1565, -1565, -1565,
02829    -1565,  1495,  1945,  1945, -1565,  1608, -1565,  5294,  5294, -1565,
02830     5294, -1565, -1565, -1565, -1565,  5294, -1565, -1565,  1945, -1565,
02831     5294, -1565, -1565,  5294,  5294,  5294, -1565,   639, -1565,   646,
02832    -1565,   647, -1565, -1565, -1565,  1270, -1565,   464, 14578, -1565,
02833    -1565,   945, -1565, -1565,  5294, -1565, 13555, -1565, -1565, -1565,
02834     1722,  1270, 11850,  7204,  1500,  1498, -1565, -1565,   478, -1565,
02835    -1565, -1565,   547,  1725,  1726, -1565,  1667,   892,  1667,   547,
02836      547,  1758,  -125,   631, -1565,  1399,  1399, -1565,  1508, -1565,
02837    -1565,  1618, -1565, -1565, 12873,   990, -1565,  7586,   849, -1565,
02838       58, -1565,  1057,  5294,  1624,    58,  1512,   138, -1565, -1565,
02839     5294,  1731,  1732,    48, -1565, 12191, -1565, -1565, -1565,    95,
02840    -1565, -1565, -1565, -1565, 12191, -1565, -1565, -1565, -1565, -1565,
02841    -1565,  1518, -1565,   138, -1565, -1565, -1565, -1565, -1565, -1565,
02842    -1565, -1565, -1565, -1565, -1565,    35, -1565,   973, -1565, 14578,
02843    -1565, -1565, 11509, -1565, -1565,  1936, 14578, -1565, -1565,  1404,
02844    -1565,  1404,  9785, -1565, -1565,  1579, -1565, -1565, -1565, -1565,
02845    -1565,  1523, -1565,  1740,   601,    58,  1527,   974, -1565,  1528,
02846     1529,    96,  1531,   648,   274,   998,   650,   724,   651,   653,
02847      657,   662, -1565, -1565, -1565,    77, -1565, -1565, -1565,  1015,
02848    -1565, -1565,    77, -1565, -1565, -1565,  7204, -1565,  -134,  1501,
02849    -1565,   994, -1565, -1565, -1565,  1749,   547,  1667,  1667,  1750,
02850     1699,   370,  1883,  1780, -1565, -1565, 14578, -1565, -1565,   875,
02851    -1565, -1565,  1471,  1534, -1565,  1724, -1565,   153,  1684, -1565,
02852    -1565,   -89,    58, -1565,  5294, -1565, -1565, -1565,    58, 12191,
02853    -1565, -1565, -1565, -1565,  1546,  1839,  1841, 12191, -1565,  1936,
02854    11850, -1565, -1565, -1565, -1565,  1548,  1549, -1565, -1565,  1045,
02855     1236, -1565,  1432,  -103, -1565,  1432,  1549,  1432,  1552, -1565,
02856      918, -1565,   727, -1565,  1554, -1565,  1884,  1556,   917,   917,
02857     1557, -1565,    -3,   564, -1565,  1558,   942, 14578,  1602, -1565,
02858    -1565, -1565,  1733, -1565, -1565, -1565, -1565, -1565,  5294, -1565,
02859    -1565, -1565, -1565, -1565, -1565, -1565,    63,    63, -1565, -1565,
02860     1637, -1565, -1565,   888,  1504,  1143,  -125, -1565,   547, -1565,
02861     1783,  1787,   547, -1565, -1565, -1565,  5294, -1565,  1501, -1565,
02862    -1565,   -16,   739,  1895, -1565,  1508, -1565, -1565, -1565, -1565,
02863     3384,   138,  1572,  1574, 14578, -1565,  1398,   148,  1884, -1565,
02864    14578,  1770,  1744,  -105,  1254,  1260,   579,  1398,  1748, -1565,
02865    -1565,  1794, -1565, -1565, -1565, -1565,   918, -1565,  1795,  1094,
02866     1632, -1565, -1565, -1565,  1236, -1565,  1254,   917,  1552,  1756,
02867    -1565, -1565,  1592,   917,  -105,   917, -1565, -1565,  1254,  1762,
02868    -1565,  1254,  1763,  1347, -1565,  1764, -1565,  1016,  1891, -1565,
02869    -1565, -1565,   917, -1565, -1565, 14578, -1565, -1565, -1565, -1565,
02870     1146,   138,  1600, 11850,  1601,   665, -1565, -1565, 11509, -1565,
02871    -1565, -1565,  1465,  1181,  1642,   547,   547,  1286,  1644,  5294,
02872     5294,  1604,  -146,   138,  5294,  1143, -1565,    14,  1270,    13,
02873     1814, -1565, -1565, -1565, 14578, 14578,  1147,   781,   781,   870,
02874      870, -1565, -1565, -1565, -1565,  1168, -1565,    19,  1778,  1616,
02875    -1565, -1565,  1639,  1398, -1565, -1565,   570, -1565, -1565, -1565,
02876    -1565, -1565, -1565, -1565, -1565,   781,   814, -1565,   781,   781,
02877    -1565, -1565,  1786, -1565, -1565, -1565,  1178,    96, -1565,  1639,
02878    -1565,  1617,  1622, -1565,  1625, -1565, -1565, -1565,   870,   870,
02879      781, -1565, -1565,  1656, -1565, -1565,    -3,    27, 14578, -1565,
02880     1792,  1621, -1565,   -89, -1565, -1565, -1565,   464, -1565,  1668,
02881    -1565, -1565, -1565,  1669,    58,    58, 14578, -1565,  5294, -1565,
02882    -1565,    58, -1565, -1565, -1565,    48,    48, -1565,    14,    77,
02883     1977,  1980,  1910,  1982,    13, -1565,   -59, -1565,  1180,  1189,
02884       27, -1565, -1565,   148, -1565, 14578, -1565, -1565, -1565,     6,
02885    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,   781,
02886    -1565,   781,   814, -1565,  1198, -1565, -1565,  1236, -1565,   918,
02887    -1565, -1565, -1565, -1565,  1347,   -89, -1565,    27, -1565, -1565,
02888      138,  1636, 11850,  7204,  1895, -1565,  5294,  1638,  5294,  1641,
02889     1202, -1565,   138,  1892,  1892, -1565, -1565,    96,    96,  1994,
02890       96, -1565,  1995,  1997,   -59, -1565,  1799,    27, -1565, -1565,
02891    -1565,   575,   575, -1565,   918,    96, -1565,  1254, -1565, -1565,
02892       23, -1565, -1565, -1565, -1565, -1565,  1814,  1501,    58, 14578,
02893       58, 14578, -1565, 14578, -1565,   871, -1565, -1565, -1565, -1565,
02894       96, -1565,    96,    96, -1565, -1565, -1565, -1565,  2026, -1565,
02895       59,  1832,  1834, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02896    -1565, -1565,  1901,  1143,  1208,  1213, -1565,  2019, -1565,  2020,
02897     1674,  1676, -1565, -1565, -1565, -1565, -1565, -1565,  1728,  1970,
02898     1852,  1687, -1565, -1565, -1565, -1565, -1565, 14237, 14237,   575,
02899      575,   -22,  8732,  1791, -1565,  1690, -1565,  1689, -1565,  1234,
02900    -1565, -1565, -1565, -1565, -1565, -1565,  1471,  1248, -1565, -1565,
02901    11850, -1565, -1565, 14237, -1565, -1565, -1565,  9092,  1621, -1565,
02902    -1565
02903 };
02904 
02905 /* YYPGOTO[NTERM-NUM].  */
02906 static const yytype_int16 yypgoto[] =
02907 {
02908    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02909      424, -1565, -1565,   958,  -754,  -826, -1565, -1565, -1565,   962,
02910    -1565, -1565,  -225, -1074,   975, -1002,  -861, -1565, -1565,  1394,
02911    -1565, -1565, -1506,   774,   568,   982,  1006,   778,   816, -1565,
02912    -1565,   484, -1565,   489, -1565, -1565, -1565, -1565,  -287,  -893,
02913      957,   358,   480,   256, -1048,  -804,  -752, -1514, -1565, -1564,
02914    -1565,   378,   -94, -1565,   346, -1541, -1565,   388,   415,   410,
02915    -1163,  -348, -1565,   154, -1565, -1565, -1565, -1565,  -915, -1565,
02916    -1565, -1075, -1565, -1565, -1565, -1565, -1320, -1168, -1565,  1011,
02917      180, -1565,  -828,   265, -1235, -1565, -1565, -1565, -1565, -1565,
02918    -1565,   249, -1565, -1565,   832, -1565, -1565, -1565,   452,   152,
02919    -1540, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02920    -1565,  1291,  1671,  1093,  1864,  1144, -1565, -1565,  1869, -1565,
02921    -1565, -1565,  -738,  -971, -1565, -1565, -1565,  1709,  -875, -1154,
02922     1285,  -743,  -790,   743,  -327,  1276, -1565,  -564,  1949, -1565,
02923    -1565,  -304, -1565, -1565, -1565, -1565, -1565, -1565, -1565,   941,
02924    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02925     1908, -1565,  1219,  -491, -1565, -1565, -1565,  -878, -1565,   721,
02926      475, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02927     -830, -1565, -1565, -1565, -1565, -1565,  1157, -1565, -1565, -1565,
02928    -1565, -1565, -1565, -1565, -1102, -1565,  -457,   191, -1565,   262,
02929    -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,    76,   104,
02930    -1060,  -522,  1609,   255, -1565,   490,  1648,  -177, -1565, -1565,
02931    -1565,  1145, -1565, -1565, -1565, -1565, -1565,   569,  -907,  -631,
02932    -1565, -1565, -1443,  -419, -1045,  -405, -1565,  -954,   714, -1565,
02933     -627, -1565, -1565, -1565,   481,  1121, -1565, -1565, -1565, -1565,
02934    -1565,   356,   -87,  1873, -1565, -1565, -1565, -1565, -1565,  1241,
02935    -1565, -1565, -1565, -1565, -1565, -1565,  1858,  1761,  1488, -1565,
02936    -1565,  -881, -1565, -1565,  1335, -1565,   775,  -884,  -895,   966,
02937    -1565, -1565, -1565, -1202, -1565, -1565, -1565, -1565, -1565,  1114,
02938      109,   238, -1565, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02939     -117,   304,  -587, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02940    -1565, -1565,  1691, -1565, -1565, -1565,  1842, -1565, -1565, -1565,
02941    -1565, -1565, -1565, -1565, -1565, -1565, -1565,   239, -1565,   291,
02942      200, -1565,   224, -1565, -1565, -1565, -1565,   114, -1565,  -323,
02943    -1481, -1551, -1559, -1565, -1565, -1565,    90,   978,  1569, -1529,
02944     -476, -1565,  -244,   -50,   617,  2124,   -12,    -7,  -391,  -512,
02945      100,  -607,   893, -1565, -1565, -1565, -1565, -1565, -1565, -1565,
02946     1341, -1565, -1565, -1565, -1565,   959, -1565, -1565, -1565,   -91,
02947     -845,   759, -1565,   514,  1171, -1565, -1565, -1565, -1565,   174,
02948     2105,  1789, -1565, -1565, -1565, -1565, -1565,   -78, -1022,  -424,
02949    -1565, -1382, -1565, -1565, -1565,  -982, -1360, -1565, -1565,  -497,
02950    -1565, -1565
02951 };
02952 
02953 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
02954    positive, shift that token.  If negative, reduce the rule which
02955    number is the opposite.  If zero, do what YYDEFACT says.
02956    If YYTABLE_NINF, syntax error.  */
02957 #define YYTABLE_NINF -1198
02958 static const yytype_int16 yytable[] =
02959 {
02960       95,   284,   306,   518,   630,    96,   843,  1124,  1243,   111,
02961     1111,   523,   751,  1076,  1291,   506,  1416,   272,  1191,   615,
02962      707,   708,   422,   809,  1225,  1187,  1113,  1061,  1041,   419,
02963      722,   817,   545,  1395,   466,   899,  1557,  1546,   655,   272,
02964     1611,   650,  1101,  1332,  1468,   584,  1671,   559,  1299,   720,
02965     1655,   272,   650,   561,   584,   584,   613,   567,   568,   584,
02966     1411,   292,   272,  1214,   887,  1701,  1747,   890,   584,   272,
02967      584,   892,   893,   488,   468,  1057,   910,  1944,   923,  1257,
02968      597,    95,   584,   672,   926,   584,    96,   584,   575,   576,
02969      577,  1750,  1981,   584,   789,   111,   584,   272,   643,   584,
02970      584,   584,  1025, -1194,   584,  2025,   460,  1736,  -630,   272,
02971      584,   461,   272,   613,  1259,  1260,  1900,  1748,  1339,  1751,
02972     1268,   668,  1017,  1473,  1901,  1052,  1460,  1738,   677,   273,
02973      481,  -630,   615,   898,    86,  1434,    87,    88,  1893,   613,
02974     1068,   584,  1227,  1314,  2046,  2026,   584,  1812,  1604,  1916,
02975     1004,   286,  1435,  1595,  2072,  1499,   584,  1793,  1812,  1221,
02976     2027,  1894,   584,   273,   102,    89,  1830,  1813,   584,   645,
02977      615,   584,   882,  1820,   295,  1485,   970,    86,  1253,   698,
02978       88,   295,   658,   584,   600,   897,  1074,   584,  1283,  1239,
02979     1285,  1605,  1945,   584,   110,  1673,  1005,   639,  1274,   584,
02980      584,   883,   584,  1302,  1697,  2028,  1049,  1294,  1295,   286,
02981     1887,  1554,   483,    72,  1275,  1303,   584,  1083,   288,   584,
02982       67,   286,   105,    68,   286,  1596,  1313,   640,  1821,   422,
02983     1603,  1972,   584,   669,  2029,  1902,   659,  1888,  2073,  1608,
02984     1101,  1518,   584,  1240,   290,  -205,  1674,  1917,   484,  1085,
02985      491,  1973,   648,   316,  1228,    78,  1229,   584,  1803,    84,
02986     1766,   900,   699,   984,  1812,   584,   585,   585,  1500,  2047,
02987      272,   585,  1924,   584,  1075,   276,  1739,   272,    90,   272,
02988      585,  1436,   585,  1703,   675,   272,   584,   584,   272,  1327,
02989     1006,   272,   272,   928,   585,   822,   584,   585,  1918,   585,
02990      482,  1380,  1070,    91,   272,   585,  1091,    92,   585,  1069,
02991      844,   585,   585,   585,   584,   884,   585,  1245,  1092,  1560,
02992     1258,  -630,   585,  1903,  1016,   584,   628,  1502,  1869,   584,
02993      924,   584,  1612,  1413,   422,   677,  1517,   644,   584,  1460,
02994     1982,    86,  1419,   103,    88,  1519,    91,  1315,  2030,   646,
02995     1890,  1895,  1300,   585,  1672,   584,  1454,   584,   585,  1962,
02996      609,   610,   611,   612,  1702,  1340,  1935,   426,   585,  1606,
02997      622,  1453,   584,  1979,   585,  1988,   614,    93,  1045,  1486,
02998      585,   584,   472,   585,   272,   272,   584,   277,  1601,   286,
02999     1522,   286,   586,  1966,  1041,   585,  1986,   273,   584,   585,
03000      286,   586,   586,   273,   494,   585,   586,   375,   272,   272,
03001     1495,   585,   585,   584,   585,   586,   286,   586,   878,  1406,
03002     2023,  1461,   794,   794,  1987,   795,   947,   678,   585,   586,
03003      971,   585,   586,   614,   586,  1641,   990,  1643,   684,   991,
03004      586,  1149,   584,   586,   585,  1101,   586,   586,   586,  1098,
03005     1198,   586,  1155,  1199,   585,  1369,  1200,   586,  1370, -1198,
03006     1099,  1382,   272,   272,  1383,   272,  1002,  1403,  1025,   585,
03007     1404,   918,   931,  1271,  1169,   935,   272,   585,  1256,  1698,
03008     1078,   936,   584,   272,  1943,   585,  2008,  2009,   586,  2011,
03009      272,   584,   805,   586,   650,  1408,   581,   582,   585,   585,
03010      584,  1207,  1208,   586,  2024,   910,  1323,  1992,   585,   586,
03011       91,  1327,   945,   272,   985,   586,  1197,  1955,   586,  2004,
03012      286,   286,  1021,  1205,  1366,    74,   585,   946,  1462,  2042,
03013      586,  2043,  2044,   950,   586,   584,   889,   585,  1798,   957,
03014      586,   585,   962,   585,  1561,    79,   586,   586,   858,   586,
03015      585,   584,  1571,   584,   963,  1381,    75,   584,   272,  1217,
03016      584,   584,   107,   586,   964,   584,   586,   585,   930,   585,
03017      965,    95,  1427,   969,   673,   674,    96,   286,  1333,   586,
03018     1746,  1317,  1338,  1516,   585,  1684,  1460,   986,   286,   586,
03019     1367,   876,   904,   585,   879,   286,   897,  1409,   585,  1570,
03020      698,   841,   286,  1368,   586,   272,   891,  1061,  1692,  2017,
03021      585,   584,   586,  1375,   111,   116,   375,  1178,   584,   584,
03022      586,  1318,   630,   584,  1769,   585,  1463,    63,  1384,   272,
03023     1781,  -843,   272,   586,   586,   698,  1385,   915,   880,  1402,
03024      272,   937,   119,   586,   272,  1575,   271,   480,   120,   272,
03025      584,   584,  1675, -1197,   585,   938,  1470,  1658,   584,   584,
03026      584,   586,   584,   584,   940,   584,   123,   272,  -113,   584,
03027      -45,   841,   586,   272,   584,   272,   586,   584,   586,  1271,
03028      287,  1319,   944,   711,   522,   586,  1507,  1478,  1925,  1327,
03029     1845,  1779,  1049,   953,   585,  -667,    22,   954,   279,   958,
03030       64, -1197,   586,   585,   586,    65,   959,  1700,  1685,  1401,
03031     1320,  1334,   585,  1202,  1132,   584,  1014,   846,   754,   586,
03032     1050,    86,   698,   961,    88,   966,    86,  1009,   586,    88,
03033     1740,   797,   292,   586,   866,  1740,  1679,  -667,   584,   280,
03034      974,   286,  1978,  -843,   286,   586,   641,   585,  1045,   975,
03035     1892,  1995,   888,   997,   992,  -667,   286,  -667,  1203,  1065,
03036      586,  1645,   656,   585,  -667,   585,  1160,  -667,  1272,   585,
03037      698,    64,   585,   585,  1071,  -113,    65,   585,  -667,   286,
03038     1926,  1795,   296,  -667,  2018,   912,   898,   286,  -667,   586,
03039      272,  1776,  1777,   850,  -667,   -65,    76,   597,   622,  1033,
03040     1783,   824,  -667,   298,  1787,   758,  -667,   628,    30,  2016,
03041     1348,  -667,  1729,  1335,  1227,  1723,  1731,   780,   780,  1010,
03042     1963,  1964,  1483,   585,  1321,  1524,  1723,  2019,  1731,   586,
03043      585,   585,  1180,  -667,   905,   585,   272,   272,   586,   597,
03044     1529,  1530,   272,   798,  1289,  1740,  -667,   586,  1784,  2020,
03045     1364,   688,  1788,   774,  -667,  1182,  1537,   300,   694,  1371,
03046       95,  1350,   585,   585,   302,   998,   272,  1724,  1732,  1274,
03047      585,   585,   585,  -113,   585,   585,  1806,   585,  1724,  1535,
03048     1732,   585,   586,   304,   429,  1275,   585,  -667,  1271,   585,
03049       91,   841,  1927,  -207,  1261,    91,  1263,   859,   586,   841,
03050      586,   600,  1003,  1372,   586,  1515,   307,   586,   586,   648,
03051     1824,  1827,   586,  1549,   487,    86,  1195,    87,    88,  1373,
03052      493,  1374,  1723,  1580,  1581,  1376,  1228,   585,  -667,  1379,
03053     1731,  1011,  1824,  1386,  1718,  1756,  1217,  1719,   825,  2034,
03054     1012,  2035,  1730,   600,  1824,   464,   471,  1824,   286,   286,
03055      585,  1290,   336,   826,   866,  1880,  1881,   898,   586,  1720,
03056     -667,   475,  1825,  1828,  1716,   586,   586,   430,  -667,  -667,
03057      586,  1569,  1255,   948,  1724,   375,  1908,  1909,  1067,  1388,
03058      860,  1649,  1732,   477,  1825,  -667,  1390,  1392,  2052,  1953,
03059      486,  1393,   342,  1487,  1488,    95,  1825,   586,   586,  1825,
03060       96,   489,  1757,  1717,  2037,   586,   586,   586,  -962,   586,
03061      586,  -667,   586,  -667,  -667,   596,   586,   272,  1394,  1542,
03062      492,   586,   827,   272,   586,  1489,  1543,  1544,  1657,  1459,
03063     1660,  1662,   597,  1663,  2038,  1459,   496,  1664,  1469,  1490,
03064     1471,  1855,  1665,   560,   272,  1875,   272,  1476,  1477,  1248,
03065     1990,    95,   351,  1480,  1431,  1566,    96,  1721,  1423,    90,
03066      272,  1491,   586,  1567,  1324,   497,    81,  2022,   841,   499,
03067      500,   603,   604,   605,   606,   607,   608,   609,   610,   611,
03068      612,   361,   501,  -207,  -207,   586,   597,   504,    92,   841,
03069     2033,  1716,   375,  1060,  2039,   272,   948,    82,   336,   618,
03070      841,   841,   272,   272,  1661,   841,  1749,   617,   841,  1271,
03071     1680,  1681,   631,   603,   604,   605,   606,   607,   608,   609,
03072      610,   611,   612,    86,  1718,  1718,    88,  1719,  1719,  1212,
03073     1717,  -112,   505,  1731,  1483,  1723,   600,  1272,   342,   509,
03074      672,   510,  1083,   506,  2070,  2071,  1424,  1273,  1568,  1720,
03075     1720,   927,   598,  1856,   928,   511,  1249,  1425,  1251,   587,
03076      431,   432,   433,   434,   512,  1426,  -205,   599,   929,  1835,
03077     -205,   928,   435,    69,  1085,    71,   336,   513,  -271,   868,
03078     1723,   588,  1492,  1824,   514,  1732,  1433,  1724,  1758,   108,
03079      600,  1186,   515,   516,   928,   382,  1427,   519,   351,    86,
03080      601,    87,    88,  1223,   520,   675,  1224,  1312,   521,   675,
03081      589,  -207,   272,  -112,   286,  1312,   342,   272,   524,   590,
03082     1377,  1459,   630,   928,   272,   869,  1857,   361,   525,  1587,
03083     1459,  1091,  1724,   526,   272,  1825,   602,  1588,  1274,  1442,
03084      527,    64,   528,  1092,   529,  1423,    65,  1721,  1721,   625,
03085     1428,  1484,  1718,   591,  1275,  1719,   305,   530,   531,   810,
03086     1589,   272,    86,   870,   532,    88,    86,   272,   309,    88,
03087      272,   628,   272,   536,   841,   537,   351,  1720,  1472,   272,
03088      272,  1511,   841,  1136,  1512,   272,   272,  1137,  1479,   272,
03089      538,  1429,  1521,   467,   841,   272,   272,  1873,  1114,   539,
03090     1138,   460,  1836,   540,  1837,   361,   461, -1198,   605,   606,
03091      607,   608,   609,   610,   611,   612,   541,   310,   648,   871,
03092     -112,  1729,  1423,   542,   866,  1548,   841,   375,   928,  1422,
03093      272,  1139,   544,  1424,  1140,  1737,   286,    83,  1743,  1823,
03094     1745,   382,  1141,    90,  1425,  1826,  1443,   546,   811,   547,
03095     1423,   812,  1426,  1613,  1651,  1459,  1512,  1652,   548,   549,
03096      603,   604,   605,   606,   607,   608,   609,   610,   611,   612,
03097      905,   550,    92,  1312,  1098,  1721,  1677,   653,  1659,  1312,
03098      399,   928,  1312,  1427,  1312,  1099,   272,  1858,  1859,   654,
03099      850,  1312,  1312,  1722,   272,  1669,  1878,  1312,   928,  1248,
03100      272,   286,  -207,   551,  1083,   375,  1839,  1312,  1498,  1838,
03101     1424,   552,   553,   592,   593,   594,   554,  1142,  -112,   382,
03102     -207,  1425,  1083,   320,  -138,   555,  -207,   556,   311,  1426,
03103      557,    91,   272,   558,  1860,    91,  1085,  1428,  1424,   562,
03104       95,   312,   286,  1718,    68,   563,  1719,   564,   615,  1425,
03105     -205,  1730,  1615,   272,  1085,   597,   672,  1426,   565,   566,
03106     1427,  1718,   272,   813,  1719,   852,   853,  1718,  1720,   615,
03107     1719,   675,   814,  1807,   569,   570,  1873,   571,  1429,    86,
03108      336,    87,    88,   841,   523,   561,  1720,   272,  1427,   675,
03109      272,  1694,  1720,  1091,   272,   572,   597,   841,  1547,   841,
03110      272,  1882,  1220,  1115,   573,  1092,  1249,   574,   616,  1930,
03111       89,  1091,  1929,   642,  1428,  1931,   341,   657,  1575,   660,
03112      342,   960,    86,  1092,    87,    88,  1867,  1910,    86,  1868,
03113     1868,    88,   662,   675,  1282,   344,  1284,  1143,   615,   661,
03114      615,  1292,  1428,   679,  1212,  1764,    86,  1297,  1914,    88,
03115      850,  1915,   680,    89,   681,  1429,   682,   851,  1933,   600,
03116     1976,  1652,   685,  1868,   272,  1312,  1721,   687,  -667,  1977,
03117       95,   689,  1868,  1144,  1312,    96,   672,   672,  1984,   672,
03118      351,  1985,  2002,  1429,  1721,  2003,  2079,   272,  2053,   690,
03119     1721,  2003,  1145,  2054,   672,   272,  2003,   507,   272,  1614,
03120      600,   705,   286,   692,  1873,  1983,  1640,   714,   360,   361,
03121     -667,  2079,  1312,    86,  2084,    87,    88,  2083,   715,   672,
03122      702,   672,   672,    90,   534,   852,   853,   745,  2086,   752,
03123     -667,  2087,   698,   787,   543,   272,  1098,  -667,   847,   802,
03124     -667,   788,   796,  1844,    89,   821,   848,  1099,    91,  1848,
03125      849,  1850,    92,   862,  1098,   867,  -667,   877,    91,   894,
03126      902,  -667,   854,   916,   913,  1099,    90,  -667,   920,   933,
03127      934,   578,   939,   941,   942,  -667,  1689,   948,   952,  -667,
03128      956,   967,   968,   973,  -667,  1000,  1008,   976,   987,   977,
03129      584,    91,   272,   988,   989,    92,   612,    91,   272,  1312,
03130     -420,  1013,  1020, -1198,   841,  -510,  -667,  1312,  1029,   375,
03131     1030,  1063,  1036,  1808,  1058,    91,  1066,  1072,  1077,  -667,
03132      380,  1112,   803,   382,   898,  1126,  1130,  -667,  1876,   603,
03133      604,   605,   606,   607,   608,   609,   610,   611,   612,  1135,
03134     1150,  1151,  1152,  1162,  1211,  1163,  1853,  1772,  1174,  1190,
03135     1192,  1193,  1201,   272,  1194,  1210,  1219,    90,  1222,   597,
03136     -667,   272,  1050,  1049,  1252,  1254,   272,  1272,  1286,  1809,
03137     1810,  1287, -1198, -1198,   607,   608,   609,   610,   611,   612,
03138      697,  1288,    91,  1293,  1296,   704,    92,  1298,  1305,   709,
03139      710,  1306,   272,   272,  1340,  1342,   716,   717,   718,  1344,
03140      719,  -667,   721,  1346,  1772,  1351,   747,   748,   749,   750,
03141     1816,  1354,   753,  1357,   756,   757,  1358,   760,   761,  1841,
03142      762,   928,  1359,   764,   765,   766,   767,   768,   769,  1360,
03143     1398,   772,   773,  -667,   776,  1396,   777,  1400,   597,  1405,
03144      785,   786,  -667,     1,     2,  1412,   850,  1862,  1432,   792,
03145      793,  1440,  1441,  1444,     3,  1445,   272,   801,  -667,  1509,
03146      806,   807,   808,   600,  1474,  1865,  1475,  1513,   442,  1506,
03147     1510,  1514,  1526,  1527,   272,  1528,     4,  1531,   286,  1551,
03148     1555,  1556,   443,   444,  -667,     5,  -667,  -667,  1562,  1563,
03149      445,  1572,  1564,  1582,  1585,  1594,     6,  1599,  1600,  1911,
03150     1912,  1610,  1647,   272,  1772,  1772,  1648,  1650,  1653,  1654,
03151      864,  1656,  1678,  1682,  1683,  1686,  1687,  1695,  1696,     7,
03152        8,     9,   881,  1699,  1705,  1704,  1706,  1710,  1712,    10,
03153      446,  1739,  1317,  1752,  1753,  1755,  1773,  1989,  1768,    11,
03154      272,  1765,   600,  1799,  1774,  1778,  1785,    12,  1940,  1941,
03155     1786,  1804,   447,  1805,  1817,  1819,    13,   584,  1831,  1616,
03156     1832,  1834,    86,  1617,  1618,    88,  1842,  1846,  1772,   448,
03157      449,  1847,  1318,  1851,  1852,  1854,  1863,  1619,   922,  1870,
03158     -585,  1874,  -590,  1886,   450,  2085,  1961,   272,    14,   272,
03159     1906,   272,    86,  1919,  1932,    88,  1921,  1937,   451,  1942,
03160       15,  1922,  1938,  1951,  1952,  1939,  1957,  1959,  1620,  1967,
03161       16,  1621,  1968,  1969,  1970,  1980,  1993,  1999,  2005,  1622,
03162     2001,   723,   724,   725,   726,   727,  2010,  2012,   949,  2013,
03163     2045,  1623,  1319,   603,   604,   605,   606,   607,   608,   609,
03164      610,   611,   612,  1502,  1624,   272,   272,  2048,  2050,  2049,
03165      272,  2055,  2056,  2057,   452,  2058,  2060,  1625,   979,   981,
03166      983,  1320,  2059,  2061,    95,  2080,  2062,  1767,   272,    96,
03167     2082,   272,  2083,  1325,  1316,   272,  1304,   909,    17,    18,
03168     1644,  1497,    19,   728,   729,   730,   731,  1276,  1503,  1309,
03169       20,  1707,   453,  1464,  1626,  1353,    21,  1015,  1708,  1961,
03170       22,  1961,  1849,  2036,  1833,  1936,  1744,    23,  1864,  1023,
03171       24,  1024, -1198,   604,   605,   606,   607,   608,   609,   610,
03172      611,   612,  1843,  1814,    25,   454,  1829,  1991,   455,   456,
03173     2015,    91,  1341,  1950,   732,   733,   734,   735,  1496,  1032,
03174     1226,   470,  1189,   736,   667,   469,   635,  1048,  1627,  1550,
03175     1148,  1782,  1407,  1574,  1188,  2007,    26,  2068,  2068,  2089,
03176     1965,    91,  2069,   713,  1780,    27,  1206,    28,  1593,   585,
03177       29,   457,   781,  1242,   503,  1321,  1801,  1628,   495,  1709,
03178      737,  1153,   623,  2068,   917,  1417,  1262,  1553,  1039,  2088,
03179     1994,   535,   693,  1996,  1129,  1971,  2032,  1131,  2014,  1133,
03180     1134,  2090,  1420,   865,  1147,   301,  1508,  1629,  1059,   738,
03181      739,  1591,    30,  1452,  1802,   427,   627,     0,  1154,     0,
03182        0,  1156,  1157,  1158,  1159,     0,  1161,   727,     0,  1081,
03183        0,     0,     0,  1164,  1082,     0,  1165,     0,  1166,  1167,
03184     1168,     0,  1083,     0,     0,  1171,  1172,  1173,  1630,     0,
03185     1631,  1632,  1175,  1176,  1177,     0,  1179,     0,  1181,     0,
03186     1183,     0,  1184,     0,  1084,     0,     0,  1185,     0,     0,
03187        0,     0,     0,     0,  1085,   778,     0,  1633,     0,     0,
03188     1634,  1635,  1081,     0,  1196,  1086,     0,  1082,   731,     0,
03189        0,     0,     0,     0,     0,  1083,  1204,   740,     0,     0,
03190        0,  1209,     0,     0,   586,   741,   742,     0,     0,   675,
03191        0,     0,     0,     0,  1087,  1088,     0,  1084,     0,     0,
03192     1089,     0,     0,     0,     0,     0,  1090,  1085,     0,     0,
03193     -267,  1091,     0,     0,     0,     0,   732,     0,  1086,   735,
03194        0,     0,     0,  1092,     0,   736,     0,     0,  1093,     0,
03195        0,     0,  1265,     0,     0,     0,     0,     0,     0,     0,
03196        0,     0,   675,     0,     0,     0,    86,  1087,     0,    88,
03197        0,     0,  1094,  1089,     0,     0,     0,     0,     0,  1090,
03198        0,     0,   737,     0,  1091,     0,     0,     0,   723,   724,
03199      725,   726,   727,     0,     0,     0,  1092,     0,     0,  1343,
03200        0,  1093,     0,     0,  1347,     0,     0,     0,  1349,     0,
03201        0,     0,   739,     0,     0,     0,     0,     0,     0,    86,
03202     1095,     0,    88,   712,     0,     0,     0,  1362,  1363,     0,
03203        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03204        0,     0,     0,     0,     0,   755,  1378,  1096,   759,     0,
03205      728,   729,   730,   731,  1387,     0,  1389,     0,  1391,     0,
03206        0,   770,   771,     0,     0,   775,     0,     0,     0,     0,
03207     1097,     0,     0,  1095,  1098,     0,     0,     0,     0,   790,
03208      791,     0,     0,     0,     0,  1099,     0,     0,     0,     0,
03209        0,     0,     0,     0,  1265,   763,     0,     0,     0,   740,
03210     1096,   732,   733,   734,   735,     0,     0,     0,   742,     0,
03211      736,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03212        0,     0,     0,  1097,     0,     0,     0,  1098,     0,  1450,
03213        0,     0,     0,     0,     0,    91,     0,     0,  1099,     0,
03214        0,     0,     0,  1455,     0,   819,   820,   737,     0,   823,
03215        0,   828,   829,   830,   831,   832,   834,   836,   837,   838,
03216      839,   840,     0,     0,     0,     0,     0,     0,     0,     0,
03217        0,     0,     0,     0,     0,     0,   738,   739,     0,     0,
03218        0,     0,     0,     0,     0,     0,     0,     0,    91,     0,
03219        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03220        0,     0,     0,     0,     0,     0,     0,   919,     0,     0,
03221        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03222        0,     0,     0,     0,     0,     0,  1525,     0,     0,     0,
03223        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03224        0,     0,     0,  1533,  1534,     0,     0,     0,     0,     0,
03225        0,  1536,     0,     0,     0,     0,  1538,     0,     0,  1539,
03226     1540,  1541,   951,     0,   740,     0,   955,     0,     0,     0,
03227        0,     0,   741,   742,     0,     0,     0,     0,     0,     0,
03228        0,     0,   972,     0,     0,     0,     0,     0,     0,  1265,
03229        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03230        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03231        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03232        0,     0,     0,     0,     0,     0,     0,     0,     0,  1592,
03233        0,     0,     0,     0,     0,     0,  1598,     0,     0,     0,
03234        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03235        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03236        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03237        0,     0,     0,  1019,     0,     0,  1022,     0,     0,     0,
03238        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03239        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03240        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03241        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03242        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03243        0,     0,  1265,     0,     0,     0,     0,     0,     0,     0,
03244        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03245        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03246        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03247     1455,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03248        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03249        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03250        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03251        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03253        0,     0,     0,     0,  1775,     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,  1455,     0,     0,     0,     0,     0,     0,     0,
03257        0,     0,     0,     0,     0,     0,  1450,     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,   125,     0,   317,   127,
03261      128,     0,     0,     0,     0,   129,     0,     0,     0,   130,
03262      131,   318,     0,   133,     0,     0,   319,   320,   134,     0,
03263      135,   136,   782,   137,     0,     0,     0,   138,   321,   322,
03264      323,   139,     0,   324,   140,     0,   141,   325,     0,   326,
03265      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
03266      152,     0,   153,   327,   328,  1884,  1885,   154,   329,   330,
03267     1891,   331,   155,   156,   157,   332,   333,   334,     0,     0,
03268        0,     0,   335,   160,   336,     0,     0,   337,     0,     0,
03269        0,     0,   161,   162,     0,     0,   163,     0,     0,   164,
03270      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
03271      171,     0,   172,     0,   173,   174,   338,   339,   175,   340,
03272      341,   176,   177,   178,   342,   179,     0,     0,     0,   180,
03273      181,     0,   182,     0,   183,     0,   343,   184,     0,   344,
03274        0,     0,     0,   345,    86,   186,     0,    88,   346,     0,
03275      187,   188,     0,     0,     0,     0,     0,   347,   348,     0,
03276        0,     0,     0,   189,  1455,     0,     0,   190,     0,   349,
03277      191,     0,   783,   350,   192,     0,     0,     0,     0,     0,
03278      193,   194,     0,   195,   351,     0,     0,   352,   196,   197,
03279      198,   353,     0,     0,   354,   355,   201,     0,   202,   356,
03280      357,   204,   205,   206,     0,     0,   207,   208,   209,   358,
03281      359,   210,   360,   361,     0,   211,   212,     0,   213,   214,
03282      215,   216,     0,     0,     0,     0,     0,     0,     0,  1265,
03283      217,   362,  1998,   218,  2000,   219,   220,   363,   222,     0,
03284        0,     0,     0,     0,   223,     0,     0,     0,     0,   224,
03285      364,   365,     0,     0,     0,   225,     0,     0,   366,   226,
03286      227,   228,   229,   230,   367,   232,     0,   368,   234,     0,
03287        0,     0,   235,   236,   237,   238,     0,     0,   239,     0,
03288      240,   241,   242,     0,     0,     0,     0,     0,     0,     0,
03289        0,     0,     0,   243,   244,   369,   370,   245,     0,     0,
03290      246,   371,   248,   372,   373,   249,   374,   250,   251,     0,
03291        0,   252,     0,   375,   253,     0,   254,   376,   377,   378,
03292        0,   784,   257,   379,   380,   381,   259,   382,   260,   261,
03293        0,     0,     0,   262,     0,     0,     0,     0,   383,     0,
03294        0,   384,   385,   386,   387,   265,     0,     0,   266,   388,
03295        0,   389,   390,   267,   268,     0,     0,     0,     0,   269,
03296        0,     0,     0,   391,     0,     0,     0,     0,     0,     0,
03297        0,     0,     0,   392,   393,     0,     0,     0,     0,   394,
03298        0,   395,     0,   396,     0,     0,   397,   398,   125,     0,
03299      317,   127,   128,  1446,     0,     0,     0,   129,     0,     0,
03300        0,   130,   131,   318,     0,   133,     0,     0,  1447,   320,
03301      134,     0,   135,   136,     0,   137,     0,     0,     0,   138,
03302      321,   322,   323,   139,     0,   324,   140,     0,   141,   325,
03303        0,   326,   144,     0,   145,   146,   147,   148,   149,   150,
03304        0,   151,   152,     0,   153,   327,   328,     0,     0,   154,
03305      329,   330,     0,   331,   155,   156,   157,   332,   333,   334,
03306        0,     0,     0,     0,   335,   160,   336,     0,     0,  1448,
03307        0,     0,     0,     0,   161,   162,     0,     0,   163,     0,
03308        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
03309        0,   170,   171,     0,   172,     0,   173,   174,   338,   339,
03310      175,   340,   341,   176,   177,   178,   342,   179,     0,     0,
03311        0,   180,   181,     0,   182,     0,   183,     0,   343,   184,
03312        0,   344,     0,     0,     0,   345,    86,   186,     0,    88,
03313      346,     0,   187,   188,     0,     0,     0,     0,     0,   347,
03314      348,     0,     0,     0,     0,   189,     0,     0,     0,   190,
03315        0,   349,   191,     0,     0,   350,   192,     0,     0,     0,
03316        0,     0,   193,   194,     0,   195,   351,     0,     0,   352,
03317      196,   197,   198,   353,     0,     0,   354,   355,   201,     0,
03318      202,   356,   357,   204,   205,   206,     0,     0,   207,   208,
03319      209,   358,   359,   210,   360,   361,     0,   211,   212,  1449,
03320      213,   214,   215,   216,     0,     0,     0,     0,     0,     0,
03321        0,     0,   217,   362,     0,   218,     0,   219,   220,   363,
03322      222,     0,     0,     0,     0,     0,   223,     0,     0,     0,
03323        0,   224,   364,   365,     0,     0,     0,   225,     0,     0,
03324      366,   226,   227,   228,   229,   230,   367,   232,     0,   368,
03325      234,     0,     0,     0,   235,   236,   237,   238,     0,     0,
03326      239,     0,   240,   241,   242,     0,     0,     0,     0,     0,
03327        0,     0,     0,     0,     0,   243,   244,   369,   370,   245,
03328        0,     0,   246,   371,   248,   372,   373,   249,   374,   250,
03329      251,     0,     0,   252,     0,   375,   253,     0,   254,   376,
03330      377,   378,     0,     0,   257,   379,   380,   381,   259,   382,
03331      260,   261,     0,     0,     0,   262,     0,     0,     0,     0,
03332      383,     0,     0,   384,   385,   386,   387,   265,     0,     0,
03333      266,   388,     0,   389,   390,   267,   268,     0,     0,     0,
03334        0,   269,     0,     0,     0,   391,     0,     0,     0,     0,
03335        0,     0,     0,     0,     0,   392,   393,     0,     0,     0,
03336        0,   394,     0,   395,     0,   396,     0,     0,   397,   398,
03337      125,     0,   317,   127,   128,     0,     0,     0,     0,   129,
03338        0,     0,     0,   130,   131,   318,     0,   133,     0,     0,
03339      319,   320,   134,     0,   135,   136,     0,   137,     0,     0,
03340        0,   138,   321,   322,   323,   139,     0,   324,   140,     0,
03341      141,   325,     0,   326,   144,     0,   145,   146,   147,   148,
03342      149,   150,     0,   151,   152,     0,   153,   327,   328,     0,
03343        0,   154,   329,   330,     0,   331,   155,   156,   157,   332,
03344      333,   334,     0,     0,     0,     0,   335,   160,   336,     0,
03345        0,   337,     0,     0,     0,     0,   161,   162,     0,     0,
03346      163,     0,     0,   164,   165,   166,     0,     0,   167,     0,
03347      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
03348      338,   339,   175,   340,   341,   176,   177,   178,   342,   179,
03349        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
03350      343,   184,     0,   344,     0,     0,     0,   345,    86,   186,
03351        0,    88,   346,     0,   187,   188,     0,     0,     0,     0,
03352        0,   347,   348,     0,     0,     0,     0,   189,     0,     0,
03353        0,   190,     0,   349,   191,     0,     0,   350,   192,     0,
03354        0,     0,     0,     0,   193,   194,     0,   195,   351,     0,
03355        0,   352,   196,   197,   198,   353,     0,     0,   354,   355,
03356      201,     0,   202,   356,   357,   204,   205,   206,     0,     0,
03357      207,   208,   209,   358,   359,   210,   360,   361,     0,   211,
03358      212,     0,   213,   214,   215,   216,     0,     0,     0,     0,
03359        0,     0,     0,     0,   217,   362,     0,   218,     0,   219,
03360      220,   363,   222,     0,     0,     0,     0,     0,   223,     0,
03361        0,     0,     0,   224,   364,   365,     0,     0,     0,   225,
03362        0,     0,   366,   226,   227,   228,   229,   230,   367,   232,
03363        0,   368,   234,     0,     0,     0,   235,   236,   237,   238,
03364        0,     0,   239,     0,   240,   241,   242,     0,     0,     0,
03365        0,     0,     0,     0,     0,     0,     0,   243,   244,   369,
03366      370,   245,     0,     0,   246,   371,   248,   372,   373,   249,
03367      374,   250,   251,     0,     0,   252,     0,   375,   253,     0,
03368      254,   376,   377,   378,     0,     0,   257,   379,   380,   381,
03369      259,   382,   260,   261,     0,     0,     0,   262,     0,     0,
03370        0,     0,   383,     0,     0,   384,   385,   386,   387,   265,
03371        0,     0,   266,   388,     0,   389,   390,   267,   268,     0,
03372        0,     0,     0,   269,     0,     0,     0,   391,     0,     0,
03373        0,     0,     0,     0,     0,     0,     0,   392,   393,     0,
03374        0,     0,     0,   394,     0,   395,   714,   396,     0,     0,
03375      397,   398,   125,     0,   317,   127,   128,     0,     0,     0,
03376        0,   129,     0,     0,     0,   130,   131,   318,     0,   133,
03377        0,     0,   319,   320,   134,     0,   135,   136,     0,   137,
03378        0,     0,     0,   138,   321,   322,   323,   139,     0,   324,
03379      140,     0,   141,   325,     0,   326,   144,     0,   145,   146,
03380      147,   148,   149,   150,     0,   151,   152,     0,   153,   327,
03381      328,     0,     0,   154,   329,   330,     0,   331,   155,   156,
03382      157,   332,   333,   334,     0,     0,     0,     0,   335,   160,
03383      336,     0,     0,   337,     0,     0,     0,     0,   161,   162,
03384        0,     0,   163,     0,     0,   164,   165,   166,     0,     0,
03385      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
03386      173,   174,   338,   339,   175,   340,   341,   176,   177,   178,
03387      342,   179,     0,     0,     0,   180,   181,   978,   182,     0,
03388      183,     0,   343,   184,     0,   344,     0,     0,     0,   345,
03389       86,   186,     0,    88,   346,     0,   187,   188,     0,     0,
03390        0,     0,     0,   347,   348,     0,     0,     0,     0,   189,
03391        0,     0,     0,   190,     0,   349,   191,     0,     0,   350,
03392      192,     0,     0,     0,     0,     0,   193,   194,     0,   195,
03393      351,     0,     0,   352,   196,   197,   198,   353,     0,     0,
03394      354,   355,   201,     0,   202,   356,   357,   204,   205,   206,
03395        0,     0,   207,   208,   209,   358,   359,   210,   360,   361,
03396        0,   211,   212,     0,   213,   214,   215,   216,     0,     0,
03397        0,     0,     0,     0,     0,     0,   217,   362,     0,   218,
03398        0,   219,   220,   363,   222,     0,     0,     0,     0,     0,
03399      223,     0,     0,     0,     0,   224,   364,   365,     0,     0,
03400        0,   225,     0,     0,   366,   226,   227,   228,   229,   230,
03401      367,   232,     0,   368,   234,     0,     0,     0,   235,   236,
03402      237,   238,     0,     0,   239,     0,   240,   241,   242,     0,
03403        0,     0,     0,     0,     0,     0,     0,     0,     0,   243,
03404      244,   369,   370,   245,     0,     0,   246,   371,   248,   372,
03405      373,   249,   374,   250,   251,     0,     0,   252,     0,   375,
03406      253,     0,   254,   376,   377,   378,     0,     0,   257,   379,
03407      380,   381,   259,   382,   260,   261,     0,     0,     0,   262,
03408        0,     0,     0,     0,   383,     0,     0,   384,   385,   386,
03409      387,   265,     0,     0,   266,   388,     0,   389,   390,   267,
03410      268,     0,     0,     0,     0,   269,     0,     0,     0,   391,
03411        0,     0,     0,     0,     0,     0,     0,     0,     0,   392,
03412      393,     0,     0,     0,     0,   394,     0,   395,     0,   396,
03413        0,     0,   397,   398,   125,     0,   317,   127,   128,     0,
03414        0,     0,     0,   129,     0,     0,     0,   130,   131,   318,
03415        0,   133,     0,     0,   319,   320,   134,     0,   135,   136,
03416        0,   137,     0,     0,     0,   138,   321,   322,   323,   139,
03417        0,   324,   140,     0,   141,   325,     0,   326,   144,     0,
03418      145,   146,   147,   148,   149,   150,     0,   151,   152,     0,
03419      153,   327,   328,     0,     0,   154,   329,   330,     0,   331,
03420      155,   156,   157,   332,   333,   334,     0,     0,     0,     0,
03421      335,   160,   336,     0,     0,   337,     0,     0,     0,     0,
03422      161,   162,     0,     0,   163,     0,     0,   164,   165,   166,
03423        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
03424      172,     0,   173,   174,   338,   339,   175,   340,   341,   176,
03425      177,   178,   342,   179,     0,     0,     0,   180,   181,   980,
03426      182,     0,   183,     0,   343,   184,     0,   344,     0,     0,
03427        0,   345,    86,   186,     0,    88,   346,     0,   187,   188,
03428        0,     0,     0,     0,     0,   347,   348,     0,     0,     0,
03429        0,   189,     0,     0,     0,   190,     0,   349,   191,     0,
03430        0,   350,   192,     0,     0,     0,     0,     0,   193,   194,
03431        0,   195,   351,     0,     0,   352,   196,   197,   198,   353,
03432        0,     0,   354,   355,   201,     0,   202,   356,   357,   204,
03433      205,   206,     0,     0,   207,   208,   209,   358,   359,   210,
03434      360,   361,     0,   211,   212,     0,   213,   214,   215,   216,
03435        0,     0,     0,     0,     0,     0,     0,     0,   217,   362,
03436        0,   218,     0,   219,   220,   363,   222,     0,     0,     0,
03437        0,     0,   223,     0,     0,     0,     0,   224,   364,   365,
03438        0,     0,     0,   225,     0,     0,   366,   226,   227,   228,
03439      229,   230,   367,   232,     0,   368,   234,     0,     0,     0,
03440      235,   236,   237,   238,     0,     0,   239,     0,   240,   241,
03441      242,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03442        0,   243,   244,   369,   370,   245,     0,     0,   246,   371,
03443      248,   372,   373,   249,   374,   250,   251,     0,     0,   252,
03444        0,   375,   253,     0,   254,   376,   377,   378,     0,     0,
03445      257,   379,   380,   381,   259,   382,   260,   261,     0,     0,
03446        0,   262,     0,     0,     0,     0,   383,     0,     0,   384,
03447      385,   386,   387,   265,     0,     0,   266,   388,     0,   389,
03448      390,   267,   268,     0,     0,     0,     0,   269,     0,     0,
03449        0,   391,     0,     0,     0,     0,     0,     0,     0,     0,
03450        0,   392,   393,     0,     0,     0,     0,   394,     0,   395,
03451        0,   396,     0,     0,   397,   398,   125,     0,   317,   127,
03452      128,     0,     0,     0,     0,   129,     0,     0,     0,   130,
03453      131,   318,     0,   133,     0,     0,   319,   320,   134,     0,
03454      135,   136,     0,   137,     0,     0,     0,   138,   321,   322,
03455      323,   139,     0,   324,   140,     0,   141,   325,     0,   326,
03456      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
03457      152,     0,   153,   327,   328,     0,     0,   154,   329,   330,
03458        0,   331,   155,   156,   157,   332,   333,   334,     0,     0,
03459        0,     0,   335,   160,   336,     0,     0,   337,     0,     0,
03460        0,     0,   161,   162,     0,     0,   163,     0,     0,   164,
03461      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
03462      171,     0,   172,     0,   173,   174,   338,   339,   175,   340,
03463      341,   176,   177,   178,   342,   179,     0,     0,     0,   180,
03464      181,   982,   182,     0,   183,     0,   343,   184,     0,   344,
03465        0,     0,     0,   345,    86,   186,     0,    88,   346,     0,
03466      187,   188,     0,     0,     0,     0,     0,   347,   348,     0,
03467        0,     0,     0,   189,     0,     0,     0,   190,     0,   349,
03468      191,     0,     0,   350,   192,     0,     0,     0,     0,     0,
03469      193,   194,     0,   195,   351,     0,     0,   352,   196,   197,
03470      198,   353,     0,     0,   354,   355,   201,     0,   202,   356,
03471      357,   204,   205,   206,     0,     0,   207,   208,   209,   358,
03472      359,   210,   360,   361,     0,   211,   212,     0,   213,   214,
03473      215,   216,     0,     0,     0,     0,     0,     0,     0,     0,
03474      217,   362,     0,   218,     0,   219,   220,   363,   222,     0,
03475        0,     0,     0,     0,   223,     0,     0,     0,     0,   224,
03476      364,   365,     0,     0,     0,   225,     0,     0,   366,   226,
03477      227,   228,   229,   230,   367,   232,     0,   368,   234,     0,
03478        0,     0,   235,   236,   237,   238,     0,     0,   239,     0,
03479      240,   241,   242,     0,     0,     0,     0,     0,     0,     0,
03480        0,     0,     0,   243,   244,   369,   370,   245,     0,     0,
03481      246,   371,   248,   372,   373,   249,   374,   250,   251,     0,
03482        0,   252,     0,   375,   253,     0,   254,   376,   377,   378,
03483        0,     0,   257,   379,   380,   381,   259,   382,   260,   261,
03484        0,     0,     0,   262,     0,     0,     0,     0,   383,     0,
03485        0,   384,   385,   386,   387,   265,     0,     0,   266,   388,
03486        0,   389,   390,   267,   268,     0,     0,     0,     0,   269,
03487        0,     0,     0,   391,     0,     0,     0,     0,     0,     0,
03488        0,     0,     0,   392,   393,     0,     0,     0,     0,   394,
03489        0,   395,     0,   396,     0,     0,   397,   398,   125,     0,
03490      317,   127,   128,     0,     0,     0,     0,   129,     0,     0,
03491        0,   130,   131,   318,     0,   133,     0,     0,   319,   320,
03492      134,     0,   135,   136,     0,   137,     0,     0,     0,   138,
03493      321,   322,   323,   139,     0,   324,   140,     0,   141,   325,
03494        0,   326,   144,     0,   145,   146,   147,   148,   149,   150,
03495        0,   151,   152,     0,   153,   327,   328,     0,     0,   154,
03496      329,   330,     0,   331,   155,   156,   157,   332,   333,   334,
03497        0,     0,     0,     0,   335,   160,   336,     0,     0,   337,
03498        0,     0,     0,     0,   161,   162,     0,     0,   163,     0,
03499        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
03500        0,   170,   171,     0,   172,     0,   173,   174,   338,   339,
03501      175,   340,   341,   176,   177,   178,   342,   179,     0,     0,
03502        0,   180,   181,     0,   182,     0,   183,     0,   343,   184,
03503        0,   344,     0,     0,     0,   345,    86,   186,     0,    88,
03504      346,     0,   187,   188,     0,     0,     0,     0,     0,   347,
03505      348,     0,     0,     0,     0,   189,     0,     0,     0,   190,
03506        0,   349,   191,     0,     0,   350,   192,     0,     0,     0,
03507        0,     0,   193,   194,     0,   195,   351,     0,     0,   352,
03508      196,   197,   198,   353,     0,     0,   354,   355,   201,     0,
03509      202,   356,   357,   204,   205,   206,     0,     0,   207,   208,
03510      209,   358,   359,   210,   360,   361,     0,   211,   212,     0,
03511      213,   214,   215,   216,     0,     0,     0,     0,     0,     0,
03512        0,     0,   217,   362,     0,   218,     0,   219,   220,   363,
03513      222,     0,     0,     0,     0,     0,   223,     0,     0,     0,
03514        0,   224,   364,   365,     0,     0,     0,   225,     0,     0,
03515      366,   226,   227,   228,   229,   230,   367,   232,     0,   368,
03516      234,     0,     0,     0,   235,   236,   237,   238,     0,     0,
03517      239,     0,   240,   241,   242,     0,     0,     0,     0,     0,
03518        0,     0,     0,     0,     0,   243,   244,   369,   370,   245,
03519        0,     0,   246,   371,   248,   372,   373,   249,   374,   250,
03520      251,     0,     0,   252,     0,   375,   253,     0,   254,   376,
03521      377,   378,     0,     0,   257,   379,   380,   381,   259,   382,
03522      260,   261,     0,     0,     0,   262,     0,     0,     0,     0,
03523      383,     0,     0,   384,   385,   386,   387,   265,     0,     0,
03524      266,   388,     0,   389,   390,   267,   268,     0,     0,     0,
03525        0,   269,     0,     0,     0,   391,     0,     0,     0,     0,
03526        0,     0,     0,     0,     0,   392,   393,     0,     0,     0,
03527        0,   394,     0,   395,     0,   396,     0,     0,   397,   398,
03528      125,     0,   317,   127,   128,     0,     0,     0,     0,   129,
03529        0,     0,     0,   130,   131,   318,     0,   133,     0,     0,
03530      319,   320,   134,     0,   135,   136,     0,   137,     0,     0,
03531        0,   138,   321,   322,   323,   139,     0,   324,   140,     0,
03532      141,   325,     0,   326,   144,     0,   145,   146,   147,   148,
03533      149,   150,     0,   151,   152,     0,   153,   327,   328,     0,
03534        0,   154,   329,   330,     0,   331,   155,   156,   157,   332,
03535      333,   334,     0,     0,     0,     0,   335,   160,   336,     0,
03536        0,   337,     0,     0,     0,     0,   161,   162,     0,     0,
03537      163,     0,     0,   164,   165,   166,     0,     0,   167,     0,
03538      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
03539      338,   339,   175,   340,   341,   176,   177,   178,   342,   179,
03540        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
03541      343,   184,     0,   344,     0,     0,     0,   345,    86,   186,
03542        0,    88,   346,     0,   187,   188,     0,     0,     0,     0,
03543        0,   347,   348,     0,     0,     0,     0,   189,     0,     0,
03544        0,   190,     0,   349,   191,     0,     0,   350,   192,     0,
03545        0,     0,     0,     0,   193,   194,     0,   195,   351,     0,
03546        0,   352,   196,   197,   198,   353,     0,     0,   354,   355,
03547      201,     0,   202,   356,   357,   204,   205,   206,     0,     0,
03548      207,   208,   209,   358,   359,   210,   360,   361,     0,   211,
03549      212,     0,   213,   214,   215,   216,     0,     0,     0,     0,
03550        0,     0,     0,     0,   217,   362,     0,   218,     0,   219,
03551      220,   363,   222,     0,     0,     0,     0,     0,   223,     0,
03552        0,     0,     0,   224,   364,   365,     0,     0,     0,   225,
03553        0,     0,   366,   226,   227,   228,   229,   230,   367,   232,
03554        0,   368,   234,     0,     0,     0,   235,   236,   237,   238,
03555        0,     0,   239,     0,   240,   241,   242,     0,     0,     0,
03556        0,     0,     0,     0,     0,     0,     0,   243,   244,   369,
03557      370,   245,     0,     0,   246,   371,   248,   372,   373,   249,
03558      374,   250,   251,     0,     0,   252,     0,   375,   253,     0,
03559      254,   376,   377,   378,     0,     0,   257,   379,   380,   381,
03560      259,   382,   260,   261,     0,     0,     0,   262,     0,     0,
03561        0,     0,   383,     0,     0,   384,   385,   386,   387,   265,
03562        0,     0,   266,   388,     0,   389,   390,   267,   268,     0,
03563        0,     0,     0,   269,     0,     0,     0,   391,     0,     0,
03564        0,     0,     0,     0,     0,     0,     0,   392,   393,     0,
03565        0,     0,     0,   394,     0,   533,     0,   396,     0,     0,
03566      397,   398,   125,     0,   317,   127,   128,   815,     0,     0,
03567        0,   816,     0,     0,     0,   130,   131,   318,     0,   133,
03568        0,     0,   319,   320,   134,     0,   135,   136,     0,   137,
03569        0,     0,     0,   138,   321,   322,   323,   139,     0,   324,
03570      140,     0,   141,   325,     0,   326,   144,     0,   145,   146,
03571      147,   148,   149,   150,     0,   151,   152,     0,   153,   327,
03572      328,     0,     0,   154,   329,   330,     0,   331,   155,   156,
03573      157,   332,   333,   334,     0,     0,     0,     0,   335,   160,
03574      336,     0,     0,   337,     0,     0,     0,     0,   161,   162,
03575        0,     0,   163,     0,     0,   164,   165,   166,     0,     0,
03576      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
03577      173,   174,   338,   339,   175,   340,   341,   176,   177,   178,
03578      342,   179,     0,     0,     0,   180,   181,     0,   182,     0,
03579      183,     0,   343,   184,     0,   344,     0,     0,     0,   345,
03580       86,   186,     0,    88,   346,     0,   187,   188,     0,     0,
03581        0,     0,     0,   347,   348,     0,     0,     0,     0,   189,
03582        0,     0,     0,   190,     0,   349,   191,     0,     0,   350,
03583      192,     0,     0,     0,     0,     0,   193,   194,     0,   195,
03584      351,     0,     0,   352,   196,   197,   198,   353,     0,     0,
03585      354,   355,   201,     0,   202,   356,   357,   204,   205,   206,
03586        0,     0,   207,   208,   209,     0,   359,   210,   360,   361,
03587        0,   211,   212,     0,   213,   214,   215,   216,     0,     0,
03588        0,     0,     0,     0,     0,     0,   217,   362,     0,   218,
03589        0,   219,   220,   363,   222,     0,     0,     0,     0,     0,
03590      223,     0,     0,     0,     0,   224,   364,   365,     0,     0,
03591        0,   225,     0,     0,   366,   226,   227,   228,   229,   230,
03592      367,   232,     0,   368,   234,     0,     0,     0,   235,   236,
03593      237,   238,     0,     0,   239,     0,   240,   241,   242,     0,
03594        0,     0,     0,     0,     0,     0,     0,     0,     0,   243,
03595      244,   369,   370,   245,     0,     0,   246,   371,   248,   372,
03596      373,   249,   374,   250,   251,     0,     0,   252,     0,   375,
03597      253,     0,   254,   376,   377,   378,     0,     0,   257,   379,
03598      380,   381,   259,   382,   260,   261,     0,     0,     0,   262,
03599        0,     0,     0,     0,   383,     0,     0,   384,   385,   386,
03600      387,   265,     0,     0,   266,   388,     0,   389,   390,   267,
03601      268,     0,     0,     0,     0,   269,     0,     0,     0,   391,
03602        0,     0,     0,     0,     0,     0,     0,     0,     0,   392,
03603      393,     0,     0,     0,     0,   394,     0,   395,     0,   396,
03604        0,     0,   397,   398,   125,     0,   317,   127,   128,     0,
03605        0,     0,     0,   129,     0,     0,     0,   130,   131,   318,
03606        0,   133,     0,     0,   319,   320,   134,     0,   135,   136,
03607        0,   137,     0,     0,     0,   138,   321,   322,   323,   139,
03608        0,   324,   140,     0,   141,   325,     0,   326,   144,     0,
03609      145,   146,   147,   148,   149,   150,     0,   151,   152,     0,
03610      153,   327,   328,     0,     0,   154,   329,   330,     0,   331,
03611      155,   156,   157,   332,   333,   334,     0,     0,     0,     0,
03612      335,   160,   336,     0,     0,   337,     0,     0,     0,     0,
03613      161,   162,     0,     0,   163,     0,     0,   164,   165,   166,
03614        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
03615      172,     0,   173,   174,   338,   339,   175,   340,   341,   176,
03616      177,   178,   342,   179,     0,     0,     0,   180,   181,     0,
03617      182,     0,   183,     0,   343,   184,     0,   344,     0,     0,
03618        0,   345,    86,   186,     0,    88,   346,     0,   187,   188,
03619        0,     0,     0,     0,     0,   347,  1128,     0,     0,     0,
03620        0,   189,     0,     0,     0,   190,     0,   349,   191,     0,
03621        0,   350,   192,     0,     0,     0,     0,     0,   193,   194,
03622        0,   195,   351,     0,     0,   352,   196,   197,   198,   353,
03623        0,     0,   354,   355,   201,     0,   202,   356,   357,   204,
03624      205,   206,     0,     0,   207,   208,   209,   358,   359,   210,
03625      360,   361,     0,   211,   212,     0,   213,   214,   215,   216,
03626        0,     0,     0,     0,     0,     0,     0,     0,   217,   362,
03627        0,   218,     0,   219,   220,   363,   222,     0,     0,     0,
03628        0,     0,   223,     0,     0,     0,     0,   224,   364,   365,
03629        0,     0,     0,   225,     0,     0,   366,   226,   227,   228,
03630      229,   230,   367,   232,     0,   368,   234,     0,     0,     0,
03631      235,   236,   237,   238,     0,     0,   239,     0,   240,   241,
03632      242,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03633        0,   243,   244,   369,   370,   245,     0,     0,   246,   371,
03634      248,   372,   373,   249,   374,   250,   251,     0,     0,   252,
03635        0,   375,   253,     0,   254,   376,   377,   378,     0,     0,
03636      257,   379,   380,   381,   259,   382,   260,   261,     0,     0,
03637        0,   262,     0,     0,     0,     0,   383,     0,     0,   384,
03638      385,   386,   387,   265,     0,     0,   266,   388,     0,   389,
03639      390,   267,   268,     0,     0,     0,     0,   269,     0,     0,
03640        0,   391,     0,     0,     0,     0,     0,     0,     0,     0,
03641        0,   392,   393,     0,     0,     0,     0,   394,     0,   395,
03642        0,   396,     0,     0,   397,   398,   125,     0,   317,   127,
03643      128,     0,     0,     0,     0,   129,     0,     0,     0,   130,
03644      131,   318,     0,   133,     0,     0,   319,   320,   134,     0,
03645      135,   136,     0,   137,     0,     0,     0,   138,   321,   322,
03646      323,   139,     0,   324,   140,     0,   141,   325,     0,   326,
03647      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
03648      152,     0,   153,   327,   328,     0,     0,   154,   329,   330,
03649        0,   331,   155,   156,   157,   332,   333,   334,     0,     0,
03650        0,     0,   335,   160,   336,     0,     0,   337,     0,     0,
03651        0,     0,   161,   162,     0,     0,   163,     0,     0,   164,
03652      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
03653      171,     0,   172,     0,   173,   174,   338,   339,   175,   340,
03654      341,   176,   177,   178,   342,   179,     0,     0,     0,   180,
03655      181,     0,   182,     0,   183,     0,   343,   184,     0,   344,
03656        0,     0,     0,   345,    86,   186,     0,    88,   346,     0,
03657      187,   188,     0,     0,     0,     0,     0,   347,  1170,     0,
03658        0,     0,     0,   189,     0,     0,     0,   190,     0,   349,
03659      191,     0,     0,   350,   192,     0,     0,     0,     0,     0,
03660      193,   194,     0,   195,   351,     0,     0,   352,   196,   197,
03661      198,   353,     0,     0,   354,   355,   201,     0,   202,   356,
03662      357,   204,   205,   206,     0,     0,   207,   208,   209,   358,
03663      359,   210,   360,   361,     0,   211,   212,     0,   213,   214,
03664      215,   216,     0,     0,     0,     0,     0,     0,     0,     0,
03665      217,   362,     0,   218,     0,   219,   220,   363,   222,     0,
03666        0,     0,     0,     0,   223,     0,     0,     0,     0,   224,
03667      364,   365,     0,     0,     0,   225,     0,     0,   366,   226,
03668      227,   228,   229,   230,   367,   232,     0,   368,   234,     0,
03669        0,     0,   235,   236,   237,   238,     0,     0,   239,     0,
03670      240,   241,   242,     0,     0,     0,     0,     0,     0,     0,
03671        0,     0,     0,   243,   244,   369,   370,   245,     0,     0,
03672      246,   371,   248,   372,   373,   249,   374,   250,   251,     0,
03673        0,   252,     0,   375,   253,     0,   254,   376,   377,   378,
03674        0,     0,   257,   379,   380,   381,   259,   382,   260,   261,
03675        0,     0,     0,   262,     0,     0,     0,     0,   383,     0,
03676        0,   384,   385,   386,   387,   265,     0,     0,   266,   388,
03677        0,   389,   390,   267,   268,     0,     0,     0,     0,   269,
03678        0,     0,     0,   391,     0,     0,     0,     0,     0,     0,
03679        0,     0,     0,   392,   393,     0,     0,     0,     0,   394,
03680        0,   395,     0,   396,     0,     0,   397,   398,   125,     0,
03681      317,   127,   128,     0,     0,     0,     0,   129,     0,     0,
03682        0,   130,   131,   318,     0,   133,     0,     0,   319,   320,
03683      134,     0,   135,   136,     0,   137,     0,     0,     0,   138,
03684      321,   322,   323,   139,     0,   324,   140,     0,   141,   325,
03685        0,   326,   144,     0,   145,   146,   147,   148,   149,   150,
03686        0,   151,   152,     0,   153,   327,   328,     0,     0,   154,
03687      329,   330,     0,   331,   155,   156,   157,   332,   333,   334,
03688        0,     0,     0,     0,   335,   160,   336,     0,     0,  1264,
03689        0,     0,     0,     0,   161,   162,     0,     0,   163,     0,
03690        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
03691        0,   170,   171,     0,   172,     0,   173,   174,   338,   339,
03692      175,   340,   341,   176,   177,   178,   342,   179,     0,     0,
03693        0,   180,   181,     0,   182,     0,   183,     0,   343,   184,
03694        0,   344,     0,     0,     0,   345,    86,   186,     0,    88,
03695      346,     0,   187,   188,     0,     0,     0,     0,     0,   347,
03696      348,     0,     0,     0,     0,   189,     0,     0,     0,   190,
03697        0,   349,   191,     0,     0,   350,   192,     0,     0,     0,
03698        0,     0,   193,   194,     0,   195,   351,     0,     0,   352,
03699      196,   197,   198,   353,     0,     0,   354,   355,   201,     0,
03700      202,   356,   357,   204,   205,   206,     0,     0,   207,   208,
03701      209,   358,   359,   210,   360,   361,     0,   211,   212,     0,
03702      213,   214,   215,   216,     0,     0,     0,     0,     0,     0,
03703        0,     0,   217,   362,     0,   218,     0,   219,   220,   363,
03704      222,     0,     0,     0,     0,     0,   223,     0,     0,     0,
03705        0,   224,   364,   365,     0,     0,     0,   225,     0,     0,
03706      366,   226,   227,   228,   229,   230,   367,   232,     0,   368,
03707      234,     0,     0,     0,   235,   236,   237,   238,     0,     0,
03708      239,     0,   240,   241,   242,     0,     0,     0,     0,     0,
03709        0,     0,     0,     0,     0,   243,   244,   369,   370,   245,
03710        0,     0,   246,   371,   248,   372,   373,   249,   374,   250,
03711      251,     0,     0,   252,     0,   375,   253,     0,   254,   376,
03712      377,   378,     0,     0,   257,   379,   380,   381,   259,   382,
03713      260,   261,     0,     0,     0,   262,     0,     0,     0,     0,
03714      383,     0,     0,   384,   385,   386,   387,   265,     0,     0,
03715      266,   388,     0,   389,   390,   267,   268,     0,     0,     0,
03716        0,   269,     0,     0,     0,   391,     0,     0,     0,     0,
03717        0,     0,     0,     0,     0,   392,   393,     0,     0,     0,
03718        0,   394,     0,   395,     0,   396,     0,     0,   397,   398,
03719      125,     0,   317,   127,   128,     0,     0,     0,     0,   129,
03720        0,     0,     0,   130,   131,   318,     0,   133,     0,     0,
03721      319,   320,   134,     0,   135,   136,     0,   137,     0,     0,
03722        0,   138,   321,   322,   323,   139,     0,   324,   140,     0,
03723      141,   325,     0,   326,   144,     0,   145,   146,   147,   148,
03724      149,   150,     0,   151,   152,     0,   153,   327,   328,     0,
03725        0,   154,   329,   330,     0,   331,   155,   156,   157,   332,
03726      333,   334,     0,     0,     0,     0,   335,   160,   336,     0,
03727        0,   337,     0,     0,     0,     0,   161,   162,     0,     0,
03728      163,     0,     0,   164,   165,   166,     0,     0,   167,     0,
03729      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
03730      338,   339,   175,   340,   341,   176,   177,   178,   342,   179,
03731        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
03732      343,   184,     0,   344,     0,     0,     0,   345,    86,   186,
03733        0,    88,   346,     0,   187,   188,     0,     0,     0,     0,
03734        0,   347,   348,     0,     0,     0,     0,   189,     0,     0,
03735        0,   190,     0,   349,   191,     0,     0,   350,   192,     0,
03736        0,     0,     0,     0,   193,   194,     0,   195,   351,     0,
03737        0,   352,   196,   197,   198,   353,     0,     0,   354,   355,
03738      201,     0,   202,   356,   357,   204,   205,   206,     0,     0,
03739      207,   208,   209,     0,   359,   210,   360,   361,     0,   211,
03740      212,     0,   213,   214,   215,   216,     0,     0,     0,     0,
03741        0,     0,     0,     0,   217,   362,     0,   218,     0,   219,
03742      220,   363,   222,     0,     0,     0,     0,     0,   223,     0,
03743        0,     0,     0,   224,   364,   365,     0,     0,     0,   225,
03744        0,     0,   366,   226,   227,   228,   229,   230,   367,   232,
03745        0,   368,   234,     0,     0,     0,   235,   236,   237,   238,
03746        0,     0,   239,     0,   240,   241,   242,     0,     0,     0,
03747        0,     0,     0,     0,     0,     0,     0,   243,   244,   369,
03748      370,   245,     0,     0,   246,   371,   248,   372,   373,   249,
03749      374,   250,   251,     0,     0,   252,     0,   375,   253,     0,
03750      254,   376,   377,   378,     0,     0,   257,   379,   380,   381,
03751      259,   382,   260,   261,     0,     0,     0,   262,     0,     0,
03752        0,     0,   383,     0,     0,   384,   385,   386,   387,   265,
03753        0,     0,   266,   388,     0,   389,   390,   267,   268,     0,
03754        0,     0,     0,   269,     0,     0,     0,   391,     0,     0,
03755        0,     0,     0,     0,     0,     0,     0,   392,   393,     0,
03756        0,     0,     0,   394,     0,   395,     0,   396,     0,     0,
03757      397,   398,   125,     0,   317,   127,   128,     0,     0,     0,
03758        0,   129,     0,     0,     0,   130,   131,   318,     0,   133,
03759        0,     0,   319,   320,   134,     0,   135,   136,     0,   137,
03760        0,     0,     0,   138,   321,   322,   323,   139,     0,   324,
03761      140,     0,   141,   325,     0,   326,   144,     0,   145,   146,
03762      147,   148,   149,   150,     0,   151,   152,     0,   153,   327,
03763      328,     0,     0,   154,   329,   330,     0,   331,   155,   156,
03764      157,   332,   333,   334,     0,     0,     0,     0,   335,   160,
03765      336,     0,     0,   337,     0,     0,     0,     0,   161,   162,
03766        0,     0,   163,     0,     0,   164,   165,   166,     0,     0,
03767      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
03768      173,   174,   338,   339,   175,   340,   341,   176,   177,   178,
03769      342,   179,     0,     0,     0,   180,   181,     0,   182,     0,
03770      183,     0,   343,   184,     0,   344,     0,     0,     0,   345,
03771       86,   186,     0,    88,   346,     0,   187,   188,     0,     0,
03772        0,     0,     0,   347,   833,     0,     0,     0,     0,   189,
03773        0,     0,     0,   190,     0,   349,   191,     0,     0,   350,
03774      192,     0,     0,     0,     0,     0,   193,   194,     0,   195,
03775      351,     0,     0,   352,   196,   197,   198,   353,     0,     0,
03776      354,   355,   201,     0,   202,   356,   357,   204,   205,   206,
03777        0,     0,   207,   208,   209,     0,   359,   210,   360,   361,
03778        0,   211,   212,     0,   213,   214,   215,   216,     0,     0,
03779        0,     0,     0,     0,     0,     0,   217,   362,     0,   218,
03780        0,   219,   220,   363,   222,     0,     0,     0,     0,     0,
03781      223,     0,     0,     0,     0,   224,   364,   365,     0,     0,
03782        0,   225,     0,     0,   366,   226,   227,   228,   229,   230,
03783      367,   232,     0,   368,   234,     0,     0,     0,   235,   236,
03784      237,   238,     0,     0,   239,     0,   240,   241,   242,     0,
03785        0,     0,     0,     0,     0,     0,     0,     0,     0,   243,
03786      244,   369,   370,   245,     0,     0,   246,   371,   248,   372,
03787      373,   249,   374,   250,   251,     0,     0,   252,     0,   375,
03788      253,     0,   254,   376,   377,   378,     0,     0,   257,   379,
03789      380,   381,   259,   382,   260,   261,     0,     0,     0,   262,
03790        0,     0,     0,     0,   383,     0,     0,   384,   385,   386,
03791      387,   265,     0,     0,   266,   388,     0,   389,   390,   267,
03792      268,     0,     0,     0,     0,   269,     0,     0,     0,   391,
03793        0,     0,     0,     0,     0,     0,     0,     0,     0,   392,
03794      393,     0,     0,     0,     0,   394,     0,   395,     0,   396,
03795        0,     0,   397,   398,   125,     0,   317,   127,   128,     0,
03796        0,     0,     0,   129,     0,     0,     0,   130,   131,   318,
03797        0,   133,     0,     0,   319,   320,   134,     0,   135,   136,
03798        0,   137,     0,     0,     0,   138,   321,   322,   323,   139,
03799        0,   324,   140,     0,   141,   325,     0,   326,   144,     0,
03800      145,   146,   147,   148,   149,   150,     0,   151,   152,     0,
03801      153,   327,   328,     0,     0,   154,   329,   330,     0,   331,
03802      155,   156,   157,   332,   333,   334,     0,     0,     0,     0,
03803      335,   160,   336,     0,     0,   337,     0,     0,     0,     0,
03804      161,   162,     0,     0,   163,     0,     0,   164,   165,   166,
03805        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
03806      172,     0,   173,   174,   338,   339,   175,   340,   341,   176,
03807      177,   178,   342,   179,     0,     0,     0,   180,   181,     0,
03808      182,     0,   183,     0,   343,   184,     0,   344,     0,     0,
03809        0,   345,    86,   186,     0,    88,   346,     0,   187,   188,
03810        0,     0,     0,     0,     0,   347,   835,     0,     0,     0,
03811        0,   189,     0,     0,     0,   190,     0,   349,   191,     0,
03812        0,   350,   192,     0,     0,     0,     0,     0,   193,   194,
03813        0,   195,   351,     0,     0,   352,   196,   197,   198,   353,
03814        0,     0,   354,   355,   201,     0,   202,   356,   357,   204,
03815      205,   206,     0,     0,   207,   208,   209,     0,   359,   210,
03816      360,   361,     0,   211,   212,     0,   213,   214,   215,   216,
03817        0,     0,     0,     0,     0,     0,     0,     0,   217,   362,
03818        0,   218,     0,   219,   220,   363,   222,     0,     0,     0,
03819        0,     0,   223,     0,     0,     0,     0,   224,   364,   365,
03820        0,     0,     0,   225,     0,     0,   366,   226,   227,   228,
03821      229,   230,   367,   232,     0,   368,   234,     0,     0,     0,
03822      235,   236,   237,   238,     0,     0,   239,     0,   240,   241,
03823      242,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03824        0,   243,   244,   369,   370,   245,     0,     0,   246,   371,
03825      248,   372,   373,   249,   374,   250,   251,     0,     0,   252,
03826        0,   375,   253,     0,   254,   376,   377,   378,     0,     0,
03827      257,   379,   380,   381,   259,   382,   260,   261,     0,     0,
03828        0,   262,     0,     0,     0,     0,   383,     0,     0,   384,
03829      385,   386,   387,   265,     0,     0,   266,   388,     0,   389,
03830      390,   267,   268,     0,     0,     0,     0,   269,     0,     0,
03831        0,   391,     0,     0,     0,     0,     0,     0,     0,     0,
03832        0,   392,   393,     0,     0,     0,     0,   394,     0,   395,
03833        0,   396,     0,     0,   397,   398,   125,     0,   126,   127,
03834      128,     0,     0,     0,     0,   129,     0,     0,     0,   130,
03835      131,   132,     0,   133,     0,     0,     0,     0,   134,     0,
03836      135,   136,     0,   137,     0,     0,     0,   138,     0,     0,
03837        0,   139,     0,     0,   140,     0,   141,   142,     0,   143,
03838      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
03839      152,     0,   153,     0,     0,     0,     0,   154,     0,     0,
03840        0,     0,   155,   156,   157,     0,     0,   158,     0,     0,
03841        0,     0,   159,   160,     0,     0,     0,     0,     0,     0,
03842        0,     0,   161,   162,     0,     0,   163,     0,     0,   164,
03843      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
03844      171,     0,   172,     0,   173,   174,     0,     0,   175,     0,
03845        0,   176,   177,   178,     0,   179,     0,     0,     0,   180,
03846      181,     0,   182,     0,   183,     0,     0,   184,     0,     0,
03847        0,     0,     0,   185,    86,   186,     0,    88,     0,     0,
03848      187,   188,     0,     0,     0,     0,     0,     0,     0,     0,
03849        0,     0,     0,   189,     0,     0,     0,   190,     0,     0,
03850      191,     0,     0,     0,   192,     0,     0,     0,     0,     0,
03851      193,   194,     0,   195,     0,     0,     0,     0,   196,   197,
03852      198,   199,     0,     0,   200,     0,   201,     0,   202,     0,
03853      203,   204,   205,   206,     0,     0,   207,   208,   209,     0,
03854        0,   210,     0,     0,     0,   211,   212,     0,   213,   214,
03855      215,   216,     0,     0,     0,     0,     0,     0,     0,     0,
03856      217,     0,     0,   218,     0,   219,   220,   221,   222,     0,
03857        0,     0,     0,     0,   223,     0,     0,     0,     0,   224,
03858        0,     0,     0,     0,     0,   225,     0,     0,     0,   226,
03859      227,   228,   229,   230,   231,   232,     0,   233,   234,     0,
03860        0,     0,   235,   236,   237,   238,     0,     0,   239,     0,
03861      240,   241,   242,     0,     0,     0,     0,     0,     0,     0,
03862        0,     0,     0,   243,   244,     0,     0,   245,     0,     0,
03863      246,   247,   248,     0,     0,   249,     0,   250,   251,     0,
03864        0,   252,     0,     0,   253,     0,   254,     0,   255,   256,
03865        0,     0,   257,     0,     0,   258,   259,     0,   260,   261,
03866        0,     0,     0,   262,     0,     0,     0,     0,   263,     0,
03867        0,     0,     0,   264,     0,   265,     0,     0,   266,     0,
03868        0,     0,     0,   267,   268,     0,     0,     0,     0,   269,
03869        0,     0,     0,   270,     0,     0,   125,     0,   126,   127,
03870      128,     0,     0,     0,     0,   129,     0,     0,     0,   130,
03871      131,   132,  2075,   133,     0,     0,   397,  2076,   134,     0,
03872      135,   136,     0,   137,     0,     0,     0,   138,     0,     0,
03873        0,   139,     0,     0,   140,     0,   141,   142,     0,   143,
03874      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
03875      152,     0,   153,     0,     0,     0,     0,   154,     0,     0,
03876        0,     0,   155,   156,   157,     0,     0,   158,     0,     0,
03877        0,     0,   159,   160,     0,     0,     0,     0,     0,     0,
03878        0,     0,   161,   162,     0,     0,   163,     0,     0,   164,
03879      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
03880      171,     0,   172,     0,   173,   174,     0,     0,   175,     0,
03881        0,   176,   177,   178,     0,   179,     0,     0,     0,   180,
03882      181,     0,   182,     0,   183,     0,     0,   184,     0,     0,
03883        0,     0,     0,   185,    86,   186,     0,    88,     0,     0,
03884      187,   188,     0,     0,     0,     0,     0,     0,     0,     0,
03885        0,     0,     0,   189,     0,     0,     0,   190,     0,     0,
03886      191,     0,     0,     0,   192,     0,     0,     0,     0,     0,
03887      193,   194,     0,   195,     0,     0,     0,     0,   196,   197,
03888      198,   199,     0,     0,   200,     0,   201,     0,   202,     0,
03889      203,   204,   205,   206,     0,     0,   207,   208,   209,     0,
03890        0,   210,     0,     0,     0,   211,   212,     0,   213,   214,
03891      215,   216,     0,     0,     0,     0,     0,     0,     0,     0,
03892      217,     0,     0,   218,     0,   219,   220,   221,   222,     0,
03893        0,     0,     0,     0,   223,     0,     0,     0,     0,   224,
03894        0,     0,     0,     0,     0,   225,     0,     0,     0,   226,
03895      227,   228,   229,   230,   231,   232,     0,   233,   234,     0,
03896        0,     0,   235,   236,   237,   238,     0,     0,   239,     0,
03897      240,   241,   242,     0,     0,     0,     0,     0,     0,     0,
03898        0,     0,     0,   243,   244,     0,     0,   245,     0,     0,
03899      246,   247,   248,     0,     0,   249,     0,   250,   251,     0,
03900        0,   252,     0,     0,   253,     0,   254,     0,   255,   256,
03901        0,     0,   257,     0,     0,   258,   259,     0,   260,   261,
03902        0,     0,     0,   262,     0,     0,     0,     0,   263,     0,
03903        0,     0,     0,   264,     0,   265,     0,     0,   266,     0,
03904        0,     0,     0,   267,   268,     0,     0,     0,   125,   269,
03905      126,   127,   128,   270,     0,     0,     0,   129,     0,     0,
03906        0,   130,   131,   132,     0,   133,     0,     0,     0,     0,
03907      134,     0,   135,   136,     0,   137,   397,  2076,     0,   138,
03908        0,     0,     0,   139,     0,     0,   140,     0,   141,   142,
03909        0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
03910        0,   151,   152,  1273,   153,     0,     0,     0,     0,   154,
03911        0,     0,     0,     0,   155,   156,   157,     0,     0,   158,
03912        0,     0,     0,     0,   159,   160,     0,     0,     0,     0,
03913        0,     0,     0,     0,   161,   162,     0,     0,   163,     0,
03914        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
03915        0,   170,   171,     0,   172,     0,   173,   174,     0,     0,
03916      175,     0,     0,   176,   177,   178,     0,   179,     0,     0,
03917        0,   180,   181,     0,   182,     0,   183,     0,     0,   184,
03918        0,     0,     0,     0,     0,   185,    86,   186,     0,    88,
03919        0,     0,   187,   188,  1274,     0,     0,     0,     0,     0,
03920        0,     0,     0,     0,     0,   189,     0,     0,     0,   190,
03921     1275,     0,   191,     0,     0,     0,   192,     0,  1114,     0,
03922        0,     0,   193,   194,     0,   195,     0,     0,     0,     0,
03923      196,   197,   198,   199,     0,     0,   200,     0,   201,     0,
03924      202,     0,   203,   204,   205,   206,     0,     0,   207,   208,
03925      209,     0,     0,   210,     0,     0,     0,   211,   212,     0,
03926      213,   214,   215,   216,     0,     0,     0,     0,     0,     0,
03927        0,     0,   217,     0,     0,   218,     0,   219,   220,   221,
03928      222,     0,     0,     0,     0,     0,   223,     0,     0,     0,
03929        0,   224,     0,     0,     0,     0,     0,   225,     0,     0,
03930        0,   226,   227,   228,   229,   230,   231,   232,     0,   233,
03931      234,   850,     0,     0,   235,   236,   237,   238,     0,     0,
03932      239,     0,   240,   241,   242,     0,     0,     0,     0,     0,
03933        0,     0,     0,     0,     0,   243,   244,     0,     0,   245,
03934        0,     0,   246,   247,   248,     0,     0,   249,     0,   250,
03935      251,     0,     0,   252,     0,     0,   253,     0,   254,     0,
03936      255,   256,     0,     0,   257,     0,     0,   258,   259,     0,
03937      260,   261,     0,     0,     0,   262,     0,     0,     0,     0,
03938      263,     0,     0,     0,     0,   264,     0,   265,     0,   125,
03939      266,   126,   127,   128,     0,   267,   268,     0,   129,     0,
03940        0,   269,   130,   131,   132,   270,   133,     0,     0,     0,
03941        0,   134,     0,   135,   136,     0,   137,     0,     0,     0,
03942      138,     0,     0,     0,   139,     0,     0,   140,  1308,   141,
03943      142,     0,   143,   144,     0,   145,   146,   147,   148,   149,
03944      150,     0,   151,   152,  1273,   153,     0,     0,     0,     0,
03945      154,     0,     0,     0,     0,   155,   156,   157,     0,     0,
03946      158,     0,     0,     0,     0,   159,   160,     0,     0,     0,
03947        0,     0,     0,     0,     0,   161,   162,     0,     0,   163,
03948        0,     0,   164,   165,   166,     0,     0,   167,     0,   168,
03949      169,     0,   170,   171,     0,   172,     0,   173,   174,     0,
03950        0,   175,     0,     0,   176,   177,   178,     0,   179,     0,
03951        0,     0,   180,   181,     0,   182,     0,   183,     0,     0,
03952      184,     0,     0,     0,     0,     0,   185,    86,   186,     0,
03953       88,     0,     0,   187,   188,  1274,     0,     0,     0,     0,
03954        0,     0,     0,     0,     0,     0,   189,     0,     0,     0,
03955      190,  1275,     0,   191,     0,     0,     0,   192,     0,     0,
03956        0,     0,     0,   193,   194,     0,   195,     0,     0,     0,
03957        0,   196,   197,   198,   199,     0,     0,   200,     0,   201,
03958        0,   202,     0,   203,   204,   205,   206,     0,     0,   207,
03959      208,   209,     0,     0,   210,     0,     0,     0,   211,   212,
03960        0,   213,   214,   215,   216,     0,     0,     0,     0,     0,
03961        0,     0,     0,   217,     0,     0,   218,     0,   219,   220,
03962      221,   222,     0,     0,     0,     0,     0,   223,     0,     0,
03963        0,     0,   224,     0,     0,     0,     0,     0,   225,     0,
03964        0,     0,   226,   227,   228,   229,   230,   231,   232,     0,
03965      233,   234,     0,     0,     0,   235,   236,   237,   238,     0,
03966        0,   239,     0,   240,   241,   242,     0,     0,     0,     0,
03967        0,     0,     0,     0,     0,     0,   243,   244,     0,     0,
03968      245,     0,     0,   246,   247,   248,     0,     0,   249,     0,
03969      250,   251,     0,     0,   252,     0,     0,   253,     0,   254,
03970        0,   255,   256,     0,     0,   257,     0,     0,   258,   259,
03971        0,   260,   261,     0,     0,     0,   262,     0,     0,     0,
03972        0,   263,     0,     0,     0,     0,   264,     0,   265,     0,
03973      125,   266,   126,   127,   128,     0,   267,   268,     0,   129,
03974        0,     0,   269,   130,   131,   132,   270,   133,     0,     0,
03975        0,     0,   134,     0,   135,   136,     0,   137,     0,     0,
03976        0,   138,     0,     0,     0,   139,     0,     0,   140,  1308,
03977      141,   142,     0,   143,   144,     0,   145,   146,   147,   148,
03978      149,   150,     0,   151,   152,     0,   153,     0,     0,     0,
03979        0,   154,     0,     0,     0,     0,   155,   156,   157,     0,
03980        0,   158,     0,     0,     0,     0,   159,   160,     0,     0,
03981        0,     0,     0,     0,     0,     0,   161,   162,     0,     0,
03982      163,     0,     0,   164,   165,   166,     0,     0,   167,     0,
03983      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
03984        0,     0,   175,     0,     0,   176,   177,   178,     0,   179,
03985        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
03986        0,   184,     0,     0,     0,     0,     0,   185,    86,   186,
03987        0,    88,     0,     0,   187,   188,     0,     0,     0,     0,
03988        0,     0,     0,     0,     0,     0,     0,   189,     0,     0,
03989        0,   190,     0,     0,   191,     0,     0,     0,   192,     0,
03990        0,     0,     0,     0,   193,   194,     0,   195,     0,     0,
03991        0,     0,   196,   197,   198,   199,     0,     0,   200,     0,
03992      201,     0,   202,     0,   203,   204,   205,   206,     0,     0,
03993      207,   208,   209,     0,     0,   210,     0,     0,     0,   211,
03994      212,     0,   213,   214,   215,   216,     0,     0,     0,     0,
03995        0,     0,     0,     0,   217,     0,     0,   218,     0,   219,
03996      220,   221,   222,     0,     0,     0,     0,     0,   223,     0,
03997        0,     0,     0,   224,     0,     0,     0,     0,     0,   225,
03998        0,     0,     0,   226,   227,   228,   229,   230,   231,   232,
03999        0,   233,   234,   850,     0,     0,   235,   236,   237,   238,
04000        0,     0,   239,     0,   240,   241,   242,     0,     0,     0,
04001        0,     0,     0,     0,     0,     0,     0,   243,   244,     0,
04002        0,   245,     0,     0,   246,   247,   248,     0,     0,   249,
04003        0,   250,   251,     0,     0,   252,     0,     0,   253,     0,
04004      254,     0,   255,   256,     0,     0,   257,     0,     0,   258,
04005      259,     0,   260,   261,     0,     0,     0,   262,     0,     0,
04006        0,     0,   263,     0,     0,     0,     0,   264,     0,   265,
04007        0,     0,   266,     0,     0,     0,     0,   267,   268,     0,
04008        0,     0,     0,   269,     0,     0,     0,   270,     0,     0,
04009      125,     0,   126,   127,   128,     0,     0,     0,     0,   129,
04010        0,     0,     0,   130,   131,   132,  1040,   133,     0,     0,
04011      397,     0,   134,     0,   135,   136,     0,   137,     0,     0,
04012        0,   138,     0,     0,     0,   139,     0,     0,   140,     0,
04013      141,   142,     0,   143,   144,     0,   145,   146,   147,   148,
04014      149,   150,     0,   151,   152,     0,   153,     0,     0,     0,
04015        0,   154,     0,     0,     0,     0,   155,   156,   157,     0,
04016        0,   158,     0,     0,     0,     0,   159,   160,     0,     0,
04017        0,     0,     0,     0,     0,     0,   161,   162,     0,     0,
04018      163,     0,     0,   164,   165,   166,     0,     0,   167,     0,
04019      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
04020        0,     0,   175,     0,     0,   176,   177,   178,     0,   179,
04021        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
04022        0,   184,     0,     0,     0,     0,     0,   185,    86,   186,
04023        0,    88,     0,     0,   187,   188,     0,     0,     0,     0,
04024        0,     0,     0,   421,     0,     0,     0,   189,     0,     0,
04025        0,   190,     0,     0,   191,     0,     0,     0,   192,     0,
04026        0,     0,     0,     0,   193,   194,     0,   195,     0,     0,
04027        0,     0,   196,   197,   198,   199,     0,     0,   200,     0,
04028      201,     0,   202,     0,   203,   204,   205,   206,     0,     0,
04029      207,   208,   209,     0,     0,   210,     0,     0,     0,   211,
04030      212,     0,   213,   214,   215,   216,     0,     0,     0,     0,
04031        0,     0,     0,     0,   217,     0,     0,   218,     0,   219,
04032      220,   221,   222,     0,     0,     0,     0,     0,   223,     0,
04033        0,     0,     0,   224,     0,     0,     0,     0,     0,   225,
04034        0,     0,     0,   226,   227,   228,   229,   230,   231,   232,
04035        0,   233,   234,     0,     0,     0,   235,   236,   237,   238,
04036        0,     0,   239,     0,   240,   241,   242,     0,     0,     0,
04037        0,     0,     0,     0,     0,     0,     0,   243,   244,     0,
04038        0,   245,     0,     0,   246,   247,   248,     0,     0,   249,
04039        0,   250,   251,     0,     0,   252,     0,     0,   253,     0,
04040      254,     0,   255,   256,     0,     0,   257,     0,     0,   258,
04041      259,     0,   260,   261,     0,     0,     0,   262,     0,     0,
04042        0,     0,   263,     0,     0,     0,     0,   264,     0,   265,
04043        0,   125,   266,   126,   127,   128,     0,   267,   268,     0,
04044      129,     0,     0,   269,   130,   131,   132,   270,   133,     0,
04045        0,     0,     0,   134,     0,   135,   136,     0,   137,     0,
04046        0,     0,   138,     0,     0,     0,   139,     0,     0,   140,
04047      282,   141,   142,     0,   143,   144,     0,   145,   146,   147,
04048      148,   149,   150,     0,   151,   152,     0,   153,     0,     0,
04049        0,     0,   154,     0,     0,     0,     0,   155,   156,   157,
04050        0,     0,   158,     0,     0,     0,     0,   159,   160,     0,
04051        0,     0,     0,     0,     0,     0,     0,   161,   162,     0,
04052        0,   163,     0,     0,   164,   165,   166,     0,     0,   167,
04053        0,   168,   169,     0,   170,   171,     0,   172,     0,   173,
04054      174,     0,     0,   175,     0,     0,   176,   177,   178,     0,
04055      179,     0,     0,     0,   180,   181,     0,   182,     0,   183,
04056        0,     0,   184,     0,     0,     0,     0,     0,   185,    86,
04057      186,     0,    88,     0,     0,   187,   188,     0,     0,     0,
04058        0,     0,     0,     0,     0,     0,     0,     0,   189,     0,
04059        0,     0,   190,     0,     0,   191,     0,     0,     0,   192,
04060        0,     0,     0,     0,     0,   193,   194,     0,   195,     0,
04061        0,     0,     0,   196,   197,   198,   199,     0,     0,   200,
04062        0,   201,     0,   202,     0,   203,   204,   205,   206,     0,
04063        0,   207,   208,   209,     0,     0,   210,     0,     0,     0,
04064      211,   212,     0,   213,   214,   215,   216,     0,     0,     0,
04065        0,     0,     0,     0,     0,   217,     0,     0,   218,     0,
04066      219,   220,   221,   222,     0,     0,     0,     0,     0,   223,
04067        0,     0,     0,     0,   224,     0,     0,     0,     0,     0,
04068      225,     0,     0,     0,   226,   227,   228,   229,   230,   231,
04069      232,     0,   233,   234,     0,     0,     0,   235,   236,   237,
04070      238,     0,     0,   239,     0,   240,   241,   242,     0,     0,
04071        0,     0,     0,     0,     0,     0,     0,     0,   243,   244,
04072        0,     0,   245,     0,     0,   246,   247,   248,     0,     0,
04073      249,     0,   250,   251,     0,     0,   252,     0,     0,   253,
04074        0,   254,     0,   255,   256,     0,     0,   257,     0,     0,
04075      258,   259,     0,   260,   261,     0,     0,     0,   262,     0,
04076        0,     0,     0,   263,     0,     0,     0,     0,   264,     0,
04077      265,     0,   125,   266,   126,   127,   128,     0,   267,   268,
04078        0,   129,     0,     0,   269,   130,   131,   132,   270,   133,
04079        0,     0,     0,     0,   134,     0,   135,   136,     0,   137,
04080        0,     0,     0,   138,     0,     0,  1307,   139,     0,     0,
04081      140,  1308,   141,   142,     0,   143,   144,     0,   145,   146,
04082      147,   148,   149,   150,     0,   151,   152,     0,   153,     0,
04083        0,     0,     0,   154,     0,     0,     0,     0,   155,   156,
04084      157,     0,     0,   158,     0,     0,     0,     0,   159,   160,
04085        0,     0,     0,     0,     0,     0,     0,     0,   161,   162,
04086        0,     0,   163,     0,     0,   164,   165,   166,     0,     0,
04087      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
04088      173,   174,     0,     0,   281,     0,     0,   176,   177,   178,
04089        0,   179,     0,     0,     0,   180,   181,     0,   182,     0,
04090      183,     0,     0,   184,     0,     0,     0,     0,     0,   185,
04091       86,   186,     0,    88,     0,     0,   187,   188,     0,     0,
04092        0,     0,     0,     0,     0,     0,     0,     0,     0,   189,
04093        0,     0,     0,   190,     0,     0,   191,     0,     0,     0,
04094      192,     0,     0,     0,     0,     0,   193,   194,     0,   195,
04095        0,     0,     0,     0,   196,   197,   198,   199,     0,     0,
04096      200,     0,   201,     0,   202,     0,   203,   204,   205,   206,
04097        0,     0,   207,   208,   209,     0,     0,   210,     0,     0,
04098        0,   211,   212,     0,   213,   214,   215,   216,     0,     0,
04099        0,     0,     0,     0,     0,     0,   217,     0,     0,   218,
04100        0,   219,   220,   221,   222,     0,     0,     0,     0,     0,
04101      223,     0,     0,     0,     0,   224,     0,     0,     0,     0,
04102        0,   225,     0,     0,     0,   226,   227,   228,   229,   230,
04103      231,   232,     0,   233,   234,     0,     0,     0,   235,   236,
04104      237,   238,     0,     0,   239,     0,   240,   241,   242,     0,
04105        0,     0,     0,     0,     0,     0,     0,     0,     0,   243,
04106      244,     0,     0,   245,     0,     0,   246,   247,   248,     0,
04107        0,   249,     0,   250,   251,     0,     0,   252,     0,     0,
04108      253,     0,   254,     0,   255,   256,     0,     0,   257,     0,
04109        0,   258,   259,     0,   260,   261,     0,     0,     0,   262,
04110        0,     0,     0,     0,   263,     0,     0,     0,     0,   264,
04111        0,   265,     0,   125,   266,   126,   127,   128,     0,   267,
04112      268,     0,   129,     0,     0,   269,   130,   131,   132,   270,
04113      133,     0,     0,     0,     0,   134,     0,   135,   136,     0,
04114      137,     0,     0,     0,   138,     0,     0,     0,   139,     0,
04115        0,   140,   282,   141,   142,     0,   143,   144,     0,   145,
04116      146,   147,   148,   149,   150,     0,   151,   152,     0,   153,
04117        0,     0,     0,     0,   154,     0,     0,     0,     0,   155,
04118      156,   157,     0,     0,   158,     0,     0,     0,     0,   159,
04119      160,     0,     0,     0,     0,     0,     0,     0,     0,   161,
04120      162,     0,     0,   163,     0,     0,   164,   165,   166,     0,
04121        0,   167,     0,   168,   169,     0,   170,   171,     0,   172,
04122        0,   173,   174,     0,     0,   175,     0,     0,   176,   177,
04123      178,     0,   179,     0,     0,     0,   180,   181,     0,   182,
04124        0,   183,     0,     0,   184,     0,     0,     0,     0,     0,
04125      185,    86,   186,     0,    88,     0,     0,   187,   188,     0,
04126        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04127      189,     0,     0,     0,   190,     0,     0,   191,     0,     0,
04128        0,   192,     0,     0,     0,     0,     0,   193,   194,     0,
04129      195,     0,     0,     0,     0,   196,   197,   198,   199,     0,
04130        0,   200,     0,   201,     0,   202,     0,   203,   204,   205,
04131      206,     0,     0,   207,   208,   209,     0,     0,   210,     0,
04132        0,     0,   211,   212,     0,   213,   214,   215,   216,     0,
04133        0,     0,     0,     0,     0,     0,     0,   217,     0,     0,
04134      218,     0,   219,   220,   221,   222,     0,     0,     0,     0,
04135        0,   223,     0,     0,     0,     0,   224,     0,     0,     0,
04136        0,     0,   225,     0,     0,     0,   226,   227,   228,   229,
04137      230,   231,   232,     0,   233,   234,     0,     0,     0,   235,
04138      236,   237,   238,     0,     0,   239,     0,   240,   241,   242,
04139        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04140      243,   244,     0,     0,   245,     0,     0,   246,   247,   248,
04141        0,     0,   249,     0,   250,   251,     0,     0,   252,     0,
04142        0,   253,     0,   254,     0,   255,   256,     0,     0,   257,
04143        0,     0,   258,   259,     0,   260,   261,     0,     0,     0,
04144      262,     0,     0,     0,     0,   263,     0,     0,     0,     0,
04145      264,     0,   265,     0,   125,   266,   126,   127,   128,     0,
04146      267,   268,     0,   129,     0,     0,   269,   130,   131,   132,
04147      270,   133,     0,     0,     0,     0,   134,     0,   135,   136,
04148        0,   137,     0,     0,     0,   138,     0,     0,     0,   139,
04149        0,     0,   140,   282,   141,   142,     0,   143,   144,     0,
04150      145,   146,   147,   148,   149,   150,     0,   151,   152,     0,
04151      153,     0,     0,     0,     0,   154,     0,     0,     0,     0,
04152      155,   156,   157,     0,     0,   158,     0,     0,     0,     0,
04153      159,   160,     0,     0,     0,     0,     0,     0,     0,     0,
04154      161,   162,     0,     0,   163,     0,     0,   164,   165,   166,
04155        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
04156      172,     0,   173,   174,     0,     0,   175,     0,     0,   176,
04157      177,   178,     0,   179,     0,     0,     0,   180,   181,     0,
04158      182,     0,   183,     0,     0,   184,     0,     0,     0,     0,
04159        0,   185,    86,   186,     0,    88,     0,     0,   187,   188,
04160        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04161        0,   189,     0,     0,     0,   190,     0,     0,   191,     0,
04162        0,     0,   192,     0,     0,     0,     0,     0,   193,   194,
04163        0,   195,     0,     0,     0,     0,   196,   197,   198,   199,
04164        0,     0,   200,     0,   201,     0,   202,     0,   203,   204,
04165      205,   206,     0,     0,   207,   208,   209,     0,     0,   210,
04166        0,     0,     0,   211,   212,     0,   213,   214,   215,   216,
04167        0,     0,     0,     0,     0,     0,     0,     0,   217,     0,
04168        0,   218,     0,   219,   220,   221,   222,     0,     0,     0,
04169        0,     0,   223,     0,     0,     0,     0,   224,     0,     0,
04170        0,     0,     0,   225,     0,     0,     0,   226,   227,   228,
04171      229,   230,   231,   232,     0,   233,   234,     0,     0,     0,
04172      235,   236,   237,   238,     0,     0,   239,     0,   240,   241,
04173      242,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04174        0,   243,   244,     0,     0,   245,     0,     0,   246,   247,
04175      248,     0,     0,   249,     0,   250,   251,     0,     0,   252,
04176        0,     0,   253,     0,   254,     0,   255,   256,     0,     0,
04177      257,     0,     0,   258,   259,     0,   260,   261,     0,     0,
04178        0,   262,     0,     0,     0,     0,   263,     0,     0,     0,
04179        0,   264,     0,   265,     0,   125,   266,   126,   127,   128,
04180        0,   267,   268,     0,   129,     0,     0,   269,   130,   131,
04181      132,   270,   133,     0,     0,     0,     0,   134,     0,   135,
04182      136,     0,   137,     0,     0,     0,   138,     0,     0,     0,
04183      139,     0,     0,   140,   397,   141,   142,     0,   143,   144,
04184        0,   145,   146,   147,   148,   149,   150,     0,   151,   152,
04185        0,   153,     0,     0,     0,     0,   154,     0,     0,     0,
04186        0,   155,   156,   157,     0,     0,   158,     0,     0,     0,
04187        0,   159,   160,     0,     0,     0,     0,     0,     0,     0,
04188        0,   161,   162,     0,     0,   163,     0,     0,   164,   165,
04189      166,     0,     0,   167,     0,   168,   169,     0,   170,   171,
04190        0,   172,     0,   173,   174,     0,     0,   175,     0,     0,
04191      176,   177,   178,     0,   179,     0,     0,     0,   180,   181,
04192        0,   182,     0,   183,     0,     0,   184,     0,     0,     0,
04193        0,     0,   185,    86,   186,     0,    88,     0,     0,   187,
04194      188,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04195        0,     0,   189,     0,     0,     0,   190,     0,     0,   191,
04196        0,     0,     0,   192,     0,     0,     0,     0,     0,   193,
04197      194,     0,   195,     0,     0,     0,     0,   196,   197,   198,
04198      199,     0,     0,   200,     0,   201,     0,   202,     0,   203,
04199      204,   205,   206,     0,     0,   207,   208,   209,     0,     0,
04200      210,     0,     0,     0,   211,   212,     0,   213,   214,   215,
04201      216,     0,     0,     0,     0,     0,     0,     0,     0,   217,
04202        0,     0,   218,     0,   219,   220,   221,   222,     0,     0,
04203        0,     0,     0,   223,     0,     0,     0,     0,   224,     0,
04204        0,     0,     0,     0,   225,     0,     0,     0,   226,   227,
04205      228,   229,   230,   231,   232,     0,   233,   234,     0,     0,
04206        0,   235,   236,   237,   238,     0,     0,   239,     0,   240,
04207      241,   242,     0,     0,     0,     0,     0,     0,     0,     0,
04208        0,     0,   243,   244,     0,     0,   245,     0,     0,   246,
04209      247,   248,     0,     0,   249,     0,   250,   251,     0,     0,
04210      252,     0,     0,   253,     0,   254,     0,   255,   256,     0,
04211        0,   257,     0,     0,   258,   259,     0,   260,   261,     0,
04212        0,     0,   262,     0,     0,     0,     0,   263,     0,     0,
04213        0,     0,   264,     0,   265,     0,   125,   266,   126,   127,
04214      128,     0,   267,   268,     0,   129,     0,     0,   269,   130,
04215      131,   132,   270,   133,     0,     0,     0,     0,   134,     0,
04216      135,   136,     0,   137,     0,     0,     0,   138,     0,     0,
04217        0,   139,     0,     0,   140,  1308,   141,   142,     0,   143,
04218      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
04219      152,     0,   153,     0,     0,     0,     0,   154,     0,     0,
04220        0,     0,   155,   156,   157,     0,     0,   158,     0,     0,
04221        0,     0,   159,   160,     0,     0,     0,     0,     0,     0,
04222        0,     0,   161,   162,     0,     0,   163,     0,     0,   164,
04223      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
04224      171,     0,   172,     0,   173,   174,     0,     0,   175,     0,
04225        0,   176,   177,   178,     0,   179,     0,     0,     0,   180,
04226      181,     0,   182,     0,   183,     0,     0,   184,     0,     0,
04227        0,     0,     0,   185,    86,   186,     0,    88,     0,     0,
04228      187,   188,     0,     0,     0,     0,     0,     0,     0,     0,
04229        0,     0,     0,   189,     0,     0,     0,   190,     0,     0,
04230      191,     0,     0,     0,   192,     0,     0,     0,     0,     0,
04231      193,   194,     0,   195,     0,     0,     0,     0,   196,   197,
04232      198,   199,     0,     0,   200,     0,   201,     0,   202,     0,
04233      203,   204,   205,   206,     0,     0,   207,   208,   209,     0,
04234        0,   210,     0,     0,     0,   211,   212,     0,   213,   214,
04235      215,   216,     0,     0,     0,     0,     0,     0,     0,     0,
04236      217,     0,     0,   218,     0,   219,   220,   221,   222,     0,
04237        0,     0,     0,     0,   223,     0,     0,     0,     0,   224,
04238        0,     0,     0,     0,     0,   225,     0,     0,     0,   226,
04239      227,   228,   229,   230,   231,   232,     0,   233,   234,     0,
04240        0,     0,   235,   236,   237,   238,     0,     0,   239,     0,
04241      240,   241,   242,     0,     0,     0,     0,     0,     0,     0,
04242        0,     0,     0,   243,   244,     0,     0,   245,     0,     0,
04243      246,   247,   248,     0,     0,   249,     0,   250,   251,     0,
04244        0,   252,     0,     0,   253,     0,   254,     0,   255,   256,
04245        0,     0,   257,     0,     0,   258,   259,     0,   260,   261,
04246        0,     0,     0,   262,     0,     0,     0,     0,   263,     0,
04247        0,     0,     0,   264,     0,   265,     0,   125,   266,   126,
04248      127,   128,     0,   267,   268,     0,   129,     0,     0,   269,
04249      130,   131,   132,   270,   133,     0,     0,     0,     0,   134,
04250        0,   135,   136,     0,   137,  1250,     0,     0,   138,     0,
04251        0,     0,   139,     0,     0,   140,     0,   141,   142,     0,
04252      143,   144,     0,   145,   146,   147,   148,   149,   150,     0,
04253      151,   152,     0,   153,     0,     0,     0,     0,   154,     0,
04254        0,     0,     0,   155,   156,   157,     0,     0,   158,     0,
04255        0,     0,     0,   159,   160,     0,     0,     0,     0,     0,
04256        0,     0,     0,   161,   162,     0,     0,   163,     0,     0,
04257      164,   165,   166,     0,     0,   167,     0,   168,   169,     0,
04258      170,   171,     0,   172,     0,   173,   174,     0,     0,   175,
04259        0,     0,   176,   177,   178,     0,   179,     0,     0,     0,
04260      180,   181,     0,   182,     0,   183,     0,     0,   184,     0,
04261        0,     0,     0,     0,   185,    86,   186,     0,    88,     0,
04262        0,   187,   188,     0,     0,     0,     0,     0,     0,     0,
04263        0,     0,     0,     0,   189,     0,     0,     0,   190,     0,
04264        0,   191,     0,     0,     0,   192,     0,     0,     0,     0,
04265        0,   193,   194,     0,   195,     0,     0,     0,     0,   196,
04266      197,   198,   199,     0,     0,   200,     0,   201,     0,   202,
04267        0,   203,   204,   205,   206,     0,     0,   207,   208,   209,
04268        0,     0,   210,     0,     0,     0,   211,   212,     0,   213,
04269      214,   215,   216,     0,     0,     0,     0,     0,     0,     0,
04270        0,   217,     0,     0,   218,     0,   219,   220,   221,   222,
04271        0,     0,     0,     0,     0,   223,     0,     0,     0,     0,
04272      224,     0,     0,     0,     0,     0,   225,     0,     0,     0,
04273      226,   227,   228,   229,   230,   231,   232,     0,   233,   234,
04274        0,     0,     0,   235,   236,   237,   238,     0,     0,   239,
04275        0,   240,   241,   242,     0,     0,     0,     0,     0,     0,
04276        0,     0,     0,     0,   243,   244,     0,     0,   245,     0,
04277        0,   246,   247,   248,     0,     0,   249,     0,   250,   251,
04278        0,     0,   252,     0,     0,   253,     0,   254,     0,   255,
04279      256,     0,     0,   257,     0,     0,   258,   259,     0,   260,
04280      261,     0,     0,     0,   262,     0,     0,     0,     0,   263,
04281        0,     0,     0,     0,   264,     0,   265,     0,   125,   266,
04282      126,   127,   128,     0,   267,   268,     0,   129,     0,     0,
04283      269,   130,   131,   132,   270,   133,     0,     0,     0,   668,
04284      134,     0,   135,   136,     0,   137,  1586,     0,     0,   138,
04285        0,     0,     0,   139,     0,     0,   140,     0,   141,   142,
04286        0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
04287        0,   151,   152,     0,   153,     0,     0,     0,     0,   154,
04288        0,     0,     0,     0,   155,   156,   157,     0,     0,   158,
04289        0,     0,     0,     0,   159,   160,     0,     0,     0,     0,
04290        0,     0,     0,     0,   161,   162,     0,     0,   163,     0,
04291        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
04292        0,   170,   171,     0,   172,     0,   173,   174,     0,     0,
04293      175,     0,     0,   176,   177,   178,     0,   179,     0,     0,
04294        0,   180,   181,     0,   182,     0,   183,     0,     0,   184,
04295        0,   669,     0,     0,     0,   185,    86,   186,     0,    88,
04296        0,     0,   187,   188,     0,     0,     0,     0,     0,     0,
04297        0,     0,     0,     0,     0,   189,     0,     0,     0,   190,
04298        0,     0,   191,     0,     0,     0,   192,     0,     0,     0,
04299        0,     0,   193,   194,     0,   195,     0,     0,     0,     0,
04300      196,   197,   198,   199,     0,     0,   200,     0,   201,     0,
04301      202,     0,   203,   204,   205,   206,     0,     0,   207,   208,
04302      209,     0,     0,   210,     0,     0,     0,   211,   212,     0,
04303      213,   214,   215,   216,     0,     0,     0,     0,     0,     0,
04304        0,     0,   217,     0,     0,   218,     0,   219,   220,   221,
04305      222,     0,     0,     0,     0,     0,   223,     0,     0,     0,
04306        0,   224,     0,     0,     0,     0,     0,   225,     0,     0,
04307        0,   226,   227,   228,   229,   230,   231,   232,     0,   233,
04308      234,     0,     0,     0,   235,   236,   237,   238,     0,     0,
04309      239,     0,   240,   241,   242,     0,     0,     0,     0,     0,
04310        0,     0,     0,     0,     0,   243,   244,     0,     0,   245,
04311        0,     0,   246,   247,   248,     0,     0,   249,     0,   250,
04312      251,     0,     0,   252,     0,   375,   253,     0,   254,     0,
04313      255,   256,     0,     0,   257,     0,     0,   258,   259,     0,
04314      260,   261,     0,     0,     0,   262,     0,     0,     0,     0,
04315      263,     0,     0,     0,     0,   264,     0,   265,     0,   125,
04316      266,   126,   127,   128,     0,   267,   268,     0,   129,  1246,
04317        0,   269,   130,   131,   132,   270,   133,     0,     0,     0,
04318        0,   134,     0,   135,   136,     0,   137,     0,     0,     0,
04319      138,     0,     0,     0,   139,     0,     0,   140,     0,   141,
04320      142,     0,   143,   144,     0,   145,   146,   147,   148,   149,
04321      150,     0,   151,   152,     0,   153,     0,     0,     0,     0,
04322      154,     0,     0,     0,     0,   155,   156,   157,     0,     0,
04323      158,     0,     0,     0,     0,   159,   160,     0,     0,     0,
04324        0,     0,     0,     0,     0,   161,   162,     0,     0,   163,
04325        0,     0,   164,   165,   166,     0,     0,   167,     0,   168,
04326      169,     0,   170,   171,     0,   172,     0,   173,   174,     0,
04327        0,   175,     0,     0,   176,   177,   178,     0,   179,     0,
04328        0,     0,   180,   181,     0,   182,     0,   183,     0,     0,
04329      184,     0,     0,     0,     0,     0,   185,    86,   186,     0,
04330       88,     0,     0,   187,   188,     0,     0,     0,     0,     0,
04331        0,     0,     0,     0,     0,     0,   189,     0,     0,     0,
04332      190,     0,     0,   191,     0,     0,     0,   192,     0,     0,
04333        0,     0,     0,   193,   194,     0,   195,     0,     0,     0,
04334        0,   196,   197,   198,   199,     0,     0,   200,     0,   201,
04335        0,   202,     0,   203,   204,   205,   206,     0,     0,   207,
04336      208,   209,     0,     0,   210,     0,     0,     0,   211,   212,
04337        0,   213,   214,   215,   216,     0,     0,     0,     0,     0,
04338        0,     0,     0,   217,     0,     0,   218,     0,   219,   220,
04339      221,   222,     0,     0,     0,     0,     0,   223,     0,     0,
04340        0,     0,   224,     0,     0,     0,     0,     0,   225,     0,
04341        0,     0,   226,   227,   228,   229,   230,   231,   232,     0,
04342      233,   234,     0,     0,     0,   235,   236,   237,   238,     0,
04343        0,   239,     0,   240,   241,   242,     0,     0,     0,     0,
04344        0,     0,     0,     0,     0,     0,   243,   244,     0,     0,
04345      245,     0,     0,   246,   247,   248,     0,     0,   249,     0,
04346      250,   251,     0,     0,   252,     0,    91,   253,     0,   254,
04347        0,   255,   256,     0,     0,   257,     0,     0,   258,   259,
04348        0,   260,   261,     0,     0,     0,   262,     0,     0,     0,
04349        0,   263,     0,     0,     0,     0,   264,     0,   265,     0,
04350      125,   266,   126,   127,   128,     0,   267,   268,     0,   129,
04351        0,     0,   269,   130,   131,   132,   270,   133,     0,     0,
04352        0,     0,   134,     0,   135,   136,     0,   137,     0,     0,
04353        0,   138,     0,     0,     0,   139,     0,     0,   140,     0,
04354      141,   142,     0,   143,   144,     0,   145,   146,   147,   148,
04355      149,   150,     0,   151,   152,     0,   153,     0,     0,     0,
04356        0,   154,     0,     0,     0,     0,   155,   156,   157,     0,
04357        0,   158,     0,     0,     0,     0,   159,   160,     0,     0,
04358        0,     0,     0,     0,     0,     0,   161,   162,     0,     0,
04359      163,     0,     0,   164,   165,   166,     0,     0,   167,     0,
04360      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
04361        0,     0,   175,     0,     0,   176,   177,   178,     0,   179,
04362        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
04363        0,   184,     0,     0,     0,     0,     0,   185,    86,   186,
04364        0,    88,     0,     0,   187,   188,     0,     0,     0,     0,
04365        0,     0,     0,     0,     0,     0,     0,   189,     0,     0,
04366        0,   190,     0,     0,   191,     0,     0,     0,   192,     0,
04367        0,     0,     0,     0,   193,   194,     0,   195,     0,     0,
04368        0,     0,   196,   197,   198,   199,     0,     0,   200,     0,
04369      201,     0,   202,     0,   203,   204,   205,   206,     0,     0,
04370      207,   208,   209,     0,     0,   210,     0,     0,     0,   211,
04371      212,     0,   213,   214,   215,   216,     0,     0,     0,     0,
04372        0,     0,     0,     0,   217,     0,     0,   218,     0,   219,
04373      220,   221,   222,     0,     0,     0,     0,     0,   223,     0,
04374        0,     0,     0,   224,     0,     0,     0,     0,     0,   225,
04375        0,     0,     0,   226,   227,   228,   229,   230,   231,   232,
04376        0,   233,   234,     0,     0,     0,   235,   236,   237,   238,
04377        0,     0,   239,     0,   240,   241,   242,     0,     0,     0,
04378        0,     0,     0,     0,     0,     0,     0,   243,   244,     0,
04379        0,   245,     0,     0,   246,   247,   248,     0,     0,   249,
04380        0,   250,   251,     0,     0,   252,     0,    91,   253,     0,
04381      254,     0,   255,   256,     0,     0,   257,     0,     0,   258,
04382      259,     0,   260,   261,     0,     0,     0,   262,     0,     0,
04383        0,     0,   263,     0,     0,     0,     0,   264,     0,   265,
04384        0,   125,   266,   126,   127,   128,     0,   267,   268,     0,
04385      129,     0,     0,   269,   130,   131,   132,   270,   133,     0,
04386        0,     0,     0,   134,     0,   135,   136,     0,   137,     0,
04387        0,     0,   138,     0,     0,     0,   139,     0,     0,   140,
04388        0,   141,   142,     0,   143,   144,     0,   145,   146,   147,
04389      148,   149,   150,     0,   151,   152,     0,   153,     0,     0,
04390        0,     0,   154,     0,     0,     0,     0,   155,   156,   157,
04391        0,     0,   158,     0,     0,     0,     0,   159,   160,     0,
04392        0,     0,     0,     0,     0,     0,     0,   161,   162,     0,
04393        0,   163,     0,     0,   164,   165,   166,     0,     0,   167,
04394        0,   168,   169,     0,   170,   171,     0,   172,     0,   173,
04395      174,     0,     0,   175,     0,     0,   176,   177,   178,     0,
04396      179,     0,     0,     0,   180,   181,     0,   182,     0,   183,
04397        0,     0,   184,     0,     0,     0,     0,     0,   185,    86,
04398      186,     0,    88,     0,     0,   187,   188,     0,     0,     0,
04399        0,     0,     0,     0,     0,     0,     0,     0,   189,     0,
04400        0,     0,   190,     0,     0,   191,     0,     0,     0,   192,
04401        0,     0,     0,     0,     0,   193,   194,     0,   195,     0,
04402        0,     0,     0,   196,   197,   198,   199,     0,     0,   200,
04403        0,   201,     0,   202,     0,   203,   204,   205,   206,     0,
04404        0,   207,   208,   209,     0,     0,   210,     0,     0,     0,
04405      211,   212,     0,   213,   214,   215,   216,     0,     0,     0,
04406        0,     0,     0,     0,     0,   217,     0,     0,   218,  2064,
04407      219,   220,   221,   222,     0,     0,     0,     0,     0,   223,
04408        0,     0,     0,     0,   224,     0,     0,     0,     0,     0,
04409      225,     0,     0,     0,   226,   227,   228,   229,   230,   231,
04410      232,     0,   233,   234,     0,     0,     0,   235,   236,   237,
04411      238,     0,     0,   239,     0,   240,   241,   242,     0,     0,
04412        0,     0,     0,     0,     0,     0,     0,     0,   243,   244,
04413        0,     0,   245,     0,     0,   246,   247,   248,     0,     0,
04414      249,     0,   250,   251,     0,     0,   252,     0,     0,   253,
04415        0,   254,     0,   255,   256,     0,     0,   257,     0,     0,
04416      258,   259,     0,   260,   261,     0,     0,     0,   262,     0,
04417        0,     0,     0,   263,     0,     0,     0,     0,   264,     0,
04418      265,     0,   125,   266,   126,   127,   128,     0,   267,   268,
04419        0,   129,     0,     0,   269,   130,   131,   132,   270,   133,
04420        0,     0,     0,     0,   134,     0,   135,   136,     0,   137,
04421        0,     0,     0,   138,     0,     0,     0,   139,     0,     0,
04422      140,     0,   141,   142,     0,   143,   144,     0,   145,   146,
04423      147,   148,   149,   150,     0,   151,   152,     0,   153,     0,
04424        0,     0,     0,   154,     0,     0,     0,     0,   155,   156,
04425      157,     0,     0,   158,     0,     0,     0,     0,   159,   160,
04426        0,     0,     0,     0,     0,     0,     0,     0,   161,   162,
04427        0,     0,   163,     0,     0,   164,   165,   166,     0,     0,
04428      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
04429      173,   174,     0,     0,   175,     0,     0,   176,   177,   178,
04430        0,   179,     0,     0,     0,   180,   181,     0,   182,     0,
04431      183,     0,     0,   184,     0,     0,     0,     0,     0,   185,
04432       86,   186,     0,    88,     0,     0,   187,   188,     0,     0,
04433        0,     0,     0,     0,     0,     0,     0,     0,     0,   189,
04434        0,     0,     0,   190,     0,     0,   191,     0,     0,     0,
04435      192,     0,     0,     0,     0,     0,   193,   194,     0,   195,
04436        0,     0,     0,     0,   196,   197,   198,   199,     0,     0,
04437      200,     0,   201,     0,   202,     0,   203,   204,   205,   206,
04438        0,     0,   207,   208,   209,     0,     0,   210,     0,     0,
04439        0,   211,   212,     0,   213,   214,   215,   216,     0,     0,
04440        0,     0,     0,     0,     0,     0,   217,     0,     0,   218,
04441        0,   219,   220,   221,   222,     0,     0,     0,     0,     0,
04442      223,     0,     0,     0,     0,   224,     0,     0,     0,     0,
04443        0,   225,     0,     0,     0,   226,   227,   228,   229,   230,
04444      231,   232,     0,   233,   234,     0,     0,     0,   235,   236,
04445      237,   238,     0,     0,   239,     0,   240,   241,   242,     0,
04446        0,     0,     0,     0,     0,     0,     0,     0,     0,   243,
04447      244,     0,     0,   245,     0,     0,   246,   247,   248,     0,
04448        0,   249,     0,   250,   251,     0,     0,   252,     0,     0,
04449      253,     0,   254,     0,   255,   256,     0,     0,   257,     0,
04450        0,   258,   259,     0,   260,   261,     0,     0,     0,   262,
04451        0,     0,     0,     0,   263,     0,     0,     0,     0,   264,
04452        0,   265,     0,     0,   266,     0,     0,     0,     0,   267,
04453      268,     0,     0,     0,     0,   269,     0,     0,     0,   270
04454 };
04455 
04456 static const yytype_int16 yycheck[] =
04457 {
04458       12,    51,    93,   330,   428,    12,   613,   914,  1053,    21,
04459      905,   334,   534,   897,  1089,   319,  1218,    29,  1000,   410,
04460      511,   512,   109,   587,  1046,   996,   910,   872,   854,   107,
04461      527,   595,   359,  1187,   121,   666,  1418,  1397,   457,    51,
04462     1483,   446,   903,  1117,  1279,    12,  1552,   374,    14,   525,
04463     1531,    63,   457,   376,    12,    12,    46,   384,   385,    12,
04464     1214,    12,    74,  1034,   651,  1594,  1630,   654,    12,    81,
04465       12,   658,   659,   298,   124,   865,   683,    50,   101,   110,
04466       93,    93,    12,   474,    14,    12,    93,    12,   392,   393,
04467      394,  1632,    86,    12,   570,   107,    12,   109,    69,    12,
04468       12,    12,   845,   106,    12,    82,   118,  1621,   124,   121,
04469       12,   118,   124,    46,  1068,  1069,   103,  1631,  1120,  1633,
04470       85,    25,   112,  1286,   111,   863,    43,   230,   476,    29,
04471       39,   147,   523,   223,   142,  1237,   144,   145,   124,    46,
04472      214,    12,   267,   118,    85,   122,    12,  1706,  1468,   130,
04473      132,    51,    97,    15,   176,     7,    12,  1686,  1717,  1040,
04474      137,   147,    12,    63,    57,   173,  1717,  1707,    12,   174,
04475      561,    12,   182,   278,    74,   118,   129,   142,  1062,     9,
04476      145,    81,   292,    12,   197,   661,   275,    12,  1083,   126,
04477     1085,    96,   165,    12,    20,   329,   178,   129,   150,    12,
04478       12,   211,    12,  1098,    51,   182,   129,  1091,  1092,   109,
04479      356,  1413,   209,   357,   166,  1099,    12,    18,    66,    12,
04480      305,   121,    71,   308,   124,    87,  1110,   159,   333,   316,
04481     1465,   290,    12,   137,   211,   222,   346,   383,   260,  1474,
04482     1101,    31,    12,   180,    70,    46,   380,   228,   245,    50,
04483      300,   310,   175,   101,   379,     6,   381,    12,  1701,    10,
04484     1642,   666,    92,   129,  1823,    12,   224,   224,   120,   210,
04485      282,   224,  1823,    12,   363,   267,   379,   289,   286,   291,
04486      224,   226,   224,  1603,    85,   297,    12,    12,   300,  1115,
04487      272,   303,   304,   383,   224,   599,    12,   224,   279,   224,
04488      209,   126,   889,   311,   316,   224,   107,   315,   224,   383,
04489      614,   224,   224,   224,    12,   325,   224,  1055,   119,  1421,
04490      351,   337,   224,   310,   821,    12,   329,   244,  1771,    12,
04491      353,    12,  1495,  1217,   421,   683,  1338,   308,    12,    43,
04492      334,   142,  1223,   236,   145,   135,   311,   322,   325,   354,
04493     1793,   337,   318,   224,  1556,    12,  1263,    12,   224,  1888,
04494      373,   374,   375,   376,  1599,   338,  1847,   318,   224,   274,
04495      420,  1255,    12,  1913,   224,  1939,   366,   385,   854,   322,
04496      224,    12,   282,   224,   396,   397,    12,   379,  1463,   289,
04497     1344,   291,   359,  1899,  1220,   224,  1937,   297,    12,   224,
04498      300,   359,   359,   303,   304,   224,   359,   311,   420,   421,
04499     1305,   224,   224,    12,   224,   359,   316,   359,   643,  1209,
04500     1984,   125,   380,   380,  1938,   383,   383,   477,   224,   359,
04501      383,   224,   359,   366,   359,  1509,   380,  1511,   488,   383,
04502      359,   932,    12,   359,   224,  1306,   359,   359,   359,   250,
04503     1014,   359,   943,   380,   224,   380,   383,   359,   383,   366,
04504      261,   380,   474,   475,   383,   477,   382,   380,  1211,   224,
04505      383,   383,   383,  1080,   965,   383,   488,   224,  1065,   326,
04506      899,   383,    12,   495,  1866,   224,  1967,  1968,   359,  1970,
04507      502,    12,   583,   359,   899,   147,   396,   397,   224,   224,
04508       12,  1023,  1024,   359,  1985,  1112,  1113,  1950,   224,   359,
04509      311,  1337,   383,   525,   380,   359,  1013,  1877,   359,  1962,
04510      420,   421,   826,  1020,  1155,    38,   224,   383,   232,  2010,
04511      359,  2012,  2013,   383,   359,    12,   653,   224,  1692,   383,
04512      359,   224,   383,   224,  1422,   147,   359,   359,   626,   359,
04513      224,    12,  1430,    12,   383,   380,    69,    12,   570,  1035,
04514       12,    12,   263,   359,   383,    12,   359,   224,   380,   224,
04515      383,   583,   202,   383,   474,   475,   583,   477,    14,   359,
04516     1628,    82,   383,  1337,   224,   215,    43,   383,   488,   359,
04517      383,   641,   679,   224,   644,   495,  1072,   249,   224,  1429,
04518        9,   613,   502,   383,   359,   617,   656,  1452,  1579,    34,
04519      224,    12,   359,   383,   626,   221,   311,   129,    12,    12,
04520      359,   122,  1046,    12,  1646,   224,   330,    69,   383,   641,
04521     1675,   267,   644,   359,   359,     9,   383,   687,   645,  1203,
04522      652,   380,   320,   359,   656,    14,    29,   291,   308,   661,
04523       12,    12,  1559,   175,   224,   380,  1283,   383,    12,    12,
04524       12,   359,    12,    12,   380,    12,   147,   679,   125,    12,
04525      106,   683,   359,   685,    12,   687,   359,    12,   359,  1286,
04526       63,   182,   380,    92,   379,   359,  1313,  1294,   118,  1515,
04527     1738,  1673,   129,   380,   224,    64,   267,   380,     0,   380,
04528      213,   223,   359,   224,   359,   218,   380,  1591,   338,  1200,
04529      211,   147,   224,  1017,   313,    12,    12,   617,    92,   359,
04530      157,   142,     9,   380,   145,   380,   142,   118,   359,   145,
04531     1623,   267,    12,   359,   634,  1628,  1566,   106,    12,   106,
04532      380,   641,  1910,   379,   644,   359,   442,   224,  1224,   380,
04533     1795,  1953,   652,   267,   380,   124,   656,   126,    12,   876,
04534      359,  1515,   458,   224,   133,   224,   380,   136,    49,   224,
04535        9,   213,   224,   224,   891,   232,   218,   224,   147,   679,
04536      210,  1688,   146,   152,   209,   685,   223,   687,   157,   359,
04537      802,  1666,  1667,   267,   163,   308,   309,    93,   848,   849,
04538     1678,    22,   171,   308,  1682,    92,   175,   329,   379,  1977,
04539      380,   180,    85,   249,   267,  1619,  1620,   562,   563,   210,
04540     1895,  1896,  1298,   224,   325,  1347,  1630,   252,  1632,   359,
04541      224,   224,   129,   202,   250,   224,   848,   849,   359,    93,
04542     1362,  1363,   854,   379,   125,  1738,   215,   359,  1678,   274,
04543      380,   495,  1682,    92,   223,   129,  1378,   129,   502,   380,
04544      872,   313,   224,   224,   146,   379,   878,  1619,  1620,   150,
04545      224,   224,   224,   330,   224,   224,  1704,   224,  1630,  1370,
04546     1632,   224,   359,   150,     9,   166,   224,   256,  1495,   224,
04547      311,   903,   322,   166,  1071,   311,  1073,     9,   359,   911,
04548      359,   197,   802,   380,   359,   379,   355,   359,   359,   175,
04549     1714,  1715,   359,  1404,   297,   142,  1007,   144,   145,   380,
04550      303,   380,  1726,  1435,  1436,   380,   379,   224,   297,   380,
04551     1734,   322,  1736,   380,   207,    18,  1412,   210,   159,  1999,
04552      331,  2001,   215,   197,  1748,   355,   380,  1751,   848,   849,
04553      224,   232,    82,   174,   854,  1785,  1786,   223,   359,   232,
04554      329,   384,  1714,  1715,    46,   359,   359,    92,   337,   338,
04555      359,  1428,  1063,   372,  1726,   311,  1804,  1805,   878,   380,
04556       92,   380,  1734,   308,  1736,   354,   380,   380,  2033,  1873,
04557      207,   380,   122,    53,    54,  1007,  1748,   359,   359,  1751,
04558     1007,   330,    85,    85,   133,   359,   359,   359,   384,   359,
04559      359,   380,   359,   382,   383,    22,   359,  1029,   380,   380,
04560      115,   359,   243,  1035,   359,    85,   380,   380,   380,  1273,
04561      380,   380,    93,   380,   163,  1279,   209,   380,  1282,    99,
04562     1284,    25,   380,   379,  1056,   380,  1058,  1291,  1292,  1056,
04563     1945,  1063,   182,  1297,  1231,   163,  1063,   330,    64,   286,
04564     1072,   121,   359,   171,  1114,    55,    38,  1982,  1080,   292,
04565      355,   367,   368,   369,   370,   371,   372,   373,   374,   375,
04566      376,   211,   383,   166,   166,   359,    93,   379,   315,  1101,
04567     1997,    46,   311,   320,   223,  1107,   372,    69,    82,    55,
04568     1112,  1113,  1114,  1115,   380,  1117,   379,   384,  1120,  1716,
04569     1567,  1568,   373,   367,   368,   369,   370,   371,   372,   373,
04570      374,   375,   376,   142,   207,   207,   145,   210,   210,  1029,
04571       85,    43,   379,  1937,  1610,  1939,   197,    49,   122,   379,
04572     1531,   379,    18,  1447,  2059,  2060,   152,    59,   256,   232,
04573      232,   380,   159,   137,   383,   379,  1056,   163,  1058,   109,
04574      285,   286,   287,   288,   379,   171,    46,   174,   380,    75,
04575       46,   383,   297,     2,    50,     4,    82,   379,   150,   132,
04576     1984,   131,   242,  1987,   379,  1937,  1236,  1939,   271,    18,
04577      197,   380,   379,   379,   383,   325,   202,   379,   182,   142,
04578      207,   144,   145,   380,   379,    85,   383,  1107,   379,    85,
04579      160,   166,  1224,   125,  1114,  1115,   122,  1229,   379,   169,
04580      380,  1465,  1646,   383,  1236,   178,   210,   211,   379,   239,
04581     1474,   107,  1984,   379,  1246,  1987,   243,   247,   150,  1246,
04582      379,   213,   379,   119,   379,    64,   218,   330,   330,   263,
04583      256,  1301,   207,   203,   166,   210,    85,   379,   379,   118,
04584      270,  1273,   142,   216,   379,   145,   142,  1279,   132,   145,
04585     1282,   329,  1284,   379,  1286,   379,   182,   232,  1285,  1291,
04586     1292,   380,  1294,    24,   383,  1297,  1298,    28,  1295,  1301,
04587      379,   297,  1342,   122,  1306,  1307,  1308,  1773,   174,   379,
04588       41,  1313,   208,   379,   210,   211,  1313,   368,   369,   370,
04589      371,   372,   373,   374,   375,   376,   379,   181,   175,   272,
04590      232,    85,    64,   379,  1224,   380,  1338,   311,   383,  1229,
04591     1342,    72,   379,   152,    75,  1622,  1236,   309,  1625,    85,
04592     1627,   325,    83,   286,   163,    85,  1246,   379,   207,   379,
04593       64,   210,   171,   380,   380,  1599,   383,   383,   379,   379,
04594      367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
04595      250,   379,   315,  1273,   250,   330,   382,   292,   380,  1279,
04596      104,   383,  1282,   202,  1284,   261,  1398,   371,   372,   305,
04597      267,  1291,  1292,   348,  1406,   380,   215,  1297,   383,  1406,
04598     1412,  1301,   166,   379,    18,   311,  1729,  1307,  1308,   315,
04599      152,   379,   379,   363,   364,   365,   379,   158,   330,   325,
04600      166,   163,    18,    25,   379,   379,   166,   379,   292,   171,
04601      379,   311,  1444,   379,  1757,   311,    50,   256,   152,   379,
04602     1452,   305,  1342,   207,   308,   379,   210,   379,  1839,   163,
04603       46,   215,  1502,  1465,    50,    93,  1847,   171,   379,   379,
04604      202,   207,  1474,   322,   210,   342,   343,   207,   232,  1860,
04605      210,    85,   331,    75,   379,   379,  1952,   379,   297,   142,
04606       82,   144,   145,  1495,  1807,  1808,   232,  1499,   202,    85,
04607     1502,  1582,   232,   107,  1506,   379,    93,  1509,  1398,  1511,
04608     1512,   215,   379,   379,   379,   119,  1406,   379,   379,  1836,
04609      173,   107,  1835,   379,   256,  1838,   118,   292,    14,    58,
04610      122,   159,   142,   119,   144,   145,   380,   380,   142,   383,
04611      383,   145,   380,    85,  1082,   137,  1084,   278,  1929,   274,
04612     1931,  1089,   256,   383,  1444,  1639,   142,  1095,   380,   145,
04613      267,   383,    39,   173,   245,   297,   115,   274,   380,   197,
04614      380,   383,   150,   383,  1576,  1465,   330,   215,    64,   380,
04615     1582,   254,   383,   314,  1474,  1582,  1967,  1968,   380,  1970,
04616      182,   383,   380,   297,   330,   383,  2062,  1599,   380,   350,
04617      330,   383,   333,   380,  1985,  1607,   383,   321,  1610,  1499,
04618      197,   380,  1502,   239,  2080,  1932,  1506,   380,   210,   211,
04619      106,  2087,  1512,   142,   380,   144,   145,   383,   380,  2010,
04620      353,  2012,  2013,   286,   348,   342,   343,    92,   380,   379,
04621      126,   383,     9,   380,   358,  1647,   250,   133,   151,   384,
04622      136,   380,   380,  1737,   173,   379,   383,   261,   311,  1743,
04623      318,  1745,   315,   383,   250,   383,   152,   373,   311,   280,
04624       46,   157,   379,   180,   354,   261,   286,   163,   380,   380,
04625      373,   395,   380,   380,   129,   171,  1576,   372,   380,   175,
04626      380,   380,   380,   380,   180,   329,   275,   383,   380,   383,
04627       12,   311,  1704,   380,   380,   315,   376,   311,  1710,  1599,
04628      379,   379,   379,   376,  1716,   380,   202,  1607,   384,   311,
04629      311,   385,   379,   315,   384,   311,   380,   383,    32,   215,
04630      322,   383,   385,   325,   223,   215,   380,   223,  1778,   367,
04631      368,   369,   370,   371,   372,   373,   374,   375,   376,   104,
04632      380,   156,   156,   380,   383,   380,  1753,  1647,   380,   380,
04633      384,   384,   380,  1765,   384,   380,   383,   286,   380,    93,
04634      256,  1773,   157,   129,   161,   385,  1778,    49,   318,   371,
04635      372,   164,   369,   370,   371,   372,   373,   374,   375,   376,
04636      504,   306,   311,   164,   306,   509,   315,    32,    46,   513,
04637      514,   383,  1804,  1805,   338,   215,   520,   521,   522,   175,
04638      524,   297,   526,    98,  1704,   379,   530,   531,   532,   533,
04639     1710,   379,   536,   158,   538,   539,   158,   541,   542,  1729,
04640      544,   383,   380,   547,   548,   549,   550,   551,   552,   380,
04641      384,   555,   556,   329,   558,   380,   560,   380,    93,   380,
04642      564,   565,   338,    10,    11,   383,   267,  1757,   383,   573,
04643      574,   334,   159,   384,    21,   172,  1868,   581,   354,   380,
04644      584,   585,   586,   197,   166,  1765,   166,    14,    48,   384,
04645      380,    14,   211,   211,  1886,   380,    43,   269,  1778,   157,
04646      380,   383,    62,    63,   380,    52,   382,   383,   163,   163,
04647       70,   133,   225,   385,   276,   383,    63,   166,   166,  1809,
04648     1810,   383,   379,  1915,  1804,  1805,   166,   380,   380,   380,
04649      634,   380,   163,   163,   215,    32,   136,   383,   194,    86,
04650       87,    88,   646,   239,    85,   379,    85,   379,   379,    96,
04651      110,   379,    82,   379,    50,   379,   334,  1944,   380,   106,
04652     1952,   384,   197,    48,   211,   308,   163,   114,  1858,  1859,
04653      163,   379,   132,   379,   184,   211,   123,    12,   210,    23,
04654      166,   166,   142,    27,    28,   145,   334,   211,  1868,   149,
04655      150,   379,   122,   211,   211,   211,    85,    41,   702,   379,
04656      338,   380,   338,   379,   164,  2076,  1886,  1999,   155,  2001,
04657      176,  2003,   142,   215,   208,   145,   380,   380,   178,   343,
04658      167,   362,   380,   211,   383,   380,   338,   338,    72,    32,
04659      177,    75,    32,   103,    32,  1915,   380,   379,   126,    83,
04660      379,    76,    77,    78,    79,    80,    32,    32,   752,    32,
04661        4,    95,   182,   367,   368,   369,   370,   371,   372,   373,
04662      374,   375,   376,   244,   108,  2057,  2058,   215,   147,   215,
04663     2062,    32,    32,   379,   234,   379,    86,   121,   782,   783,
04664      784,   211,   334,   211,  2076,   274,   379,  1643,  2080,  2076,
04665      380,  2083,   383,  1115,  1112,  2087,  1101,   683,   245,   246,
04666     1512,  1307,   249,   138,   139,   140,   141,  1081,  1310,  1107,
04667      257,  1607,   272,  1277,   158,  1138,   263,   821,  1609,  1999,
04668      267,  2001,  1744,  2003,  1726,  1849,  1626,   274,  1762,   833,
04669      277,   835,   367,   368,   369,   370,   371,   372,   373,   374,
04670      375,   376,  1734,  1708,   291,   305,  1716,  1947,   308,   309,
04671     1976,   311,  1121,  1868,   189,   190,   191,   192,  1306,   848,
04672     1047,   277,   998,   198,   473,   276,   437,   862,   212,  1406,
04673      931,  1676,  1211,  1432,   997,  1964,   323,  2057,  2058,  2083,
04674     1898,   311,  2058,   515,  1674,   332,  1021,   334,  1454,   224,
04675      337,   351,   563,  1052,   316,   325,  1695,   241,   305,  1610,
04676      235,   940,   421,  2083,   696,  1219,  1072,  1412,   853,  2080,
04677     1952,   349,   501,  1954,   918,  1904,  1996,   921,  1974,   923,
04678      924,  2087,  1224,   634,   928,    81,  1313,   271,   867,   264,
04679      265,  1452,   379,  1254,  1700,   110,   427,    -1,   942,    -1,
04680       -1,   945,   946,   947,   948,    -1,   950,    80,    -1,     5,
04681       -1,    -1,    -1,   957,    10,    -1,   960,    -1,   962,   963,
04682      964,    -1,    18,    -1,    -1,   969,   970,   971,   312,    -1,
04683      314,   315,   976,   977,   978,    -1,   980,    -1,   982,    -1,
04684      984,    -1,   986,    -1,    40,    -1,    -1,   991,    -1,    -1,
04685       -1,    -1,    -1,    -1,    50,   128,    -1,   341,    -1,    -1,
04686      344,   345,     5,    -1,  1008,    61,    -1,    10,   141,    -1,
04687       -1,    -1,    -1,    -1,    -1,    18,  1020,   352,    -1,    -1,
04688       -1,  1025,    -1,    -1,   359,   360,   361,    -1,    -1,    85,
04689       -1,    -1,    -1,    -1,    90,    91,    -1,    40,    -1,    -1,
04690       96,    -1,    -1,    -1,    -1,    -1,   102,    50,    -1,    -1,
04691      106,   107,    -1,    -1,    -1,    -1,   189,    -1,    61,   192,
04692       -1,    -1,    -1,   119,    -1,   198,    -1,    -1,   124,    -1,
04693       -1,    -1,  1076,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04694       -1,    -1,    85,    -1,    -1,    -1,   142,    90,    -1,   145,
04695       -1,    -1,   148,    96,    -1,    -1,    -1,    -1,    -1,   102,
04696       -1,    -1,   235,    -1,   107,    -1,    -1,    -1,    76,    77,
04697       78,    79,    80,    -1,    -1,    -1,   119,    -1,    -1,  1123,
04698       -1,   124,    -1,    -1,  1128,    -1,    -1,    -1,  1132,    -1,
04699       -1,    -1,   265,    -1,    -1,    -1,    -1,    -1,    -1,   142,
04700      196,    -1,   145,   515,    -1,    -1,    -1,  1151,  1152,    -1,
04701       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04702       -1,    -1,    -1,    -1,    -1,   537,  1170,   223,   540,    -1,
04703      138,   139,   140,   141,  1178,    -1,  1180,    -1,  1182,    -1,
04704       -1,   553,   554,    -1,    -1,   557,    -1,    -1,    -1,    -1,
04705      246,    -1,    -1,   196,   250,    -1,    -1,    -1,    -1,   571,
04706      572,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,    -1,
04707       -1,    -1,    -1,    -1,  1218,   546,    -1,    -1,    -1,   352,
04708      223,   189,   190,   191,   192,    -1,    -1,    -1,   361,    -1,
04709      198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04710       -1,    -1,    -1,   246,    -1,    -1,    -1,   250,    -1,  1253,
04711       -1,    -1,    -1,    -1,    -1,   311,    -1,    -1,   261,    -1,
04712       -1,    -1,    -1,  1267,    -1,   596,   597,   235,    -1,   600,
04713       -1,   602,   603,   604,   605,   606,   607,   608,   609,   610,
04714      611,   612,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04715       -1,    -1,    -1,    -1,    -1,    -1,   264,   265,    -1,    -1,
04716       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   311,    -1,
04717       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04718       -1,    -1,    -1,    -1,    -1,    -1,    -1,   699,    -1,    -1,
04719       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04720       -1,    -1,    -1,    -1,    -1,    -1,  1350,    -1,    -1,    -1,
04721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04722       -1,    -1,    -1,  1367,  1368,    -1,    -1,    -1,    -1,    -1,
04723       -1,  1375,    -1,    -1,    -1,    -1,  1380,    -1,    -1,  1383,
04724     1384,  1385,   754,    -1,   352,    -1,   758,    -1,    -1,    -1,
04725       -1,    -1,   360,   361,    -1,    -1,    -1,    -1,    -1,    -1,
04726       -1,    -1,   774,    -1,    -1,    -1,    -1,    -1,    -1,  1413,
04727       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04729       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04730       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1453,
04731       -1,    -1,    -1,    -1,    -1,    -1,  1460,    -1,    -1,    -1,
04732       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04733       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04734       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04735       -1,    -1,    -1,   824,    -1,    -1,   827,    -1,    -1,    -1,
04736       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04737       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04738       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04739       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04740       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04741       -1,    -1,  1556,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04742       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04743       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04745     1594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04746       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04748       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04749       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04750       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04751       -1,    -1,    -1,    -1,  1658,    -1,    -1,    -1,    -1,    -1,
04752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04753       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04754       -1,    -1,  1686,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04755       -1,    -1,    -1,    -1,    -1,    -1,  1700,    -1,    -1,    -1,
04756       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04757       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04758       -1,    -1,    -1,    -1,    -1,    -1,     4,    -1,     6,     7,
04759        8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,
04760       18,    19,    -1,    21,    -1,    -1,    24,    25,    26,    -1,
04761       28,    29,    30,    31,    -1,    -1,    -1,    35,    36,    37,
04762       38,    39,    -1,    41,    42,    -1,    44,    45,    -1,    47,
04763       48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
04764       58,    -1,    60,    61,    62,  1789,  1790,    65,    66,    67,
04765     1794,    69,    70,    71,    72,    73,    74,    75,    -1,    -1,
04766       -1,    -1,    80,    81,    82,    -1,    -1,    85,    -1,    -1,
04767       -1,    -1,    90,    91,    -1,    -1,    94,    -1,    -1,    97,
04768       98,    99,    -1,    -1,   102,    -1,   104,   105,    -1,   107,
04769      108,    -1,   110,    -1,   112,   113,   114,   115,   116,   117,
04770      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,   127,
04771      128,    -1,   130,    -1,   132,    -1,   134,   135,    -1,   137,
04772       -1,    -1,    -1,   141,   142,   143,    -1,   145,   146,    -1,
04773      148,   149,    -1,    -1,    -1,    -1,    -1,   155,   156,    -1,
04774       -1,    -1,    -1,   161,  1888,    -1,    -1,   165,    -1,   167,
04775      168,    -1,   170,   171,   172,    -1,    -1,    -1,    -1,    -1,
04776      178,   179,    -1,   181,   182,    -1,    -1,   185,   186,   187,
04777      188,   189,    -1,    -1,   192,   193,   194,    -1,   196,   197,
04778      198,   199,   200,   201,    -1,    -1,   204,   205,   206,   207,
04779      208,   209,   210,   211,    -1,   213,   214,    -1,   216,   217,
04780      218,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1953,
04781      228,   229,  1956,   231,  1958,   233,   234,   235,   236,    -1,
04782       -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,
04783      248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
04784      258,   259,   260,   261,   262,   263,    -1,   265,   266,    -1,
04785       -1,    -1,   270,   271,   272,   273,    -1,    -1,   276,    -1,
04786      278,   279,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04787       -1,    -1,    -1,   291,   292,   293,   294,   295,    -1,    -1,
04788      298,   299,   300,   301,   302,   303,   304,   305,   306,    -1,
04789       -1,   309,    -1,   311,   312,    -1,   314,   315,   316,   317,
04790       -1,   319,   320,   321,   322,   323,   324,   325,   326,   327,
04791       -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,   336,    -1,
04792       -1,   339,   340,   341,   342,   343,    -1,    -1,   346,   347,
04793       -1,   349,   350,   351,   352,    -1,    -1,    -1,    -1,   357,
04794       -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,    -1,    -1,
04795       -1,    -1,    -1,   371,   372,    -1,    -1,    -1,    -1,   377,
04796       -1,   379,    -1,   381,    -1,    -1,   384,   385,     4,    -1,
04797        6,     7,     8,     9,    -1,    -1,    -1,    13,    -1,    -1,
04798       -1,    17,    18,    19,    -1,    21,    -1,    -1,    24,    25,
04799       26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
04800       36,    37,    38,    39,    -1,    41,    42,    -1,    44,    45,
04801       -1,    47,    48,    -1,    50,    51,    52,    53,    54,    55,
04802       -1,    57,    58,    -1,    60,    61,    62,    -1,    -1,    65,
04803       66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
04804       -1,    -1,    -1,    -1,    80,    81,    82,    -1,    -1,    85,
04805       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    94,    -1,
04806       -1,    97,    98,    99,    -1,    -1,   102,    -1,   104,   105,
04807       -1,   107,   108,    -1,   110,    -1,   112,   113,   114,   115,
04808      116,   117,   118,   119,   120,   121,   122,   123,    -1,    -1,
04809       -1,   127,   128,    -1,   130,    -1,   132,    -1,   134,   135,
04810       -1,   137,    -1,    -1,    -1,   141,   142,   143,    -1,   145,
04811      146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,   155,
04812      156,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,   165,
04813       -1,   167,   168,    -1,    -1,   171,   172,    -1,    -1,    -1,
04814       -1,    -1,   178,   179,    -1,   181,   182,    -1,    -1,   185,
04815      186,   187,   188,   189,    -1,    -1,   192,   193,   194,    -1,
04816      196,   197,   198,   199,   200,   201,    -1,    -1,   204,   205,
04817      206,   207,   208,   209,   210,   211,    -1,   213,   214,   215,
04818      216,   217,   218,   219,    -1,    -1,    -1,    -1,    -1,    -1,
04819       -1,    -1,   228,   229,    -1,   231,    -1,   233,   234,   235,
04820      236,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
04821       -1,   247,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
04822      256,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
04823      266,    -1,    -1,    -1,   270,   271,   272,   273,    -1,    -1,
04824      276,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,    -1,
04825       -1,    -1,    -1,    -1,    -1,   291,   292,   293,   294,   295,
04826       -1,    -1,   298,   299,   300,   301,   302,   303,   304,   305,
04827      306,    -1,    -1,   309,    -1,   311,   312,    -1,   314,   315,
04828      316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
04829      326,   327,    -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,
04830      336,    -1,    -1,   339,   340,   341,   342,   343,    -1,    -1,
04831      346,   347,    -1,   349,   350,   351,   352,    -1,    -1,    -1,
04832       -1,   357,    -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,
04833       -1,    -1,    -1,    -1,    -1,   371,   372,    -1,    -1,    -1,
04834       -1,   377,    -1,   379,    -1,   381,    -1,    -1,   384,   385,
04835        4,    -1,     6,     7,     8,    -1,    -1,    -1,    -1,    13,
04836       -1,    -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,
04837       24,    25,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
04838       -1,    35,    36,    37,    38,    39,    -1,    41,    42,    -1,
04839       44,    45,    -1,    47,    48,    -1,    50,    51,    52,    53,
04840       54,    55,    -1,    57,    58,    -1,    60,    61,    62,    -1,
04841       -1,    65,    66,    67,    -1,    69,    70,    71,    72,    73,
04842       74,    75,    -1,    -1,    -1,    -1,    80,    81,    82,    -1,
04843       -1,    85,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,
04844       94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
04845      104,   105,    -1,   107,   108,    -1,   110,    -1,   112,   113,
04846      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
04847       -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,
04848      134,   135,    -1,   137,    -1,    -1,    -1,   141,   142,   143,
04849       -1,   145,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
04850       -1,   155,   156,    -1,    -1,    -1,    -1,   161,    -1,    -1,
04851       -1,   165,    -1,   167,   168,    -1,    -1,   171,   172,    -1,
04852       -1,    -1,    -1,    -1,   178,   179,    -1,   181,   182,    -1,
04853       -1,   185,   186,   187,   188,   189,    -1,    -1,   192,   193,
04854      194,    -1,   196,   197,   198,   199,   200,   201,    -1,    -1,
04855      204,   205,   206,   207,   208,   209,   210,   211,    -1,   213,
04856      214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,
04857       -1,    -1,    -1,    -1,   228,   229,    -1,   231,    -1,   233,
04858      234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,
04859       -1,    -1,    -1,   247,   248,   249,    -1,    -1,    -1,   253,
04860       -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
04861       -1,   265,   266,    -1,    -1,    -1,   270,   271,   272,   273,
04862       -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,
04863       -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,   293,
04864      294,   295,    -1,    -1,   298,   299,   300,   301,   302,   303,
04865      304,   305,   306,    -1,    -1,   309,    -1,   311,   312,    -1,
04866      314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
04867      324,   325,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,
04868       -1,    -1,   336,    -1,    -1,   339,   340,   341,   342,   343,
04869       -1,    -1,   346,   347,    -1,   349,   350,   351,   352,    -1,
04870       -1,    -1,    -1,   357,    -1,    -1,    -1,   361,    -1,    -1,
04871       -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,   372,    -1,
04872       -1,    -1,    -1,   377,    -1,   379,   380,   381,    -1,    -1,
04873      384,   385,     4,    -1,     6,     7,     8,    -1,    -1,    -1,
04874       -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,    21,
04875       -1,    -1,    24,    25,    26,    -1,    28,    29,    -1,    31,
04876       -1,    -1,    -1,    35,    36,    37,    38,    39,    -1,    41,
04877       42,    -1,    44,    45,    -1,    47,    48,    -1,    50,    51,
04878       52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
04879       62,    -1,    -1,    65,    66,    67,    -1,    69,    70,    71,
04880       72,    73,    74,    75,    -1,    -1,    -1,    -1,    80,    81,
04881       82,    -1,    -1,    85,    -1,    -1,    -1,    -1,    90,    91,
04882       -1,    -1,    94,    -1,    -1,    97,    98,    99,    -1,    -1,
04883      102,    -1,   104,   105,    -1,   107,   108,    -1,   110,    -1,
04884      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
04885      122,   123,    -1,    -1,    -1,   127,   128,   129,   130,    -1,
04886      132,    -1,   134,   135,    -1,   137,    -1,    -1,    -1,   141,
04887      142,   143,    -1,   145,   146,    -1,   148,   149,    -1,    -1,
04888       -1,    -1,    -1,   155,   156,    -1,    -1,    -1,    -1,   161,
04889       -1,    -1,    -1,   165,    -1,   167,   168,    -1,    -1,   171,
04890      172,    -1,    -1,    -1,    -1,    -1,   178,   179,    -1,   181,
04891      182,    -1,    -1,   185,   186,   187,   188,   189,    -1,    -1,
04892      192,   193,   194,    -1,   196,   197,   198,   199,   200,   201,
04893       -1,    -1,   204,   205,   206,   207,   208,   209,   210,   211,
04894       -1,   213,   214,    -1,   216,   217,   218,   219,    -1,    -1,
04895       -1,    -1,    -1,    -1,    -1,    -1,   228,   229,    -1,   231,
04896       -1,   233,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,
04897      242,    -1,    -1,    -1,    -1,   247,   248,   249,    -1,    -1,
04898       -1,   253,    -1,    -1,   256,   257,   258,   259,   260,   261,
04899      262,   263,    -1,   265,   266,    -1,    -1,    -1,   270,   271,
04900      272,   273,    -1,    -1,   276,    -1,   278,   279,   280,    -1,
04901       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,
04902      292,   293,   294,   295,    -1,    -1,   298,   299,   300,   301,
04903      302,   303,   304,   305,   306,    -1,    -1,   309,    -1,   311,
04904      312,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
04905      322,   323,   324,   325,   326,   327,    -1,    -1,    -1,   331,
04906       -1,    -1,    -1,    -1,   336,    -1,    -1,   339,   340,   341,
04907      342,   343,    -1,    -1,   346,   347,    -1,   349,   350,   351,
04908      352,    -1,    -1,    -1,    -1,   357,    -1,    -1,    -1,   361,
04909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
04910      372,    -1,    -1,    -1,    -1,   377,    -1,   379,    -1,   381,
04911       -1,    -1,   384,   385,     4,    -1,     6,     7,     8,    -1,
04912       -1,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,
04913       -1,    21,    -1,    -1,    24,    25,    26,    -1,    28,    29,
04914       -1,    31,    -1,    -1,    -1,    35,    36,    37,    38,    39,
04915       -1,    41,    42,    -1,    44,    45,    -1,    47,    48,    -1,
04916       50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
04917       60,    61,    62,    -1,    -1,    65,    66,    67,    -1,    69,
04918       70,    71,    72,    73,    74,    75,    -1,    -1,    -1,    -1,
04919       80,    81,    82,    -1,    -1,    85,    -1,    -1,    -1,    -1,
04920       90,    91,    -1,    -1,    94,    -1,    -1,    97,    98,    99,
04921       -1,    -1,   102,    -1,   104,   105,    -1,   107,   108,    -1,
04922      110,    -1,   112,   113,   114,   115,   116,   117,   118,   119,
04923      120,   121,   122,   123,    -1,    -1,    -1,   127,   128,   129,
04924      130,    -1,   132,    -1,   134,   135,    -1,   137,    -1,    -1,
04925       -1,   141,   142,   143,    -1,   145,   146,    -1,   148,   149,
04926       -1,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
04927       -1,   161,    -1,    -1,    -1,   165,    -1,   167,   168,    -1,
04928       -1,   171,   172,    -1,    -1,    -1,    -1,    -1,   178,   179,
04929       -1,   181,   182,    -1,    -1,   185,   186,   187,   188,   189,
04930       -1,    -1,   192,   193,   194,    -1,   196,   197,   198,   199,
04931      200,   201,    -1,    -1,   204,   205,   206,   207,   208,   209,
04932      210,   211,    -1,   213,   214,    -1,   216,   217,   218,   219,
04933       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   228,   229,
04934       -1,   231,    -1,   233,   234,   235,   236,    -1,    -1,    -1,
04935       -1,    -1,   242,    -1,    -1,    -1,    -1,   247,   248,   249,
04936       -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,   259,
04937      260,   261,   262,   263,    -1,   265,   266,    -1,    -1,    -1,
04938      270,   271,   272,   273,    -1,    -1,   276,    -1,   278,   279,
04939      280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04940       -1,   291,   292,   293,   294,   295,    -1,    -1,   298,   299,
04941      300,   301,   302,   303,   304,   305,   306,    -1,    -1,   309,
04942       -1,   311,   312,    -1,   314,   315,   316,   317,    -1,    -1,
04943      320,   321,   322,   323,   324,   325,   326,   327,    -1,    -1,
04944       -1,   331,    -1,    -1,    -1,    -1,   336,    -1,    -1,   339,
04945      340,   341,   342,   343,    -1,    -1,   346,   347,    -1,   349,
04946      350,   351,   352,    -1,    -1,    -1,    -1,   357,    -1,    -1,
04947       -1,   361,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04948       -1,   371,   372,    -1,    -1,    -1,    -1,   377,    -1,   379,
04949       -1,   381,    -1,    -1,   384,   385,     4,    -1,     6,     7,
04950        8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,
04951       18,    19,    -1,    21,    -1,    -1,    24,    25,    26,    -1,
04952       28,    29,    -1,    31,    -1,    -1,    -1,    35,    36,    37,
04953       38,    39,    -1,    41,    42,    -1,    44,    45,    -1,    47,
04954       48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
04955       58,    -1,    60,    61,    62,    -1,    -1,    65,    66,    67,
04956       -1,    69,    70,    71,    72,    73,    74,    75,    -1,    -1,
04957       -1,    -1,    80,    81,    82,    -1,    -1,    85,    -1,    -1,
04958       -1,    -1,    90,    91,    -1,    -1,    94,    -1,    -1,    97,
04959       98,    99,    -1,    -1,   102,    -1,   104,   105,    -1,   107,
04960      108,    -1,   110,    -1,   112,   113,   114,   115,   116,   117,
04961      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,   127,
04962      128,   129,   130,    -1,   132,    -1,   134,   135,    -1,   137,
04963       -1,    -1,    -1,   141,   142,   143,    -1,   145,   146,    -1,
04964      148,   149,    -1,    -1,    -1,    -1,    -1,   155,   156,    -1,
04965       -1,    -1,    -1,   161,    -1,    -1,    -1,   165,    -1,   167,
04966      168,    -1,    -1,   171,   172,    -1,    -1,    -1,    -1,    -1,
04967      178,   179,    -1,   181,   182,    -1,    -1,   185,   186,   187,
04968      188,   189,    -1,    -1,   192,   193,   194,    -1,   196,   197,
04969      198,   199,   200,   201,    -1,    -1,   204,   205,   206,   207,
04970      208,   209,   210,   211,    -1,   213,   214,    -1,   216,   217,
04971      218,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04972      228,   229,    -1,   231,    -1,   233,   234,   235,   236,    -1,
04973       -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,
04974      248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
04975      258,   259,   260,   261,   262,   263,    -1,   265,   266,    -1,
04976       -1,    -1,   270,   271,   272,   273,    -1,    -1,   276,    -1,
04977      278,   279,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04978       -1,    -1,    -1,   291,   292,   293,   294,   295,    -1,    -1,
04979      298,   299,   300,   301,   302,   303,   304,   305,   306,    -1,
04980       -1,   309,    -1,   311,   312,    -1,   314,   315,   316,   317,
04981       -1,    -1,   320,   321,   322,   323,   324,   325,   326,   327,
04982       -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,   336,    -1,
04983       -1,   339,   340,   341,   342,   343,    -1,    -1,   346,   347,
04984       -1,   349,   350,   351,   352,    -1,    -1,    -1,    -1,   357,
04985       -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,    -1,    -1,
04986       -1,    -1,    -1,   371,   372,    -1,    -1,    -1,    -1,   377,
04987       -1,   379,    -1,   381,    -1,    -1,   384,   385,     4,    -1,
04988        6,     7,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,
04989       -1,    17,    18,    19,    -1,    21,    -1,    -1,    24,    25,
04990       26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
04991       36,    37,    38,    39,    -1,    41,    42,    -1,    44,    45,
04992       -1,    47,    48,    -1,    50,    51,    52,    53,    54,    55,
04993       -1,    57,    58,    -1,    60,    61,    62,    -1,    -1,    65,
04994       66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
04995       -1,    -1,    -1,    -1,    80,    81,    82,    -1,    -1,    85,
04996       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    94,    -1,
04997       -1,    97,    98,    99,    -1,    -1,   102,    -1,   104,   105,
04998       -1,   107,   108,    -1,   110,    -1,   112,   113,   114,   115,
04999      116,   117,   118,   119,   120,   121,   122,   123,    -1,    -1,
05000       -1,   127,   128,    -1,   130,    -1,   132,    -1,   134,   135,
05001       -1,   137,    -1,    -1,    -1,   141,   142,   143,    -1,   145,
05002      146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,   155,
05003      156,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,   165,
05004       -1,   167,   168,    -1,    -1,   171,   172,    -1,    -1,    -1,
05005       -1,    -1,   178,   179,    -1,   181,   182,    -1,    -1,   185,
05006      186,   187,   188,   189,    -1,    -1,   192,   193,   194,    -1,
05007      196,   197,   198,   199,   200,   201,    -1,    -1,   204,   205,
05008      206,   207,   208,   209,   210,   211,    -1,   213,   214,    -1,
05009      216,   217,   218,   219,    -1,    -1,    -1,    -1,    -1,    -1,
05010       -1,    -1,   228,   229,    -1,   231,    -1,   233,   234,   235,
05011      236,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
05012       -1,   247,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
05013      256,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
05014      266,    -1,    -1,    -1,   270,   271,   272,   273,    -1,    -1,
05015      276,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,    -1,
05016       -1,    -1,    -1,    -1,    -1,   291,   292,   293,   294,   295,
05017       -1,    -1,   298,   299,   300,   301,   302,   303,   304,   305,
05018      306,    -1,    -1,   309,    -1,   311,   312,    -1,   314,   315,
05019      316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
05020      326,   327,    -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,
05021      336,    -1,    -1,   339,   340,   341,   342,   343,    -1,    -1,
05022      346,   347,    -1,   349,   350,   351,   352,    -1,    -1,    -1,
05023       -1,   357,    -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,
05024       -1,    -1,    -1,    -1,    -1,   371,   372,    -1,    -1,    -1,
05025       -1,   377,    -1,   379,    -1,   381,    -1,    -1,   384,   385,
05026        4,    -1,     6,     7,     8,    -1,    -1,    -1,    -1,    13,
05027       -1,    -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,
05028       24,    25,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05029       -1,    35,    36,    37,    38,    39,    -1,    41,    42,    -1,
05030       44,    45,    -1,    47,    48,    -1,    50,    51,    52,    53,
05031       54,    55,    -1,    57,    58,    -1,    60,    61,    62,    -1,
05032       -1,    65,    66,    67,    -1,    69,    70,    71,    72,    73,
05033       74,    75,    -1,    -1,    -1,    -1,    80,    81,    82,    -1,
05034       -1,    85,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,
05035       94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
05036      104,   105,    -1,   107,   108,    -1,   110,    -1,   112,   113,
05037      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
05038       -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,
05039      134,   135,    -1,   137,    -1,    -1,    -1,   141,   142,   143,
05040       -1,   145,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
05041       -1,   155,   156,    -1,    -1,    -1,    -1,   161,    -1,    -1,
05042       -1,   165,    -1,   167,   168,    -1,    -1,   171,   172,    -1,
05043       -1,    -1,    -1,    -1,   178,   179,    -1,   181,   182,    -1,
05044       -1,   185,   186,   187,   188,   189,    -1,    -1,   192,   193,
05045      194,    -1,   196,   197,   198,   199,   200,   201,    -1,    -1,
05046      204,   205,   206,   207,   208,   209,   210,   211,    -1,   213,
05047      214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,
05048       -1,    -1,    -1,    -1,   228,   229,    -1,   231,    -1,   233,
05049      234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,
05050       -1,    -1,    -1,   247,   248,   249,    -1,    -1,    -1,   253,
05051       -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
05052       -1,   265,   266,    -1,    -1,    -1,   270,   271,   272,   273,
05053       -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,
05054       -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,   293,
05055      294,   295,    -1,    -1,   298,   299,   300,   301,   302,   303,
05056      304,   305,   306,    -1,    -1,   309,    -1,   311,   312,    -1,
05057      314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
05058      324,   325,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,
05059       -1,    -1,   336,    -1,    -1,   339,   340,   341,   342,   343,
05060       -1,    -1,   346,   347,    -1,   349,   350,   351,   352,    -1,
05061       -1,    -1,    -1,   357,    -1,    -1,    -1,   361,    -1,    -1,
05062       -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,   372,    -1,
05063       -1,    -1,    -1,   377,    -1,   379,    -1,   381,    -1,    -1,
05064      384,   385,     4,    -1,     6,     7,     8,     9,    -1,    -1,
05065       -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,    21,
05066       -1,    -1,    24,    25,    26,    -1,    28,    29,    -1,    31,
05067       -1,    -1,    -1,    35,    36,    37,    38,    39,    -1,    41,
05068       42,    -1,    44,    45,    -1,    47,    48,    -1,    50,    51,
05069       52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
05070       62,    -1,    -1,    65,    66,    67,    -1,    69,    70,    71,
05071       72,    73,    74,    75,    -1,    -1,    -1,    -1,    80,    81,
05072       82,    -1,    -1,    85,    -1,    -1,    -1,    -1,    90,    91,
05073       -1,    -1,    94,    -1,    -1,    97,    98,    99,    -1,    -1,
05074      102,    -1,   104,   105,    -1,   107,   108,    -1,   110,    -1,
05075      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
05076      122,   123,    -1,    -1,    -1,   127,   128,    -1,   130,    -1,
05077      132,    -1,   134,   135,    -1,   137,    -1,    -1,    -1,   141,
05078      142,   143,    -1,   145,   146,    -1,   148,   149,    -1,    -1,
05079       -1,    -1,    -1,   155,   156,    -1,    -1,    -1,    -1,   161,
05080       -1,    -1,    -1,   165,    -1,   167,   168,    -1,    -1,   171,
05081      172,    -1,    -1,    -1,    -1,    -1,   178,   179,    -1,   181,
05082      182,    -1,    -1,   185,   186,   187,   188,   189,    -1,    -1,
05083      192,   193,   194,    -1,   196,   197,   198,   199,   200,   201,
05084       -1,    -1,   204,   205,   206,    -1,   208,   209,   210,   211,
05085       -1,   213,   214,    -1,   216,   217,   218,   219,    -1,    -1,
05086       -1,    -1,    -1,    -1,    -1,    -1,   228,   229,    -1,   231,
05087       -1,   233,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,
05088      242,    -1,    -1,    -1,    -1,   247,   248,   249,    -1,    -1,
05089       -1,   253,    -1,    -1,   256,   257,   258,   259,   260,   261,
05090      262,   263,    -1,   265,   266,    -1,    -1,    -1,   270,   271,
05091      272,   273,    -1,    -1,   276,    -1,   278,   279,   280,    -1,
05092       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,
05093      292,   293,   294,   295,    -1,    -1,   298,   299,   300,   301,
05094      302,   303,   304,   305,   306,    -1,    -1,   309,    -1,   311,
05095      312,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
05096      322,   323,   324,   325,   326,   327,    -1,    -1,    -1,   331,
05097       -1,    -1,    -1,    -1,   336,    -1,    -1,   339,   340,   341,
05098      342,   343,    -1,    -1,   346,   347,    -1,   349,   350,   351,
05099      352,    -1,    -1,    -1,    -1,   357,    -1,    -1,    -1,   361,
05100       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
05101      372,    -1,    -1,    -1,    -1,   377,    -1,   379,    -1,   381,
05102       -1,    -1,   384,   385,     4,    -1,     6,     7,     8,    -1,
05103       -1,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,
05104       -1,    21,    -1,    -1,    24,    25,    26,    -1,    28,    29,
05105       -1,    31,    -1,    -1,    -1,    35,    36,    37,    38,    39,
05106       -1,    41,    42,    -1,    44,    45,    -1,    47,    48,    -1,
05107       50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
05108       60,    61,    62,    -1,    -1,    65,    66,    67,    -1,    69,
05109       70,    71,    72,    73,    74,    75,    -1,    -1,    -1,    -1,
05110       80,    81,    82,    -1,    -1,    85,    -1,    -1,    -1,    -1,
05111       90,    91,    -1,    -1,    94,    -1,    -1,    97,    98,    99,
05112       -1,    -1,   102,    -1,   104,   105,    -1,   107,   108,    -1,
05113      110,    -1,   112,   113,   114,   115,   116,   117,   118,   119,
05114      120,   121,   122,   123,    -1,    -1,    -1,   127,   128,    -1,
05115      130,    -1,   132,    -1,   134,   135,    -1,   137,    -1,    -1,
05116       -1,   141,   142,   143,    -1,   145,   146,    -1,   148,   149,
05117       -1,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
05118       -1,   161,    -1,    -1,    -1,   165,    -1,   167,   168,    -1,
05119       -1,   171,   172,    -1,    -1,    -1,    -1,    -1,   178,   179,
05120       -1,   181,   182,    -1,    -1,   185,   186,   187,   188,   189,
05121       -1,    -1,   192,   193,   194,    -1,   196,   197,   198,   199,
05122      200,   201,    -1,    -1,   204,   205,   206,   207,   208,   209,
05123      210,   211,    -1,   213,   214,    -1,   216,   217,   218,   219,
05124       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   228,   229,
05125       -1,   231,    -1,   233,   234,   235,   236,    -1,    -1,    -1,
05126       -1,    -1,   242,    -1,    -1,    -1,    -1,   247,   248,   249,
05127       -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,   259,
05128      260,   261,   262,   263,    -1,   265,   266,    -1,    -1,    -1,
05129      270,   271,   272,   273,    -1,    -1,   276,    -1,   278,   279,
05130      280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05131       -1,   291,   292,   293,   294,   295,    -1,    -1,   298,   299,
05132      300,   301,   302,   303,   304,   305,   306,    -1,    -1,   309,
05133       -1,   311,   312,    -1,   314,   315,   316,   317,    -1,    -1,
05134      320,   321,   322,   323,   324,   325,   326,   327,    -1,    -1,
05135       -1,   331,    -1,    -1,    -1,    -1,   336,    -1,    -1,   339,
05136      340,   341,   342,   343,    -1,    -1,   346,   347,    -1,   349,
05137      350,   351,   352,    -1,    -1,    -1,    -1,   357,    -1,    -1,
05138       -1,   361,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05139       -1,   371,   372,    -1,    -1,    -1,    -1,   377,    -1,   379,
05140       -1,   381,    -1,    -1,   384,   385,     4,    -1,     6,     7,
05141        8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,
05142       18,    19,    -1,    21,    -1,    -1,    24,    25,    26,    -1,
05143       28,    29,    -1,    31,    -1,    -1,    -1,    35,    36,    37,
05144       38,    39,    -1,    41,    42,    -1,    44,    45,    -1,    47,
05145       48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
05146       58,    -1,    60,    61,    62,    -1,    -1,    65,    66,    67,
05147       -1,    69,    70,    71,    72,    73,    74,    75,    -1,    -1,
05148       -1,    -1,    80,    81,    82,    -1,    -1,    85,    -1,    -1,
05149       -1,    -1,    90,    91,    -1,    -1,    94,    -1,    -1,    97,
05150       98,    99,    -1,    -1,   102,    -1,   104,   105,    -1,   107,
05151      108,    -1,   110,    -1,   112,   113,   114,   115,   116,   117,
05152      118,   119,   120,   121,   122,   123,    -1,    -1,    -1,   127,
05153      128,    -1,   130,    -1,   132,    -1,   134,   135,    -1,   137,
05154       -1,    -1,    -1,   141,   142,   143,    -1,   145,   146,    -1,
05155      148,   149,    -1,    -1,    -1,    -1,    -1,   155,   156,    -1,
05156       -1,    -1,    -1,   161,    -1,    -1,    -1,   165,    -1,   167,
05157      168,    -1,    -1,   171,   172,    -1,    -1,    -1,    -1,    -1,
05158      178,   179,    -1,   181,   182,    -1,    -1,   185,   186,   187,
05159      188,   189,    -1,    -1,   192,   193,   194,    -1,   196,   197,
05160      198,   199,   200,   201,    -1,    -1,   204,   205,   206,   207,
05161      208,   209,   210,   211,    -1,   213,   214,    -1,   216,   217,
05162      218,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05163      228,   229,    -1,   231,    -1,   233,   234,   235,   236,    -1,
05164       -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,
05165      248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
05166      258,   259,   260,   261,   262,   263,    -1,   265,   266,    -1,
05167       -1,    -1,   270,   271,   272,   273,    -1,    -1,   276,    -1,
05168      278,   279,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05169       -1,    -1,    -1,   291,   292,   293,   294,   295,    -1,    -1,
05170      298,   299,   300,   301,   302,   303,   304,   305,   306,    -1,
05171       -1,   309,    -1,   311,   312,    -1,   314,   315,   316,   317,
05172       -1,    -1,   320,   321,   322,   323,   324,   325,   326,   327,
05173       -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,   336,    -1,
05174       -1,   339,   340,   341,   342,   343,    -1,    -1,   346,   347,
05175       -1,   349,   350,   351,   352,    -1,    -1,    -1,    -1,   357,
05176       -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,    -1,    -1,
05177       -1,    -1,    -1,   371,   372,    -1,    -1,    -1,    -1,   377,
05178       -1,   379,    -1,   381,    -1,    -1,   384,   385,     4,    -1,
05179        6,     7,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,
05180       -1,    17,    18,    19,    -1,    21,    -1,    -1,    24,    25,
05181       26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
05182       36,    37,    38,    39,    -1,    41,    42,    -1,    44,    45,
05183       -1,    47,    48,    -1,    50,    51,    52,    53,    54,    55,
05184       -1,    57,    58,    -1,    60,    61,    62,    -1,    -1,    65,
05185       66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
05186       -1,    -1,    -1,    -1,    80,    81,    82,    -1,    -1,    85,
05187       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    94,    -1,
05188       -1,    97,    98,    99,    -1,    -1,   102,    -1,   104,   105,
05189       -1,   107,   108,    -1,   110,    -1,   112,   113,   114,   115,
05190      116,   117,   118,   119,   120,   121,   122,   123,    -1,    -1,
05191       -1,   127,   128,    -1,   130,    -1,   132,    -1,   134,   135,
05192       -1,   137,    -1,    -1,    -1,   141,   142,   143,    -1,   145,
05193      146,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,   155,
05194      156,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,   165,
05195       -1,   167,   168,    -1,    -1,   171,   172,    -1,    -1,    -1,
05196       -1,    -1,   178,   179,    -1,   181,   182,    -1,    -1,   185,
05197      186,   187,   188,   189,    -1,    -1,   192,   193,   194,    -1,
05198      196,   197,   198,   199,   200,   201,    -1,    -1,   204,   205,
05199      206,   207,   208,   209,   210,   211,    -1,   213,   214,    -1,
05200      216,   217,   218,   219,    -1,    -1,    -1,    -1,    -1,    -1,
05201       -1,    -1,   228,   229,    -1,   231,    -1,   233,   234,   235,
05202      236,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
05203       -1,   247,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
05204      256,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
05205      266,    -1,    -1,    -1,   270,   271,   272,   273,    -1,    -1,
05206      276,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,    -1,
05207       -1,    -1,    -1,    -1,    -1,   291,   292,   293,   294,   295,
05208       -1,    -1,   298,   299,   300,   301,   302,   303,   304,   305,
05209      306,    -1,    -1,   309,    -1,   311,   312,    -1,   314,   315,
05210      316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
05211      326,   327,    -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,
05212      336,    -1,    -1,   339,   340,   341,   342,   343,    -1,    -1,
05213      346,   347,    -1,   349,   350,   351,   352,    -1,    -1,    -1,
05214       -1,   357,    -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,
05215       -1,    -1,    -1,    -1,    -1,   371,   372,    -1,    -1,    -1,
05216       -1,   377,    -1,   379,    -1,   381,    -1,    -1,   384,   385,
05217        4,    -1,     6,     7,     8,    -1,    -1,    -1,    -1,    13,
05218       -1,    -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,
05219       24,    25,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05220       -1,    35,    36,    37,    38,    39,    -1,    41,    42,    -1,
05221       44,    45,    -1,    47,    48,    -1,    50,    51,    52,    53,
05222       54,    55,    -1,    57,    58,    -1,    60,    61,    62,    -1,
05223       -1,    65,    66,    67,    -1,    69,    70,    71,    72,    73,
05224       74,    75,    -1,    -1,    -1,    -1,    80,    81,    82,    -1,
05225       -1,    85,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,
05226       94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
05227      104,   105,    -1,   107,   108,    -1,   110,    -1,   112,   113,
05228      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
05229       -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,
05230      134,   135,    -1,   137,    -1,    -1,    -1,   141,   142,   143,
05231       -1,   145,   146,    -1,   148,   149,    -1,    -1,    -1,    -1,
05232       -1,   155,   156,    -1,    -1,    -1,    -1,   161,    -1,    -1,
05233       -1,   165,    -1,   167,   168,    -1,    -1,   171,   172,    -1,
05234       -1,    -1,    -1,    -1,   178,   179,    -1,   181,   182,    -1,
05235       -1,   185,   186,   187,   188,   189,    -1,    -1,   192,   193,
05236      194,    -1,   196,   197,   198,   199,   200,   201,    -1,    -1,
05237      204,   205,   206,    -1,   208,   209,   210,   211,    -1,   213,
05238      214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,
05239       -1,    -1,    -1,    -1,   228,   229,    -1,   231,    -1,   233,
05240      234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,
05241       -1,    -1,    -1,   247,   248,   249,    -1,    -1,    -1,   253,
05242       -1,    -1,   256,   257,   258,   259,   260,   261,   262,   263,
05243       -1,   265,   266,    -1,    -1,    -1,   270,   271,   272,   273,
05244       -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,
05245       -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,   293,
05246      294,   295,    -1,    -1,   298,   299,   300,   301,   302,   303,
05247      304,   305,   306,    -1,    -1,   309,    -1,   311,   312,    -1,
05248      314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
05249      324,   325,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,
05250       -1,    -1,   336,    -1,    -1,   339,   340,   341,   342,   343,
05251       -1,    -1,   346,   347,    -1,   349,   350,   351,   352,    -1,
05252       -1,    -1,    -1,   357,    -1,    -1,    -1,   361,    -1,    -1,
05253       -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,   372,    -1,
05254       -1,    -1,    -1,   377,    -1,   379,    -1,   381,    -1,    -1,
05255      384,   385,     4,    -1,     6,     7,     8,    -1,    -1,    -1,
05256       -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,    21,
05257       -1,    -1,    24,    25,    26,    -1,    28,    29,    -1,    31,
05258       -1,    -1,    -1,    35,    36,    37,    38,    39,    -1,    41,
05259       42,    -1,    44,    45,    -1,    47,    48,    -1,    50,    51,
05260       52,    53,    54,    55,    -1,    57,    58,    -1,    60,    61,
05261       62,    -1,    -1,    65,    66,    67,    -1,    69,    70,    71,
05262       72,    73,    74,    75,    -1,    -1,    -1,    -1,    80,    81,
05263       82,    -1,    -1,    85,    -1,    -1,    -1,    -1,    90,    91,
05264       -1,    -1,    94,    -1,    -1,    97,    98,    99,    -1,    -1,
05265      102,    -1,   104,   105,    -1,   107,   108,    -1,   110,    -1,
05266      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
05267      122,   123,    -1,    -1,    -1,   127,   128,    -1,   130,    -1,
05268      132,    -1,   134,   135,    -1,   137,    -1,    -1,    -1,   141,
05269      142,   143,    -1,   145,   146,    -1,   148,   149,    -1,    -1,
05270       -1,    -1,    -1,   155,   156,    -1,    -1,    -1,    -1,   161,
05271       -1,    -1,    -1,   165,    -1,   167,   168,    -1,    -1,   171,
05272      172,    -1,    -1,    -1,    -1,    -1,   178,   179,    -1,   181,
05273      182,    -1,    -1,   185,   186,   187,   188,   189,    -1,    -1,
05274      192,   193,   194,    -1,   196,   197,   198,   199,   200,   201,
05275       -1,    -1,   204,   205,   206,    -1,   208,   209,   210,   211,
05276       -1,   213,   214,    -1,   216,   217,   218,   219,    -1,    -1,
05277       -1,    -1,    -1,    -1,    -1,    -1,   228,   229,    -1,   231,
05278       -1,   233,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,
05279      242,    -1,    -1,    -1,    -1,   247,   248,   249,    -1,    -1,
05280       -1,   253,    -1,    -1,   256,   257,   258,   259,   260,   261,
05281      262,   263,    -1,   265,   266,    -1,    -1,    -1,   270,   271,
05282      272,   273,    -1,    -1,   276,    -1,   278,   279,   280,    -1,
05283       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,
05284      292,   293,   294,   295,    -1,    -1,   298,   299,   300,   301,
05285      302,   303,   304,   305,   306,    -1,    -1,   309,    -1,   311,
05286      312,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
05287      322,   323,   324,   325,   326,   327,    -1,    -1,    -1,   331,
05288       -1,    -1,    -1,    -1,   336,    -1,    -1,   339,   340,   341,
05289      342,   343,    -1,    -1,   346,   347,    -1,   349,   350,   351,
05290      352,    -1,    -1,    -1,    -1,   357,    -1,    -1,    -1,   361,
05291       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
05292      372,    -1,    -1,    -1,    -1,   377,    -1,   379,    -1,   381,
05293       -1,    -1,   384,   385,     4,    -1,     6,     7,     8,    -1,
05294       -1,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,
05295       -1,    21,    -1,    -1,    24,    25,    26,    -1,    28,    29,
05296       -1,    31,    -1,    -1,    -1,    35,    36,    37,    38,    39,
05297       -1,    41,    42,    -1,    44,    45,    -1,    47,    48,    -1,
05298       50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
05299       60,    61,    62,    -1,    -1,    65,    66,    67,    -1,    69,
05300       70,    71,    72,    73,    74,    75,    -1,    -1,    -1,    -1,
05301       80,    81,    82,    -1,    -1,    85,    -1,    -1,    -1,    -1,
05302       90,    91,    -1,    -1,    94,    -1,    -1,    97,    98,    99,
05303       -1,    -1,   102,    -1,   104,   105,    -1,   107,   108,    -1,
05304      110,    -1,   112,   113,   114,   115,   116,   117,   118,   119,
05305      120,   121,   122,   123,    -1,    -1,    -1,   127,   128,    -1,
05306      130,    -1,   132,    -1,   134,   135,    -1,   137,    -1,    -1,
05307       -1,   141,   142,   143,    -1,   145,   146,    -1,   148,   149,
05308       -1,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
05309       -1,   161,    -1,    -1,    -1,   165,    -1,   167,   168,    -1,
05310       -1,   171,   172,    -1,    -1,    -1,    -1,    -1,   178,   179,
05311       -1,   181,   182,    -1,    -1,   185,   186,   187,   188,   189,
05312       -1,    -1,   192,   193,   194,    -1,   196,   197,   198,   199,
05313      200,   201,    -1,    -1,   204,   205,   206,    -1,   208,   209,
05314      210,   211,    -1,   213,   214,    -1,   216,   217,   218,   219,
05315       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   228,   229,
05316       -1,   231,    -1,   233,   234,   235,   236,    -1,    -1,    -1,
05317       -1,    -1,   242,    -1,    -1,    -1,    -1,   247,   248,   249,
05318       -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,   259,
05319      260,   261,   262,   263,    -1,   265,   266,    -1,    -1,    -1,
05320      270,   271,   272,   273,    -1,    -1,   276,    -1,   278,   279,
05321      280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05322       -1,   291,   292,   293,   294,   295,    -1,    -1,   298,   299,
05323      300,   301,   302,   303,   304,   305,   306,    -1,    -1,   309,
05324       -1,   311,   312,    -1,   314,   315,   316,   317,    -1,    -1,
05325      320,   321,   322,   323,   324,   325,   326,   327,    -1,    -1,
05326       -1,   331,    -1,    -1,    -1,    -1,   336,    -1,    -1,   339,
05327      340,   341,   342,   343,    -1,    -1,   346,   347,    -1,   349,
05328      350,   351,   352,    -1,    -1,    -1,    -1,   357,    -1,    -1,
05329       -1,   361,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05330       -1,   371,   372,    -1,    -1,    -1,    -1,   377,    -1,   379,
05331       -1,   381,    -1,    -1,   384,   385,     4,    -1,     6,     7,
05332        8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,
05333       18,    19,    -1,    21,    -1,    -1,    -1,    -1,    26,    -1,
05334       28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
05335       -1,    39,    -1,    -1,    42,    -1,    44,    45,    -1,    47,
05336       48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
05337       58,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    -1,
05338       -1,    -1,    70,    71,    72,    -1,    -1,    75,    -1,    -1,
05339       -1,    -1,    80,    81,    -1,    -1,    -1,    -1,    -1,    -1,
05340       -1,    -1,    90,    91,    -1,    -1,    94,    -1,    -1,    97,
05341       98,    99,    -1,    -1,   102,    -1,   104,   105,    -1,   107,
05342      108,    -1,   110,    -1,   112,   113,    -1,    -1,   116,    -1,
05343       -1,   119,   120,   121,    -1,   123,    -1,    -1,    -1,   127,
05344      128,    -1,   130,    -1,   132,    -1,    -1,   135,    -1,    -1,
05345       -1,    -1,    -1,   141,   142,   143,    -1,   145,    -1,    -1,
05346      148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05347       -1,    -1,    -1,   161,    -1,    -1,    -1,   165,    -1,    -1,
05348      168,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,
05349      178,   179,    -1,   181,    -1,    -1,    -1,    -1,   186,   187,
05350      188,   189,    -1,    -1,   192,    -1,   194,    -1,   196,    -1,
05351      198,   199,   200,   201,    -1,    -1,   204,   205,   206,    -1,
05352       -1,   209,    -1,    -1,    -1,   213,   214,    -1,   216,   217,
05353      218,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05354      228,    -1,    -1,   231,    -1,   233,   234,   235,   236,    -1,
05355       -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,
05356       -1,    -1,    -1,    -1,    -1,   253,    -1,    -1,    -1,   257,
05357      258,   259,   260,   261,   262,   263,    -1,   265,   266,    -1,
05358       -1,    -1,   270,   271,   272,   273,    -1,    -1,   276,    -1,
05359      278,   279,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05360       -1,    -1,    -1,   291,   292,    -1,    -1,   295,    -1,    -1,
05361      298,   299,   300,    -1,    -1,   303,    -1,   305,   306,    -1,
05362       -1,   309,    -1,    -1,   312,    -1,   314,    -1,   316,   317,
05363       -1,    -1,   320,    -1,    -1,   323,   324,    -1,   326,   327,
05364       -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,   336,    -1,
05365       -1,    -1,    -1,   341,    -1,   343,    -1,    -1,   346,    -1,
05366       -1,    -1,    -1,   351,   352,    -1,    -1,    -1,    -1,   357,
05367       -1,    -1,    -1,   361,    -1,    -1,     4,    -1,     6,     7,
05368        8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,
05369       18,    19,   380,    21,    -1,    -1,   384,   385,    26,    -1,
05370       28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
05371       -1,    39,    -1,    -1,    42,    -1,    44,    45,    -1,    47,
05372       48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
05373       58,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    -1,
05374       -1,    -1,    70,    71,    72,    -1,    -1,    75,    -1,    -1,
05375       -1,    -1,    80,    81,    -1,    -1,    -1,    -1,    -1,    -1,
05376       -1,    -1,    90,    91,    -1,    -1,    94,    -1,    -1,    97,
05377       98,    99,    -1,    -1,   102,    -1,   104,   105,    -1,   107,
05378      108,    -1,   110,    -1,   112,   113,    -1,    -1,   116,    -1,
05379       -1,   119,   120,   121,    -1,   123,    -1,    -1,    -1,   127,
05380      128,    -1,   130,    -1,   132,    -1,    -1,   135,    -1,    -1,
05381       -1,    -1,    -1,   141,   142,   143,    -1,   145,    -1,    -1,
05382      148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05383       -1,    -1,    -1,   161,    -1,    -1,    -1,   165,    -1,    -1,
05384      168,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,
05385      178,   179,    -1,   181,    -1,    -1,    -1,    -1,   186,   187,
05386      188,   189,    -1,    -1,   192,    -1,   194,    -1,   196,    -1,
05387      198,   199,   200,   201,    -1,    -1,   204,   205,   206,    -1,
05388       -1,   209,    -1,    -1,    -1,   213,   214,    -1,   216,   217,
05389      218,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05390      228,    -1,    -1,   231,    -1,   233,   234,   235,   236,    -1,
05391       -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,
05392       -1,    -1,    -1,    -1,    -1,   253,    -1,    -1,    -1,   257,
05393      258,   259,   260,   261,   262,   263,    -1,   265,   266,    -1,
05394       -1,    -1,   270,   271,   272,   273,    -1,    -1,   276,    -1,
05395      278,   279,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05396       -1,    -1,    -1,   291,   292,    -1,    -1,   295,    -1,    -1,
05397      298,   299,   300,    -1,    -1,   303,    -1,   305,   306,    -1,
05398       -1,   309,    -1,    -1,   312,    -1,   314,    -1,   316,   317,
05399       -1,    -1,   320,    -1,    -1,   323,   324,    -1,   326,   327,
05400       -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,   336,    -1,
05401       -1,    -1,    -1,   341,    -1,   343,    -1,    -1,   346,    -1,
05402       -1,    -1,    -1,   351,   352,    -1,    -1,    -1,     4,   357,
05403        6,     7,     8,   361,    -1,    -1,    -1,    13,    -1,    -1,
05404       -1,    17,    18,    19,    -1,    21,    -1,    -1,    -1,    -1,
05405       26,    -1,    28,    29,    -1,    31,   384,   385,    -1,    35,
05406       -1,    -1,    -1,    39,    -1,    -1,    42,    -1,    44,    45,
05407       -1,    47,    48,    -1,    50,    51,    52,    53,    54,    55,
05408       -1,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    65,
05409       -1,    -1,    -1,    -1,    70,    71,    72,    -1,    -1,    75,
05410       -1,    -1,    -1,    -1,    80,    81,    -1,    -1,    -1,    -1,
05411       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    94,    -1,
05412       -1,    97,    98,    99,    -1,    -1,   102,    -1,   104,   105,
05413       -1,   107,   108,    -1,   110,    -1,   112,   113,    -1,    -1,
05414      116,    -1,    -1,   119,   120,   121,    -1,   123,    -1,    -1,
05415       -1,   127,   128,    -1,   130,    -1,   132,    -1,    -1,   135,
05416       -1,    -1,    -1,    -1,    -1,   141,   142,   143,    -1,   145,
05417       -1,    -1,   148,   149,   150,    -1,    -1,    -1,    -1,    -1,
05418       -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,   165,
05419      166,    -1,   168,    -1,    -1,    -1,   172,    -1,   174,    -1,
05420       -1,    -1,   178,   179,    -1,   181,    -1,    -1,    -1,    -1,
05421      186,   187,   188,   189,    -1,    -1,   192,    -1,   194,    -1,
05422      196,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
05423      206,    -1,    -1,   209,    -1,    -1,    -1,   213,   214,    -1,
05424      216,   217,   218,   219,    -1,    -1,    -1,    -1,    -1,    -1,
05425       -1,    -1,   228,    -1,    -1,   231,    -1,   233,   234,   235,
05426      236,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
05427       -1,   247,    -1,    -1,    -1,    -1,    -1,   253,    -1,    -1,
05428       -1,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
05429      266,   267,    -1,    -1,   270,   271,   272,   273,    -1,    -1,
05430      276,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,    -1,
05431       -1,    -1,    -1,    -1,    -1,   291,   292,    -1,    -1,   295,
05432       -1,    -1,   298,   299,   300,    -1,    -1,   303,    -1,   305,
05433      306,    -1,    -1,   309,    -1,    -1,   312,    -1,   314,    -1,
05434      316,   317,    -1,    -1,   320,    -1,    -1,   323,   324,    -1,
05435      326,   327,    -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,
05436      336,    -1,    -1,    -1,    -1,   341,    -1,   343,    -1,     4,
05437      346,     6,     7,     8,    -1,   351,   352,    -1,    13,    -1,
05438       -1,   357,    17,    18,    19,   361,    21,    -1,    -1,    -1,
05439       -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,
05440       35,    -1,    -1,    -1,    39,    -1,    -1,    42,   384,    44,
05441       45,    -1,    47,    48,    -1,    50,    51,    52,    53,    54,
05442       55,    -1,    57,    58,    59,    60,    -1,    -1,    -1,    -1,
05443       65,    -1,    -1,    -1,    -1,    70,    71,    72,    -1,    -1,
05444       75,    -1,    -1,    -1,    -1,    80,    81,    -1,    -1,    -1,
05445       -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    94,
05446       -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,   104,
05447      105,    -1,   107,   108,    -1,   110,    -1,   112,   113,    -1,
05448       -1,   116,    -1,    -1,   119,   120,   121,    -1,   123,    -1,
05449       -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,    -1,
05450      135,    -1,    -1,    -1,    -1,    -1,   141,   142,   143,    -1,
05451      145,    -1,    -1,   148,   149,   150,    -1,    -1,    -1,    -1,
05452       -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,
05453      165,   166,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,
05454       -1,    -1,    -1,   178,   179,    -1,   181,    -1,    -1,    -1,
05455       -1,   186,   187,   188,   189,    -1,    -1,   192,    -1,   194,
05456       -1,   196,    -1,   198,   199,   200,   201,    -1,    -1,   204,
05457      205,   206,    -1,    -1,   209,    -1,    -1,    -1,   213,   214,
05458       -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,    -1,
05459       -1,    -1,    -1,   228,    -1,    -1,   231,    -1,   233,   234,
05460      235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,
05461       -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,   253,    -1,
05462       -1,    -1,   257,   258,   259,   260,   261,   262,   263,    -1,
05463      265,   266,    -1,    -1,    -1,   270,   271,   272,   273,    -1,
05464       -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,
05465       -1,    -1,    -1,    -1,    -1,    -1,   291,   292,    -1,    -1,
05466      295,    -1,    -1,   298,   299,   300,    -1,    -1,   303,    -1,
05467      305,   306,    -1,    -1,   309,    -1,    -1,   312,    -1,   314,
05468       -1,   316,   317,    -1,    -1,   320,    -1,    -1,   323,   324,
05469       -1,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,    -1,
05470       -1,   336,    -1,    -1,    -1,    -1,   341,    -1,   343,    -1,
05471        4,   346,     6,     7,     8,    -1,   351,   352,    -1,    13,
05472       -1,    -1,   357,    17,    18,    19,   361,    21,    -1,    -1,
05473       -1,    -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05474       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,   384,
05475       44,    45,    -1,    47,    48,    -1,    50,    51,    52,    53,
05476       54,    55,    -1,    57,    58,    -1,    60,    -1,    -1,    -1,
05477       -1,    65,    -1,    -1,    -1,    -1,    70,    71,    72,    -1,
05478       -1,    75,    -1,    -1,    -1,    -1,    80,    81,    -1,    -1,
05479       -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,
05480       94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
05481      104,   105,    -1,   107,   108,    -1,   110,    -1,   112,   113,
05482       -1,    -1,   116,    -1,    -1,   119,   120,   121,    -1,   123,
05483       -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,
05484       -1,   135,    -1,    -1,    -1,    -1,    -1,   141,   142,   143,
05485       -1,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,    -1,
05486       -1,    -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,
05487       -1,   165,    -1,    -1,   168,    -1,    -1,    -1,   172,    -1,
05488       -1,    -1,    -1,    -1,   178,   179,    -1,   181,    -1,    -1,
05489       -1,    -1,   186,   187,   188,   189,    -1,    -1,   192,    -1,
05490      194,    -1,   196,    -1,   198,   199,   200,   201,    -1,    -1,
05491      204,   205,   206,    -1,    -1,   209,    -1,    -1,    -1,   213,
05492      214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,
05493       -1,    -1,    -1,    -1,   228,    -1,    -1,   231,    -1,   233,
05494      234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,
05495       -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,   253,
05496       -1,    -1,    -1,   257,   258,   259,   260,   261,   262,   263,
05497       -1,   265,   266,   267,    -1,    -1,   270,   271,   272,   273,
05498       -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,
05499       -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,    -1,
05500       -1,   295,    -1,    -1,   298,   299,   300,    -1,    -1,   303,
05501       -1,   305,   306,    -1,    -1,   309,    -1,    -1,   312,    -1,
05502      314,    -1,   316,   317,    -1,    -1,   320,    -1,    -1,   323,
05503      324,    -1,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,
05504       -1,    -1,   336,    -1,    -1,    -1,    -1,   341,    -1,   343,
05505       -1,    -1,   346,    -1,    -1,    -1,    -1,   351,   352,    -1,
05506       -1,    -1,    -1,   357,    -1,    -1,    -1,   361,    -1,    -1,
05507        4,    -1,     6,     7,     8,    -1,    -1,    -1,    -1,    13,
05508       -1,    -1,    -1,    17,    18,    19,   380,    21,    -1,    -1,
05509      384,    -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05510       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    -1,
05511       44,    45,    -1,    47,    48,    -1,    50,    51,    52,    53,
05512       54,    55,    -1,    57,    58,    -1,    60,    -1,    -1,    -1,
05513       -1,    65,    -1,    -1,    -1,    -1,    70,    71,    72,    -1,
05514       -1,    75,    -1,    -1,    -1,    -1,    80,    81,    -1,    -1,
05515       -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,
05516       94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
05517      104,   105,    -1,   107,   108,    -1,   110,    -1,   112,   113,
05518       -1,    -1,   116,    -1,    -1,   119,   120,   121,    -1,   123,
05519       -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,
05520       -1,   135,    -1,    -1,    -1,    -1,    -1,   141,   142,   143,
05521       -1,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,    -1,
05522       -1,    -1,    -1,   157,    -1,    -1,    -1,   161,    -1,    -1,
05523       -1,   165,    -1,    -1,   168,    -1,    -1,    -1,   172,    -1,
05524       -1,    -1,    -1,    -1,   178,   179,    -1,   181,    -1,    -1,
05525       -1,    -1,   186,   187,   188,   189,    -1,    -1,   192,    -1,
05526      194,    -1,   196,    -1,   198,   199,   200,   201,    -1,    -1,
05527      204,   205,   206,    -1,    -1,   209,    -1,    -1,    -1,   213,
05528      214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,
05529       -1,    -1,    -1,    -1,   228,    -1,    -1,   231,    -1,   233,
05530      234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,
05531       -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,   253,
05532       -1,    -1,    -1,   257,   258,   259,   260,   261,   262,   263,
05533       -1,   265,   266,    -1,    -1,    -1,   270,   271,   272,   273,
05534       -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,
05535       -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,    -1,
05536       -1,   295,    -1,    -1,   298,   299,   300,    -1,    -1,   303,
05537       -1,   305,   306,    -1,    -1,   309,    -1,    -1,   312,    -1,
05538      314,    -1,   316,   317,    -1,    -1,   320,    -1,    -1,   323,
05539      324,    -1,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,
05540       -1,    -1,   336,    -1,    -1,    -1,    -1,   341,    -1,   343,
05541       -1,     4,   346,     6,     7,     8,    -1,   351,   352,    -1,
05542       13,    -1,    -1,   357,    17,    18,    19,   361,    21,    -1,
05543       -1,    -1,    -1,    26,    -1,    28,    29,    -1,    31,    -1,
05544       -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
05545      384,    44,    45,    -1,    47,    48,    -1,    50,    51,    52,
05546       53,    54,    55,    -1,    57,    58,    -1,    60,    -1,    -1,
05547       -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    71,    72,
05548       -1,    -1,    75,    -1,    -1,    -1,    -1,    80,    81,    -1,
05549       -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
05550       -1,    94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
05551       -1,   104,   105,    -1,   107,   108,    -1,   110,    -1,   112,
05552      113,    -1,    -1,   116,    -1,    -1,   119,   120,   121,    -1,
05553      123,    -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,
05554       -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,   141,   142,
05555      143,    -1,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,
05556       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,
05557       -1,    -1,   165,    -1,    -1,   168,    -1,    -1,    -1,   172,
05558       -1,    -1,    -1,    -1,    -1,   178,   179,    -1,   181,    -1,
05559       -1,    -1,    -1,   186,   187,   188,   189,    -1,    -1,   192,
05560       -1,   194,    -1,   196,    -1,   198,   199,   200,   201,    -1,
05561       -1,   204,   205,   206,    -1,    -1,   209,    -1,    -1,    -1,
05562      213,   214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,
05563       -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,   231,    -1,
05564      233,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
05565       -1,    -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,
05566      253,    -1,    -1,    -1,   257,   258,   259,   260,   261,   262,
05567      263,    -1,   265,   266,    -1,    -1,    -1,   270,   271,   272,
05568      273,    -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,
05569       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,
05570       -1,    -1,   295,    -1,    -1,   298,   299,   300,    -1,    -1,
05571      303,    -1,   305,   306,    -1,    -1,   309,    -1,    -1,   312,
05572       -1,   314,    -1,   316,   317,    -1,    -1,   320,    -1,    -1,
05573      323,   324,    -1,   326,   327,    -1,    -1,    -1,   331,    -1,
05574       -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,   341,    -1,
05575      343,    -1,     4,   346,     6,     7,     8,    -1,   351,   352,
05576       -1,    13,    -1,    -1,   357,    17,    18,    19,   361,    21,
05577       -1,    -1,    -1,    -1,    26,    -1,    28,    29,    -1,    31,
05578       -1,    -1,    -1,    35,    -1,    -1,   379,    39,    -1,    -1,
05579       42,   384,    44,    45,    -1,    47,    48,    -1,    50,    51,
05580       52,    53,    54,    55,    -1,    57,    58,    -1,    60,    -1,
05581       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    71,
05582       72,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,    81,
05583       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,
05584       -1,    -1,    94,    -1,    -1,    97,    98,    99,    -1,    -1,
05585      102,    -1,   104,   105,    -1,   107,   108,    -1,   110,    -1,
05586      112,   113,    -1,    -1,   116,    -1,    -1,   119,   120,   121,
05587       -1,   123,    -1,    -1,    -1,   127,   128,    -1,   130,    -1,
05588      132,    -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,   141,
05589      142,   143,    -1,   145,    -1,    -1,   148,   149,    -1,    -1,
05590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   161,
05591       -1,    -1,    -1,   165,    -1,    -1,   168,    -1,    -1,    -1,
05592      172,    -1,    -1,    -1,    -1,    -1,   178,   179,    -1,   181,
05593       -1,    -1,    -1,    -1,   186,   187,   188,   189,    -1,    -1,
05594      192,    -1,   194,    -1,   196,    -1,   198,   199,   200,   201,
05595       -1,    -1,   204,   205,   206,    -1,    -1,   209,    -1,    -1,
05596       -1,   213,   214,    -1,   216,   217,   218,   219,    -1,    -1,
05597       -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,   231,
05598       -1,   233,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,
05599      242,    -1,    -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,
05600       -1,   253,    -1,    -1,    -1,   257,   258,   259,   260,   261,
05601      262,   263,    -1,   265,   266,    -1,    -1,    -1,   270,   271,
05602      272,   273,    -1,    -1,   276,    -1,   278,   279,   280,    -1,
05603       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,
05604      292,    -1,    -1,   295,    -1,    -1,   298,   299,   300,    -1,
05605       -1,   303,    -1,   305,   306,    -1,    -1,   309,    -1,    -1,
05606      312,    -1,   314,    -1,   316,   317,    -1,    -1,   320,    -1,
05607       -1,   323,   324,    -1,   326,   327,    -1,    -1,    -1,   331,
05608       -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,   341,
05609       -1,   343,    -1,     4,   346,     6,     7,     8,    -1,   351,
05610      352,    -1,    13,    -1,    -1,   357,    17,    18,    19,   361,
05611       21,    -1,    -1,    -1,    -1,    26,    -1,    28,    29,    -1,
05612       31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,
05613       -1,    42,   384,    44,    45,    -1,    47,    48,    -1,    50,
05614       51,    52,    53,    54,    55,    -1,    57,    58,    -1,    60,
05615       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,
05616       71,    72,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,
05617       81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
05618       91,    -1,    -1,    94,    -1,    -1,    97,    98,    99,    -1,
05619       -1,   102,    -1,   104,   105,    -1,   107,   108,    -1,   110,
05620       -1,   112,   113,    -1,    -1,   116,    -1,    -1,   119,   120,
05621      121,    -1,   123,    -1,    -1,    -1,   127,   128,    -1,   130,
05622       -1,   132,    -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,
05623      141,   142,   143,    -1,   145,    -1,    -1,   148,   149,    -1,
05624       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05625      161,    -1,    -1,    -1,   165,    -1,    -1,   168,    -1,    -1,
05626       -1,   172,    -1,    -1,    -1,    -1,    -1,   178,   179,    -1,
05627      181,    -1,    -1,    -1,    -1,   186,   187,   188,   189,    -1,
05628       -1,   192,    -1,   194,    -1,   196,    -1,   198,   199,   200,
05629      201,    -1,    -1,   204,   205,   206,    -1,    -1,   209,    -1,
05630       -1,    -1,   213,   214,    -1,   216,   217,   218,   219,    -1,
05631       -1,    -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,
05632      231,    -1,   233,   234,   235,   236,    -1,    -1,    -1,    -1,
05633       -1,   242,    -1,    -1,    -1,    -1,   247,    -1,    -1,    -1,
05634       -1,    -1,   253,    -1,    -1,    -1,   257,   258,   259,   260,
05635      261,   262,   263,    -1,   265,   266,    -1,    -1,    -1,   270,
05636      271,   272,   273,    -1,    -1,   276,    -1,   278,   279,   280,
05637       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05638      291,   292,    -1,    -1,   295,    -1,    -1,   298,   299,   300,
05639       -1,    -1,   303,    -1,   305,   306,    -1,    -1,   309,    -1,
05640       -1,   312,    -1,   314,    -1,   316,   317,    -1,    -1,   320,
05641       -1,    -1,   323,   324,    -1,   326,   327,    -1,    -1,    -1,
05642      331,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,
05643      341,    -1,   343,    -1,     4,   346,     6,     7,     8,    -1,
05644      351,   352,    -1,    13,    -1,    -1,   357,    17,    18,    19,
05645      361,    21,    -1,    -1,    -1,    -1,    26,    -1,    28,    29,
05646       -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
05647       -1,    -1,    42,   384,    44,    45,    -1,    47,    48,    -1,
05648       50,    51,    52,    53,    54,    55,    -1,    57,    58,    -1,
05649       60,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,
05650       70,    71,    72,    -1,    -1,    75,    -1,    -1,    -1,    -1,
05651       80,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05652       90,    91,    -1,    -1,    94,    -1,    -1,    97,    98,    99,
05653       -1,    -1,   102,    -1,   104,   105,    -1,   107,   108,    -1,
05654      110,    -1,   112,   113,    -1,    -1,   116,    -1,    -1,   119,
05655      120,   121,    -1,   123,    -1,    -1,    -1,   127,   128,    -1,
05656      130,    -1,   132,    -1,    -1,   135,    -1,    -1,    -1,    -1,
05657       -1,   141,   142,   143,    -1,   145,    -1,    -1,   148,   149,
05658       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05659       -1,   161,    -1,    -1,    -1,   165,    -1,    -1,   168,    -1,
05660       -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,   178,   179,
05661       -1,   181,    -1,    -1,    -1,    -1,   186,   187,   188,   189,
05662       -1,    -1,   192,    -1,   194,    -1,   196,    -1,   198,   199,
05663      200,   201,    -1,    -1,   204,   205,   206,    -1,    -1,   209,
05664       -1,    -1,    -1,   213,   214,    -1,   216,   217,   218,   219,
05665       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,
05666       -1,   231,    -1,   233,   234,   235,   236,    -1,    -1,    -1,
05667       -1,    -1,   242,    -1,    -1,    -1,    -1,   247,    -1,    -1,
05668       -1,    -1,    -1,   253,    -1,    -1,    -1,   257,   258,   259,
05669      260,   261,   262,   263,    -1,   265,   266,    -1,    -1,    -1,
05670      270,   271,   272,   273,    -1,    -1,   276,    -1,   278,   279,
05671      280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05672       -1,   291,   292,    -1,    -1,   295,    -1,    -1,   298,   299,
05673      300,    -1,    -1,   303,    -1,   305,   306,    -1,    -1,   309,
05674       -1,    -1,   312,    -1,   314,    -1,   316,   317,    -1,    -1,
05675      320,    -1,    -1,   323,   324,    -1,   326,   327,    -1,    -1,
05676       -1,   331,    -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,
05677       -1,   341,    -1,   343,    -1,     4,   346,     6,     7,     8,
05678       -1,   351,   352,    -1,    13,    -1,    -1,   357,    17,    18,
05679       19,   361,    21,    -1,    -1,    -1,    -1,    26,    -1,    28,
05680       29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
05681       39,    -1,    -1,    42,   384,    44,    45,    -1,    47,    48,
05682       -1,    50,    51,    52,    53,    54,    55,    -1,    57,    58,
05683       -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
05684       -1,    70,    71,    72,    -1,    -1,    75,    -1,    -1,    -1,
05685       -1,    80,    81,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05686       -1,    90,    91,    -1,    -1,    94,    -1,    -1,    97,    98,
05687       99,    -1,    -1,   102,    -1,   104,   105,    -1,   107,   108,
05688       -1,   110,    -1,   112,   113,    -1,    -1,   116,    -1,    -1,
05689      119,   120,   121,    -1,   123,    -1,    -1,    -1,   127,   128,
05690       -1,   130,    -1,   132,    -1,    -1,   135,    -1,    -1,    -1,
05691       -1,    -1,   141,   142,   143,    -1,   145,    -1,    -1,   148,
05692      149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05693       -1,    -1,   161,    -1,    -1,    -1,   165,    -1,    -1,   168,
05694       -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,   178,
05695      179,    -1,   181,    -1,    -1,    -1,    -1,   186,   187,   188,
05696      189,    -1,    -1,   192,    -1,   194,    -1,   196,    -1,   198,
05697      199,   200,   201,    -1,    -1,   204,   205,   206,    -1,    -1,
05698      209,    -1,    -1,    -1,   213,   214,    -1,   216,   217,   218,
05699      219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   228,
05700       -1,    -1,   231,    -1,   233,   234,   235,   236,    -1,    -1,
05701       -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,    -1,
05702       -1,    -1,    -1,    -1,   253,    -1,    -1,    -1,   257,   258,
05703      259,   260,   261,   262,   263,    -1,   265,   266,    -1,    -1,
05704       -1,   270,   271,   272,   273,    -1,    -1,   276,    -1,   278,
05705      279,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05706       -1,    -1,   291,   292,    -1,    -1,   295,    -1,    -1,   298,
05707      299,   300,    -1,    -1,   303,    -1,   305,   306,    -1,    -1,
05708      309,    -1,    -1,   312,    -1,   314,    -1,   316,   317,    -1,
05709       -1,   320,    -1,    -1,   323,   324,    -1,   326,   327,    -1,
05710       -1,    -1,   331,    -1,    -1,    -1,    -1,   336,    -1,    -1,
05711       -1,    -1,   341,    -1,   343,    -1,     4,   346,     6,     7,
05712        8,    -1,   351,   352,    -1,    13,    -1,    -1,   357,    17,
05713       18,    19,   361,    21,    -1,    -1,    -1,    -1,    26,    -1,
05714       28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
05715       -1,    39,    -1,    -1,    42,   384,    44,    45,    -1,    47,
05716       48,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
05717       58,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    -1,
05718       -1,    -1,    70,    71,    72,    -1,    -1,    75,    -1,    -1,
05719       -1,    -1,    80,    81,    -1,    -1,    -1,    -1,    -1,    -1,
05720       -1,    -1,    90,    91,    -1,    -1,    94,    -1,    -1,    97,
05721       98,    99,    -1,    -1,   102,    -1,   104,   105,    -1,   107,
05722      108,    -1,   110,    -1,   112,   113,    -1,    -1,   116,    -1,
05723       -1,   119,   120,   121,    -1,   123,    -1,    -1,    -1,   127,
05724      128,    -1,   130,    -1,   132,    -1,    -1,   135,    -1,    -1,
05725       -1,    -1,    -1,   141,   142,   143,    -1,   145,    -1,    -1,
05726      148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05727       -1,    -1,    -1,   161,    -1,    -1,    -1,   165,    -1,    -1,
05728      168,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,
05729      178,   179,    -1,   181,    -1,    -1,    -1,    -1,   186,   187,
05730      188,   189,    -1,    -1,   192,    -1,   194,    -1,   196,    -1,
05731      198,   199,   200,   201,    -1,    -1,   204,   205,   206,    -1,
05732       -1,   209,    -1,    -1,    -1,   213,   214,    -1,   216,   217,
05733      218,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05734      228,    -1,    -1,   231,    -1,   233,   234,   235,   236,    -1,
05735       -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,   247,
05736       -1,    -1,    -1,    -1,    -1,   253,    -1,    -1,    -1,   257,
05737      258,   259,   260,   261,   262,   263,    -1,   265,   266,    -1,
05738       -1,    -1,   270,   271,   272,   273,    -1,    -1,   276,    -1,
05739      278,   279,   280,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05740       -1,    -1,    -1,   291,   292,    -1,    -1,   295,    -1,    -1,
05741      298,   299,   300,    -1,    -1,   303,    -1,   305,   306,    -1,
05742       -1,   309,    -1,    -1,   312,    -1,   314,    -1,   316,   317,
05743       -1,    -1,   320,    -1,    -1,   323,   324,    -1,   326,   327,
05744       -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,   336,    -1,
05745       -1,    -1,    -1,   341,    -1,   343,    -1,     4,   346,     6,
05746        7,     8,    -1,   351,   352,    -1,    13,    -1,    -1,   357,
05747       17,    18,    19,   361,    21,    -1,    -1,    -1,    -1,    26,
05748       -1,    28,    29,    -1,    31,   373,    -1,    -1,    35,    -1,
05749       -1,    -1,    39,    -1,    -1,    42,    -1,    44,    45,    -1,
05750       47,    48,    -1,    50,    51,    52,    53,    54,    55,    -1,
05751       57,    58,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
05752       -1,    -1,    -1,    70,    71,    72,    -1,    -1,    75,    -1,
05753       -1,    -1,    -1,    80,    81,    -1,    -1,    -1,    -1,    -1,
05754       -1,    -1,    -1,    90,    91,    -1,    -1,    94,    -1,    -1,
05755       97,    98,    99,    -1,    -1,   102,    -1,   104,   105,    -1,
05756      107,   108,    -1,   110,    -1,   112,   113,    -1,    -1,   116,
05757       -1,    -1,   119,   120,   121,    -1,   123,    -1,    -1,    -1,
05758      127,   128,    -1,   130,    -1,   132,    -1,    -1,   135,    -1,
05759       -1,    -1,    -1,    -1,   141,   142,   143,    -1,   145,    -1,
05760       -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05761       -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,   165,    -1,
05762       -1,   168,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,
05763       -1,   178,   179,    -1,   181,    -1,    -1,    -1,    -1,   186,
05764      187,   188,   189,    -1,    -1,   192,    -1,   194,    -1,   196,
05765       -1,   198,   199,   200,   201,    -1,    -1,   204,   205,   206,
05766       -1,    -1,   209,    -1,    -1,    -1,   213,   214,    -1,   216,
05767      217,   218,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05768       -1,   228,    -1,    -1,   231,    -1,   233,   234,   235,   236,
05769       -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,    -1,
05770      247,    -1,    -1,    -1,    -1,    -1,   253,    -1,    -1,    -1,
05771      257,   258,   259,   260,   261,   262,   263,    -1,   265,   266,
05772       -1,    -1,    -1,   270,   271,   272,   273,    -1,    -1,   276,
05773       -1,   278,   279,   280,    -1,    -1,    -1,    -1,    -1,    -1,
05774       -1,    -1,    -1,    -1,   291,   292,    -1,    -1,   295,    -1,
05775       -1,   298,   299,   300,    -1,    -1,   303,    -1,   305,   306,
05776       -1,    -1,   309,    -1,    -1,   312,    -1,   314,    -1,   316,
05777      317,    -1,    -1,   320,    -1,    -1,   323,   324,    -1,   326,
05778      327,    -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,   336,
05779       -1,    -1,    -1,    -1,   341,    -1,   343,    -1,     4,   346,
05780        6,     7,     8,    -1,   351,   352,    -1,    13,    -1,    -1,
05781      357,    17,    18,    19,   361,    21,    -1,    -1,    -1,    25,
05782       26,    -1,    28,    29,    -1,    31,   373,    -1,    -1,    35,
05783       -1,    -1,    -1,    39,    -1,    -1,    42,    -1,    44,    45,
05784       -1,    47,    48,    -1,    50,    51,    52,    53,    54,    55,
05785       -1,    57,    58,    -1,    60,    -1,    -1,    -1,    -1,    65,
05786       -1,    -1,    -1,    -1,    70,    71,    72,    -1,    -1,    75,
05787       -1,    -1,    -1,    -1,    80,    81,    -1,    -1,    -1,    -1,
05788       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    94,    -1,
05789       -1,    97,    98,    99,    -1,    -1,   102,    -1,   104,   105,
05790       -1,   107,   108,    -1,   110,    -1,   112,   113,    -1,    -1,
05791      116,    -1,    -1,   119,   120,   121,    -1,   123,    -1,    -1,
05792       -1,   127,   128,    -1,   130,    -1,   132,    -1,    -1,   135,
05793       -1,   137,    -1,    -1,    -1,   141,   142,   143,    -1,   145,
05794       -1,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,    -1,
05795       -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,   165,
05796       -1,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,    -1,
05797       -1,    -1,   178,   179,    -1,   181,    -1,    -1,    -1,    -1,
05798      186,   187,   188,   189,    -1,    -1,   192,    -1,   194,    -1,
05799      196,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
05800      206,    -1,    -1,   209,    -1,    -1,    -1,   213,   214,    -1,
05801      216,   217,   218,   219,    -1,    -1,    -1,    -1,    -1,    -1,
05802       -1,    -1,   228,    -1,    -1,   231,    -1,   233,   234,   235,
05803      236,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
05804       -1,   247,    -1,    -1,    -1,    -1,    -1,   253,    -1,    -1,
05805       -1,   257,   258,   259,   260,   261,   262,   263,    -1,   265,
05806      266,    -1,    -1,    -1,   270,   271,   272,   273,    -1,    -1,
05807      276,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,    -1,
05808       -1,    -1,    -1,    -1,    -1,   291,   292,    -1,    -1,   295,
05809       -1,    -1,   298,   299,   300,    -1,    -1,   303,    -1,   305,
05810      306,    -1,    -1,   309,    -1,   311,   312,    -1,   314,    -1,
05811      316,   317,    -1,    -1,   320,    -1,    -1,   323,   324,    -1,
05812      326,   327,    -1,    -1,    -1,   331,    -1,    -1,    -1,    -1,
05813      336,    -1,    -1,    -1,    -1,   341,    -1,   343,    -1,     4,
05814      346,     6,     7,     8,    -1,   351,   352,    -1,    13,    14,
05815       -1,   357,    17,    18,    19,   361,    21,    -1,    -1,    -1,
05816       -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,
05817       35,    -1,    -1,    -1,    39,    -1,    -1,    42,    -1,    44,
05818       45,    -1,    47,    48,    -1,    50,    51,    52,    53,    54,
05819       55,    -1,    57,    58,    -1,    60,    -1,    -1,    -1,    -1,
05820       65,    -1,    -1,    -1,    -1,    70,    71,    72,    -1,    -1,
05821       75,    -1,    -1,    -1,    -1,    80,    81,    -1,    -1,    -1,
05822       -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    94,
05823       -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,   104,
05824      105,    -1,   107,   108,    -1,   110,    -1,   112,   113,    -1,
05825       -1,   116,    -1,    -1,   119,   120,   121,    -1,   123,    -1,
05826       -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,    -1,
05827      135,    -1,    -1,    -1,    -1,    -1,   141,   142,   143,    -1,
05828      145,    -1,    -1,   148,   149,    -1,    -1,    -1,    -1,    -1,
05829       -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,
05830      165,    -1,    -1,   168,    -1,    -1,    -1,   172,    -1,    -1,
05831       -1,    -1,    -1,   178,   179,    -1,   181,    -1,    -1,    -1,
05832       -1,   186,   187,   188,   189,    -1,    -1,   192,    -1,   194,
05833       -1,   196,    -1,   198,   199,   200,   201,    -1,    -1,   204,
05834      205,   206,    -1,    -1,   209,    -1,    -1,    -1,   213,   214,
05835       -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,    -1,
05836       -1,    -1,    -1,   228,    -1,    -1,   231,    -1,   233,   234,
05837      235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,
05838       -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,   253,    -1,
05839       -1,    -1,   257,   258,   259,   260,   261,   262,   263,    -1,
05840      265,   266,    -1,    -1,    -1,   270,   271,   272,   273,    -1,
05841       -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,    -1,
05842       -1,    -1,    -1,    -1,    -1,    -1,   291,   292,    -1,    -1,
05843      295,    -1,    -1,   298,   299,   300,    -1,    -1,   303,    -1,
05844      305,   306,    -1,    -1,   309,    -1,   311,   312,    -1,   314,
05845       -1,   316,   317,    -1,    -1,   320,    -1,    -1,   323,   324,
05846       -1,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,    -1,
05847       -1,   336,    -1,    -1,    -1,    -1,   341,    -1,   343,    -1,
05848        4,   346,     6,     7,     8,    -1,   351,   352,    -1,    13,
05849       -1,    -1,   357,    17,    18,    19,   361,    21,    -1,    -1,
05850       -1,    -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05851       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    -1,
05852       44,    45,    -1,    47,    48,    -1,    50,    51,    52,    53,
05853       54,    55,    -1,    57,    58,    -1,    60,    -1,    -1,    -1,
05854       -1,    65,    -1,    -1,    -1,    -1,    70,    71,    72,    -1,
05855       -1,    75,    -1,    -1,    -1,    -1,    80,    81,    -1,    -1,
05856       -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,
05857       94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,    -1,
05858      104,   105,    -1,   107,   108,    -1,   110,    -1,   112,   113,
05859       -1,    -1,   116,    -1,    -1,   119,   120,   121,    -1,   123,
05860       -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,    -1,
05861       -1,   135,    -1,    -1,    -1,    -1,    -1,   141,   142,   143,
05862       -1,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,    -1,
05863       -1,    -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,
05864       -1,   165,    -1,    -1,   168,    -1,    -1,    -1,   172,    -1,
05865       -1,    -1,    -1,    -1,   178,   179,    -1,   181,    -1,    -1,
05866       -1,    -1,   186,   187,   188,   189,    -1,    -1,   192,    -1,
05867      194,    -1,   196,    -1,   198,   199,   200,   201,    -1,    -1,
05868      204,   205,   206,    -1,    -1,   209,    -1,    -1,    -1,   213,
05869      214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,    -1,
05870       -1,    -1,    -1,    -1,   228,    -1,    -1,   231,    -1,   233,
05871      234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,    -1,
05872       -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,   253,
05873       -1,    -1,    -1,   257,   258,   259,   260,   261,   262,   263,
05874       -1,   265,   266,    -1,    -1,    -1,   270,   271,   272,   273,
05875       -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,    -1,
05876       -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,    -1,
05877       -1,   295,    -1,    -1,   298,   299,   300,    -1,    -1,   303,
05878       -1,   305,   306,    -1,    -1,   309,    -1,   311,   312,    -1,
05879      314,    -1,   316,   317,    -1,    -1,   320,    -1,    -1,   323,
05880      324,    -1,   326,   327,    -1,    -1,    -1,   331,    -1,    -1,
05881       -1,    -1,   336,    -1,    -1,    -1,    -1,   341,    -1,   343,
05882       -1,     4,   346,     6,     7,     8,    -1,   351,   352,    -1,
05883       13,    -1,    -1,   357,    17,    18,    19,   361,    21,    -1,
05884       -1,    -1,    -1,    26,    -1,    28,    29,    -1,    31,    -1,
05885       -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
05886       -1,    44,    45,    -1,    47,    48,    -1,    50,    51,    52,
05887       53,    54,    55,    -1,    57,    58,    -1,    60,    -1,    -1,
05888       -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    71,    72,
05889       -1,    -1,    75,    -1,    -1,    -1,    -1,    80,    81,    -1,
05890       -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
05891       -1,    94,    -1,    -1,    97,    98,    99,    -1,    -1,   102,
05892       -1,   104,   105,    -1,   107,   108,    -1,   110,    -1,   112,
05893      113,    -1,    -1,   116,    -1,    -1,   119,   120,   121,    -1,
05894      123,    -1,    -1,    -1,   127,   128,    -1,   130,    -1,   132,
05895       -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,   141,   142,
05896      143,    -1,   145,    -1,    -1,   148,   149,    -1,    -1,    -1,
05897       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   161,    -1,
05898       -1,    -1,   165,    -1,    -1,   168,    -1,    -1,    -1,   172,
05899       -1,    -1,    -1,    -1,    -1,   178,   179,    -1,   181,    -1,
05900       -1,    -1,    -1,   186,   187,   188,   189,    -1,    -1,   192,
05901       -1,   194,    -1,   196,    -1,   198,   199,   200,   201,    -1,
05902       -1,   204,   205,   206,    -1,    -1,   209,    -1,    -1,    -1,
05903      213,   214,    -1,   216,   217,   218,   219,    -1,    -1,    -1,
05904       -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,   231,   232,
05905      233,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,   242,
05906       -1,    -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,    -1,
05907      253,    -1,    -1,    -1,   257,   258,   259,   260,   261,   262,
05908      263,    -1,   265,   266,    -1,    -1,    -1,   270,   271,   272,
05909      273,    -1,    -1,   276,    -1,   278,   279,   280,    -1,    -1,
05910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,   292,
05911       -1,    -1,   295,    -1,    -1,   298,   299,   300,    -1,    -1,
05912      303,    -1,   305,   306,    -1,    -1,   309,    -1,    -1,   312,
05913       -1,   314,    -1,   316,   317,    -1,    -1,   320,    -1,    -1,
05914      323,   324,    -1,   326,   327,    -1,    -1,    -1,   331,    -1,
05915       -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,   341,    -1,
05916      343,    -1,     4,   346,     6,     7,     8,    -1,   351,   352,
05917       -1,    13,    -1,    -1,   357,    17,    18,    19,   361,    21,
05918       -1,    -1,    -1,    -1,    26,    -1,    28,    29,    -1,    31,
05919       -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
05920       42,    -1,    44,    45,    -1,    47,    48,    -1,    50,    51,
05921       52,    53,    54,    55,    -1,    57,    58,    -1,    60,    -1,
05922       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    71,
05923       72,    -1,    -1,    75,    -1,    -1,    -1,    -1,    80,    81,
05924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,
05925       -1,    -1,    94,    -1,    -1,    97,    98,    99,    -1,    -1,
05926      102,    -1,   104,   105,    -1,   107,   108,    -1,   110,    -1,
05927      112,   113,    -1,    -1,   116,    -1,    -1,   119,   120,   121,
05928       -1,   123,    -1,    -1,    -1,   127,   128,    -1,   130,    -1,
05929      132,    -1,    -1,   135,    -1,    -1,    -1,    -1,    -1,   141,
05930      142,   143,    -1,   145,    -1,    -1,   148,   149,    -1,    -1,
05931       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   161,
05932       -1,    -1,    -1,   165,    -1,    -1,   168,    -1,    -1,    -1,
05933      172,    -1,    -1,    -1,    -1,    -1,   178,   179,    -1,   181,
05934       -1,    -1,    -1,    -1,   186,   187,   188,   189,    -1,    -1,
05935      192,    -1,   194,    -1,   196,    -1,   198,   199,   200,   201,
05936       -1,    -1,   204,   205,   206,    -1,    -1,   209,    -1,    -1,
05937       -1,   213,   214,    -1,   216,   217,   218,   219,    -1,    -1,
05938       -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,   231,
05939       -1,   233,   234,   235,   236,    -1,    -1,    -1,    -1,    -1,
05940      242,    -1,    -1,    -1,    -1,   247,    -1,    -1,    -1,    -1,
05941       -1,   253,    -1,    -1,    -1,   257,   258,   259,   260,   261,
05942      262,   263,    -1,   265,   266,    -1,    -1,    -1,   270,   271,
05943      272,   273,    -1,    -1,   276,    -1,   278,   279,   280,    -1,
05944       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,
05945      292,    -1,    -1,   295,    -1,    -1,   298,   299,   300,    -1,
05946       -1,   303,    -1,   305,   306,    -1,    -1,   309,    -1,    -1,
05947      312,    -1,   314,    -1,   316,   317,    -1,    -1,   320,    -1,
05948       -1,   323,   324,    -1,   326,   327,    -1,    -1,    -1,   331,
05949       -1,    -1,    -1,    -1,   336,    -1,    -1,    -1,    -1,   341,
05950       -1,   343,    -1,    -1,   346,    -1,    -1,    -1,    -1,   351,
05951      352,    -1,    -1,    -1,    -1,   357,    -1,    -1,    -1,   361
05952 };
05953 
05954 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
05955    symbol of state STATE-NUM.  */
05956 static const yytype_uint16 yystos[] =
05957 {
05958        0,    10,    11,    21,    43,    52,    63,    86,    87,    88,
05959       96,   106,   114,   123,   155,   167,   177,   245,   246,   249,
05960      257,   263,   267,   274,   277,   291,   323,   332,   334,   337,
05961      379,   387,   388,   389,   390,   483,   498,   500,   502,   504,
05962      508,   509,   645,   651,   656,   659,   682,   688,   691,   693,
05963      699,   702,   705,   711,   713,   714,   762,   781,   783,   789,
05964      790,   791,   792,    69,   213,   218,   487,   305,   308,   780,
05965      784,   780,   357,   785,    38,    69,   309,   407,   487,   147,
05966      690,    38,    69,   309,   487,   650,   142,   144,   145,   173,
05967      286,   311,   315,   385,   652,   752,   753,   759,   775,   776,
05968      706,   657,    57,   236,   712,    71,   719,   263,   780,   660,
05969      785,   752,   793,   512,   514,   515,   221,   764,   694,   320,
05970      308,   692,   782,   147,   495,     4,     6,     7,     8,    13,
05971       17,    18,    19,    21,    26,    28,    29,    31,    35,    39,
05972       42,    44,    45,    47,    48,    50,    51,    52,    53,    54,
05973       55,    57,    58,    60,    65,    70,    71,    72,    75,    80,
05974       81,    90,    91,    94,    97,    98,    99,   102,   104,   105,
05975      107,   108,   110,   112,   113,   116,   119,   120,   121,   123,
05976      127,   128,   130,   132,   135,   141,   143,   148,   149,   161,
05977      165,   168,   172,   178,   179,   181,   186,   187,   188,   189,
05978      192,   194,   196,   198,   199,   200,   201,   204,   205,   206,
05979      209,   213,   214,   216,   217,   218,   219,   228,   231,   233,
05980      234,   235,   236,   242,   247,   253,   257,   258,   259,   260,
05981      261,   262,   263,   265,   266,   270,   271,   272,   273,   276,
05982      278,   279,   280,   291,   292,   295,   298,   299,   300,   303,
05983      305,   306,   309,   312,   314,   316,   317,   320,   323,   324,
05984      326,   327,   331,   336,   341,   343,   346,   351,   352,   357,
05985      361,   750,   752,   756,   760,   761,   267,   379,   510,     0,
05986      106,   116,   384,   703,   749,   750,   756,   750,   495,   501,
05987      785,   503,    12,   786,   751,   756,   146,   408,   308,   392,
05988      129,   751,   146,   649,   150,   780,   775,   355,   653,   132,
05989      181,   292,   305,   707,   708,   780,   495,     6,    19,    24,
05990       25,    36,    37,    38,    41,    45,    47,    61,    62,    66,
05991       67,    69,    73,    74,    75,    80,    82,    85,   114,   115,
05992      117,   118,   122,   134,   137,   141,   146,   155,   156,   167,
05993      171,   182,   185,   189,   192,   193,   197,   198,   207,   208,
05994      210,   211,   229,   235,   248,   249,   256,   262,   265,   293,
05995      294,   299,   301,   302,   304,   311,   315,   316,   317,   321,
05996      322,   323,   325,   336,   339,   340,   341,   342,   347,   349,
05997      350,   361,   371,   372,   377,   379,   381,   384,   385,   531,
05998      532,   533,   534,   537,   538,   539,   540,   541,   546,   550,
05999      735,   738,   742,   746,   747,   752,   754,   756,   715,   793,
06000      505,   157,   648,   662,   663,   749,   318,   786,   513,     9,
06001       92,   285,   286,   287,   288,   297,   519,   520,   521,   522,
06002      523,   763,    48,    62,    63,    70,   110,   132,   149,   150,
06003      164,   178,   234,   272,   305,   308,   309,   351,   469,   695,
06004      752,   753,   758,   770,   355,   499,   648,   780,   749,   514,
06005      510,   380,   756,   701,   700,   384,   485,   308,   647,   648,
06006      647,    39,   209,   209,   245,   787,   207,   750,   408,   330,
06007      470,   749,   115,   750,   756,   649,   209,    55,   654,   292,
06008      355,   383,   709,   662,   379,   379,   537,   531,   560,   379,
06009      379,   379,   379,   379,   379,   379,   379,   530,   530,   379,
06010      379,   379,   379,   735,   379,   379,   379,   379,   379,   379,
06011      379,   379,   379,   379,   531,   712,   379,   379,   379,   379,
06012      379,   379,   379,   531,   379,   530,   379,   379,   379,   379,
06013      379,   379,   379,   379,   379,   379,   379,   379,   379,   530,
06014      379,   735,   379,   379,   379,   379,   379,   530,   530,   379,
06015      379,   379,   379,   379,   379,   537,   537,   537,   531,   805,
06016      806,   756,   756,   551,    12,   224,   359,   109,   131,   160,
06017      169,   203,   363,   364,   365,   535,    22,    93,   159,   174,
06018      197,   207,   243,   367,   368,   369,   370,   371,   372,   373,
06019      374,   375,   376,    46,   366,   754,   379,   384,    55,   720,
06020      506,   507,   749,   663,   661,   263,   788,   787,   329,   794,
06021      795,   373,   525,   526,   527,   523,   765,   766,   767,   129,
06022      159,   697,   379,    69,   308,   174,   354,   698,   175,   629,
06023      631,   696,   697,   292,   305,   629,   697,   292,   292,   346,
06024       58,   274,   380,   795,   797,   798,   799,   508,    25,   137,
06025      704,   736,   754,   756,   756,    85,   415,   457,   749,   383,
06026       39,   245,   115,   393,   749,   150,   689,   215,   647,   254,
06027      350,   655,   239,   708,   647,   710,   658,   531,     9,    92,
06028      556,   612,   353,   562,   531,   380,   531,   559,   559,   531,
06029      531,    92,   556,   612,   380,   380,   531,   531,   531,   531,
06030      746,   531,   805,    76,    77,    78,    79,    80,   138,   139,
06031      140,   141,   189,   190,   191,   192,   198,   235,   264,   265,
06032      352,   360,   361,   607,   609,    92,   553,   531,   531,   531,
06033      531,   607,   379,   531,    92,   556,   531,   531,    92,   556,
06034      531,   531,   531,   534,   531,   531,   531,   531,   531,   531,
06035      556,   556,   531,   531,    92,   556,   531,   531,   128,   608,
06036      609,   608,    30,   170,   319,   531,   531,   380,   380,   746,
06037      556,   556,   531,   531,   380,   383,   380,   267,   379,   802,
06038      803,   531,   384,   385,   552,   775,   531,   531,   531,   533,
06039      118,   207,   210,   322,   331,     9,    13,   533,   536,   534,
06040      534,   379,   537,   534,    22,   159,   174,   243,   534,   534,
06041      534,   534,   534,   156,   534,   156,   534,   534,   534,   534,
06042      534,   752,   753,   757,   537,   542,   756,   151,   383,   318,
06043      267,   274,   342,   343,   379,   401,   664,   667,   793,     9,
06044       92,   801,   383,   516,   531,   744,   756,   383,   132,   178,
06045      216,   272,   768,   769,   772,   773,   749,   373,   408,   749,
06046      753,   531,   182,   211,   325,   632,   633,   698,   756,   696,
06047      698,   749,   698,   698,   280,   684,   685,   746,   223,   625,
06048      631,   800,    46,   484,   648,   250,   404,   405,   406,   415,
06049      757,   391,   756,   354,   613,   749,   180,   664,   383,   556,
06050      380,   557,   531,   101,   353,   561,    14,   380,   383,   380,
06051      380,   383,   547,   380,   373,   383,   383,   380,   380,   380,
06052      380,   380,   129,   549,   380,   383,   383,   383,   372,   531,
06053      383,   556,   380,   380,   380,   556,   380,   383,   380,   380,
06054      159,   380,   383,   383,   383,   383,   380,   380,   380,   383,
06055      129,   383,   556,   380,   380,   380,   383,   383,   129,   531,
06056      129,   531,   129,   531,   129,   380,   383,   380,   380,   380,
06057      380,   383,   380,   559,   581,   582,   583,   267,   379,   511,
06058      329,   807,   382,   756,   132,   178,   272,   771,   275,   118,
06059      210,   322,   331,   379,    12,   531,   805,   112,   617,   534,
06060      379,   537,   534,   531,   531,   527,   543,   544,   545,   384,
06061      311,   755,   507,   749,   402,   665,   379,   670,   675,   670,
06062      380,   401,   666,   743,   744,   746,   668,   796,   526,   129,
06063      157,   517,   518,   624,   625,   641,   528,   528,   384,   766,
06064      320,   776,   777,   385,   774,   696,   380,   756,   214,   383,
06065      698,   696,   383,   683,   275,   363,   673,    32,   629,   673,
06066      674,     5,    10,    18,    40,    50,    61,    90,    91,    96,
06067      102,   107,   119,   124,   148,   196,   223,   246,   250,   261,
06068      410,   412,   413,   414,   457,   486,   488,   489,   490,   621,
06069      757,   674,   383,   673,   174,   379,   394,   399,   409,   411,
06070      412,   471,   472,   614,   624,   646,   215,   680,   156,   531,
06071      380,   531,   313,   531,   531,   104,    24,    28,    41,    72,
06072       75,    83,   158,   278,   314,   333,   558,   531,   558,   559,
06073      380,   156,   156,   655,   531,   559,   531,   531,   531,   531,
06074      380,   531,   380,   380,   531,   531,   531,   531,   531,   559,
06075      156,   531,   531,   531,   380,   531,   531,   531,   129,   531,
06076      129,   531,   129,   531,   531,   531,   380,   519,   582,   511,
06077      380,   801,   384,   384,   384,   775,   531,   805,   533,   380,
06078      383,   380,   537,    12,   531,   805,   617,   607,   607,   531,
06079      380,   383,   756,   716,   519,   671,   672,   746,   676,   383,
06080      379,   667,   380,   380,   383,   794,   509,   267,   379,   381,
06081      563,   564,   565,   566,   567,   576,   577,   591,   642,   126,
06082      180,   524,   641,   630,   631,   518,    14,   529,   753,   756,
06083      373,   756,   161,   673,   385,   775,   698,   110,   351,   633,
06084      633,   613,   685,   613,    85,   531,   679,   626,    85,   455,
06085      456,   757,    49,    59,   150,   166,   422,   425,   426,   465,
06086      467,   494,   494,   674,   494,   674,   318,   164,   306,   125,
06087      232,   467,   494,   164,   673,   673,   306,   494,    32,    14,
06088      318,   497,   674,   673,   410,    46,   383,   379,   384,   421,
06089      427,   748,   756,   673,   118,   322,   405,    82,   122,   182,
06090      211,   325,   636,   757,   749,   399,   400,   401,   419,   420,
06091      421,   422,   409,    14,   147,   249,   396,   722,   383,   411,
06092      338,   475,   215,   531,   175,   634,    98,   531,   380,   531,
06093      313,   379,   436,   436,   379,   434,   435,   158,   158,   380,
06094      380,   548,   531,   531,   380,   555,   625,   383,   383,   380,
06095      383,   380,   380,   380,   380,   383,   380,   380,   531,   380,
06096      126,   380,   380,   383,   383,   383,   380,   531,   380,   531,
06097      380,   531,   380,   380,   380,   525,   380,   804,   384,   481,
06098      380,   559,   533,   380,   383,   380,   528,   545,   147,   249,
06099      721,   525,   383,   673,   677,   678,   679,   675,   669,   667,
06100      743,   590,   756,    64,   152,   163,   171,   202,   256,   297,
06101      575,   613,   383,   749,   590,    97,   226,   637,   638,   643,
06102      334,   159,   753,   756,   384,   172,     9,    24,    85,   215,
06103      531,   779,   771,   673,   624,   531,   627,   745,   480,   748,
06104       43,   125,   232,   330,   424,   466,   423,   424,   480,   748,
06105      636,   748,   753,   456,   166,   166,   748,   748,   757,   753,
06106      748,   622,   623,   746,   749,   118,   322,    53,    54,    85,
06107       99,   121,   242,   416,   417,   674,   490,   419,   756,     7,
06108      120,   496,   244,   423,   459,   428,   384,   636,   758,   380,
06109      380,   380,   383,    14,    14,   379,   400,   411,    31,   135,
06110      477,   749,   633,   681,   607,   531,   211,   211,   380,   607,
06111      607,   269,   554,   531,   531,   559,   531,   607,   531,   531,
06112      531,   531,   380,   380,   380,   584,   802,   756,   380,   559,
06113      529,   157,   403,   672,   679,   380,   383,   797,   578,   585,
06114      590,   563,   163,   163,   225,   592,   163,   171,   256,   592,
06115      576,   563,   133,   618,   565,    14,   610,   611,   587,   588,
06116      755,   755,   385,   639,   640,   276,   373,   239,   247,   270,
06117      778,   777,   531,   634,   383,    15,    87,   628,   531,   166,
06118      166,   467,   468,   480,   472,    96,   274,   491,   480,   492,
06119      383,   628,   456,   380,   756,   749,    23,    27,    28,    41,
06120       72,    75,    83,    95,   108,   121,   158,   212,   241,   271,
06121      312,   314,   315,   341,   344,   345,   429,   431,   432,   433,
06122      756,   409,   395,   409,   420,   400,   397,   379,   166,   380,
06123      380,   380,   383,   380,   380,   736,   380,   380,   383,   380,
06124      380,   380,   380,   380,   380,   380,   418,   518,   630,   380,
06125      717,   418,   679,   329,   380,   624,   586,   382,   163,   576,
06126      592,   592,   163,   215,   215,   338,    32,   136,   615,   756,
06127      601,   602,   519,   644,   775,   383,   194,    51,   326,   239,
06128      673,   745,   480,   472,   379,    85,    85,   427,   429,   623,
06129      379,   460,   379,   438,   443,   444,    46,    85,   207,   210,
06130      232,   330,   348,   441,   442,   445,   446,   447,   458,    85,
06131      215,   441,   442,   451,   452,   453,   443,   434,   230,   379,
06132      435,   440,   430,   434,   438,   434,   440,   445,   443,   379,
06133      451,   443,   379,    50,   454,   379,    18,    85,   271,   441,
06134      442,   448,   449,   450,   448,   384,   797,   396,   380,   794,
06135      478,   479,   756,   334,   211,   531,   524,   524,   308,   801,
06136      611,   630,   566,   563,   576,   163,   163,   563,   576,   569,
06137      568,   570,   619,   745,   616,   624,   599,   600,   525,    48,
06138      723,   640,   779,   628,   379,   379,   478,    75,   315,   371,
06139      372,   737,   738,   496,   454,   461,   756,   184,   462,   211,
06140      278,   333,   437,    85,   441,   442,    85,   441,   442,   455,
06141      737,   210,   166,   447,   166,    75,   208,   210,   315,   735,
06142      741,   742,   334,   453,   448,   440,   211,   379,   448,   437,
06143      448,   211,   211,   753,   211,    25,   137,   210,   371,   372,
06144      735,   739,   742,    85,   450,   756,   398,   380,   383,   628,
06145      379,   686,   687,   746,   380,   380,   749,   579,   215,   572,
06146      576,   576,   215,   574,   531,   531,   379,   356,   383,   620,
06147      628,   531,   630,   124,   147,   337,   594,   595,   598,   589,
06148      103,   111,   222,   310,   724,   725,   176,   726,   478,   478,
06149      380,   742,   742,   493,   380,   383,   130,   228,   279,   215,
06150      463,   380,   362,   439,   737,   118,   210,   322,   740,   735,
06151      530,   735,   208,   380,   482,   736,   439,   380,   380,   380,
06152      742,   742,   343,   797,    50,   165,   473,   474,   475,   476,
06153      479,   211,   383,   673,   718,   802,   571,   338,   573,   338,
06154      606,   756,   745,   467,   467,   595,   418,    32,    32,   103,
06155       32,   725,   290,   310,   727,   728,   380,   380,   473,   496,
06156      756,    86,   334,   530,   380,   383,   451,   443,   445,   753,
06157      674,   476,   628,   380,   687,   679,   723,   580,   531,   379,
06158      531,   379,   380,   383,   628,   126,   593,   593,   736,   736,
06159       32,   736,    32,    32,   728,   459,   473,    34,   209,   252,
06160      274,   464,   464,   445,   736,    82,   122,   137,   182,   211,
06161      325,   635,   726,   624,   606,   606,   756,   133,   163,   223,
06162      597,   596,   736,   736,   736,     4,    85,   210,   215,   215,
06163      147,   729,   630,   380,   380,    32,    32,   379,   379,   334,
06164       86,   211,   379,   731,   232,   603,   604,   605,   756,   605,
06165      464,   464,   176,   260,   730,   380,   385,   732,   733,   746,
06166      274,   734,   380,   383,   380,   775,   380,   383,   686,   604,
06167      733
06168 };
06169 
06170 #define yyerrok   (yyerrstatus = 0)
06171 #define yyclearin (yychar = YYEMPTY)
06172 #define YYEMPTY   (-2)
06173 #define YYEOF   0
06174 
06175 #define YYACCEPT  goto yyacceptlab
06176 #define YYABORT   goto yyabortlab
06177 #define YYERROR   goto yyerrorlab
06178 
06179 
06180 /* Like YYERROR except do call yyerror.  This remains here temporarily
06181    to ease the transition to the new meaning of YYERROR, for GCC.
06182    Once GCC version 2 has supplanted version 1, this can go.  */
06183 
06184 #define YYFAIL    goto yyerrlab
06185 
06186 #define YYRECOVERING()  (!!yyerrstatus)
06187 
06188 #define YYBACKUP(Token, Value)          \
06189 do                \
06190   if (yychar == YYEMPTY && yylen == 1)        \
06191     {               \
06192       yychar = (Token);           \
06193       yylval = (Value);           \
06194       yytoken = YYTRANSLATE (yychar);       \
06195       YYPOPSTACK (1);           \
06196       goto yybackup;            \
06197     }               \
06198   else                \
06199     {               \
06200       yyerror (session, YY_("syntax error: cannot back up")); \
06201       YYERROR;              \
06202     }               \
06203 while (YYID (0))
06204 
06205 
06206 #define YYTERROR  1
06207 #define YYERRCODE 256
06208 
06209 
06210 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
06211    If N is 0, then set CURRENT to the empty location which ends
06212    the previous symbol: RHS[0] (always defined).  */
06213 
06214 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
06215 #ifndef YYLLOC_DEFAULT
06216 # define YYLLOC_DEFAULT(Current, Rhs, N)        \
06217     do                  \
06218       if (YYID (N))                                                    \
06219   {               \
06220     (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;  \
06221     (Current).first_column = YYRHSLOC (Rhs, 1).first_column;  \
06222     (Current).last_line    = YYRHSLOC (Rhs, N).last_line;   \
06223     (Current).last_column  = YYRHSLOC (Rhs, N).last_column; \
06224   }               \
06225       else                \
06226   {               \
06227     (Current).first_line   = (Current).last_line   =    \
06228       YYRHSLOC (Rhs, 0).last_line;        \
06229     (Current).first_column = (Current).last_column =    \
06230       YYRHSLOC (Rhs, 0).last_column;        \
06231   }               \
06232     while (YYID (0))
06233 #endif
06234 
06235 
06236 /* YY_LOCATION_PRINT -- Print the location on the stream.
06237    This macro was not mandated originally: define only if we know
06238    we won't break user code: when these are the locations we know.  */
06239 
06240 #ifndef YY_LOCATION_PRINT
06241 # if YYLTYPE_IS_TRIVIAL
06242 #  define YY_LOCATION_PRINT(File, Loc)      \
06243      fprintf (File, "%d.%d-%d.%d",      \
06244         (Loc).first_line, (Loc).first_column, \
06245         (Loc).last_line,  (Loc).last_column)
06246 # else
06247 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
06248 # endif
06249 #endif
06250 
06251 
06252 /* YYLEX -- calling `yylex' with the right arguments.  */
06253 
06254 #ifdef YYLEX_PARAM
06255 # define YYLEX yylex (&yylval, YYLEX_PARAM)
06256 #else
06257 # define YYLEX yylex (&yylval, session)
06258 #endif
06259 
06260 /* Enable debugging if requested.  */
06261 #if YYDEBUG
06262 
06263 # ifndef YYFPRINTF
06264 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
06265 #  define YYFPRINTF fprintf
06266 # endif
06267 
06268 # define YYDPRINTF(Args)      \
06269 do {            \
06270   if (yydebug)          \
06271     YYFPRINTF Args;       \
06272 } while (YYID (0))
06273 
06274 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)        \
06275 do {                    \
06276   if (yydebug)                  \
06277     {                   \
06278       YYFPRINTF (stderr, "%s ", Title);           \
06279       yy_symbol_print (stderr,              \
06280       Type, Value, session); \
06281       YYFPRINTF (stderr, "\n");             \
06282     }                   \
06283 } while (YYID (0))
06284 
06285 
06286 /*--------------------------------.
06287 | Print this symbol on YYOUTPUT.  |
06288 `--------------------------------*/
06289 
06290 /*ARGSUSED*/
06291 #if (defined __STDC__ || defined __C99__FUNC__ \
06292      || defined __cplusplus || defined _MSC_VER)
06293 static void
06294 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06295 #else
06296 static void
06297 yy_symbol_value_print (yyoutput, yytype, yyvaluep, session)
06298     FILE *yyoutput;
06299     int yytype;
06300     YYSTYPE const * const yyvaluep;
06301     drizzled::Session *session;
06302 #endif
06303 {
06304   if (!yyvaluep)
06305     return;
06306   YYUSE (session);
06307 # ifdef YYPRINT
06308   if (yytype < YYNTOKENS)
06309     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
06310 # else
06311   YYUSE (yyoutput);
06312 # endif
06313   switch (yytype)
06314     {
06315       default:
06316   break;
06317     }
06318 }
06319 
06320 
06321 /*--------------------------------.
06322 | Print this symbol on YYOUTPUT.  |
06323 `--------------------------------*/
06324 
06325 #if (defined __STDC__ || defined __C99__FUNC__ \
06326      || defined __cplusplus || defined _MSC_VER)
06327 static void
06328 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06329 #else
06330 static void
06331 yy_symbol_print (yyoutput, yytype, yyvaluep, session)
06332     FILE *yyoutput;
06333     int yytype;
06334     YYSTYPE const * const yyvaluep;
06335     drizzled::Session *session;
06336 #endif
06337 {
06338   if (yytype < YYNTOKENS)
06339     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
06340   else
06341     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
06342 
06343   yy_symbol_value_print (yyoutput, yytype, yyvaluep, session);
06344   YYFPRINTF (yyoutput, ")");
06345 }
06346 
06347 /*------------------------------------------------------------------.
06348 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
06349 | TOP (included).                                                   |
06350 `------------------------------------------------------------------*/
06351 
06352 #if (defined __STDC__ || defined __C99__FUNC__ \
06353      || defined __cplusplus || defined _MSC_VER)
06354 static void
06355 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
06356 #else
06357 static void
06358 yy_stack_print (yybottom, yytop)
06359     yytype_int16 *yybottom;
06360     yytype_int16 *yytop;
06361 #endif
06362 {
06363   YYFPRINTF (stderr, "Stack now");
06364   for (; yybottom <= yytop; yybottom++)
06365     {
06366       int yybot = *yybottom;
06367       YYFPRINTF (stderr, " %d", yybot);
06368     }
06369   YYFPRINTF (stderr, "\n");
06370 }
06371 
06372 # define YY_STACK_PRINT(Bottom, Top)        \
06373 do {                \
06374   if (yydebug)              \
06375     yy_stack_print ((Bottom), (Top));       \
06376 } while (YYID (0))
06377 
06378 
06379 /*------------------------------------------------.
06380 | Report that the YYRULE is going to be reduced.  |
06381 `------------------------------------------------*/
06382 
06383 #if (defined __STDC__ || defined __C99__FUNC__ \
06384      || defined __cplusplus || defined _MSC_VER)
06385 static void
06386 yy_reduce_print (YYSTYPE *yyvsp, int yyrule, drizzled::Session *session)
06387 #else
06388 static void
06389 yy_reduce_print (yyvsp, yyrule, session)
06390     YYSTYPE *yyvsp;
06391     int yyrule;
06392     drizzled::Session *session;
06393 #endif
06394 {
06395   int yynrhs = yyr2[yyrule];
06396   int yyi;
06397   unsigned long int yylno = yyrline[yyrule];
06398   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
06399        yyrule - 1, yylno);
06400   /* The symbols being reduced.  */
06401   for (yyi = 0; yyi < yynrhs; yyi++)
06402     {
06403       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
06404       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
06405            &(yyvsp[(yyi + 1) - (yynrhs)])
06406                      , session);
06407       YYFPRINTF (stderr, "\n");
06408     }
06409 }
06410 
06411 # define YY_REDUCE_PRINT(Rule)    \
06412 do {          \
06413   if (yydebug)        \
06414     yy_reduce_print (yyvsp, Rule, session); \
06415 } while (YYID (0))
06416 
06417 /* Nonzero means print parse trace.  It is left uninitialized so that
06418    multiple parsers can coexist.  */
06419 int yydebug;
06420 #else /* !YYDEBUG */
06421 # define YYDPRINTF(Args)
06422 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
06423 # define YY_STACK_PRINT(Bottom, Top)
06424 # define YY_REDUCE_PRINT(Rule)
06425 #endif /* !YYDEBUG */
06426 
06427 
06428 /* YYINITDEPTH -- initial size of the parser's stacks.  */
06429 #ifndef YYINITDEPTH
06430 # define YYINITDEPTH 200
06431 #endif
06432 
06433 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
06434    if the built-in stack extension method is used).
06435 
06436    Do not make this value too large; the results are undefined if
06437    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
06438    evaluated with infinite-precision integer arithmetic.  */
06439 
06440 #ifndef YYMAXDEPTH
06441 # define YYMAXDEPTH 10000
06442 #endif
06443 
06444 
06445 
06446 #if YYERROR_VERBOSE
06447 
06448 # ifndef yystrlen
06449 #  if defined __GLIBC__ && defined _STRING_H
06450 #   define yystrlen strlen
06451 #  else
06452 /* Return the length of YYSTR.  */
06453 #if (defined __STDC__ || defined __C99__FUNC__ \
06454      || defined __cplusplus || defined _MSC_VER)
06455 static YYSIZE_T
06456 yystrlen (const char *yystr)
06457 #else
06458 static YYSIZE_T
06459 yystrlen (yystr)
06460     const char *yystr;
06461 #endif
06462 {
06463   YYSIZE_T yylen;
06464   for (yylen = 0; yystr[yylen]; yylen++)
06465     continue;
06466   return yylen;
06467 }
06468 #  endif
06469 # endif
06470 
06471 # ifndef yystpcpy
06472 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
06473 #   define yystpcpy stpcpy
06474 #  else
06475 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
06476    YYDEST.  */
06477 #if (defined __STDC__ || defined __C99__FUNC__ \
06478      || defined __cplusplus || defined _MSC_VER)
06479 static char *
06480 yystpcpy (char *yydest, const char *yysrc)
06481 #else
06482 static char *
06483 yystpcpy (yydest, yysrc)
06484     char *yydest;
06485     const char *yysrc;
06486 #endif
06487 {
06488   char *yyd = yydest;
06489   const char *yys = yysrc;
06490 
06491   while ((*yyd++ = *yys++) != '\0')
06492     continue;
06493 
06494   return yyd - 1;
06495 }
06496 #  endif
06497 # endif
06498 
06499 # ifndef yytnamerr
06500 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
06501    quotes and backslashes, so that it's suitable for yyerror.  The
06502    heuristic is that double-quoting is unnecessary unless the string
06503    contains an apostrophe, a comma, or backslash (other than
06504    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
06505    null, do not copy; instead, return the length of what the result
06506    would have been.  */
06507 static YYSIZE_T
06508 yytnamerr (char *yyres, const char *yystr)
06509 {
06510   if (*yystr == '"')
06511     {
06512       YYSIZE_T yyn = 0;
06513       char const *yyp = yystr;
06514 
06515       for (;;)
06516   switch (*++yyp)
06517     {
06518     case '\'':
06519     case ',':
06520       goto do_not_strip_quotes;
06521 
06522     case '\\':
06523       if (*++yyp != '\\')
06524         goto do_not_strip_quotes;
06525       /* Fall through.  */
06526     default:
06527       if (yyres)
06528         yyres[yyn] = *yyp;
06529       yyn++;
06530       break;
06531 
06532     case '"':
06533       if (yyres)
06534         yyres[yyn] = '\0';
06535       return yyn;
06536     }
06537     do_not_strip_quotes: ;
06538     }
06539 
06540   if (! yyres)
06541     return yystrlen (yystr);
06542 
06543   return yystpcpy (yyres, yystr) - yyres;
06544 }
06545 # endif
06546 
06547 /* Copy into YYRESULT an error message about the unexpected token
06548    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
06549    including the terminating null byte.  If YYRESULT is null, do not
06550    copy anything; just return the number of bytes that would be
06551    copied.  As a special case, return 0 if an ordinary "syntax error"
06552    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
06553    size calculation.  */
06554 static YYSIZE_T
06555 yysyntax_error (char *yyresult, int yystate, int yychar)
06556 {
06557   int yyn = yypact[yystate];
06558 
06559   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
06560     return 0;
06561   else
06562     {
06563       int yytype = YYTRANSLATE (yychar);
06564       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
06565       YYSIZE_T yysize = yysize0;
06566       YYSIZE_T yysize1;
06567       int yysize_overflow = 0;
06568       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
06569       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
06570       int yyx;
06571 
06572 # if 0
06573       /* This is so xgettext sees the translatable formats that are
06574    constructed on the fly.  */
06575       YY_("syntax error, unexpected %s");
06576       YY_("syntax error, unexpected %s, expecting %s");
06577       YY_("syntax error, unexpected %s, expecting %s or %s");
06578       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
06579       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
06580 # endif
06581       char *yyfmt;
06582       char const *yyf;
06583       static char const yyunexpected[] = "syntax error, unexpected %s";
06584       static char const yyexpecting[] = ", expecting %s";
06585       static char const yyor[] = " or %s";
06586       char yyformat[sizeof yyunexpected
06587         + sizeof yyexpecting - 1
06588         + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
06589            * (sizeof yyor - 1))];
06590       char const *yyprefix = yyexpecting;
06591 
06592       /* Start YYX at -YYN if negative to avoid negative indexes in
06593    YYCHECK.  */
06594       int yyxbegin = yyn < 0 ? -yyn : 0;
06595 
06596       /* Stay within bounds of both yycheck and yytname.  */
06597       int yychecklim = YYLAST - yyn + 1;
06598       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
06599       int yycount = 1;
06600 
06601       yyarg[0] = yytname[yytype];
06602       yyfmt = yystpcpy (yyformat, yyunexpected);
06603 
06604       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
06605   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
06606     {
06607       if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
06608         {
06609     yycount = 1;
06610     yysize = yysize0;
06611     yyformat[sizeof yyunexpected - 1] = '\0';
06612     break;
06613         }
06614       yyarg[yycount++] = yytname[yyx];
06615       yysize1 = yysize + yytnamerr (0, yytname[yyx]);
06616       yysize_overflow |= (yysize1 < yysize);
06617       yysize = yysize1;
06618       yyfmt = yystpcpy (yyfmt, yyprefix);
06619       yyprefix = yyor;
06620     }
06621 
06622       yyf = YY_(yyformat);
06623       yysize1 = yysize + yystrlen (yyf);
06624       yysize_overflow |= (yysize1 < yysize);
06625       yysize = yysize1;
06626 
06627       if (yysize_overflow)
06628   return YYSIZE_MAXIMUM;
06629 
06630       if (yyresult)
06631   {
06632     /* Avoid sprintf, as that infringes on the user's name space.
06633        Don't have undefined behavior even if the translation
06634        produced a string with the wrong number of "%s"s.  */
06635     char *yyp = yyresult;
06636     int yyi = 0;
06637     while ((*yyp = *yyf) != '\0')
06638       {
06639         if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
06640     {
06641       yyp += yytnamerr (yyp, yyarg[yyi++]);
06642       yyf += 2;
06643     }
06644         else
06645     {
06646       yyp++;
06647       yyf++;
06648     }
06649       }
06650   }
06651       return yysize;
06652     }
06653 }
06654 #endif /* YYERROR_VERBOSE */
06655 
06656 
06657 /*-----------------------------------------------.
06658 | Release the memory associated to this symbol.  |
06659 `-----------------------------------------------*/
06660 
06661 /*ARGSUSED*/
06662 #if (defined __STDC__ || defined __C99__FUNC__ \
06663      || defined __cplusplus || defined _MSC_VER)
06664 static void
06665 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, drizzled::Session *session)
06666 #else
06667 static void
06668 yydestruct (yymsg, yytype, yyvaluep, session)
06669     const char *yymsg;
06670     int yytype;
06671     YYSTYPE *yyvaluep;
06672     drizzled::Session *session;
06673 #endif
06674 {
06675   YYUSE (yyvaluep);
06676   YYUSE (session);
06677 
06678   if (!yymsg)
06679     yymsg = "Deleting";
06680   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
06681 
06682   switch (yytype)
06683     {
06684 
06685       default:
06686   break;
06687     }
06688 }
06689 
06690 /* Prevent warnings from -Wmissing-prototypes.  */
06691 #ifdef YYPARSE_PARAM
06692 #if defined __STDC__ || defined __cplusplus
06693 int yyparse (void *YYPARSE_PARAM);
06694 #else
06695 int yyparse ();
06696 #endif
06697 #else /* ! YYPARSE_PARAM */
06698 #if defined __STDC__ || defined __cplusplus
06699 int yyparse (drizzled::Session *session);
06700 #else
06701 int yyparse ();
06702 #endif
06703 #endif /* ! YYPARSE_PARAM */
06704 
06705 
06706 
06707 
06708 
06709 /*-------------------------.
06710 | yyparse or yypush_parse.  |
06711 `-------------------------*/
06712 
06713 #ifdef YYPARSE_PARAM
06714 #if (defined __STDC__ || defined __C99__FUNC__ \
06715      || defined __cplusplus || defined _MSC_VER)
06716 int
06717 yyparse (void *YYPARSE_PARAM)
06718 #else
06719 int
06720 yyparse (YYPARSE_PARAM)
06721     void *YYPARSE_PARAM;
06722 #endif
06723 #else /* ! YYPARSE_PARAM */
06724 #if (defined __STDC__ || defined __C99__FUNC__ \
06725      || defined __cplusplus || defined _MSC_VER)
06726 int
06727 yyparse (drizzled::Session *session)
06728 #else
06729 int
06730 yyparse (session)
06731     drizzled::Session *session;
06732 #endif
06733 #endif
06734 {
06735 /* The lookahead symbol.  */
06736 int yychar;
06737 
06738 /* The semantic value of the lookahead symbol.  */
06739 YYSTYPE yylval;
06740 
06741     /* Number of syntax errors so far.  */
06742     int yynerrs;
06743 
06744     int yystate;
06745     /* Number of tokens to shift before error messages enabled.  */
06746     int yyerrstatus;
06747 
06748     /* The stacks and their tools:
06749        `yyss': related to states.
06750        `yyvs': related to semantic values.
06751 
06752        Refer to the stacks thru separate pointers, to allow yyoverflow
06753        to reallocate them elsewhere.  */
06754 
06755     /* The state stack.  */
06756     yytype_int16 yyssa[YYINITDEPTH];
06757     yytype_int16 *yyss;
06758     yytype_int16 *yyssp;
06759 
06760     /* The semantic value stack.  */
06761     YYSTYPE yyvsa[YYINITDEPTH];
06762     YYSTYPE *yyvs;
06763     YYSTYPE *yyvsp;
06764 
06765     YYSIZE_T yystacksize;
06766 
06767   int yyn;
06768   int yyresult;
06769   /* Lookahead token as an internal (translated) token number.  */
06770   int yytoken;
06771   /* The variables used to return semantic value and location from the
06772      action routines.  */
06773   YYSTYPE yyval;
06774 
06775 #if YYERROR_VERBOSE
06776   /* Buffer for error messages, and its allocated size.  */
06777   char yymsgbuf[128];
06778   char *yymsg = yymsgbuf;
06779   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
06780 #endif
06781 
06782 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
06783 
06784   /* The number of symbols on the RHS of the reduced rule.
06785      Keep to zero when no symbol should be popped.  */
06786   int yylen = 0;
06787 
06788   yytoken = 0;
06789   yyss = yyssa;
06790   yyvs = yyvsa;
06791   yystacksize = YYINITDEPTH;
06792 
06793   YYDPRINTF ((stderr, "Starting parse\n"));
06794 
06795   yystate = 0;
06796   yyerrstatus = 0;
06797   yynerrs = 0;
06798   yychar = YYEMPTY; /* Cause a token to be read.  */
06799 
06800   /* Initialize stack pointers.
06801      Waste one element of value and location stack
06802      so that they stay on the same level as the state stack.
06803      The wasted elements are never initialized.  */
06804   yyssp = yyss;
06805   yyvsp = yyvs;
06806 
06807   goto yysetstate;
06808 
06809 /*------------------------------------------------------------.
06810 | yynewstate -- Push a new state, which is found in yystate.  |
06811 `------------------------------------------------------------*/
06812  yynewstate:
06813   /* In all cases, when you get here, the value and location stacks
06814      have just been pushed.  So pushing a state here evens the stacks.  */
06815   yyssp++;
06816 
06817  yysetstate:
06818   *yyssp = yystate;
06819 
06820   if (yyss + yystacksize - 1 <= yyssp)
06821     {
06822       /* Get the current used size of the three stacks, in elements.  */
06823       YYSIZE_T yysize = yyssp - yyss + 1;
06824 
06825 #ifdef yyoverflow
06826       {
06827   /* Give user a chance to reallocate the stack.  Use copies of
06828      these so that the &'s don't force the real ones into
06829      memory.  */
06830   YYSTYPE *yyvs1 = yyvs;
06831   yytype_int16 *yyss1 = yyss;
06832 
06833   /* Each stack pointer address is followed by the size of the
06834      data in use in that stack, in bytes.  This used to be a
06835      conditional around just the two extra args, but that might
06836      be undefined if yyoverflow is a macro.  */
06837   yyoverflow (YY_("memory exhausted"),
06838         &yyss1, yysize * sizeof (*yyssp),
06839         &yyvs1, yysize * sizeof (*yyvsp),
06840         &yystacksize);
06841 
06842   yyss = yyss1;
06843   yyvs = yyvs1;
06844       }
06845 #else /* no yyoverflow */
06846 # ifndef YYSTACK_RELOCATE
06847       goto yyexhaustedlab;
06848 # else
06849       /* Extend the stack our own way.  */
06850       if (YYMAXDEPTH <= yystacksize)
06851   goto yyexhaustedlab;
06852       yystacksize *= 2;
06853       if (YYMAXDEPTH < yystacksize)
06854   yystacksize = YYMAXDEPTH;
06855 
06856       {
06857   yytype_int16 *yyss1 = yyss;
06858   union yyalloc *yyptr =
06859     (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
06860   if (! yyptr)
06861     goto yyexhaustedlab;
06862   YYSTACK_RELOCATE (yyss_alloc, yyss);
06863   YYSTACK_RELOCATE (yyvs_alloc, yyvs);
06864 #  undef YYSTACK_RELOCATE
06865   if (yyss1 != yyssa)
06866     YYSTACK_FREE (yyss1);
06867       }
06868 # endif
06869 #endif /* no yyoverflow */
06870 
06871       yyssp = yyss + yysize - 1;
06872       yyvsp = yyvs + yysize - 1;
06873 
06874       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
06875       (unsigned long int) yystacksize));
06876 
06877       if (yyss + yystacksize - 1 <= yyssp)
06878   YYABORT;
06879     }
06880 
06881   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
06882 
06883   if (yystate == YYFINAL)
06884     YYACCEPT;
06885 
06886   goto yybackup;
06887 
06888 /*-----------.
06889 | yybackup.  |
06890 `-----------*/
06891 yybackup:
06892 
06893   /* Do appropriate processing given the current state.  Read a
06894      lookahead token if we need one and don't already have one.  */
06895 
06896   /* First try to decide what to do without reference to lookahead token.  */
06897   yyn = yypact[yystate];
06898   if (yyn == YYPACT_NINF)
06899     goto yydefault;
06900 
06901   /* Not known => get a lookahead token if don't already have one.  */
06902 
06903   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
06904   if (yychar == YYEMPTY)
06905     {
06906       YYDPRINTF ((stderr, "Reading a token: "));
06907       yychar = YYLEX;
06908     }
06909 
06910   if (yychar <= YYEOF)
06911     {
06912       yychar = yytoken = YYEOF;
06913       YYDPRINTF ((stderr, "Now at end of input.\n"));
06914     }
06915   else
06916     {
06917       yytoken = YYTRANSLATE (yychar);
06918       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
06919     }
06920 
06921   /* If the proper action on seeing token YYTOKEN is to reduce or to
06922      detect an error, take that action.  */
06923   yyn += yytoken;
06924   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
06925     goto yydefault;
06926   yyn = yytable[yyn];
06927   if (yyn <= 0)
06928     {
06929       if (yyn == 0 || yyn == YYTABLE_NINF)
06930   goto yyerrlab;
06931       yyn = -yyn;
06932       goto yyreduce;
06933     }
06934 
06935   /* Count tokens shifted since error; after three, turn off error
06936      status.  */
06937   if (yyerrstatus)
06938     yyerrstatus--;
06939 
06940   /* Shift the lookahead token.  */
06941   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
06942 
06943   /* Discard the shifted token.  */
06944   yychar = YYEMPTY;
06945 
06946   yystate = yyn;
06947   *++yyvsp = yylval;
06948 
06949   goto yynewstate;
06950 
06951 
06952 /*-----------------------------------------------------------.
06953 | yydefault -- do the default action for the current state.  |
06954 `-----------------------------------------------------------*/
06955 yydefault:
06956   yyn = yydefact[yystate];
06957   if (yyn == 0)
06958     goto yyerrlab;
06959   goto yyreduce;
06960 
06961 
06962 /*-----------------------------.
06963 | yyreduce -- Do a reduction.  |
06964 `-----------------------------*/
06965 yyreduce:
06966   /* yyn is the number of a rule to reduce with.  */
06967   yylen = yyr2[yyn];
06968 
06969   /* If YYLEN is nonzero, implement the default value of the action:
06970      `$$ = $1'.
06971 
06972      Otherwise, the following line sets YYVAL to garbage.
06973      This behavior is undocumented and Bison
06974      users should not rely upon it.  Assigning to YYVAL
06975      unconditionally makes the parser a bit smaller, and it avoids a
06976      GCC warning that YYVAL may be used uninitialized.  */
06977   yyval = yyvsp[1-yylen];
06978 
06979 
06980   YY_REDUCE_PRINT (yyn);
06981   switch (yyn)
06982     {
06983         case 2:
06984 
06985 /* Line 1455 of yacc.c  */
06986 #line 799 "drizzled/sql_yacc.yy"
06987     {
06988             if (!(YYSession->lex().select_lex.options & OPTION_FOUND_COMMENT))
06989             {
06990               my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
06991               DRIZZLE_YYABORT;
06992             }
06993             else
06994             {
06995               YYSession->lex().statement= new statement::EmptyQuery(YYSession);
06996             }
06997           }
06998     break;
06999 
07000   case 3:
07001 
07002 /* Line 1455 of yacc.c  */
07003 #line 810 "drizzled/sql_yacc.yy"
07004     {}
07005     break;
07006 
07007   case 32:
07008 
07009 /* Line 1455 of yacc.c  */
07010 #line 852 "drizzled/sql_yacc.yy"
07011     {
07012             Lex.statement= new statement::catalog::Create(YYSession, (yyvsp[(3) - (3)].lex_str));
07013           }
07014     break;
07015 
07016   case 33:
07017 
07018 /* Line 1455 of yacc.c  */
07019 #line 856 "drizzled/sql_yacc.yy"
07020     {
07021             Lex.statement= new statement::CreateTable(YYSession, (yyvsp[(5) - (5)].table), (yyvsp[(2) - (5)].num));
07022 
07023             if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL,
07024                                                      TL_OPTION_UPDATING,
07025                                                      TL_WRITE))
07026               DRIZZLE_YYABORT;
07027             Lex.col_list.clear();
07028           }
07029     break;
07030 
07031   case 34:
07032 
07033 /* Line 1455 of yacc.c  */
07034 #line 866 "drizzled/sql_yacc.yy"
07035     {
07036             Lex.current_select= &Lex.select_lex;
07037           }
07038     break;
07039 
07040   case 35:
07041 
07042 /* Line 1455 of yacc.c  */
07043 #line 870 "drizzled/sql_yacc.yy"
07044     {
07045             Lex.statement= new statement::CreateIndex(YYSession, (yyvsp[(2) - (2)].build_method));
07046           }
07047     break;
07048 
07049   case 36:
07050 
07051 /* Line 1455 of yacc.c  */
07052 #line 874 "drizzled/sql_yacc.yy"
07053     {
07054             if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(9) - (13)].table),
07055                                                             NULL,
07056                                                             TL_OPTION_UPDATING))
07057               DRIZZLE_YYABORT;
07058 
07059             parser::buildKey(&Lex, (yyvsp[(4) - (13)].key_type), (yyvsp[(6) - (13)].lex_str));
07060           }
07061     break;
07062 
07063   case 37:
07064 
07065 /* Line 1455 of yacc.c  */
07066 #line 883 "drizzled/sql_yacc.yy"
07067     {
07068             Lex.statement= new statement::CreateSchema(YYSession);
07069           }
07070     break;
07071 
07072   case 38:
07073 
07074 /* Line 1455 of yacc.c  */
07075 #line 887 "drizzled/sql_yacc.yy"
07076     {
07077             Lex.name= (yyvsp[(4) - (6)].lex_str);
07078           }
07079     break;
07080 
07081   case 39:
07082 
07083 /* Line 1455 of yacc.c  */
07084 #line 894 "drizzled/sql_yacc.yy"
07085     { }
07086     break;
07087 
07088   case 40:
07089 
07090 /* Line 1455 of yacc.c  */
07091 #line 896 "drizzled/sql_yacc.yy"
07092     {
07093              Lex.current_select->set_braces(1);
07094            }
07095     break;
07096 
07097   case 41:
07098 
07099 /* Line 1455 of yacc.c  */
07100 #line 899 "drizzled/sql_yacc.yy"
07101     {}
07102     break;
07103 
07104   case 42:
07105 
07106 /* Line 1455 of yacc.c  */
07107 #line 901 "drizzled/sql_yacc.yy"
07108     { }
07109     break;
07110 
07111   case 43:
07112 
07113 /* Line 1455 of yacc.c  */
07114 #line 903 "drizzled/sql_yacc.yy"
07115     { }
07116     break;
07117 
07118   case 44:
07119 
07120 /* Line 1455 of yacc.c  */
07121 #line 905 "drizzled/sql_yacc.yy"
07122     { }
07123     break;
07124 
07125   case 45:
07126 
07127 /* Line 1455 of yacc.c  */
07128 #line 909 "drizzled/sql_yacc.yy"
07129     {}
07130     break;
07131 
07132   case 46:
07133 
07134 /* Line 1455 of yacc.c  */
07135 #line 911 "drizzled/sql_yacc.yy"
07136     {
07137             Lex.current_select->set_braces(0);
07138           }
07139     break;
07140 
07141   case 47:
07142 
07143 /* Line 1455 of yacc.c  */
07144 #line 914 "drizzled/sql_yacc.yy"
07145     {}
07146     break;
07147 
07148   case 48:
07149 
07150 /* Line 1455 of yacc.c  */
07151 #line 916 "drizzled/sql_yacc.yy"
07152     {
07153             Lex.current_select->set_braces(1);
07154           }
07155     break;
07156 
07157   case 49:
07158 
07159 /* Line 1455 of yacc.c  */
07160 #line 919 "drizzled/sql_yacc.yy"
07161     {}
07162     break;
07163 
07164   case 50:
07165 
07166 /* Line 1455 of yacc.c  */
07167 #line 924 "drizzled/sql_yacc.yy"
07168     {
07169             ((statement::CreateTable *)(YYSession->lex().statement))->is_create_table_like= true;
07170 
07171             if (not YYSession->lex().select_lex.add_table_to_list(YYSession, (yyvsp[(2) - (2)].table), NULL, 0, TL_READ))
07172               DRIZZLE_YYABORT;
07173           }
07174     break;
07175 
07176   case 51:
07177 
07178 /* Line 1455 of yacc.c  */
07179 #line 934 "drizzled/sql_yacc.yy"
07180     {
07181           }
07182     break;
07183 
07184   case 52:
07185 
07186 /* Line 1455 of yacc.c  */
07187 #line 943 "drizzled/sql_yacc.yy"
07188     {
07189             Lex.lock_option= TL_READ;
07190             if (Lex.sql_command == SQLCOM_INSERT)
07191             {
07192               delete Lex.statement;
07193               Lex.statement= new statement::InsertSelect(YYSession);
07194             }
07195             else if (Lex.sql_command == SQLCOM_REPLACE)
07196             {
07197               delete Lex.statement;
07198               Lex.statement= new statement::ReplaceSelect(YYSession);
07199             }
07200             /*
07201               The following work only with the local list, the global list
07202               is created correctly in this case
07203             */
07204             Lex.current_select->table_list.save_and_clear(&Lex.save_list);
07205             init_select(&Lex);
07206             Lex.current_select->parsing_place= SELECT_LIST;
07207           }
07208     break;
07209 
07210   case 53:
07211 
07212 /* Line 1455 of yacc.c  */
07213 #line 964 "drizzled/sql_yacc.yy"
07214     {
07215             Lex.current_select->parsing_place= NO_MATTER;
07216           }
07217     break;
07218 
07219   case 54:
07220 
07221 /* Line 1455 of yacc.c  */
07222 #line 968 "drizzled/sql_yacc.yy"
07223     {
07224             /*
07225               The following work only with the local list, the global list
07226               is created correctly in this case
07227             */
07228             Lex.current_select->table_list.push_front(&Lex.save_list);
07229           }
07230     break;
07231 
07232   case 55:
07233 
07234 /* Line 1455 of yacc.c  */
07235 #line 978 "drizzled/sql_yacc.yy"
07236     {}
07237     break;
07238 
07239   case 56:
07240 
07241 /* Line 1455 of yacc.c  */
07242 #line 979 "drizzled/sql_yacc.yy"
07243     {}
07244     break;
07245 
07246   case 57:
07247 
07248 /* Line 1455 of yacc.c  */
07249 #line 980 "drizzled/sql_yacc.yy"
07250     {}
07251     break;
07252 
07253   case 60:
07254 
07255 /* Line 1455 of yacc.c  */
07256 #line 990 "drizzled/sql_yacc.yy"
07257     {
07258             statement::CreateSchema *statement= (statement::CreateSchema *)Lex.statement;
07259             statement->schema_message.mutable_engine()->add_options()->set_name((yyvsp[(1) - (1)].lex_str).str);
07260           }
07261     break;
07262 
07263   case 61:
07264 
07265 /* Line 1455 of yacc.c  */
07266 #line 995 "drizzled/sql_yacc.yy"
07267     {
07268             parser::buildReplicationOption(&Lex, true);
07269           }
07270     break;
07271 
07272   case 62:
07273 
07274 /* Line 1455 of yacc.c  */
07275 #line 999 "drizzled/sql_yacc.yy"
07276     {
07277             parser::buildReplicationOption(&Lex, false);
07278           }
07279     break;
07280 
07281   case 63:
07282 
07283 /* Line 1455 of yacc.c  */
07284 #line 1003 "drizzled/sql_yacc.yy"
07285     {
07286             parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str));
07287           }
07288     break;
07289 
07290   case 64:
07291 
07292 /* Line 1455 of yacc.c  */
07293 #line 1007 "drizzled/sql_yacc.yy"
07294     {
07295             parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].ulonglong_number));
07296           }
07297     break;
07298 
07299   case 65:
07300 
07301 /* Line 1455 of yacc.c  */
07302 #line 1013 "drizzled/sql_yacc.yy"
07303     { (yyval.num)= false; }
07304     break;
07305 
07306   case 66:
07307 
07308 /* Line 1455 of yacc.c  */
07309 #line 1014 "drizzled/sql_yacc.yy"
07310     { (yyval.num)= true; }
07311     break;
07312 
07313   case 67:
07314 
07315 /* Line 1455 of yacc.c  */
07316 #line 1018 "drizzled/sql_yacc.yy"
07317     { (yyval.boolean)= false; }
07318     break;
07319 
07320   case 68:
07321 
07322 /* Line 1455 of yacc.c  */
07323 #line 1019 "drizzled/sql_yacc.yy"
07324     { (yyval.boolean)= true; YYSession->lex().setExists(); }
07325     break;
07326 
07327   case 77:
07328 
07329 /* Line 1455 of yacc.c  */
07330 #line 1042 "drizzled/sql_yacc.yy"
07331     {
07332             Lex.table()->mutable_engine()->set_name((yyvsp[(3) - (3)].lex_str).str);
07333           }
07334     break;
07335 
07336   case 78:
07337 
07338 /* Line 1455 of yacc.c  */
07339 #line 1046 "drizzled/sql_yacc.yy"
07340     {
07341             Lex.table()->mutable_options()->set_comment((yyvsp[(3) - (3)].lex_str).str);
07342           }
07343     break;
07344 
07345   case 79:
07346 
07347 /* Line 1455 of yacc.c  */
07348 #line 1050 "drizzled/sql_yacc.yy"
07349     {
07350             Lex.table()->mutable_options()->set_auto_increment_value((yyvsp[(3) - (3)].ulonglong_number));
07351           }
07352     break;
07353 
07354   case 80:
07355 
07356 /* Line 1455 of yacc.c  */
07357 #line 1054 "drizzled/sql_yacc.yy"
07358     {
07359       message::set_is_replicated(*Lex.table(), true);
07360           }
07361     break;
07362 
07363   case 81:
07364 
07365 /* Line 1455 of yacc.c  */
07366 #line 1058 "drizzled/sql_yacc.yy"
07367     {
07368       message::set_is_replicated(*Lex.table(), false);
07369           }
07370     break;
07371 
07372   case 82:
07373 
07374 /* Line 1455 of yacc.c  */
07375 #line 1062 "drizzled/sql_yacc.yy"
07376     {
07377             parser::buildEngineOption(&Lex, "ROW_FORMAT", (yyvsp[(3) - (3)].lex_str));
07378           }
07379     break;
07380 
07381   case 83:
07382 
07383 /* Line 1455 of yacc.c  */
07384 #line 1066 "drizzled/sql_yacc.yy"
07385     {
07386             parser::buildEngineOption(&Lex, "FILE", (yyvsp[(3) - (3)].lex_str));
07387           }
07388     break;
07389 
07390   case 84:
07391 
07392 /* Line 1455 of yacc.c  */
07393 #line 1070 "drizzled/sql_yacc.yy"
07394     {
07395             parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str));
07396           }
07397     break;
07398 
07399   case 85:
07400 
07401 /* Line 1455 of yacc.c  */
07402 #line 1074 "drizzled/sql_yacc.yy"
07403     {
07404             parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].ulonglong_number));
07405           }
07406     break;
07407 
07408   case 87:
07409 
07410 /* Line 1455 of yacc.c  */
07411 #line 1082 "drizzled/sql_yacc.yy"
07412     {
07413             if (not parser::buildCollation(&Lex, (yyvsp[(4) - (4)].charset)))
07414             {
07415               DRIZZLE_YYABORT;
07416             }
07417           }
07418     break;
07419 
07420   case 88:
07421 
07422 /* Line 1455 of yacc.c  */
07423 #line 1092 "drizzled/sql_yacc.yy"
07424     {
07425             ((statement::CreateSchema *)Lex.statement)->schema_message.set_collation((yyvsp[(4) - (4)].charset)->name);
07426           }
07427     break;
07428 
07429   case 89:
07430 
07431 /* Line 1455 of yacc.c  */
07432 #line 1098 "drizzled/sql_yacc.yy"
07433     {}
07434     break;
07435 
07436   case 90:
07437 
07438 /* Line 1455 of yacc.c  */
07439 #line 1099 "drizzled/sql_yacc.yy"
07440     {}
07441     break;
07442 
07443   case 91:
07444 
07445 /* Line 1455 of yacc.c  */
07446 #line 1100 "drizzled/sql_yacc.yy"
07447     {}
07448     break;
07449 
07450   case 92:
07451 
07452 /* Line 1455 of yacc.c  */
07453 #line 1101 "drizzled/sql_yacc.yy"
07454     {}
07455     break;
07456 
07457   case 93:
07458 
07459 /* Line 1455 of yacc.c  */
07460 #line 1102 "drizzled/sql_yacc.yy"
07461     {}
07462     break;
07463 
07464   case 94:
07465 
07466 /* Line 1455 of yacc.c  */
07467 #line 1103 "drizzled/sql_yacc.yy"
07468     {}
07469     break;
07470 
07471   case 95:
07472 
07473 /* Line 1455 of yacc.c  */
07474 #line 1108 "drizzled/sql_yacc.yy"
07475     {
07476             (yyval.lex_str).str= YYSession->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
07477             (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
07478           }
07479     break;
07480 
07481   case 96:
07482 
07483 /* Line 1455 of yacc.c  */
07484 #line 1115 "drizzled/sql_yacc.yy"
07485     {}
07486     break;
07487 
07488   case 103:
07489 
07490 /* Line 1455 of yacc.c  */
07491 #line 1132 "drizzled/sql_yacc.yy"
07492     {
07493             Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
07494           }
07495     break;
07496 
07497   case 104:
07498 
07499 /* Line 1455 of yacc.c  */
07500 #line 1139 "drizzled/sql_yacc.yy"
07501     {
07502             parser::buildKey(&Lex, (yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].lex_str));
07503           }
07504     break;
07505 
07506   case 105:
07507 
07508 /* Line 1455 of yacc.c  */
07509 #line 1144 "drizzled/sql_yacc.yy"
07510     {
07511             parser::buildKey(&Lex, (yyvsp[(2) - (8)].key_type), (yyvsp[(3) - (8)].lex_str).str ? (yyvsp[(3) - (8)].lex_str) : (yyvsp[(1) - (8)].lex_str));
07512           }
07513     break;
07514 
07515   case 106:
07516 
07517 /* Line 1455 of yacc.c  */
07518 #line 1148 "drizzled/sql_yacc.yy"
07519     {
07520             parser::buildForeignKey(&Lex, (yyvsp[(1) - (8)].lex_str).str ? (yyvsp[(1) - (8)].lex_str) : (yyvsp[(4) - (8)].lex_str), (yyvsp[(8) - (8)].table));
07521           }
07522     break;
07523 
07524   case 107:
07525 
07526 /* Line 1455 of yacc.c  */
07527 #line 1152 "drizzled/sql_yacc.yy"
07528     {
07529             Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
07530           }
07531     break;
07532 
07533   case 108:
07534 
07535 /* Line 1455 of yacc.c  */
07536 #line 1156 "drizzled/sql_yacc.yy"
07537     {
07538             Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
07539           }
07540     break;
07541 
07542   case 112:
07543 
07544 /* Line 1455 of yacc.c  */
07545 #line 1171 "drizzled/sql_yacc.yy"
07546     { (yyval.lex_str)= null_lex_str; }
07547     break;
07548 
07549   case 113:
07550 
07551 /* Line 1455 of yacc.c  */
07552 #line 1172 "drizzled/sql_yacc.yy"
07553     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
07554     break;
07555 
07556   case 114:
07557 
07558 /* Line 1455 of yacc.c  */
07559 #line 1176 "drizzled/sql_yacc.yy"
07560     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
07561     break;
07562 
07563   case 115:
07564 
07565 /* Line 1455 of yacc.c  */
07566 #line 1181 "drizzled/sql_yacc.yy"
07567     {
07568             parser::buildCreateFieldIdent(&Lex);
07569           }
07570     break;
07571 
07572   case 116:
07573 
07574 /* Line 1455 of yacc.c  */
07575 #line 1185 "drizzled/sql_yacc.yy"
07576     {
07577             statement::CreateTable *statement= (statement::CreateTable *)Lex.statement;
07578 
07579             if (Lex.field())
07580             {
07581               Lex.field()->set_name((yyvsp[(1) - (4)].lex_str).str);
07582             }
07583 
07584             if (add_field_to_list(Lex.session, &(yyvsp[(1) - (4)].lex_str), (enum enum_field_types) (yyvsp[(3) - (4)].field_val),
07585                                   Lex.length, Lex.dec, Lex.type,
07586                                   statement->column_format,
07587                                   statement->default_value, statement->on_update_value,
07588                                   &statement->comment,
07589                                   statement->change, &Lex.interval_list, Lex.charset))
07590               DRIZZLE_YYABORT;
07591 
07592             Lex.setField(NULL);
07593           }
07594     break;
07595 
07596   case 117:
07597 
07598 /* Line 1455 of yacc.c  */
07599 #line 1207 "drizzled/sql_yacc.yy"
07600     {
07601             (yyval.field_val)=parser::buildTimestampColumn(&Lex, NULL);
07602           }
07603     break;
07604 
07605   case 118:
07606 
07607 /* Line 1455 of yacc.c  */
07608 #line 1211 "drizzled/sql_yacc.yy"
07609     {
07610             (yyval.field_val)=parser::buildTimestampColumn(&Lex, (yyvsp[(3) - (5)].lex_str).str);
07611           }
07612     break;
07613 
07614   case 119:
07615 
07616 /* Line 1455 of yacc.c  */
07617 #line 1215 "drizzled/sql_yacc.yy"
07618     {
07619             (yyval.field_val)=DRIZZLE_TYPE_DATETIME;
07620 
07621             if (Lex.field())
07622               Lex.field()->set_type(message::Table::Field::DATETIME);
07623           }
07624     break;
07625 
07626   case 120:
07627 
07628 /* Line 1455 of yacc.c  */
07629 #line 1222 "drizzled/sql_yacc.yy"
07630     {
07631             (yyval.field_val)= (yyvsp[(1) - (2)].field_val);
07632           }
07633     break;
07634 
07635   case 121:
07636 
07637 /* Line 1455 of yacc.c  */
07638 #line 1226 "drizzled/sql_yacc.yy"
07639     {
07640             (yyval.field_val)= parser::buildVarcharColumn(&Lex, "1");
07641           }
07642     break;
07643 
07644   case 122:
07645 
07646 /* Line 1455 of yacc.c  */
07647 #line 1230 "drizzled/sql_yacc.yy"
07648     {
07649             (yyval.field_val)= parser::buildVarcharColumn(&Lex, (yyvsp[(3) - (5)].lex_str).str);
07650           }
07651     break;
07652 
07653   case 123:
07654 
07655 /* Line 1455 of yacc.c  */
07656 #line 1234 "drizzled/sql_yacc.yy"
07657     {
07658             (yyval.field_val)=DRIZZLE_TYPE_BLOB;
07659             Lex.length=(char*) 0; /* use default length */
07660 
07661             if (Lex.field())
07662               Lex.field()->set_type(message::Table::Field::BLOB);
07663           }
07664     break;
07665 
07666   case 124:
07667 
07668 /* Line 1455 of yacc.c  */
07669 #line 1242 "drizzled/sql_yacc.yy"
07670     {
07671             Lex.interval_list.clear();
07672           }
07673     break;
07674 
07675   case 125:
07676 
07677 /* Line 1455 of yacc.c  */
07678 #line 1246 "drizzled/sql_yacc.yy"
07679     {
07680             (yyval.field_val)=DRIZZLE_TYPE_ENUM;
07681 
07682             if (Lex.field())
07683               Lex.field()->set_type(message::Table::Field::ENUM);
07684           }
07685     break;
07686 
07687   case 126:
07688 
07689 /* Line 1455 of yacc.c  */
07690 #line 1253 "drizzled/sql_yacc.yy"
07691     {
07692             (yyval.field_val)= parser::buildVarbinaryColumn(&Lex, (yyvsp[(3) - (5)].lex_str).str);
07693           }
07694     break;
07695 
07696   case 127:
07697 
07698 /* Line 1455 of yacc.c  */
07699 #line 1257 "drizzled/sql_yacc.yy"
07700     {
07701             assert ((yyvsp[(1) - (2)].field_val) == DRIZZLE_TYPE_DOUBLE);
07702             (yyval.field_val)= parser::buildDoubleColumn(&Lex);
07703           }
07704     break;
07705 
07706   case 128:
07707 
07708 /* Line 1455 of yacc.c  */
07709 #line 1262 "drizzled/sql_yacc.yy"
07710     {
07711             (yyval.field_val)=DRIZZLE_TYPE_DATE;
07712 
07713             if (Lex.field())
07714               Lex.field()->set_type(message::Table::Field::DATE);
07715           }
07716     break;
07717 
07718   case 129:
07719 
07720 /* Line 1455 of yacc.c  */
07721 #line 1269 "drizzled/sql_yacc.yy"
07722     {
07723             (yyval.field_val)=DRIZZLE_TYPE_TIME;
07724 
07725             if (Lex.field())
07726               Lex.field()->set_type(message::Table::Field::TIME);
07727           }
07728     break;
07729 
07730   case 130:
07731 
07732 /* Line 1455 of yacc.c  */
07733 #line 1276 "drizzled/sql_yacc.yy"
07734     {
07735             (yyval.field_val)= parser::buildBlobColumn(&Lex);
07736           }
07737     break;
07738 
07739   case 131:
07740 
07741 /* Line 1455 of yacc.c  */
07742 #line 1280 "drizzled/sql_yacc.yy"
07743     {
07744             (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07745           }
07746     break;
07747 
07748   case 132:
07749 
07750 /* Line 1455 of yacc.c  */
07751 #line 1284 "drizzled/sql_yacc.yy"
07752     {
07753             (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07754           }
07755     break;
07756 
07757   case 133:
07758 
07759 /* Line 1455 of yacc.c  */
07760 #line 1288 "drizzled/sql_yacc.yy"
07761     {
07762             (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07763           }
07764     break;
07765 
07766   case 134:
07767 
07768 /* Line 1455 of yacc.c  */
07769 #line 1292 "drizzled/sql_yacc.yy"
07770     {
07771             (yyval.field_val)= parser::buildUuidColumn(&Lex);
07772           }
07773     break;
07774 
07775   case 135:
07776 
07777 /* Line 1455 of yacc.c  */
07778 #line 1296 "drizzled/sql_yacc.yy"
07779     {
07780             (yyval.field_val)= parser::buildBooleanColumn(&Lex);
07781           }
07782     break;
07783 
07784   case 136:
07785 
07786 /* Line 1455 of yacc.c  */
07787 #line 1300 "drizzled/sql_yacc.yy"
07788     {
07789             (yyval.field_val)= parser::buildSerialColumn(&Lex);
07790           }
07791     break;
07792 
07793   case 137:
07794 
07795 /* Line 1455 of yacc.c  */
07796 #line 1307 "drizzled/sql_yacc.yy"
07797     { }
07798     break;
07799 
07800   case 138:
07801 
07802 /* Line 1455 of yacc.c  */
07803 #line 1309 "drizzled/sql_yacc.yy"
07804     { }
07805     break;
07806 
07807   case 139:
07808 
07809 /* Line 1455 of yacc.c  */
07810 #line 1311 "drizzled/sql_yacc.yy"
07811     { }
07812     break;
07813 
07814   case 140:
07815 
07816 /* Line 1455 of yacc.c  */
07817 #line 1316 "drizzled/sql_yacc.yy"
07818     {
07819             (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07820           }
07821     break;
07822 
07823   case 141:
07824 
07825 /* Line 1455 of yacc.c  */
07826 #line 1320 "drizzled/sql_yacc.yy"
07827     {
07828             (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONGLONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07829           }
07830     break;
07831 
07832   case 142:
07833 
07834 /* Line 1455 of yacc.c  */
07835 #line 1327 "drizzled/sql_yacc.yy"
07836     {
07837             (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
07838           }
07839     break;
07840 
07841   case 143:
07842 
07843 /* Line 1455 of yacc.c  */
07844 #line 1331 "drizzled/sql_yacc.yy"
07845     {
07846             (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
07847           }
07848     break;
07849 
07850   case 144:
07851 
07852 /* Line 1455 of yacc.c  */
07853 #line 1335 "drizzled/sql_yacc.yy"
07854     {
07855             (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
07856           }
07857     break;
07858 
07859   case 145:
07860 
07861 /* Line 1455 of yacc.c  */
07862 #line 1342 "drizzled/sql_yacc.yy"
07863     { Lex.dec=Lex.length= (char*)0; }
07864     break;
07865 
07866   case 146:
07867 
07868 /* Line 1455 of yacc.c  */
07869 #line 1344 "drizzled/sql_yacc.yy"
07870     { Lex.length=(yyvsp[(2) - (3)].lex_str).str; Lex.dec= (char*)0; }
07871     break;
07872 
07873   case 147:
07874 
07875 /* Line 1455 of yacc.c  */
07876 #line 1346 "drizzled/sql_yacc.yy"
07877     {}
07878     break;
07879 
07880   case 148:
07881 
07882 /* Line 1455 of yacc.c  */
07883 #line 1351 "drizzled/sql_yacc.yy"
07884     {
07885             Lex.length= (yyvsp[(2) - (5)].lex_str).str;
07886             Lex.dec= (yyvsp[(4) - (5)].lex_str).str;
07887           }
07888     break;
07889 
07890   case 149:
07891 
07892 /* Line 1455 of yacc.c  */
07893 #line 1358 "drizzled/sql_yacc.yy"
07894     { Lex.length=(char*) 0; /* use default length */ }
07895     break;
07896 
07897   case 150:
07898 
07899 /* Line 1455 of yacc.c  */
07900 #line 1359 "drizzled/sql_yacc.yy"
07901     { Lex.length= (yyvsp[(2) - (3)].lex_str).str; }
07902     break;
07903 
07904   case 151:
07905 
07906 /* Line 1455 of yacc.c  */
07907 #line 1363 "drizzled/sql_yacc.yy"
07908     { (yyval.boolean)= false; }
07909     break;
07910 
07911   case 152:
07912 
07913 /* Line 1455 of yacc.c  */
07914 #line 1364 "drizzled/sql_yacc.yy"
07915     { (yyval.boolean)= false; }
07916     break;
07917 
07918   case 153:
07919 
07920 /* Line 1455 of yacc.c  */
07921 #line 1365 "drizzled/sql_yacc.yy"
07922     { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
07923     break;
07924 
07925   case 154:
07926 
07927 /* Line 1455 of yacc.c  */
07928 #line 1369 "drizzled/sql_yacc.yy"
07929     { }
07930     break;
07931 
07932   case 155:
07933 
07934 /* Line 1455 of yacc.c  */
07935 #line 1370 "drizzled/sql_yacc.yy"
07936     { }
07937     break;
07938 
07939   case 156:
07940 
07941 /* Line 1455 of yacc.c  */
07942 #line 1374 "drizzled/sql_yacc.yy"
07943     { (yyval.boolean)= false; }
07944     break;
07945 
07946   case 157:
07947 
07948 /* Line 1455 of yacc.c  */
07949 #line 1375 "drizzled/sql_yacc.yy"
07950     { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
07951     break;
07952 
07953   case 158:
07954 
07955 /* Line 1455 of yacc.c  */
07956 #line 1380 "drizzled/sql_yacc.yy"
07957     { Lex.dec=Lex.length= (char*)0; }
07958     break;
07959 
07960   case 159:
07961 
07962 /* Line 1455 of yacc.c  */
07963 #line 1382 "drizzled/sql_yacc.yy"
07964     { Lex.length=Lex.dec= (char*)0; }
07965     break;
07966 
07967   case 160:
07968 
07969 /* Line 1455 of yacc.c  */
07970 #line 1384 "drizzled/sql_yacc.yy"
07971     {}
07972     break;
07973 
07974   case 161:
07975 
07976 /* Line 1455 of yacc.c  */
07977 #line 1389 "drizzled/sql_yacc.yy"
07978     {
07979             Lex.type&= ~ NOT_NULL_FLAG;
07980           }
07981     break;
07982 
07983   case 162:
07984 
07985 /* Line 1455 of yacc.c  */
07986 #line 1393 "drizzled/sql_yacc.yy"
07987     {
07988             Lex.type|= NOT_NULL_FLAG;
07989 
07990             if (Lex.field())
07991             {
07992               Lex.field()->mutable_constraints()->set_is_notnull(true);
07993             }
07994           }
07995     break;
07996 
07997   case 163:
07998 
07999 /* Line 1455 of yacc.c  */
08000 #line 1405 "drizzled/sql_yacc.yy"
08001     {
08002             parser::buildPrimaryOnColumn(&Lex);
08003           }
08004     break;
08005 
08006   case 164:
08007 
08008 /* Line 1455 of yacc.c  */
08009 #line 1409 "drizzled/sql_yacc.yy"
08010     {
08011             parser::buildKeyOnColumn(&Lex);
08012           }
08013     break;
08014 
08015   case 165:
08016 
08017 /* Line 1455 of yacc.c  */
08018 #line 1413 "drizzled/sql_yacc.yy"
08019     {
08020             parser::buildKeyOnColumn(&Lex);
08021           }
08022     break;
08023 
08024   case 166:
08025 
08026 /* Line 1455 of yacc.c  */
08027 #line 1419 "drizzled/sql_yacc.yy"
08028     {}
08029     break;
08030 
08031   case 167:
08032 
08033 /* Line 1455 of yacc.c  */
08034 #line 1421 "drizzled/sql_yacc.yy"
08035     { }
08036     break;
08037 
08038   case 168:
08039 
08040 /* Line 1455 of yacc.c  */
08041 #line 1423 "drizzled/sql_yacc.yy"
08042     {
08043             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08044 
08045             statement->default_value= (yyvsp[(3) - (3)].item);
08046             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08047           }
08048     break;
08049 
08050   case 169:
08051 
08052 /* Line 1455 of yacc.c  */
08053 #line 1430 "drizzled/sql_yacc.yy"
08054     { }
08055     break;
08056 
08057   case 170:
08058 
08059 /* Line 1455 of yacc.c  */
08060 #line 1434 "drizzled/sql_yacc.yy"
08061     { }
08062     break;
08063 
08064   case 171:
08065 
08066 /* Line 1455 of yacc.c  */
08067 #line 1436 "drizzled/sql_yacc.yy"
08068     { }
08069     break;
08070 
08071   case 172:
08072 
08073 /* Line 1455 of yacc.c  */
08074 #line 1438 "drizzled/sql_yacc.yy"
08075     {
08076             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08077 
08078             statement->default_value= (yyvsp[(3) - (3)].item);
08079             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08080           }
08081     break;
08082 
08083   case 173:
08084 
08085 /* Line 1455 of yacc.c  */
08086 #line 1445 "drizzled/sql_yacc.yy"
08087     { }
08088     break;
08089 
08090   case 174:
08091 
08092 /* Line 1455 of yacc.c  */
08093 #line 1449 "drizzled/sql_yacc.yy"
08094     {}
08095     break;
08096 
08097   case 175:
08098 
08099 /* Line 1455 of yacc.c  */
08100 #line 1450 "drizzled/sql_yacc.yy"
08101     {}
08102     break;
08103 
08104   case 176:
08105 
08106 /* Line 1455 of yacc.c  */
08107 #line 1454 "drizzled/sql_yacc.yy"
08108     {}
08109     break;
08110 
08111   case 178:
08112 
08113 /* Line 1455 of yacc.c  */
08114 #line 1460 "drizzled/sql_yacc.yy"
08115     { }
08116     break;
08117 
08118   case 179:
08119 
08120 /* Line 1455 of yacc.c  */
08121 #line 1462 "drizzled/sql_yacc.yy"
08122     {
08123             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08124 
08125             statement->default_value=(yyvsp[(2) - (2)].item);
08126             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08127           }
08128     break;
08129 
08130   case 180:
08131 
08132 /* Line 1455 of yacc.c  */
08133 #line 1469 "drizzled/sql_yacc.yy"
08134     {
08135             if (Lex.charset && !my_charset_same(Lex.charset,(yyvsp[(2) - (2)].charset)))
08136             {
08137               my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
08138                        (yyvsp[(2) - (2)].charset)->name,Lex.charset->csname);
08139               DRIZZLE_YYABORT;
08140             }
08141             else
08142             {
08143               Lex.charset=(yyvsp[(2) - (2)].charset);
08144             }
08145           }
08146     break;
08147 
08148   case 181:
08149 
08150 /* Line 1455 of yacc.c  */
08151 #line 1482 "drizzled/sql_yacc.yy"
08152     { }
08153     break;
08154 
08155   case 182:
08156 
08157 /* Line 1455 of yacc.c  */
08158 #line 1486 "drizzled/sql_yacc.yy"
08159     {}
08160     break;
08161 
08162   case 183:
08163 
08164 /* Line 1455 of yacc.c  */
08165 #line 1487 "drizzled/sql_yacc.yy"
08166     {}
08167     break;
08168 
08169   case 184:
08170 
08171 /* Line 1455 of yacc.c  */
08172 #line 1491 "drizzled/sql_yacc.yy"
08173     {}
08174     break;
08175 
08176   case 186:
08177 
08178 /* Line 1455 of yacc.c  */
08179 #line 1497 "drizzled/sql_yacc.yy"
08180     { }
08181     break;
08182 
08183   case 187:
08184 
08185 /* Line 1455 of yacc.c  */
08186 #line 1499 "drizzled/sql_yacc.yy"
08187     {
08188             parser::buildAutoOnColumn(&Lex);
08189           }
08190     break;
08191 
08192   case 188:
08193 
08194 /* Line 1455 of yacc.c  */
08195 #line 1503 "drizzled/sql_yacc.yy"
08196     {
08197             (void)parser::buildSerialColumn(&Lex);
08198           }
08199     break;
08200 
08201   case 189:
08202 
08203 /* Line 1455 of yacc.c  */
08204 #line 1507 "drizzled/sql_yacc.yy"
08205     {
08206             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08207 
08208             statement->default_value=(yyvsp[(2) - (2)].item);
08209             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08210           }
08211     break;
08212 
08213   case 190:
08214 
08215 /* Line 1455 of yacc.c  */
08216 #line 1514 "drizzled/sql_yacc.yy"
08217     { }
08218     break;
08219 
08220   case 191:
08221 
08222 /* Line 1455 of yacc.c  */
08223 #line 1518 "drizzled/sql_yacc.yy"
08224     {}
08225     break;
08226 
08227   case 192:
08228 
08229 /* Line 1455 of yacc.c  */
08230 #line 1519 "drizzled/sql_yacc.yy"
08231     {}
08232     break;
08233 
08234   case 193:
08235 
08236 /* Line 1455 of yacc.c  */
08237 #line 1523 "drizzled/sql_yacc.yy"
08238     {}
08239     break;
08240 
08241   case 195:
08242 
08243 /* Line 1455 of yacc.c  */
08244 #line 1529 "drizzled/sql_yacc.yy"
08245     { }
08246     break;
08247 
08248   case 196:
08249 
08250 /* Line 1455 of yacc.c  */
08251 #line 1531 "drizzled/sql_yacc.yy"
08252     {
08253             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08254 
08255             statement->default_value= new Item_func_now_local();
08256             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08257           }
08258     break;
08259 
08260   case 197:
08261 
08262 /* Line 1455 of yacc.c  */
08263 #line 1538 "drizzled/sql_yacc.yy"
08264     {
08265             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08266 
08267             statement->default_value=(yyvsp[(2) - (2)].item);
08268             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08269           }
08270     break;
08271 
08272   case 198:
08273 
08274 /* Line 1455 of yacc.c  */
08275 #line 1545 "drizzled/sql_yacc.yy"
08276     {
08277             ((statement::AlterTable *)Lex.statement)->on_update_value= new Item_func_now_local();
08278           }
08279     break;
08280 
08281   case 199:
08282 
08283 /* Line 1455 of yacc.c  */
08284 #line 1549 "drizzled/sql_yacc.yy"
08285     { }
08286     break;
08287 
08288   case 200:
08289 
08290 /* Line 1455 of yacc.c  */
08291 #line 1553 "drizzled/sql_yacc.yy"
08292     { }
08293     break;
08294 
08295   case 201:
08296 
08297 /* Line 1455 of yacc.c  */
08298 #line 1555 "drizzled/sql_yacc.yy"
08299     {
08300             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08301             statement->comment= (yyvsp[(2) - (2)].lex_str);
08302 
08303             if (Lex.field())
08304               Lex.field()->set_comment((yyvsp[(2) - (2)].lex_str).str);
08305           }
08306     break;
08307 
08308   case 202:
08309 
08310 /* Line 1455 of yacc.c  */
08311 #line 1566 "drizzled/sql_yacc.yy"
08312     {
08313             if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).str)))
08314             {
08315               my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
08316               DRIZZLE_YYABORT;
08317             }
08318           }
08319     break;
08320 
08321   case 203:
08322 
08323 /* Line 1455 of yacc.c  */
08324 #line 1576 "drizzled/sql_yacc.yy"
08325     { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
08326     break;
08327 
08328   case 204:
08329 
08330 /* Line 1455 of yacc.c  */
08331 #line 1577 "drizzled/sql_yacc.yy"
08332     { (yyval.charset)=NULL; }
08333     break;
08334 
08335   case 205:
08336 
08337 /* Line 1455 of yacc.c  */
08338 #line 1581 "drizzled/sql_yacc.yy"
08339     {}
08340     break;
08341 
08342   case 206:
08343 
08344 /* Line 1455 of yacc.c  */
08345 #line 1582 "drizzled/sql_yacc.yy"
08346     {}
08347     break;
08348 
08349   case 209:
08350 
08351 /* Line 1455 of yacc.c  */
08352 #line 1592 "drizzled/sql_yacc.yy"
08353     {
08354             (yyval.table)=(yyvsp[(2) - (5)].table);
08355           }
08356     break;
08357 
08358   case 210:
08359 
08360 /* Line 1455 of yacc.c  */
08361 #line 1599 "drizzled/sql_yacc.yy"
08362     { Lex.ref_list.clear(); }
08363     break;
08364 
08365   case 212:
08366 
08367 /* Line 1455 of yacc.c  */
08368 #line 1605 "drizzled/sql_yacc.yy"
08369     { Lex.ref_list.push_back(new Key_part_spec((yyvsp[(3) - (3)].lex_str), 0)); }
08370     break;
08371 
08372   case 213:
08373 
08374 /* Line 1455 of yacc.c  */
08375 #line 1607 "drizzled/sql_yacc.yy"
08376     {
08377             Lex.ref_list.clear();
08378             Lex.ref_list.push_back(new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0));
08379           }
08380     break;
08381 
08382   case 214:
08383 
08384 /* Line 1455 of yacc.c  */
08385 #line 1615 "drizzled/sql_yacc.yy"
08386     { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_UNDEFINED; }
08387     break;
08388 
08389   case 215:
08390 
08391 /* Line 1455 of yacc.c  */
08392 #line 1617 "drizzled/sql_yacc.yy"
08393     { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_FULL; }
08394     break;
08395 
08396   case 216:
08397 
08398 /* Line 1455 of yacc.c  */
08399 #line 1619 "drizzled/sql_yacc.yy"
08400     { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_PARTIAL; }
08401     break;
08402 
08403   case 217:
08404 
08405 /* Line 1455 of yacc.c  */
08406 #line 1621 "drizzled/sql_yacc.yy"
08407     { ((statement::CreateTable *)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_SIMPLE; }
08408     break;
08409 
08410   case 218:
08411 
08412 /* Line 1455 of yacc.c  */
08413 #line 1626 "drizzled/sql_yacc.yy"
08414     {
08415             ((statement::CreateTable *)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08416             ((statement::CreateTable *)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08417           }
08418     break;
08419 
08420   case 219:
08421 
08422 /* Line 1455 of yacc.c  */
08423 #line 1631 "drizzled/sql_yacc.yy"
08424     {
08425             ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(3) - (3)].m_fk_option);
08426             ((statement::CreateTable *)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08427           }
08428     break;
08429 
08430   case 220:
08431 
08432 /* Line 1455 of yacc.c  */
08433 #line 1636 "drizzled/sql_yacc.yy"
08434     {
08435             ((statement::CreateTable *)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08436             ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (3)].m_fk_option);
08437           }
08438     break;
08439 
08440   case 221:
08441 
08442 /* Line 1455 of yacc.c  */
08443 #line 1642 "drizzled/sql_yacc.yy"
08444     {
08445             ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(3) - (6)].m_fk_option);
08446             ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(6) - (6)].m_fk_option);
08447           }
08448     break;
08449 
08450   case 222:
08451 
08452 /* Line 1455 of yacc.c  */
08453 #line 1648 "drizzled/sql_yacc.yy"
08454     {
08455             ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(6) - (6)].m_fk_option);
08456             ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (6)].m_fk_option);
08457           }
08458     break;
08459 
08460   case 223:
08461 
08462 /* Line 1455 of yacc.c  */
08463 #line 1655 "drizzled/sql_yacc.yy"
08464     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_RESTRICT; }
08465     break;
08466 
08467   case 224:
08468 
08469 /* Line 1455 of yacc.c  */
08470 #line 1656 "drizzled/sql_yacc.yy"
08471     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_CASCADE; }
08472     break;
08473 
08474   case 225:
08475 
08476 /* Line 1455 of yacc.c  */
08477 #line 1657 "drizzled/sql_yacc.yy"
08478     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_NULL; }
08479     break;
08480 
08481   case 226:
08482 
08483 /* Line 1455 of yacc.c  */
08484 #line 1658 "drizzled/sql_yacc.yy"
08485     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_NO_ACTION; }
08486     break;
08487 
08488   case 227:
08489 
08490 /* Line 1455 of yacc.c  */
08491 #line 1659 "drizzled/sql_yacc.yy"
08492     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_DEFAULT;  }
08493     break;
08494 
08495   case 228:
08496 
08497 /* Line 1455 of yacc.c  */
08498 #line 1663 "drizzled/sql_yacc.yy"
08499     { (yyval.key_type)= Key::MULTIPLE; }
08500     break;
08501 
08502   case 229:
08503 
08504 /* Line 1455 of yacc.c  */
08505 #line 1667 "drizzled/sql_yacc.yy"
08506     { (yyval.key_type)= Key::PRIMARY; }
08507     break;
08508 
08509   case 230:
08510 
08511 /* Line 1455 of yacc.c  */
08512 #line 1668 "drizzled/sql_yacc.yy"
08513     { (yyval.key_type)= Key::UNIQUE; }
08514     break;
08515 
08516   case 231:
08517 
08518 /* Line 1455 of yacc.c  */
08519 #line 1672 "drizzled/sql_yacc.yy"
08520     {}
08521     break;
08522 
08523   case 232:
08524 
08525 /* Line 1455 of yacc.c  */
08526 #line 1673 "drizzled/sql_yacc.yy"
08527     {}
08528     break;
08529 
08530   case 233:
08531 
08532 /* Line 1455 of yacc.c  */
08533 #line 1677 "drizzled/sql_yacc.yy"
08534     {}
08535     break;
08536 
08537   case 235:
08538 
08539 /* Line 1455 of yacc.c  */
08540 #line 1682 "drizzled/sql_yacc.yy"
08541     {}
08542     break;
08543 
08544   case 236:
08545 
08546 /* Line 1455 of yacc.c  */
08547 #line 1683 "drizzled/sql_yacc.yy"
08548     {}
08549     break;
08550 
08551   case 237:
08552 
08553 /* Line 1455 of yacc.c  */
08554 #line 1684 "drizzled/sql_yacc.yy"
08555     {}
08556     break;
08557 
08558   case 238:
08559 
08560 /* Line 1455 of yacc.c  */
08561 #line 1688 "drizzled/sql_yacc.yy"
08562     { (yyval.key_type)= Key::MULTIPLE; }
08563     break;
08564 
08565   case 239:
08566 
08567 /* Line 1455 of yacc.c  */
08568 #line 1689 "drizzled/sql_yacc.yy"
08569     { (yyval.key_type)= Key::UNIQUE; }
08570     break;
08571 
08572   case 240:
08573 
08574 /* Line 1455 of yacc.c  */
08575 #line 1693 "drizzled/sql_yacc.yy"
08576     {
08577             ((statement::CreateTable *)Lex.statement)->key_create_info= default_key_create_info;
08578           }
08579     break;
08580 
08581   case 243:
08582 
08583 /* Line 1455 of yacc.c  */
08584 #line 1710 "drizzled/sql_yacc.yy"
08585     {}
08586     break;
08587 
08588   case 247:
08589 
08590 /* Line 1455 of yacc.c  */
08591 #line 1720 "drizzled/sql_yacc.yy"
08592     { ((statement::CreateTable *)Lex.statement)->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
08593     break;
08594 
08595   case 249:
08596 
08597 /* Line 1455 of yacc.c  */
08598 #line 1726 "drizzled/sql_yacc.yy"
08599     { ((statement::CreateTable *)Lex.statement)->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
08600     break;
08601 
08602   case 250:
08603 
08604 /* Line 1455 of yacc.c  */
08605 #line 1728 "drizzled/sql_yacc.yy"
08606     { ((statement::CreateTable *)Lex.statement)->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
08607     break;
08608 
08609   case 251:
08610 
08611 /* Line 1455 of yacc.c  */
08612 #line 1732 "drizzled/sql_yacc.yy"
08613     { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
08614     break;
08615 
08616   case 252:
08617 
08618 /* Line 1455 of yacc.c  */
08619 #line 1733 "drizzled/sql_yacc.yy"
08620     { (yyval.key_alg)= HA_KEY_ALG_HASH; }
08621     break;
08622 
08623   case 253:
08624 
08625 /* Line 1455 of yacc.c  */
08626 #line 1737 "drizzled/sql_yacc.yy"
08627     { Lex.col_list.push_back((yyvsp[(3) - (4)].key_part)); }
08628     break;
08629 
08630   case 254:
08631 
08632 /* Line 1455 of yacc.c  */
08633 #line 1738 "drizzled/sql_yacc.yy"
08634     { Lex.col_list.push_back((yyvsp[(1) - (2)].key_part)); }
08635     break;
08636 
08637   case 255:
08638 
08639 /* Line 1455 of yacc.c  */
08640 #line 1742 "drizzled/sql_yacc.yy"
08641     { (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0); }
08642     break;
08643 
08644   case 256:
08645 
08646 /* Line 1455 of yacc.c  */
08647 #line 1744 "drizzled/sql_yacc.yy"
08648     {
08649             int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).str);
08650             if (!key_part_len)
08651             {
08652               my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).str);
08653             }
08654             (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (4)].lex_str), (uint) key_part_len);
08655           }
08656     break;
08657 
08658   case 257:
08659 
08660 /* Line 1455 of yacc.c  */
08661 #line 1755 "drizzled/sql_yacc.yy"
08662     { (yyval.lex_str)= null_lex_str; }
08663     break;
08664 
08665   case 258:
08666 
08667 /* Line 1455 of yacc.c  */
08668 #line 1756 "drizzled/sql_yacc.yy"
08669     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
08670     break;
08671 
08672   case 259:
08673 
08674 /* Line 1455 of yacc.c  */
08675 #line 1760 "drizzled/sql_yacc.yy"
08676     { (yyval.lex_str)= null_lex_str; }
08677     break;
08678 
08679   case 260:
08680 
08681 /* Line 1455 of yacc.c  */
08682 #line 1761 "drizzled/sql_yacc.yy"
08683     { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
08684     break;
08685 
08686   case 261:
08687 
08688 /* Line 1455 of yacc.c  */
08689 #line 1765 "drizzled/sql_yacc.yy"
08690     { Lex.interval_list.push_back((yyvsp[(1) - (1)].string)); }
08691     break;
08692 
08693   case 262:
08694 
08695 /* Line 1455 of yacc.c  */
08696 #line 1766 "drizzled/sql_yacc.yy"
08697     { Lex.interval_list.push_back((yyvsp[(3) - (3)].string)); }
08698     break;
08699 
08700   case 263:
08701 
08702 /* Line 1455 of yacc.c  */
08703 #line 1774 "drizzled/sql_yacc.yy"
08704     {
08705             statement::AlterTable *statement= new statement::AlterTable(YYSession, (yyvsp[(5) - (5)].table), (yyvsp[(2) - (5)].build_method));
08706             Lex.statement= statement;
08707             Lex.duplicates= DUP_ERROR;
08708             if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL, TL_OPTION_UPDATING))
08709             {
08710               DRIZZLE_YYABORT;
08711             }
08712 
08713             Lex.col_list.clear();
08714             Lex.select_lex.init_order();
08715             Lex.select_lex.db= const_cast<char *>(((TableList*) Lex.select_lex.table_list.first)->getSchemaName());
08716           }
08717     break;
08718 
08719   case 264:
08720 
08721 /* Line 1455 of yacc.c  */
08722 #line 1788 "drizzled/sql_yacc.yy"
08723     {}
08724     break;
08725 
08726   case 265:
08727 
08728 /* Line 1455 of yacc.c  */
08729 #line 1790 "drizzled/sql_yacc.yy"
08730     {
08731             Lex.statement= new statement::AlterSchema(YYSession);
08732           }
08733     break;
08734 
08735   case 266:
08736 
08737 /* Line 1455 of yacc.c  */
08738 #line 1794 "drizzled/sql_yacc.yy"
08739     {
08740             Lex.name= (yyvsp[(3) - (5)].lex_str);
08741             if (Lex.name.str == NULL && Lex.copy_db_to(&Lex.name.str, &Lex.name.length))
08742               DRIZZLE_YYABORT;
08743           }
08744     break;
08745 
08746   case 268:
08747 
08748 /* Line 1455 of yacc.c  */
08749 #line 1804 "drizzled/sql_yacc.yy"
08750     {
08751             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08752             statement->alter_info.tablespace_op= DISCARD_TABLESPACE;
08753           }
08754     break;
08755 
08756   case 269:
08757 
08758 /* Line 1455 of yacc.c  */
08759 #line 1809 "drizzled/sql_yacc.yy"
08760     {
08761             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08762             statement->alter_info.tablespace_op= IMPORT_TABLESPACE;
08763           }
08764     break;
08765 
08766   case 271:
08767 
08768 /* Line 1455 of yacc.c  */
08769 #line 1818 "drizzled/sql_yacc.yy"
08770     {
08771             (yyval.build_method)= HA_BUILD_DEFAULT;
08772           }
08773     break;
08774 
08775   case 272:
08776 
08777 /* Line 1455 of yacc.c  */
08778 #line 1822 "drizzled/sql_yacc.yy"
08779     {
08780             (yyval.build_method)= HA_BUILD_ONLINE;
08781           }
08782     break;
08783 
08784   case 273:
08785 
08786 /* Line 1455 of yacc.c  */
08787 #line 1826 "drizzled/sql_yacc.yy"
08788     {
08789             (yyval.build_method)= HA_BUILD_OFFLINE;
08790           }
08791     break;
08792 
08793   case 276:
08794 
08795 /* Line 1455 of yacc.c  */
08796 #line 1838 "drizzled/sql_yacc.yy"
08797     {
08798             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08799 
08800             statement->change=0;
08801             statement->alter_info.flags.set(ALTER_ADD_COLUMN);
08802           }
08803     break;
08804 
08805   case 277:
08806 
08807 /* Line 1455 of yacc.c  */
08808 #line 1847 "drizzled/sql_yacc.yy"
08809     { }
08810     break;
08811 
08812   case 278:
08813 
08814 /* Line 1455 of yacc.c  */
08815 #line 1849 "drizzled/sql_yacc.yy"
08816     {
08817             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08818 
08819             statement->alter_info.flags.set(ALTER_ADD_INDEX);
08820           }
08821     break;
08822 
08823   case 279:
08824 
08825 /* Line 1455 of yacc.c  */
08826 #line 1855 "drizzled/sql_yacc.yy"
08827     {
08828             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08829 
08830             statement->alter_info.flags.set(ALTER_ADD_COLUMN);
08831             statement->alter_info.flags.set(ALTER_ADD_INDEX);
08832           }
08833     break;
08834 
08835   case 280:
08836 
08837 /* Line 1455 of yacc.c  */
08838 #line 1862 "drizzled/sql_yacc.yy"
08839     {
08840             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08841             statement->change= (yyvsp[(3) - (3)].lex_str).str;
08842             statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
08843           }
08844     break;
08845 
08846   case 282:
08847 
08848 /* Line 1455 of yacc.c  */
08849 #line 1869 "drizzled/sql_yacc.yy"
08850     {
08851             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08852             Lex.length= Lex.dec=0;
08853             Lex.type= 0;
08854             statement->default_value= statement->on_update_value= 0;
08855             statement->comment= null_lex_str;
08856             Lex.charset= NULL;
08857             statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
08858             statement->column_format= COLUMN_FORMAT_TYPE_DEFAULT;
08859 
08860             Lex.setField(NULL);
08861           }
08862     break;
08863 
08864   case 283:
08865 
08866 /* Line 1455 of yacc.c  */
08867 #line 1882 "drizzled/sql_yacc.yy"
08868     {
08869             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08870 
08871             if (add_field_to_list(Lex.session,&(yyvsp[(3) - (6)].lex_str),
08872                                   (enum enum_field_types) (yyvsp[(5) - (6)].field_val),
08873                                   Lex.length, Lex.dec, Lex.type,
08874                                   statement->column_format,
08875                                   statement->default_value,
08876                                   statement->on_update_value,
08877                                   &statement->comment,
08878                                   (yyvsp[(3) - (6)].lex_str).str, &Lex.interval_list, Lex.charset))
08879               DRIZZLE_YYABORT;
08880           }
08881     break;
08882 
08883   case 285:
08884 
08885 /* Line 1455 of yacc.c  */
08886 #line 1897 "drizzled/sql_yacc.yy"
08887     {
08888             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08889 
08890             statement->alter_info.drop_list.push_back(AlterDrop(AlterDrop::COLUMN, (yyvsp[(3) - (3)].lex_str).str));
08891             statement->alter_info.flags.set(ALTER_DROP_COLUMN);
08892           }
08893     break;
08894 
08895   case 286:
08896 
08897 /* Line 1455 of yacc.c  */
08898 #line 1904 "drizzled/sql_yacc.yy"
08899     {
08900             parser::buildAddAlterDropIndex(&Lex, (yyvsp[(4) - (4)].lex_str).str, true);
08901           }
08902     break;
08903 
08904   case 287:
08905 
08906 /* Line 1455 of yacc.c  */
08907 #line 1908 "drizzled/sql_yacc.yy"
08908     {
08909             parser::buildAddAlterDropIndex(&Lex, "PRIMARY");
08910           }
08911     break;
08912 
08913   case 288:
08914 
08915 /* Line 1455 of yacc.c  */
08916 #line 1912 "drizzled/sql_yacc.yy"
08917     {
08918             parser::buildAddAlterDropIndex(&Lex, (yyvsp[(3) - (3)].lex_str).str);
08919           }
08920     break;
08921 
08922   case 289:
08923 
08924 /* Line 1455 of yacc.c  */
08925 #line 1916 "drizzled/sql_yacc.yy"
08926     {
08927             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08928 
08929             statement->alter_info.keys_onoff= DISABLE;
08930             statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
08931           }
08932     break;
08933 
08934   case 290:
08935 
08936 /* Line 1455 of yacc.c  */
08937 #line 1923 "drizzled/sql_yacc.yy"
08938     {
08939             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08940 
08941             statement->alter_info.keys_onoff= ENABLE;
08942             statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
08943           }
08944     break;
08945 
08946   case 291:
08947 
08948 /* Line 1455 of yacc.c  */
08949 #line 1930 "drizzled/sql_yacc.yy"
08950     {
08951             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08952 
08953             statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (6)].lex_str).str,(yyvsp[(6) - (6)].item)));
08954             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08955           }
08956     break;
08957 
08958   case 292:
08959 
08960 /* Line 1455 of yacc.c  */
08961 #line 1937 "drizzled/sql_yacc.yy"
08962     {
08963             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08964 
08965             statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (5)].lex_str).str, (Item*) 0));
08966             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08967           }
08968     break;
08969 
08970   case 293:
08971 
08972 /* Line 1455 of yacc.c  */
08973 #line 1944 "drizzled/sql_yacc.yy"
08974     {
08975             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08976             size_t dummy;
08977 
08978             Lex.select_lex.db=(yyvsp[(3) - (3)].table)->db.str;
08979             if (Lex.select_lex.db == NULL &&
08980                 Lex.copy_db_to(&Lex.select_lex.db, &dummy))
08981             {
08982               DRIZZLE_YYABORT;
08983             }
08984 
08985             if (check_table_name((yyvsp[(3) - (3)].table)->table.str,(yyvsp[(3) - (3)].table)->table.length))
08986             {
08987               my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.str);
08988               DRIZZLE_YYABORT;
08989             }
08990 
08991             Lex.name= (yyvsp[(3) - (3)].table)->table;
08992             statement->alter_info.flags.set(ALTER_RENAME);
08993           }
08994     break;
08995 
08996   case 294:
08997 
08998 /* Line 1455 of yacc.c  */
08999 #line 1965 "drizzled/sql_yacc.yy"
09000     {
09001             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09002 
09003             statement->create_info().table_charset=
09004             statement->create_info().default_table_charset= (yyvsp[(3) - (3)].charset);
09005             statement->create_info().used_fields|= (HA_CREATE_USED_CHARSET |
09006               HA_CREATE_USED_DEFAULT_CHARSET);
09007             statement->alter_info.flags.set(ALTER_CONVERT);
09008           }
09009     break;
09010 
09011   case 295:
09012 
09013 /* Line 1455 of yacc.c  */
09014 #line 1975 "drizzled/sql_yacc.yy"
09015     {
09016             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09017 
09018             statement->alter_info.flags.set(ALTER_OPTIONS);
09019           }
09020     break;
09021 
09022   case 296:
09023 
09024 /* Line 1455 of yacc.c  */
09025 #line 1981 "drizzled/sql_yacc.yy"
09026     {
09027             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09028 
09029             statement->alter_info.flags.set(ALTER_FORCE);
09030           }
09031     break;
09032 
09033   case 297:
09034 
09035 /* Line 1455 of yacc.c  */
09036 #line 1987 "drizzled/sql_yacc.yy"
09037     {
09038             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09039 
09040             statement->alter_info.flags.set(ALTER_ORDER);
09041           }
09042     break;
09043 
09044   case 298:
09045 
09046 /* Line 1455 of yacc.c  */
09047 #line 1995 "drizzled/sql_yacc.yy"
09048     {}
09049     break;
09050 
09051   case 299:
09052 
09053 /* Line 1455 of yacc.c  */
09054 #line 1996 "drizzled/sql_yacc.yy"
09055     {}
09056     break;
09057 
09058   case 300:
09059 
09060 /* Line 1455 of yacc.c  */
09061 #line 2000 "drizzled/sql_yacc.yy"
09062     { Lex.ignore= 0;}
09063     break;
09064 
09065   case 301:
09066 
09067 /* Line 1455 of yacc.c  */
09068 #line 2001 "drizzled/sql_yacc.yy"
09069     { Lex.ignore= 1;}
09070     break;
09071 
09072   case 302:
09073 
09074 /* Line 1455 of yacc.c  */
09075 #line 2005 "drizzled/sql_yacc.yy"
09076     {}
09077     break;
09078 
09079   case 303:
09080 
09081 /* Line 1455 of yacc.c  */
09082 #line 2007 "drizzled/sql_yacc.yy"
09083     {
09084             parser::storeAlterColumnPosition(&Lex, (yyvsp[(2) - (2)].lex_str).str);
09085           }
09086     break;
09087 
09088   case 304:
09089 
09090 /* Line 1455 of yacc.c  */
09091 #line 2011 "drizzled/sql_yacc.yy"
09092     {
09093             parser::storeAlterColumnPosition(&Lex, first_keyword);
09094           }
09095     break;
09096 
09097   case 305:
09098 
09099 /* Line 1455 of yacc.c  */
09100 #line 2017 "drizzled/sql_yacc.yy"
09101     {}
09102     break;
09103 
09104   case 306:
09105 
09106 /* Line 1455 of yacc.c  */
09107 #line 2018 "drizzled/sql_yacc.yy"
09108     {}
09109     break;
09110 
09111   case 307:
09112 
09113 /* Line 1455 of yacc.c  */
09114 #line 2019 "drizzled/sql_yacc.yy"
09115     {}
09116     break;
09117 
09118   case 308:
09119 
09120 /* Line 1455 of yacc.c  */
09121 #line 2024 "drizzled/sql_yacc.yy"
09122     {
09123             Lex.statement= new statement::StartTransaction(YYSession, (start_transaction_option_t)(yyvsp[(3) - (3)].num));
09124           }
09125     break;
09126 
09127   case 309:
09128 
09129 /* Line 1455 of yacc.c  */
09130 #line 2030 "drizzled/sql_yacc.yy"
09131     { (yyval.num) = START_TRANS_NO_OPTIONS; }
09132     break;
09133 
09134   case 310:
09135 
09136 /* Line 1455 of yacc.c  */
09137 #line 2032 "drizzled/sql_yacc.yy"
09138     {
09139             (yyval.num)= START_TRANS_OPT_WITH_CONS_SNAPSHOT;
09140           }
09141     break;
09142 
09143   case 311:
09144 
09145 /* Line 1455 of yacc.c  */
09146 #line 2039 "drizzled/sql_yacc.yy"
09147     {
09148             Lex.statement= new statement::Analyze(YYSession);
09149           }
09150     break;
09151 
09152   case 312:
09153 
09154 /* Line 1455 of yacc.c  */
09155 #line 2043 "drizzled/sql_yacc.yy"
09156     {}
09157     break;
09158 
09159   case 313:
09160 
09161 /* Line 1455 of yacc.c  */
09162 #line 2048 "drizzled/sql_yacc.yy"
09163     {
09164             Lex.statement= new statement::Check(YYSession);
09165           }
09166     break;
09167 
09168   case 314:
09169 
09170 /* Line 1455 of yacc.c  */
09171 #line 2052 "drizzled/sql_yacc.yy"
09172     {}
09173     break;
09174 
09175   case 315:
09176 
09177 /* Line 1455 of yacc.c  */
09178 #line 2057 "drizzled/sql_yacc.yy"
09179     {
09180             Lex.statement= new statement::RenameTable(YYSession);
09181           }
09182     break;
09183 
09184   case 316:
09185 
09186 /* Line 1455 of yacc.c  */
09187 #line 2061 "drizzled/sql_yacc.yy"
09188     {}
09189     break;
09190 
09191   case 319:
09192 
09193 /* Line 1455 of yacc.c  */
09194 #line 2071 "drizzled/sql_yacc.yy"
09195     {
09196             Select_Lex *sl= Lex.current_select;
09197             if (!sl->add_table_to_list(Lex.session, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
09198                                        TL_IGNORE) ||
09199                 !sl->add_table_to_list(Lex.session, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
09200                                        TL_IGNORE))
09201               DRIZZLE_YYABORT;
09202           }
09203     break;
09204 
09205   case 320:
09206 
09207 /* Line 1455 of yacc.c  */
09208 #line 2088 "drizzled/sql_yacc.yy"
09209     {
09210             Lex.statement= new statement::Select(YYSession);
09211           }
09212     break;
09213 
09214   case 323:
09215 
09216 /* Line 1455 of yacc.c  */
09217 #line 2101 "drizzled/sql_yacc.yy"
09218     {
09219             if (parser::setup_select_in_parentheses(YYSession, &Lex))
09220               DRIZZLE_YYABORT;
09221           }
09222     break;
09223 
09224   case 325:
09225 
09226 /* Line 1455 of yacc.c  */
09227 #line 2111 "drizzled/sql_yacc.yy"
09228     {
09229             if (parser::setup_select_in_parentheses(YYSession, &Lex))
09230               DRIZZLE_YYABORT;
09231           }
09232     break;
09233 
09234   case 327:
09235 
09236 /* Line 1455 of yacc.c  */
09237 #line 2120 "drizzled/sql_yacc.yy"
09238     {
09239             Select_Lex * sel= Lex.current_select;
09240             if (Lex.current_select->set_braces(0))
09241             {
09242               parser::my_parse_error(YYSession->m_lip);
09243               DRIZZLE_YYABORT;
09244             }
09245             if (sel->linkage == UNION_TYPE &&
09246                 sel->master_unit()->first_select()->braces)
09247             {
09248               parser::my_parse_error(YYSession->m_lip);
09249               DRIZZLE_YYABORT;
09250             }
09251           }
09252     break;
09253 
09254   case 329:
09255 
09256 /* Line 1455 of yacc.c  */
09257 #line 2138 "drizzled/sql_yacc.yy"
09258     {
09259             Select_Lex *sel= Lex.current_select;
09260             if (sel->linkage != UNION_TYPE)
09261               init_select(&Lex);
09262             Lex.current_select->parsing_place= SELECT_LIST;
09263           }
09264     break;
09265 
09266   case 330:
09267 
09268 /* Line 1455 of yacc.c  */
09269 #line 2145 "drizzled/sql_yacc.yy"
09270     {
09271             Lex.current_select->parsing_place= NO_MATTER;
09272           }
09273     break;
09274 
09275   case 332:
09276 
09277 /* Line 1455 of yacc.c  */
09278 #line 2152 "drizzled/sql_yacc.yy"
09279     {}
09280     break;
09281 
09282   case 337:
09283 
09284 /* Line 1455 of yacc.c  */
09285 #line 2162 "drizzled/sql_yacc.yy"
09286     {
09287             Lex.current_select->context.table_list=
09288               Lex.current_select->context.first_name_resolution_table=
09289                 reinterpret_cast<TableList *>(Lex.current_select->table_list.first);
09290           }
09291     break;
09292 
09293   case 339:
09294 
09295 /* Line 1455 of yacc.c  */
09296 #line 2172 "drizzled/sql_yacc.yy"
09297     { }
09298     break;
09299 
09300   case 342:
09301 
09302 /* Line 1455 of yacc.c  */
09303 #line 2182 "drizzled/sql_yacc.yy"
09304     {
09305             Lex.current_select->options|= SELECT_DISTINCT;
09306 
09307             if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09308             {
09309               my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09310               DRIZZLE_YYABORT;
09311             }
09312           }
09313     break;
09314 
09315   case 343:
09316 
09317 /* Line 1455 of yacc.c  */
09318 #line 2192 "drizzled/sql_yacc.yy"
09319     {
09320             Lex.current_select->options|= SELECT_ALL;
09321 
09322             if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09323             {
09324               my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09325               DRIZZLE_YYABORT;
09326             }
09327           }
09328     break;
09329 
09330   case 344:
09331 
09332 /* Line 1455 of yacc.c  */
09333 #line 2205 "drizzled/sql_yacc.yy"
09334     {
09335             Lex.current_select->options|= SELECT_SMALL_RESULT;
09336 
09337             if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09338             {
09339               my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09340               DRIZZLE_YYABORT;
09341             }
09342           }
09343     break;
09344 
09345   case 345:
09346 
09347 /* Line 1455 of yacc.c  */
09348 #line 2215 "drizzled/sql_yacc.yy"
09349     {
09350             Lex.current_select->options|= SELECT_BIG_RESULT;
09351 
09352             if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09353             {
09354               my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09355               DRIZZLE_YYABORT;
09356             }
09357           }
09358     break;
09359 
09360   case 346:
09361 
09362 /* Line 1455 of yacc.c  */
09363 #line 2228 "drizzled/sql_yacc.yy"
09364     { Lex.current_select->options|= SELECT_STRAIGHT_JOIN; }
09365     break;
09366 
09367   case 347:
09368 
09369 /* Line 1455 of yacc.c  */
09370 #line 2230 "drizzled/sql_yacc.yy"
09371     {
09372             if (check_simple_select(YYSession))
09373               DRIZZLE_YYABORT;
09374             Lex.current_select->options|= OPTION_BUFFER_RESULT;
09375           }
09376     break;
09377 
09378   case 348:
09379 
09380 /* Line 1455 of yacc.c  */
09381 #line 2236 "drizzled/sql_yacc.yy"
09382     { }
09383     break;
09384 
09385   case 349:
09386 
09387 /* Line 1455 of yacc.c  */
09388 #line 2238 "drizzled/sql_yacc.yy"
09389     { }
09390     break;
09391 
09392   case 350:
09393 
09394 /* Line 1455 of yacc.c  */
09395 #line 2240 "drizzled/sql_yacc.yy"
09396     {
09397             if (check_simple_select(YYSession))
09398               DRIZZLE_YYABORT;
09399             Lex.current_select->options|= OPTION_FOUND_ROWS;
09400           }
09401     break;
09402 
09403   case 352:
09404 
09405 /* Line 1455 of yacc.c  */
09406 #line 2250 "drizzled/sql_yacc.yy"
09407     {
09408             Lex.current_select->set_lock_for_tables(TL_WRITE);
09409           }
09410     break;
09411 
09412   case 353:
09413 
09414 /* Line 1455 of yacc.c  */
09415 #line 2254 "drizzled/sql_yacc.yy"
09416     {
09417             Lex.current_select->
09418               set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
09419           }
09420     break;
09421 
09422   case 356:
09423 
09424 /* Line 1455 of yacc.c  */
09425 #line 2264 "drizzled/sql_yacc.yy"
09426     {
09427             if (YYSession->add_item_to_list( new Item_field(&YYSession->lex().current_select->context, NULL, NULL, "*")))
09428               DRIZZLE_YYABORT;
09429 
09430             (YYSession->lex().current_select->with_wild)++;
09431           }
09432     break;
09433 
09434   case 357:
09435 
09436 /* Line 1455 of yacc.c  */
09437 #line 2274 "drizzled/sql_yacc.yy"
09438     {
09439             if (YYSession->add_item_to_list((yyvsp[(2) - (3)].item)))
09440               DRIZZLE_YYABORT;
09441           }
09442     break;
09443 
09444   case 358:
09445 
09446 /* Line 1455 of yacc.c  */
09447 #line 2279 "drizzled/sql_yacc.yy"
09448     {
09449             assert((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));
09450 
09451             if (YYSession->add_item_to_list((yyvsp[(2) - (4)].item)))
09452               DRIZZLE_YYABORT;
09453 
09454             if ((yyvsp[(4) - (4)].lex_str).str)
09455             {
09456               (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
09457               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
09458             }
09459             else if (!(yyvsp[(2) - (4)].item)->name)
09460             {
09461               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
09462             }
09463           }
09464     break;
09465 
09466   case 359:
09467 
09468 /* Line 1455 of yacc.c  */
09469 #line 2298 "drizzled/sql_yacc.yy"
09470     {
09471             Lex_input_stream *lip= YYSession->m_lip;
09472             (yyval.simple_string)= (char*) lip->get_cpp_tok_start();
09473           }
09474     break;
09475 
09476   case 360:
09477 
09478 /* Line 1455 of yacc.c  */
09479 #line 2305 "drizzled/sql_yacc.yy"
09480     {
09481             Lex_input_stream *lip= YYSession->m_lip;
09482             (yyval.simple_string)= (char*) lip->get_cpp_tok_end();
09483           }
09484     break;
09485 
09486   case 361:
09487 
09488 /* Line 1455 of yacc.c  */
09489 #line 2312 "drizzled/sql_yacc.yy"
09490     { (yyval.lex_str)=null_lex_str;}
09491     break;
09492 
09493   case 362:
09494 
09495 /* Line 1455 of yacc.c  */
09496 #line 2313 "drizzled/sql_yacc.yy"
09497     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09498     break;
09499 
09500   case 363:
09501 
09502 /* Line 1455 of yacc.c  */
09503 #line 2314 "drizzled/sql_yacc.yy"
09504     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09505     break;
09506 
09507   case 364:
09508 
09509 /* Line 1455 of yacc.c  */
09510 #line 2315 "drizzled/sql_yacc.yy"
09511     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09512     break;
09513 
09514   case 365:
09515 
09516 /* Line 1455 of yacc.c  */
09517 #line 2316 "drizzled/sql_yacc.yy"
09518     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09519     break;
09520 
09521   case 366:
09522 
09523 /* Line 1455 of yacc.c  */
09524 #line 2320 "drizzled/sql_yacc.yy"
09525     {}
09526     break;
09527 
09528   case 367:
09529 
09530 /* Line 1455 of yacc.c  */
09531 #line 2321 "drizzled/sql_yacc.yy"
09532     {}
09533     break;
09534 
09535   case 368:
09536 
09537 /* Line 1455 of yacc.c  */
09538 #line 2327 "drizzled/sql_yacc.yy"
09539     {
09540             /*
09541               Design notes:
09542               Do not use a manually maintained stack like session->Lex.xxx_list,
09543               but use the internal bison stack ($$, $1 and $3) instead.
09544               Using the bison stack is:
09545               - more robust to changes in the grammar,
09546               - guaranteed to be in sync with the parser state,
09547               - better for performances (no memory allocation).
09548             */
09549             Item_cond_or *item1;
09550             Item_cond_or *item3;
09551             if (is_cond_or((yyvsp[(1) - (3)].item)))
09552             {
09553               item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
09554               if (is_cond_or((yyvsp[(3) - (3)].item)))
09555               {
09556                 item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09557                 /*
09558                   (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2)
09559                 */
09560                 item3->add_at_head(item1->argument_list());
09561                 (yyval.item) = (yyvsp[(3) - (3)].item);
09562               }
09563               else
09564               {
09565                 /*
09566                   (X1 OR X2) OR Y ==> OR (X1, X2, Y)
09567                 */
09568                 item1->add((yyvsp[(3) - (3)].item));
09569                 (yyval.item) = (yyvsp[(1) - (3)].item);
09570               }
09571             }
09572             else if (is_cond_or((yyvsp[(3) - (3)].item)))
09573             {
09574               item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09575               /*
09576                 X OR (Y1 OR Y2) ==> OR (X, Y1, Y2)
09577               */
09578               item3->add_at_head((yyvsp[(1) - (3)].item));
09579               (yyval.item) = (yyvsp[(3) - (3)].item);
09580             }
09581             else
09582             {
09583               /* X OR Y */
09584               (yyval.item) = new (YYSession->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09585             }
09586           }
09587     break;
09588 
09589   case 369:
09590 
09591 /* Line 1455 of yacc.c  */
09592 #line 2376 "drizzled/sql_yacc.yy"
09593     {
09594             /* XOR is a proprietary extension */
09595             (yyval.item) = new (YYSession->mem_root) Item_cond_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09596           }
09597     break;
09598 
09599   case 370:
09600 
09601 /* Line 1455 of yacc.c  */
09602 #line 2381 "drizzled/sql_yacc.yy"
09603     {
09604             /* See comments in rule expr: expr or expr */
09605             Item_cond_and *item1;
09606             Item_cond_and *item3;
09607             if (is_cond_and((yyvsp[(1) - (3)].item)))
09608             {
09609               item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
09610               if (is_cond_and((yyvsp[(3) - (3)].item)))
09611               {
09612                 item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09613                 /*
09614                   (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2)
09615                 */
09616                 item3->add_at_head(item1->argument_list());
09617                 (yyval.item) = (yyvsp[(3) - (3)].item);
09618               }
09619               else
09620               {
09621                 /*
09622                   (X1 AND X2) AND Y ==> AND (X1, X2, Y)
09623                 */
09624                 item1->add((yyvsp[(3) - (3)].item));
09625                 (yyval.item) = (yyvsp[(1) - (3)].item);
09626               }
09627             }
09628             else if (is_cond_and((yyvsp[(3) - (3)].item)))
09629             {
09630               item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09631               /*
09632                 X AND (Y1 AND Y2) ==> AND (X, Y1, Y2)
09633               */
09634               item3->add_at_head((yyvsp[(1) - (3)].item));
09635               (yyval.item) = (yyvsp[(3) - (3)].item);
09636             }
09637             else
09638             {
09639               /* X AND Y */
09640               (yyval.item) = new (YYSession->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09641             }
09642           }
09643     break;
09644 
09645   case 371:
09646 
09647 /* Line 1455 of yacc.c  */
09648 #line 2422 "drizzled/sql_yacc.yy"
09649     { (yyval.item)= negate_expression(YYSession, (yyvsp[(2) - (2)].item)); }
09650     break;
09651 
09652   case 372:
09653 
09654 /* Line 1455 of yacc.c  */
09655 #line 2424 "drizzled/sql_yacc.yy"
09656     {
09657             (yyval.item)= new (YYSession->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
09658           }
09659     break;
09660 
09661   case 373:
09662 
09663 /* Line 1455 of yacc.c  */
09664 #line 2428 "drizzled/sql_yacc.yy"
09665     {
09666             (yyval.item)= new (YYSession->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
09667           }
09668     break;
09669 
09670   case 374:
09671 
09672 /* Line 1455 of yacc.c  */
09673 #line 2432 "drizzled/sql_yacc.yy"
09674     {
09675             (yyval.item)= new (YYSession->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
09676           }
09677     break;
09678 
09679   case 375:
09680 
09681 /* Line 1455 of yacc.c  */
09682 #line 2436 "drizzled/sql_yacc.yy"
09683     {
09684             (yyval.item)= new (YYSession->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
09685           }
09686     break;
09687 
09688   case 376:
09689 
09690 /* Line 1455 of yacc.c  */
09691 #line 2440 "drizzled/sql_yacc.yy"
09692     {
09693             (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09694           }
09695     break;
09696 
09697   case 377:
09698 
09699 /* Line 1455 of yacc.c  */
09700 #line 2444 "drizzled/sql_yacc.yy"
09701     {
09702             (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09703           }
09704     break;
09705 
09706   case 379:
09707 
09708 /* Line 1455 of yacc.c  */
09709 #line 2452 "drizzled/sql_yacc.yy"
09710     {
09711             (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09712           }
09713     break;
09714 
09715   case 380:
09716 
09717 /* Line 1455 of yacc.c  */
09718 #line 2456 "drizzled/sql_yacc.yy"
09719     {
09720             (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09721           }
09722     break;
09723 
09724   case 381:
09725 
09726 /* Line 1455 of yacc.c  */
09727 #line 2460 "drizzled/sql_yacc.yy"
09728     {
09729             (yyval.item)= new Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09730           }
09731     break;
09732 
09733   case 382:
09734 
09735 /* Line 1455 of yacc.c  */
09736 #line 2464 "drizzled/sql_yacc.yy"
09737     {
09738             (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09739           }
09740     break;
09741 
09742   case 383:
09743 
09744 /* Line 1455 of yacc.c  */
09745 #line 2468 "drizzled/sql_yacc.yy"
09746     {
09747             (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
09748           }
09749     break;
09750 
09751   case 385:
09752 
09753 /* Line 1455 of yacc.c  */
09754 #line 2476 "drizzled/sql_yacc.yy"
09755     {
09756             (yyval.item)= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
09757           }
09758     break;
09759 
09760   case 386:
09761 
09762 /* Line 1455 of yacc.c  */
09763 #line 2480 "drizzled/sql_yacc.yy"
09764     {
09765             Item *item= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
09766             (yyval.item)= negate_expression(YYSession, item);
09767           }
09768     break;
09769 
09770   case 387:
09771 
09772 /* Line 1455 of yacc.c  */
09773 #line 2485 "drizzled/sql_yacc.yy"
09774     {
09775             (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
09776           }
09777     break;
09778 
09779   case 388:
09780 
09781 /* Line 1455 of yacc.c  */
09782 #line 2489 "drizzled/sql_yacc.yy"
09783     {
09784             (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
09785             (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
09786             (yyval.item)= new (YYSession->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
09787           }
09788     break;
09789 
09790   case 389:
09791 
09792 /* Line 1455 of yacc.c  */
09793 #line 2495 "drizzled/sql_yacc.yy"
09794     {
09795             (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
09796           }
09797     break;
09798 
09799   case 390:
09800 
09801 /* Line 1455 of yacc.c  */
09802 #line 2499 "drizzled/sql_yacc.yy"
09803     {
09804             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
09805             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
09806             Item_func_in *item = new (YYSession->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
09807             item->negate();
09808             (yyval.item)= item;
09809           }
09810     break;
09811 
09812   case 391:
09813 
09814 /* Line 1455 of yacc.c  */
09815 #line 2507 "drizzled/sql_yacc.yy"
09816     {
09817             (yyval.item)= new Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
09818           }
09819     break;
09820 
09821   case 392:
09822 
09823 /* Line 1455 of yacc.c  */
09824 #line 2511 "drizzled/sql_yacc.yy"
09825     {
09826             Item_func_between *item= new Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
09827             item->negate();
09828             (yyval.item)= item;
09829           }
09830     break;
09831 
09832   case 393:
09833 
09834 /* Line 1455 of yacc.c  */
09835 #line 2517 "drizzled/sql_yacc.yy"
09836     {
09837             (yyval.item)= new Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex.escape_used);
09838           }
09839     break;
09840 
09841   case 394:
09842 
09843 /* Line 1455 of yacc.c  */
09844 #line 2521 "drizzled/sql_yacc.yy"
09845     {
09846             (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));
09847           }
09848     break;
09849 
09850   case 395:
09851 
09852 /* Line 1455 of yacc.c  */
09853 #line 2525 "drizzled/sql_yacc.yy"
09854     {
09855             List<Item> *args= new (YYSession->mem_root) List<Item>;
09856             args->push_back((yyvsp[(1) - (3)].item));
09857             args->push_back((yyvsp[(3) - (3)].item));
09858             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
09859             {
09860               DRIZZLE_YYABORT;
09861             }
09862           }
09863     break;
09864 
09865   case 396:
09866 
09867 /* Line 1455 of yacc.c  */
09868 #line 2535 "drizzled/sql_yacc.yy"
09869     {
09870             List<Item> *args= new (YYSession->mem_root) List<Item>;
09871             args->push_back((yyvsp[(1) - (4)].item));
09872             args->push_back((yyvsp[(4) - (4)].item));
09873             args->push_back(new (YYSession->mem_root) Item_int(1));
09874             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
09875             {
09876               DRIZZLE_YYABORT;
09877             }
09878           }
09879     break;
09880 
09881   case 398:
09882 
09883 /* Line 1455 of yacc.c  */
09884 #line 2550 "drizzled/sql_yacc.yy"
09885     {
09886             (yyval.item)= new function::bit::Or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09887           }
09888     break;
09889 
09890   case 399:
09891 
09892 /* Line 1455 of yacc.c  */
09893 #line 2554 "drizzled/sql_yacc.yy"
09894     {
09895             (yyval.item)= new function::bit::And((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09896           }
09897     break;
09898 
09899   case 400:
09900 
09901 /* Line 1455 of yacc.c  */
09902 #line 2558 "drizzled/sql_yacc.yy"
09903     {
09904             (yyval.item)= new function::bit::ShiftRight((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09905           }
09906     break;
09907 
09908   case 401:
09909 
09910 /* Line 1455 of yacc.c  */
09911 #line 2562 "drizzled/sql_yacc.yy"
09912     {
09913             (yyval.item)= new function::bit::ShiftLeft((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09914           }
09915     break;
09916 
09917   case 402:
09918 
09919 /* Line 1455 of yacc.c  */
09920 #line 2566 "drizzled/sql_yacc.yy"
09921     {
09922             (yyval.item)= new Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09923           }
09924     break;
09925 
09926   case 403:
09927 
09928 /* Line 1455 of yacc.c  */
09929 #line 2570 "drizzled/sql_yacc.yy"
09930     {
09931             (yyval.item)= new Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09932           }
09933     break;
09934 
09935   case 404:
09936 
09937 /* Line 1455 of yacc.c  */
09938 #line 2574 "drizzled/sql_yacc.yy"
09939     {
09940             (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
09941           }
09942     break;
09943 
09944   case 405:
09945 
09946 /* Line 1455 of yacc.c  */
09947 #line 2578 "drizzled/sql_yacc.yy"
09948     {
09949             (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
09950           }
09951     break;
09952 
09953   case 406:
09954 
09955 /* Line 1455 of yacc.c  */
09956 #line 2582 "drizzled/sql_yacc.yy"
09957     {
09958             (yyval.item)= new Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09959           }
09960     break;
09961 
09962   case 407:
09963 
09964 /* Line 1455 of yacc.c  */
09965 #line 2586 "drizzled/sql_yacc.yy"
09966     {
09967             (yyval.item)= new Item_func_div(YYSession,(yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09968           }
09969     break;
09970 
09971   case 408:
09972 
09973 /* Line 1455 of yacc.c  */
09974 #line 2590 "drizzled/sql_yacc.yy"
09975     {
09976             (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09977           }
09978     break;
09979 
09980   case 409:
09981 
09982 /* Line 1455 of yacc.c  */
09983 #line 2594 "drizzled/sql_yacc.yy"
09984     {
09985             (yyval.item)= new Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09986           }
09987     break;
09988 
09989   case 410:
09990 
09991 /* Line 1455 of yacc.c  */
09992 #line 2598 "drizzled/sql_yacc.yy"
09993     {
09994             (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09995           }
09996     break;
09997 
09998   case 411:
09999 
10000 /* Line 1455 of yacc.c  */
10001 #line 2602 "drizzled/sql_yacc.yy"
10002     {
10003             (yyval.item)= new (YYSession->mem_root) function::bit::Xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10004           }
10005     break;
10006 
10007   case 413:
10008 
10009 /* Line 1455 of yacc.c  */
10010 #line 2609 "drizzled/sql_yacc.yy"
10011     { (yyval.boolfunc2creator) = &comp_eq_creator; }
10012     break;
10013 
10014   case 414:
10015 
10016 /* Line 1455 of yacc.c  */
10017 #line 2610 "drizzled/sql_yacc.yy"
10018     { (yyval.boolfunc2creator) = &comp_ge_creator; }
10019     break;
10020 
10021   case 415:
10022 
10023 /* Line 1455 of yacc.c  */
10024 #line 2611 "drizzled/sql_yacc.yy"
10025     { (yyval.boolfunc2creator) = &comp_gt_creator; }
10026     break;
10027 
10028   case 416:
10029 
10030 /* Line 1455 of yacc.c  */
10031 #line 2612 "drizzled/sql_yacc.yy"
10032     { (yyval.boolfunc2creator) = &comp_le_creator; }
10033     break;
10034 
10035   case 417:
10036 
10037 /* Line 1455 of yacc.c  */
10038 #line 2613 "drizzled/sql_yacc.yy"
10039     { (yyval.boolfunc2creator) = &comp_lt_creator; }
10040     break;
10041 
10042   case 418:
10043 
10044 /* Line 1455 of yacc.c  */
10045 #line 2614 "drizzled/sql_yacc.yy"
10046     { (yyval.boolfunc2creator) = &comp_ne_creator; }
10047     break;
10048 
10049   case 419:
10050 
10051 /* Line 1455 of yacc.c  */
10052 #line 2618 "drizzled/sql_yacc.yy"
10053     { (yyval.num) = 1; }
10054     break;
10055 
10056   case 420:
10057 
10058 /* Line 1455 of yacc.c  */
10059 #line 2619 "drizzled/sql_yacc.yy"
10060     { (yyval.num) = 0; }
10061     break;
10062 
10063   case 426:
10064 
10065 /* Line 1455 of yacc.c  */
10066 #line 2629 "drizzled/sql_yacc.yy"
10067     {
10068             Item *i1= new (YYSession->mem_root) Item_string((yyvsp[(3) - (3)].lex_str).str,
10069                                                       (yyvsp[(3) - (3)].lex_str).length,
10070                                                       YYSession->charset());
10071             (yyval.item)= new (YYSession->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
10072           }
10073     break;
10074 
10075   case 429:
10076 
10077 /* Line 1455 of yacc.c  */
10078 #line 2638 "drizzled/sql_yacc.yy"
10079     {
10080             Lex.setSumExprUsed();
10081           }
10082     break;
10083 
10084   case 430:
10085 
10086 /* Line 1455 of yacc.c  */
10087 #line 2642 "drizzled/sql_yacc.yy"
10088     {
10089             (yyval.item)= new (YYSession->mem_root) Item_func_concat(*YYSession, (yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10090           }
10091     break;
10092 
10093   case 431:
10094 
10095 /* Line 1455 of yacc.c  */
10096 #line 2645 "drizzled/sql_yacc.yy"
10097     { (yyval.item)= (yyvsp[(2) - (2)].item); }
10098     break;
10099 
10100   case 432:
10101 
10102 /* Line 1455 of yacc.c  */
10103 #line 2647 "drizzled/sql_yacc.yy"
10104     {
10105       (yyval.item)= new (YYSession->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
10106     }
10107     break;
10108 
10109   case 433:
10110 
10111 /* Line 1455 of yacc.c  */
10112 #line 2651 "drizzled/sql_yacc.yy"
10113     {
10114             (yyval.item)= new (YYSession->mem_root) function::bit::Neg((yyvsp[(2) - (2)].item));
10115           }
10116     break;
10117 
10118   case 434:
10119 
10120 /* Line 1455 of yacc.c  */
10121 #line 2655 "drizzled/sql_yacc.yy"
10122     {
10123             (yyval.item)= new (YYSession->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
10124           }
10125     break;
10126 
10127   case 435:
10128 
10129 /* Line 1455 of yacc.c  */
10130 #line 2658 "drizzled/sql_yacc.yy"
10131     { (yyval.item)= (yyvsp[(2) - (3)].item); }
10132     break;
10133 
10134   case 436:
10135 
10136 /* Line 1455 of yacc.c  */
10137 #line 2660 "drizzled/sql_yacc.yy"
10138     {
10139             (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
10140             (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
10141           }
10142     break;
10143 
10144   case 437:
10145 
10146 /* Line 1455 of yacc.c  */
10147 #line 2665 "drizzled/sql_yacc.yy"
10148     {
10149             (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
10150             (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
10151           }
10152     break;
10153 
10154   case 438:
10155 
10156 /* Line 1455 of yacc.c  */
10157 #line 2670 "drizzled/sql_yacc.yy"
10158     {
10159             (yyval.item)= new (YYSession->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
10160           }
10161     break;
10162 
10163   case 439:
10164 
10165 /* Line 1455 of yacc.c  */
10166 #line 2673 "drizzled/sql_yacc.yy"
10167     { (yyval.item)= (yyvsp[(3) - (4)].item); }
10168     break;
10169 
10170   case 440:
10171 
10172 /* Line 1455 of yacc.c  */
10173 #line 2675 "drizzled/sql_yacc.yy"
10174     {
10175             (yyval.item)= create_func_cast(YYSession, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
10176                                  &my_charset_bin);
10177           }
10178     break;
10179 
10180   case 441:
10181 
10182 /* Line 1455 of yacc.c  */
10183 #line 2680 "drizzled/sql_yacc.yy"
10184     {
10185             (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10186                                  Lex.charset);
10187             if (!(yyval.item))
10188               DRIZZLE_YYABORT;
10189           }
10190     break;
10191 
10192   case 442:
10193 
10194 /* Line 1455 of yacc.c  */
10195 #line 2687 "drizzled/sql_yacc.yy"
10196     { (yyval.item)= new (YYSession->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) ); }
10197     break;
10198 
10199   case 443:
10200 
10201 /* Line 1455 of yacc.c  */
10202 #line 2689 "drizzled/sql_yacc.yy"
10203     {
10204             (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10205                                  Lex.charset);
10206             if (!(yyval.item))
10207               DRIZZLE_YYABORT;
10208           }
10209     break;
10210 
10211   case 444:
10212 
10213 /* Line 1455 of yacc.c  */
10214 #line 2696 "drizzled/sql_yacc.yy"
10215     {
10216             (yyval.item)= new (YYSession->mem_root) Item_default_value(Lex.current_context(),
10217                                                          (yyvsp[(3) - (4)].item));
10218           }
10219     break;
10220 
10221   case 445:
10222 
10223 /* Line 1455 of yacc.c  */
10224 #line 2701 "drizzled/sql_yacc.yy"
10225     {
10226             (yyval.item)= new (YYSession->mem_root) Item_insert_value(Lex.current_context(),
10227                                                         (yyvsp[(3) - (4)].item));
10228           }
10229     break;
10230 
10231   case 446:
10232 
10233 /* Line 1455 of yacc.c  */
10234 #line 2707 "drizzled/sql_yacc.yy"
10235     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0); }
10236     break;
10237 
10238   case 447:
10239 
10240 /* Line 1455 of yacc.c  */
10241 #line 2718 "drizzled/sql_yacc.yy"
10242     { (yyval.item)= new (YYSession->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list)); }
10243     break;
10244 
10245   case 448:
10246 
10247 /* Line 1455 of yacc.c  */
10248 #line 2720 "drizzled/sql_yacc.yy"
10249     {
10250             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10251             {
10252               DRIZZLE_YYABORT;
10253             }
10254             Lex.setCacheable(false);
10255           }
10256     break;
10257 
10258   case 449:
10259 
10260 /* Line 1455 of yacc.c  */
10261 #line 2728 "drizzled/sql_yacc.yy"
10262     { (yyval.item)= new (YYSession->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item)); }
10263     break;
10264 
10265   case 450:
10266 
10267 /* Line 1455 of yacc.c  */
10268 #line 2730 "drizzled/sql_yacc.yy"
10269     { (yyval.item)= new (YYSession->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item)); }
10270     break;
10271 
10272   case 451:
10273 
10274 /* Line 1455 of yacc.c  */
10275 #line 2732 "drizzled/sql_yacc.yy"
10276     { (yyval.item)= new (YYSession->mem_root) Item_func_hour((yyvsp[(3) - (4)].item)); }
10277     break;
10278 
10279   case 452:
10280 
10281 /* Line 1455 of yacc.c  */
10282 #line 2734 "drizzled/sql_yacc.yy"
10283     { (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)); }
10284     break;
10285 
10286   case 453:
10287 
10288 /* Line 1455 of yacc.c  */
10289 #line 2736 "drizzled/sql_yacc.yy"
10290     {
10291             List<Item> *list= new (YYSession->mem_root) List<Item>;
10292             list->push_front((yyvsp[(5) - (6)].item));
10293             list->push_front((yyvsp[(3) - (6)].item));
10294             Item_row *item= new (YYSession->mem_root) Item_row(*list);
10295             (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10296           }
10297     break;
10298 
10299   case 454:
10300 
10301 /* Line 1455 of yacc.c  */
10302 #line 2744 "drizzled/sql_yacc.yy"
10303     {
10304             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
10305             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
10306             Item_row *item= new (YYSession->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
10307             (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10308           }
10309     break;
10310 
10311   case 455:
10312 
10313 /* Line 1455 of yacc.c  */
10314 #line 2751 "drizzled/sql_yacc.yy"
10315     { (yyval.item)= new (YYSession->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10316     break;
10317 
10318   case 456:
10319 
10320 /* Line 1455 of yacc.c  */
10321 #line 2753 "drizzled/sql_yacc.yy"
10322     { (yyval.item)= new (YYSession->mem_root) Item_func_minute((yyvsp[(3) - (4)].item)); }
10323     break;
10324 
10325   case 457:
10326 
10327 /* Line 1455 of yacc.c  */
10328 #line 2755 "drizzled/sql_yacc.yy"
10329     { (yyval.item)= new (YYSession->mem_root) Item_func_month((yyvsp[(3) - (4)].item)); }
10330     break;
10331 
10332   case 458:
10333 
10334 /* Line 1455 of yacc.c  */
10335 #line 2757 "drizzled/sql_yacc.yy"
10336     { (yyval.item)= new (YYSession->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10337     break;
10338 
10339   case 459:
10340 
10341 /* Line 1455 of yacc.c  */
10342 #line 2759 "drizzled/sql_yacc.yy"
10343     { (yyval.item)= new (YYSession->mem_root) Item_func_second((yyvsp[(3) - (4)].item)); }
10344     break;
10345 
10346   case 460:
10347 
10348 /* Line 1455 of yacc.c  */
10349 #line 2761 "drizzled/sql_yacc.yy"
10350     { (yyval.item)= new (YYSession->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item)); }
10351     break;
10352 
10353   case 461:
10354 
10355 /* Line 1455 of yacc.c  */
10356 #line 2763 "drizzled/sql_yacc.yy"
10357     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(3) - (4)].item)); }
10358     break;
10359 
10360   case 462:
10361 
10362 /* Line 1455 of yacc.c  */
10363 #line 2765 "drizzled/sql_yacc.yy"
10364     { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10365     break;
10366 
10367   case 463:
10368 
10369 /* Line 1455 of yacc.c  */
10370 #line 2767 "drizzled/sql_yacc.yy"
10371     { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10372     break;
10373 
10374   case 464:
10375 
10376 /* Line 1455 of yacc.c  */
10377 #line 2769 "drizzled/sql_yacc.yy"
10378     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10379     break;
10380 
10381   case 465:
10382 
10383 /* Line 1455 of yacc.c  */
10384 #line 2771 "drizzled/sql_yacc.yy"
10385     { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item)); }
10386     break;
10387 
10388   case 466:
10389 
10390 /* Line 1455 of yacc.c  */
10391 #line 2773 "drizzled/sql_yacc.yy"
10392     { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item)); }
10393     break;
10394 
10395   case 467:
10396 
10397 /* Line 1455 of yacc.c  */
10398 #line 2775 "drizzled/sql_yacc.yy"
10399     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item)); }
10400     break;
10401 
10402   case 468:
10403 
10404 /* Line 1455 of yacc.c  */
10405 #line 2777 "drizzled/sql_yacc.yy"
10406     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10407     break;
10408 
10409   case 469:
10410 
10411 /* Line 1455 of yacc.c  */
10412 #line 2779 "drizzled/sql_yacc.yy"
10413     {
10414             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10415             {
10416               DRIZZLE_YYABORT;
10417             }
10418             Lex.setCacheable(false);
10419           }
10420     break;
10421 
10422   case 470:
10423 
10424 /* Line 1455 of yacc.c  */
10425 #line 2787 "drizzled/sql_yacc.yy"
10426     { (yyval.item)= new (YYSession->mem_root) Item_func_year((yyvsp[(3) - (4)].item)); }
10427     break;
10428 
10429   case 471:
10430 
10431 /* Line 1455 of yacc.c  */
10432 #line 2803 "drizzled/sql_yacc.yy"
10433     {
10434             (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10435                                                              INTERVAL_DAY, 0);
10436           }
10437     break;
10438 
10439   case 472:
10440 
10441 /* Line 1455 of yacc.c  */
10442 #line 2808 "drizzled/sql_yacc.yy"
10443     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0); }
10444     break;
10445 
10446   case 473:
10447 
10448 /* Line 1455 of yacc.c  */
10449 #line 2810 "drizzled/sql_yacc.yy"
10450     {
10451             (yyval.item)= new (YYSession->mem_root) Item_func_curdate_local();
10452             Lex.setCacheable(false);
10453           }
10454     break;
10455 
10456   case 474:
10457 
10458 /* Line 1455 of yacc.c  */
10459 #line 2815 "drizzled/sql_yacc.yy"
10460     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0); }
10461     break;
10462 
10463   case 475:
10464 
10465 /* Line 1455 of yacc.c  */
10466 #line 2817 "drizzled/sql_yacc.yy"
10467     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1); }
10468     break;
10469 
10470   case 476:
10471 
10472 /* Line 1455 of yacc.c  */
10473 #line 2819 "drizzled/sql_yacc.yy"
10474     { (yyval.item)=new (YYSession->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item)); }
10475     break;
10476 
10477   case 477:
10478 
10479 /* Line 1455 of yacc.c  */
10480 #line 2821 "drizzled/sql_yacc.yy"
10481     {
10482             (yyval.item)= new (YYSession->mem_root) Item_func_now_local();
10483             Lex.setCacheable(false);
10484           }
10485     break;
10486 
10487   case 478:
10488 
10489 /* Line 1455 of yacc.c  */
10490 #line 2826 "drizzled/sql_yacc.yy"
10491     {
10492             (yyval.item)= new (YYSession->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
10493             Lex.setCacheable(false);
10494           }
10495     break;
10496 
10497   case 479:
10498 
10499 /* Line 1455 of yacc.c  */
10500 #line 2831 "drizzled/sql_yacc.yy"
10501     { (yyval.item) = new (YYSession->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10502     break;
10503 
10504   case 480:
10505 
10506 /* Line 1455 of yacc.c  */
10507 #line 2833 "drizzled/sql_yacc.yy"
10508     {
10509             (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10510                                                              INTERVAL_DAY, 1);
10511           }
10512     break;
10513 
10514   case 481:
10515 
10516 /* Line 1455 of yacc.c  */
10517 #line 2838 "drizzled/sql_yacc.yy"
10518     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1); }
10519     break;
10520 
10521   case 482:
10522 
10523 /* Line 1455 of yacc.c  */
10524 #line 2840 "drizzled/sql_yacc.yy"
10525     {
10526             List<Item> *args= new (YYSession->mem_root) List<Item>;
10527             args->push_back((yyvsp[(3) - (8)].item));
10528             args->push_back((yyvsp[(5) - (8)].item));
10529             args->push_back((yyvsp[(7) - (8)].item));
10530             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10531             {
10532               DRIZZLE_YYABORT;
10533             }
10534           }
10535     break;
10536 
10537   case 483:
10538 
10539 /* Line 1455 of yacc.c  */
10540 #line 2851 "drizzled/sql_yacc.yy"
10541     {
10542             List<Item> *args= new (YYSession->mem_root) List<Item>;
10543             args->push_back((yyvsp[(3) - (6)].item));
10544             args->push_back((yyvsp[(5) - (6)].item));
10545             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10546             {
10547               DRIZZLE_YYABORT;
10548             }
10549           }
10550     break;
10551 
10552   case 484:
10553 
10554 /* Line 1455 of yacc.c  */
10555 #line 2861 "drizzled/sql_yacc.yy"
10556     {
10557             List<Item> *args= new (YYSession->mem_root) List<Item>;
10558             args->push_back((yyvsp[(3) - (8)].item));
10559             args->push_back((yyvsp[(5) - (8)].item));
10560             args->push_back((yyvsp[(7) - (8)].item));
10561             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10562             {
10563               DRIZZLE_YYABORT;
10564             }
10565           }
10566     break;
10567 
10568   case 485:
10569 
10570 /* Line 1455 of yacc.c  */
10571 #line 2872 "drizzled/sql_yacc.yy"
10572     {
10573             List<Item> *args= new (YYSession->mem_root) List<Item>;
10574             args->push_back((yyvsp[(3) - (6)].item));
10575             args->push_back((yyvsp[(5) - (6)].item));
10576             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10577             {
10578               DRIZZLE_YYABORT;
10579             }
10580           }
10581     break;
10582 
10583   case 486:
10584 
10585 /* Line 1455 of yacc.c  */
10586 #line 2882 "drizzled/sql_yacc.yy"
10587     {
10588             (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local();
10589             Lex.setCacheable(false);
10590           }
10591     break;
10592 
10593   case 487:
10594 
10595 /* Line 1455 of yacc.c  */
10596 #line 2887 "drizzled/sql_yacc.yy"
10597     {
10598             (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
10599             Lex.setCacheable(false);
10600           }
10601     break;
10602 
10603   case 488:
10604 
10605 /* Line 1455 of yacc.c  */
10606 #line 2892 "drizzled/sql_yacc.yy"
10607     { (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); }
10608     break;
10609 
10610   case 489:
10611 
10612 /* Line 1455 of yacc.c  */
10613 #line 2894 "drizzled/sql_yacc.yy"
10614     { (yyval.item)= new (YYSession->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st)); }
10615     break;
10616 
10617   case 490:
10618 
10619 /* Line 1455 of yacc.c  */
10620 #line 2896 "drizzled/sql_yacc.yy"
10621     {
10622             (yyval.item)= new (YYSession->mem_root) Item_func_curdate_utc();
10623             Lex.setCacheable(false);
10624           }
10625     break;
10626 
10627   case 491:
10628 
10629 /* Line 1455 of yacc.c  */
10630 #line 2901 "drizzled/sql_yacc.yy"
10631     {
10632             (yyval.item)= new (YYSession->mem_root) Item_func_now_utc();
10633             Lex.setCacheable(false);
10634           }
10635     break;
10636 
10637   case 492:
10638 
10639 /* Line 1455 of yacc.c  */
10640 #line 2914 "drizzled/sql_yacc.yy"
10641     { (yyval.item)= new (YYSession->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list)); }
10642     break;
10643 
10644   case 493:
10645 
10646 /* Line 1455 of yacc.c  */
10647 #line 2916 "drizzled/sql_yacc.yy"
10648     { (yyval.item)= new (YYSession->mem_root) Item_func_collation((yyvsp[(3) - (4)].item)); }
10649     break;
10650 
10651   case 494:
10652 
10653 /* Line 1455 of yacc.c  */
10654 #line 2918 "drizzled/sql_yacc.yy"
10655     {
10656             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "database", NULL)))
10657             {
10658               DRIZZLE_YYABORT;
10659             }
10660             Lex.setCacheable(false);
10661     }
10662     break;
10663 
10664   case 495:
10665 
10666 /* Line 1455 of yacc.c  */
10667 #line 2926 "drizzled/sql_yacc.yy"
10668     {
10669             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "catalog", NULL)))
10670             {
10671               DRIZZLE_YYABORT;
10672             }
10673             Lex.setCacheable(false);
10674     }
10675     break;
10676 
10677   case 496:
10678 
10679 /* Line 1455 of yacc.c  */
10680 #line 2934 "drizzled/sql_yacc.yy"
10681     {
10682             List<Item> *args= new (YYSession->mem_root) List<Item>;
10683             args->push_back((yyvsp[(3) - (5)].item));
10684 
10685             if ((yyvsp[(5) - (5)].boolean))
10686             {
10687               args->push_back(new (YYSession->mem_root) Item_int(1));
10688             }
10689 
10690             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "execute", args)))
10691             {
10692               DRIZZLE_YYABORT;
10693             }
10694           }
10695     break;
10696 
10697   case 497:
10698 
10699 /* Line 1455 of yacc.c  */
10700 #line 2949 "drizzled/sql_yacc.yy"
10701     { (yyval.item)= new (YYSession->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item)); }
10702     break;
10703 
10704   case 498:
10705 
10706 /* Line 1455 of yacc.c  */
10707 #line 2951 "drizzled/sql_yacc.yy"
10708     {
10709             List<Item> *args= new (YYSession->mem_root) List<Item>;
10710             args->push_back((yyvsp[(4) - (5)].item));
10711 
10712             if ((yyvsp[(2) - (5)].num))
10713             {
10714               args->push_back(new (YYSession->mem_root) Item_uint(1));
10715             }
10716 
10717             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "kill", args)))
10718             {
10719               DRIZZLE_YYABORT;
10720             }
10721           }
10722     break;
10723 
10724   case 499:
10725 
10726 /* Line 1455 of yacc.c  */
10727 #line 2966 "drizzled/sql_yacc.yy"
10728     { (yyval.item)= new (YYSession->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item)); }
10729     break;
10730 
10731   case 500:
10732 
10733 /* Line 1455 of yacc.c  */
10734 #line 2968 "drizzled/sql_yacc.yy"
10735     { (yyval.item) = new (YYSession->mem_root) Item_func_mod( (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10736     break;
10737 
10738   case 501:
10739 
10740 /* Line 1455 of yacc.c  */
10741 #line 2970 "drizzled/sql_yacc.yy"
10742     { (yyval.item) = new (YYSession->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item)); }
10743     break;
10744 
10745   case 502:
10746 
10747 /* Line 1455 of yacc.c  */
10748 #line 2972 "drizzled/sql_yacc.yy"
10749     { (yyval.item)= new (YYSession->mem_root) Item_func_repeat(*YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10750     break;
10751 
10752   case 503:
10753 
10754 /* Line 1455 of yacc.c  */
10755 #line 2974 "drizzled/sql_yacc.yy"
10756     { (yyval.item)= new (YYSession->mem_root) Item_func_replace(*YYSession, (yyvsp[(3) - (8)].item), (yyvsp[(5) - (8)].item), (yyvsp[(7) - (8)].item)); }
10757     break;
10758 
10759   case 504:
10760 
10761 /* Line 1455 of yacc.c  */
10762 #line 2976 "drizzled/sql_yacc.yy"
10763     { (yyval.item)= new (YYSession->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1); }
10764     break;
10765 
10766   case 505:
10767 
10768 /* Line 1455 of yacc.c  */
10769 #line 2978 "drizzled/sql_yacc.yy"
10770     {
10771             List<Item> *args= new (YYSession->mem_root) List<Item>;
10772             args->push_back((yyvsp[(3) - (4)].item));
10773             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
10774             {
10775               DRIZZLE_YYABORT;
10776             }
10777           }
10778     break;
10779 
10780   case 506:
10781 
10782 /* Line 1455 of yacc.c  */
10783 #line 2987 "drizzled/sql_yacc.yy"
10784     {
10785             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "uuid", NULL)))
10786             {
10787               DRIZZLE_YYABORT;
10788             }
10789             Lex.setCacheable(false);
10790     }
10791     break;
10792 
10793   case 507:
10794 
10795 /* Line 1455 of yacc.c  */
10796 #line 2995 "drizzled/sql_yacc.yy"
10797     {
10798             List<Item> *args= new (YYSession->mem_root) List<Item>;
10799             args->push_back((yyvsp[(3) - (6)].item));
10800             args->push_back((yyvsp[(5) - (6)].item));
10801             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
10802             {
10803               DRIZZLE_YYABORT;
10804             }
10805           }
10806     break;
10807 
10808   case 508:
10809 
10810 /* Line 1455 of yacc.c  */
10811 #line 3016 "drizzled/sql_yacc.yy"
10812     {
10813             const plugin::Function *udf= plugin::Function::get(std::string((yyvsp[(1) - (2)].lex_str).str, (yyvsp[(1) - (2)].lex_str).length));
10814 
10815             /* Temporary placing the result of getFunction in $3 */
10816             (yyval.udf)= udf;
10817           }
10818     break;
10819 
10820   case 509:
10821 
10822 /* Line 1455 of yacc.c  */
10823 #line 3023 "drizzled/sql_yacc.yy"
10824     {
10825             Create_func *builder;
10826             Item *item= NULL;
10827 
10828             /*
10829               Implementation note:
10830               names are resolved with the following order:
10831               - MySQL native functions,
10832               - User Defined Functions,
10833               - Stored Functions (assuming the current <use> database)
10834 
10835               This will be revised with WL#2128 (SQL PATH)
10836             */
10837             builder= find_native_function_builder((yyvsp[(1) - (5)].lex_str));
10838             if (builder)
10839             {
10840               item= builder->create(YYSession, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
10841             }
10842             else
10843             {
10844               /* Retrieving the result of service::Function::get */
10845               const plugin::Function *udf= (yyvsp[(3) - (5)].udf);
10846               if (udf)
10847               {
10848                 item= Create_udf_func::s_singleton.create(YYSession, udf, (yyvsp[(4) - (5)].item_list));
10849               } else {
10850                 /* fix for bug 250065, from Andrew Garner <muzazzi@gmail.com> */
10851                 my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "FUNCTION", (yyvsp[(1) - (5)].lex_str).str);
10852               }
10853             }
10854 
10855             if (! ((yyval.item)= item))
10856             {
10857               DRIZZLE_YYABORT;
10858             }
10859             Lex.setCacheable(false);
10860           }
10861     break;
10862 
10863   case 510:
10864 
10865 /* Line 1455 of yacc.c  */
10866 #line 3063 "drizzled/sql_yacc.yy"
10867     { (yyval.item_list)= NULL; }
10868     break;
10869 
10870   case 511:
10871 
10872 /* Line 1455 of yacc.c  */
10873 #line 3064 "drizzled/sql_yacc.yy"
10874     { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
10875     break;
10876 
10877   case 512:
10878 
10879 /* Line 1455 of yacc.c  */
10880 #line 3069 "drizzled/sql_yacc.yy"
10881     {
10882             (yyval.item_list)= new (YYSession->mem_root) List<Item>;
10883             (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
10884           }
10885     break;
10886 
10887   case 513:
10888 
10889 /* Line 1455 of yacc.c  */
10890 #line 3074 "drizzled/sql_yacc.yy"
10891     {
10892             (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
10893             (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
10894           }
10895     break;
10896 
10897   case 514:
10898 
10899 /* Line 1455 of yacc.c  */
10900 #line 3082 "drizzled/sql_yacc.yy"
10901     {
10902             /*
10903              Use Item::name as a storage for the attribute value of user
10904              defined function argument. It is safe to use Item::name
10905              because the syntax will not allow having an explicit name here.
10906              See WL#1017 re. udf attributes.
10907             */
10908             if ((yyvsp[(4) - (4)].lex_str).str)
10909             {
10910               (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
10911               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
10912             }
10913             else
10914               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
10915             (yyval.item)= (yyvsp[(2) - (4)].item);
10916           }
10917     break;
10918 
10919   case 515:
10920 
10921 /* Line 1455 of yacc.c  */
10922 #line 3102 "drizzled/sql_yacc.yy"
10923     { (yyval.item)=new Item_sum_avg((yyvsp[(3) - (4)].item)); }
10924     break;
10925 
10926   case 516:
10927 
10928 /* Line 1455 of yacc.c  */
10929 #line 3104 "drizzled/sql_yacc.yy"
10930     { (yyval.item)=new Item_sum_avg_distinct((yyvsp[(4) - (5)].item)); }
10931     break;
10932 
10933   case 517:
10934 
10935 /* Line 1455 of yacc.c  */
10936 #line 3106 "drizzled/sql_yacc.yy"
10937     { (yyval.item)=new Item_sum_count(new Item_int((int32_t) 0L,1)); }
10938     break;
10939 
10940   case 518:
10941 
10942 /* Line 1455 of yacc.c  */
10943 #line 3108 "drizzled/sql_yacc.yy"
10944     { (yyval.item)=new Item_sum_count((yyvsp[(3) - (4)].item)); }
10945     break;
10946 
10947   case 519:
10948 
10949 /* Line 1455 of yacc.c  */
10950 #line 3110 "drizzled/sql_yacc.yy"
10951     { Lex.current_select->in_sum_expr++; }
10952     break;
10953 
10954   case 520:
10955 
10956 /* Line 1455 of yacc.c  */
10957 #line 3112 "drizzled/sql_yacc.yy"
10958     { Lex.current_select->in_sum_expr--; }
10959     break;
10960 
10961   case 521:
10962 
10963 /* Line 1455 of yacc.c  */
10964 #line 3114 "drizzled/sql_yacc.yy"
10965     { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list)); }
10966     break;
10967 
10968   case 522:
10969 
10970 /* Line 1455 of yacc.c  */
10971 #line 3116 "drizzled/sql_yacc.yy"
10972     { (yyval.item)=new Item_sum_min((yyvsp[(3) - (4)].item)); }
10973     break;
10974 
10975   case 523:
10976 
10977 /* Line 1455 of yacc.c  */
10978 #line 3123 "drizzled/sql_yacc.yy"
10979     { (yyval.item)=new Item_sum_min((yyvsp[(4) - (5)].item)); }
10980     break;
10981 
10982   case 524:
10983 
10984 /* Line 1455 of yacc.c  */
10985 #line 3125 "drizzled/sql_yacc.yy"
10986     { (yyval.item)=new Item_sum_max((yyvsp[(3) - (4)].item)); }
10987     break;
10988 
10989   case 525:
10990 
10991 /* Line 1455 of yacc.c  */
10992 #line 3127 "drizzled/sql_yacc.yy"
10993     { (yyval.item)=new Item_sum_max((yyvsp[(4) - (5)].item)); }
10994     break;
10995 
10996   case 526:
10997 
10998 /* Line 1455 of yacc.c  */
10999 #line 3129 "drizzled/sql_yacc.yy"
11000     { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 0); }
11001     break;
11002 
11003   case 527:
11004 
11005 /* Line 1455 of yacc.c  */
11006 #line 3131 "drizzled/sql_yacc.yy"
11007     { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 0); }
11008     break;
11009 
11010   case 528:
11011 
11012 /* Line 1455 of yacc.c  */
11013 #line 3133 "drizzled/sql_yacc.yy"
11014     { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 1); }
11015     break;
11016 
11017   case 529:
11018 
11019 /* Line 1455 of yacc.c  */
11020 #line 3135 "drizzled/sql_yacc.yy"
11021     { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 1); }
11022     break;
11023 
11024   case 530:
11025 
11026 /* Line 1455 of yacc.c  */
11027 #line 3137 "drizzled/sql_yacc.yy"
11028     { (yyval.item)=new Item_sum_sum((yyvsp[(3) - (4)].item)); }
11029     break;
11030 
11031   case 531:
11032 
11033 /* Line 1455 of yacc.c  */
11034 #line 3139 "drizzled/sql_yacc.yy"
11035     { (yyval.item)=new Item_sum_sum_distinct((yyvsp[(4) - (5)].item)); }
11036     break;
11037 
11038   case 532:
11039 
11040 /* Line 1455 of yacc.c  */
11041 #line 3141 "drizzled/sql_yacc.yy"
11042     { Lex.current_select->in_sum_expr++; }
11043     break;
11044 
11045   case 533:
11046 
11047 /* Line 1455 of yacc.c  */
11048 #line 3145 "drizzled/sql_yacc.yy"
11049     {
11050             Select_Lex *sel= Lex.current_select;
11051             sel->in_sum_expr--;
11052             (yyval.item)=new Item_func_group_concat(Lex.current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
11053                                           sel->gorder_list, (yyvsp[(7) - (8)].string));
11054             (yyvsp[(5) - (8)].item_list)->clear();
11055           }
11056     break;
11057 
11058   case 534:
11059 
11060 /* Line 1455 of yacc.c  */
11061 #line 3156 "drizzled/sql_yacc.yy"
11062     { }
11063     break;
11064 
11065   case 535:
11066 
11067 /* Line 1455 of yacc.c  */
11068 #line 3158 "drizzled/sql_yacc.yy"
11069     {
11070             (yyval.item)= (yyvsp[(3) - (3)].item);
11071           }
11072     break;
11073 
11074   case 536:
11075 
11076 /* Line 1455 of yacc.c  */
11077 #line 3165 "drizzled/sql_yacc.yy"
11078     {
11079             (yyval.item)= new Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
11080             Lex.setCacheable(false);
11081           }
11082     break;
11083 
11084   case 537:
11085 
11086 /* Line 1455 of yacc.c  */
11087 #line 3170 "drizzled/sql_yacc.yy"
11088     {
11089             (yyval.item)= new Item_func_get_user_var(*YYSession, (yyvsp[(1) - (1)].lex_str));
11090             Lex.setCacheable(false);
11091           }
11092     break;
11093 
11094   case 538:
11095 
11096 /* Line 1455 of yacc.c  */
11097 #line 3175 "drizzled/sql_yacc.yy"
11098     {
11099             /* disallow "SELECT @@global.global.variable" */
11100             if ((yyvsp[(3) - (4)].lex_str).str && (yyvsp[(4) - (4)].lex_str).str && parser::check_reserved_words(&(yyvsp[(3) - (4)].lex_str)))
11101             {
11102               parser::my_parse_error(YYSession->m_lip);
11103               DRIZZLE_YYABORT;
11104             }
11105             if (!((yyval.item)= get_system_var(YYSession, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
11106               DRIZZLE_YYABORT;
11107           }
11108     break;
11109 
11110   case 539:
11111 
11112 /* Line 1455 of yacc.c  */
11113 #line 3188 "drizzled/sql_yacc.yy"
11114     { (yyval.num) = false; }
11115     break;
11116 
11117   case 540:
11118 
11119 /* Line 1455 of yacc.c  */
11120 #line 3189 "drizzled/sql_yacc.yy"
11121     { (yyval.num) = true; }
11122     break;
11123 
11124   case 541:
11125 
11126 /* Line 1455 of yacc.c  */
11127 #line 3194 "drizzled/sql_yacc.yy"
11128     {
11129               (yyval.string)= new (YYSession->mem_root) String(",", 1, &my_charset_utf8_general_ci);
11130             }
11131     break;
11132 
11133   case 542:
11134 
11135 /* Line 1455 of yacc.c  */
11136 #line 3197 "drizzled/sql_yacc.yy"
11137     { (yyval.string) = (yyvsp[(2) - (2)].string); }
11138     break;
11139 
11140   case 543:
11141 
11142 /* Line 1455 of yacc.c  */
11143 #line 3202 "drizzled/sql_yacc.yy"
11144     {
11145             Lex.current_select->gorder_list = NULL;
11146           }
11147     break;
11148 
11149   case 544:
11150 
11151 /* Line 1455 of yacc.c  */
11152 #line 3206 "drizzled/sql_yacc.yy"
11153     {
11154             Select_Lex *select= Lex.current_select;
11155             select->gorder_list=
11156               (SQL_LIST*) memory::sql_memdup((char*) &select->order_list,
11157                                      sizeof(st_sql_list));
11158             select->order_list.clear();
11159           }
11160     break;
11161 
11162   case 545:
11163 
11164 /* Line 1455 of yacc.c  */
11165 #line 3217 "drizzled/sql_yacc.yy"
11166     {
11167             if (Lex.current_select->inc_in_sum_expr())
11168             {
11169               parser::my_parse_error(YYSession->m_lip);
11170               DRIZZLE_YYABORT;
11171             }
11172           }
11173     break;
11174 
11175   case 546:
11176 
11177 /* Line 1455 of yacc.c  */
11178 #line 3225 "drizzled/sql_yacc.yy"
11179     {
11180             Lex.current_select->in_sum_expr--;
11181             (yyval.item)= (yyvsp[(3) - (3)].item);
11182           }
11183     break;
11184 
11185   case 547:
11186 
11187 /* Line 1455 of yacc.c  */
11188 #line 3233 "drizzled/sql_yacc.yy"
11189     { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11190     break;
11191 
11192   case 548:
11193 
11194 /* Line 1455 of yacc.c  */
11195 #line 3235 "drizzled/sql_yacc.yy"
11196     { (yyval.cast_type)=ITEM_CAST_BOOLEAN; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11197     break;
11198 
11199   case 549:
11200 
11201 /* Line 1455 of yacc.c  */
11202 #line 3237 "drizzled/sql_yacc.yy"
11203     { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11204     break;
11205 
11206   case 550:
11207 
11208 /* Line 1455 of yacc.c  */
11209 #line 3239 "drizzled/sql_yacc.yy"
11210     { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11211     break;
11212 
11213   case 551:
11214 
11215 /* Line 1455 of yacc.c  */
11216 #line 3241 "drizzled/sql_yacc.yy"
11217     { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11218     break;
11219 
11220   case 552:
11221 
11222 /* Line 1455 of yacc.c  */
11223 #line 3243 "drizzled/sql_yacc.yy"
11224     { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11225     break;
11226 
11227   case 553:
11228 
11229 /* Line 1455 of yacc.c  */
11230 #line 3245 "drizzled/sql_yacc.yy"
11231     { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11232     break;
11233 
11234   case 554:
11235 
11236 /* Line 1455 of yacc.c  */
11237 #line 3247 "drizzled/sql_yacc.yy"
11238     { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.dec= 0; }
11239     break;
11240 
11241   case 555:
11242 
11243 /* Line 1455 of yacc.c  */
11244 #line 3249 "drizzled/sql_yacc.yy"
11245     { (yyval.cast_type)=ITEM_CAST_DATE; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11246     break;
11247 
11248   case 556:
11249 
11250 /* Line 1455 of yacc.c  */
11251 #line 3251 "drizzled/sql_yacc.yy"
11252     { (yyval.cast_type)=ITEM_CAST_TIME; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11253     break;
11254 
11255   case 557:
11256 
11257 /* Line 1455 of yacc.c  */
11258 #line 3253 "drizzled/sql_yacc.yy"
11259     { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex.charset= NULL; Lex.dec=Lex.length= (char*)0; }
11260     break;
11261 
11262   case 558:
11263 
11264 /* Line 1455 of yacc.c  */
11265 #line 3255 "drizzled/sql_yacc.yy"
11266     { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex.charset= NULL; }
11267     break;
11268 
11269   case 559:
11270 
11271 /* Line 1455 of yacc.c  */
11272 #line 3260 "drizzled/sql_yacc.yy"
11273     {
11274             (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11275             (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11276           }
11277     break;
11278 
11279   case 560:
11280 
11281 /* Line 1455 of yacc.c  */
11282 #line 3265 "drizzled/sql_yacc.yy"
11283     {
11284             (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11285             (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11286           }
11287     break;
11288 
11289   case 561:
11290 
11291 /* Line 1455 of yacc.c  */
11292 #line 3272 "drizzled/sql_yacc.yy"
11293     { (yyval.item)= NULL; }
11294     break;
11295 
11296   case 562:
11297 
11298 /* Line 1455 of yacc.c  */
11299 #line 3273 "drizzled/sql_yacc.yy"
11300     { (yyval.item)= (yyvsp[(1) - (1)].item); }
11301     break;
11302 
11303   case 563:
11304 
11305 /* Line 1455 of yacc.c  */
11306 #line 3277 "drizzled/sql_yacc.yy"
11307     { (yyval.item)= NULL; }
11308     break;
11309 
11310   case 564:
11311 
11312 /* Line 1455 of yacc.c  */
11313 #line 3278 "drizzled/sql_yacc.yy"
11314     { (yyval.item)= (yyvsp[(2) - (2)].item); }
11315     break;
11316 
11317   case 565:
11318 
11319 /* Line 1455 of yacc.c  */
11320 #line 3283 "drizzled/sql_yacc.yy"
11321     {
11322             (yyval.item_list)= new List<Item>;
11323             (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
11324             (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
11325           }
11326     break;
11327 
11328   case 566:
11329 
11330 /* Line 1455 of yacc.c  */
11331 #line 3289 "drizzled/sql_yacc.yy"
11332     {
11333             (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
11334             (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
11335             (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
11336           }
11337     break;
11338 
11339   case 567:
11340 
11341 /* Line 1455 of yacc.c  */
11342 #line 3299 "drizzled/sql_yacc.yy"
11343     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11344     break;
11345 
11346   case 568:
11347 
11348 /* Line 1455 of yacc.c  */
11349 #line 3301 "drizzled/sql_yacc.yy"
11350     {
11351             if (!((yyval.table_list)= Lex.current_select->nest_last_join(Lex.session)))
11352               DRIZZLE_YYABORT;
11353           }
11354     break;
11355 
11356   case 569:
11357 
11358 /* Line 1455 of yacc.c  */
11359 #line 3308 "drizzled/sql_yacc.yy"
11360     { DRIZZLE_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
11361     break;
11362 
11363   case 570:
11364 
11365 /* Line 1455 of yacc.c  */
11366 #line 3319 "drizzled/sql_yacc.yy"
11367     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11368     break;
11369 
11370   case 571:
11371 
11372 /* Line 1455 of yacc.c  */
11373 #line 3320 "drizzled/sql_yacc.yy"
11374     { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
11375     break;
11376 
11377   case 572:
11378 
11379 /* Line 1455 of yacc.c  */
11380 #line 3326 "drizzled/sql_yacc.yy"
11381     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11382     break;
11383 
11384   case 573:
11385 
11386 /* Line 1455 of yacc.c  */
11387 #line 3328 "drizzled/sql_yacc.yy"
11388     {
11389             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11390           }
11391     break;
11392 
11393   case 574:
11394 
11395 /* Line 1455 of yacc.c  */
11396 #line 3348 "drizzled/sql_yacc.yy"
11397     {
11398             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11399             Lex.is_cross= false;
11400           }
11401     break;
11402 
11403   case 575:
11404 
11405 /* Line 1455 of yacc.c  */
11406 #line 3353 "drizzled/sql_yacc.yy"
11407     {
11408             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1;
11409           }
11410     break;
11411 
11412   case 576:
11413 
11414 /* Line 1455 of yacc.c  */
11415 #line 3358 "drizzled/sql_yacc.yy"
11416     {
11417             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11418             DRIZZLE_YYABORT_UNLESS( not Lex.is_cross );
11419             /* Change the current name resolution context to a local context. */
11420             if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
11421               DRIZZLE_YYABORT;
11422             Lex.current_select->parsing_place= IN_ON;
11423           }
11424     break;
11425 
11426   case 577:
11427 
11428 /* Line 1455 of yacc.c  */
11429 #line 3367 "drizzled/sql_yacc.yy"
11430     {
11431             add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11432             Lex.pop_context();
11433             Lex.current_select->parsing_place= NO_MATTER;
11434           }
11435     break;
11436 
11437   case 578:
11438 
11439 /* Line 1455 of yacc.c  */
11440 #line 3374 "drizzled/sql_yacc.yy"
11441     {
11442             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11443             /* Change the current name resolution context to a local context. */
11444             if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
11445               DRIZZLE_YYABORT;
11446             Lex.current_select->parsing_place= IN_ON;
11447           }
11448     break;
11449 
11450   case 579:
11451 
11452 /* Line 1455 of yacc.c  */
11453 #line 3382 "drizzled/sql_yacc.yy"
11454     {
11455             (yyvsp[(3) - (6)].table_list)->straight=1;
11456             add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11457             Lex.pop_context();
11458             Lex.current_select->parsing_place= NO_MATTER;
11459           }
11460     break;
11461 
11462   case 580:
11463 
11464 /* Line 1455 of yacc.c  */
11465 #line 3390 "drizzled/sql_yacc.yy"
11466     {
11467             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11468           }
11469     break;
11470 
11471   case 581:
11472 
11473 /* Line 1455 of yacc.c  */
11474 #line 3394 "drizzled/sql_yacc.yy"
11475     { 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); }
11476     break;
11477 
11478   case 582:
11479 
11480 /* Line 1455 of yacc.c  */
11481 #line 3396 "drizzled/sql_yacc.yy"
11482     {
11483             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
11484             add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Lex.current_select);
11485           }
11486     break;
11487 
11488   case 583:
11489 
11490 /* Line 1455 of yacc.c  */
11491 #line 3404 "drizzled/sql_yacc.yy"
11492     {
11493             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11494             /* Change the current name resolution context to a local context. */
11495             if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
11496               DRIZZLE_YYABORT;
11497             Lex.current_select->parsing_place= IN_ON;
11498           }
11499     break;
11500 
11501   case 584:
11502 
11503 /* Line 1455 of yacc.c  */
11504 #line 3412 "drizzled/sql_yacc.yy"
11505     {
11506             add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
11507             Lex.pop_context();
11508             (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11509             (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
11510             Lex.current_select->parsing_place= NO_MATTER;
11511           }
11512     break;
11513 
11514   case 585:
11515 
11516 /* Line 1455 of yacc.c  */
11517 #line 3420 "drizzled/sql_yacc.yy"
11518     {
11519             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11520           }
11521     break;
11522 
11523   case 586:
11524 
11525 /* Line 1455 of yacc.c  */
11526 #line 3424 "drizzled/sql_yacc.yy"
11527     {
11528             add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11529             (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11530             (yyval.table_list)=(yyvsp[(5) - (10)].table_list);
11531           }
11532     break;
11533 
11534   case 587:
11535 
11536 /* Line 1455 of yacc.c  */
11537 #line 3430 "drizzled/sql_yacc.yy"
11538     {
11539             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11540             add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Lex.current_select);
11541             (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11542             (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
11543           }
11544     break;
11545 
11546   case 588:
11547 
11548 /* Line 1455 of yacc.c  */
11549 #line 3440 "drizzled/sql_yacc.yy"
11550     {
11551             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11552             /* Change the current name resolution context to a local context. */
11553             if (push_new_name_resolution_context(YYSession, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
11554               DRIZZLE_YYABORT;
11555             Lex.current_select->parsing_place= IN_ON;
11556           }
11557     break;
11558 
11559   case 589:
11560 
11561 /* Line 1455 of yacc.c  */
11562 #line 3448 "drizzled/sql_yacc.yy"
11563     {
11564             if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11565               DRIZZLE_YYABORT;
11566             add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
11567             Lex.pop_context();
11568             Lex.current_select->parsing_place= NO_MATTER;
11569           }
11570     break;
11571 
11572   case 590:
11573 
11574 /* Line 1455 of yacc.c  */
11575 #line 3456 "drizzled/sql_yacc.yy"
11576     {
11577             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11578           }
11579     break;
11580 
11581   case 591:
11582 
11583 /* Line 1455 of yacc.c  */
11584 #line 3460 "drizzled/sql_yacc.yy"
11585     {
11586             if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11587               DRIZZLE_YYABORT;
11588             add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11589           }
11590     break;
11591 
11592   case 592:
11593 
11594 /* Line 1455 of yacc.c  */
11595 #line 3466 "drizzled/sql_yacc.yy"
11596     {
11597             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11598             add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Lex.current_select);
11599             if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11600               DRIZZLE_YYABORT;
11601           }
11602     break;
11603 
11604   case 593:
11605 
11606 /* Line 1455 of yacc.c  */
11607 #line 3475 "drizzled/sql_yacc.yy"
11608     {}
11609     break;
11610 
11611   case 594:
11612 
11613 /* Line 1455 of yacc.c  */
11614 #line 3476 "drizzled/sql_yacc.yy"
11615     {}
11616     break;
11617 
11618   case 595:
11619 
11620 /* Line 1455 of yacc.c  */
11621 #line 3478 "drizzled/sql_yacc.yy"
11622     {
11623             Lex.is_cross= true;
11624             Lex.current_select->is_cross= true;
11625           }
11626     break;
11627 
11628   case 596:
11629 
11630 /* Line 1455 of yacc.c  */
11631 #line 3493 "drizzled/sql_yacc.yy"
11632     {
11633           }
11634     break;
11635 
11636   case 597:
11637 
11638 /* Line 1455 of yacc.c  */
11639 #line 3496 "drizzled/sql_yacc.yy"
11640     {
11641             if (!((yyval.table_list)= Lex.current_select->add_table_to_list(YYSession, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
11642                              0,
11643                              Lex.lock_option,
11644                              Lex.current_select->pop_index_hints())))
11645               DRIZZLE_YYABORT;
11646             Lex.current_select->add_joined_table((yyval.table_list));
11647           }
11648     break;
11649 
11650   case 598:
11651 
11652 /* Line 1455 of yacc.c  */
11653 #line 3505 "drizzled/sql_yacc.yy"
11654     {
11655             Select_Lex *sel= Lex.current_select;
11656             if ((yyvsp[(1) - (3)].num))
11657             {
11658               if (sel->set_braces(1))
11659               {
11660                 parser::my_parse_error(YYSession->m_lip);
11661                 DRIZZLE_YYABORT;
11662               }
11663               /* select in braces, can't contain global parameters */
11664               if (sel->master_unit()->fake_select_lex)
11665                 sel->master_unit()->global_parameters=
11666                    sel->master_unit()->fake_select_lex;
11667             }
11668             if ((yyvsp[(2) - (3)].select_lex)->init_nested_join(Lex.session))
11669               DRIZZLE_YYABORT;
11670             (yyval.table_list)= 0;
11671             /* incomplete derived tables return NULL, we must be
11672                nested in select_derived rule to be here. */
11673           }
11674     break;
11675 
11676   case 599:
11677 
11678 /* Line 1455 of yacc.c  */
11679 #line 3544 "drizzled/sql_yacc.yy"
11680     {
11681             /* Use $2 instead of Lex.current_select as derived table will
11682                alter value of Lex.current_select. */
11683             if (!((yyvsp[(3) - (5)].table_list) || (yyvsp[(5) - (5)].lex_str_ptr)) && (yyvsp[(2) - (5)].select_lex)->embedding &&
11684                 !(yyvsp[(2) - (5)].select_lex)->embedding->getNestedJoin()->join_list.size())
11685             {
11686               /* we have a derived table ($3 == NULL) but no alias,
11687                  Since we are nested in further parentheses so we
11688                  can pass NULL to the outer level parentheses
11689                  Permits parsing of "((((select ...))) as xyz)" */
11690               (yyval.table_list)= 0;
11691             }
11692             else if (!(yyvsp[(3) - (5)].table_list))
11693             {
11694               /* Handle case of derived table, alias may be NULL if there
11695                  are no outer parentheses, add_table_to_list() will throw
11696                  error in this case */
11697               Select_Lex *sel= Lex.current_select;
11698               Select_Lex_Unit *unit= sel->master_unit();
11699               Lex.current_select= sel= unit->outer_select();
11700               if (!((yyval.table_list)= sel->add_table_to_list(Lex.session,
11701                                                new Table_ident(unit), (yyvsp[(5) - (5)].lex_str_ptr), 0,
11702                                                TL_READ)))
11703 
11704                 DRIZZLE_YYABORT;
11705               sel->add_joined_table((yyval.table_list));
11706               Lex.pop_context();
11707             }
11708             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))
11709             {
11710               /* simple nested joins cannot have aliases or unions */
11711               parser::my_parse_error(YYSession->m_lip);
11712               DRIZZLE_YYABORT;
11713             }
11714             else
11715               (yyval.table_list)= (yyvsp[(3) - (5)].table_list);
11716           }
11717     break;
11718 
11719   case 601:
11720 
11721 /* Line 1455 of yacc.c  */
11722 #line 3588 "drizzled/sql_yacc.yy"
11723     {
11724             if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
11725               DRIZZLE_YYABORT;
11726           }
11727     break;
11728 
11729   case 602:
11730 
11731 /* Line 1455 of yacc.c  */
11732 #line 3593 "drizzled/sql_yacc.yy"
11733     {
11734             /*
11735               Remove from the name resolution context stack the context of the
11736               last select in the union.
11737              */
11738             Lex.pop_context();
11739           }
11740     break;
11741 
11742   case 604:
11743 
11744 /* Line 1455 of yacc.c  */
11745 #line 3606 "drizzled/sql_yacc.yy"
11746     {
11747             Select_Lex * sel= Lex.current_select;
11748             if (Lex.current_select->set_braces(0))
11749             {
11750               parser::my_parse_error(YYSession->m_lip);
11751               DRIZZLE_YYABORT;
11752             }
11753             if (sel->linkage == UNION_TYPE &&
11754                 sel->master_unit()->first_select()->braces)
11755             {
11756               parser::my_parse_error(YYSession->m_lip);
11757               DRIZZLE_YYABORT;
11758             }
11759           }
11760     break;
11761 
11762   case 605:
11763 
11764 /* Line 1455 of yacc.c  */
11765 #line 3624 "drizzled/sql_yacc.yy"
11766     {
11767             Select_Lex *sel= Lex.current_select;
11768             if (sel->linkage != UNION_TYPE)
11769               init_select(&Lex);
11770             Lex.current_select->parsing_place= SELECT_LIST;
11771           }
11772     break;
11773 
11774   case 606:
11775 
11776 /* Line 1455 of yacc.c  */
11777 #line 3631 "drizzled/sql_yacc.yy"
11778     {
11779             Lex.current_select->parsing_place= NO_MATTER;
11780           }
11781     break;
11782 
11783   case 608:
11784 
11785 /* Line 1455 of yacc.c  */
11786 #line 3640 "drizzled/sql_yacc.yy"
11787     {
11788             if ((yyvsp[(1) - (1)].select_lex)->init_nested_join(Lex.session))
11789               DRIZZLE_YYABORT;
11790           }
11791     break;
11792 
11793   case 609:
11794 
11795 /* Line 1455 of yacc.c  */
11796 #line 3645 "drizzled/sql_yacc.yy"
11797     {
11798             /* for normal joins, $3 != NULL and end_nested_join() != NULL,
11799                for derived tables, both must equal NULL */
11800 
11801             if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join(Lex.session)) && (yyvsp[(3) - (3)].table_list))
11802               DRIZZLE_YYABORT;
11803 
11804             if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
11805             {
11806               parser::my_parse_error(YYSession->m_lip);
11807               DRIZZLE_YYABORT;
11808             }
11809           }
11810     break;
11811 
11812   case 610:
11813 
11814 /* Line 1455 of yacc.c  */
11815 #line 3661 "drizzled/sql_yacc.yy"
11816     {
11817             Lex.derived_tables|= DERIVED_SUBQUERY;
11818             if (not Lex.expr_allows_subselect)
11819             {
11820               parser::my_parse_error(YYSession->m_lip);
11821               DRIZZLE_YYABORT;
11822             }
11823             if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE || new_select(&Lex, 1))
11824               DRIZZLE_YYABORT;
11825             init_select(&Lex);
11826             Lex.current_select->linkage= DERIVED_TABLE_TYPE;
11827             Lex.current_select->parsing_place= SELECT_LIST;
11828           }
11829     break;
11830 
11831   case 611:
11832 
11833 /* Line 1455 of yacc.c  */
11834 #line 3675 "drizzled/sql_yacc.yy"
11835     {
11836             Lex.current_select->parsing_place= NO_MATTER;
11837           }
11838     break;
11839 
11840   case 613:
11841 
11842 /* Line 1455 of yacc.c  */
11843 #line 3682 "drizzled/sql_yacc.yy"
11844     { (yyval.select_lex)= Lex.current_select; }
11845     break;
11846 
11847   case 614:
11848 
11849 /* Line 1455 of yacc.c  */
11850 #line 3687 "drizzled/sql_yacc.yy"
11851     {
11852             Select_Lex *sel= Lex.current_select;
11853             TableList *embedding;
11854             if (!sel->embedding || sel->end_nested_join(Lex.session))
11855             {
11856               /* we are not in parentheses */
11857               parser::my_parse_error(YYSession->m_lip);
11858               DRIZZLE_YYABORT;
11859             }
11860             embedding= Lex.current_select->embedding;
11861             (yyval.num)= embedding &&
11862                 !embedding->getNestedJoin()->join_list.size();
11863             /* return true if we are deeply nested */
11864           }
11865     break;
11866 
11867   case 615:
11868 
11869 /* Line 1455 of yacc.c  */
11870 #line 3704 "drizzled/sql_yacc.yy"
11871     {}
11872     break;
11873 
11874   case 616:
11875 
11876 /* Line 1455 of yacc.c  */
11877 #line 3705 "drizzled/sql_yacc.yy"
11878     {}
11879     break;
11880 
11881   case 617:
11882 
11883 /* Line 1455 of yacc.c  */
11884 #line 3710 "drizzled/sql_yacc.yy"
11885     {
11886             (yyval.num)= INDEX_HINT_MASK_ALL;
11887           }
11888     break;
11889 
11890   case 618:
11891 
11892 /* Line 1455 of yacc.c  */
11893 #line 3713 "drizzled/sql_yacc.yy"
11894     { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
11895     break;
11896 
11897   case 619:
11898 
11899 /* Line 1455 of yacc.c  */
11900 #line 3714 "drizzled/sql_yacc.yy"
11901     { (yyval.num)= INDEX_HINT_MASK_ORDER; }
11902     break;
11903 
11904   case 620:
11905 
11906 /* Line 1455 of yacc.c  */
11907 #line 3715 "drizzled/sql_yacc.yy"
11908     { (yyval.num)= INDEX_HINT_MASK_GROUP; }
11909     break;
11910 
11911   case 621:
11912 
11913 /* Line 1455 of yacc.c  */
11914 #line 3719 "drizzled/sql_yacc.yy"
11915     { (yyval.index_hint)= INDEX_HINT_FORCE; }
11916     break;
11917 
11918   case 622:
11919 
11920 /* Line 1455 of yacc.c  */
11921 #line 3720 "drizzled/sql_yacc.yy"
11922     { (yyval.index_hint)= INDEX_HINT_IGNORE; }
11923     break;
11924 
11925   case 623:
11926 
11927 /* Line 1455 of yacc.c  */
11928 #line 3725 "drizzled/sql_yacc.yy"
11929     {
11930             Lex.current_select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
11931           }
11932     break;
11933 
11934   case 625:
11935 
11936 /* Line 1455 of yacc.c  */
11937 #line 3730 "drizzled/sql_yacc.yy"
11938     {
11939             Lex.current_select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
11940           }
11941     break;
11942 
11943   case 630:
11944 
11945 /* Line 1455 of yacc.c  */
11946 #line 3743 "drizzled/sql_yacc.yy"
11947     { Lex.current_select->alloc_index_hints(YYSession); }
11948     break;
11949 
11950   case 632:
11951 
11952 /* Line 1455 of yacc.c  */
11953 #line 3747 "drizzled/sql_yacc.yy"
11954     {  Lex.current_select->clear_index_hints(); }
11955     break;
11956 
11957   case 634:
11958 
11959 /* Line 1455 of yacc.c  */
11960 #line 3752 "drizzled/sql_yacc.yy"
11961     { Lex.current_select->add_index_hint(YYSession, NULL, 0); }
11962     break;
11963 
11964   case 635:
11965 
11966 /* Line 1455 of yacc.c  */
11967 #line 3753 "drizzled/sql_yacc.yy"
11968     {}
11969     break;
11970 
11971   case 636:
11972 
11973 /* Line 1455 of yacc.c  */
11974 #line 3758 "drizzled/sql_yacc.yy"
11975     { Lex.current_select->add_index_hint(YYSession, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
11976     break;
11977 
11978   case 637:
11979 
11980 /* Line 1455 of yacc.c  */
11981 #line 3760 "drizzled/sql_yacc.yy"
11982     { Lex.current_select->add_index_hint(YYSession, (char *)"PRIMARY", 7); }
11983     break;
11984 
11985   case 640:
11986 
11987 /* Line 1455 of yacc.c  */
11988 #line 3770 "drizzled/sql_yacc.yy"
11989     {
11990             if (!((yyval.string_list)= new List<String>))
11991               DRIZZLE_YYABORT;
11992             (yyval.string_list)->push_back(new (YYSession->mem_root)
11993                               String((const char *) (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
11994                                       system_charset_info));
11995           }
11996     break;
11997 
11998   case 641:
11999 
12000 /* Line 1455 of yacc.c  */
12001 #line 3778 "drizzled/sql_yacc.yy"
12002     {
12003             (yyvsp[(1) - (3)].string_list)->push_back(new (YYSession->mem_root)
12004                               String((const char *) (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length,
12005                                       system_charset_info));
12006             (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
12007           }
12008     break;
12009 
12010   case 642:
12011 
12012 /* Line 1455 of yacc.c  */
12013 #line 3787 "drizzled/sql_yacc.yy"
12014     {}
12015     break;
12016 
12017   case 643:
12018 
12019 /* Line 1455 of yacc.c  */
12020 #line 3788 "drizzled/sql_yacc.yy"
12021     { (yyval.interval)=INTERVAL_DAY_HOUR; }
12022     break;
12023 
12024   case 644:
12025 
12026 /* Line 1455 of yacc.c  */
12027 #line 3789 "drizzled/sql_yacc.yy"
12028     { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
12029     break;
12030 
12031   case 645:
12032 
12033 /* Line 1455 of yacc.c  */
12034 #line 3790 "drizzled/sql_yacc.yy"
12035     { (yyval.interval)=INTERVAL_DAY_MINUTE; }
12036     break;
12037 
12038   case 646:
12039 
12040 /* Line 1455 of yacc.c  */
12041 #line 3791 "drizzled/sql_yacc.yy"
12042     { (yyval.interval)=INTERVAL_DAY_SECOND; }
12043     break;
12044 
12045   case 647:
12046 
12047 /* Line 1455 of yacc.c  */
12048 #line 3792 "drizzled/sql_yacc.yy"
12049     { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
12050     break;
12051 
12052   case 648:
12053 
12054 /* Line 1455 of yacc.c  */
12055 #line 3793 "drizzled/sql_yacc.yy"
12056     { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
12057     break;
12058 
12059   case 649:
12060 
12061 /* Line 1455 of yacc.c  */
12062 #line 3794 "drizzled/sql_yacc.yy"
12063     { (yyval.interval)=INTERVAL_HOUR_SECOND; }
12064     break;
12065 
12066   case 650:
12067 
12068 /* Line 1455 of yacc.c  */
12069 #line 3795 "drizzled/sql_yacc.yy"
12070     { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
12071     break;
12072 
12073   case 651:
12074 
12075 /* Line 1455 of yacc.c  */
12076 #line 3796 "drizzled/sql_yacc.yy"
12077     { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
12078     break;
12079 
12080   case 652:
12081 
12082 /* Line 1455 of yacc.c  */
12083 #line 3797 "drizzled/sql_yacc.yy"
12084     { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
12085     break;
12086 
12087   case 653:
12088 
12089 /* Line 1455 of yacc.c  */
12090 #line 3798 "drizzled/sql_yacc.yy"
12091     { (yyval.interval)=INTERVAL_YEAR_MONTH; }
12092     break;
12093 
12094   case 654:
12095 
12096 /* Line 1455 of yacc.c  */
12097 #line 3802 "drizzled/sql_yacc.yy"
12098     {}
12099     break;
12100 
12101   case 655:
12102 
12103 /* Line 1455 of yacc.c  */
12104 #line 3803 "drizzled/sql_yacc.yy"
12105     {
12106                                   (yyval.interval_time_st)=INTERVAL_MICROSECOND;
12107                                   /*
12108                                     FRAC_SECOND was mistakenly implemented with
12109                                     a wrong resolution. According to the ODBC
12110                                     standard it should be nanoseconds, not
12111                                     microseconds. Changing it to nanoseconds
12112                                     in MySQL would mean making TIMESTAMPDIFF
12113                                     and TIMESTAMPADD to return DECIMAL, since
12114                                     the return value would be too big for BIGINT
12115                                     Hence we just deprecate the incorrect
12116                                     implementation without changing its
12117                                     resolution.
12118                                   */
12119                                 }
12120     break;
12121 
12122   case 656:
12123 
12124 /* Line 1455 of yacc.c  */
12125 #line 3821 "drizzled/sql_yacc.yy"
12126     { (yyval.interval_time_st)=INTERVAL_DAY; }
12127     break;
12128 
12129   case 657:
12130 
12131 /* Line 1455 of yacc.c  */
12132 #line 3822 "drizzled/sql_yacc.yy"
12133     { (yyval.interval_time_st)=INTERVAL_WEEK; }
12134     break;
12135 
12136   case 658:
12137 
12138 /* Line 1455 of yacc.c  */
12139 #line 3823 "drizzled/sql_yacc.yy"
12140     { (yyval.interval_time_st)=INTERVAL_HOUR; }
12141     break;
12142 
12143   case 659:
12144 
12145 /* Line 1455 of yacc.c  */
12146 #line 3824 "drizzled/sql_yacc.yy"
12147     { (yyval.interval_time_st)=INTERVAL_MINUTE; }
12148     break;
12149 
12150   case 660:
12151 
12152 /* Line 1455 of yacc.c  */
12153 #line 3825 "drizzled/sql_yacc.yy"
12154     { (yyval.interval_time_st)=INTERVAL_MONTH; }
12155     break;
12156 
12157   case 661:
12158 
12159 /* Line 1455 of yacc.c  */
12160 #line 3826 "drizzled/sql_yacc.yy"
12161     { (yyval.interval_time_st)=INTERVAL_QUARTER; }
12162     break;
12163 
12164   case 662:
12165 
12166 /* Line 1455 of yacc.c  */
12167 #line 3827 "drizzled/sql_yacc.yy"
12168     { (yyval.interval_time_st)=INTERVAL_SECOND; }
12169     break;
12170 
12171   case 663:
12172 
12173 /* Line 1455 of yacc.c  */
12174 #line 3828 "drizzled/sql_yacc.yy"
12175     { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
12176     break;
12177 
12178   case 664:
12179 
12180 /* Line 1455 of yacc.c  */
12181 #line 3829 "drizzled/sql_yacc.yy"
12182     { (yyval.interval_time_st)=INTERVAL_YEAR; }
12183     break;
12184 
12185   case 667:
12186 
12187 /* Line 1455 of yacc.c  */
12188 #line 3838 "drizzled/sql_yacc.yy"
12189     { (yyval.lex_str_ptr)=0; }
12190     break;
12191 
12192   case 668:
12193 
12194 /* Line 1455 of yacc.c  */
12195 #line 3840 "drizzled/sql_yacc.yy"
12196     {
12197             (yyval.lex_str_ptr)= (drizzled::LEX_STRING*) memory::sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(drizzled::LEX_STRING));
12198           }
12199     break;
12200 
12201   case 671:
12202 
12203 /* Line 1455 of yacc.c  */
12204 #line 3851 "drizzled/sql_yacc.yy"
12205     { Lex.current_select->where= 0; }
12206     break;
12207 
12208   case 672:
12209 
12210 /* Line 1455 of yacc.c  */
12211 #line 3853 "drizzled/sql_yacc.yy"
12212     {
12213             Lex.current_select->parsing_place= IN_WHERE;
12214           }
12215     break;
12216 
12217   case 673:
12218 
12219 /* Line 1455 of yacc.c  */
12220 #line 3857 "drizzled/sql_yacc.yy"
12221     {
12222             Select_Lex *select= Lex.current_select;
12223             select->where= (yyvsp[(3) - (3)].item);
12224             select->parsing_place= NO_MATTER;
12225             if ((yyvsp[(3) - (3)].item))
12226               (yyvsp[(3) - (3)].item)->top_level_item();
12227           }
12228     break;
12229 
12230   case 675:
12231 
12232 /* Line 1455 of yacc.c  */
12233 #line 3869 "drizzled/sql_yacc.yy"
12234     {
12235             Lex.current_select->parsing_place= IN_HAVING;
12236           }
12237     break;
12238 
12239   case 676:
12240 
12241 /* Line 1455 of yacc.c  */
12242 #line 3873 "drizzled/sql_yacc.yy"
12243     {
12244             Select_Lex *sel= Lex.current_select;
12245             sel->having= (yyvsp[(3) - (3)].item);
12246             sel->parsing_place= NO_MATTER;
12247             if ((yyvsp[(3) - (3)].item))
12248               (yyvsp[(3) - (3)].item)->top_level_item();
12249           }
12250     break;
12251 
12252   case 677:
12253 
12254 /* Line 1455 of yacc.c  */
12255 #line 3884 "drizzled/sql_yacc.yy"
12256     {
12257             Lex.escape_used= true;
12258             (yyval.item)= (yyvsp[(2) - (2)].item);
12259           }
12260     break;
12261 
12262   case 678:
12263 
12264 /* Line 1455 of yacc.c  */
12265 #line 3889 "drizzled/sql_yacc.yy"
12266     {
12267             Lex.escape_used= false;
12268             (yyval.item)= new Item_string("\\", 1, &my_charset_utf8_general_ci);
12269           }
12270     break;
12271 
12272   case 681:
12273 
12274 /* Line 1455 of yacc.c  */
12275 #line 3906 "drizzled/sql_yacc.yy"
12276     { if (YYSession->add_group_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) DRIZZLE_YYABORT; }
12277     break;
12278 
12279   case 682:
12280 
12281 /* Line 1455 of yacc.c  */
12282 #line 3908 "drizzled/sql_yacc.yy"
12283     { if (YYSession->add_group_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) DRIZZLE_YYABORT; }
12284     break;
12285 
12286   case 683:
12287 
12288 /* Line 1455 of yacc.c  */
12289 #line 3912 "drizzled/sql_yacc.yy"
12290     {}
12291     break;
12292 
12293   case 684:
12294 
12295 /* Line 1455 of yacc.c  */
12296 #line 3914 "drizzled/sql_yacc.yy"
12297     {
12298             /*
12299               'WITH ROLLUP' is needed for backward compatibility,
12300               and cause LALR(2) conflicts.
12301               This syntax is not standard.
12302               MySQL syntax: GROUP BY col1, col2, col3 WITH ROLLUP
12303               SQL-2003: GROUP BY ... ROLLUP(col1, col2, col3)
12304             */
12305             if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE)
12306             {
12307               my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
12308                        "global union parameters");
12309               DRIZZLE_YYABORT;
12310             }
12311             Lex.current_select->olap= ROLLUP_TYPE;
12312           }
12313     break;
12314 
12315   case 688:
12316 
12317 /* Line 1455 of yacc.c  */
12318 #line 3947 "drizzled/sql_yacc.yy"
12319     {
12320             bool ascending= ((yyvsp[(2) - (2)].num) == 1) ? true : false;
12321             if (YYSession->add_order_to_list((yyvsp[(1) - (2)].item), ascending))
12322               DRIZZLE_YYABORT;
12323           }
12324     break;
12325 
12326   case 691:
12327 
12328 /* Line 1455 of yacc.c  */
12329 #line 3965 "drizzled/sql_yacc.yy"
12330     {
12331             if (not parser::buildOrderBy(&Lex))
12332               DRIZZLE_YYABORT;
12333           }
12334     break;
12335 
12336   case 693:
12337 
12338 /* Line 1455 of yacc.c  */
12339 #line 3974 "drizzled/sql_yacc.yy"
12340     {
12341             if (YYSession->add_order_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num)))
12342               DRIZZLE_YYABORT;
12343           }
12344     break;
12345 
12346   case 694:
12347 
12348 /* Line 1455 of yacc.c  */
12349 #line 3979 "drizzled/sql_yacc.yy"
12350     {
12351             if (YYSession->add_order_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num)))
12352               DRIZZLE_YYABORT;
12353           }
12354     break;
12355 
12356   case 695:
12357 
12358 /* Line 1455 of yacc.c  */
12359 #line 3986 "drizzled/sql_yacc.yy"
12360     { (yyval.num) =  1; }
12361     break;
12362 
12363   case 696:
12364 
12365 /* Line 1455 of yacc.c  */
12366 #line 3987 "drizzled/sql_yacc.yy"
12367     { (yyval.num) =1; }
12368     break;
12369 
12370   case 697:
12371 
12372 /* Line 1455 of yacc.c  */
12373 #line 3988 "drizzled/sql_yacc.yy"
12374     { (yyval.num) =0; }
12375     break;
12376 
12377   case 698:
12378 
12379 /* Line 1455 of yacc.c  */
12380 #line 3993 "drizzled/sql_yacc.yy"
12381     {
12382             Select_Lex *sel= Lex.current_select;
12383             sel->offset_limit= 0;
12384             sel->select_limit= 0;
12385           }
12386     break;
12387 
12388   case 699:
12389 
12390 /* Line 1455 of yacc.c  */
12391 #line 3998 "drizzled/sql_yacc.yy"
12392     {}
12393     break;
12394 
12395   case 700:
12396 
12397 /* Line 1455 of yacc.c  */
12398 #line 4002 "drizzled/sql_yacc.yy"
12399     {}
12400     break;
12401 
12402   case 701:
12403 
12404 /* Line 1455 of yacc.c  */
12405 #line 4003 "drizzled/sql_yacc.yy"
12406     {}
12407     break;
12408 
12409   case 702:
12410 
12411 /* Line 1455 of yacc.c  */
12412 #line 4007 "drizzled/sql_yacc.yy"
12413     {}
12414     break;
12415 
12416   case 703:
12417 
12418 /* Line 1455 of yacc.c  */
12419 #line 4012 "drizzled/sql_yacc.yy"
12420     {
12421             Select_Lex *sel= Lex.current_select;
12422             sel->select_limit= (yyvsp[(1) - (1)].item);
12423             sel->offset_limit= 0;
12424             sel->explicit_limit= 1;
12425           }
12426     break;
12427 
12428   case 704:
12429 
12430 /* Line 1455 of yacc.c  */
12431 #line 4019 "drizzled/sql_yacc.yy"
12432     {
12433             Select_Lex *sel= Lex.current_select;
12434             sel->select_limit= (yyvsp[(3) - (3)].item);
12435             sel->offset_limit= (yyvsp[(1) - (3)].item);
12436             sel->explicit_limit= 1;
12437           }
12438     break;
12439 
12440   case 705:
12441 
12442 /* Line 1455 of yacc.c  */
12443 #line 4026 "drizzled/sql_yacc.yy"
12444     {
12445             Select_Lex *sel= Lex.current_select;
12446             sel->select_limit= (yyvsp[(1) - (3)].item);
12447             sel->offset_limit= (yyvsp[(3) - (3)].item);
12448             sel->explicit_limit= 1;
12449           }
12450     break;
12451 
12452   case 706:
12453 
12454 /* Line 1455 of yacc.c  */
12455 #line 4035 "drizzled/sql_yacc.yy"
12456     { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
12457     break;
12458 
12459   case 707:
12460 
12461 /* Line 1455 of yacc.c  */
12462 #line 4036 "drizzled/sql_yacc.yy"
12463     { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
12464     break;
12465 
12466   case 708:
12467 
12468 /* Line 1455 of yacc.c  */
12469 #line 4037 "drizzled/sql_yacc.yy"
12470     { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
12471     break;
12472 
12473   case 709:
12474 
12475 /* Line 1455 of yacc.c  */
12476 #line 4042 "drizzled/sql_yacc.yy"
12477     {
12478             Lex.current_select->select_limit= 0;
12479           }
12480     break;
12481 
12482   case 710:
12483 
12484 /* Line 1455 of yacc.c  */
12485 #line 4046 "drizzled/sql_yacc.yy"
12486     {
12487             Select_Lex *sel= Lex.current_select;
12488             sel->select_limit= (yyvsp[(2) - (2)].item);
12489             sel->explicit_limit= 1;
12490           }
12491     break;
12492 
12493   case 711:
12494 
12495 /* Line 1455 of yacc.c  */
12496 #line 4054 "drizzled/sql_yacc.yy"
12497     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12498     break;
12499 
12500   case 712:
12501 
12502 /* Line 1455 of yacc.c  */
12503 #line 4055 "drizzled/sql_yacc.yy"
12504     { (yyval.ulong_num)= (unsigned long) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
12505     break;
12506 
12507   case 713:
12508 
12509 /* Line 1455 of yacc.c  */
12510 #line 4056 "drizzled/sql_yacc.yy"
12511     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12512     break;
12513 
12514   case 714:
12515 
12516 /* Line 1455 of yacc.c  */
12517 #line 4057 "drizzled/sql_yacc.yy"
12518     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12519     break;
12520 
12521   case 715:
12522 
12523 /* Line 1455 of yacc.c  */
12524 #line 4058 "drizzled/sql_yacc.yy"
12525     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12526     break;
12527 
12528   case 716:
12529 
12530 /* Line 1455 of yacc.c  */
12531 #line 4059 "drizzled/sql_yacc.yy"
12532     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12533     break;
12534 
12535   case 717:
12536 
12537 /* Line 1455 of yacc.c  */
12538 #line 4063 "drizzled/sql_yacc.yy"
12539     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12540     break;
12541 
12542   case 718:
12543 
12544 /* Line 1455 of yacc.c  */
12545 #line 4064 "drizzled/sql_yacc.yy"
12546     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12547     break;
12548 
12549   case 719:
12550 
12551 /* Line 1455 of yacc.c  */
12552 #line 4065 "drizzled/sql_yacc.yy"
12553     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12554     break;
12555 
12556   case 720:
12557 
12558 /* Line 1455 of yacc.c  */
12559 #line 4066 "drizzled/sql_yacc.yy"
12560     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12561     break;
12562 
12563   case 721:
12564 
12565 /* Line 1455 of yacc.c  */
12566 #line 4067 "drizzled/sql_yacc.yy"
12567     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
12568     break;
12569 
12570   case 722:
12571 
12572 /* Line 1455 of yacc.c  */
12573 #line 4071 "drizzled/sql_yacc.yy"
12574     {
12575             if (not Lex.describe && (not (Lex.result= new select_dumpvar())))
12576               DRIZZLE_YYABORT;
12577           }
12578     break;
12579 
12580   case 723:
12581 
12582 /* Line 1455 of yacc.c  */
12583 #line 4076 "drizzled/sql_yacc.yy"
12584     {}
12585     break;
12586 
12587   case 725:
12588 
12589 /* Line 1455 of yacc.c  */
12590 #line 4081 "drizzled/sql_yacc.yy"
12591     {}
12592     break;
12593 
12594   case 726:
12595 
12596 /* Line 1455 of yacc.c  */
12597 #line 4086 "drizzled/sql_yacc.yy"
12598     {
12599             if (Lex.result)
12600             {
12601               ((select_dumpvar *)Lex.result)->var_list.push_back( new var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0));
12602             }
12603             else
12604             {
12605               /*
12606                 The parser won't create select_result instance only
12607                 if it's an EXPLAIN.
12608               */
12609               assert(Lex.describe);
12610             }
12611           }
12612     break;
12613 
12614   case 727:
12615 
12616 /* Line 1455 of yacc.c  */
12617 #line 4104 "drizzled/sql_yacc.yy"
12618     { }
12619     break;
12620 
12621   case 729:
12622 
12623 /* Line 1455 of yacc.c  */
12624 #line 4110 "drizzled/sql_yacc.yy"
12625     {
12626             Lex.setCacheable(false);
12627             if (!(Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).str, 0)) ||
12628                 !(Lex.result= new select_export(Lex.exchange)))
12629               DRIZZLE_YYABORT;
12630           }
12631     break;
12632 
12633   case 731:
12634 
12635 /* Line 1455 of yacc.c  */
12636 #line 4118 "drizzled/sql_yacc.yy"
12637     {
12638             if (not Lex.describe)
12639             {
12640               Lex.setCacheable(false);
12641               if (not (Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).str,1)))
12642                 DRIZZLE_YYABORT;
12643               if (not (Lex.result= new select_dump(Lex.exchange)))
12644                 DRIZZLE_YYABORT;
12645             }
12646           }
12647     break;
12648 
12649   case 732:
12650 
12651 /* Line 1455 of yacc.c  */
12652 #line 4129 "drizzled/sql_yacc.yy"
12653     {Lex.setCacheable(false);}
12654     break;
12655 
12656   case 733:
12657 
12658 /* Line 1455 of yacc.c  */
12659 #line 4138 "drizzled/sql_yacc.yy"
12660     {
12661             Lex.statement= new statement::catalog::Drop(YYSession, (yyvsp[(3) - (3)].lex_str));
12662           }
12663     break;
12664 
12665   case 734:
12666 
12667 /* Line 1455 of yacc.c  */
12668 #line 4142 "drizzled/sql_yacc.yy"
12669     {
12670             statement::DropTable *statement= new statement::DropTable(YYSession);
12671             Lex.statement= statement;
12672             statement->drop_temporary= (yyvsp[(2) - (5)].boolean);
12673             statement->drop_if_exists= (yyvsp[(4) - (5)].boolean);
12674           }
12675     break;
12676 
12677   case 735:
12678 
12679 /* Line 1455 of yacc.c  */
12680 #line 4148 "drizzled/sql_yacc.yy"
12681     {}
12682     break;
12683 
12684   case 736:
12685 
12686 /* Line 1455 of yacc.c  */
12687 #line 4149 "drizzled/sql_yacc.yy"
12688     {
12689             statement::DropIndex *statement= new statement::DropIndex(YYSession);
12690             Lex.statement= statement;
12691             statement->alter_info.flags.set(ALTER_DROP_INDEX);
12692             statement->alter_info.build_method= (yyvsp[(2) - (7)].build_method);
12693             statement->alter_info.drop_list.push_back(AlterDrop(AlterDrop::KEY, (yyvsp[(4) - (7)].lex_str).str));
12694             if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(6) - (7)].table), NULL,
12695                                                           TL_OPTION_UPDATING))
12696               DRIZZLE_YYABORT;
12697           }
12698     break;
12699 
12700   case 737:
12701 
12702 /* Line 1455 of yacc.c  */
12703 #line 4160 "drizzled/sql_yacc.yy"
12704     {
12705             statement::DropSchema *statement= new statement::DropSchema(YYSession);
12706             Lex.statement= statement;
12707             statement->drop_if_exists=(yyvsp[(3) - (4)].boolean);
12708             Lex.name= (yyvsp[(4) - (4)].lex_str);
12709           }
12710     break;
12711 
12712   case 740:
12713 
12714 /* Line 1455 of yacc.c  */
12715 #line 4175 "drizzled/sql_yacc.yy"
12716     {
12717             if (!Lex.current_select->add_table_to_list(YYSession, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
12718               DRIZZLE_YYABORT;
12719           }
12720     break;
12721 
12722   case 741:
12723 
12724 /* Line 1455 of yacc.c  */
12725 #line 4182 "drizzled/sql_yacc.yy"
12726     { (yyval.boolean)= false; }
12727     break;
12728 
12729   case 742:
12730 
12731 /* Line 1455 of yacc.c  */
12732 #line 4183 "drizzled/sql_yacc.yy"
12733     { (yyval.boolean)= true; }
12734     break;
12735 
12736   case 743:
12737 
12738 /* Line 1455 of yacc.c  */
12739 #line 4187 "drizzled/sql_yacc.yy"
12740     { (yyval.boolean)= false; }
12741     break;
12742 
12743   case 744:
12744 
12745 /* Line 1455 of yacc.c  */
12746 #line 4188 "drizzled/sql_yacc.yy"
12747     { (yyval.boolean)= true; }
12748     break;
12749 
12750   case 745:
12751 
12752 /* Line 1455 of yacc.c  */
12753 #line 4197 "drizzled/sql_yacc.yy"
12754     {
12755           Lex.statement= new statement::Execute(YYSession, (yyvsp[(2) - (5)].execute_string), (yyvsp[(3) - (5)].boolean), (yyvsp[(4) - (5)].boolean), (yyvsp[(5) - (5)].boolean));
12756         }
12757     break;
12758 
12759   case 746:
12760 
12761 /* Line 1455 of yacc.c  */
12762 #line 4204 "drizzled/sql_yacc.yy"
12763     {
12764             (yyval.execute_string).set((yyvsp[(1) - (1)].lex_str));
12765          }
12766     break;
12767 
12768   case 747:
12769 
12770 /* Line 1455 of yacc.c  */
12771 #line 4208 "drizzled/sql_yacc.yy"
12772     {
12773             (yyval.execute_string).set((yyvsp[(2) - (2)].lex_str), true);
12774         }
12775     break;
12776 
12777   case 748:
12778 
12779 /* Line 1455 of yacc.c  */
12780 #line 4213 "drizzled/sql_yacc.yy"
12781     { (yyval.boolean)= false; }
12782     break;
12783 
12784   case 749:
12785 
12786 /* Line 1455 of yacc.c  */
12787 #line 4214 "drizzled/sql_yacc.yy"
12788     { (yyval.boolean)= true; }
12789     break;
12790 
12791   case 750:
12792 
12793 /* Line 1455 of yacc.c  */
12794 #line 4218 "drizzled/sql_yacc.yy"
12795     { (yyval.boolean)= false; }
12796     break;
12797 
12798   case 751:
12799 
12800 /* Line 1455 of yacc.c  */
12801 #line 4219 "drizzled/sql_yacc.yy"
12802     { (yyval.boolean)= true; }
12803     break;
12804 
12805   case 752:
12806 
12807 /* Line 1455 of yacc.c  */
12808 #line 4223 "drizzled/sql_yacc.yy"
12809     { (yyval.boolean)= false; }
12810     break;
12811 
12812   case 753:
12813 
12814 /* Line 1455 of yacc.c  */
12815 #line 4224 "drizzled/sql_yacc.yy"
12816     { (yyval.boolean)= true; }
12817     break;
12818 
12819   case 754:
12820 
12821 /* Line 1455 of yacc.c  */
12822 #line 4233 "drizzled/sql_yacc.yy"
12823     {
12824             Lex.statement= new statement::Insert(YYSession);
12825             Lex.duplicates= DUP_ERROR;
12826             init_select(&Lex);
12827             /* for subselects */
12828             Lex.lock_option= TL_READ;
12829           }
12830     break;
12831 
12832   case 755:
12833 
12834 /* Line 1455 of yacc.c  */
12835 #line 4241 "drizzled/sql_yacc.yy"
12836     {
12837             Lex.current_select->set_lock_for_tables(TL_WRITE_CONCURRENT_INSERT);
12838             Lex.current_select= &Lex.select_lex;
12839           }
12840     break;
12841 
12842   case 756:
12843 
12844 /* Line 1455 of yacc.c  */
12845 #line 4246 "drizzled/sql_yacc.yy"
12846     {}
12847     break;
12848 
12849   case 757:
12850 
12851 /* Line 1455 of yacc.c  */
12852 #line 4251 "drizzled/sql_yacc.yy"
12853     {
12854             Lex.statement= new statement::Replace(YYSession);
12855             Lex.duplicates= DUP_REPLACE;
12856             init_select(&Lex);
12857           }
12858     break;
12859 
12860   case 758:
12861 
12862 /* Line 1455 of yacc.c  */
12863 #line 4257 "drizzled/sql_yacc.yy"
12864     {
12865             Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
12866             Lex.current_select= &Lex.select_lex;
12867           }
12868     break;
12869 
12870   case 759:
12871 
12872 /* Line 1455 of yacc.c  */
12873 #line 4262 "drizzled/sql_yacc.yy"
12874     {}
12875     break;
12876 
12877   case 760:
12878 
12879 /* Line 1455 of yacc.c  */
12880 #line 4266 "drizzled/sql_yacc.yy"
12881     {}
12882     break;
12883 
12884   case 761:
12885 
12886 /* Line 1455 of yacc.c  */
12887 #line 4267 "drizzled/sql_yacc.yy"
12888     {}
12889     break;
12890 
12891   case 762:
12892 
12893 /* Line 1455 of yacc.c  */
12894 #line 4272 "drizzled/sql_yacc.yy"
12895     {
12896             Lex.field_list.clear();
12897             Lex.many_values.clear();
12898             Lex.insert_list=0;
12899           }
12900     break;
12901 
12902   case 763:
12903 
12904 /* Line 1455 of yacc.c  */
12905 #line 4279 "drizzled/sql_yacc.yy"
12906     {}
12907     break;
12908 
12909   case 764:
12910 
12911 /* Line 1455 of yacc.c  */
12912 #line 4280 "drizzled/sql_yacc.yy"
12913     {}
12914     break;
12915 
12916   case 765:
12917 
12918 /* Line 1455 of yacc.c  */
12919 #line 4281 "drizzled/sql_yacc.yy"
12920     {}
12921     break;
12922 
12923   case 766:
12924 
12925 /* Line 1455 of yacc.c  */
12926 #line 4283 "drizzled/sql_yacc.yy"
12927     {
12928             if (not (Lex.insert_list = new List_item) ||
12929                 Lex.many_values.push_back(Lex.insert_list))
12930               DRIZZLE_YYABORT;
12931           }
12932     break;
12933 
12934   case 768:
12935 
12936 /* Line 1455 of yacc.c  */
12937 #line 4292 "drizzled/sql_yacc.yy"
12938     { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
12939     break;
12940 
12941   case 769:
12942 
12943 /* Line 1455 of yacc.c  */
12944 #line 4293 "drizzled/sql_yacc.yy"
12945     { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
12946     break;
12947 
12948   case 770:
12949 
12950 /* Line 1455 of yacc.c  */
12951 #line 4297 "drizzled/sql_yacc.yy"
12952     {}
12953     break;
12954 
12955   case 771:
12956 
12957 /* Line 1455 of yacc.c  */
12958 #line 4298 "drizzled/sql_yacc.yy"
12959     {}
12960     break;
12961 
12962   case 772:
12963 
12964 /* Line 1455 of yacc.c  */
12965 #line 4300 "drizzled/sql_yacc.yy"
12966     {
12967             Lex.current_select->set_braces(0);
12968           }
12969     break;
12970 
12971   case 773:
12972 
12973 /* Line 1455 of yacc.c  */
12974 #line 4303 "drizzled/sql_yacc.yy"
12975     {}
12976     break;
12977 
12978   case 774:
12979 
12980 /* Line 1455 of yacc.c  */
12981 #line 4305 "drizzled/sql_yacc.yy"
12982     {
12983             Lex.current_select->set_braces(1);
12984           }
12985     break;
12986 
12987   case 775:
12988 
12989 /* Line 1455 of yacc.c  */
12990 #line 4308 "drizzled/sql_yacc.yy"
12991     {}
12992     break;
12993 
12994   case 780:
12995 
12996 /* Line 1455 of yacc.c  */
12997 #line 4323 "drizzled/sql_yacc.yy"
12998     {
12999             if (Lex.field_list.push_back((yyvsp[(1) - (3)].item)) ||
13000                 Lex.insert_list->push_back((yyvsp[(3) - (3)].item)))
13001               DRIZZLE_YYABORT;
13002           }
13003     break;
13004 
13005   case 781:
13006 
13007 /* Line 1455 of yacc.c  */
13008 #line 4331 "drizzled/sql_yacc.yy"
13009     {}
13010     break;
13011 
13012   case 782:
13013 
13014 /* Line 1455 of yacc.c  */
13015 #line 4332 "drizzled/sql_yacc.yy"
13016     {}
13017     break;
13018 
13019   case 783:
13020 
13021 /* Line 1455 of yacc.c  */
13022 #line 4336 "drizzled/sql_yacc.yy"
13023     {}
13024     break;
13025 
13026   case 784:
13027 
13028 /* Line 1455 of yacc.c  */
13029 #line 4337 "drizzled/sql_yacc.yy"
13030     {}
13031     break;
13032 
13033   case 785:
13034 
13035 /* Line 1455 of yacc.c  */
13036 #line 4342 "drizzled/sql_yacc.yy"
13037     {
13038               if (!(Lex.insert_list = new List_item))
13039                 DRIZZLE_YYABORT;
13040           }
13041     break;
13042 
13043   case 786:
13044 
13045 /* Line 1455 of yacc.c  */
13046 #line 4347 "drizzled/sql_yacc.yy"
13047     {
13048             if (Lex.many_values.push_back(Lex.insert_list))
13049               DRIZZLE_YYABORT;
13050           }
13051     break;
13052 
13053   case 787:
13054 
13055 /* Line 1455 of yacc.c  */
13056 #line 4354 "drizzled/sql_yacc.yy"
13057     {}
13058     break;
13059 
13060   case 789:
13061 
13062 /* Line 1455 of yacc.c  */
13063 #line 4360 "drizzled/sql_yacc.yy"
13064     {
13065             if (Lex.insert_list->push_back((yyvsp[(3) - (3)].item)))
13066               DRIZZLE_YYABORT;
13067           }
13068     break;
13069 
13070   case 790:
13071 
13072 /* Line 1455 of yacc.c  */
13073 #line 4365 "drizzled/sql_yacc.yy"
13074     {
13075             if (Lex.insert_list->push_back((yyvsp[(1) - (1)].item)))
13076               DRIZZLE_YYABORT;
13077           }
13078     break;
13079 
13080   case 791:
13081 
13082 /* Line 1455 of yacc.c  */
13083 #line 4372 "drizzled/sql_yacc.yy"
13084     { (yyval.item)= (yyvsp[(1) - (1)].item);}
13085     break;
13086 
13087   case 792:
13088 
13089 /* Line 1455 of yacc.c  */
13090 #line 4373 "drizzled/sql_yacc.yy"
13091     {(yyval.item)= new Item_default_value(Lex.current_context()); }
13092     break;
13093 
13094   case 794:
13095 
13096 /* Line 1455 of yacc.c  */
13097 #line 4378 "drizzled/sql_yacc.yy"
13098     { Lex.duplicates= DUP_UPDATE; }
13099     break;
13100 
13101   case 796:
13102 
13103 /* Line 1455 of yacc.c  */
13104 #line 4386 "drizzled/sql_yacc.yy"
13105     {
13106             init_select(&Lex);
13107             Lex.statement= new statement::Update(YYSession);
13108             Lex.lock_option= TL_UNLOCK; /* Will be set later */
13109             Lex.duplicates= DUP_ERROR;
13110             if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(3) - (5)].table), NULL,0))
13111               DRIZZLE_YYABORT;
13112 
13113             if (Lex.select_lex.get_table_list()->derived)
13114             {
13115               /* it is single table update and it is update of derived table */
13116               my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
13117                        Lex.select_lex.get_table_list()->alias, "UPDATE");
13118               DRIZZLE_YYABORT;
13119             }
13120             /*
13121               In case of multi-update setting write lock for all tables may
13122               be too pessimistic. We will decrease lock level if possible in
13123               multi_update().
13124             */
13125             Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13126           }
13127     break;
13128 
13129   case 797:
13130 
13131 /* Line 1455 of yacc.c  */
13132 #line 4408 "drizzled/sql_yacc.yy"
13133     {}
13134     break;
13135 
13136   case 800:
13137 
13138 /* Line 1455 of yacc.c  */
13139 #line 4418 "drizzled/sql_yacc.yy"
13140     {
13141             if (YYSession->add_item_to_list((yyvsp[(1) - (3)].item)) || YYSession->add_value_to_list((yyvsp[(3) - (3)].item)))
13142               DRIZZLE_YYABORT;
13143           }
13144     break;
13145 
13146   case 803:
13147 
13148 /* Line 1455 of yacc.c  */
13149 #line 4431 "drizzled/sql_yacc.yy"
13150     {
13151           if (Lex.update_list.push_back((yyvsp[(1) - (3)].item)) ||
13152               Lex.value_list.push_back((yyvsp[(3) - (3)].item)))
13153               DRIZZLE_YYABORT;
13154           }
13155     break;
13156 
13157   case 804:
13158 
13159 /* Line 1455 of yacc.c  */
13160 #line 4442 "drizzled/sql_yacc.yy"
13161     {
13162             Lex.statement= new statement::Delete(YYSession);
13163             init_select(&Lex);
13164             Lex.lock_option= TL_WRITE_DEFAULT;
13165             Lex.select_lex.init_order();
13166 
13167             if (!Lex.current_select->add_table_to_list(YYSession, (yyvsp[(4) - (4)].table), NULL, TL_OPTION_UPDATING,
13168                                            Lex.lock_option))
13169               DRIZZLE_YYABORT;
13170           }
13171     break;
13172 
13173   case 805:
13174 
13175 /* Line 1455 of yacc.c  */
13176 #line 4453 "drizzled/sql_yacc.yy"
13177     {}
13178     break;
13179 
13180   case 806:
13181 
13182 /* Line 1455 of yacc.c  */
13183 #line 4457 "drizzled/sql_yacc.yy"
13184     { Lex.ignore= 0; }
13185     break;
13186 
13187   case 807:
13188 
13189 /* Line 1455 of yacc.c  */
13190 #line 4458 "drizzled/sql_yacc.yy"
13191     { Lex.ignore= 1; }
13192     break;
13193 
13194   case 808:
13195 
13196 /* Line 1455 of yacc.c  */
13197 #line 4463 "drizzled/sql_yacc.yy"
13198     {
13199             Lex.statement= new statement::Truncate(YYSession);
13200             Lex.select_lex.options= 0;
13201             Lex.select_lex.init_order();
13202           }
13203     break;
13204 
13205   case 811:
13206 
13207 /* Line 1455 of yacc.c  */
13208 #line 4479 "drizzled/sql_yacc.yy"
13209     {
13210             Lex.lock_option= TL_READ;
13211             init_select(&Lex);
13212             Lex.current_select->parsing_place= SELECT_LIST;
13213           }
13214     break;
13215 
13216   case 812:
13217 
13218 /* Line 1455 of yacc.c  */
13219 #line 4485 "drizzled/sql_yacc.yy"
13220     {}
13221     break;
13222 
13223   case 813:
13224 
13225 /* Line 1455 of yacc.c  */
13226 #line 4491 "drizzled/sql_yacc.yy"
13227     {
13228              if (not show::buildScemas(YYSession))
13229                DRIZZLE_YYABORT;
13230            }
13231     break;
13232 
13233   case 814:
13234 
13235 /* Line 1455 of yacc.c  */
13236 #line 4497 "drizzled/sql_yacc.yy"
13237     {
13238              if (not show::buildTables(YYSession, (yyvsp[(2) - (3)].simple_string)))
13239                DRIZZLE_YYABORT;
13240            }
13241     break;
13242 
13243   case 815:
13244 
13245 /* Line 1455 of yacc.c  */
13246 #line 4503 "drizzled/sql_yacc.yy"
13247     {
13248              if (not show::buildTemporaryTables(YYSession))
13249                DRIZZLE_YYABORT;
13250            }
13251     break;
13252 
13253   case 816:
13254 
13255 /* Line 1455 of yacc.c  */
13256 #line 4509 "drizzled/sql_yacc.yy"
13257     {
13258              if (not show::buildTableStatus(YYSession, (yyvsp[(3) - (4)].simple_string)))
13259                DRIZZLE_YYABORT;
13260            }
13261     break;
13262 
13263   case 817:
13264 
13265 /* Line 1455 of yacc.c  */
13266 #line 4515 "drizzled/sql_yacc.yy"
13267     {
13268              if (not show::buildColumns(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13269                DRIZZLE_YYABORT;
13270            }
13271     break;
13272 
13273   case 818:
13274 
13275 /* Line 1455 of yacc.c  */
13276 #line 4521 "drizzled/sql_yacc.yy"
13277     {
13278              if (not show::buildIndex(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13279                DRIZZLE_YYABORT;
13280            }
13281     break;
13282 
13283   case 819:
13284 
13285 /* Line 1455 of yacc.c  */
13286 #line 4526 "drizzled/sql_yacc.yy"
13287     {
13288             show::buildSelectWarning(YYSession);
13289           }
13290     break;
13291 
13292   case 820:
13293 
13294 /* Line 1455 of yacc.c  */
13295 #line 4530 "drizzled/sql_yacc.yy"
13296     {
13297             show::buildSelectError(YYSession);
13298           }
13299     break;
13300 
13301   case 821:
13302 
13303 /* Line 1455 of yacc.c  */
13304 #line 4534 "drizzled/sql_yacc.yy"
13305     {
13306             show::buildWarnings(YYSession);
13307           }
13308     break;
13309 
13310   case 822:
13311 
13312 /* Line 1455 of yacc.c  */
13313 #line 4538 "drizzled/sql_yacc.yy"
13314     {
13315             show::buildErrors(YYSession);
13316           }
13317     break;
13318 
13319   case 823:
13320 
13321 /* Line 1455 of yacc.c  */
13322 #line 4542 "drizzled/sql_yacc.yy"
13323     {
13324             if (not show::buildStatus(YYSession, (yyvsp[(1) - (3)].var_type)))
13325               DRIZZLE_YYABORT;
13326           }
13327     break;
13328 
13329   case 824:
13330 
13331 /* Line 1455 of yacc.c  */
13332 #line 4547 "drizzled/sql_yacc.yy"
13333     {
13334             if (not show::buildEngineStatus(YYSession, (yyvsp[(1) - (2)].lex_str)))
13335               DRIZZLE_YYABORT;
13336           }
13337     break;
13338 
13339   case 825:
13340 
13341 /* Line 1455 of yacc.c  */
13342 #line 4552 "drizzled/sql_yacc.yy"
13343     {
13344             if (not show::buildCreateTable(YYSession, (yyvsp[(3) - (3)].table)))
13345               DRIZZLE_YYABORT;
13346           }
13347     break;
13348 
13349   case 826:
13350 
13351 /* Line 1455 of yacc.c  */
13352 #line 4557 "drizzled/sql_yacc.yy"
13353     {
13354             if (not show::buildProcesslist(YYSession))
13355               DRIZZLE_YYABORT;
13356           }
13357     break;
13358 
13359   case 827:
13360 
13361 /* Line 1455 of yacc.c  */
13362 #line 4562 "drizzled/sql_yacc.yy"
13363     {
13364             if (not show::buildVariables(YYSession, (yyvsp[(1) - (3)].var_type)))
13365               DRIZZLE_YYABORT;
13366           }
13367     break;
13368 
13369   case 828:
13370 
13371 /* Line 1455 of yacc.c  */
13372 #line 4567 "drizzled/sql_yacc.yy"
13373     {
13374             if (not show::buildCreateSchema(YYSession, (yyvsp[(4) - (4)].lex_str)))
13375               DRIZZLE_YYABORT;
13376           }
13377     break;
13378 
13379   case 829:
13380 
13381 /* Line 1455 of yacc.c  */
13382 #line 4573 "drizzled/sql_yacc.yy"
13383     { (yyval.simple_string)= 0; }
13384     break;
13385 
13386   case 830:
13387 
13388 /* Line 1455 of yacc.c  */
13389 #line 4574 "drizzled/sql_yacc.yy"
13390     { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).str; }
13391     break;
13392 
13393   case 834:
13394 
13395 /* Line 1455 of yacc.c  */
13396 #line 4585 "drizzled/sql_yacc.yy"
13397     {
13398             Lex.wild= new (YYSession->mem_root) String((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length,
13399                                                     system_charset_info);
13400             if (Lex.wild == NULL)
13401               DRIZZLE_YYABORT;
13402           }
13403     break;
13404 
13405   case 835:
13406 
13407 /* Line 1455 of yacc.c  */
13408 #line 4592 "drizzled/sql_yacc.yy"
13409     {
13410             Lex.current_select->where= (yyvsp[(2) - (2)].item);
13411             if ((yyvsp[(2) - (2)].item))
13412               (yyvsp[(2) - (2)].item)->top_level_item();
13413           }
13414     break;
13415 
13416   case 836:
13417 
13418 /* Line 1455 of yacc.c  */
13419 #line 4602 "drizzled/sql_yacc.yy"
13420     {
13421             if (not show::buildDescribe(YYSession, (yyvsp[(2) - (2)].table)))
13422             {
13423               DRIZZLE_YYABORT;
13424             }
13425           }
13426     break;
13427 
13428   case 837:
13429 
13430 /* Line 1455 of yacc.c  */
13431 #line 4608 "drizzled/sql_yacc.yy"
13432     {}
13433     break;
13434 
13435   case 838:
13436 
13437 /* Line 1455 of yacc.c  */
13438 #line 4610 "drizzled/sql_yacc.yy"
13439     { Lex.describe|= DESCRIBE_NORMAL; }
13440     break;
13441 
13442   case 839:
13443 
13444 /* Line 1455 of yacc.c  */
13445 #line 4612 "drizzled/sql_yacc.yy"
13446     {
13447             Lex.select_lex.options|= SELECT_DESCRIBE;
13448           }
13449     break;
13450 
13451   case 842:
13452 
13453 /* Line 1455 of yacc.c  */
13454 #line 4623 "drizzled/sql_yacc.yy"
13455     {}
13456     break;
13457 
13458   case 843:
13459 
13460 /* Line 1455 of yacc.c  */
13461 #line 4624 "drizzled/sql_yacc.yy"
13462     { Lex.describe|= DESCRIBE_EXTENDED; }
13463     break;
13464 
13465   case 844:
13466 
13467 /* Line 1455 of yacc.c  */
13468 #line 4628 "drizzled/sql_yacc.yy"
13469     {}
13470     break;
13471 
13472   case 845:
13473 
13474 /* Line 1455 of yacc.c  */
13475 #line 4629 "drizzled/sql_yacc.yy"
13476     { Lex.wild= (yyvsp[(1) - (1)].string); }
13477     break;
13478 
13479   case 846:
13480 
13481 /* Line 1455 of yacc.c  */
13482 #line 4631 "drizzled/sql_yacc.yy"
13483     {
13484             Lex.wild= new (YYSession->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,
13485                                                     (yyvsp[(1) - (1)].lex_str).length,
13486                                                     system_charset_info);
13487           }
13488     break;
13489 
13490   case 847:
13491 
13492 /* Line 1455 of yacc.c  */
13493 #line 4643 "drizzled/sql_yacc.yy"
13494     {
13495             Lex.statement= new statement::Flush(YYSession);
13496           }
13497     break;
13498 
13499   case 848:
13500 
13501 /* Line 1455 of yacc.c  */
13502 #line 4647 "drizzled/sql_yacc.yy"
13503     {}
13504     break;
13505 
13506   case 851:
13507 
13508 /* Line 1455 of yacc.c  */
13509 #line 4657 "drizzled/sql_yacc.yy"
13510     {
13511             statement::Flush *statement= (statement::Flush*)Lex.statement;
13512             statement->setFlushTables(true);
13513           }
13514     break;
13515 
13516   case 852:
13517 
13518 /* Line 1455 of yacc.c  */
13519 #line 4661 "drizzled/sql_yacc.yy"
13520     {}
13521     break;
13522 
13523   case 853:
13524 
13525 /* Line 1455 of yacc.c  */
13526 #line 4663 "drizzled/sql_yacc.yy"
13527     {
13528             statement::Flush *statement= (statement::Flush*)Lex.statement;
13529             statement->setFlushTablesWithReadLock(true);
13530           }
13531     break;
13532 
13533   case 854:
13534 
13535 /* Line 1455 of yacc.c  */
13536 #line 4668 "drizzled/sql_yacc.yy"
13537     {
13538             statement::Flush *statement= (statement::Flush*)Lex.statement;
13539             statement->setFlushLog(true);
13540           }
13541     break;
13542 
13543   case 855:
13544 
13545 /* Line 1455 of yacc.c  */
13546 #line 4673 "drizzled/sql_yacc.yy"
13547     {
13548             statement::Flush *statement= (statement::Flush*)Lex.statement;
13549             statement->setFlushStatus(true);
13550           }
13551     break;
13552 
13553   case 856:
13554 
13555 /* Line 1455 of yacc.c  */
13556 #line 4678 "drizzled/sql_yacc.yy"
13557     {
13558             statement::Flush *statement= (statement::Flush*)Lex.statement;
13559             statement->setFlushGlobalStatus(true);
13560           }
13561     break;
13562 
13563   case 857:
13564 
13565 /* Line 1455 of yacc.c  */
13566 #line 4685 "drizzled/sql_yacc.yy"
13567     {}
13568     break;
13569 
13570   case 858:
13571 
13572 /* Line 1455 of yacc.c  */
13573 #line 4686 "drizzled/sql_yacc.yy"
13574     {}
13575     break;
13576 
13577   case 859:
13578 
13579 /* Line 1455 of yacc.c  */
13580 #line 4693 "drizzled/sql_yacc.yy"
13581     {
13582             Lex.statement= new statement::Kill(YYSession, (yyvsp[(3) - (3)].item), (yyvsp[(2) - (3)].num));
13583           }
13584     break;
13585 
13586   case 860:
13587 
13588 /* Line 1455 of yacc.c  */
13589 #line 4699 "drizzled/sql_yacc.yy"
13590     { (yyval.num)= false; }
13591     break;
13592 
13593   case 861:
13594 
13595 /* Line 1455 of yacc.c  */
13596 #line 4700 "drizzled/sql_yacc.yy"
13597     { (yyval.num)= false; }
13598     break;
13599 
13600   case 862:
13601 
13602 /* Line 1455 of yacc.c  */
13603 #line 4701 "drizzled/sql_yacc.yy"
13604     { (yyval.num)= true; }
13605     break;
13606 
13607   case 863:
13608 
13609 /* Line 1455 of yacc.c  */
13610 #line 4708 "drizzled/sql_yacc.yy"
13611     {
13612             Lex.statement= new statement::ChangeSchema(YYSession);
13613             Lex.select_lex.db= (yyvsp[(2) - (2)].lex_str).str;
13614           }
13615     break;
13616 
13617   case 864:
13618 
13619 /* Line 1455 of yacc.c  */
13620 #line 4718 "drizzled/sql_yacc.yy"
13621     {
13622             statement::Load *statement= new statement::Load(YYSession);
13623             Lex.statement= statement;
13624 
13625             Lex_input_stream *lip= YYSession->m_lip;
13626             statement->fname_start= lip->get_ptr();
13627           }
13628     break;
13629 
13630   case 865:
13631 
13632 /* Line 1455 of yacc.c  */
13633 #line 4726 "drizzled/sql_yacc.yy"
13634     {
13635             Lex.lock_option= (yyvsp[(4) - (6)].lock_type);
13636             Lex.duplicates= DUP_ERROR;
13637             Lex.ignore= 0;
13638             if (not (Lex.exchange= new file_exchange((yyvsp[(6) - (6)].lex_str).str, 0, (yyvsp[(2) - (6)].filetype))))
13639               DRIZZLE_YYABORT;
13640           }
13641     break;
13642 
13643   case 866:
13644 
13645 /* Line 1455 of yacc.c  */
13646 #line 4734 "drizzled/sql_yacc.yy"
13647     {
13648             Lex_input_stream *lip= YYSession->m_lip;
13649             ((statement::Load *)Lex.statement)->fname_end= lip->get_ptr();
13650           }
13651     break;
13652 
13653   case 867:
13654 
13655 /* Line 1455 of yacc.c  */
13656 #line 4739 "drizzled/sql_yacc.yy"
13657     {
13658             if (!Lex.current_select->add_table_to_list(YYSession,
13659                     (yyvsp[(12) - (12)].table), NULL, TL_OPTION_UPDATING,
13660                     Lex.lock_option))
13661               DRIZZLE_YYABORT;
13662             Lex.field_list.clear();
13663             Lex.update_list.clear();
13664             Lex.value_list.clear();
13665           }
13666     break;
13667 
13668   case 868:
13669 
13670 /* Line 1455 of yacc.c  */
13671 #line 4750 "drizzled/sql_yacc.yy"
13672     {}
13673     break;
13674 
13675   case 869:
13676 
13677 /* Line 1455 of yacc.c  */
13678 #line 4754 "drizzled/sql_yacc.yy"
13679     { (yyval.filetype)= FILETYPE_CSV; }
13680     break;
13681 
13682   case 870:
13683 
13684 /* Line 1455 of yacc.c  */
13685 #line 4757 "drizzled/sql_yacc.yy"
13686     { (yyval.lock_type)= TL_WRITE_DEFAULT; }
13687     break;
13688 
13689   case 871:
13690 
13691 /* Line 1455 of yacc.c  */
13692 #line 4759 "drizzled/sql_yacc.yy"
13693     {
13694               (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
13695           }
13696     break;
13697 
13698   case 872:
13699 
13700 /* Line 1455 of yacc.c  */
13701 #line 4765 "drizzled/sql_yacc.yy"
13702     { Lex.duplicates=DUP_ERROR; }
13703     break;
13704 
13705   case 873:
13706 
13707 /* Line 1455 of yacc.c  */
13708 #line 4766 "drizzled/sql_yacc.yy"
13709     { Lex.duplicates=DUP_REPLACE; }
13710     break;
13711 
13712   case 874:
13713 
13714 /* Line 1455 of yacc.c  */
13715 #line 4767 "drizzled/sql_yacc.yy"
13716     { Lex.ignore= 1; }
13717     break;
13718 
13719   case 875:
13720 
13721 /* Line 1455 of yacc.c  */
13722 #line 4771 "drizzled/sql_yacc.yy"
13723     { Lex.duplicates=DUP_ERROR; }
13724     break;
13725 
13726   case 876:
13727 
13728 /* Line 1455 of yacc.c  */
13729 #line 4772 "drizzled/sql_yacc.yy"
13730     { Lex.duplicates=DUP_ERROR; }
13731     break;
13732 
13733   case 877:
13734 
13735 /* Line 1455 of yacc.c  */
13736 #line 4773 "drizzled/sql_yacc.yy"
13737     { Lex.duplicates=DUP_REPLACE; }
13738     break;
13739 
13740   case 878:
13741 
13742 /* Line 1455 of yacc.c  */
13743 #line 4774 "drizzled/sql_yacc.yy"
13744     { Lex.ignore= true; }
13745     break;
13746 
13747   case 879:
13748 
13749 /* Line 1455 of yacc.c  */
13750 #line 4775 "drizzled/sql_yacc.yy"
13751     { Lex.duplicates=DUP_REPLACE; }
13752     break;
13753 
13754   case 880:
13755 
13756 /* Line 1455 of yacc.c  */
13757 #line 4776 "drizzled/sql_yacc.yy"
13758     { Lex.ignore= true; }
13759     break;
13760 
13761   case 885:
13762 
13763 /* Line 1455 of yacc.c  */
13764 #line 4791 "drizzled/sql_yacc.yy"
13765     {
13766             assert(Lex.exchange != 0);
13767             Lex.exchange->field_term= (yyvsp[(3) - (3)].string);
13768           }
13769     break;
13770 
13771   case 886:
13772 
13773 /* Line 1455 of yacc.c  */
13774 #line 4796 "drizzled/sql_yacc.yy"
13775     {
13776             assert(Lex.exchange != 0);
13777             Lex.exchange->enclosed= (yyvsp[(4) - (4)].string);
13778             Lex.exchange->opt_enclosed= 1;
13779           }
13780     break;
13781 
13782   case 887:
13783 
13784 /* Line 1455 of yacc.c  */
13785 #line 4802 "drizzled/sql_yacc.yy"
13786     {
13787             assert(Lex.exchange != 0);
13788             Lex.exchange->enclosed= (yyvsp[(3) - (3)].string);
13789           }
13790     break;
13791 
13792   case 888:
13793 
13794 /* Line 1455 of yacc.c  */
13795 #line 4807 "drizzled/sql_yacc.yy"
13796     {
13797             assert(Lex.exchange != 0);
13798             Lex.exchange->escaped= (yyvsp[(3) - (3)].string);
13799           }
13800     break;
13801 
13802   case 893:
13803 
13804 /* Line 1455 of yacc.c  */
13805 #line 4825 "drizzled/sql_yacc.yy"
13806     {
13807             assert(Lex.exchange != 0);
13808             Lex.exchange->line_term= (yyvsp[(3) - (3)].string);
13809           }
13810     break;
13811 
13812   case 894:
13813 
13814 /* Line 1455 of yacc.c  */
13815 #line 4830 "drizzled/sql_yacc.yy"
13816     {
13817             assert(Lex.exchange != 0);
13818             Lex.exchange->line_start= (yyvsp[(3) - (3)].string);
13819           }
13820     break;
13821 
13822   case 896:
13823 
13824 /* Line 1455 of yacc.c  */
13825 #line 4839 "drizzled/sql_yacc.yy"
13826     {
13827             assert(Lex.exchange != 0);
13828             Lex.exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).str);
13829           }
13830     break;
13831 
13832   case 897:
13833 
13834 /* Line 1455 of yacc.c  */
13835 #line 4846 "drizzled/sql_yacc.yy"
13836     { }
13837     break;
13838 
13839   case 898:
13840 
13841 /* Line 1455 of yacc.c  */
13842 #line 4847 "drizzled/sql_yacc.yy"
13843     { }
13844     break;
13845 
13846   case 899:
13847 
13848 /* Line 1455 of yacc.c  */
13849 #line 4851 "drizzled/sql_yacc.yy"
13850     {}
13851     break;
13852 
13853   case 900:
13854 
13855 /* Line 1455 of yacc.c  */
13856 #line 4852 "drizzled/sql_yacc.yy"
13857     {}
13858     break;
13859 
13860   case 901:
13861 
13862 /* Line 1455 of yacc.c  */
13863 #line 4853 "drizzled/sql_yacc.yy"
13864     {}
13865     break;
13866 
13867   case 902:
13868 
13869 /* Line 1455 of yacc.c  */
13870 #line 4858 "drizzled/sql_yacc.yy"
13871     { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
13872     break;
13873 
13874   case 903:
13875 
13876 /* Line 1455 of yacc.c  */
13877 #line 4860 "drizzled/sql_yacc.yy"
13878     { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
13879     break;
13880 
13881   case 904:
13882 
13883 /* Line 1455 of yacc.c  */
13884 #line 4864 "drizzled/sql_yacc.yy"
13885     {(yyval.item)= (yyvsp[(1) - (1)].item);}
13886     break;
13887 
13888   case 905:
13889 
13890 /* Line 1455 of yacc.c  */
13891 #line 4866 "drizzled/sql_yacc.yy"
13892     { (yyval.item)= new Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str)); }
13893     break;
13894 
13895   case 906:
13896 
13897 /* Line 1455 of yacc.c  */
13898 #line 4870 "drizzled/sql_yacc.yy"
13899     {}
13900     break;
13901 
13902   case 907:
13903 
13904 /* Line 1455 of yacc.c  */
13905 #line 4871 "drizzled/sql_yacc.yy"
13906     {}
13907     break;
13908 
13909   case 908:
13910 
13911 /* Line 1455 of yacc.c  */
13912 #line 4878 "drizzled/sql_yacc.yy"
13913     {
13914           (yyval.item) = new Item_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, YYSession->variables.getCollation());
13915         }
13916     break;
13917 
13918   case 909:
13919 
13920 /* Line 1455 of yacc.c  */
13921 #line 4882 "drizzled/sql_yacc.yy"
13922     {
13923             ((Item_string*) (yyvsp[(1) - (2)].item))->append((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
13924           }
13925     break;
13926 
13927   case 910:
13928 
13929 /* Line 1455 of yacc.c  */
13930 #line 4889 "drizzled/sql_yacc.yy"
13931     {
13932             (yyval.string)= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).str,
13933                                              (yyvsp[(1) - (1)].lex_str).length,
13934                                              YYSession->variables.getCollation());
13935           }
13936     break;
13937 
13938   case 911:
13939 
13940 /* Line 1455 of yacc.c  */
13941 #line 4895 "drizzled/sql_yacc.yy"
13942     {
13943             Item *tmp= new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
13944             /*
13945               it is OK only emulate fix_fields, because we need only
13946               value of constant
13947             */
13948             (yyval.string)= tmp ?
13949               tmp->quick_fix_field(), tmp->val_str((String*) 0) :
13950               (String*) 0;
13951           }
13952     break;
13953 
13954   case 912:
13955 
13956 /* Line 1455 of yacc.c  */
13957 #line 4906 "drizzled/sql_yacc.yy"
13958     {
13959             Item *tmp= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
13960             /*
13961               it is OK only emulate fix_fields, because we need only
13962               value of constant
13963             */
13964             (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str((String*) 0) :
13965               (String*) 0;
13966           }
13967     break;
13968 
13969   case 913:
13970 
13971 /* Line 1455 of yacc.c  */
13972 #line 4918 "drizzled/sql_yacc.yy"
13973     { (yyval.item) = (yyvsp[(1) - (1)].item); }
13974     break;
13975 
13976   case 914:
13977 
13978 /* Line 1455 of yacc.c  */
13979 #line 4919 "drizzled/sql_yacc.yy"
13980     { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
13981     break;
13982 
13983   case 915:
13984 
13985 /* Line 1455 of yacc.c  */
13986 #line 4921 "drizzled/sql_yacc.yy"
13987     {
13988             (yyvsp[(2) - (2)].item_num)->max_length++;
13989             (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
13990           }
13991     break;
13992 
13993   case 916:
13994 
13995 /* Line 1455 of yacc.c  */
13996 #line 4928 "drizzled/sql_yacc.yy"
13997     { (yyval.item) = (yyvsp[(1) - (1)].item); }
13998     break;
13999 
14000   case 917:
14001 
14002 /* Line 1455 of yacc.c  */
14003 #line 4929 "drizzled/sql_yacc.yy"
14004     { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14005     break;
14006 
14007   case 918:
14008 
14009 /* Line 1455 of yacc.c  */
14010 #line 4931 "drizzled/sql_yacc.yy"
14011     {
14012             (yyval.item) = new Item_null();
14013             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14014           }
14015     break;
14016 
14017   case 919:
14018 
14019 /* Line 1455 of yacc.c  */
14020 #line 4935 "drizzled/sql_yacc.yy"
14021     { (yyval.item)= new drizzled::item::False(); }
14022     break;
14023 
14024   case 920:
14025 
14026 /* Line 1455 of yacc.c  */
14027 #line 4936 "drizzled/sql_yacc.yy"
14028     { (yyval.item)= new drizzled::item::True(); }
14029     break;
14030 
14031   case 921:
14032 
14033 /* Line 1455 of yacc.c  */
14034 #line 4937 "drizzled/sql_yacc.yy"
14035     { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);}
14036     break;
14037 
14038   case 922:
14039 
14040 /* Line 1455 of yacc.c  */
14041 #line 4938 "drizzled/sql_yacc.yy"
14042     { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
14043     break;
14044 
14045   case 923:
14046 
14047 /* Line 1455 of yacc.c  */
14048 #line 4939 "drizzled/sql_yacc.yy"
14049     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14050     break;
14051 
14052   case 924:
14053 
14054 /* Line 1455 of yacc.c  */
14055 #line 4940 "drizzled/sql_yacc.yy"
14056     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14057     break;
14058 
14059   case 925:
14060 
14061 /* Line 1455 of yacc.c  */
14062 #line 4944 "drizzled/sql_yacc.yy"
14063     { (yyval.item) = (yyvsp[(1) - (1)].item); }
14064     break;
14065 
14066   case 926:
14067 
14068 /* Line 1455 of yacc.c  */
14069 #line 4945 "drizzled/sql_yacc.yy"
14070     { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);}
14071     break;
14072 
14073   case 927:
14074 
14075 /* Line 1455 of yacc.c  */
14076 #line 4946 "drizzled/sql_yacc.yy"
14077     { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
14078     break;
14079 
14080   case 928:
14081 
14082 /* Line 1455 of yacc.c  */
14083 #line 4947 "drizzled/sql_yacc.yy"
14084     { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14085     break;
14086 
14087   case 929:
14088 
14089 /* Line 1455 of yacc.c  */
14090 #line 4949 "drizzled/sql_yacc.yy"
14091     {
14092             (yyval.item) = new Item_null();
14093             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14094           }
14095     break;
14096 
14097   case 930:
14098 
14099 /* Line 1455 of yacc.c  */
14100 #line 4953 "drizzled/sql_yacc.yy"
14101     { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14102     break;
14103 
14104   case 931:
14105 
14106 /* Line 1455 of yacc.c  */
14107 #line 4955 "drizzled/sql_yacc.yy"
14108     {
14109             (yyvsp[(2) - (2)].item_num)->max_length++;
14110             (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14111           }
14112     break;
14113 
14114   case 932:
14115 
14116 /* Line 1455 of yacc.c  */
14117 #line 4963 "drizzled/sql_yacc.yy"
14118     {
14119             (yyval.item) = new Item_null();
14120             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14121           }
14122     break;
14123 
14124   case 933:
14125 
14126 /* Line 1455 of yacc.c  */
14127 #line 4968 "drizzled/sql_yacc.yy"
14128     {
14129             (yyval.item)= new drizzled::item::False();
14130           }
14131     break;
14132 
14133   case 934:
14134 
14135 /* Line 1455 of yacc.c  */
14136 #line 4972 "drizzled/sql_yacc.yy"
14137     {
14138             (yyval.item)= new drizzled::item::True();
14139           }
14140     break;
14141 
14142   case 935:
14143 
14144 /* Line 1455 of yacc.c  */
14145 #line 4978 "drizzled/sql_yacc.yy"
14146     { (yyval.item) = (yyvsp[(1) - (1)].item); }
14147     break;
14148 
14149   case 936:
14150 
14151 /* Line 1455 of yacc.c  */
14152 #line 4980 "drizzled/sql_yacc.yy"
14153     {
14154             (yyval.item) = new Item_null();
14155             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14156           }
14157     break;
14158 
14159   case 937:
14160 
14161 /* Line 1455 of yacc.c  */
14162 #line 4984 "drizzled/sql_yacc.yy"
14163     { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14164     break;
14165 
14166   case 938:
14167 
14168 /* Line 1455 of yacc.c  */
14169 #line 4985 "drizzled/sql_yacc.yy"
14170     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14171     break;
14172 
14173   case 939:
14174 
14175 /* Line 1455 of yacc.c  */
14176 #line 4986 "drizzled/sql_yacc.yy"
14177     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14178     break;
14179 
14180   case 940:
14181 
14182 /* Line 1455 of yacc.c  */
14183 #line 4991 "drizzled/sql_yacc.yy"
14184     {
14185             int error;
14186             (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).str, (int64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error), (yyvsp[(1) - (1)].lex_str).length);
14187           }
14188     break;
14189 
14190   case 941:
14191 
14192 /* Line 1455 of yacc.c  */
14193 #line 4996 "drizzled/sql_yacc.yy"
14194     {
14195             int error;
14196             (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).str, (int64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error), (yyvsp[(1) - (1)].lex_str).length);
14197           }
14198     break;
14199 
14200   case 942:
14201 
14202 /* Line 1455 of yacc.c  */
14203 #line 5001 "drizzled/sql_yacc.yy"
14204     { (yyval.item_num) = new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
14205     break;
14206 
14207   case 943:
14208 
14209 /* Line 1455 of yacc.c  */
14210 #line 5003 "drizzled/sql_yacc.yy"
14211     {
14212             (yyval.item_num)= new Item_decimal((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, YYSession->charset());
14213             if (YYSession->is_error())
14214             {
14215               DRIZZLE_YYABORT;
14216             }
14217           }
14218     break;
14219 
14220   case 944:
14221 
14222 /* Line 1455 of yacc.c  */
14223 #line 5011 "drizzled/sql_yacc.yy"
14224     {
14225             (yyval.item_num) = new Item_float((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
14226             if (YYSession->is_error())
14227             {
14228               DRIZZLE_YYABORT;
14229             }
14230           }
14231     break;
14232 
14233   case 945:
14234 
14235 /* Line 1455 of yacc.c  */
14236 #line 5025 "drizzled/sql_yacc.yy"
14237     { (yyval.item)=(yyvsp[(1) - (1)].item); }
14238     break;
14239 
14240   case 946:
14241 
14242 /* Line 1455 of yacc.c  */
14243 #line 5026 "drizzled/sql_yacc.yy"
14244     { (yyval.item)=(yyvsp[(1) - (1)].item); }
14245     break;
14246 
14247   case 947:
14248 
14249 /* Line 1455 of yacc.c  */
14250 #line 5031 "drizzled/sql_yacc.yy"
14251     {
14252             (yyval.item)= parser::buildTableWild(&Lex, NULL_LEX_STRING, (yyvsp[(1) - (3)].lex_str));
14253           }
14254     break;
14255 
14256   case 948:
14257 
14258 /* Line 1455 of yacc.c  */
14259 #line 5035 "drizzled/sql_yacc.yy"
14260     {
14261             (yyval.item)= parser::buildTableWild(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str));
14262           }
14263     break;
14264 
14265   case 949:
14266 
14267 /* Line 1455 of yacc.c  */
14268 #line 5041 "drizzled/sql_yacc.yy"
14269     { (yyval.item)=(yyvsp[(1) - (1)].item); }
14270     break;
14271 
14272   case 950:
14273 
14274 /* Line 1455 of yacc.c  */
14275 #line 5046 "drizzled/sql_yacc.yy"
14276     {
14277             (yyval.item)= parser::buildIdent(&Lex, NULL_LEX_STRING, NULL_LEX_STRING, (yyvsp[(1) - (1)].lex_str));
14278           }
14279     break;
14280 
14281   case 951:
14282 
14283 /* Line 1455 of yacc.c  */
14284 #line 5049 "drizzled/sql_yacc.yy"
14285     { (yyval.item)= (yyvsp[(1) - (1)].item); }
14286     break;
14287 
14288   case 952:
14289 
14290 /* Line 1455 of yacc.c  */
14291 #line 5054 "drizzled/sql_yacc.yy"
14292     {
14293             (yyval.item)= parser::buildIdent(&Lex, NULL_LEX_STRING, (yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str));
14294           }
14295     break;
14296 
14297   case 953:
14298 
14299 /* Line 1455 of yacc.c  */
14300 #line 5058 "drizzled/sql_yacc.yy"
14301     {
14302             (yyval.item)= parser::buildIdent(&Lex, NULL_LEX_STRING, (yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str));
14303           }
14304     break;
14305 
14306   case 954:
14307 
14308 /* Line 1455 of yacc.c  */
14309 #line 5062 "drizzled/sql_yacc.yy"
14310     {
14311             (yyval.item)= parser::buildIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), (yyvsp[(5) - (5)].lex_str));
14312           }
14313     break;
14314 
14315   case 955:
14316 
14317 /* Line 1455 of yacc.c  */
14318 #line 5069 "drizzled/sql_yacc.yy"
14319     {
14320             (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);
14321           }
14322     break;
14323 
14324   case 956:
14325 
14326 /* Line 1455 of yacc.c  */
14327 #line 5073 "drizzled/sql_yacc.yy"
14328     {
14329             if (not parser::checkFieldIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str)))
14330               DRIZZLE_YYABORT;
14331 
14332             (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
14333           }
14334     break;
14335 
14336   case 957:
14337 
14338 /* Line 1455 of yacc.c  */
14339 #line 5080 "drizzled/sql_yacc.yy"
14340     {
14341             if (not parser::checkFieldIdent(&Lex, NULL_LEX_STRING, (yyvsp[(1) - (3)].lex_str)))
14342               DRIZZLE_YYABORT;
14343 
14344             (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
14345           }
14346     break;
14347 
14348   case 958:
14349 
14350 /* Line 1455 of yacc.c  */
14351 #line 5087 "drizzled/sql_yacc.yy"
14352     { /* For Delphi */
14353             (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);
14354           }
14355     break;
14356 
14357   case 959:
14358 
14359 /* Line 1455 of yacc.c  */
14360 #line 5094 "drizzled/sql_yacc.yy"
14361     {
14362             (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
14363           }
14364     break;
14365 
14366   case 960:
14367 
14368 /* Line 1455 of yacc.c  */
14369 #line 5098 "drizzled/sql_yacc.yy"
14370     {
14371             (yyval.table)=new Table_ident((yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str));
14372           }
14373     break;
14374 
14375   case 961:
14376 
14377 /* Line 1455 of yacc.c  */
14378 #line 5102 "drizzled/sql_yacc.yy"
14379     { /* For Delphi */
14380           (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
14381         }
14382     break;
14383 
14384   case 964:
14385 
14386 /* Line 1455 of yacc.c  */
14387 #line 5117 "drizzled/sql_yacc.yy"
14388     {
14389             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14390           }
14391     break;
14392 
14393   case 965:
14394 
14395 /* Line 1455 of yacc.c  */
14396 #line 5121 "drizzled/sql_yacc.yy"
14397     {
14398             const CHARSET_INFO * const cs= system_charset_info;
14399             int dummy_error;
14400             uint32_t wlen= cs->cset->well_formed_len(cs, (yyvsp[(1) - (1)].lex_str).str,
14401                                                  (yyvsp[(1) - (1)].lex_str).str+(yyvsp[(1) - (1)].lex_str).length,
14402                                                  (yyvsp[(1) - (1)].lex_str).length, &dummy_error);
14403             if (wlen < (yyvsp[(1) - (1)].lex_str).length)
14404             {
14405               my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
14406                        cs->csname, (yyvsp[(1) - (1)].lex_str).str + wlen);
14407               DRIZZLE_YYABORT;
14408             }
14409             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14410           }
14411     break;
14412 
14413   case 966:
14414 
14415 /* Line 1455 of yacc.c  */
14416 #line 5139 "drizzled/sql_yacc.yy"
14417     {
14418             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14419           }
14420     break;
14421 
14422   case 967:
14423 
14424 /* Line 1455 of yacc.c  */
14425 #line 5146 "drizzled/sql_yacc.yy"
14426     {
14427             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14428           }
14429     break;
14430 
14431   case 968:
14432 
14433 /* Line 1455 of yacc.c  */
14434 #line 5153 "drizzled/sql_yacc.yy"
14435     {
14436             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14437           }
14438     break;
14439 
14440   case 969:
14441 
14442 /* Line 1455 of yacc.c  */
14443 #line 5159 "drizzled/sql_yacc.yy"
14444     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
14445     break;
14446 
14447   case 970:
14448 
14449 /* Line 1455 of yacc.c  */
14450 #line 5161 "drizzled/sql_yacc.yy"
14451     {
14452             (yyval.lex_str).str= YYSession->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
14453             (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
14454           }
14455     break;
14456 
14457   case 971:
14458 
14459 /* Line 1455 of yacc.c  */
14460 #line 5168 "drizzled/sql_yacc.yy"
14461     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14462     break;
14463 
14464   case 972:
14465 
14466 /* Line 1455 of yacc.c  */
14467 #line 5169 "drizzled/sql_yacc.yy"
14468     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14469     break;
14470 
14471   case 973:
14472 
14473 /* Line 1455 of yacc.c  */
14474 #line 5173 "drizzled/sql_yacc.yy"
14475     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14476     break;
14477 
14478   case 974:
14479 
14480 /* Line 1455 of yacc.c  */
14481 #line 5174 "drizzled/sql_yacc.yy"
14482     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14483     break;
14484 
14485   case 975:
14486 
14487 /* Line 1455 of yacc.c  */
14488 #line 5178 "drizzled/sql_yacc.yy"
14489     {}
14490     break;
14491 
14492   case 976:
14493 
14494 /* Line 1455 of yacc.c  */
14495 #line 5179 "drizzled/sql_yacc.yy"
14496     {}
14497     break;
14498 
14499   case 977:
14500 
14501 /* Line 1455 of yacc.c  */
14502 #line 5180 "drizzled/sql_yacc.yy"
14503     {}
14504     break;
14505 
14506   case 978:
14507 
14508 /* Line 1455 of yacc.c  */
14509 #line 5185 "drizzled/sql_yacc.yy"
14510     {}
14511     break;
14512 
14513   case 979:
14514 
14515 /* Line 1455 of yacc.c  */
14516 #line 5186 "drizzled/sql_yacc.yy"
14517     {}
14518     break;
14519 
14520   case 980:
14521 
14522 /* Line 1455 of yacc.c  */
14523 #line 5187 "drizzled/sql_yacc.yy"
14524     {}
14525     break;
14526 
14527   case 981:
14528 
14529 /* Line 1455 of yacc.c  */
14530 #line 5188 "drizzled/sql_yacc.yy"
14531     {}
14532     break;
14533 
14534   case 982:
14535 
14536 /* Line 1455 of yacc.c  */
14537 #line 5189 "drizzled/sql_yacc.yy"
14538     {}
14539     break;
14540 
14541   case 983:
14542 
14543 /* Line 1455 of yacc.c  */
14544 #line 5190 "drizzled/sql_yacc.yy"
14545     {}
14546     break;
14547 
14548   case 984:
14549 
14550 /* Line 1455 of yacc.c  */
14551 #line 5191 "drizzled/sql_yacc.yy"
14552     {}
14553     break;
14554 
14555   case 985:
14556 
14557 /* Line 1455 of yacc.c  */
14558 #line 5192 "drizzled/sql_yacc.yy"
14559     {}
14560     break;
14561 
14562   case 986:
14563 
14564 /* Line 1455 of yacc.c  */
14565 #line 5193 "drizzled/sql_yacc.yy"
14566     {}
14567     break;
14568 
14569   case 987:
14570 
14571 /* Line 1455 of yacc.c  */
14572 #line 5194 "drizzled/sql_yacc.yy"
14573     {}
14574     break;
14575 
14576   case 988:
14577 
14578 /* Line 1455 of yacc.c  */
14579 #line 5195 "drizzled/sql_yacc.yy"
14580     {}
14581     break;
14582 
14583   case 989:
14584 
14585 /* Line 1455 of yacc.c  */
14586 #line 5196 "drizzled/sql_yacc.yy"
14587     {}
14588     break;
14589 
14590   case 990:
14591 
14592 /* Line 1455 of yacc.c  */
14593 #line 5197 "drizzled/sql_yacc.yy"
14594     {}
14595     break;
14596 
14597   case 991:
14598 
14599 /* Line 1455 of yacc.c  */
14600 #line 5198 "drizzled/sql_yacc.yy"
14601     {}
14602     break;
14603 
14604   case 992:
14605 
14606 /* Line 1455 of yacc.c  */
14607 #line 5199 "drizzled/sql_yacc.yy"
14608     {}
14609     break;
14610 
14611   case 993:
14612 
14613 /* Line 1455 of yacc.c  */
14614 #line 5200 "drizzled/sql_yacc.yy"
14615     {}
14616     break;
14617 
14618   case 994:
14619 
14620 /* Line 1455 of yacc.c  */
14621 #line 5201 "drizzled/sql_yacc.yy"
14622     {}
14623     break;
14624 
14625   case 995:
14626 
14627 /* Line 1455 of yacc.c  */
14628 #line 5202 "drizzled/sql_yacc.yy"
14629     {}
14630     break;
14631 
14632   case 996:
14633 
14634 /* Line 1455 of yacc.c  */
14635 #line 5203 "drizzled/sql_yacc.yy"
14636     {}
14637     break;
14638 
14639   case 997:
14640 
14641 /* Line 1455 of yacc.c  */
14642 #line 5204 "drizzled/sql_yacc.yy"
14643     {}
14644     break;
14645 
14646   case 998:
14647 
14648 /* Line 1455 of yacc.c  */
14649 #line 5205 "drizzled/sql_yacc.yy"
14650     {}
14651     break;
14652 
14653   case 999:
14654 
14655 /* Line 1455 of yacc.c  */
14656 #line 5215 "drizzled/sql_yacc.yy"
14657     {}
14658     break;
14659 
14660   case 1000:
14661 
14662 /* Line 1455 of yacc.c  */
14663 #line 5216 "drizzled/sql_yacc.yy"
14664     {}
14665     break;
14666 
14667   case 1001:
14668 
14669 /* Line 1455 of yacc.c  */
14670 #line 5217 "drizzled/sql_yacc.yy"
14671     {}
14672     break;
14673 
14674   case 1002:
14675 
14676 /* Line 1455 of yacc.c  */
14677 #line 5218 "drizzled/sql_yacc.yy"
14678     {}
14679     break;
14680 
14681   case 1003:
14682 
14683 /* Line 1455 of yacc.c  */
14684 #line 5219 "drizzled/sql_yacc.yy"
14685     {}
14686     break;
14687 
14688   case 1004:
14689 
14690 /* Line 1455 of yacc.c  */
14691 #line 5220 "drizzled/sql_yacc.yy"
14692     {}
14693     break;
14694 
14695   case 1005:
14696 
14697 /* Line 1455 of yacc.c  */
14698 #line 5221 "drizzled/sql_yacc.yy"
14699     {}
14700     break;
14701 
14702   case 1006:
14703 
14704 /* Line 1455 of yacc.c  */
14705 #line 5222 "drizzled/sql_yacc.yy"
14706     {}
14707     break;
14708 
14709   case 1007:
14710 
14711 /* Line 1455 of yacc.c  */
14712 #line 5223 "drizzled/sql_yacc.yy"
14713     {}
14714     break;
14715 
14716   case 1008:
14717 
14718 /* Line 1455 of yacc.c  */
14719 #line 5224 "drizzled/sql_yacc.yy"
14720     {}
14721     break;
14722 
14723   case 1009:
14724 
14725 /* Line 1455 of yacc.c  */
14726 #line 5225 "drizzled/sql_yacc.yy"
14727     {}
14728     break;
14729 
14730   case 1010:
14731 
14732 /* Line 1455 of yacc.c  */
14733 #line 5226 "drizzled/sql_yacc.yy"
14734     {}
14735     break;
14736 
14737   case 1011:
14738 
14739 /* Line 1455 of yacc.c  */
14740 #line 5227 "drizzled/sql_yacc.yy"
14741     {}
14742     break;
14743 
14744   case 1012:
14745 
14746 /* Line 1455 of yacc.c  */
14747 #line 5228 "drizzled/sql_yacc.yy"
14748     {}
14749     break;
14750 
14751   case 1013:
14752 
14753 /* Line 1455 of yacc.c  */
14754 #line 5229 "drizzled/sql_yacc.yy"
14755     {}
14756     break;
14757 
14758   case 1014:
14759 
14760 /* Line 1455 of yacc.c  */
14761 #line 5230 "drizzled/sql_yacc.yy"
14762     {}
14763     break;
14764 
14765   case 1015:
14766 
14767 /* Line 1455 of yacc.c  */
14768 #line 5231 "drizzled/sql_yacc.yy"
14769     {}
14770     break;
14771 
14772   case 1016:
14773 
14774 /* Line 1455 of yacc.c  */
14775 #line 5232 "drizzled/sql_yacc.yy"
14776     {}
14777     break;
14778 
14779   case 1017:
14780 
14781 /* Line 1455 of yacc.c  */
14782 #line 5233 "drizzled/sql_yacc.yy"
14783     {}
14784     break;
14785 
14786   case 1018:
14787 
14788 /* Line 1455 of yacc.c  */
14789 #line 5234 "drizzled/sql_yacc.yy"
14790     {}
14791     break;
14792 
14793   case 1019:
14794 
14795 /* Line 1455 of yacc.c  */
14796 #line 5235 "drizzled/sql_yacc.yy"
14797     {}
14798     break;
14799 
14800   case 1020:
14801 
14802 /* Line 1455 of yacc.c  */
14803 #line 5236 "drizzled/sql_yacc.yy"
14804     {}
14805     break;
14806 
14807   case 1021:
14808 
14809 /* Line 1455 of yacc.c  */
14810 #line 5237 "drizzled/sql_yacc.yy"
14811     {}
14812     break;
14813 
14814   case 1022:
14815 
14816 /* Line 1455 of yacc.c  */
14817 #line 5238 "drizzled/sql_yacc.yy"
14818     {}
14819     break;
14820 
14821   case 1023:
14822 
14823 /* Line 1455 of yacc.c  */
14824 #line 5239 "drizzled/sql_yacc.yy"
14825     {}
14826     break;
14827 
14828   case 1024:
14829 
14830 /* Line 1455 of yacc.c  */
14831 #line 5240 "drizzled/sql_yacc.yy"
14832     {}
14833     break;
14834 
14835   case 1025:
14836 
14837 /* Line 1455 of yacc.c  */
14838 #line 5241 "drizzled/sql_yacc.yy"
14839     {}
14840     break;
14841 
14842   case 1026:
14843 
14844 /* Line 1455 of yacc.c  */
14845 #line 5242 "drizzled/sql_yacc.yy"
14846     {}
14847     break;
14848 
14849   case 1027:
14850 
14851 /* Line 1455 of yacc.c  */
14852 #line 5243 "drizzled/sql_yacc.yy"
14853     {}
14854     break;
14855 
14856   case 1028:
14857 
14858 /* Line 1455 of yacc.c  */
14859 #line 5244 "drizzled/sql_yacc.yy"
14860     {}
14861     break;
14862 
14863   case 1029:
14864 
14865 /* Line 1455 of yacc.c  */
14866 #line 5245 "drizzled/sql_yacc.yy"
14867     {}
14868     break;
14869 
14870   case 1030:
14871 
14872 /* Line 1455 of yacc.c  */
14873 #line 5246 "drizzled/sql_yacc.yy"
14874     {}
14875     break;
14876 
14877   case 1031:
14878 
14879 /* Line 1455 of yacc.c  */
14880 #line 5247 "drizzled/sql_yacc.yy"
14881     {}
14882     break;
14883 
14884   case 1032:
14885 
14886 /* Line 1455 of yacc.c  */
14887 #line 5248 "drizzled/sql_yacc.yy"
14888     {}
14889     break;
14890 
14891   case 1033:
14892 
14893 /* Line 1455 of yacc.c  */
14894 #line 5249 "drizzled/sql_yacc.yy"
14895     {}
14896     break;
14897 
14898   case 1034:
14899 
14900 /* Line 1455 of yacc.c  */
14901 #line 5250 "drizzled/sql_yacc.yy"
14902     {}
14903     break;
14904 
14905   case 1035:
14906 
14907 /* Line 1455 of yacc.c  */
14908 #line 5251 "drizzled/sql_yacc.yy"
14909     {}
14910     break;
14911 
14912   case 1036:
14913 
14914 /* Line 1455 of yacc.c  */
14915 #line 5252 "drizzled/sql_yacc.yy"
14916     {}
14917     break;
14918 
14919   case 1037:
14920 
14921 /* Line 1455 of yacc.c  */
14922 #line 5253 "drizzled/sql_yacc.yy"
14923     {}
14924     break;
14925 
14926   case 1038:
14927 
14928 /* Line 1455 of yacc.c  */
14929 #line 5254 "drizzled/sql_yacc.yy"
14930     {}
14931     break;
14932 
14933   case 1039:
14934 
14935 /* Line 1455 of yacc.c  */
14936 #line 5255 "drizzled/sql_yacc.yy"
14937     {}
14938     break;
14939 
14940   case 1040:
14941 
14942 /* Line 1455 of yacc.c  */
14943 #line 5256 "drizzled/sql_yacc.yy"
14944     {}
14945     break;
14946 
14947   case 1041:
14948 
14949 /* Line 1455 of yacc.c  */
14950 #line 5257 "drizzled/sql_yacc.yy"
14951     {}
14952     break;
14953 
14954   case 1042:
14955 
14956 /* Line 1455 of yacc.c  */
14957 #line 5258 "drizzled/sql_yacc.yy"
14958     {}
14959     break;
14960 
14961   case 1043:
14962 
14963 /* Line 1455 of yacc.c  */
14964 #line 5259 "drizzled/sql_yacc.yy"
14965     {}
14966     break;
14967 
14968   case 1044:
14969 
14970 /* Line 1455 of yacc.c  */
14971 #line 5260 "drizzled/sql_yacc.yy"
14972     {}
14973     break;
14974 
14975   case 1045:
14976 
14977 /* Line 1455 of yacc.c  */
14978 #line 5261 "drizzled/sql_yacc.yy"
14979     {}
14980     break;
14981 
14982   case 1046:
14983 
14984 /* Line 1455 of yacc.c  */
14985 #line 5262 "drizzled/sql_yacc.yy"
14986     {}
14987     break;
14988 
14989   case 1047:
14990 
14991 /* Line 1455 of yacc.c  */
14992 #line 5263 "drizzled/sql_yacc.yy"
14993     {}
14994     break;
14995 
14996   case 1048:
14997 
14998 /* Line 1455 of yacc.c  */
14999 #line 5264 "drizzled/sql_yacc.yy"
15000     {}
15001     break;
15002 
15003   case 1049:
15004 
15005 /* Line 1455 of yacc.c  */
15006 #line 5265 "drizzled/sql_yacc.yy"
15007     {}
15008     break;
15009 
15010   case 1050:
15011 
15012 /* Line 1455 of yacc.c  */
15013 #line 5266 "drizzled/sql_yacc.yy"
15014     {}
15015     break;
15016 
15017   case 1051:
15018 
15019 /* Line 1455 of yacc.c  */
15020 #line 5267 "drizzled/sql_yacc.yy"
15021     {}
15022     break;
15023 
15024   case 1052:
15025 
15026 /* Line 1455 of yacc.c  */
15027 #line 5268 "drizzled/sql_yacc.yy"
15028     {}
15029     break;
15030 
15031   case 1053:
15032 
15033 /* Line 1455 of yacc.c  */
15034 #line 5269 "drizzled/sql_yacc.yy"
15035     {}
15036     break;
15037 
15038   case 1054:
15039 
15040 /* Line 1455 of yacc.c  */
15041 #line 5270 "drizzled/sql_yacc.yy"
15042     {}
15043     break;
15044 
15045   case 1055:
15046 
15047 /* Line 1455 of yacc.c  */
15048 #line 5271 "drizzled/sql_yacc.yy"
15049     {}
15050     break;
15051 
15052   case 1056:
15053 
15054 /* Line 1455 of yacc.c  */
15055 #line 5272 "drizzled/sql_yacc.yy"
15056     {}
15057     break;
15058 
15059   case 1057:
15060 
15061 /* Line 1455 of yacc.c  */
15062 #line 5273 "drizzled/sql_yacc.yy"
15063     {}
15064     break;
15065 
15066   case 1058:
15067 
15068 /* Line 1455 of yacc.c  */
15069 #line 5274 "drizzled/sql_yacc.yy"
15070     {}
15071     break;
15072 
15073   case 1059:
15074 
15075 /* Line 1455 of yacc.c  */
15076 #line 5275 "drizzled/sql_yacc.yy"
15077     {}
15078     break;
15079 
15080   case 1060:
15081 
15082 /* Line 1455 of yacc.c  */
15083 #line 5276 "drizzled/sql_yacc.yy"
15084     {}
15085     break;
15086 
15087   case 1061:
15088 
15089 /* Line 1455 of yacc.c  */
15090 #line 5277 "drizzled/sql_yacc.yy"
15091     {}
15092     break;
15093 
15094   case 1062:
15095 
15096 /* Line 1455 of yacc.c  */
15097 #line 5278 "drizzled/sql_yacc.yy"
15098     {}
15099     break;
15100 
15101   case 1063:
15102 
15103 /* Line 1455 of yacc.c  */
15104 #line 5279 "drizzled/sql_yacc.yy"
15105     {}
15106     break;
15107 
15108   case 1064:
15109 
15110 /* Line 1455 of yacc.c  */
15111 #line 5280 "drizzled/sql_yacc.yy"
15112     {}
15113     break;
15114 
15115   case 1065:
15116 
15117 /* Line 1455 of yacc.c  */
15118 #line 5281 "drizzled/sql_yacc.yy"
15119     {}
15120     break;
15121 
15122   case 1066:
15123 
15124 /* Line 1455 of yacc.c  */
15125 #line 5282 "drizzled/sql_yacc.yy"
15126     {}
15127     break;
15128 
15129   case 1067:
15130 
15131 /* Line 1455 of yacc.c  */
15132 #line 5283 "drizzled/sql_yacc.yy"
15133     {}
15134     break;
15135 
15136   case 1068:
15137 
15138 /* Line 1455 of yacc.c  */
15139 #line 5284 "drizzled/sql_yacc.yy"
15140     {}
15141     break;
15142 
15143   case 1069:
15144 
15145 /* Line 1455 of yacc.c  */
15146 #line 5285 "drizzled/sql_yacc.yy"
15147     {}
15148     break;
15149 
15150   case 1070:
15151 
15152 /* Line 1455 of yacc.c  */
15153 #line 5286 "drizzled/sql_yacc.yy"
15154     {}
15155     break;
15156 
15157   case 1071:
15158 
15159 /* Line 1455 of yacc.c  */
15160 #line 5287 "drizzled/sql_yacc.yy"
15161     {}
15162     break;
15163 
15164   case 1072:
15165 
15166 /* Line 1455 of yacc.c  */
15167 #line 5288 "drizzled/sql_yacc.yy"
15168     {}
15169     break;
15170 
15171   case 1073:
15172 
15173 /* Line 1455 of yacc.c  */
15174 #line 5289 "drizzled/sql_yacc.yy"
15175     {}
15176     break;
15177 
15178   case 1074:
15179 
15180 /* Line 1455 of yacc.c  */
15181 #line 5290 "drizzled/sql_yacc.yy"
15182     {}
15183     break;
15184 
15185   case 1075:
15186 
15187 /* Line 1455 of yacc.c  */
15188 #line 5291 "drizzled/sql_yacc.yy"
15189     {}
15190     break;
15191 
15192   case 1076:
15193 
15194 /* Line 1455 of yacc.c  */
15195 #line 5292 "drizzled/sql_yacc.yy"
15196     {}
15197     break;
15198 
15199   case 1077:
15200 
15201 /* Line 1455 of yacc.c  */
15202 #line 5293 "drizzled/sql_yacc.yy"
15203     {}
15204     break;
15205 
15206   case 1078:
15207 
15208 /* Line 1455 of yacc.c  */
15209 #line 5294 "drizzled/sql_yacc.yy"
15210     {}
15211     break;
15212 
15213   case 1079:
15214 
15215 /* Line 1455 of yacc.c  */
15216 #line 5295 "drizzled/sql_yacc.yy"
15217     {}
15218     break;
15219 
15220   case 1080:
15221 
15222 /* Line 1455 of yacc.c  */
15223 #line 5296 "drizzled/sql_yacc.yy"
15224     {}
15225     break;
15226 
15227   case 1081:
15228 
15229 /* Line 1455 of yacc.c  */
15230 #line 5297 "drizzled/sql_yacc.yy"
15231     {}
15232     break;
15233 
15234   case 1082:
15235 
15236 /* Line 1455 of yacc.c  */
15237 #line 5298 "drizzled/sql_yacc.yy"
15238     {}
15239     break;
15240 
15241   case 1083:
15242 
15243 /* Line 1455 of yacc.c  */
15244 #line 5299 "drizzled/sql_yacc.yy"
15245     {}
15246     break;
15247 
15248   case 1084:
15249 
15250 /* Line 1455 of yacc.c  */
15251 #line 5300 "drizzled/sql_yacc.yy"
15252     {}
15253     break;
15254 
15255   case 1085:
15256 
15257 /* Line 1455 of yacc.c  */
15258 #line 5301 "drizzled/sql_yacc.yy"
15259     {}
15260     break;
15261 
15262   case 1086:
15263 
15264 /* Line 1455 of yacc.c  */
15265 #line 5302 "drizzled/sql_yacc.yy"
15266     {}
15267     break;
15268 
15269   case 1087:
15270 
15271 /* Line 1455 of yacc.c  */
15272 #line 5303 "drizzled/sql_yacc.yy"
15273     {}
15274     break;
15275 
15276   case 1088:
15277 
15278 /* Line 1455 of yacc.c  */
15279 #line 5304 "drizzled/sql_yacc.yy"
15280     {}
15281     break;
15282 
15283   case 1089:
15284 
15285 /* Line 1455 of yacc.c  */
15286 #line 5305 "drizzled/sql_yacc.yy"
15287     {}
15288     break;
15289 
15290   case 1090:
15291 
15292 /* Line 1455 of yacc.c  */
15293 #line 5306 "drizzled/sql_yacc.yy"
15294     {}
15295     break;
15296 
15297   case 1091:
15298 
15299 /* Line 1455 of yacc.c  */
15300 #line 5307 "drizzled/sql_yacc.yy"
15301     {}
15302     break;
15303 
15304   case 1092:
15305 
15306 /* Line 1455 of yacc.c  */
15307 #line 5308 "drizzled/sql_yacc.yy"
15308     {}
15309     break;
15310 
15311   case 1093:
15312 
15313 /* Line 1455 of yacc.c  */
15314 #line 5309 "drizzled/sql_yacc.yy"
15315     {}
15316     break;
15317 
15318   case 1094:
15319 
15320 /* Line 1455 of yacc.c  */
15321 #line 5310 "drizzled/sql_yacc.yy"
15322     {}
15323     break;
15324 
15325   case 1095:
15326 
15327 /* Line 1455 of yacc.c  */
15328 #line 5311 "drizzled/sql_yacc.yy"
15329     {}
15330     break;
15331 
15332   case 1096:
15333 
15334 /* Line 1455 of yacc.c  */
15335 #line 5312 "drizzled/sql_yacc.yy"
15336     {}
15337     break;
15338 
15339   case 1097:
15340 
15341 /* Line 1455 of yacc.c  */
15342 #line 5313 "drizzled/sql_yacc.yy"
15343     {}
15344     break;
15345 
15346   case 1098:
15347 
15348 /* Line 1455 of yacc.c  */
15349 #line 5314 "drizzled/sql_yacc.yy"
15350     {}
15351     break;
15352 
15353   case 1099:
15354 
15355 /* Line 1455 of yacc.c  */
15356 #line 5315 "drizzled/sql_yacc.yy"
15357     {}
15358     break;
15359 
15360   case 1100:
15361 
15362 /* Line 1455 of yacc.c  */
15363 #line 5316 "drizzled/sql_yacc.yy"
15364     {}
15365     break;
15366 
15367   case 1101:
15368 
15369 /* Line 1455 of yacc.c  */
15370 #line 5317 "drizzled/sql_yacc.yy"
15371     {}
15372     break;
15373 
15374   case 1102:
15375 
15376 /* Line 1455 of yacc.c  */
15377 #line 5318 "drizzled/sql_yacc.yy"
15378     {}
15379     break;
15380 
15381   case 1103:
15382 
15383 /* Line 1455 of yacc.c  */
15384 #line 5319 "drizzled/sql_yacc.yy"
15385     {}
15386     break;
15387 
15388   case 1104:
15389 
15390 /* Line 1455 of yacc.c  */
15391 #line 5320 "drizzled/sql_yacc.yy"
15392     {}
15393     break;
15394 
15395   case 1105:
15396 
15397 /* Line 1455 of yacc.c  */
15398 #line 5321 "drizzled/sql_yacc.yy"
15399     {}
15400     break;
15401 
15402   case 1106:
15403 
15404 /* Line 1455 of yacc.c  */
15405 #line 5322 "drizzled/sql_yacc.yy"
15406     {}
15407     break;
15408 
15409   case 1107:
15410 
15411 /* Line 1455 of yacc.c  */
15412 #line 5323 "drizzled/sql_yacc.yy"
15413     {}
15414     break;
15415 
15416   case 1108:
15417 
15418 /* Line 1455 of yacc.c  */
15419 #line 5324 "drizzled/sql_yacc.yy"
15420     {}
15421     break;
15422 
15423   case 1109:
15424 
15425 /* Line 1455 of yacc.c  */
15426 #line 5325 "drizzled/sql_yacc.yy"
15427     {}
15428     break;
15429 
15430   case 1110:
15431 
15432 /* Line 1455 of yacc.c  */
15433 #line 5326 "drizzled/sql_yacc.yy"
15434     {}
15435     break;
15436 
15437   case 1111:
15438 
15439 /* Line 1455 of yacc.c  */
15440 #line 5327 "drizzled/sql_yacc.yy"
15441     {}
15442     break;
15443 
15444   case 1112:
15445 
15446 /* Line 1455 of yacc.c  */
15447 #line 5328 "drizzled/sql_yacc.yy"
15448     {}
15449     break;
15450 
15451   case 1113:
15452 
15453 /* Line 1455 of yacc.c  */
15454 #line 5329 "drizzled/sql_yacc.yy"
15455     {}
15456     break;
15457 
15458   case 1114:
15459 
15460 /* Line 1455 of yacc.c  */
15461 #line 5330 "drizzled/sql_yacc.yy"
15462     {}
15463     break;
15464 
15465   case 1115:
15466 
15467 /* Line 1455 of yacc.c  */
15468 #line 5331 "drizzled/sql_yacc.yy"
15469     {}
15470     break;
15471 
15472   case 1116:
15473 
15474 /* Line 1455 of yacc.c  */
15475 #line 5332 "drizzled/sql_yacc.yy"
15476     {}
15477     break;
15478 
15479   case 1117:
15480 
15481 /* Line 1455 of yacc.c  */
15482 #line 5333 "drizzled/sql_yacc.yy"
15483     {}
15484     break;
15485 
15486   case 1118:
15487 
15488 /* Line 1455 of yacc.c  */
15489 #line 5334 "drizzled/sql_yacc.yy"
15490     {}
15491     break;
15492 
15493   case 1119:
15494 
15495 /* Line 1455 of yacc.c  */
15496 #line 5335 "drizzled/sql_yacc.yy"
15497     {}
15498     break;
15499 
15500   case 1120:
15501 
15502 /* Line 1455 of yacc.c  */
15503 #line 5336 "drizzled/sql_yacc.yy"
15504     {}
15505     break;
15506 
15507   case 1121:
15508 
15509 /* Line 1455 of yacc.c  */
15510 #line 5337 "drizzled/sql_yacc.yy"
15511     {}
15512     break;
15513 
15514   case 1122:
15515 
15516 /* Line 1455 of yacc.c  */
15517 #line 5338 "drizzled/sql_yacc.yy"
15518     {}
15519     break;
15520 
15521   case 1123:
15522 
15523 /* Line 1455 of yacc.c  */
15524 #line 5339 "drizzled/sql_yacc.yy"
15525     {}
15526     break;
15527 
15528   case 1124:
15529 
15530 /* Line 1455 of yacc.c  */
15531 #line 5340 "drizzled/sql_yacc.yy"
15532     {}
15533     break;
15534 
15535   case 1125:
15536 
15537 /* Line 1455 of yacc.c  */
15538 #line 5347 "drizzled/sql_yacc.yy"
15539     {
15540             Lex.statement= new statement::SetOption(YYSession);
15541           }
15542     break;
15543 
15544   case 1126:
15545 
15546 /* Line 1455 of yacc.c  */
15547 #line 5351 "drizzled/sql_yacc.yy"
15548     {}
15549     break;
15550 
15551   case 1127:
15552 
15553 /* Line 1455 of yacc.c  */
15554 #line 5355 "drizzled/sql_yacc.yy"
15555     {}
15556     break;
15557 
15558   case 1128:
15559 
15560 /* Line 1455 of yacc.c  */
15561 #line 5356 "drizzled/sql_yacc.yy"
15562     {}
15563     break;
15564 
15565   case 1131:
15566 
15567 /* Line 1455 of yacc.c  */
15568 #line 5365 "drizzled/sql_yacc.yy"
15569     { }
15570     break;
15571 
15572   case 1132:
15573 
15574 /* Line 1455 of yacc.c  */
15575 #line 5367 "drizzled/sql_yacc.yy"
15576     { }
15577     break;
15578 
15579   case 1133:
15580 
15581 /* Line 1455 of yacc.c  */
15582 #line 5371 "drizzled/sql_yacc.yy"
15583     {}
15584     break;
15585 
15586   case 1134:
15587 
15588 /* Line 1455 of yacc.c  */
15589 #line 5372 "drizzled/sql_yacc.yy"
15590     { (yyval.var_type)=OPT_GLOBAL; }
15591     break;
15592 
15593   case 1135:
15594 
15595 /* Line 1455 of yacc.c  */
15596 #line 5373 "drizzled/sql_yacc.yy"
15597     { (yyval.var_type)=OPT_SESSION; }
15598     break;
15599 
15600   case 1136:
15601 
15602 /* Line 1455 of yacc.c  */
15603 #line 5374 "drizzled/sql_yacc.yy"
15604     { (yyval.var_type)=OPT_SESSION; }
15605     break;
15606 
15607   case 1137:
15608 
15609 /* Line 1455 of yacc.c  */
15610 #line 5378 "drizzled/sql_yacc.yy"
15611     { (yyval.num)= OPT_DEFAULT; }
15612     break;
15613 
15614   case 1138:
15615 
15616 /* Line 1455 of yacc.c  */
15617 #line 5379 "drizzled/sql_yacc.yy"
15618     { ((statement::SetOption *)Lex.statement)->one_shot_set= true; (yyval.num)= OPT_SESSION; }
15619     break;
15620 
15621   case 1139:
15622 
15623 /* Line 1455 of yacc.c  */
15624 #line 5383 "drizzled/sql_yacc.yy"
15625     { (yyval.var_type)=OPT_SESSION; }
15626     break;
15627 
15628   case 1140:
15629 
15630 /* Line 1455 of yacc.c  */
15631 #line 5384 "drizzled/sql_yacc.yy"
15632     { (yyval.var_type)=OPT_GLOBAL; }
15633     break;
15634 
15635   case 1141:
15636 
15637 /* Line 1455 of yacc.c  */
15638 #line 5385 "drizzled/sql_yacc.yy"
15639     { (yyval.var_type)=OPT_SESSION; }
15640     break;
15641 
15642   case 1142:
15643 
15644 /* Line 1455 of yacc.c  */
15645 #line 5386 "drizzled/sql_yacc.yy"
15646     { (yyval.var_type)=OPT_SESSION; }
15647     break;
15648 
15649   case 1143:
15650 
15651 /* Line 1455 of yacc.c  */
15652 #line 5390 "drizzled/sql_yacc.yy"
15653     { (yyval.var_type)=OPT_DEFAULT; }
15654     break;
15655 
15656   case 1144:
15657 
15658 /* Line 1455 of yacc.c  */
15659 #line 5391 "drizzled/sql_yacc.yy"
15660     { (yyval.var_type)=OPT_GLOBAL; }
15661     break;
15662 
15663   case 1145:
15664 
15665 /* Line 1455 of yacc.c  */
15666 #line 5392 "drizzled/sql_yacc.yy"
15667     { (yyval.var_type)=OPT_SESSION; }
15668     break;
15669 
15670   case 1146:
15671 
15672 /* Line 1455 of yacc.c  */
15673 #line 5393 "drizzled/sql_yacc.yy"
15674     { (yyval.var_type)=OPT_SESSION; }
15675     break;
15676 
15677   case 1149:
15678 
15679 /* Line 1455 of yacc.c  */
15680 #line 5403 "drizzled/sql_yacc.yy"
15681     {
15682             if ((yyvsp[(2) - (4)].variable).var)
15683             { /* System variable */
15684               if ((yyvsp[(1) - (4)].var_type))
15685               {
15686                 Lex.option_type= (yyvsp[(1) - (4)].var_type);
15687               }
15688               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))));
15689             }
15690           }
15691     break;
15692 
15693   case 1150:
15694 
15695 /* Line 1455 of yacc.c  */
15696 #line 5414 "drizzled/sql_yacc.yy"
15697     {
15698             Lex.option_type= (yyvsp[(1) - (5)].var_type);
15699             Lex.var_list.push_back(SetVarPtr(new set_var(Lex.option_type,
15700                                               find_sys_var("tx_isolation"),
15701                                               &null_lex_str,
15702                                               new Item_int((int32_t)
15703                                               (yyvsp[(5) - (5)].tx_isolation)))));
15704           }
15705     break;
15706 
15707   case 1151:
15708 
15709 /* Line 1455 of yacc.c  */
15710 #line 5426 "drizzled/sql_yacc.yy"
15711     {
15712             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)))));
15713           }
15714     break;
15715 
15716   case 1152:
15717 
15718 /* Line 1455 of yacc.c  */
15719 #line 5430 "drizzled/sql_yacc.yy"
15720     {
15721             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))));
15722           }
15723     break;
15724 
15725   case 1153:
15726 
15727 /* Line 1455 of yacc.c  */
15728 #line 5436 "drizzled/sql_yacc.yy"
15729     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15730     break;
15731 
15732   case 1154:
15733 
15734 /* Line 1455 of yacc.c  */
15735 #line 5437 "drizzled/sql_yacc.yy"
15736     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15737     break;
15738 
15739   case 1155:
15740 
15741 /* Line 1455 of yacc.c  */
15742 #line 5438 "drizzled/sql_yacc.yy"
15743     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15744     break;
15745 
15746   case 1156:
15747 
15748 /* Line 1455 of yacc.c  */
15749 #line 5443 "drizzled/sql_yacc.yy"
15750     {
15751             (yyval.lex_str).str= YYSession->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
15752             (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
15753           }
15754     break;
15755 
15756   case 1157:
15757 
15758 /* Line 1455 of yacc.c  */
15759 #line 5447 "drizzled/sql_yacc.yy"
15760     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
15761     break;
15762 
15763   case 1158:
15764 
15765 /* Line 1455 of yacc.c  */
15766 #line 5452 "drizzled/sql_yacc.yy"
15767     {
15768             /* We have to lookup here since local vars can shadow sysvars */
15769             {
15770               /* Not an SP local variable */
15771               sys_var *tmp= find_sys_var(std::string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length));
15772               if (!tmp)
15773                 DRIZZLE_YYABORT;
15774               (yyval.variable).var= tmp;
15775               (yyval.variable).base_name= null_lex_str;
15776             }
15777           }
15778     break;
15779 
15780   case 1159:
15781 
15782 /* Line 1455 of yacc.c  */
15783 #line 5466 "drizzled/sql_yacc.yy"
15784     { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
15785     break;
15786 
15787   case 1160:
15788 
15789 /* Line 1455 of yacc.c  */
15790 #line 5467 "drizzled/sql_yacc.yy"
15791     { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
15792     break;
15793 
15794   case 1161:
15795 
15796 /* Line 1455 of yacc.c  */
15797 #line 5468 "drizzled/sql_yacc.yy"
15798     { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
15799     break;
15800 
15801   case 1162:
15802 
15803 /* Line 1455 of yacc.c  */
15804 #line 5469 "drizzled/sql_yacc.yy"
15805     { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
15806     break;
15807 
15808   case 1163:
15809 
15810 /* Line 1455 of yacc.c  */
15811 #line 5473 "drizzled/sql_yacc.yy"
15812     { (yyval.item)=(yyvsp[(1) - (1)].item); }
15813     break;
15814 
15815   case 1164:
15816 
15817 /* Line 1455 of yacc.c  */
15818 #line 5474 "drizzled/sql_yacc.yy"
15819     { (yyval.item)=0; }
15820     break;
15821 
15822   case 1165:
15823 
15824 /* Line 1455 of yacc.c  */
15825 #line 5475 "drizzled/sql_yacc.yy"
15826     { (yyval.item)=new Item_string("ON",  2, system_charset_info); }
15827     break;
15828 
15829   case 1166:
15830 
15831 /* Line 1455 of yacc.c  */
15832 #line 5476 "drizzled/sql_yacc.yy"
15833     { (yyval.item)=new Item_string("ALL", 3, system_charset_info); }
15834     break;
15835 
15836   case 1167:
15837 
15838 /* Line 1455 of yacc.c  */
15839 #line 5477 "drizzled/sql_yacc.yy"
15840     { (yyval.item)=new Item_string("binary", 6, system_charset_info); }
15841     break;
15842 
15843   case 1170:
15844 
15845 /* Line 1455 of yacc.c  */
15846 #line 5487 "drizzled/sql_yacc.yy"
15847     {
15848             Lex.statement= new statement::UnlockTables(YYSession);
15849           }
15850     break;
15851 
15852   case 1171:
15853 
15854 /* Line 1455 of yacc.c  */
15855 #line 5491 "drizzled/sql_yacc.yy"
15856     {}
15857     break;
15858 
15859   case 1172:
15860 
15861 /* Line 1455 of yacc.c  */
15862 #line 5496 "drizzled/sql_yacc.yy"
15863     {
15864             Lex.statement= new statement::StartTransaction(YYSession);
15865           }
15866     break;
15867 
15868   case 1173:
15869 
15870 /* Line 1455 of yacc.c  */
15871 #line 5499 "drizzled/sql_yacc.yy"
15872     {}
15873     break;
15874 
15875   case 1174:
15876 
15877 /* Line 1455 of yacc.c  */
15878 #line 5503 "drizzled/sql_yacc.yy"
15879     {}
15880     break;
15881 
15882   case 1175:
15883 
15884 /* Line 1455 of yacc.c  */
15885 #line 5504 "drizzled/sql_yacc.yy"
15886     {}
15887     break;
15888 
15889   case 1176:
15890 
15891 /* Line 1455 of yacc.c  */
15892 #line 5509 "drizzled/sql_yacc.yy"
15893     { (yyval.num)= (YYSession->variables.completion_type == 1); }
15894     break;
15895 
15896   case 1177:
15897 
15898 /* Line 1455 of yacc.c  */
15899 #line 5510 "drizzled/sql_yacc.yy"
15900     { (yyval.num)=0; }
15901     break;
15902 
15903   case 1178:
15904 
15905 /* Line 1455 of yacc.c  */
15906 #line 5511 "drizzled/sql_yacc.yy"
15907     { (yyval.num)=1; }
15908     break;
15909 
15910   case 1179:
15911 
15912 /* Line 1455 of yacc.c  */
15913 #line 5516 "drizzled/sql_yacc.yy"
15914     { (yyval.num)= (YYSession->variables.completion_type == 2); }
15915     break;
15916 
15917   case 1180:
15918 
15919 /* Line 1455 of yacc.c  */
15920 #line 5517 "drizzled/sql_yacc.yy"
15921     { (yyval.num)=1; }
15922     break;
15923 
15924   case 1181:
15925 
15926 /* Line 1455 of yacc.c  */
15927 #line 5518 "drizzled/sql_yacc.yy"
15928     { (yyval.num)=0; }
15929     break;
15930 
15931   case 1182:
15932 
15933 /* Line 1455 of yacc.c  */
15934 #line 5522 "drizzled/sql_yacc.yy"
15935     {}
15936     break;
15937 
15938   case 1183:
15939 
15940 /* Line 1455 of yacc.c  */
15941 #line 5523 "drizzled/sql_yacc.yy"
15942     {}
15943     break;
15944 
15945   case 1184:
15946 
15947 /* Line 1455 of yacc.c  */
15948 #line 5528 "drizzled/sql_yacc.yy"
15949     {
15950             Lex.statement= new statement::Commit(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
15951           }
15952     break;
15953 
15954   case 1185:
15955 
15956 /* Line 1455 of yacc.c  */
15957 #line 5535 "drizzled/sql_yacc.yy"
15958     {
15959             Lex.statement= new statement::Rollback(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
15960           }
15961     break;
15962 
15963   case 1186:
15964 
15965 /* Line 1455 of yacc.c  */
15966 #line 5539 "drizzled/sql_yacc.yy"
15967     {
15968             Lex.statement= new statement::RollbackToSavepoint(YYSession, (yyvsp[(5) - (5)].lex_str));
15969           }
15970     break;
15971 
15972   case 1187:
15973 
15974 /* Line 1455 of yacc.c  */
15975 #line 5546 "drizzled/sql_yacc.yy"
15976     {
15977             Lex.statement= new statement::Savepoint(YYSession, (yyvsp[(2) - (2)].lex_str));
15978           }
15979     break;
15980 
15981   case 1188:
15982 
15983 /* Line 1455 of yacc.c  */
15984 #line 5553 "drizzled/sql_yacc.yy"
15985     {
15986             Lex.statement= new statement::ReleaseSavepoint(YYSession, (yyvsp[(3) - (3)].lex_str));
15987           }
15988     break;
15989 
15990   case 1190:
15991 
15992 /* Line 1455 of yacc.c  */
15993 #line 5568 "drizzled/sql_yacc.yy"
15994     {}
15995     break;
15996 
15997   case 1192:
15998 
15999 /* Line 1455 of yacc.c  */
16000 #line 5574 "drizzled/sql_yacc.yy"
16001     {
16002             if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(2) - (2)].num)))
16003               DRIZZLE_YYABORT;
16004           }
16005     break;
16006 
16007   case 1193:
16008 
16009 /* Line 1455 of yacc.c  */
16010 #line 5579 "drizzled/sql_yacc.yy"
16011     {
16012             /*
16013               Remove from the name resolution context stack the context of the
16014               last select in the union.
16015             */
16016             Lex.pop_context();
16017           }
16018     break;
16019 
16020   case 1194:
16021 
16022 /* Line 1455 of yacc.c  */
16023 #line 5589 "drizzled/sql_yacc.yy"
16024     { (yyval.num)= 0; }
16025     break;
16026 
16027   case 1195:
16028 
16029 /* Line 1455 of yacc.c  */
16030 #line 5590 "drizzled/sql_yacc.yy"
16031     { (yyval.num)= 1; }
16032     break;
16033 
16034   case 1196:
16035 
16036 /* Line 1455 of yacc.c  */
16037 #line 5591 "drizzled/sql_yacc.yy"
16038     { (yyval.num)= 1; }
16039     break;
16040 
16041   case 1197:
16042 
16043 /* Line 1455 of yacc.c  */
16044 #line 5595 "drizzled/sql_yacc.yy"
16045     {
16046             assert(Lex.current_select->linkage != GLOBAL_OPTIONS_TYPE);
16047             Select_Lex *sel= Lex.current_select;
16048             Select_Lex_Unit *unit= sel->master_unit();
16049             Select_Lex *fake= unit->fake_select_lex;
16050             if (fake)
16051             {
16052               unit->global_parameters= fake;
16053               fake->no_table_names_allowed= 1;
16054               Lex.current_select= fake;
16055             }
16056             YYSession->setWhere("global ORDER clause");
16057           }
16058     break;
16059 
16060   case 1198:
16061 
16062 /* Line 1455 of yacc.c  */
16063 #line 5609 "drizzled/sql_yacc.yy"
16064     {
16065             YYSession->lex().current_select->no_table_names_allowed= 0;
16066             YYSession->setWhere("");
16067           }
16068     break;
16069 
16070   case 1201:
16071 
16072 /* Line 1455 of yacc.c  */
16073 #line 5621 "drizzled/sql_yacc.yy"
16074     { (yyval.num)=1; }
16075     break;
16076 
16077   case 1202:
16078 
16079 /* Line 1455 of yacc.c  */
16080 #line 5622 "drizzled/sql_yacc.yy"
16081     { (yyval.num)=1; }
16082     break;
16083 
16084   case 1203:
16085 
16086 /* Line 1455 of yacc.c  */
16087 #line 5623 "drizzled/sql_yacc.yy"
16088     { (yyval.num)=0; }
16089     break;
16090 
16091   case 1204:
16092 
16093 /* Line 1455 of yacc.c  */
16094 #line 5628 "drizzled/sql_yacc.yy"
16095     {
16096             (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16097           }
16098     break;
16099 
16100   case 1205:
16101 
16102 /* Line 1455 of yacc.c  */
16103 #line 5632 "drizzled/sql_yacc.yy"
16104     {
16105             (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16106           }
16107     break;
16108 
16109   case 1207:
16110 
16111 /* Line 1455 of yacc.c  */
16112 #line 5641 "drizzled/sql_yacc.yy"
16113     {
16114             if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
16115               DRIZZLE_YYABORT;
16116           }
16117     break;
16118 
16119   case 1208:
16120 
16121 /* Line 1455 of yacc.c  */
16122 #line 5646 "drizzled/sql_yacc.yy"
16123     {
16124             Lex.pop_context();
16125             (yyval.select_lex)= (yyvsp[(1) - (5)].select_lex);
16126           }
16127     break;
16128 
16129   case 1209:
16130 
16131 /* Line 1455 of yacc.c  */
16132 #line 5655 "drizzled/sql_yacc.yy"
16133     {
16134             (yyval.select_lex)= (yyvsp[(2) - (3)].select_lex);
16135           }
16136     break;
16137 
16138   case 1210:
16139 
16140 /* Line 1455 of yacc.c  */
16141 #line 5661 "drizzled/sql_yacc.yy"
16142     {
16143             if (not Lex.expr_allows_subselect)
16144             {
16145               parser::my_parse_error(YYSession->m_lip);
16146               DRIZZLE_YYABORT;
16147             }
16148             /*
16149               we are making a "derived table" for the parenthesis
16150               as we need to have a lex level to fit the union
16151               after the parenthesis, e.g.
16152               (SELECT .. ) UNION ...  becomes
16153               SELECT * FROM ((SELECT ...) UNION ...)
16154             */
16155             if (new_select(&Lex, 1))
16156               DRIZZLE_YYABORT;
16157           }
16158     break;
16159 
16160   case 1211:
16161 
16162 /* Line 1455 of yacc.c  */
16163 #line 5680 "drizzled/sql_yacc.yy"
16164     {
16165             Lex.pop_context();
16166             Select_Lex *child= Lex.current_select;
16167             Lex.current_select= Lex.current_select->return_after_parsing();
16168             Lex.nest_level--;
16169             Lex.current_select->n_child_sum_items += child->n_sum_items;
16170             /*
16171               A subselect can add fields to an outer select. Reserve space for
16172               them.
16173             */
16174             Lex.current_select->select_n_where_fields+=
16175             child->select_n_where_fields;
16176           }
16177     break;
16178 
16179 
16180 
16181 /* Line 1455 of yacc.c  */
16182 #line 16183 "drizzled/sql_yacc.cc"
16183       default: break;
16184     }
16185   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
16186 
16187   YYPOPSTACK (yylen);
16188   yylen = 0;
16189   YY_STACK_PRINT (yyss, yyssp);
16190 
16191   *++yyvsp = yyval;
16192 
16193   /* Now `shift' the result of the reduction.  Determine what state
16194      that goes to, based on the state we popped back to and the rule
16195      number reduced by.  */
16196 
16197   yyn = yyr1[yyn];
16198 
16199   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
16200   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
16201     yystate = yytable[yystate];
16202   else
16203     yystate = yydefgoto[yyn - YYNTOKENS];
16204 
16205   goto yynewstate;
16206 
16207 
16208 /*------------------------------------.
16209 | yyerrlab -- here on detecting error |
16210 `------------------------------------*/
16211 yyerrlab:
16212   /* If not already recovering from an error, report this error.  */
16213   if (!yyerrstatus)
16214     {
16215       ++yynerrs;
16216 #if ! YYERROR_VERBOSE
16217       yyerror (session, YY_("syntax error"));
16218 #else
16219       {
16220   YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
16221   if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
16222     {
16223       YYSIZE_T yyalloc = 2 * yysize;
16224       if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
16225         yyalloc = YYSTACK_ALLOC_MAXIMUM;
16226       if (yymsg != yymsgbuf)
16227         YYSTACK_FREE (yymsg);
16228       yymsg = (char *) YYSTACK_ALLOC (yyalloc);
16229       if (yymsg)
16230         yymsg_alloc = yyalloc;
16231       else
16232         {
16233     yymsg = yymsgbuf;
16234     yymsg_alloc = sizeof yymsgbuf;
16235         }
16236     }
16237 
16238   if (0 < yysize && yysize <= yymsg_alloc)
16239     {
16240       (void) yysyntax_error (yymsg, yystate, yychar);
16241       yyerror (session, yymsg);
16242     }
16243   else
16244     {
16245       yyerror (session, YY_("syntax error"));
16246       if (yysize != 0)
16247         goto yyexhaustedlab;
16248     }
16249       }
16250 #endif
16251     }
16252 
16253 
16254 
16255   if (yyerrstatus == 3)
16256     {
16257       /* If just tried and failed to reuse lookahead token after an
16258    error, discard it.  */
16259 
16260       if (yychar <= YYEOF)
16261   {
16262     /* Return failure if at end of input.  */
16263     if (yychar == YYEOF)
16264       YYABORT;
16265   }
16266       else
16267   {
16268     yydestruct ("Error: discarding",
16269           yytoken, &yylval, session);
16270     yychar = YYEMPTY;
16271   }
16272     }
16273 
16274   /* Else will try to reuse lookahead token after shifting the error
16275      token.  */
16276   goto yyerrlab1;
16277 
16278 
16279 /*---------------------------------------------------.
16280 | yyerrorlab -- error raised explicitly by YYERROR.  |
16281 `---------------------------------------------------*/
16282 yyerrorlab:
16283 
16284   /* Pacify compilers like GCC when the user code never invokes
16285      YYERROR and the label yyerrorlab therefore never appears in user
16286      code.  */
16287   if (/*CONSTCOND*/ 0)
16288      goto yyerrorlab;
16289 
16290   /* Do not reclaim the symbols of the rule which action triggered
16291      this YYERROR.  */
16292   YYPOPSTACK (yylen);
16293   yylen = 0;
16294   YY_STACK_PRINT (yyss, yyssp);
16295   yystate = *yyssp;
16296   goto yyerrlab1;
16297 
16298 
16299 /*-------------------------------------------------------------.
16300 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
16301 `-------------------------------------------------------------*/
16302 yyerrlab1:
16303   yyerrstatus = 3;  /* Each real token shifted decrements this.  */
16304 
16305   for (;;)
16306     {
16307       yyn = yypact[yystate];
16308       if (yyn != YYPACT_NINF)
16309   {
16310     yyn += YYTERROR;
16311     if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
16312       {
16313         yyn = yytable[yyn];
16314         if (0 < yyn)
16315     break;
16316       }
16317   }
16318 
16319       /* Pop the current state because it cannot handle the error token.  */
16320       if (yyssp == yyss)
16321   YYABORT;
16322 
16323 
16324       yydestruct ("Error: popping",
16325       yystos[yystate], yyvsp, session);
16326       YYPOPSTACK (1);
16327       yystate = *yyssp;
16328       YY_STACK_PRINT (yyss, yyssp);
16329     }
16330 
16331   *++yyvsp = yylval;
16332 
16333 
16334   /* Shift the error token.  */
16335   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
16336 
16337   yystate = yyn;
16338   goto yynewstate;
16339 
16340 
16341 /*-------------------------------------.
16342 | yyacceptlab -- YYACCEPT comes here.  |
16343 `-------------------------------------*/
16344 yyacceptlab:
16345   yyresult = 0;
16346   goto yyreturn;
16347 
16348 /*-----------------------------------.
16349 | yyabortlab -- YYABORT comes here.  |
16350 `-----------------------------------*/
16351 yyabortlab:
16352   yyresult = 1;
16353   goto yyreturn;
16354 
16355 #if !defined(yyoverflow) || YYERROR_VERBOSE
16356 /*-------------------------------------------------.
16357 | yyexhaustedlab -- memory exhaustion comes here.  |
16358 `-------------------------------------------------*/
16359 yyexhaustedlab:
16360   yyerror (session, YY_("memory exhausted"));
16361   yyresult = 2;
16362   /* Fall through.  */
16363 #endif
16364 
16365 yyreturn:
16366   if (yychar != YYEMPTY)
16367      yydestruct ("Cleanup: discarding lookahead",
16368      yytoken, &yylval, session);
16369   /* Do not reclaim the symbols of the rule which action triggered
16370      this YYABORT or YYACCEPT.  */
16371   YYPOPSTACK (yylen);
16372   YY_STACK_PRINT (yyss, yyssp);
16373   while (yyssp != yyss)
16374     {
16375       yydestruct ("Cleanup: popping",
16376       yystos[*yyssp], yyvsp, session);
16377       YYPOPSTACK (1);
16378     }
16379 #ifndef yyoverflow
16380   if (yyss != yyssa)
16381     YYSTACK_FREE (yyss);
16382 #endif
16383 #if YYERROR_VERBOSE
16384   if (yymsg != yymsgbuf)
16385     YYSTACK_FREE (yymsg);
16386 #endif
16387   /* Make sure YYID is used.  */
16388   return YYID (yyresult);
16389 }
16390 
16391 
16392