diff -r a400ddf1b765 include/mysql_com.h --- a/include/mysql_com.h Wed Apr 02 00:54:36 2008 +0200 +++ b/include/mysql_com.h Wed Apr 02 00:55:46 2008 +0200 @@ -106,6 +106,8 @@ thread */ #define REFRESH_MASTER 128 /* Remove all bin logs in the index and truncate the index */ +#define REFRESH_TABLE_STATS 256 /* Refresh table stats hash table */ +#define REFRESH_INDEX_STATS 512 /* Refresh index stats hash table */ /* The following can't be set with mysql_refresh() */ #define REFRESH_READ_LOCK 16384 /* Lock tables for read */ diff -r a400ddf1b765 sql/ha_innodb.cc --- a/sql/ha_innodb.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/ha_innodb.cc Wed Apr 02 00:55:46 2008 +0200 @@ -3278,6 +3278,8 @@ error = row_insert_for_mysql((byte*) record, prebuilt); + if (error == DB_SUCCESS) rows_changed++; + if (error == DB_SUCCESS && auto_inc_used) { /* Fetch the value that was set in the autoincrement field */ @@ -3531,6 +3533,8 @@ error = row_update_for_mysql((byte*) old_row, prebuilt); + if (error == DB_SUCCESS) rows_changed++; + innodb_srv_conc_exit_innodb(prebuilt->trx); error = convert_error_code_to_mysql(error, user_thd); @@ -3578,6 +3582,8 @@ innodb_srv_conc_enter_innodb(prebuilt->trx); error = row_update_for_mysql((byte*) record, prebuilt); + + if (error == DB_SUCCESS) rows_changed++; innodb_srv_conc_exit_innodb(prebuilt->trx); @@ -3840,6 +3846,9 @@ if (ret == DB_SUCCESS) { error = 0; table->status = 0; + rows_read++; + if (active_index >= 0 && active_index < MAX_KEY) + index_rows_read[active_index]++; } else if (ret == DB_RECORD_NOT_FOUND) { error = HA_ERR_KEY_NOT_FOUND; @@ -3993,6 +4002,9 @@ if (ret == DB_SUCCESS) { error = 0; table->status = 0; + rows_read++; + if (active_index >= 0 && active_index < MAX_KEY) + index_rows_read[active_index]++; } else if (ret == DB_RECORD_NOT_FOUND) { error = HA_ERR_END_OF_FILE; diff -r a400ddf1b765 sql/ha_myisam.cc --- a/sql/ha_myisam.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/ha_myisam.cc Wed Apr 02 00:55:46 2008 +0200 @@ -662,7 +662,9 @@ if ((error= update_auto_increment())) return error; } - return mi_write(file,buf); + int error=mi_write(file,buf); + if (!error) rows_changed++; + return error; } int ha_myisam::check(THD* thd, HA_CHECK_OPT* check_opt) @@ -1519,13 +1521,17 @@ statistic_increment(table->in_use->status_var.ha_update_count,&LOCK_status); if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_UPDATE) table->timestamp_field->set_time(); - return mi_update(file,old_data,new_data); + int error=mi_update(file,old_data,new_data); + if (!error) rows_changed++; + return error; } int ha_myisam::delete_row(const byte * buf) { statistic_increment(table->in_use->status_var.ha_delete_count,&LOCK_status); - return mi_delete(file,buf); + int error=mi_delete(file,buf); + if (!error) rows_changed++; + return error; } int ha_myisam::index_read(byte * buf, const byte * key, @@ -1536,6 +1542,13 @@ &LOCK_status); int error=mi_rkey(file,buf,active_index, key, key_len, find_flag); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + + int inx = (active_index == -1) ? file->lastinx : active_index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1546,6 +1559,14 @@ &LOCK_status); int error=mi_rkey(file,buf,index, key, key_len, find_flag); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + +// int inx = (active_index == -1) ? file->lastinx : active_index; + int inx = index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1556,6 +1577,13 @@ &LOCK_status); int error=mi_rkey(file,buf,active_index, key, key_len, HA_READ_PREFIX_LAST); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + + int inx = (active_index == -1) ? file->lastinx : active_index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1566,6 +1594,13 @@ &LOCK_status); int error=mi_rnext(file,buf,active_index); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + + int inx = (active_index == -1) ? file->lastinx : active_index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1576,6 +1611,13 @@ &LOCK_status); int error=mi_rprev(file,buf, active_index); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + + int inx = (active_index == -1) ? file->lastinx : active_index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1586,6 +1628,13 @@ &LOCK_status); int error=mi_rfirst(file, buf, active_index); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + + int inx = (active_index == -1) ? file->lastinx : active_index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1596,6 +1645,13 @@ &LOCK_status); int error=mi_rlast(file, buf, active_index); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + + int inx = (active_index == -1) ? file->lastinx : active_index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1608,6 +1664,13 @@ &LOCK_status); int error=mi_rnext_same(file,buf); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) { + rows_read++; + + int inx = (active_index == -1) ? file->lastinx : active_index; + if (inx >= 0 && inx < MAX_KEY) + index_rows_read[inx]++; + } return error; } @@ -1625,6 +1688,7 @@ &LOCK_status); int error=mi_scan(file, buf); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) rows_read++; return error; } @@ -1639,6 +1703,7 @@ &LOCK_status); int error=mi_rrnd(file, buf, my_get_ptr(pos,ref_length)); table->status=error ? STATUS_NOT_FOUND: 0; + if (!error) rows_read++; return error; } diff -r a400ddf1b765 sql/handler.cc --- a/sql/handler.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/handler.cc Wed Apr 02 00:55:46 2008 +0200 @@ -19,6 +19,12 @@ #ifdef USE_PRAGMA_IMPLEMENTATION #pragma implementation // gcc: Class implementation #endif + +/* + * Ugh. Something is fishy with the SAFE_MUTEX stuff in include/my_pthread.h. + * This makes things compile with gcc 4.1 + */ +#include #include "mysql_priv.h" #include "ha_heap.h" @@ -752,6 +758,7 @@ error=1; } statistic_increment(thd->status_var.ha_commit_count,&LOCK_status); + thd->diff_commit_trans++; *ht= 0; } trans->nht=0; @@ -808,6 +815,7 @@ error=1; } statistic_increment(thd->status_var.ha_rollback_count,&LOCK_status); + thd->diff_rollback_trans++; *ht= 0; } trans->nht=0; @@ -1196,6 +1204,7 @@ error=1; } statistic_increment(thd->status_var.ha_rollback_count,&LOCK_status); + thd->diff_rollback_trans++; *ht=0; // keep it conveniently zero-filled } DBUG_RETURN(error); @@ -1420,6 +1429,8 @@ else dupp_ref=ref+ALIGN_SIZE(ref_length); } + rows_read = rows_changed = 0; + memset(index_rows_read, 0, sizeof(index_rows_read)); DBUG_RETURN(error); } @@ -2195,6 +2206,97 @@ return error; } +// Updates the global table stats with the TABLE this handler represents. +void handler::update_global_table_stats() { + if (!rows_read && !rows_changed) return; // Nothing to update. + // table_cache_key is db_name + '\0' + table_name + '\0'. + if (!table->s || !table->s->table_cache_key || !table->s->table_name) return; + + TABLE_STATS* table_stats; + char key[NAME_LEN * 2 + 2]; + // [db] + '.' + [table] + sprintf(key, "%s.%s", table->s->table_cache_key, table->s->table_name); + + pthread_mutex_lock(&LOCK_global_table_stats); + // Gets the global table stats, creating one if necessary. + if (!(table_stats = (TABLE_STATS*)hash_search(&global_table_stats, + (byte*)key, + strlen(key)))) { + if (!(table_stats = ((TABLE_STATS*) + my_malloc(sizeof(TABLE_STATS), MYF(MY_WME))))) { + // Out of memory. + sql_print_error("Allocating table stats failed."); + goto end; + } + strncpy(table_stats->table, key, sizeof(table_stats->table)); + table_stats->rows_read = 0; + table_stats->rows_changed = 0; + table_stats->rows_changed_x_indexes = 0; + + if (my_hash_insert(&global_table_stats, (byte*)table_stats)) { + // Out of memory. + sql_print_error("Inserting table stats failed."); + my_free((char*)table_stats, 0); + goto end; + } + } + // Updates the global table stats. + table_stats->rows_read += rows_read; + table_stats->rows_changed += rows_changed; + table_stats->rows_changed_x_indexes += + rows_changed * (table->s->keys ? table->s->keys : 1); + rows_read = rows_changed = 0; +end: + pthread_mutex_unlock(&LOCK_global_table_stats); +} + +// Updates the global index stats with this handler's accumulated index reads. +void handler::update_global_index_stats() { + // table_cache_key is db_name + '\0' + table_name + '\0'. + if (!table->s || !table->s->table_cache_key || !table->s->table_name) return; + + for (int x = 0; x < table->s->keys; x++) { + if (index_rows_read[x]) { + // Rows were read using this index. + KEY* key_info = &table->key_info[x]; + + if (!key_info->name) continue; + + INDEX_STATS* index_stats; + char key[NAME_LEN * 3 + 3]; + // [db] + '.' + [table] + '.' + [index] + sprintf(key, "%s.%s.%s", table->s->table_cache_key, + table->s->table_name, key_info->name); + + pthread_mutex_lock(&LOCK_global_index_stats); + // Gets the global index stats, creating one if necessary. + if (!(index_stats = (INDEX_STATS*)hash_search(&global_index_stats, + (byte*)key, + strlen(key)))) { + if (!(index_stats = ((INDEX_STATS*) + my_malloc(sizeof(INDEX_STATS), MYF(MY_WME))))) { + // Out of memory. + sql_print_error("Allocating index stats failed."); + goto end; + } + strncpy(index_stats->index, key, sizeof(index_stats->index)); + index_stats->rows_read = 0; + + if (my_hash_insert(&global_index_stats, (byte*)index_stats)) { + // Out of memory. + sql_print_error("Inserting index stats failed."); + my_free((char*)index_stats, 0); + goto end; + } + } + // Updates the global index stats. + index_stats->rows_read += index_rows_read[x]; + index_rows_read[x] = 0; +end: + pthread_mutex_unlock(&LOCK_global_index_stats); + } + } +} /**************************************************************************** ** Some general functions that isn't in the handler class diff -r a400ddf1b765 sql/handler.h --- a/sql/handler.h Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/handler.h Wed Apr 02 00:55:46 2008 +0200 @@ -30,6 +30,10 @@ #if defined(HAVE_BERKELEY_DB) || defined(HAVE_INNOBASE_DB) || \ defined(HAVE_NDBCLUSTER_DB) #define USING_TRANSACTIONS +#endif + +#if MAX_KEY > 128 +#error MAX_KEY is too large. Values up to 128 are supported. #endif // the following is for checking tables @@ -550,6 +554,9 @@ bool auto_increment_column_changed; bool implicit_emptied; /* Can be !=0 only if HEAP */ const COND *pushed_cond; + ulonglong rows_read; + ulonglong rows_changed; + ulonglong index_rows_read[MAX_KEY]; handler(const handlerton *ht_arg, TABLE *table_arg) :table(table_arg), ht(ht_arg), @@ -560,8 +567,10 @@ key_used_on_scan(MAX_KEY), active_index(MAX_KEY), ref_length(sizeof(my_off_t)), block_size(0), raid_type(0), ft_handler(0), inited(NONE), implicit_emptied(0), - pushed_cond(NULL) - {} + pushed_cond(NULL), rows_read(0), rows_changed(0) + { + memset(index_rows_read, 0, sizeof(index_rows_read)); + } virtual ~handler(void) { /* TODO: DBUG_ASSERT(inited == NONE); */ } virtual handler *clone(MEM_ROOT *mem_root); int ha_open(const char *name, int mode, int test_if_locked); @@ -570,7 +579,11 @@ virtual void print_error(int error, myf errflag); virtual bool get_error_message(int error, String *buf); uint get_dup_key(int error); - void change_table_ptr(TABLE *table_arg) { table=table_arg; } + void change_table_ptr(TABLE *table_arg) { + table=table_arg; + rows_read = rows_changed = 0; + memset(index_rows_read, 0, sizeof(index_rows_read)); + } virtual double scan_time() { return ulonglong2double(data_file_length) / IO_SIZE + 2; } virtual double read_time(uint index, uint ranges, ha_rows rows) @@ -825,6 +838,9 @@ virtual bool is_crashed() const { return 0; } virtual bool auto_repair() const { return 0; } + void update_global_table_stats(); + void update_global_index_stats(); + /* default rename_table() and delete_table() rename/delete files with a given name and extensions from bas_ext() diff -r a400ddf1b765 sql/lex.h --- a/sql/lex.h Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/lex.h Wed Apr 02 00:55:46 2008 +0200 @@ -238,6 +238,7 @@ { "IN", SYM(IN_SYM)}, { "INDEX", SYM(INDEX_SYM)}, { "INDEXES", SYM(INDEXES)}, + { "INDEX_STATISTICS", SYM(INDEX_STATS_SYM)}, { "INFILE", SYM(INFILE)}, { "INNER", SYM(INNER_SYM)}, { "INNOBASE", SYM(INNOBASE_SYM)}, @@ -487,6 +488,7 @@ { "TABLE", SYM(TABLE_SYM)}, { "TABLES", SYM(TABLES)}, { "TABLESPACE", SYM(TABLESPACE)}, + { "TABLE_STATISTICS", SYM(TABLE_STATS_SYM)}, { "TEMPORARY", SYM(TEMPORARY)}, { "TEMPTABLE", SYM(TEMPTABLE_SYM)}, { "TERMINATED", SYM(TERMINATED)}, @@ -524,6 +526,7 @@ { "USE", SYM(USE_SYM)}, { "USER", SYM(USER)}, { "USER_RESOURCES", SYM(RESOURCES)}, + { "USER_STATISTICS", SYM(USER_STATS_SYM)}, { "USE_FRM", SYM(USE_FRM)}, { "USING", SYM(USING)}, { "UTC_DATE", SYM(UTC_DATE_SYM)}, diff -r a400ddf1b765 sql/lex_hash.h --- a/sql/lex_hash.h Wed Apr 02 00:54:36 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6711 +0,0 @@ -/* - - Do not edit this file directly! - -*/ -/* Copyright (C) 2001-2004 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston - MA 02110-1301 USA. */ - -/* Do not edit this file! This is generated by gen_lex_hash.cc -that seeks for a perfect hash function */ - -#include "lex.h" - -static uchar sql_functions_map[15820]= { -'<', 'Y', 26, 0, -'!', '|', 56, 0, -'<', 'X', 172, 0, -'A', 'Y', 108, 1, -'A', 'W', 51, 3, -'A', 'W', 57, 5, -'A', 'W', 178, 6, -'A', 'Z', 146, 8, -'A', 'V', 158, 10, -'A', 'Y', 118, 11, -'A', 'U', 75, 12, -'C', 'V', 4, 13, -'C', 'U', 201, 13, -'A', 'U', 248, 13, -'D', 'S', 102, 14, -'C', 'S', 183, 14, -'C', 'S', 206, 14, -'G', 'S', 7, 15, -'M', 'U', 47, 15, -'M', 'M', 77, 15, -0, 0, 249, 1, -0, 0, 113, 255, -0, 0, 114, 255, -0, 0, 3, 1, -0, 0, 176, 255, -0, 0, 177, 255, -0, 0, 1, 0, -0, 0, 5, 0, -0, 0, 6, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 28, 255, -0, 0, 27, 255, -0, 0, 4, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 0, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'<', '>', 148, 0, -0, 0, 249, 1, -'=', '>', 151, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 22, 0, -0, 0, 45, 0, -0, 0, 249, 1, -0, 0, 120, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'F', 'S', 153, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 149, 255, -0, 0, 249, 1, -0, 0, 39, 1, -'N', 'R', 167, 0, -0, 0, 96, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 196, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 244, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 248, 1, -0, 0, 8, 0, -0, 0, 2, 0, -0, 0, 3, 0, -0, 0, 7, 0, -0, 0, 9, 0, -0, 0, 185, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 188, 0, -0, 0, 208, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 211, 0, -0, 0, 48, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 55, 1, -0, 0, 10, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'B', 'V', 201, 0, -'D', 'I', 244, 0, -'O', 'P', 1, 1, -'A', 'I', 5, 1, -'L', 'X', 14, 1, -0, 0, 158, 0, -0, 0, 249, 1, -0, 0, 167, 255, -'N', 'P', 27, 1, -0, 0, 249, 1, -0, 0, 217, 0, -0, 0, 142, 255, -'A', 'O', 30, 1, -'D', 'O', 56, 1, -'C', 'U', 72, 1, -0, 0, 87, 255, -0, 0, 249, 1, -0, 0, 116, 1, -'E', 'U', 91, 1, -0, 0, 50, 255, -0, 0, 218, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 243, 1, -0, 0, 255, 255, -0, 0, 249, 1, -0, 0, 12, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 16, 0, -0, 0, 249, 1, -'D', 'Y', 222, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 23, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 27, 0, -0, 0, 20, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 21, 0, -0, 0, 30, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'T', 250, 0, -0, 0, 240, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 38, 0, -'S', 'T', 3, 1, -0, 0, 82, 0, -0, 0, 219, 255, -0, 0, 218, 255, -0, 0, 96, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 102, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 119, 0, -0, 0, 199, 255, -0, 0, 249, 1, -0, 0, 132, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 191, 255, -0, 0, 199, 0, -0, 0, 249, 1, -0, 0, 210, 0, -0, 0, 132, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 124, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'N', 45, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 21, 1, -0, 0, 123, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 122, 255, -0, 0, 34, 1, -0, 0, 37, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'T', 'W', 68, 1, -0, 0, 41, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 107, 255, -0, 0, 101, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 49, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 100, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 57, 1, -0, 0, 132, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 71, 255, -0, 0, 72, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 147, 1, -0, 0, 249, 1, -0, 0, 167, 1, -0, 0, 63, 255, -0, 0, 53, 255, -'C', 'T', 133, 1, -'L', 'Y', 151, 1, -'A', 'U', 171, 1, -'A', 'U', 227, 1, -'A', 'X', 254, 1, -'A', 'U', 22, 2, -0, 0, 249, 1, -'A', 'O', 43, 2, -'N', 'N', 58, 2, -0, 0, 216, 0, -'E', 'I', 91, 2, -'A', 'P', 96, 2, -0, 0, 22, 1, -'A', 'U', 161, 2, -0, 0, 51, 1, -'A', 'R', 182, 2, -0, 0, 249, 1, -'A', 'P', 200, 2, -'H', 'T', 226, 2, -'E', 'Y', 254, 2, -'N', 'U', 32, 3, -0, 0, 238, 1, -'E', 'O', 40, 3, -0, 0, 242, 1, -0, 0, 245, 1, -0, 0, 254, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 255, -0, 0, 248, 255, -0, 0, 243, 255, -0, 0, 39, 0, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'T', 165, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 46, 0, -0, 0, 41, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 43, 0, -'L', 'S', 192, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 234, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 55, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'N', 216, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 85, 0, -0, 0, 48, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'T', 200, 1, -0, 0, 51, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 235, 255, -0, 0, 63, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 222, 255, -'T', 'T', 248, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 110, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 122, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 123, 0, -'A', 'E', 249, 1, -0, 0, 91, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 94, 0, -0, 0, 127, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 128, 0, -0, 0, 249, 1, -0, 0, 135, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 142, 0, -0, 0, 147, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 151, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 163, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 164, 0, -0, 0, 175, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 177, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 180, 0, -'T', 'T', 59, 2, -'1', 'O', 60, 2, -0, 0, 200, 0, -0, 0, 201, 0, -0, 0, 202, 0, -0, 0, 203, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 204, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 207, 0, -0, 0, 218, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 219, 0, -0, 0, 221, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 225, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 227, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 112, 2, -0, 0, 138, 255, -0, 0, 231, 0, -0, 0, 249, 1, -0, 0, 235, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'2', 'S', 127, 2, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 238, 0, -0, 0, 241, 0, -0, 0, 141, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 237, 0, -0, 0, 30, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 38, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 40, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 43, 1, -0, 0, 60, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 69, 1, -0, 0, 83, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'A', 216, 2, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 117, 1, -0, 0, 78, 255, -'D', 'L', 217, 2, -0, 0, 85, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 87, 1, -'A', 'O', 239, 2, -0, 0, 73, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 141, 1, -0, 0, 249, 1, -0, 0, 66, 255, -0, 0, 65, 255, -0, 0, 249, 1, -0, 0, 171, 1, -0, 0, 70, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 134, 1, -0, 0, 187, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 188, 1, -0, 0, 189, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'I', 'U', 19, 3, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 203, 1, -0, 0, 44, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 201, 1, -0, 0, 207, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 219, 1, -0, 0, 249, 1, -0, 0, 36, 255, -0, 0, 234, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 235, 1, -0, 0, 239, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 240, 1, -'F', 'T', 74, 3, -'E', 'T', 130, 3, -'A', 'R', 146, 3, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 182, 3, -'R', 'R', 243, 3, -0, 0, 179, 0, -'N', 'N', 3, 4, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'T', 20, 4, -'A', 'U', 98, 4, -'A', 'C', 119, 4, -'R', 'U', 122, 4, -'H', 'U', 126, 4, -'U', 'U', 155, 4, -'A', 'T', 167, 4, -'H', 'W', 212, 4, -'A', 'Y', 233, 4, -'C', 'S', 2, 5, -0, 0, 226, 1, -'H', 'R', 41, 5, -0, 0, 13, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 18, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'W', 89, 3, -0, 0, 242, 255, -0, 0, 24, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'K', 'K', 110, 3, -'B', 'T', 111, 3, -0, 0, 245, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 244, 255, -0, 0, 32, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 40, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 44, 0, -0, 0, 47, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'E', 164, 3, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 62, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 220, 255, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'O', 169, 3, -0, 0, 52, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 58, 0, -0, 0, 217, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 84, 0, -0, 0, 146, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 149, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'X', 197, 3, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'U', 217, 3, -0, 0, 249, 1, -0, 0, 249, 1, -'R', 'U', 239, 3, -0, 0, 189, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 152, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 153, 0, -'A', 'O', 224, 3, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 157, 0, -0, 0, 154, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 187, 255, -0, 0, 159, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 161, 0, -'A', 'O', 244, 3, -0, 0, 171, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 173, 0, -'D', 'S', 4, 4, -0, 0, 189, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 192, 0, -0, 0, 195, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 163, 255, -0, 0, 152, 255, -0, 0, 249, 1, -'A', 'V', 38, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'M', 'N', 64, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'W', 66, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 137, 255, -'S', 'V', 60, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 226, 0, -0, 0, 151, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 223, 0, -0, 0, 228, 0, -0, 0, 229, 0, -'A', 'K', 87, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 140, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 139, 255, -0, 0, 232, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 236, 0, -0, 0, 2, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 13, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 25, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 29, 1, -0, 0, 31, 1, -0, 0, 249, 1, -0, 0, 36, 1, -0, 0, 56, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 58, 1, -0, 0, 64, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'I', 'W', 140, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 77, 1, -0, 0, 65, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 86, 255, -'E', 'O', 156, 4, -0, 0, 79, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 80, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 85, 255, -0, 0, 81, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'S', 187, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 111, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 112, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 80, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'R', 'R', 206, 4, -0, 0, 86, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 104, 1, -'E', 'I', 207, 4, -0, 0, 119, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 77, 255, -0, 0, 133, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'E', 228, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 67, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 168, 1, -0, 0, 177, 1, -0, 0, 249, 1, -0, 0, 179, 1, -0, 0, 138, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 69, 255, -0, 0, 181, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 204, 1, -0, 0, 43, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'H', 'T', 19, 5, -0, 0, 249, 1, -0, 0, 37, 255, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'I', 32, 5, -0, 0, 40, 255, -0, 0, 209, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 214, 1, -0, 0, 217, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 222, 1, -'E', 'I', 52, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 241, 1, -0, 0, 236, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 237, 1, -'C', 'S', 80, 5, -'A', 'I', 97, 5, -'H', 'U', 132, 5, -'E', 'O', 149, 5, -'L', 'X', 170, 5, -'A', 'O', 190, 5, -'L', 'R', 213, 5, -0, 0, 176, 0, -'F', 'S', 220, 5, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'O', 254, 5, -'A', 'O', 23, 6, -0, 0, 106, 255, -'F', 'P', 48, 6, -0, 0, 93, 255, -0, 0, 249, 1, -'E', 'O', 59, 6, -'C', 'U', 91, 6, -0, 0, 182, 1, -'N', 'P', 171, 6, -0, 0, 227, 1, -0, 0, 29, 255, -0, 0, 11, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 246, 255, -0, 0, 29, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 31, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'G', 'T', 106, 5, -0, 0, 35, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'L', 120, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 238, 255, -0, 0, 36, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 37, 0, -0, 0, 53, 0, -0, 0, 60, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 61, 0, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'N', 146, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 83, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 90, 0, -0, 0, 66, 0, -0, 0, 69, 0, -0, 0, 225, 255, -'C', 'L', 160, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 121, 0, -0, 0, 205, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 109, 0, -0, 0, 129, 0, -0, 0, 249, 1, -'A', 'G', 183, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 194, 255, -0, 0, 136, 0, -0, 0, 137, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 139, 0, -0, 0, 249, 1, -0, 0, 141, 0, -0, 0, 130, 0, -0, 0, 249, 1, -0, 0, 198, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 133, 0, -0, 0, 148, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 150, 0, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'O', 205, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 186, 255, -'A', 'A', 206, 5, -'T', 'T', 207, 5, -'4', '8', 208, 5, -0, 0, 155, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 156, 0, -0, 0, 170, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 172, 0, -0, 0, 166, 255, -0, 0, 186, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 187, 0, -'F', 'S', 234, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'S', 248, 5, -0, 0, 191, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 194, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 197, 0, -0, 0, 158, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 213, 0, -'A', 'N', 9, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 143, 255, -0, 0, 224, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 150, 255, -0, 0, 243, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'M', 38, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 17, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 24, 1, -0, 0, 8, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 12, 1, -0, 0, 46, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 53, 1, -'G', 'V', 70, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 114, 1, -0, 0, 91, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 96, 1, -0, 0, 249, 1, -0, 0, 97, 1, -0, 0, 249, 1, -'A', 'E', 86, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 107, 1, -0, 0, 108, 1, -0, 0, 249, 1, -0, 0, 110, 1, -0, 0, 98, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 102, 1, -0, 0, 121, 1, -0, 0, 249, 1, -'C', 'R', 110, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'G', 'M', 126, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'U', 133, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'R', 146, 6, -0, 0, 57, 255, -0, 0, 123, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 126, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 129, 1, -0, 0, 136, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 137, 1, -0, 0, 142, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'R', 141, 6, -0, 0, 143, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 144, 1, -0, 0, 170, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 62, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'I', 164, 6, -0, 0, 58, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 174, 1, -'I', 'L', 174, 6, -0, 0, 249, 1, -0, 0, 215, 1, -0, 0, 210, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 212, 1, -'D', 'N', 201, 6, -'E', 'O', 230, 6, -'A', 'U', 11, 7, -'A', 'Y', 76, 7, -'N', 'X', 128, 7, -0, 0, 160, 0, -0, 0, 171, 255, -0, 0, 174, 0, -'N', 'T', 160, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 222, 0, -0, 0, 16, 1, -'A', 'U', 186, 7, -0, 0, 59, 1, -'A', 'R', 207, 7, -0, 0, 78, 1, -'A', 'O', 240, 7, -'C', 'Y', 19, 8, -'I', 'R', 81, 8, -'N', 'S', 102, 8, -'A', 'E', 111, 8, -0, 0, 31, 255, -'D', 'D', 212, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 14, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 19, 0, -'D', 'T', 213, 6, -0, 0, 253, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 252, 255, -0, 0, 34, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'T', 'T', 241, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 42, 0, -'_', '_', 242, 6, -'A', 'X', 243, 6, -0, 0, 237, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 236, 255, -0, 0, 49, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 233, 255, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'A', 32, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'N', 38, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 216, 255, -0, 0, 249, 1, -0, 0, 249, 1, -'R', 'R', 58, 7, -'N', 'R', 33, 7, -0, 0, 54, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 57, 0, -'L', 'U', 41, 7, -'M', 'P', 51, 7, -'T', 'V', 55, 7, -0, 0, 64, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 67, 0, -0, 0, 68, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 71, 0, -0, 0, 79, 0, -0, 0, 249, 1, -0, 0, 81, 0, -'D', 'T', 59, 7, -0, 0, 215, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 214, 255, -0, 0, 209, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'L', 101, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 124, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 126, 0, -'I', 'L', 111, 7, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'I', 115, 7, -0, 0, 204, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 107, 0, -0, 0, 103, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 104, 0, -0, 0, 105, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 106, 0, -'A', 'C', 125, 7, -0, 0, 115, 0, -0, 0, 249, 1, -0, 0, 116, 0, -'C', 'G', 139, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 138, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'T', 144, 7, -0, 0, 197, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 134, 0, -0, 0, 140, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 144, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 192, 255, -'D', 'V', 167, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 159, 255, -0, 0, 214, 0, -0, 0, 190, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 205, 0, -0, 0, 249, 1, -0, 0, 215, 0, -0, 0, 33, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 44, 1, -0, 0, 62, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 66, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'O', 225, 7, -0, 0, 68, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 70, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'F', 236, 7, -0, 0, 73, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 75, 1, -0, 0, 84, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'V', 255, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 115, 1, -0, 0, 88, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 95, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 100, 1, -0, 0, 103, 1, -0, 0, 249, 1, -0, 0, 105, 1, -0, 0, 109, 1, -0, 0, 249, 1, -0, 0, 81, 255, -0, 0, 122, 1, -0, 0, 249, 1, -0, 0, 131, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 68, 255, -0, 0, 145, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'R', 42, 8, -'B', 'S', 46, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 52, 255, -0, 0, 172, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 175, 1, -'D', 'T', 64, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 178, 1, -0, 0, 74, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 176, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 54, 255, -0, 0, 194, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'U', '_', 91, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 199, 1, -0, 0, 45, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 46, 255, -'I', 'K', 108, 8, -0, 0, 249, 1, -0, 0, 216, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 221, 1, -0, 0, 208, 1, -0, 0, 249, 1, -0, 0, 211, 1, -'R', 'R', 116, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 32, 255, -'C', '_', 117, 8, -0, 0, 229, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 232, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 34, 255, -0, 0, 247, 255, -0, 0, 249, 1, -'A', 'O', 172, 8, -'A', 'U', 211, 8, -'N', 'X', 46, 9, -'U', 'U', 77, 9, -'E', 'R', 81, 9, -0, 0, 249, 1, -'N', 'S', 101, 9, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 131, 9, -'A', 'O', 173, 9, -'A', 'V', 231, 9, -'N', 'V', 253, 9, -'A', 'R', 6, 10, -0, 0, 249, 1, -'E', 'O', 24, 10, -'E', 'W', 35, 10, -'I', 'R', 54, 10, -'N', 'T', 107, 10, -'A', 'A', 133, 10, -0, 0, 233, 1, -0, 0, 249, 1, -0, 0, 26, 255, -0, 0, 247, 1, -0, 0, 50, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 231, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 59, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'N', 187, 8, -0, 0, 228, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 226, 255, -'T', 'T', 201, 8, -'A', 'I', 202, 8, -0, 0, 78, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 80, 0, -'T', 'Y', 232, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 111, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 34, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 124, 0, -'A', 'E', 238, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 97, 0, -0, 0, 92, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', '_', 243, 8, -0, 0, 212, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 95, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'S', 15, 9, -0, 0, 213, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 210, 255, -'J', 'T', 35, 9, -0, 0, 200, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 117, 0, -'C', 'V', 57, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 145, 0, -0, 0, 131, 0, -0, 0, 196, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 195, 255, -'L', 'N', 78, 9, -0, 0, 165, 0, -0, 0, 249, 1, -0, 0, 166, 0, -'O', 'T', 95, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 170, 255, -0, 0, 167, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 182, 255, -'N', 'T', 107, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'S', 114, 9, -0, 0, 193, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 206, 0, -0, 0, 160, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 154, 255, -'N', 'S', 146, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'N', 152, 9, -0, 0, 220, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 153, 255, -'G', 'G', 153, 9, -'B', 'T', 154, 9, -0, 0, 239, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 240, 0, -'K', 'X', 188, 9, -0, 0, 129, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 20, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 23, 1, -'E', 'E', 202, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 5, 1, -'D', '_', 203, 9, -0, 0, 135, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 134, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 136, 255, -0, 0, 32, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 45, 1, -0, 0, 50, 1, -0, 0, 249, 1, -0, 0, 52, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 99, 255, -0, 0, 63, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 88, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 76, 1, -0, 0, 106, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 113, 1, -0, 0, 125, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 135, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 140, 1, -0, 0, 139, 1, -0, 0, 249, 1, -0, 0, 146, 1, -0, 0, 149, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 169, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 180, 1, -'M', 'N', 64, 10, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'U', 86, 10, -0, 0, 47, 255, -'Y', 'Y', 66, 10, -'B', 'T', 67, 10, -0, 0, 193, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 195, 1, -0, 0, 197, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 200, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 202, 1, -0, 0, 213, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'C', 114, 10, -'_', '_', 115, 10, -'D', 'T', 116, 10, -0, 0, 223, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 224, 1, -'R', 'R', 134, 10, -'I', '_', 135, 10, -0, 0, 35, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 33, 255, -'G', 'L', 180, 10, -'E', 'I', 186, 10, -'H', 'O', 191, 10, -'A', 'U', 204, 10, -0, 0, 143, 0, -0, 0, 184, 255, -0, 0, 181, 255, -0, 0, 249, 1, -'N', 'S', 242, 10, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'O', 9, 11, -'B', 'O', 13, 11, -0, 0, 103, 255, -0, 0, 249, 1, -'A', 'R', 27, 11, -0, 0, 249, 1, -'A', 'O', 56, 11, -'A', 'U', 71, 11, -'E', 'I', 95, 11, -0, 0, 206, 1, -'A', 'A', 108, 11, -0, 0, 15, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 17, 0, -0, 0, 241, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 239, 255, -0, 0, 56, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'N', 199, 10, -0, 0, 65, 0, -0, 0, 70, 0, -'C', 'D', 202, 10, -0, 0, 224, 255, -0, 0, 74, 0, -'T', 'Y', 225, 10, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'M', 'R', 236, 10, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 125, 0, -0, 0, 93, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'O', 231, 10, -'F', 'F', 232, 10, -'W', 'Y', 233, 10, -0, 0, 207, 255, -0, 0, 249, 1, -0, 0, 206, 255, -0, 0, 201, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 114, 0, -'E', 'E', 248, 10, -0, 0, 209, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 212, 0, -'T', 'T', 249, 10, -'_', '_', 250, 10, -'A', 'N', 251, 10, -0, 0, 165, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 164, 255, -'A', 'C', 10, 11, -0, 0, 144, 255, -0, 0, 249, 1, -0, 0, 233, 0, -0, 0, 125, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 10, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 15, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 115, 255, -0, 0, 61, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'O', 45, 11, -0, 0, 67, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 72, 1, -0, 0, 84, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 89, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 79, 255, -0, 0, 120, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'P', 92, 11, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 153, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 56, 255, -0, 0, 127, 1, -0, 0, 249, 1, -0, 0, 128, 1, -'M', 'M', 100, 11, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 190, 1, -'P', 'P', 101, 11, -'O', 'T', 102, 11, -0, 0, 184, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 185, 1, -'R', 'R', 109, 11, -'B', 'I', 110, 11, -0, 0, 228, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 231, 1, -0, 0, 25, 0, -'E', 'I', 143, 11, -'O', 'O', 148, 11, -'A', 'E', 183, 11, -0, 0, 190, 255, -0, 0, 185, 255, -0, 0, 169, 0, -0, 0, 249, 1, -'D', 'N', 213, 11, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 230, 0, -'A', 'U', 224, 11, -'A', 'D', 12, 12, -0, 0, 54, 1, -'E', 'R', 16, 12, -0, 0, 249, 1, -'E', 'O', 30, 12, -'Q', 'T', 52, 12, -'A', 'E', 70, 12, -0, 0, 42, 255, -0, 0, 249, 1, -0, 0, 30, 255, -0, 0, 249, 1, -0, 0, 246, 1, -0, 0, 33, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 232, 255, -'M', 'N', 149, 11, -0, 0, 72, 0, -'C', 'V', 151, 11, -0, 0, 73, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 75, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'I', 'T', 171, 11, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 221, 255, -0, 0, 76, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 77, 0, -'Y', 'Y', 188, 11, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 101, 0, -'O', '_', 189, 11, -0, 0, 208, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'M', 'S', 206, 11, -0, 0, 99, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 100, 0, -0, 0, 184, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 161, 255, -0, 0, 251, 0, -0, 0, 126, 255, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'D', 245, 11, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 27, 1, -'I', 'I', 246, 11, -'U', 'U', 247, 11, -'M', 'M', 248, 11, -'B', 'T', 249, 11, -0, 0, 9, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 11, 1, -0, 0, 108, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 35, 1, -0, 0, 98, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 71, 1, -'F', 'P', 41, 12, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 118, 1, -0, 0, 90, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 99, 1, -'L', 'L', 56, 12, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'D', 66, 12, -'W', '_', 57, 12, -0, 0, 150, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 157, 1, -0, 0, 64, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 61, 255, -0, 0, 183, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 186, 1, -'E', 'E', 96, 12, -0, 0, 249, 1, -0, 0, 230, 255, -'A', 'I', 101, 12, -0, 0, 249, 1, -'I', 'R', 114, 12, -0, 0, 172, 255, -'O', 'O', 124, 12, -0, 0, 196, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 147, 255, -'A', 'I', 135, 12, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'R', 177, 12, -0, 0, 249, 1, -'A', 'E', 191, 12, -'E', 'Y', 196, 12, -'I', 'R', 232, 12, -0, 0, 205, 1, -'S', 'S', 97, 12, -'_', '_', 98, 12, -'D', 'E', 99, 12, -0, 0, 250, 255, -0, 0, 251, 255, -0, 0, 211, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 110, 12, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 118, 0, -'_', '_', 111, 12, -'D', 'E', 112, 12, -0, 0, 202, 255, -0, 0, 203, 255, -0, 0, 188, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 162, 0, -'U', 'U', 125, 12, -'R', 'R', 126, 12, -'_', '_', 127, 12, -'M', 'S', 128, 12, -0, 0, 182, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 183, 0, -'S', 'S', 144, 12, -'R', 'R', 163, 12, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 14, 1, -'T', 'T', 145, 12, -'E', 'E', 146, 12, -'R', 'R', 147, 12, -'_', '_', 148, 12, -'H', 'U', 149, 12, -0, 0, 245, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 1, 1, -'C', 'O', 164, 12, -0, 0, 131, 255, -0, 0, 130, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 127, 255, -0, 0, 97, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 91, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 74, 1, -0, 0, 82, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 101, 1, -0, 0, 76, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 162, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'R', 217, 12, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 51, 255, -0, 0, 60, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 59, 255, -'M', 'M', 242, 12, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 198, 1, -'E', 'E', 243, 12, -'_', '_', 244, 12, -'F', 'T', 245, 12, -0, 0, 49, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 48, 255, -'O', 'U', 24, 13, -0, 0, 112, 0, -0, 0, 193, 255, -0, 0, 249, 1, -'E', 'R', 55, 13, -0, 0, 249, 1, -'S', 'S', 73, 13, -0, 0, 249, 1, -0, 0, 249, 1, -'I', 'O', 91, 13, -'L', 'U', 98, 13, -0, 0, 249, 1, -'C', 'L', 108, 13, -'O', 'O', 118, 13, -0, 0, 249, 1, -'E', 'E', 123, 13, -'E', 'Q', 130, 13, -0, 0, 191, 1, -0, 0, 39, 255, -0, 0, 230, 1, -0, 0, 227, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'R', 'R', 31, 13, -'R', 'R', 32, 13, -'E', 'E', 33, 13, -'N', 'N', 34, 13, -'T', 'T', 35, 13, -'_', '_', 36, 13, -'D', 'U', 37, 13, -0, 0, 86, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 87, 0, -0, 0, 89, 0, -'O', 'O', 69, 13, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 169, 255, -'M', 'M', 70, 13, -'E', 'F', 71, 13, -0, 0, 180, 255, -0, 0, 173, 255, -'_', '_', 74, 13, -'F', 'U', 75, 13, -0, 0, 157, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 156, 255, -0, 0, 148, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 242, 0, -0, 0, 120, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 116, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 28, 1, -0, 0, 102, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 47, 1, -'I', 'L', 119, 13, -0, 0, 94, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 92, 255, -'L', 'L', 124, 13, -'A', 'E', 125, 13, -0, 0, 94, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 82, 255, -'R', 'S', 143, 13, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'L', 145, 13, -0, 0, 130, 1, -0, 0, 75, 255, -'E', '_', 146, 13, -0, 0, 148, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'T', 173, 13, -0, 0, 155, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 180, 13, -'I', 'I', 181, 13, -'_', '_', 182, 13, -'H', 'Y', 183, 13, -0, 0, 161, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 163, 1, -0, 0, 249, 1, -0, 0, 166, 1, -0, 0, 223, 255, -0, 0, 113, 0, -0, 0, 249, 1, -0, 0, 183, 255, -0, 0, 249, 1, -0, 0, 178, 0, -'N', 'N', 220, 13, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'P', 223, 13, -0, 0, 105, 255, -0, 0, 249, 1, -0, 0, 95, 255, -0, 0, 249, 1, -0, 0, 93, 1, -'Q', 'T', 244, 13, -0, 0, 192, 1, -0, 0, 225, 1, -'S', 'T', 221, 13, -0, 0, 198, 0, -0, 0, 162, 255, -0, 0, 252, 0, -0, 0, 128, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 19, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 121, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'O', 239, 13, -'I', 'L', 240, 13, -0, 0, 118, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 117, 255, -0, 0, 164, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 173, 1, -'U', 'V', 13, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 15, 14, -'A', 'P', 30, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 89, 255, -0, 0, 249, 1, -'A', 'E', 59, 14, -'Q', 'Q', 64, 14, -0, 0, 249, 1, -'N', 'S', 96, 14, -0, 0, 26, 0, -0, 0, 28, 0, -0, 0, 155, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 234, 0, -'S', 'S', 46, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 119, 255, -'T', 'T', 47, 14, -'E', 'E', 48, 14, -'R', 'R', 49, 14, -'_', '_', 50, 14, -'L', 'S', 51, 14, -0, 0, 247, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 0, 1, -0, 0, 83, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 92, 1, -'L', 'L', 65, 14, -'_', '_', 66, 14, -'B', 'T', 67, 14, -0, 0, 151, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 86, 14, -'I', 'I', 87, 14, -'_', '_', 88, 14, -'M', 'S', 89, 14, -0, 0, 160, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 159, 1, -0, 0, 38, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 220, 1, -'A', 'E', 118, 14, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'E', 123, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'U', 129, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 90, 255, -0, 0, 249, 1, -0, 0, 249, 1, -'Q', 'U', 178, 14, -0, 0, 98, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 108, 0, -'O', 'O', 124, 14, -'M', 'M', 125, 14, -'C', 'E', 126, 14, -0, 0, 178, 255, -0, 0, 249, 1, -0, 0, 174, 255, -'S', 'S', 150, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 26, 1, -'T', 'T', 151, 14, -'E', 'E', 152, 14, -'R', 'R', 153, 14, -'_', '_', 154, 14, -'L', 'S', 155, 14, -0, 0, 246, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 163, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 254, 0, -0, 0, 248, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 133, 255, -0, 0, 165, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 55, 255, -0, 0, 229, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'E', 200, 14, -0, 0, 181, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 250, 0, -0, 0, 104, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 156, 1, -'O', 'O', 201, 14, -'M', 'M', 202, 14, -'C', 'E', 203, 14, -0, 0, 179, 255, -0, 0, 249, 1, -0, 0, 175, 255, -0, 0, 88, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 145, 255, -'A', 'U', 223, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 152, 1, -'S', 'S', 244, 14, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 111, 255, -'T', 'T', 245, 14, -'E', 'E', 246, 14, -'R', 'R', 247, 14, -'_', '_', 248, 14, -'S', 'S', 249, 14, -'S', 'S', 250, 14, -'L', 'L', 251, 14, -'_', '_', 252, 14, -'C', 'C', 253, 14, -'A', 'I', 254, 14, -0, 0, 253, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 255, 0, -'E', 'R', 20, 15, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 146, 255, -'I', 'U', 34, 15, -0, 0, 42, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 124, 1, -0, 0, 168, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 168, 255, -0, 0, 18, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 112, 255, -0, 0, 109, 255, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'Q', 'Q', 56, 15, -0, 0, 249, 1, -0, 0, 41, 255, -'L', 'L', 57, 15, -'_', '_', 58, 15, -'C', 'T', 59, 15, -0, 0, 154, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 158, 1, -'A', 'U', 78, 15, -'S', 'X', 99, 15, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 110, 255, -0, 0, 244, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'_', '_', 105, 15, -'Q', 'U', 106, 15, -0, 0, 4, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'P', 'S', 111, 15, -0, 0, 6, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 7, 1, -}; - -static uchar symbols_map[10608]= { -'<', '>', 24, 0, -'!', '|', 27, 0, -'<', 'X', 143, 0, -'B', 'Y', 10, 1, -'A', 'W', 93, 2, -'A', 'V', 193, 3, -'A', 'V', 236, 4, -'C', 'Z', 71, 6, -'A', 'V', 122, 7, -'A', 'Y', 13, 8, -'D', 'U', 166, 8, -'C', 'V', 228, 8, -'D', 'U', 86, 9, -'A', 'U', 117, 9, -'D', 'S', 191, 9, -'H', 'S', 246, 9, -'C', 'S', 2, 10, -'G', 'S', 39, 10, -'S', 'S', 52, 10, -'M', 'M', 74, 10, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 3, 1, -0, 0, 1, 0, -0, 0, 5, 0, -0, 0, 6, 0, -0, 0, 4, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 0, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'<', '>', 119, 0, -0, 0, 249, 1, -'=', '>', 122, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 22, 0, -0, 0, 45, 0, -0, 0, 249, 1, -0, 0, 120, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'F', 'S', 124, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 39, 1, -'N', 'R', 138, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 196, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 244, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 248, 1, -0, 0, 8, 0, -0, 0, 2, 0, -0, 0, 3, 0, -0, 0, 7, 0, -0, 0, 9, 0, -0, 0, 185, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 188, 0, -0, 0, 208, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 211, 0, -0, 0, 48, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 55, 1, -0, 0, 10, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'V', 172, 0, -'D', 'I', 213, 0, -0, 0, 82, 0, -'A', 'I', 219, 0, -0, 0, 132, 0, -0, 0, 158, 0, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'P', 228, 0, -0, 0, 249, 1, -0, 0, 217, 0, -0, 0, 249, 1, -0, 0, 21, 1, -'D', 'O', 231, 0, -'N', 'U', 243, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 116, 1, -'E', 'S', 251, 0, -0, 0, 249, 1, -0, 0, 218, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 243, 1, -0, 0, 12, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 16, 0, -0, 0, 249, 1, -'D', 'Y', 191, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 23, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 27, 0, -0, 0, 20, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 21, 0, -0, 0, 30, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 38, 0, -0, 0, 96, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 102, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 119, 0, -0, 0, 199, 0, -0, 0, 249, 1, -0, 0, 210, 0, -0, 0, 34, 1, -0, 0, 37, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 41, 1, -0, 0, 49, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 57, 1, -0, 0, 132, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 147, 1, -0, 0, 249, 1, -0, 0, 167, 1, -'L', 'Y', 34, 1, -'A', 'U', 54, 1, -'A', 'U', 83, 1, -'A', 'X', 110, 1, -'A', 'U', 134, 1, -0, 0, 249, 1, -'A', 'O', 155, 1, -'N', 'N', 170, 1, -0, 0, 216, 0, -'E', 'I', 203, 1, -'A', 'O', 208, 1, -0, 0, 22, 1, -'A', 'U', 238, 1, -0, 0, 51, 1, -'A', 'R', 3, 2, -0, 0, 249, 1, -'E', 'O', 21, 2, -'H', 'T', 42, 2, -'E', 'Y', 55, 2, -'N', 'S', 76, 2, -0, 0, 238, 1, -'E', 'O', 82, 2, -0, 0, 242, 1, -0, 0, 245, 1, -0, 0, 39, 0, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'T', 48, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 46, 0, -0, 0, 41, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 43, 0, -'L', 'S', 75, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 55, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 63, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 85, 0, -0, 0, 48, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 51, 0, -'T', 'T', 104, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 110, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 122, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 123, 0, -'A', 'E', 105, 1, -0, 0, 91, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 94, 0, -0, 0, 127, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 128, 0, -0, 0, 249, 1, -0, 0, 135, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 142, 0, -0, 0, 147, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 151, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 163, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 164, 0, -0, 0, 175, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 177, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 180, 0, -'T', 'T', 171, 1, -'1', 'O', 172, 1, -0, 0, 200, 0, -0, 0, 201, 0, -0, 0, 202, 0, -0, 0, 203, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 204, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 207, 0, -0, 0, 218, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 219, 0, -0, 0, 221, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 225, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 227, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 223, 1, -0, 0, 231, 0, -0, 0, 249, 1, -0, 0, 235, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 237, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 238, 0, -0, 0, 241, 0, -0, 0, 30, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 38, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 40, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 43, 1, -0, 0, 60, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 69, 1, -'A', 'A', 32, 2, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 117, 1, -'D', 'L', 33, 2, -0, 0, 85, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 87, 1, -0, 0, 134, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 141, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 171, 1, -0, 0, 187, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 188, 1, -0, 0, 189, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 201, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 203, 1, -0, 0, 207, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 219, 1, -0, 0, 234, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 235, 1, -0, 0, 239, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 240, 1, -'F', 'S', 116, 2, -'E', 'T', 130, 2, -'A', 'R', 146, 2, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 169, 2, -'R', 'R', 202, 2, -0, 0, 179, 0, -'N', 'N', 218, 2, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'O', 231, 2, -'A', 'U', 22, 3, -'A', 'C', 43, 3, -'R', 'U', 46, 3, -'H', 'U', 50, 3, -'U', 'U', 64, 3, -'A', 'T', 70, 3, -'H', 'W', 109, 3, -'A', 'Y', 125, 3, -'N', 'S', 150, 3, -0, 0, 226, 1, -'H', 'R', 177, 3, -0, 0, 13, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 18, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 24, 0, -0, 0, 32, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 40, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 44, 0, -0, 0, 47, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'E', 164, 2, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 62, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 84, 0, -0, 0, 52, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 58, 0, -0, 0, 146, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 149, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'R', 'X', 184, 2, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'U', 191, 2, -0, 0, 249, 1, -0, 0, 249, 1, -'R', 'U', 198, 2, -0, 0, 152, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 153, 0, -0, 0, 154, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 157, 0, -0, 0, 159, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 161, 0, -'A', 'O', 203, 2, -0, 0, 171, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 173, 0, -'D', 'O', 219, 2, -0, 0, 189, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 192, 0, -0, 0, 195, 0, -'A', 'V', 242, 2, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'M', 'N', 8, 3, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'C', 10, 3, -0, 0, 223, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 226, 0, -0, 0, 228, 0, -0, 0, 229, 0, -'A', 'K', 11, 3, -0, 0, 232, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 236, 0, -0, 0, 2, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 13, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 25, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 29, 1, -0, 0, 31, 1, -0, 0, 249, 1, -0, 0, 36, 1, -0, 0, 56, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 58, 1, -0, 0, 64, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 65, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 77, 1, -'E', 'I', 65, 3, -0, 0, 79, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 80, 1, -0, 0, 81, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'S', 90, 3, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 111, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 112, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 119, 1, -0, 0, 86, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 104, 1, -0, 0, 133, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 138, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 168, 1, -0, 0, 177, 1, -0, 0, 249, 1, -0, 0, 179, 1, -0, 0, 181, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 204, 1, -'I', 'T', 156, 3, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'I', 168, 3, -0, 0, 209, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 214, 1, -0, 0, 217, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 222, 1, -'E', 'I', 188, 3, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 241, 1, -0, 0, 236, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 237, 1, -0, 0, 11, 0, -'A', 'I', 215, 3, -'H', 'U', 244, 3, -'E', 'O', 4, 4, -'L', 'X', 15, 4, -'A', 'L', 35, 4, -'L', 'R', 55, 4, -0, 0, 176, 0, -'G', 'S', 62, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 224, 0, -'A', 'O', 89, 4, -0, 0, 249, 1, -'F', 'P', 114, 4, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'O', 125, 4, -'C', 'T', 157, 4, -0, 0, 182, 1, -'N', 'P', 229, 4, -0, 0, 227, 1, -0, 0, 29, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 31, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'G', 'N', 224, 3, -0, 0, 35, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'L', 232, 3, -0, 0, 36, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 37, 0, -0, 0, 53, 0, -0, 0, 60, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 61, 0, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'M', 2, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 83, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 90, 0, -0, 0, 66, 0, -0, 0, 69, 0, -0, 0, 109, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 121, 0, -0, 0, 129, 0, -0, 0, 249, 1, -'A', 'G', 28, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 136, 0, -0, 0, 137, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 139, 0, -0, 0, 249, 1, -0, 0, 141, 0, -0, 0, 130, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 133, 0, -0, 0, 148, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 150, 0, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'O', 47, 4, -'A', 'A', 48, 4, -'T', 'T', 49, 4, -'4', '8', 50, 4, -0, 0, 155, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 156, 0, -0, 0, 170, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 172, 0, -0, 0, 186, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 187, 0, -'F', 'S', 75, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 213, 0, -0, 0, 191, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 194, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 197, 0, -0, 0, 243, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'M', 104, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 17, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 24, 1, -0, 0, 8, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 12, 1, -0, 0, 46, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 53, 1, -'G', 'V', 136, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 114, 1, -0, 0, 91, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 96, 1, -0, 0, 249, 1, -0, 0, 97, 1, -0, 0, 249, 1, -'A', 'E', 152, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 107, 1, -0, 0, 108, 1, -0, 0, 249, 1, -0, 0, 110, 1, -0, 0, 98, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 102, 1, -0, 0, 121, 1, -0, 0, 249, 1, -'C', 'R', 175, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'G', 'M', 191, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'U', 198, 4, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'R', 211, 4, -0, 0, 123, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 126, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 129, 1, -0, 0, 136, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 137, 1, -0, 0, 142, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'R', 206, 4, -0, 0, 143, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 144, 1, -0, 0, 170, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 174, 1, -'I', 'L', 232, 4, -0, 0, 249, 1, -0, 0, 215, 1, -0, 0, 210, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 212, 1, -'G', 'N', 2, 5, -'E', 'O', 10, 5, -'A', 'O', 21, 5, -'E', 'Y', 62, 5, -'N', 'X', 110, 5, -0, 0, 160, 0, -0, 0, 249, 1, -0, 0, 174, 0, -'N', 'T', 133, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 222, 0, -0, 0, 16, 1, -'A', 'U', 159, 5, -0, 0, 59, 1, -'A', 'R', 180, 5, -0, 0, 78, 1, -'E', 'O', 213, 5, -'C', 'U', 242, 5, -'I', 'R', 27, 6, -'N', 'S', 37, 6, -'A', 'A', 46, 6, -0, 0, 14, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 19, 0, -0, 0, 34, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 42, 0, -0, 0, 49, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'A', 36, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'N', 42, 5, -'N', 'R', 37, 5, -0, 0, 54, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 57, 0, -'L', 'U', 45, 5, -'M', 'P', 55, 5, -'T', 'V', 59, 5, -0, 0, 64, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 67, 0, -0, 0, 68, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 71, 0, -0, 0, 79, 0, -0, 0, 249, 1, -0, 0, 81, 0, -'C', 'L', 83, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 106, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 126, 0, -'I', 'L', 93, 5, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'I', 97, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 107, 0, -0, 0, 103, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 104, 0, -0, 0, 105, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 106, 0, -'A', 'C', 107, 5, -0, 0, 115, 0, -0, 0, 249, 1, -0, 0, 116, 0, -0, 0, 134, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 138, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'P', 121, 5, -0, 0, 140, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 144, 0, -'D', 'V', 140, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 214, 0, -0, 0, 190, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 205, 0, -0, 0, 249, 1, -0, 0, 215, 0, -0, 0, 33, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 44, 1, -0, 0, 62, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 66, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'O', 198, 5, -0, 0, 68, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 70, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'F', 209, 5, -0, 0, 73, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 75, 1, -'C', 'T', 224, 5, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 115, 1, -0, 0, 88, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 95, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 100, 1, -0, 0, 103, 1, -0, 0, 249, 1, -0, 0, 105, 1, -0, 0, 109, 1, -0, 0, 122, 1, -0, 0, 249, 1, -0, 0, 131, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 145, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'R', 5, 6, -'B', 'S', 9, 6, -0, 0, 172, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 175, 1, -0, 0, 176, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 178, 1, -0, 0, 194, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 199, 1, -'I', 'K', 43, 6, -0, 0, 249, 1, -0, 0, 216, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 221, 1, -0, 0, 208, 1, -0, 0, 249, 1, -0, 0, 211, 1, -'R', 'R', 47, 6, -'C', 'Y', 48, 6, -0, 0, 229, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 232, 1, -'A', 'O', 95, 6, -'A', 'U', 121, 6, -'N', 'X', 153, 6, -'U', 'U', 164, 6, -0, 0, 167, 0, -0, 0, 249, 1, -'N', 'N', 168, 6, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'O', 176, 6, -'A', 'O', 212, 6, -'A', 'V', 227, 6, -'N', 'P', 249, 6, -'A', 'R', 252, 6, -0, 0, 249, 1, -'E', 'O', 14, 7, -'E', 'W', 25, 7, -'I', 'R', 44, 7, -'N', 'T', 96, 7, -0, 0, 249, 1, -0, 0, 233, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 247, 1, -0, 0, 50, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 59, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'N', 110, 6, -'T', 'T', 111, 6, -'A', 'I', 112, 6, -0, 0, 78, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 80, 0, -'T', 'Y', 142, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 111, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 117, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 124, 0, -'A', 'E', 148, 6, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 97, 0, -0, 0, 92, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 95, 0, -0, 0, 131, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 145, 0, -'L', 'N', 165, 6, -0, 0, 165, 0, -0, 0, 249, 1, -0, 0, 166, 0, -'N', 'T', 169, 6, -0, 0, 193, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 206, 0, -0, 0, 220, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'N', 191, 6, -'G', 'G', 192, 6, -'B', 'T', 193, 6, -0, 0, 239, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 240, 0, -0, 0, 5, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 20, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 23, 1, -0, 0, 32, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 45, 1, -0, 0, 50, 1, -0, 0, 249, 1, -0, 0, 52, 1, -0, 0, 63, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 76, 1, -0, 0, 106, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 113, 1, -0, 0, 125, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 135, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 140, 1, -0, 0, 139, 1, -0, 0, 249, 1, -0, 0, 146, 1, -0, 0, 149, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 169, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 180, 1, -'N', 'N', 54, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'U', 75, 7, -'Y', 'Y', 55, 7, -'B', 'T', 56, 7, -0, 0, 193, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 195, 1, -0, 0, 197, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 200, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 202, 1, -0, 0, 213, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'C', 'C', 103, 7, -'_', '_', 104, 7, -'D', 'T', 105, 7, -0, 0, 223, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 224, 1, -'G', 'L', 144, 7, -0, 0, 249, 1, -'H', 'O', 150, 7, -'A', 'U', 161, 7, -0, 0, 143, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'O', 'S', 182, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 233, 0, -'E', 'I', 187, 7, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'R', 192, 7, -0, 0, 249, 1, -'A', 'E', 221, 7, -'A', 'Q', 226, 7, -'E', 'I', 246, 7, -0, 0, 206, 1, -'A', 'A', 3, 8, -0, 0, 15, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 17, 0, -0, 0, 56, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'N', 158, 7, -0, 0, 65, 0, -0, 0, 70, 0, -0, 0, 74, 0, -0, 0, 93, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 114, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 125, 0, -0, 0, 209, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 212, 0, -0, 0, 10, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 15, 1, -0, 0, 61, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'E', 'O', 210, 7, -0, 0, 67, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 72, 1, -0, 0, 84, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 89, 1, -0, 0, 120, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'P', 243, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 153, 1, -0, 0, 127, 1, -0, 0, 249, 1, -0, 0, 128, 1, -'M', 'M', 251, 7, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 190, 1, -'P', 'P', 252, 7, -'O', 'T', 253, 7, -0, 0, 184, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 185, 1, -'R', 'R', 4, 8, -'B', 'I', 5, 8, -0, 0, 228, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 231, 1, -0, 0, 25, 0, -0, 0, 33, 0, -'O', 'O', 38, 8, -'A', 'E', 70, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 169, 0, -0, 0, 249, 1, -0, 0, 184, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 230, 0, -'A', 'U', 84, 8, -0, 0, 35, 1, -0, 0, 54, 1, -0, 0, 71, 1, -0, 0, 249, 1, -'E', 'O', 128, 8, -'Q', 'Q', 150, 8, -'A', 'E', 161, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 246, 1, -'M', 'N', 39, 8, -0, 0, 72, 0, -'C', 'S', 41, 8, -0, 0, 73, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 75, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'I', 'T', 58, 8, -0, 0, 76, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 77, 0, -'Y', 'Y', 75, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 101, 0, -'_', '_', 76, 8, -'M', 'S', 77, 8, -0, 0, 99, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 100, 0, -0, 0, 251, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'D', 'D', 105, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 27, 1, -'I', 'I', 106, 8, -'U', 'U', 107, 8, -'M', 'M', 108, 8, -'B', 'T', 109, 8, -0, 0, 9, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 11, 1, -'F', 'P', 139, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 118, 1, -0, 0, 90, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 99, 1, -'L', 'L', 151, 8, -'W', '_', 152, 8, -0, 0, 150, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 157, 1, -0, 0, 183, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 186, 1, -0, 0, 118, 0, -0, 0, 249, 1, -0, 0, 162, 0, -0, 0, 249, 1, -'O', 'O', 184, 8, -0, 0, 196, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'I', 195, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 74, 1, -0, 0, 249, 1, -'A', 'E', 223, 8, -0, 0, 162, 1, -0, 0, 198, 1, -0, 0, 205, 1, -'U', 'U', 185, 8, -'R', 'R', 186, 8, -'_', '_', 187, 8, -'M', 'S', 188, 8, -0, 0, 182, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 183, 0, -'S', 'S', 204, 8, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 14, 1, -'T', 'T', 205, 8, -'E', 'E', 206, 8, -'R', 'R', 207, 8, -'_', '_', 208, 8, -'H', 'U', 209, 8, -0, 0, 245, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 1, 1, -0, 0, 82, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 101, 1, -'U', 'U', 248, 8, -0, 0, 112, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 242, 0, -0, 0, 28, 1, -0, 0, 249, 1, -0, 0, 47, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 94, 1, -'E', 'Q', 17, 9, -0, 0, 191, 1, -0, 0, 249, 1, -0, 0, 230, 1, -'R', 'R', 249, 8, -'R', 'R', 250, 8, -'E', 'E', 251, 8, -'N', 'N', 252, 8, -'T', 'T', 253, 8, -'_', '_', 254, 8, -'D', 'U', 255, 8, -0, 0, 86, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 87, 0, -0, 0, 89, 0, -0, 0, 130, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'L', 'L', 30, 9, -'E', '_', 31, 9, -0, 0, 148, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'N', 'T', 58, 9, -0, 0, 155, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 65, 9, -'I', 'I', 66, 9, -'_', '_', 67, 9, -'H', 'Y', 68, 9, -0, 0, 161, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 163, 1, -0, 0, 249, 1, -0, 0, 166, 1, -0, 0, 113, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 178, 0, -0, 0, 198, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'I', 104, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 93, 1, -'Q', 'T', 113, 9, -0, 0, 192, 1, -0, 0, 225, 1, -0, 0, 252, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 19, 1, -0, 0, 164, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 173, 1, -'U', 'V', 138, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 234, 0, -'A', 'A', 140, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'E', 154, 9, -'Q', 'Q', 159, 9, -0, 0, 249, 1, -0, 0, 220, 1, -0, 0, 26, 0, -0, 0, 28, 0, -'S', 'S', 141, 9, -'T', 'T', 142, 9, -'E', 'E', 143, 9, -'R', 'R', 144, 9, -'_', '_', 145, 9, -'L', 'S', 146, 9, -0, 0, 247, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 0, 1, -0, 0, 83, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 92, 1, -'L', 'L', 160, 9, -'_', '_', 161, 9, -'B', 'T', 162, 9, -0, 0, 151, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'S', 'S', 181, 9, -'I', 'I', 182, 9, -'_', '_', 183, 9, -'M', 'S', 184, 9, -0, 0, 160, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 159, 1, -'A', 'E', 207, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'U', 212, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 165, 1, -0, 0, 98, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 108, 0, -'S', 'S', 233, 9, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 26, 1, -'T', 'T', 234, 9, -'E', 'E', 235, 9, -'R', 'R', 236, 9, -'_', '_', 237, 9, -'L', 'S', 238, 9, -0, 0, 246, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 248, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 254, 0, -0, 0, 181, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 250, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 156, 1, -0, 0, 88, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'A', 'A', 19, 10, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 152, 1, -'S', 'S', 20, 10, -'T', 'T', 21, 10, -'E', 'E', 22, 10, -'R', 'R', 23, 10, -'_', '_', 24, 10, -'S', 'S', 25, 10, -'S', 'S', 26, 10, -'L', 'L', 27, 10, -'_', '_', 28, 10, -'C', 'C', 29, 10, -'A', 'I', 30, 10, -0, 0, 253, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 255, 0, -0, 0, 168, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 18, 1, -0, 0, 42, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 124, 1, -'Q', 'Q', 53, 10, -'L', 'L', 54, 10, -'_', '_', 55, 10, -'C', 'T', 56, 10, -0, 0, 154, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 158, 1, -'A', 'A', 75, 10, -'S', 'X', 76, 10, -0, 0, 244, 0, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'_', '_', 82, 10, -'Q', 'U', 83, 10, -0, 0, 4, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 249, 1, -'P', 'S', 88, 10, -0, 0, 6, 1, -0, 0, 249, 1, -0, 0, 249, 1, -0, 0, 7, 1, -}; - -static unsigned int sql_functions_max_len=26; - -static unsigned int symbols_max_len=24; - -static inline SYMBOL *get_hash_symbol(const char *s, - unsigned int len,bool function) -{ - register uchar *hash_map; - register const char *cur_str= s; - - if (len == 0) { - DBUG_PRINT("warning", ("get_hash_symbol() received a request for a zero-length symbol, which is probably a mistake.")); return(NULL); - } - if (function){ - if (len>sql_functions_max_len) return 0; - hash_map= sql_functions_map; - register uint32 cur_struct= uint4korr(hash_map+((len-1)*4)); - - for (;;){ - register uchar first_char= (uchar)cur_struct; - - if (first_char == 0) - { - register int16 ires= (int16)(cur_struct>>16); - if (ires==array_elements(symbols)) return 0; - register SYMBOL *res; - if (ires>=0) - res= symbols+ires; - else - res= sql_functions-ires-1; - register uint count= cur_str-s; - return lex_casecmp(cur_str,res->name+count,len-count) ? 0 : res; - } - - register uchar cur_char= (uchar)to_upper_lex[(uchar)*cur_str]; - if (cur_char>=8; - if (cur_char>(uchar)cur_struct) return 0; - - cur_struct>>=8; - cur_struct= uint4korr(hash_map+ - (((uint16)cur_struct + cur_char - first_char)*4)); - cur_str++; - } - }else{ - if (len>symbols_max_len) return 0; - hash_map= symbols_map; - register uint32 cur_struct= uint4korr(hash_map+((len-1)*4)); - - for (;;){ - register uchar first_char= (uchar)cur_struct; - - if (first_char==0){ - register int16 ires= (int16)(cur_struct>>16); - if (ires==array_elements(symbols)) return 0; - register SYMBOL *res= symbols+ires; - register uint count= cur_str-s; - return lex_casecmp(cur_str,res->name+count,len-count)!=0 ? 0 : res; - } - - register uchar cur_char= (uchar)to_upper_lex[(uchar)*cur_str]; - if (cur_char>=8; - if (cur_char>(uchar)cur_struct) return 0; - - cur_struct>>=8; - cur_struct= uint4korr(hash_map+ - (((uint16)cur_struct + cur_char - first_char)*4)); - cur_str++; - } - } -} diff -r a400ddf1b765 sql/mysql_priv.h --- a/sql/mysql_priv.h Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/mysql_priv.h Wed Apr 02 00:55:46 2008 +0200 @@ -716,7 +716,13 @@ bool multi_delete_set_locks_and_link_aux_tables(LEX *lex); void init_max_user_conn(void); void init_update_queries(void); +void init_global_user_stats(void); +void init_global_table_stats(void); +void init_global_index_stats(void); void free_max_user_conn(void); +void free_global_user_stats(void); +void free_global_table_stats(void); +void free_global_index_stats(void); pthread_handler_t handle_one_connection(void *arg); pthread_handler_t handle_bootstrap(void *arg); void end_thread(THD *thd,bool put_in_cache); @@ -938,6 +944,9 @@ void mysqld_list_processes(THD *thd,const char *user,bool verbose); int mysqld_show_status(THD *thd); int mysqld_show_variables(THD *thd,const char *wild); +int mysqld_show_user_stats(THD *thd, const char *wild); +int mysqld_show_table_stats(THD *thd, const char *wild); +int mysqld_show_index_stats(THD *thd, const char *wild); bool mysqld_show_storage_engines(THD *thd); bool mysqld_show_privileges(THD *thd); bool mysqld_show_column_types(THD *thd); @@ -1363,6 +1372,12 @@ extern struct system_variables max_system_variables; extern struct system_status_var global_status_var; extern struct rand_struct sql_rand; +extern HASH global_user_stats; +extern pthread_mutex_t LOCK_global_user_stats; +extern HASH global_table_stats; +extern pthread_mutex_t LOCK_global_table_stats; +extern HASH global_index_stats; +extern pthread_mutex_t LOCK_global_index_stats; extern const char *opt_date_time_formats[]; extern KNOWN_DATE_TIME_FORMAT known_date_time_formats[]; diff -r a400ddf1b765 sql/mysqld.cc --- a/sql/mysqld.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/mysqld.cc Wed Apr 02 00:55:46 2008 +0200 @@ -523,6 +523,9 @@ LOCK_crypt, LOCK_bytes_sent, LOCK_bytes_received, LOCK_global_system_variables, LOCK_user_conn, LOCK_slave_list, LOCK_active_mi; +pthread_mutex_t LOCK_global_user_stats; +pthread_mutex_t LOCK_global_table_stats; +pthread_mutex_t LOCK_global_index_stats; /* The below lock protects access to two global server variables: max_prepared_stmt_count and prepared_stmt_count. These variables @@ -1170,6 +1173,9 @@ x_free(opt_secure_file_priv); bitmap_free(&temp_pool); free_max_user_conn(); + free_global_user_stats(); + free_global_table_stats(); + free_global_index_stats(); #ifdef HAVE_REPLICATION end_slave_list(); free_list(&replicate_do_db); @@ -1284,6 +1290,9 @@ (void) pthread_cond_destroy(&COND_thread_cache); (void) pthread_cond_destroy(&COND_flush_thread_cache); (void) pthread_cond_destroy(&COND_manager); + (void) pthread_mutex_destroy(&LOCK_global_user_stats); + (void) pthread_mutex_destroy(&LOCK_global_table_stats); + (void) pthread_mutex_destroy(&LOCK_global_index_stats); } #endif /*EMBEDDED_LIBRARY*/ @@ -2983,6 +2992,9 @@ (void) pthread_mutex_init(&LOCK_rpl_status, MY_MUTEX_INIT_FAST); (void) pthread_cond_init(&COND_rpl_status, NULL); #endif + (void) pthread_mutex_init(&LOCK_global_user_stats, MY_MUTEX_INIT_FAST); + (void) pthread_mutex_init(&LOCK_global_table_stats, MY_MUTEX_INIT_FAST); + (void) pthread_mutex_init(&LOCK_global_index_stats, MY_MUTEX_INIT_FAST); sp_cache_init(); /* Parameter for threads created for connections */ (void) pthread_attr_init(&connection_attrib); @@ -3254,6 +3266,10 @@ sql_print_error("Out of memory"); unireg_abort(1); } + + init_global_table_stats(); + init_global_index_stats(); + if (ha_init()) { sql_print_error("Can't init databases"); @@ -3336,6 +3352,7 @@ init_max_user_conn(); init_update_queries(); + init_global_user_stats(); DBUG_RETURN(0); } diff -r a400ddf1b765 sql/sql_base.cc --- a/sql/sql_base.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_base.cc Wed Apr 02 00:55:46 2008 +0200 @@ -634,6 +634,9 @@ DBUG_ASSERT(table->key_read == 0); DBUG_ASSERT(!table->file || table->file->inited == handler::NONE); + table->file->update_global_table_stats(); + table->file->update_global_index_stats(); + *table_ptr=table->next; if (table->needs_reopen_or_name_lock() || thd->version != refresh_version || !table->db_stat) @@ -679,6 +682,9 @@ { DBUG_ENTER("close_temporary"); char path[FN_REFLEN]; + + table->file->update_global_table_stats(); + table->file->update_global_index_stats(); db_type table_type=table->s->db_type; strmov(path,table->s->path); free_io_cache(table); diff -r a400ddf1b765 sql/sql_class.cc --- a/sql/sql_class.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_class.cc Wed Apr 02 00:55:46 2008 +0200 @@ -220,6 +220,8 @@ bzero(ha_data, sizeof(ha_data)); mysys_var=0; binlog_evt_union.do_union= FALSE; + busy_time = 0; + updated_row_count = 0; #ifndef DBUG_OFF dbug_sentry=THD_SENTRY_MAGIC; #endif @@ -347,8 +349,55 @@ total_warn_count= 0; update_charset(); bzero((char *) &status_var, sizeof(status_var)); + reset_stats(); } +// Resets stats in a THD. +void THD::reset_stats(void) { + current_connect_time = time(NULL); + last_global_update_time = current_connect_time; + reset_diff_stats(); +} + +// Resets the 'diff' stats, which are used to update global stats. +void THD::reset_diff_stats(void) { + diff_total_busy_time = 0; + diff_total_sent_rows = 0; + diff_total_updated_rows = 0; + diff_select_commands = 0; + diff_update_commands = 0; + diff_other_commands = 0; + diff_commit_trans = 0; + diff_rollback_trans = 0; +} + +// Updates 'diff' stats of a THD. +void THD::update_stats() { + diff_total_busy_time += busy_time; + diff_total_sent_rows += sent_row_count; + diff_total_updated_rows += updated_row_count; + // The replication thread has the COM_CONNECT command. + if ((old_command == COM_QUERY || command == COM_CONNECT) && + (lex->sql_command >= 0 && lex->sql_command < SQLCOM_END)) { + // A SQL query. + if (lex->sql_command == SQLCOM_SELECT) { + if (lex->orig_sql_command == SQLCOM_END) { + diff_select_commands++; + } else { + // 'SHOW ' commands become SQLCOM_SELECT. + diff_other_commands++; + // 'SHOW ' commands shouldn't inflate total sent row count. + diff_total_sent_rows -= sent_row_count; + } + } else if (is_update_query(lex->sql_command)) { + diff_update_commands++; + } else { + diff_other_commands++; + } + } + // diff_commit_trans is updated in handler.cc. + // diff_rollback_trans is updated in handler.cc. +} /* Init THD for query processing. @@ -2249,4 +2298,3 @@ hash_delete(&xid_cache, (byte *)xid_state); pthread_mutex_unlock(&LOCK_xid_cache); } - diff -r a400ddf1b765 sql/sql_class.h --- a/sql/sql_class.h Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_class.h Wed Apr 02 00:55:46 2008 +0200 @@ -1241,6 +1241,8 @@ first byte of the packet in do_command() */ enum enum_server_command command; + // Used to save the command, before it is set to COM_SLEEP. + enum enum_server_command old_command; uint32 server_id; uint32 file_id; // for LOAD DATA INFILE /* @@ -1355,6 +1357,7 @@ longlong row_count_func; /* For the ROW_COUNT() function */ ha_rows cuted_fields, sent_row_count, examined_row_count; + ha_rows updated_row_count; /* The set of those tables whose fields are referenced in all subqueries of the query. @@ -1482,6 +1485,27 @@ */ LOG_INFO* current_linfo; NET* slave_net; // network connection from slave -> m. + + /* + Used to update global user stats. The global user stats are updated + occasionally with the 'diff' variables. After the update, the 'diff' + variables are reset to 0. + */ + // Time when the current thread connected to MySQL. + time_t current_connect_time; + // Last time when THD stats were updated in global_user_stats. + time_t last_global_update_time; + // Busy (non-idle) time for just one command. + double busy_time; + // Busy time not updated in global_user_stats yet. + double diff_total_busy_time; + // Number of rows not reflected in global_user_stats yet. + ha_rows diff_total_sent_rows, diff_total_updated_rows; + // Number of commands not reflected in global_user_stats yet. + ulonglong diff_select_commands, diff_update_commands, diff_other_commands; + // Number of transactions not reflected in global_user_stats yet. + ulonglong diff_commit_trans, diff_rollback_trans; + /* Used by the sys_var class to store temporary values */ union { @@ -1539,6 +1563,9 @@ alloc_root. */ void init_for_queries(); + void reset_stats(void); + void reset_diff_stats(void); + void update_stats(void); void change_user(void); void cleanup(void); void cleanup_after_query(); diff -r a400ddf1b765 sql/sql_delete.cc --- a/sql/sql_delete.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_delete.cc Wed Apr 02 00:55:46 2008 +0200 @@ -348,6 +348,7 @@ send_ok(thd,deleted); DBUG_PRINT("info",("%ld records deleted",(long) deleted)); } + thd->updated_row_count += deleted; DBUG_RETURN(error >= 0 || thd->net.report_error); } @@ -832,6 +833,7 @@ thd->row_count_func= deleted; ::send_ok(thd, deleted); } + thd->updated_row_count += deleted; return 0; } diff -r a400ddf1b765 sql/sql_insert.cc --- a/sql/sql_insert.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_insert.cc Wed Apr 02 00:55:46 2008 +0200 @@ -967,6 +967,7 @@ thd->row_count_func= info.copied + info.deleted + updated; ::send_ok(thd, (ulong) thd->row_count_func, id, buff); } + thd->updated_row_count += thd->row_count_func; thd->abort_on_warning= 0; DBUG_RETURN(FALSE); @@ -2981,6 +2982,7 @@ ((thd->client_capabilities & CLIENT_FOUND_ROWS) ? info.touched : info.updated); ::send_ok(thd, (ulong) thd->row_count_func, last_insert_id, buff); + thd->updated_row_count += thd->row_count_func; DBUG_RETURN(0); } diff -r a400ddf1b765 sql/sql_lex.h --- a/sql/sql_lex.h Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_lex.h Wed Apr 02 00:55:46 2008 +0200 @@ -100,6 +100,8 @@ When a command is added here, be sure it's also added in mysqld.cc in "struct show_var_st status_vars[]= {" ... */ + SQLCOM_SHOW_USER_STATS, SQLCOM_SHOW_TABLE_STATS, SQLCOM_SHOW_INDEX_STATS, + /* This should be the last !!! */ SQLCOM_END }; diff -r a400ddf1b765 sql/sql_parse.cc --- a/sql/sql_parse.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_parse.cc Wed Apr 02 00:55:46 2008 +0200 @@ -77,6 +77,15 @@ const char *table_name); static bool check_show_create_table_access(THD *thd, TABLE_LIST *table); +// Set stats for concurrent connections displayed by mysqld_show(). +static void set_concurrent_connections_stats(); + +// Increments connection count for user. +static int increment_connection_count(THD* thd, bool use_lock); + +// Uses the THD to update the global stats. +static void update_global_user_stats(THD* thd); + const char *any_db="*any*"; // Special symbol for check_access const char *command_name[]={ @@ -92,6 +101,15 @@ const char *xa_state_names[]={ "NON-EXISTING", "ACTIVE", "IDLE", "PREPARED" }; + +HASH global_user_stats; +extern pthread_mutex_t LOCK_global_user_stats; + +HASH global_table_stats; +extern pthread_mutex_t LOCK_global_table_stats; + +HASH global_index_stats; +extern pthread_mutex_t LOCK_global_index_stats; #ifdef __WIN__ static void test_signal(int sig_ptr) @@ -498,13 +516,81 @@ void init_max_user_conn(void) { #ifndef NO_EMBEDDED_ACCESS_CHECKS - (void) hash_init(&hash_user_connections,system_charset_info,max_connections, - 0,0, - (hash_get_key) get_key_conn, (hash_free_key) free_user, - 0); -#endif -} - + if (hash_init(&hash_user_connections,system_charset_info,max_connections, + 0,0, + (hash_get_key) get_key_conn, (hash_free_key) free_user, + 0)) { + sql_print_error("Initializing hash_user_connections failed."); + exit(1); + } +#endif +} + +extern "C" byte *get_key_user_stats(USER_STATS *user_stats, uint *length, + my_bool not_used __attribute__((unused))) +{ + *length = strlen(user_stats->user); + return (byte*)user_stats->user; +} + +extern "C" void free_user_stats(USER_STATS* user_stats) +{ + my_free((char*)user_stats, MYF(0)); +} + +void init_global_user_stats(void) +{ + if (hash_init(&global_user_stats, system_charset_info, max_connections, + 0, 0, (hash_get_key)get_key_user_stats, + (hash_free_key)free_user_stats, 0)) { + sql_print_error("Initializing global_user_stats failed."); + exit(1); + } +} + +extern "C" byte *get_key_table_stats(TABLE_STATS *table_stats, uint *length, + my_bool not_used __attribute__((unused))) +{ + *length = strlen(table_stats->table); + return (byte*)table_stats->table; +} + +extern "C" void free_table_stats(TABLE_STATS* table_stats) +{ + my_free((char*)table_stats, MYF(0)); +} + +void init_global_table_stats(void) +{ + if (hash_init(&global_table_stats, system_charset_info, max_connections, + 0, 0, (hash_get_key)get_key_table_stats, + (hash_free_key)free_table_stats, 0)) { + sql_print_error("Initializing global_table_stats failed."); + exit(1); + } +} + +extern "C" byte *get_key_index_stats(INDEX_STATS *index_stats, uint *length, + my_bool not_used __attribute__((unused))) +{ + *length = strlen(index_stats->index); + return (byte*)index_stats->index; +} + +extern "C" void free_index_stats(INDEX_STATS* index_stats) +{ + my_free((char*)index_stats, MYF(0)); +} + +void init_global_index_stats(void) +{ + if (hash_init(&global_index_stats, system_charset_info, max_connections, + 0, 0, (hash_get_key)get_key_index_stats, + (hash_free_key)free_index_stats, 0)) { + sql_print_error("Initializing global_index_stats failed."); + exit(1); + } +} /* check if user has already too many connections @@ -608,6 +694,20 @@ #endif /* NO_EMBEDDED_ACCESS_CHECKS */ } +void free_global_user_stats(void) +{ + hash_free(&global_user_stats); +} + +void free_global_table_stats(void) +{ + hash_free(&global_table_stats); +} + +void free_global_index_stats(void) +{ + hash_free(&global_index_stats); +} /* @@ -660,6 +760,129 @@ return uc_update_queries[command] != 0; } +// 'mysql_system_user' is used for when the user is not defined for a THD. +static char mysql_system_user[] = "#mysql_system#"; + +// Returns 'user' if it's not NULL. Returns 'mysql_system_user' otherwise. +static char* get_valid_user_string(char* user) { + return user ? user : mysql_system_user; +} + +// Increments the global user stats connection count. If 'use_lock' is true, +// 'LOCK_global_user_stats' will be locked/unlocked. Returns 0 on success, +// 1 on error. +static int increment_connection_count(THD* thd, bool use_lock) { + char* user_string = get_valid_user_string(thd->main_security_ctx.user); + + USER_STATS* user_stats; + int return_value = 0; + + if (use_lock) pthread_mutex_lock(&LOCK_global_user_stats); + if (!(user_stats = (USER_STATS*)hash_search(&global_user_stats, + (byte*)user_string, + strlen(user_string)))) { + // First connection for this user. + if (!(user_stats = ((USER_STATS*) + my_malloc(sizeof(USER_STATS), MYF(MY_WME))))) { + // Out of memory. + return_value = 1; + goto end; + } + strncpy(user_stats->user, user_string, sizeof(user_stats->user)); + user_stats->total_connections = 0; + user_stats->concurrent_connections = 0; + user_stats->connected_time = 0; + user_stats->busy_time = 0; + user_stats->rows_fetched = 0; + user_stats->rows_updated = 0; + user_stats->select_commands = 0; + user_stats->update_commands = 0; + user_stats->other_commands = 0; + user_stats->commit_trans = 0; + user_stats->rollback_trans = 0; + + if (my_hash_insert(&global_user_stats, (byte*)user_stats)) { + // Out of memory. + my_free((char*)user_stats, 0); + return_value = 1; + goto end; + } + } + user_stats->total_connections++; +end: + if (use_lock) pthread_mutex_unlock(&LOCK_global_user_stats); + return return_value; +} + +// Used to update the global user stats. +static void update_global_user_stats_with_user(THD* thd, + USER_STATS* user_stats) { + time_t current_time = time(NULL); + user_stats->connected_time += current_time - thd->last_global_update_time; + thd->last_global_update_time = current_time; + user_stats->busy_time += thd->diff_total_busy_time; + user_stats->rows_fetched += thd->diff_total_sent_rows; + user_stats->rows_updated += thd->diff_total_updated_rows; + user_stats->select_commands += thd->diff_select_commands; + user_stats->update_commands += thd->diff_update_commands; + user_stats->other_commands += thd->diff_other_commands; + user_stats->commit_trans += thd->diff_commit_trans; + user_stats->rollback_trans += thd->diff_rollback_trans; +} + +// Updates the global stats of a thread/user. +static void update_global_user_stats(THD* thd) { + char* user_string = get_valid_user_string(thd->main_security_ctx.user); + + USER_STATS* user_stats; + pthread_mutex_lock(&LOCK_global_user_stats); + if ((user_stats = (USER_STATS*)hash_search(&global_user_stats, + (byte*)user_string, + strlen(user_string)))) { + // Found user. + update_global_user_stats_with_user(thd, user_stats); + thd->reset_diff_stats(); + } else { + // The user name should exist. + increment_connection_count(thd, false); + } + pthread_mutex_unlock(&LOCK_global_user_stats); +} + +// Determines the concurrent number of connections of current threads. +static void set_concurrent_connections_stats() { + USER_STATS* user_stats; + + pthread_mutex_lock(&LOCK_global_user_stats); + pthread_mutex_lock(&LOCK_thread_count); + + // Resets all concurrent connections to 0. + for (int i = 0; i < global_user_stats.records; ++i) { + user_stats = (USER_STATS*)hash_element(&global_user_stats, i); + user_stats->concurrent_connections = 0; + } + + I_List_iterator it(threads); + THD* thd; + // Iterates through the current threads. + while ((thd = it++)) { + char* user_string = get_valid_user_string(thd->main_security_ctx.user); + if ((user_stats = (USER_STATS*)hash_search(&global_user_stats, + (byte*)user_string, + strlen(user_string)))) { + // Found user. + user_stats->concurrent_connections++; + update_global_user_stats_with_user(thd, user_stats); + thd->reset_diff_stats(); + } else { + // The user name should exist. + increment_connection_count(thd, false); + } + } + pthread_mutex_unlock(&LOCK_thread_count); + pthread_mutex_unlock(&LOCK_global_user_stats); +} + /* Reset per-hour user resource limits when it has been more than an hour since they were last checked @@ -1157,6 +1380,14 @@ statistic_increment(aborted_connects,&LOCK_status); goto end_thread; } + + thd->reset_stats(); + // Updates global user connection stats. + if (increment_connection_count(thd, true)) { + net_send_error(thd, ER_OUTOFMEMORY); // Out of memory + goto end_thread; + } + #ifdef __NETWARE__ netware_reg_user(sctx->ip, sctx->user, "MySQL"); #endif @@ -1218,6 +1449,8 @@ end_thread: close_connection(thd, 0, 1); + thd->update_stats(); + update_global_user_stats(thd); end_thread(thd,1); /* If end_thread returns, we are either running with --one-thread @@ -1619,6 +1852,9 @@ } thd->command=command; + // To increment the corrent command counter for user stats, 'command' must + // be saved because it is set to COM_SLEEP at the end of this function. + thd->old_command = command; /* Commands which always take a long time are logged into the slow log only if opt_log_slow_admin_statements is set. @@ -2802,6 +3038,22 @@ } #endif + case SQLCOM_SHOW_USER_STATS: + { + set_concurrent_connections_stats(); + res= mysqld_show_user_stats(thd, (lex->wild ? lex->wild->ptr() : NullS)); + break; + } + case SQLCOM_SHOW_TABLE_STATS: + { + res= mysqld_show_table_stats(thd, (lex->wild ? lex->wild->ptr() : NullS)); + break; + } + case SQLCOM_SHOW_INDEX_STATS: + { + res= mysqld_show_index_stats(thd, (lex->wild ? lex->wild->ptr() : NullS)); + break; + } case SQLCOM_BACKUP_TABLE: { DBUG_ASSERT(first_table == all_tables && first_table != 0); @@ -5870,6 +6122,8 @@ #ifdef ENABLED_PROFILING thd->profiling.reset(); #endif + thd->updated_row_count=0; + thd->busy_time=0; } DBUG_VOID_RETURN; } @@ -6034,6 +6288,16 @@ DBUG_ENTER("mysql_parse"); DBUG_EXECUTE_IF("parser_debug", turn_parser_debug_on();); + + int start_time_error = 0; + int end_time_error = 0; + struct timeval start_time, end_time; + double start_usecs = 0; + double end_usecs = 0; + // Gets the start time, in order to measure how long this command takes. + if (!(start_time_error = gettimeofday(&start_time, NULL))) { + start_usecs = start_time.tv_sec * 1000000.0 + start_time.tv_usec; + } /* Warning. @@ -6746,6 +7010,28 @@ tables->lock_type= lock_type; tables->updating= for_update; } + + // Gets the end time. + if (!(end_time_error = gettimeofday(&end_time, NULL))) { + end_usecs = end_time.tv_sec * 1000000.0 + end_time.tv_usec; + } + + // Calculates the difference between the end and start times. + if (end_usecs >= start_usecs && !start_time_error && !end_time_error) { + thd->busy_time = (end_usecs - start_usecs) / 1000000; + // In case there are bad values, 2629743 is the #seconds in a month. + if (thd->busy_time > 2629743) { + thd->busy_time = 0; + } + } else { + // end time went back in time, or gettimeofday() failed. + thd->busy_time = 0; + } + + // Updates THD stats and the global user stats. + thd->update_stats(); + update_global_user_stats(thd); + DBUG_VOID_RETURN; } @@ -7111,8 +7397,22 @@ pthread_mutex_unlock(&LOCK_active_mi); } #endif - if (options & REFRESH_USER_RESOURCES) - reset_mqh((LEX_USER *) NULL); + if (options & REFRESH_USER_RESOURCES) + reset_mqh((LEX_USER *) NULL); + if (options & REFRESH_TABLE_STATS) + { + pthread_mutex_lock(&LOCK_global_table_stats); + free_global_table_stats(); + init_global_table_stats(); + pthread_mutex_unlock(&LOCK_global_table_stats); + } + if (options & REFRESH_INDEX_STATS) + { + pthread_mutex_lock(&LOCK_global_index_stats); + free_global_index_stats(); + init_global_index_stats(); + pthread_mutex_unlock(&LOCK_global_index_stats); + } *write_to_binlog= tmp_write_to_binlog; return result; } diff -r a400ddf1b765 sql/sql_show.cc --- a/sql/sql_show.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_show.cc Wed Apr 02 00:55:46 2008 +0200 @@ -1789,6 +1789,136 @@ DBUG_RETURN(FALSE); } +// Sends the global user stats back to the client. +int mysqld_show_user_stats(THD *thd, const char *wild) { + Protocol *protocol= thd->protocol; + List field_list; + + DBUG_ENTER("mysqld_show_user_stats"); + field_list.push_back(new Item_empty_string("User", USERNAME_LENGTH + 1)); + field_list.push_back(new Item_int("Total_connections", 0)); + field_list.push_back(new Item_int("Concurrent_connections", 0)); + field_list.push_back(new Item_int("Connected_time", 0)); + field_list.push_back(new Item_int("Busy_time", 0)); + field_list.push_back(new Item_int("Rows_fetched", 0)); + field_list.push_back(new Item_int("Rows_updated", 0)); + field_list.push_back(new Item_int("Select_commands", 0)); + field_list.push_back(new Item_int("Update_commands", 0)); + field_list.push_back(new Item_int("Other_commands", 0)); + field_list.push_back(new Item_int("Commit_transactions", 0)); + field_list.push_back(new Item_int("Rollback_transactions", 0)); + if (protocol->send_fields(&field_list, + Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF)) + DBUG_RETURN(TRUE); /* purecov: inspected */ + + // Iterates through all the global stats and sends them to the client. + // Pattern matching on the username is supported. + pthread_mutex_lock(&LOCK_global_user_stats); + for (int i = 0; i < global_user_stats.records; ++i) { + USER_STATS *user_stats = (USER_STATS*)hash_element(&global_user_stats, i); + if (!(wild && wild[0] && + wild_case_compare(system_charset_info, user_stats->user, wild))) { + protocol->prepare_for_resend(); + protocol->store(user_stats->user, system_charset_info); + protocol->store((longlong)user_stats->total_connections); + protocol->store((longlong)user_stats->concurrent_connections); + protocol->store((longlong)user_stats->connected_time); + protocol->store((longlong)user_stats->busy_time); + protocol->store((longlong)user_stats->rows_fetched); + protocol->store((longlong)user_stats->rows_updated); + protocol->store((longlong)user_stats->select_commands); + protocol->store((longlong)user_stats->update_commands); + protocol->store((longlong)user_stats->other_commands); + protocol->store((longlong)user_stats->commit_trans); + protocol->store((longlong)user_stats->rollback_trans); + if (protocol->write()) + goto err; /* purecov: inspected */ + } + } + pthread_mutex_unlock(&LOCK_global_user_stats); + send_eof(thd); + DBUG_RETURN(FALSE); + + err: + pthread_mutex_unlock(&LOCK_global_user_stats); + DBUG_RETURN(TRUE); +} + +// Sends the global table stats back to the client. +int mysqld_show_table_stats(THD *thd, const char *wild) { + Protocol *protocol= thd->protocol; + List field_list; + + DBUG_ENTER("mysqld_show_table_stats"); + field_list.push_back(new Item_empty_string("Table", NAME_LEN * 2 + 2)); + field_list.push_back(new Item_int("Rows_read", 0)); + field_list.push_back(new Item_int("Rows_changed", 0)); + field_list.push_back(new Item_int("Rows_changed_x_#indexes", 0)); + if (protocol->send_fields(&field_list, + Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF)) + DBUG_RETURN(TRUE); /* purecov: inspected */ + + // Iterates through all the global table stats and sends them to the client. + // Pattern matching on the table name is supported. + pthread_mutex_lock(&LOCK_global_table_stats); + for (int i = 0; i < global_table_stats.records; ++i) { + TABLE_STATS *table_stats = + (TABLE_STATS*)hash_element(&global_table_stats, i); + if (!(wild && wild[0] && + wild_case_compare(system_charset_info, table_stats->table, wild))) { + protocol->prepare_for_resend(); + protocol->store(table_stats->table, system_charset_info); + protocol->store((longlong)table_stats->rows_read); + protocol->store((longlong)table_stats->rows_changed); + protocol->store((longlong)table_stats->rows_changed_x_indexes); + if (protocol->write()) + goto err; /* purecov: inspected */ + } + } + pthread_mutex_unlock(&LOCK_global_table_stats); + send_eof(thd); + DBUG_RETURN(FALSE); + + err: + pthread_mutex_unlock(&LOCK_global_table_stats); + DBUG_RETURN(TRUE); +} + +// Sends the global index stats back to the client. +int mysqld_show_index_stats(THD *thd, const char *wild) { + Protocol *protocol= thd->protocol; + List field_list; + + DBUG_ENTER("mysqld_show_index_stats"); + field_list.push_back(new Item_empty_string("Index", NAME_LEN * 3 + 3)); + field_list.push_back(new Item_int("Rows_read", 0)); + if (protocol->send_fields(&field_list, + Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF)) + DBUG_RETURN(TRUE); /* purecov: inspected */ + + // Iterates through all the global index stats and sends them to the client. + // Pattern matching on the index name is supported. + pthread_mutex_lock(&LOCK_global_index_stats); + for (int i = 0; i < global_index_stats.records; ++i) { + INDEX_STATS *index_stats = + (INDEX_STATS*)hash_element(&global_index_stats, i); + if (!(wild && wild[0] && + wild_case_compare(system_charset_info, index_stats->index, wild))) { + protocol->prepare_for_resend(); + protocol->store(index_stats->index, system_charset_info); + protocol->store((longlong)index_stats->rows_read); + if (protocol->write()) + goto err; /* purecov: inspected */ + } + } + pthread_mutex_unlock(&LOCK_global_index_stats); + send_eof(thd); + DBUG_RETURN(FALSE); + + err: + pthread_mutex_unlock(&LOCK_global_index_stats); + DBUG_RETURN(TRUE); +} /* collect status for all running threads */ diff -r a400ddf1b765 sql/sql_update.cc --- a/sql/sql_update.cc Wed Apr 02 00:54:36 2008 +0200 +++ b/sql/sql_update.cc Wed Apr 02 00:55:46 2008 +0200 @@ -614,7 +614,8 @@ (thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated; send_ok(thd, (ulong) thd->row_count_func, thd->insert_id_used ? thd->last_insert_id : 0L,buff); - DBUG_PRINT("info",("%ld records updated", (long) updated)); + thd->updated_row_count += thd->row_count_func; + DBUG_PRINT("info",("%d records updated",updated)); } thd->count_cuted_fields= CHECK_FIELD_IGNORE; /* calc cuted fields */ thd->abort_on_warning= 0; @@ -1709,5 +1710,6 @@ (thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated; ::send_ok(thd, (ulong) thd->row_count_func, thd->insert_id_used ? thd->last_insert_id : 0L,buff); + thd->updated_row_count += thd->row_count_func; return FALSE; } diff -r a400ddf1b765 sql/sql_yacc.cc --- a/sql/sql_yacc.cc Wed Apr 02 00:54:36 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28167 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.0. */ - -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* Written by Richard Stallman by simplifying the original so called - ``semantic'' parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 1 - -/* Using locations. */ -#define YYLSP_NEEDED 0 - -/* Substitute the variable and function names. */ -#define yyparse MYSQLparse -#define yylex MYSQLlex -#define yyerror MYSQLerror -#define yylval MYSQLlval -#define yychar MYSQLchar -#define yydebug MYSQLdebug -#define yynerrs MYSQLnerrs - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - END_OF_INPUT = 258, - ABORT_SYM = 259, - ACTION = 260, - ADD = 261, - ADDDATE_SYM = 262, - AFTER_SYM = 263, - AGAINST = 264, - AGGREGATE_SYM = 265, - ALGORITHM_SYM = 266, - ALL = 267, - ALTER = 268, - ANALYZE_SYM = 269, - AND_AND_SYM = 270, - AND_SYM = 271, - ANY_SYM = 272, - AS = 273, - ASC = 274, - ASCII_SYM = 275, - ASENSITIVE_SYM = 276, - ATAN = 277, - AUTO_INC = 278, - AVG_ROW_LENGTH = 279, - AVG_SYM = 280, - BACKUP_SYM = 281, - BEFORE_SYM = 282, - BEGIN_SYM = 283, - BENCHMARK_SYM = 284, - BERKELEY_DB_SYM = 285, - BIGINT = 286, - BINARY = 287, - BINLOG_SYM = 288, - BIN_NUM = 289, - BIT_AND = 290, - BIT_OR = 291, - BIT_SYM = 292, - BIT_XOR = 293, - BLOB_SYM = 294, - BLOCK_SYM = 295, - BOOLEAN_SYM = 296, - BOOL_SYM = 297, - BOTH = 298, - BTREE_SYM = 299, - BY = 300, - BYTE_SYM = 301, - CACHE_SYM = 302, - CALL_SYM = 303, - CASCADE = 304, - CASCADED = 305, - CAST_SYM = 306, - CHAIN_SYM = 307, - CHANGE = 308, - CHANGED = 309, - CHARSET = 310, - CHAR_SYM = 311, - CHECKSUM_SYM = 312, - CHECK_SYM = 313, - CIPHER_SYM = 314, - CLIENT_SYM = 315, - CLOSE_SYM = 316, - COALESCE = 317, - CODE_SYM = 318, - COLLATE_SYM = 319, - COLLATION_SYM = 320, - COLUMNS = 321, - COLUMN_SYM = 322, - COMMENT_SYM = 323, - COMMITTED_SYM = 324, - COMMIT_SYM = 325, - COMPACT_SYM = 326, - COMPRESSED_SYM = 327, - CONCAT = 328, - CONCAT_WS = 329, - CONCURRENT = 330, - CONDITION_SYM = 331, - CONNECTION_SYM = 332, - CONSISTENT_SYM = 333, - CONSTRAINT = 334, - CONTAINS_SYM = 335, - CONTEXT_SYM = 336, - CONTINUE_SYM = 337, - CONVERT_SYM = 338, - CONVERT_TZ_SYM = 339, - COUNT_SYM = 340, - CPU_SYM = 341, - CREATE = 342, - CROSS = 343, - CUBE_SYM = 344, - CURDATE = 345, - CURRENT_USER = 346, - CURSOR_SYM = 347, - CURTIME = 348, - DATABASE = 349, - DATABASES = 350, - DATA_SYM = 351, - DATETIME = 352, - DATE_ADD_INTERVAL = 353, - DATE_SUB_INTERVAL = 354, - DATE_SYM = 355, - DAY_HOUR_SYM = 356, - DAY_MICROSECOND_SYM = 357, - DAY_MINUTE_SYM = 358, - DAY_SECOND_SYM = 359, - DAY_SYM = 360, - DEALLOCATE_SYM = 361, - DECIMAL_NUM = 362, - DECIMAL_SYM = 363, - DECLARE_SYM = 364, - DECODE_SYM = 365, - DEFAULT = 366, - DEFINER_SYM = 367, - DELAYED_SYM = 368, - DELAY_KEY_WRITE_SYM = 369, - DELETE_SYM = 370, - DESC = 371, - DESCRIBE = 372, - DES_DECRYPT_SYM = 373, - DES_ENCRYPT_SYM = 374, - DES_KEY_FILE = 375, - DETERMINISTIC_SYM = 376, - DIRECTORY_SYM = 377, - DISABLE_SYM = 378, - DISCARD = 379, - DISTINCT = 380, - DIV_SYM = 381, - DOUBLE_SYM = 382, - DO_SYM = 383, - DROP = 384, - DUAL_SYM = 385, - DUMPFILE = 386, - DUPLICATE_SYM = 387, - DYNAMIC_SYM = 388, - EACH_SYM = 389, - ELSEIF_SYM = 390, - ELT_FUNC = 391, - ENABLE_SYM = 392, - ENCLOSED = 393, - ENCODE_SYM = 394, - ENCRYPT = 395, - END = 396, - ENGINES_SYM = 397, - ENGINE_SYM = 398, - ENUM = 399, - EQ = 400, - EQUAL_SYM = 401, - ERRORS = 402, - ESCAPED = 403, - ESCAPE_SYM = 404, - EVENTS_SYM = 405, - EXECUTE_SYM = 406, - EXISTS = 407, - EXIT_SYM = 408, - EXPANSION_SYM = 409, - EXPORT_SET = 410, - EXTENDED_SYM = 411, - EXTRACT_SYM = 412, - FALSE_SYM = 413, - FAST_SYM = 414, - FAULTS_SYM = 415, - FETCH_SYM = 416, - FIELD_FUNC = 417, - FILE_SYM = 418, - FIRST_SYM = 419, - FIXED_SYM = 420, - FLOAT_NUM = 421, - FLOAT_SYM = 422, - FLUSH_SYM = 423, - FORCE_SYM = 424, - FOREIGN = 425, - FORMAT_SYM = 426, - FOR_SYM = 427, - FOUND_SYM = 428, - FRAC_SECOND_SYM = 429, - FROM = 430, - FROM_UNIXTIME = 431, - FULL = 432, - FULLTEXT_SYM = 433, - FUNCTION_SYM = 434, - FUNC_ARG0 = 435, - FUNC_ARG1 = 436, - FUNC_ARG2 = 437, - FUNC_ARG3 = 438, - GE = 439, - GEOMCOLLFROMTEXT = 440, - GEOMETRYCOLLECTION = 441, - GEOMETRY_SYM = 442, - GEOMFROMTEXT = 443, - GEOMFROMWKB = 444, - GET_FORMAT = 445, - GLOBAL_SYM = 446, - GRANT = 447, - GRANTS = 448, - GREATEST_SYM = 449, - GROUP = 450, - GROUP_CONCAT_SYM = 451, - GROUP_UNIQUE_USERS = 452, - GT_SYM = 453, - HANDLER_SYM = 454, - HASH_SYM = 455, - HAVING = 456, - HELP_SYM = 457, - HEX_NUM = 458, - HIGH_PRIORITY = 459, - HOSTS_SYM = 460, - HOUR_MICROSECOND_SYM = 461, - HOUR_MINUTE_SYM = 462, - HOUR_SECOND_SYM = 463, - HOUR_SYM = 464, - IDENT = 465, - IDENTIFIED_SYM = 466, - IDENT_QUOTED = 467, - IF = 468, - IGNORE_SYM = 469, - IMPORT = 470, - INDEXES = 471, - INDEX_SYM = 472, - INFILE = 473, - INNER_SYM = 474, - INNOBASE_SYM = 475, - INOUT_SYM = 476, - INSENSITIVE_SYM = 477, - INSERT = 478, - INSERT_METHOD = 479, - INTERVAL_SYM = 480, - INTO = 481, - INT_SYM = 482, - INVOKER_SYM = 483, - IN_SYM = 484, - IO_SYM = 485, - IPC_SYM = 486, - IS = 487, - ISOLATION = 488, - ISSUER_SYM = 489, - ITERATE_SYM = 490, - JOIN_SYM = 491, - KEYS = 492, - KEY_SYM = 493, - KILL_SYM = 494, - LABEL_SYM = 495, - LANGUAGE_SYM = 496, - LAST_INSERT_ID = 497, - LAST_SYM = 498, - LE = 499, - LEADING = 500, - LEAST_SYM = 501, - LEAVES = 502, - LEAVE_SYM = 503, - LEFT = 504, - LEVEL_SYM = 505, - LEX_HOSTNAME = 506, - LIKE = 507, - LIMIT = 508, - LINEFROMTEXT = 509, - LINES = 510, - LINESTRING = 511, - LOAD = 512, - LOCAL_SYM = 513, - LOCATE = 514, - LOCATOR_SYM = 515, - LOCKS_SYM = 516, - LOCK_SYM = 517, - LOGS_SYM = 518, - LOG_SYM = 519, - LONGBLOB = 520, - LONGTEXT = 521, - LONG_NUM = 522, - LONG_SYM = 523, - LOOP_SYM = 524, - LOW_PRIORITY = 525, - LT = 526, - MAKE_SET_SYM = 527, - MASTER_CONNECT_RETRY_SYM = 528, - MASTER_HOST_SYM = 529, - MASTER_LOG_FILE_SYM = 530, - MASTER_LOG_POS_SYM = 531, - MASTER_PASSWORD_SYM = 532, - MASTER_PORT_SYM = 533, - MASTER_POS_WAIT = 534, - MASTER_SERVER_ID_SYM = 535, - MASTER_SSL_CAPATH_SYM = 536, - MASTER_SSL_CA_SYM = 537, - MASTER_SSL_CERT_SYM = 538, - MASTER_SSL_CIPHER_SYM = 539, - MASTER_SSL_KEY_SYM = 540, - MASTER_SSL_SYM = 541, - MASTER_SYM = 542, - MASTER_USER_SYM = 543, - MATCH = 544, - MAX_CONNECTIONS_PER_HOUR = 545, - MAX_QUERIES_PER_HOUR = 546, - MAX_ROWS = 547, - MAX_SYM = 548, - MAX_UPDATES_PER_HOUR = 549, - MAX_USER_CONNECTIONS_SYM = 550, - MEDIUMBLOB = 551, - MEDIUMINT = 552, - MEDIUMTEXT = 553, - MEDIUM_SYM = 554, - MEMORY_SYM = 555, - MERGE_SYM = 556, - MICROSECOND_SYM = 557, - MIGRATE_SYM = 558, - MINUTE_MICROSECOND_SYM = 559, - MINUTE_SECOND_SYM = 560, - MINUTE_SYM = 561, - MIN_ROWS = 562, - MIN_SYM = 563, - MLINEFROMTEXT = 564, - MODE_SYM = 565, - MODIFIES_SYM = 566, - MODIFY_SYM = 567, - MOD_SYM = 568, - MONTH_SYM = 569, - MPOINTFROMTEXT = 570, - MPOLYFROMTEXT = 571, - MULTILINESTRING = 572, - MULTIPOINT = 573, - MULTIPOLYGON = 574, - MUTEX_SYM = 575, - NAMES_SYM = 576, - NAME_SYM = 577, - NATIONAL_SYM = 578, - NATURAL = 579, - NCHAR_STRING = 580, - NCHAR_SYM = 581, - NDBCLUSTER_SYM = 582, - NE = 583, - NEW_SYM = 584, - NEXT_SYM = 585, - NONE_SYM = 586, - NOT2_SYM = 587, - NOT_SYM = 588, - NOW_SYM = 589, - NO_SYM = 590, - NO_WRITE_TO_BINLOG = 591, - NULL_SYM = 592, - NUM = 593, - NUMERIC_SYM = 594, - NVARCHAR_SYM = 595, - OFFSET_SYM = 596, - OJ_SYM = 597, - OLD_PASSWORD = 598, - ON = 599, - ONE_SHOT_SYM = 600, - ONE_SYM = 601, - OPEN_SYM = 602, - OPTIMIZE = 603, - OPTION = 604, - OPTIONALLY = 605, - OR2_SYM = 606, - ORDER_SYM = 607, - OR_OR_SYM = 608, - OR_SYM = 609, - OUTER = 610, - OUTFILE = 611, - OUT_SYM = 612, - PACK_KEYS_SYM = 613, - PAGE_SYM = 614, - PARTIAL = 615, - PASSWORD = 616, - PARAM_MARKER = 617, - PHASE_SYM = 618, - POINTFROMTEXT = 619, - POINT_SYM = 620, - POLYFROMTEXT = 621, - POLYGON = 622, - POSITION_SYM = 623, - PRECISION = 624, - PREPARE_SYM = 625, - PREV_SYM = 626, - PRIMARY_SYM = 627, - PRIVILEGES = 628, - PROCEDURE = 629, - PROCESS = 630, - PROCESSLIST_SYM = 631, - PROFILE_SYM = 632, - PROFILES_SYM = 633, - PURGE = 634, - QUARTER_SYM = 635, - QUERY_SYM = 636, - QUICK = 637, - RAID_0_SYM = 638, - RAID_CHUNKS = 639, - RAID_CHUNKSIZE = 640, - RAID_STRIPED_SYM = 641, - RAID_TYPE = 642, - RAND = 643, - READS_SYM = 644, - READ_SYM = 645, - REAL = 646, - RECOVER_SYM = 647, - REDUNDANT_SYM = 648, - REFERENCES = 649, - REGEXP = 650, - RELAY_LOG_FILE_SYM = 651, - RELAY_LOG_POS_SYM = 652, - RELAY_THREAD = 653, - RELEASE_SYM = 654, - RELOAD = 655, - RENAME = 656, - REPAIR = 657, - REPEATABLE_SYM = 658, - REPEAT_SYM = 659, - REPLACE = 660, - REPLICATION = 661, - REQUIRE_SYM = 662, - RESET_SYM = 663, - RESOURCES = 664, - RESTORE_SYM = 665, - RESTRICT = 666, - RESUME_SYM = 667, - RETURNS_SYM = 668, - RETURN_SYM = 669, - REVOKE = 670, - RIGHT = 671, - ROLLBACK_SYM = 672, - ROLLUP_SYM = 673, - ROUND = 674, - ROUTINE_SYM = 675, - ROWS_SYM = 676, - ROW_COUNT_SYM = 677, - ROW_FORMAT_SYM = 678, - ROW_SYM = 679, - RTREE_SYM = 680, - SAVEPOINT_SYM = 681, - SECOND_MICROSECOND_SYM = 682, - SECOND_SYM = 683, - SECURITY_SYM = 684, - SELECT_SYM = 685, - SENSITIVE_SYM = 686, - SEPARATOR_SYM = 687, - SERIALIZABLE_SYM = 688, - SERIAL_SYM = 689, - SESSION_SYM = 690, - SET = 691, - SET_VAR = 692, - SHARE_SYM = 693, - SHIFT_LEFT = 694, - SHIFT_RIGHT = 695, - SHOW = 696, - SHUTDOWN = 697, - SIGNED_SYM = 698, - SIMPLE_SYM = 699, - SLAVE = 700, - SMALLINT = 701, - SNAPSHOT_SYM = 702, - SOUNDS_SYM = 703, - SOURCE_SYM = 704, - SPATIAL_SYM = 705, - SPECIFIC_SYM = 706, - SQLEXCEPTION_SYM = 707, - SQLSTATE_SYM = 708, - SQLWARNING_SYM = 709, - SQL_BIG_RESULT = 710, - SQL_BUFFER_RESULT = 711, - SQL_CACHE_SYM = 712, - SQL_CALC_FOUND_ROWS = 713, - SQL_NO_CACHE_SYM = 714, - SQL_SMALL_RESULT = 715, - SQL_SYM = 716, - SQL_THREAD = 717, - SSL_SYM = 718, - STARTING = 719, - START_SYM = 720, - STATUS_SYM = 721, - STD_SYM = 722, - STDDEV_SAMP_SYM = 723, - STOP_SYM = 724, - STORAGE_SYM = 725, - STRAIGHT_JOIN = 726, - STRING_SYM = 727, - SUBDATE_SYM = 728, - SUBJECT_SYM = 729, - SUBSTRING = 730, - SUBSTRING_INDEX = 731, - SUM_SYM = 732, - SUPER_SYM = 733, - SUSPEND_SYM = 734, - SWAPS_SYM = 735, - SWITCHES_SYM = 736, - SYSDATE = 737, - TABLES = 738, - TABLESPACE = 739, - TABLE_SYM = 740, - TEMPORARY = 741, - TEMPTABLE_SYM = 742, - TERMINATED = 743, - TEXT_STRING = 744, - TEXT_SYM = 745, - TIMESTAMP = 746, - TIMESTAMP_ADD = 747, - TIMESTAMP_DIFF = 748, - TIME_SYM = 749, - TINYBLOB = 750, - TINYINT = 751, - TINYTEXT = 752, - TO_SYM = 753, - TRAILING = 754, - TRANSACTION_SYM = 755, - TRIGGER_SYM = 756, - TRIGGERS_SYM = 757, - TRIM = 758, - TRUE_SYM = 759, - TRUNCATE_SYM = 760, - TYPES_SYM = 761, - TYPE_SYM = 762, - UDF_RETURNS_SYM = 763, - UDF_SONAME_SYM = 764, - ULONGLONG_NUM = 765, - UNCOMMITTED_SYM = 766, - UNDEFINED_SYM = 767, - UNDERSCORE_CHARSET = 768, - UNDO_SYM = 769, - UNICODE_SYM = 770, - UNION_SYM = 771, - UNIQUE_SYM = 772, - UNIQUE_USERS = 773, - UNIX_TIMESTAMP = 774, - UNKNOWN_SYM = 775, - UNLOCK_SYM = 776, - UNSIGNED = 777, - UNTIL_SYM = 778, - UPDATE_SYM = 779, - UPGRADE_SYM = 780, - USAGE = 781, - USER = 782, - USE_FRM = 783, - USE_SYM = 784, - USING = 785, - UTC_DATE_SYM = 786, - UTC_TIMESTAMP_SYM = 787, - UTC_TIME_SYM = 788, - VAR_SAMP_SYM = 789, - VALUES = 790, - VALUE_SYM = 791, - VARBINARY = 792, - VARCHAR = 793, - VARIABLES = 794, - VARIANCE_SYM = 795, - VARYING = 796, - VIEW_SYM = 797, - WARNINGS = 798, - WEEK_SYM = 799, - WHEN_SYM = 800, - WHERE = 801, - WHILE_SYM = 802, - WITH = 803, - WORK_SYM = 804, - WRITE_SYM = 805, - X509_SYM = 806, - XA_SYM = 807, - XOR = 808, - YEARWEEK = 809, - YEAR_MONTH_SYM = 810, - YEAR_SYM = 811, - ZEROFILL = 812, - TABLE_REF_PRIORITY = 813, - ELSE = 814, - THEN_SYM = 815, - CASE_SYM = 816, - BETWEEN_SYM = 817, - NEG = 818 - }; -#endif -#define END_OF_INPUT 258 -#define ABORT_SYM 259 -#define ACTION 260 -#define ADD 261 -#define ADDDATE_SYM 262 -#define AFTER_SYM 263 -#define AGAINST 264 -#define AGGREGATE_SYM 265 -#define ALGORITHM_SYM 266 -#define ALL 267 -#define ALTER 268 -#define ANALYZE_SYM 269 -#define AND_AND_SYM 270 -#define AND_SYM 271 -#define ANY_SYM 272 -#define AS 273 -#define ASC 274 -#define ASCII_SYM 275 -#define ASENSITIVE_SYM 276 -#define ATAN 277 -#define AUTO_INC 278 -#define AVG_ROW_LENGTH 279 -#define AVG_SYM 280 -#define BACKUP_SYM 281 -#define BEFORE_SYM 282 -#define BEGIN_SYM 283 -#define BENCHMARK_SYM 284 -#define BERKELEY_DB_SYM 285 -#define BIGINT 286 -#define BINARY 287 -#define BINLOG_SYM 288 -#define BIN_NUM 289 -#define BIT_AND 290 -#define BIT_OR 291 -#define BIT_SYM 292 -#define BIT_XOR 293 -#define BLOB_SYM 294 -#define BLOCK_SYM 295 -#define BOOLEAN_SYM 296 -#define BOOL_SYM 297 -#define BOTH 298 -#define BTREE_SYM 299 -#define BY 300 -#define BYTE_SYM 301 -#define CACHE_SYM 302 -#define CALL_SYM 303 -#define CASCADE 304 -#define CASCADED 305 -#define CAST_SYM 306 -#define CHAIN_SYM 307 -#define CHANGE 308 -#define CHANGED 309 -#define CHARSET 310 -#define CHAR_SYM 311 -#define CHECKSUM_SYM 312 -#define CHECK_SYM 313 -#define CIPHER_SYM 314 -#define CLIENT_SYM 315 -#define CLOSE_SYM 316 -#define COALESCE 317 -#define CODE_SYM 318 -#define COLLATE_SYM 319 -#define COLLATION_SYM 320 -#define COLUMNS 321 -#define COLUMN_SYM 322 -#define COMMENT_SYM 323 -#define COMMITTED_SYM 324 -#define COMMIT_SYM 325 -#define COMPACT_SYM 326 -#define COMPRESSED_SYM 327 -#define CONCAT 328 -#define CONCAT_WS 329 -#define CONCURRENT 330 -#define CONDITION_SYM 331 -#define CONNECTION_SYM 332 -#define CONSISTENT_SYM 333 -#define CONSTRAINT 334 -#define CONTAINS_SYM 335 -#define CONTEXT_SYM 336 -#define CONTINUE_SYM 337 -#define CONVERT_SYM 338 -#define CONVERT_TZ_SYM 339 -#define COUNT_SYM 340 -#define CPU_SYM 341 -#define CREATE 342 -#define CROSS 343 -#define CUBE_SYM 344 -#define CURDATE 345 -#define CURRENT_USER 346 -#define CURSOR_SYM 347 -#define CURTIME 348 -#define DATABASE 349 -#define DATABASES 350 -#define DATA_SYM 351 -#define DATETIME 352 -#define DATE_ADD_INTERVAL 353 -#define DATE_SUB_INTERVAL 354 -#define DATE_SYM 355 -#define DAY_HOUR_SYM 356 -#define DAY_MICROSECOND_SYM 357 -#define DAY_MINUTE_SYM 358 -#define DAY_SECOND_SYM 359 -#define DAY_SYM 360 -#define DEALLOCATE_SYM 361 -#define DECIMAL_NUM 362 -#define DECIMAL_SYM 363 -#define DECLARE_SYM 364 -#define DECODE_SYM 365 -#define DEFAULT 366 -#define DEFINER_SYM 367 -#define DELAYED_SYM 368 -#define DELAY_KEY_WRITE_SYM 369 -#define DELETE_SYM 370 -#define DESC 371 -#define DESCRIBE 372 -#define DES_DECRYPT_SYM 373 -#define DES_ENCRYPT_SYM 374 -#define DES_KEY_FILE 375 -#define DETERMINISTIC_SYM 376 -#define DIRECTORY_SYM 377 -#define DISABLE_SYM 378 -#define DISCARD 379 -#define DISTINCT 380 -#define DIV_SYM 381 -#define DOUBLE_SYM 382 -#define DO_SYM 383 -#define DROP 384 -#define DUAL_SYM 385 -#define DUMPFILE 386 -#define DUPLICATE_SYM 387 -#define DYNAMIC_SYM 388 -#define EACH_SYM 389 -#define ELSEIF_SYM 390 -#define ELT_FUNC 391 -#define ENABLE_SYM 392 -#define ENCLOSED 393 -#define ENCODE_SYM 394 -#define ENCRYPT 395 -#define END 396 -#define ENGINES_SYM 397 -#define ENGINE_SYM 398 -#define ENUM 399 -#define EQ 400 -#define EQUAL_SYM 401 -#define ERRORS 402 -#define ESCAPED 403 -#define ESCAPE_SYM 404 -#define EVENTS_SYM 405 -#define EXECUTE_SYM 406 -#define EXISTS 407 -#define EXIT_SYM 408 -#define EXPANSION_SYM 409 -#define EXPORT_SET 410 -#define EXTENDED_SYM 411 -#define EXTRACT_SYM 412 -#define FALSE_SYM 413 -#define FAST_SYM 414 -#define FAULTS_SYM 415 -#define FETCH_SYM 416 -#define FIELD_FUNC 417 -#define FILE_SYM 418 -#define FIRST_SYM 419 -#define FIXED_SYM 420 -#define FLOAT_NUM 421 -#define FLOAT_SYM 422 -#define FLUSH_SYM 423 -#define FORCE_SYM 424 -#define FOREIGN 425 -#define FORMAT_SYM 426 -#define FOR_SYM 427 -#define FOUND_SYM 428 -#define FRAC_SECOND_SYM 429 -#define FROM 430 -#define FROM_UNIXTIME 431 -#define FULL 432 -#define FULLTEXT_SYM 433 -#define FUNCTION_SYM 434 -#define FUNC_ARG0 435 -#define FUNC_ARG1 436 -#define FUNC_ARG2 437 -#define FUNC_ARG3 438 -#define GE 439 -#define GEOMCOLLFROMTEXT 440 -#define GEOMETRYCOLLECTION 441 -#define GEOMETRY_SYM 442 -#define GEOMFROMTEXT 443 -#define GEOMFROMWKB 444 -#define GET_FORMAT 445 -#define GLOBAL_SYM 446 -#define GRANT 447 -#define GRANTS 448 -#define GREATEST_SYM 449 -#define GROUP 450 -#define GROUP_CONCAT_SYM 451 -#define GROUP_UNIQUE_USERS 452 -#define GT_SYM 453 -#define HANDLER_SYM 454 -#define HASH_SYM 455 -#define HAVING 456 -#define HELP_SYM 457 -#define HEX_NUM 458 -#define HIGH_PRIORITY 459 -#define HOSTS_SYM 460 -#define HOUR_MICROSECOND_SYM 461 -#define HOUR_MINUTE_SYM 462 -#define HOUR_SECOND_SYM 463 -#define HOUR_SYM 464 -#define IDENT 465 -#define IDENTIFIED_SYM 466 -#define IDENT_QUOTED 467 -#define IF 468 -#define IGNORE_SYM 469 -#define IMPORT 470 -#define INDEXES 471 -#define INDEX_SYM 472 -#define INFILE 473 -#define INNER_SYM 474 -#define INNOBASE_SYM 475 -#define INOUT_SYM 476 -#define INSENSITIVE_SYM 477 -#define INSERT 478 -#define INSERT_METHOD 479 -#define INTERVAL_SYM 480 -#define INTO 481 -#define INT_SYM 482 -#define INVOKER_SYM 483 -#define IN_SYM 484 -#define IO_SYM 485 -#define IPC_SYM 486 -#define IS 487 -#define ISOLATION 488 -#define ISSUER_SYM 489 -#define ITERATE_SYM 490 -#define JOIN_SYM 491 -#define KEYS 492 -#define KEY_SYM 493 -#define KILL_SYM 494 -#define LABEL_SYM 495 -#define LANGUAGE_SYM 496 -#define LAST_INSERT_ID 497 -#define LAST_SYM 498 -#define LE 499 -#define LEADING 500 -#define LEAST_SYM 501 -#define LEAVES 502 -#define LEAVE_SYM 503 -#define LEFT 504 -#define LEVEL_SYM 505 -#define LEX_HOSTNAME 506 -#define LIKE 507 -#define LIMIT 508 -#define LINEFROMTEXT 509 -#define LINES 510 -#define LINESTRING 511 -#define LOAD 512 -#define LOCAL_SYM 513 -#define LOCATE 514 -#define LOCATOR_SYM 515 -#define LOCKS_SYM 516 -#define LOCK_SYM 517 -#define LOGS_SYM 518 -#define LOG_SYM 519 -#define LONGBLOB 520 -#define LONGTEXT 521 -#define LONG_NUM 522 -#define LONG_SYM 523 -#define LOOP_SYM 524 -#define LOW_PRIORITY 525 -#define LT 526 -#define MAKE_SET_SYM 527 -#define MASTER_CONNECT_RETRY_SYM 528 -#define MASTER_HOST_SYM 529 -#define MASTER_LOG_FILE_SYM 530 -#define MASTER_LOG_POS_SYM 531 -#define MASTER_PASSWORD_SYM 532 -#define MASTER_PORT_SYM 533 -#define MASTER_POS_WAIT 534 -#define MASTER_SERVER_ID_SYM 535 -#define MASTER_SSL_CAPATH_SYM 536 -#define MASTER_SSL_CA_SYM 537 -#define MASTER_SSL_CERT_SYM 538 -#define MASTER_SSL_CIPHER_SYM 539 -#define MASTER_SSL_KEY_SYM 540 -#define MASTER_SSL_SYM 541 -#define MASTER_SYM 542 -#define MASTER_USER_SYM 543 -#define MATCH 544 -#define MAX_CONNECTIONS_PER_HOUR 545 -#define MAX_QUERIES_PER_HOUR 546 -#define MAX_ROWS 547 -#define MAX_SYM 548 -#define MAX_UPDATES_PER_HOUR 549 -#define MAX_USER_CONNECTIONS_SYM 550 -#define MEDIUMBLOB 551 -#define MEDIUMINT 552 -#define MEDIUMTEXT 553 -#define MEDIUM_SYM 554 -#define MEMORY_SYM 555 -#define MERGE_SYM 556 -#define MICROSECOND_SYM 557 -#define MIGRATE_SYM 558 -#define MINUTE_MICROSECOND_SYM 559 -#define MINUTE_SECOND_SYM 560 -#define MINUTE_SYM 561 -#define MIN_ROWS 562 -#define MIN_SYM 563 -#define MLINEFROMTEXT 564 -#define MODE_SYM 565 -#define MODIFIES_SYM 566 -#define MODIFY_SYM 567 -#define MOD_SYM 568 -#define MONTH_SYM 569 -#define MPOINTFROMTEXT 570 -#define MPOLYFROMTEXT 571 -#define MULTILINESTRING 572 -#define MULTIPOINT 573 -#define MULTIPOLYGON 574 -#define MUTEX_SYM 575 -#define NAMES_SYM 576 -#define NAME_SYM 577 -#define NATIONAL_SYM 578 -#define NATURAL 579 -#define NCHAR_STRING 580 -#define NCHAR_SYM 581 -#define NDBCLUSTER_SYM 582 -#define NE 583 -#define NEW_SYM 584 -#define NEXT_SYM 585 -#define NONE_SYM 586 -#define NOT2_SYM 587 -#define NOT_SYM 588 -#define NOW_SYM 589 -#define NO_SYM 590 -#define NO_WRITE_TO_BINLOG 591 -#define NULL_SYM 592 -#define NUM 593 -#define NUMERIC_SYM 594 -#define NVARCHAR_SYM 595 -#define OFFSET_SYM 596 -#define OJ_SYM 597 -#define OLD_PASSWORD 598 -#define ON 599 -#define ONE_SHOT_SYM 600 -#define ONE_SYM 601 -#define OPEN_SYM 602 -#define OPTIMIZE 603 -#define OPTION 604 -#define OPTIONALLY 605 -#define OR2_SYM 606 -#define ORDER_SYM 607 -#define OR_OR_SYM 608 -#define OR_SYM 609 -#define OUTER 610 -#define OUTFILE 611 -#define OUT_SYM 612 -#define PACK_KEYS_SYM 613 -#define PAGE_SYM 614 -#define PARTIAL 615 -#define PASSWORD 616 -#define PARAM_MARKER 617 -#define PHASE_SYM 618 -#define POINTFROMTEXT 619 -#define POINT_SYM 620 -#define POLYFROMTEXT 621 -#define POLYGON 622 -#define POSITION_SYM 623 -#define PRECISION 624 -#define PREPARE_SYM 625 -#define PREV_SYM 626 -#define PRIMARY_SYM 627 -#define PRIVILEGES 628 -#define PROCEDURE 629 -#define PROCESS 630 -#define PROCESSLIST_SYM 631 -#define PROFILE_SYM 632 -#define PROFILES_SYM 633 -#define PURGE 634 -#define QUARTER_SYM 635 -#define QUERY_SYM 636 -#define QUICK 637 -#define RAID_0_SYM 638 -#define RAID_CHUNKS 639 -#define RAID_CHUNKSIZE 640 -#define RAID_STRIPED_SYM 641 -#define RAID_TYPE 642 -#define RAND 643 -#define READS_SYM 644 -#define READ_SYM 645 -#define REAL 646 -#define RECOVER_SYM 647 -#define REDUNDANT_SYM 648 -#define REFERENCES 649 -#define REGEXP 650 -#define RELAY_LOG_FILE_SYM 651 -#define RELAY_LOG_POS_SYM 652 -#define RELAY_THREAD 653 -#define RELEASE_SYM 654 -#define RELOAD 655 -#define RENAME 656 -#define REPAIR 657 -#define REPEATABLE_SYM 658 -#define REPEAT_SYM 659 -#define REPLACE 660 -#define REPLICATION 661 -#define REQUIRE_SYM 662 -#define RESET_SYM 663 -#define RESOURCES 664 -#define RESTORE_SYM 665 -#define RESTRICT 666 -#define RESUME_SYM 667 -#define RETURNS_SYM 668 -#define RETURN_SYM 669 -#define REVOKE 670 -#define RIGHT 671 -#define ROLLBACK_SYM 672 -#define ROLLUP_SYM 673 -#define ROUND 674 -#define ROUTINE_SYM 675 -#define ROWS_SYM 676 -#define ROW_COUNT_SYM 677 -#define ROW_FORMAT_SYM 678 -#define ROW_SYM 679 -#define RTREE_SYM 680 -#define SAVEPOINT_SYM 681 -#define SECOND_MICROSECOND_SYM 682 -#define SECOND_SYM 683 -#define SECURITY_SYM 684 -#define SELECT_SYM 685 -#define SENSITIVE_SYM 686 -#define SEPARATOR_SYM 687 -#define SERIALIZABLE_SYM 688 -#define SERIAL_SYM 689 -#define SESSION_SYM 690 -#define SET 691 -#define SET_VAR 692 -#define SHARE_SYM 693 -#define SHIFT_LEFT 694 -#define SHIFT_RIGHT 695 -#define SHOW 696 -#define SHUTDOWN 697 -#define SIGNED_SYM 698 -#define SIMPLE_SYM 699 -#define SLAVE 700 -#define SMALLINT 701 -#define SNAPSHOT_SYM 702 -#define SOUNDS_SYM 703 -#define SOURCE_SYM 704 -#define SPATIAL_SYM 705 -#define SPECIFIC_SYM 706 -#define SQLEXCEPTION_SYM 707 -#define SQLSTATE_SYM 708 -#define SQLWARNING_SYM 709 -#define SQL_BIG_RESULT 710 -#define SQL_BUFFER_RESULT 711 -#define SQL_CACHE_SYM 712 -#define SQL_CALC_FOUND_ROWS 713 -#define SQL_NO_CACHE_SYM 714 -#define SQL_SMALL_RESULT 715 -#define SQL_SYM 716 -#define SQL_THREAD 717 -#define SSL_SYM 718 -#define STARTING 719 -#define START_SYM 720 -#define STATUS_SYM 721 -#define STD_SYM 722 -#define STDDEV_SAMP_SYM 723 -#define STOP_SYM 724 -#define STORAGE_SYM 725 -#define STRAIGHT_JOIN 726 -#define STRING_SYM 727 -#define SUBDATE_SYM 728 -#define SUBJECT_SYM 729 -#define SUBSTRING 730 -#define SUBSTRING_INDEX 731 -#define SUM_SYM 732 -#define SUPER_SYM 733 -#define SUSPEND_SYM 734 -#define SWAPS_SYM 735 -#define SWITCHES_SYM 736 -#define SYSDATE 737 -#define TABLES 738 -#define TABLESPACE 739 -#define TABLE_SYM 740 -#define TEMPORARY 741 -#define TEMPTABLE_SYM 742 -#define TERMINATED 743 -#define TEXT_STRING 744 -#define TEXT_SYM 745 -#define TIMESTAMP 746 -#define TIMESTAMP_ADD 747 -#define TIMESTAMP_DIFF 748 -#define TIME_SYM 749 -#define TINYBLOB 750 -#define TINYINT 751 -#define TINYTEXT 752 -#define TO_SYM 753 -#define TRAILING 754 -#define TRANSACTION_SYM 755 -#define TRIGGER_SYM 756 -#define TRIGGERS_SYM 757 -#define TRIM 758 -#define TRUE_SYM 759 -#define TRUNCATE_SYM 760 -#define TYPES_SYM 761 -#define TYPE_SYM 762 -#define UDF_RETURNS_SYM 763 -#define UDF_SONAME_SYM 764 -#define ULONGLONG_NUM 765 -#define UNCOMMITTED_SYM 766 -#define UNDEFINED_SYM 767 -#define UNDERSCORE_CHARSET 768 -#define UNDO_SYM 769 -#define UNICODE_SYM 770 -#define UNION_SYM 771 -#define UNIQUE_SYM 772 -#define UNIQUE_USERS 773 -#define UNIX_TIMESTAMP 774 -#define UNKNOWN_SYM 775 -#define UNLOCK_SYM 776 -#define UNSIGNED 777 -#define UNTIL_SYM 778 -#define UPDATE_SYM 779 -#define UPGRADE_SYM 780 -#define USAGE 781 -#define USER 782 -#define USE_FRM 783 -#define USE_SYM 784 -#define USING 785 -#define UTC_DATE_SYM 786 -#define UTC_TIMESTAMP_SYM 787 -#define UTC_TIME_SYM 788 -#define VAR_SAMP_SYM 789 -#define VALUES 790 -#define VALUE_SYM 791 -#define VARBINARY 792 -#define VARCHAR 793 -#define VARIABLES 794 -#define VARIANCE_SYM 795 -#define VARYING 796 -#define VIEW_SYM 797 -#define WARNINGS 798 -#define WEEK_SYM 799 -#define WHEN_SYM 800 -#define WHERE 801 -#define WHILE_SYM 802 -#define WITH 803 -#define WORK_SYM 804 -#define WRITE_SYM 805 -#define X509_SYM 806 -#define XA_SYM 807 -#define XOR 808 -#define YEARWEEK 809 -#define YEAR_MONTH_SYM 810 -#define YEAR_SYM 811 -#define ZEROFILL 812 -#define TABLE_REF_PRIORITY 813 -#define ELSE 814 -#define THEN_SYM 815 -#define CASE_SYM 816 -#define BETWEEN_SYM 817 -#define NEG 818 - - - - -/* Copy the first part of user declarations. */ -#line 18 "sql_yacc.yy" - -/* thd is passed as an arg to yyparse(), and subsequently to yylex(). -** The type will be void*, so it must be cast to (THD*) when used. -** Use the YYTHD macro for this. -*/ -#define YYPARSE_PARAM yythd -#define YYLEX_PARAM yythd -#define YYTHD ((THD *)yythd) - -#define MYSQL_YACC -#define YYINITDEPTH 100 -#define YYMAXDEPTH 3200 /* Because of 64K stack */ -#define Lex (YYTHD->lex) -#define Select Lex->current_select -#include "mysql_priv.h" -#include "slave.h" -#include "lex_symbol.h" -#include "item_create.h" -#include "sp_head.h" -#include "sp_pcontext.h" -#include "sp_rcontext.h" -#include "sp.h" -#include -#include - -int yylex(void *yylval, void *yythd); - -const LEX_STRING null_lex_str={0,0}; - -#define yyoverflow(A,B,C,D,E,F) {ulong val= *(F); if (my_yyoverflow((B), (D), &val)) { yyerror((char*) (A)); return 2; } else { *(F)= (YYSIZE_T)val; }} - -#undef WARN_DEPRECATED /* this macro is also defined in mysql_priv.h */ -#define WARN_DEPRECATED(A,B) \ - push_warning_printf(((THD *)yythd), MYSQL_ERROR::WARN_LEVEL_WARN, \ - ER_WARN_DEPRECATED_SYNTAX, \ - ER(ER_WARN_DEPRECATED_SYNTAX), (A), (B)); - -#define MYSQL_YYABORT \ - do \ - { \ - LEX::cleanup_lex_after_parse_error(YYTHD);\ - YYABORT; \ - } while (0) - -#define MYSQL_YYABORT_UNLESS(A) \ - if (!(A)) \ - { \ - my_parse_error(ER(ER_SYNTAX_ERROR));\ - MYSQL_YYABORT; \ - } - -#ifndef DBUG_OFF -#define YYDEBUG 1 -#else -#define YYDEBUG 0 -#endif - -/** - @brief Push an error message into MySQL error stack with line - and position information. - - This function provides semantic action implementers with a way - to push the famous "You have a syntax error near..." error - message into the error stack, which is normally produced only if - a parse error is discovered internally by the Bison generated - parser. -*/ - -void my_parse_error(const char *s) -{ - THD *thd= current_thd; - Lex_input_stream *lip= thd->m_lip; - - const char *yytext= lip->tok_start; - /* Push an error into the error stack */ - my_printf_error(ER_PARSE_ERROR, ER(ER_PARSE_ERROR), MYF(0), s, - (yytext ? yytext : ""), - lip->yylineno); -} - -/** - @brief Bison callback to report a syntax/OOM error - - This function is invoked by the bison-generated parser - when a syntax error, a parse error or an out-of-memory - condition occurs. This function is not invoked when the - parser is requested to abort by semantic action code - by means of YYABORT or YYACCEPT macros. This is why these - macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT - instead). - - The parser will abort immediately after invoking this callback. - - This function is not for use in semantic actions and is internal to - the parser, as it performs some pre-return cleanup. - In semantic actions, please use my_parse_error or my_error to - push an error into the error stack and MYSQL_YYABORT - to abort from the parser. -*/ - -void MYSQLerror(const char *s) -{ - THD *thd= current_thd; - - /* - Restore the original LEX if it was replaced when parsing - a stored procedure. We must ensure that a parsing error - does not leave any side effects in the THD. - */ - LEX::cleanup_lex_after_parse_error(thd); - - /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */ - if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0) - s= ER(ER_SYNTAX_ERROR); - my_parse_error(s); -} - - -#ifndef DBUG_OFF -void turn_parser_debug_on() -{ - /* - MYSQLdebug is in sql/sql_yacc.cc, in bison generated code. - Turning this option on is **VERY** verbose, and should be - used when investigating a syntax error problem only. - - The syntax to run with bison traces is as follows : - - Starting a server manually : - mysqld --debug="d,parser_debug" ... - - Running a test : - mysql-test-run.pl --mysqld="--debug=d,parser_debug" ... - - The result will be in the process stderr (var/log/master.err) - */ - - extern int yydebug; - yydebug= 1; -} -#endif - - -/** - Helper action for a case statement (entering the CASE). - This helper is used for both 'simple' and 'searched' cases. - This helper, with the other case_stmt_action_..., is executed when - the following SQL code is parsed: -
-CREATE PROCEDURE proc_19194_simple(i int)
-BEGIN
-  DECLARE str CHAR(10);
-
-  CASE i
-    WHEN 1 THEN SET str="1";
-    WHEN 2 THEN SET str="2";
-    WHEN 3 THEN SET str="3";
-    ELSE SET str="unknown";
-  END CASE;
-
-  SELECT str;
-END
-
- The actions are used to generate the following code: -
-SHOW PROCEDURE CODE proc_19194_simple;
-Pos     Instruction
-0       set str@1 NULL
-1       set_case_expr (12) 0 i@0
-2       jump_if_not 5(12) (case_expr@0 = 1)
-3       set str@1 _latin1'1'
-4       jump 12
-5       jump_if_not 8(12) (case_expr@0 = 2)
-6       set str@1 _latin1'2'
-7       jump 12
-8       jump_if_not 11(12) (case_expr@0 = 3)
-9       set str@1 _latin1'3'
-10      jump 12
-11      set str@1 _latin1'unknown'
-12      stmt 0 "SELECT str"
-
- - @param lex the parser lex context -*/ - -void case_stmt_action_case(LEX *lex) -{ - lex->sphead->new_cont_backpatch(NULL); - - /* - BACKPATCH: Creating target label for the jump to - "case_stmt_action_end_case" - (Instruction 12 in the example) - */ - - lex->spcont->push_label((char *)"", lex->sphead->instructions()); -} - -/** - Helper action for a case expression statement (the expr in 'CASE expr'). - This helper is used for 'searched' cases only. - @param lex the parser lex context - @param expr the parsed expression - @return 0 on success -*/ - -int case_stmt_action_expr(LEX *lex, Item* expr) -{ - sp_head *sp= lex->sphead; - sp_pcontext *parsing_ctx= lex->spcont; - int case_expr_id= parsing_ctx->register_case_expr(); - sp_instr_set_case_expr *i; - - if (parsing_ctx->push_case_expr_id(case_expr_id)) - return 1; - - i= new sp_instr_set_case_expr(sp->instructions(), - parsing_ctx, case_expr_id, expr, lex); - - sp->add_cont_backpatch(i); - sp->add_instr(i); - - return 0; -} - -/** - Helper action for a case when condition. - This helper is used for both 'simple' and 'searched' cases. - @param lex the parser lex context - @param when the parsed expression for the WHEN clause - @param simple true for simple cases, false for searched cases -*/ - -void case_stmt_action_when(LEX *lex, Item *when, bool simple) -{ - sp_head *sp= lex->sphead; - sp_pcontext *ctx= lex->spcont; - uint ip= sp->instructions(); - sp_instr_jump_if_not *i; - Item_case_expr *var; - Item *expr; - - if (simple) - { - var= new Item_case_expr(ctx->get_current_case_expr_id()); - -#ifndef DBUG_OFF - if (var) - { - var->m_sp= sp; - } -#endif - - expr= new Item_func_eq(var, when); - i= new sp_instr_jump_if_not(ip, ctx, expr, lex); - } - else - i= new sp_instr_jump_if_not(ip, ctx, when, lex); - - /* - BACKPATCH: Registering forward jump from - "case_stmt_action_when" to "case_stmt_action_then" - (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example) - */ - - sp->push_backpatch(i, ctx->push_label((char *)"", 0)); - sp->add_cont_backpatch(i); - sp->add_instr(i); -} - -/** - Helper action for a case then statements. - This helper is used for both 'simple' and 'searched' cases. - @param lex the parser lex context -*/ - -void case_stmt_action_then(LEX *lex) -{ - sp_head *sp= lex->sphead; - sp_pcontext *ctx= lex->spcont; - uint ip= sp->instructions(); - sp_instr_jump *i = new sp_instr_jump(ip, ctx); - sp->add_instr(i); - - /* - BACKPATCH: Resolving forward jump from - "case_stmt_action_when" to "case_stmt_action_then" - (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example) - */ - - sp->backpatch(ctx->pop_label()); - - /* - BACKPATCH: Registering forward jump from - "case_stmt_action_then" to "case_stmt_action_end_case" - (jump from instruction 4 to 12, 7 to 12 ... in the example) - */ - - sp->push_backpatch(i, ctx->last_label()); -} - -/** - Helper action for an end case. - This helper is used for both 'simple' and 'searched' cases. - @param lex the parser lex context - @param simple true for simple cases, false for searched cases -*/ - -void case_stmt_action_end_case(LEX *lex, bool simple) -{ - /* - BACKPATCH: Resolving forward jump from - "case_stmt_action_then" to "case_stmt_action_end_case" - (jump from instruction 4 to 12, 7 to 12 ... in the example) - */ - lex->sphead->backpatch(lex->spcont->pop_label()); - - if (simple) - lex->spcont->pop_case_expr_id(); - - lex->sphead->do_cont_backpatch(); -} - -/** - Helper to resolve the SQL:2003 Syntax exception 1) in . - See SQL:2003, Part 2, section 8.4 , Note 184, page 383. - This function returns the proper item for the SQL expression - left [NOT] IN ( expr ) - @param thd the current thread - @param left the in predicand - @param equal true for IN predicates, false for NOT IN predicates - @param expr first and only expression of the in value list - @return an expression representing the IN predicate. -*/ -Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal, - Item *expr) -{ - /* - Relevant references for this issue: - - SQL:2003, Part 2, section 8.4 , page 383, - - SQL:2003, Part 2, section 7.2 , page 296, - - SQL:2003, Part 2, section 6.3 , page 174, - - SQL:2003, Part 2, section 7.15 , page 370, - - SQL:2003 Feature F561, "Full value expressions". - - The exception in SQL:2003 Note 184 means: - Item_singlerow_subselect, which corresponds to a , - should be re-interpreted as an Item_in_subselect, which corresponds - to a when used inside an . - - Our reading of Note 184 is reccursive, so that all: - - IN (( )) - - IN ((( ))) - - IN '('^N ')'^N - - etc - should be interpreted as a
, no matter how deep in the - expression the is. - */ - - Item *result; - - DBUG_ENTER("handle_sql2003_note184_exception"); - - if (expr->type() == Item::SUBSELECT_ITEM) - { - Item_subselect *expr2 = (Item_subselect*) expr; - - if (expr2->substype() == Item_subselect::SINGLEROW_SUBS) - { - Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2; - st_select_lex *subselect; - - /* - Implement the mandated change, by altering the semantic tree: - left IN Item_singlerow_subselect(subselect) - is modified to - left IN (subselect) - which is represented as - Item_in_subselect(left, subselect) - */ - subselect= expr3->invalidate_and_restore_select_lex(); - result= new (thd->mem_root) Item_in_subselect(left, subselect); - - if (! equal) - result = negate_expression(thd, result); - - DBUG_RETURN(result); - } - } - - if (equal) - result= new (thd->mem_root) Item_func_eq(left, expr); - else - result= new (thd->mem_root) Item_func_ne(left, expr); - - DBUG_RETURN(result); -} - - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 1 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 415 "sql_yacc.yy" -typedef union YYSTYPE { - int num; - ulong ulong_num; - ulonglong ulonglong_number; - LEX_STRING lex_str; - LEX_STRING *lex_str_ptr; - LEX_SYMBOL symbol; - Table_ident *table; - char *simple_string; - Item *item; - Item_num *item_num; - List *item_list; - List *string_list; - String *string; - key_part_spec *key_part; - TABLE_LIST *table_list; - udf_func *udf; - LEX_USER *lex_user; - struct sys_var_with_base variable; - enum enum_var_type var_type; - Key::Keytype key_type; - enum ha_key_alg key_alg; - enum db_type db_type; - enum row_type row_type; - enum ha_rkey_function ha_rkey_mode; - enum enum_tx_isolation tx_isolation; - enum Cast_target cast_type; - enum Item_udftype udf_type; - CHARSET_INFO *charset; - thr_lock_type lock_type; - interval_type interval, interval_time_st; - timestamp_type date_time_type; - st_select_lex *select_lex; - chooser_compare_func_creator boolfunc2creator; - struct sp_cond_type *spcondtype; - struct { int vars, conds, hndlrs, curs; } spblock; - sp_name *spname; - struct st_lex *lex; -} YYSTYPE; -/* Line 190 of yacc.c. */ -#line 1648 "sql_yacc.cc" -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif - - - -/* Copy the second part of user declarations. */ -#line 455 "sql_yacc.yy" - -bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); - - -/* Line 213 of yacc.c. */ -#line 1663 "sql_yacc.cc" - -#if ! defined (yyoverflow) || YYERROR_VERBOSE - -# ifndef YYFREE -# define YYFREE free -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# endif - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# else -# define YYSTACK_ALLOC alloca -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) -# else -# if defined (__STDC__) || defined (__cplusplus) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# endif -#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ - - -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - short int yyss; - YYSTYPE yyvs; - }; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined (__GNUC__) && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - register YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (0) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) - -#endif - -#if defined (__STDC__) || defined (__cplusplus) - typedef signed char yysigned_char; -#else - typedef short int yysigned_char; -#endif - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 472 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 45186 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 583 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 678 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 2056 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 3709 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 818 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const unsigned short int yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 576, 2, 2, 2, 569, 564, 2, - 573, 574, 567, 566, 575, 565, 580, 568, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 582, 581, - 2, 2, 2, 2, 579, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 570, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 577, 563, 578, 571, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 572 -}; - -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const unsigned short int yyprhs[] = -{ - 0, 0, 3, 5, 8, 10, 12, 14, 16, 18, - 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, - 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, - 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, - 100, 102, 104, 106, 110, 112, 114, 119, 121, 124, - 125, 130, 131, 134, 138, 140, 143, 144, 148, 149, - 155, 157, 161, 165, 169, 173, 177, 181, 185, 189, - 193, 197, 201, 205, 207, 211, 215, 219, 223, 224, - 232, 233, 245, 246, 253, 254, 258, 263, 264, 268, - 270, 275, 276, 277, 278, 279, 280, 293, 294, 297, - 298, 301, 304, 307, 310, 313, 317, 321, 323, 325, - 327, 330, 334, 338, 339, 344, 345, 349, 350, 352, - 356, 358, 359, 361, 365, 367, 368, 372, 373, 375, - 379, 381, 386, 387, 389, 391, 393, 394, 398, 401, - 405, 406, 410, 411, 417, 423, 424, 432, 438, 439, - 442, 444, 446, 448, 452, 454, 456, 460, 461, 463, - 465, 467, 469, 472, 474, 476, 480, 481, 484, 485, - 488, 489, 493, 494, 500, 502, 504, 505, 508, 511, - 514, 517, 518, 525, 528, 529, 532, 534, 536, 540, - 541, 542, 543, 551, 552, 555, 558, 560, 562, 563, - 564, 573, 574, 581, 583, 586, 588, 591, 592, 593, - 600, 601, 602, 609, 610, 613, 614, 620, 621, 623, - 624, 630, 635, 636, 637, 646, 647, 655, 657, 659, - 661, 663, 665, 668, 671, 674, 679, 684, 685, 690, - 691, 692, 698, 699, 707, 708, 709, 716, 717, 719, - 720, 722, 724, 727, 729, 731, 732, 734, 736, 739, - 741, 742, 746, 747, 749, 751, 754, 756, 759, 763, - 767, 771, 775, 779, 783, 787, 791, 795, 799, 803, - 807, 811, 815, 819, 823, 827, 833, 835, 837, 841, - 846, 851, 855, 860, 865, 867, 869, 871, 873, 875, - 877, 879, 881, 883, 885, 887, 889, 891, 893, 896, - 897, 899, 901, 903, 905, 907, 909, 913, 915, 917, - 920, 923, 930, 938, 947, 950, 953, 954, 956, 959, - 960, 962, 965, 966, 971, 975, 979, 983, 985, 990, - 992, 994, 1000, 1003, 1009, 1012, 1017, 1019, 1025, 1031, - 1036, 1040, 1042, 1044, 1047, 1049, 1051, 1054, 1056, 1058, - 1060, 1063, 1067, 1070, 1074, 1077, 1080, 1084, 1088, 1092, - 1093, 1100, 1101, 1108, 1111, 1113, 1115, 1117, 1119, 1121, - 1123, 1125, 1127, 1129, 1131, 1133, 1136, 1139, 1141, 1144, - 1146, 1149, 1153, 1156, 1158, 1160, 1162, 1164, 1166, 1168, - 1170, 1173, 1174, 1178, 1180, 1186, 1187, 1189, 1192, 1194, - 1196, 1198, 1200, 1201, 1205, 1206, 1208, 1209, 1211, 1214, - 1216, 1218, 1221, 1224, 1229, 1231, 1235, 1238, 1240, 1243, - 1246, 1249, 1252, 1254, 1257, 1259, 1261, 1263, 1265, 1267, - 1268, 1271, 1273, 1275, 1277, 1279, 1281, 1282, 1285, 1287, - 1289, 1290, 1292, 1293, 1296, 1298, 1301, 1305, 1308, 1309, - 1311, 1312, 1314, 1316, 1319, 1320, 1322, 1323, 1328, 1330, - 1335, 1339, 1341, 1342, 1344, 1347, 1349, 1353, 1357, 1360, - 1363, 1366, 1368, 1370, 1373, 1376, 1379, 1381, 1384, 1387, - 1390, 1393, 1395, 1397, 1398, 1400, 1402, 1404, 1406, 1407, - 1409, 1411, 1413, 1414, 1417, 1420, 1422, 1424, 1426, 1431, - 1434, 1436, 1441, 1442, 1444, 1445, 1448, 1450, 1454, 1455, - 1462, 1463, 1469, 1470, 1476, 1477, 1483, 1484, 1496, 1497, - 1499, 1500, 1503, 1506, 1508, 1512, 1515, 1519, 1522, 1527, - 1528, 1535, 1536, 1537, 1546, 1551, 1556, 1560, 1564, 1567, - 1570, 1577, 1583, 1587, 1593, 1595, 1597, 1599, 1600, 1602, - 1603, 1605, 1606, 1608, 1610, 1611, 1614, 1616, 1617, 1619, - 1621, 1623, 1624, 1630, 1634, 1635, 1641, 1645, 1649, 1650, - 1654, 1655, 1658, 1660, 1664, 1665, 1667, 1669, 1670, 1673, - 1675, 1679, 1680, 1687, 1688, 1695, 1696, 1702, 1703, 1705, - 1707, 1708, 1715, 1716, 1718, 1720, 1723, 1725, 1727, 1729, - 1730, 1737, 1738, 1744, 1745, 1747, 1749, 1752, 1754, 1756, - 1758, 1760, 1762, 1765, 1766, 1773, 1774, 1776, 1778, 1779, - 1784, 1789, 1793, 1799, 1801, 1805, 1809, 1815, 1817, 1821, - 1824, 1826, 1828, 1829, 1836, 1838, 1842, 1846, 1847, 1850, - 1851, 1856, 1857, 1860, 1862, 1865, 1870, 1873, 1877, 1878, - 1882, 1883, 1884, 1891, 1894, 1896, 1898, 1901, 1904, 1913, - 1918, 1919, 1921, 1924, 1926, 1928, 1930, 1932, 1934, 1936, - 1938, 1940, 1942, 1944, 1946, 1947, 1950, 1955, 1959, 1961, - 1963, 1968, 1969, 1970, 1972, 1974, 1975, 1978, 1981, 1983, - 1985, 1986, 1989, 1990, 1994, 1995, 1999, 2003, 2004, 2008, - 2009, 2013, 2016, 2018, 2022, 2027, 2031, 2036, 2040, 2045, - 2047, 2051, 2056, 2060, 2064, 2071, 2073, 2079, 2086, 2092, - 2100, 2107, 2116, 2122, 2129, 2134, 2139, 2145, 2149, 2154, - 2156, 2160, 2162, 2166, 2168, 2172, 2176, 2178, 2182, 2186, - 2191, 2196, 2198, 2202, 2206, 2210, 2214, 2218, 2220, 2224, - 2226, 2228, 2230, 2232, 2234, 2236, 2238, 2240, 2242, 2244, - 2246, 2248, 2250, 2252, 2254, 2256, 2258, 2261, 2263, 2267, - 2269, 2271, 2273, 2275, 2279, 2282, 2285, 2288, 2291, 2295, - 2299, 2305, 2312, 2317, 2322, 2330, 2335, 2338, 2345, 2351, - 2358, 2365, 2370, 2375, 2379, 2384, 2391, 2400, 2407, 2416, - 2423, 2428, 2435, 2440, 2447, 2452, 2457, 2462, 2467, 2474, - 2483, 2486, 2489, 2494, 2497, 2505, 2513, 2517, 2522, 2527, - 2534, 2541, 2546, 2553, 2560, 2567, 2572, 2579, 2584, 2591, - 2600, 2611, 2624, 2631, 2636, 2643, 2650, 2652, 2659, 2664, - 2673, 2684, 2689, 2691, 2695, 2700, 2707, 2714, 2723, 2730, - 2737, 2742, 2749, 2756, 2765, 2770, 2775, 2782, 2787, 2790, - 2795, 2800, 2805, 2812, 2817, 2822, 2826, 2835, 2842, 2847, - 2854, 2858, 2865, 2874, 2879, 2888, 2895, 2904, 2911, 2920, - 2923, 2928, 2933, 2938, 2945, 2954, 2963, 2968, 2976, 2984, - 2992, 2999, 3006, 3013, 3020, 3027, 3034, 3035, 3041, 3052, - 3056, 3061, 3065, 3068, 3071, 3074, 3079, 3086, 3091, 3096, - 3103, 3110, 3117, 3124, 3129, 3136, 3141, 3148, 3153, 3158, - 3163, 3168, 3175, 3180, 3187, 3192, 3199, 3204, 3209, 3216, - 3221, 3228, 3233, 3240, 3245, 3250, 3257, 3262, 3269, 3270, - 3274, 3278, 3279, 3281, 3282, 3285, 3287, 3291, 3296, 3301, - 3307, 3312, 3317, 3322, 3328, 3333, 3334, 3335, 3343, 3354, - 3359, 3365, 3370, 3376, 3381, 3386, 3391, 3396, 3401, 3407, - 3408, 3417, 3418, 3422, 3426, 3428, 3433, 3434, 3436, 3437, - 3440, 3441, 3443, 3444, 3448, 3451, 3455, 3458, 3460, 3463, - 3465, 3468, 3470, 3472, 3474, 3477, 3478, 3480, 3481, 3484, - 3486, 3490, 3492, 3496, 3497, 3500, 3502, 3506, 3507, 3509, - 3510, 3513, 3518, 3524, 3526, 3528, 3530, 3532, 3536, 3540, - 3544, 3545, 3552, 3553, 3560, 3561, 3570, 3575, 3576, 3585, - 3586, 3597, 3604, 3605, 3614, 3615, 3626, 3633, 3635, 3638, - 3641, 3642, 3647, 3648, 3660, 3664, 3671, 3672, 3676, 3677, - 3678, 3684, 3685, 3687, 3688, 3690, 3691, 3694, 3695, 3698, - 3701, 3704, 3705, 3712, 3713, 3715, 3719, 3721, 3723, 3725, - 3729, 3731, 3733, 3735, 3737, 3739, 3741, 3743, 3745, 3747, - 3749, 3751, 3753, 3755, 3757, 3759, 3761, 3763, 3765, 3767, - 3769, 3771, 3773, 3775, 3777, 3779, 3781, 3782, 3784, 3786, - 3787, 3790, 3791, 3793, 3794, 3795, 3799, 3800, 3801, 3805, - 3808, 3809, 3810, 3815, 3820, 3823, 3824, 3827, 3830, 3834, - 3838, 3840, 3843, 3844, 3846, 3847, 3852, 3857, 3860, 3861, - 3863, 3865, 3866, 3868, 3869, 3871, 3874, 3876, 3880, 3884, - 3886, 3888, 3890, 3892, 3893, 3896, 3898, 3900, 3902, 3904, - 3906, 3908, 3910, 3912, 3914, 3916, 3918, 3919, 3920, 3927, - 3928, 3930, 3934, 3936, 3939, 3940, 3943, 3947, 3949, 3952, - 3954, 3955, 3959, 3960, 3966, 3969, 3971, 3972, 3976, 3983, - 3984, 3991, 3996, 4001, 4006, 4011, 4017, 4022, 4024, 4028, - 4030, 4031, 4034, 4035, 4037, 4038, 4039, 4048, 4049, 4050, - 4057, 4058, 4060, 4062, 4064, 4066, 4068, 4071, 4073, 4075, - 4077, 4081, 4086, 4087, 4091, 4095, 4097, 4100, 4103, 4104, - 4108, 4109, 4115, 4119, 4121, 4125, 4127, 4131, 4133, 4135, - 4136, 4138, 4139, 4144, 4145, 4147, 4151, 4153, 4155, 4157, - 4158, 4159, 4166, 4167, 4168, 4180, 4184, 4186, 4190, 4194, - 4196, 4200, 4201, 4203, 4204, 4209, 4210, 4217, 4218, 4224, - 4225, 4232, 4234, 4238, 4242, 4248, 4249, 4252, 4253, 4256, - 4258, 4260, 4262, 4266, 4267, 4269, 4270, 4272, 4274, 4278, - 4280, 4282, 4285, 4288, 4291, 4293, 4295, 4297, 4299, 4300, - 4304, 4305, 4309, 4312, 4317, 4322, 4327, 4332, 4333, 4338, - 4345, 4362, 4365, 4368, 4369, 4376, 4382, 4385, 4388, 4391, - 4393, 4399, 4405, 4408, 4411, 4413, 4418, 4422, 4425, 4428, - 4431, 4435, 4438, 4441, 4444, 4446, 4448, 4452, 4457, 4461, - 4465, 4468, 4471, 4475, 4479, 4483, 4487, 4491, 4495, 4497, - 4499, 4501, 4503, 4504, 4506, 4507, 4510, 4511, 4513, 4515, - 4517, 4518, 4521, 4522, 4525, 4526, 4529, 4532, 4533, 4538, - 4539, 4544, 4546, 4548, 4549, 4551, 4552, 4554, 4556, 4557, - 4562, 4566, 4568, 4569, 4573, 4578, 4581, 4583, 4585, 4587, - 4589, 4591, 4593, 4595, 4597, 4598, 4600, 4601, 4605, 4609, - 4611, 4613, 4615, 4618, 4619, 4623, 4627, 4630, 4633, 4634, - 4639, 4640, 4642, 4644, 4647, 4648, 4653, 4659, 4660, 4661, - 4662, 4663, 4682, 4685, 4686, 4688, 4689, 4691, 4693, 4694, - 4696, 4698, 4699, 4702, 4705, 4707, 4711, 4716, 4720, 4724, - 4725, 4728, 4731, 4733, 4737, 4741, 4742, 4746, 4747, 4751, - 4754, 4758, 4760, 4762, 4765, 4766, 4769, 4771, 4773, 4776, - 4779, 4781, 4783, 4785, 4787, 4789, 4792, 4795, 4797, 4799, - 4801, 4803, 4805, 4807, 4809, 4812, 4815, 4818, 4821, 4824, - 4826, 4828, 4830, 4832, 4834, 4836, 4838, 4842, 4848, 4850, - 4852, 4854, 4856, 4858, 4862, 4867, 4873, 4875, 4881, 4885, - 4888, 4890, 4894, 4897, 4899, 4901, 4903, 4905, 4907, 4909, - 4911, 4913, 4915, 4917, 4919, 4921, 4923, 4925, 4929, 4932, - 4934, 4936, 4938, 4940, 4942, 4944, 4946, 4948, 4950, 4952, - 4954, 4956, 4958, 4960, 4962, 4964, 4966, 4968, 4970, 4972, - 4974, 4976, 4978, 4980, 4982, 4984, 4986, 4988, 4990, 4992, - 4994, 4996, 4998, 5000, 5002, 5004, 5006, 5008, 5010, 5012, - 5014, 5016, 5018, 5020, 5022, 5024, 5026, 5028, 5030, 5032, - 5034, 5036, 5038, 5040, 5042, 5044, 5046, 5048, 5050, 5052, - 5054, 5056, 5058, 5060, 5062, 5064, 5066, 5068, 5070, 5072, - 5074, 5076, 5078, 5080, 5082, 5084, 5086, 5088, 5090, 5092, - 5094, 5096, 5098, 5100, 5102, 5104, 5106, 5108, 5110, 5112, - 5114, 5116, 5118, 5120, 5122, 5124, 5126, 5128, 5130, 5132, - 5134, 5136, 5138, 5140, 5142, 5144, 5146, 5148, 5150, 5152, - 5154, 5156, 5158, 5160, 5162, 5164, 5166, 5168, 5170, 5172, - 5174, 5176, 5178, 5180, 5182, 5184, 5186, 5188, 5190, 5192, - 5194, 5196, 5198, 5200, 5202, 5204, 5206, 5208, 5210, 5212, - 5214, 5216, 5218, 5220, 5222, 5224, 5226, 5228, 5230, 5232, - 5234, 5236, 5238, 5240, 5242, 5244, 5246, 5248, 5250, 5252, - 5254, 5256, 5258, 5260, 5262, 5264, 5266, 5268, 5270, 5272, - 5274, 5276, 5278, 5280, 5282, 5284, 5286, 5288, 5290, 5292, - 5294, 5296, 5298, 5300, 5302, 5304, 5306, 5308, 5310, 5312, - 5314, 5316, 5318, 5320, 5322, 5324, 5326, 5328, 5330, 5332, - 5334, 5336, 5338, 5340, 5342, 5344, 5346, 5348, 5350, 5352, - 5354, 5356, 5358, 5360, 5362, 5364, 5366, 5368, 5370, 5372, - 5374, 5376, 5378, 5380, 5382, 5384, 5386, 5388, 5390, 5392, - 5394, 5396, 5398, 5400, 5402, 5404, 5406, 5408, 5410, 5412, - 5414, 5416, 5418, 5420, 5422, 5424, 5426, 5428, 5430, 5432, - 5434, 5436, 5438, 5440, 5442, 5444, 5446, 5448, 5450, 5452, - 5454, 5456, 5458, 5459, 5464, 5465, 5467, 5469, 5473, 5474, - 5477, 5479, 5481, 5483, 5485, 5486, 5488, 5489, 5491, 5493, - 5495, 5496, 5499, 5502, 5505, 5507, 5510, 5515, 5521, 5526, - 5533, 5536, 5540, 5544, 5548, 5554, 5556, 5560, 5564, 5567, - 5570, 5573, 5575, 5577, 5582, 5587, 5589, 5591, 5593, 5595, - 5597, 5598, 5603, 5605, 5607, 5609, 5613, 5617, 5619, 5621, - 5624, 5627, 5628, 5632, 5637, 5641, 5642, 5650, 5652, 5655, - 5657, 5659, 5661, 5663, 5665, 5667, 5668, 5674, 5676, 5678, - 5680, 5682, 5684, 5688, 5695, 5702, 5709, 5717, 5721, 5730, - 5739, 5748, 5749, 5751, 5753, 5756, 5757, 5759, 5761, 5765, - 5766, 5770, 5771, 5775, 5776, 5780, 5781, 5785, 5787, 5789, - 5791, 5793, 5795, 5797, 5799, 5801, 5803, 5805, 5807, 5810, - 5813, 5815, 5819, 5822, 5825, 5828, 5831, 5834, 5837, 5840, - 5843, 5844, 5846, 5850, 5852, 5855, 5858, 5861, 5863, 5867, - 5871, 5873, 5875, 5879, 5881, 5885, 5890, 5896, 5898, 5899, - 5903, 5907, 5909, 5911, 5912, 5915, 5918, 5921, 5924, 5925, - 5928, 5931, 5933, 5936, 5939, 5942, 5945, 5948, 5949, 5953, - 5954, 5956, 5957, 5961, 5964, 5965, 5967, 5970, 5971, 5973, - 5978, 5983, 5989, 5992, 5996, 5997, 5999, 6000, 6005, 6006, - 6008, 6010, 6011, 6014, 6017, 6019, 6020, 6022, 6024, 6029, - 6030, 6038, 6040, 6041, 6042, 6045, 6049, 6051, 6053, 6055, - 6056, 6060, 6062, 6065, 6067, 6070, 6074, 6078, 6082, 6083, - 6085, 6086, 6090, 6094, 6095, 6104, 6105, 6109, 6111, 6115, - 6116, 6119, 6123, 6129, 6130, 6134, 6139, 6144, 6145, 6160, - 6161, 6168, 6169, 6170, 6171, 6172, 6185, 6190, 6195, 6199, - 6204, 6208, 6211, 6213, 6217, 6223, 6225, 6227, 6228, 6230, - 6232, 6233, 6236, 6237, 6238, 6242, 6243 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const short int yyrhs[] = -{ - 584, 0, -1, 3, -1, 585, 3, -1, 586, -1, - 1206, -1, 784, -1, 825, -1, 815, -1, 621, -1, - 598, -1, 827, -1, 817, -1, 1212, -1, 603, -1, - 587, -1, 1046, -1, 1077, -1, 1002, -1, 1004, -1, - 591, -1, 1083, -1, 1181, -1, 1172, -1, 596, -1, - 1010, -1, 1097, -1, 1101, -1, 1164, -1, 832, -1, - 840, -1, 844, -1, 589, -1, 1093, -1, 1215, -1, - 835, -1, 820, -1, 1013, -1, 1089, -1, 813, -1, - 1179, -1, 1213, -1, 1214, -1, 852, -1, 1147, -1, - 1063, -1, 802, -1, 805, -1, 1057, -1, 1170, -1, - 1038, -1, 1100, -1, 1253, -1, 588, 370, 1141, -1, - 106, -1, 129, -1, 370, 1141, 175, 590, -1, 1138, - -1, 579, 1143, -1, -1, 151, 1141, 592, 593, -1, - -1, 530, 594, -1, 594, 575, 595, -1, 595, -1, - 579, 1143, -1, -1, 202, 597, 1143, -1, -1, 53, - 287, 498, 599, 600, -1, 601, -1, 600, 575, 601, - -1, 274, 145, 1138, -1, 288, 145, 1138, -1, 277, - 145, 1138, -1, 278, 145, 987, -1, 273, 145, 987, - -1, 286, 145, 987, -1, 282, 145, 1138, -1, 281, - 145, 1138, -1, 283, 145, 1138, -1, 284, 145, 1138, - -1, 285, 145, 1138, -1, 602, -1, 275, 145, 1138, - -1, 276, 145, 988, -1, 396, 145, 1138, -1, 397, - 145, 987, -1, -1, 87, 701, 485, 704, 1135, 604, - 688, -1, -1, 87, 776, 217, 1141, 777, 344, 1135, - 605, 573, 779, 574, -1, -1, 87, 94, 704, 1141, - 606, 698, -1, -1, 87, 607, 1229, -1, 87, 527, - 608, 1197, -1, -1, 1141, 580, 1141, -1, 1141, -1, - 413, 717, 509, 1138, -1, -1, -1, -1, -1, -1, - 573, 611, 626, 574, 612, 413, 613, 728, 614, 617, - 615, 650, -1, -1, 616, 618, -1, -1, 617, 619, - -1, 68, 1138, -1, 241, 461, -1, 335, 461, -1, - 80, 461, -1, 389, 461, 96, -1, 311, 461, 96, - -1, 620, -1, 618, -1, 121, -1, 891, 121, -1, - 461, 429, 112, -1, 461, 429, 228, -1, -1, 48, - 609, 622, 623, -1, -1, 573, 624, 574, -1, -1, - 625, -1, 625, 575, 873, -1, 873, -1, -1, 627, - -1, 627, 575, 629, -1, 629, -1, -1, 1141, 628, - 728, -1, -1, 631, -1, 631, 575, 632, -1, 632, - -1, 633, 628, 1141, 728, -1, -1, 229, -1, 357, - -1, 221, -1, -1, 634, 650, 581, -1, 650, 581, - -1, 635, 650, 581, -1, -1, 636, 637, 581, -1, - -1, 109, 648, 638, 728, 649, -1, 109, 1141, 76, - 172, 645, -1, -1, 109, 642, 199, 172, 639, 643, - 650, -1, 109, 1141, 92, 172, 640, -1, -1, 641, - 586, -1, 153, -1, 82, -1, 644, -1, 643, 575, - 644, -1, 647, -1, 987, -1, 453, 646, 1139, -1, - -1, 536, -1, 645, -1, 1141, -1, 454, -1, 891, - 173, -1, 452, -1, 1141, -1, 648, 575, 1141, -1, - -1, 111, 873, -1, -1, 651, 586, -1, -1, 414, - 652, 873, -1, -1, 213, 653, 658, 141, 213, -1, - 663, -1, 678, -1, -1, 654, 681, -1, 248, 1142, - -1, 235, 1142, -1, 347, 1141, -1, -1, 161, 656, - 1141, 226, 655, 657, -1, 61, 1141, -1, -1, 330, - 175, -1, 175, -1, 1141, -1, 657, 575, 1141, -1, - -1, -1, -1, 659, 873, 560, 660, 635, 661, 662, - -1, -1, 135, 658, -1, 559, 635, -1, 664, -1, - 667, -1, -1, -1, 561, 665, 873, 666, 669, 677, - 141, 561, -1, -1, 561, 668, 670, 677, 141, 561, - -1, 671, -1, 669, 671, -1, 674, -1, 670, 674, - -1, -1, -1, 545, 672, 873, 673, 560, 635, -1, - -1, -1, 545, 675, 873, 676, 560, 635, -1, -1, - 559, 635, -1, -1, 1142, 582, 679, 681, 680, -1, - -1, 1142, -1, -1, 28, 682, 636, 634, 141, -1, - 269, 635, 141, 269, -1, -1, -1, 547, 683, 873, - 128, 684, 635, 141, 547, -1, -1, 404, 635, 523, - 685, 873, 141, 404, -1, 27, -1, 8, -1, 223, - -1, 524, -1, 115, -1, 573, 689, -1, 705, 691, - -1, 252, 1135, -1, 573, 252, 1135, 574, -1, 718, - 574, 705, 691, -1, -1, 694, 574, 690, 1219, -1, - -1, -1, 1110, 697, 694, 692, 1216, -1, -1, 1110, - 697, 573, 694, 574, 693, 1219, -1, -1, -1, 430, - 695, 862, 866, 696, 715, -1, -1, 18, -1, -1, - 699, -1, 700, -1, 699, 700, -1, 710, -1, 709, - -1, -1, 702, -1, 703, -1, 703, 702, -1, 486, - -1, -1, 213, 891, 152, -1, -1, 707, -1, 708, - -1, 708, 706, -1, 708, -1, 708, 707, -1, 708, - 575, 707, -1, 143, 1030, 711, -1, 507, 1030, 711, - -1, 292, 1030, 988, -1, 307, 1030, 988, -1, 24, - 1030, 987, -1, 361, 1030, 1138, -1, 68, 1030, 1138, - -1, 23, 1030, 988, -1, 358, 1030, 987, -1, 358, - 1030, 111, -1, 57, 1030, 987, -1, 114, 1030, 987, - -1, 423, 1030, 712, -1, 387, 1030, 713, -1, 384, - 1030, 987, -1, 385, 1030, 987, -1, 516, 1030, 573, - 1006, 574, -1, 709, -1, 710, -1, 224, 1030, 714, - -1, 96, 122, 1030, 1138, -1, 217, 122, 1030, 1138, - -1, 77, 1030, 1138, -1, 758, 749, 1030, 751, -1, - 758, 64, 1030, 757, -1, 1143, -1, 111, -1, 165, - -1, 133, -1, 72, -1, 393, -1, 71, -1, 386, - -1, 383, -1, 987, -1, 335, -1, 164, -1, 243, - -1, 982, -1, 861, 865, -1, -1, 10, -1, 472, - -1, 391, -1, 108, -1, 227, -1, 719, -1, 718, - 575, 719, -1, 720, -1, 721, -1, 726, 722, -1, - 726, 763, -1, 771, 781, 777, 573, 779, 574, -1, - 724, 772, 781, 777, 573, 779, 574, -1, 724, 170, - 238, 781, 573, 779, 574, 763, -1, 725, 722, -1, - 724, 723, -1, -1, 723, -1, 58, 873, -1, -1, - 725, -1, 79, 781, -1, -1, 1134, 727, 728, 745, - -1, 736, 743, 740, -1, 737, 744, 740, -1, 167, - 738, 740, -1, 37, -1, 37, 573, 338, 574, -1, - 42, -1, 41, -1, 732, 573, 338, 574, 759, -1, - 732, 759, -1, 733, 573, 338, 574, 760, -1, 733, - 760, -1, 32, 573, 338, 574, -1, 32, -1, 734, - 573, 338, 574, 759, -1, 735, 573, 338, 574, 760, - -1, 537, 573, 338, 574, -1, 556, 743, 740, -1, - 100, -1, 494, -1, 491, 743, -1, 97, -1, 495, - -1, 39, 743, -1, 731, -1, 296, -1, 265, -1, - 268, 537, -1, 268, 734, 759, -1, 497, 759, -1, - 490, 743, 759, -1, 298, 759, -1, 266, 759, -1, - 108, 738, 740, -1, 339, 738, 740, -1, 165, 738, - 740, -1, -1, 144, 729, 573, 783, 574, 759, -1, - -1, 436, 730, 573, 783, 574, 759, -1, 268, 759, - -1, 434, -1, 187, -1, 186, -1, 365, -1, 318, - -1, 256, -1, 317, -1, 367, -1, 319, -1, 56, - -1, 326, -1, 323, 56, -1, 732, 541, -1, 538, - -1, 323, 538, -1, 340, -1, 326, 538, -1, 323, - 56, 541, -1, 326, 541, -1, 227, -1, 496, -1, - 446, -1, 297, -1, 31, -1, 391, -1, 127, -1, - 127, 369, -1, -1, 573, 338, 574, -1, 739, -1, - 573, 338, 575, 338, 574, -1, -1, 741, -1, 741, - 742, -1, 742, -1, 443, -1, 522, -1, 557, -1, - -1, 573, 338, 574, -1, -1, 739, -1, -1, 746, - -1, 746, 747, -1, 747, -1, 337, -1, 891, 337, - -1, 111, 748, -1, 344, 524, 334, 872, -1, 23, - -1, 434, 111, 536, -1, 762, 238, -1, 517, -1, - 517, 238, -1, 68, 1138, -1, 64, 755, -1, 334, - 872, -1, 1125, -1, 56, 436, -1, 55, -1, 1143, - -1, 32, -1, 750, -1, 111, -1, -1, 749, 751, - -1, 1143, -1, 32, -1, 753, -1, 111, -1, 1143, - -1, -1, 64, 757, -1, 755, -1, 111, -1, -1, - 111, -1, -1, 20, 760, -1, 46, -1, 515, 760, - -1, 749, 750, 760, -1, 32, 761, -1, -1, 32, - -1, -1, 20, -1, 515, -1, 749, 750, -1, -1, - 372, -1, -1, 394, 1135, 764, 765, -1, 767, -1, - 573, 766, 574, 767, -1, 766, 575, 1141, -1, 1141, - -1, -1, 768, -1, 768, 769, -1, 769, -1, 344, - 115, 770, -1, 344, 524, 770, -1, 289, 177, -1, - 289, 360, -1, 289, 444, -1, 411, -1, 49, -1, - 436, 337, -1, 335, 5, -1, 436, 111, -1, 773, - -1, 178, 774, -1, 450, 774, -1, 372, 238, -1, - 517, 774, -1, 238, -1, 217, -1, -1, 773, -1, - 237, -1, 217, -1, 216, -1, -1, 517, -1, 178, - -1, 450, -1, -1, 530, 778, -1, 507, 778, -1, - 44, -1, 425, -1, 200, -1, 779, 575, 780, 980, - -1, 780, 980, -1, 1141, -1, 1141, 573, 338, 574, - -1, -1, 1134, -1, -1, 580, 1141, -1, 1123, -1, - 783, 575, 1123, -1, -1, 13, 798, 485, 1135, 785, - 791, -1, -1, 13, 94, 790, 786, 698, -1, -1, - 13, 374, 609, 787, 616, -1, -1, 13, 179, 609, - 788, 616, -1, -1, 13, 1235, 1231, 1236, 542, 1135, - 789, 1239, 18, 1241, 1244, -1, -1, 1141, -1, -1, - 124, 484, -1, 215, 484, -1, 793, -1, 791, 575, - 793, -1, 6, 797, -1, 792, 720, 800, -1, 6, - 721, -1, 792, 573, 718, 574, -1, -1, 53, 797, - 1134, 794, 726, 800, -1, -1, -1, 312, 797, 1134, - 795, 728, 745, 796, 800, -1, 129, 797, 1134, 799, - -1, 129, 170, 238, 781, -1, 129, 372, 238, -1, - 129, 773, 1134, -1, 123, 237, -1, 137, 237, -1, - 13, 797, 1134, 436, 111, 1125, -1, 13, 797, 1134, - 129, 111, -1, 401, 801, 1135, -1, 83, 498, 749, - 751, 756, -1, 706, -1, 169, -1, 973, -1, -1, - 67, -1, -1, 214, -1, -1, 411, -1, 49, -1, - -1, 8, 1141, -1, 164, -1, -1, 498, -1, 145, - -1, 18, -1, -1, 465, 445, 807, 803, 811, -1, - 469, 445, 807, -1, -1, 445, 465, 807, 804, 811, - -1, 445, 469, 807, -1, 465, 500, 806, -1, -1, - 548, 78, 447, -1, -1, 808, 809, -1, 810, -1, - 809, 575, 810, -1, -1, 462, -1, 398, -1, -1, - 523, 812, -1, 602, -1, 812, 575, 602, -1, -1, - 410, 1166, 814, 1006, 175, 1138, -1, -1, 26, 1166, - 816, 1006, 498, 1138, -1, -1, 57, 1166, 818, 1006, - 819, -1, -1, 382, -1, 156, -1, -1, 402, 834, - 1166, 821, 1006, 822, -1, -1, 823, -1, 824, -1, - 824, 823, -1, 382, -1, 156, -1, 528, -1, -1, - 14, 834, 1166, 826, 1006, 829, -1, -1, 58, 1166, - 828, 1006, 829, -1, -1, 830, -1, 831, -1, 831, - 830, -1, 382, -1, 159, -1, 299, -1, 156, -1, - 54, -1, 172, 525, -1, -1, 348, 834, 1166, 833, - 1006, 829, -1, -1, 336, -1, 258, -1, -1, 401, - 1166, 836, 838, -1, 401, 527, 608, 837, -1, 1144, - 498, 1144, -1, 837, 575, 1144, 498, 1144, -1, 839, - -1, 838, 575, 839, -1, 1135, 498, 1135, -1, 47, - 217, 841, 229, 843, -1, 842, -1, 841, 575, 842, - -1, 1135, 848, -1, 1141, -1, 111, -1, -1, 257, - 217, 226, 47, 845, 846, -1, 847, -1, 846, 575, - 847, -1, 1135, 848, 851, -1, -1, 849, 850, -1, - -1, 774, 573, 957, 574, -1, -1, 214, 247, -1, - 853, -1, 430, 855, -1, 573, 854, 574, 1219, -1, - 430, 857, -1, 573, 854, 574, -1, -1, 857, 856, - 1216, -1, -1, -1, 858, 862, 866, 859, 860, 865, - -1, 976, 982, -1, 998, -1, 861, -1, 998, 861, - -1, 861, 998, -1, 175, 930, 965, 970, 967, 976, - 982, 989, -1, 175, 130, 965, 982, -1, -1, 863, - -1, 863, 864, -1, 864, -1, 471, -1, 204, -1, - 125, -1, 460, -1, 455, -1, 456, -1, 458, -1, - 459, -1, 457, -1, 12, -1, -1, 172, 524, -1, - 262, 229, 438, 310, -1, 866, 575, 867, -1, 867, - -1, 567, -1, 868, 870, 869, 871, -1, -1, -1, - 1129, -1, 873, -1, -1, 18, 1141, -1, 18, 1138, - -1, 1141, -1, 1138, -1, -1, 573, 574, -1, -1, - 876, 874, 875, -1, -1, 875, 889, 876, -1, 876, - 553, 876, -1, -1, 879, 877, 878, -1, -1, 878, - 890, 879, -1, 333, 879, -1, 880, -1, 881, 232, - 504, -1, 881, 232, 891, 504, -1, 881, 232, 158, - -1, 881, 232, 891, 158, -1, 881, 232, 520, -1, - 881, 232, 891, 520, -1, 881, -1, 881, 232, 337, - -1, 881, 232, 891, 337, -1, 881, 146, 882, -1, - 881, 893, 882, -1, 881, 893, 894, 573, 1224, 574, - -1, 882, -1, 883, 229, 573, 1224, 574, -1, 883, - 891, 229, 573, 1224, 574, -1, 883, 229, 573, 873, - 574, -1, 883, 229, 573, 873, 575, 919, 574, -1, - 883, 891, 229, 573, 873, 574, -1, 883, 891, 229, - 573, 873, 575, 919, 574, -1, 883, 562, 883, 16, - 882, -1, 883, 891, 562, 883, 16, 882, -1, 883, - 448, 252, 883, -1, 883, 252, 896, 969, -1, 883, - 891, 252, 896, 969, -1, 883, 395, 883, -1, 883, - 891, 395, 883, -1, 883, -1, 883, 563, 884, -1, - 884, -1, 884, 564, 885, -1, 885, -1, 885, 439, - 886, -1, 885, 440, 886, -1, 886, -1, 886, 566, - 887, -1, 886, 565, 887, -1, 886, 566, 895, 959, - -1, 886, 565, 895, 959, -1, 887, -1, 887, 567, - 888, -1, 887, 568, 888, -1, 887, 569, 888, -1, - 887, 126, 888, -1, 887, 313, 888, -1, 888, -1, - 888, 570, 896, -1, 896, -1, 354, -1, 351, -1, - 16, -1, 15, -1, 333, -1, 332, -1, 576, -1, - 332, -1, 145, -1, 184, -1, 198, -1, 244, -1, - 271, -1, 328, -1, 12, -1, 17, -1, 225, 873, - -1, 1131, -1, 896, 64, 1143, -1, 1126, -1, 1124, - -1, 909, -1, 905, -1, 896, 353, 896, -1, 566, - 896, -1, 565, 896, -1, 571, 896, -1, 892, 896, - -1, 573, 1224, 574, -1, 573, 873, 574, -1, 573, - 873, 575, 919, 574, -1, 424, 573, 873, 575, 919, - 574, -1, 152, 573, 1224, 574, -1, 577, 1141, 873, - 578, -1, 289, 922, 9, 573, 883, 899, 574, -1, - 20, 573, 873, 574, -1, 32, 896, -1, 51, 573, - 873, 18, 917, 574, -1, 561, 926, 928, 927, 141, - -1, 83, 573, 873, 575, 917, 574, -1, 83, 573, - 873, 530, 750, 574, -1, 111, 573, 1131, 574, -1, - 535, 573, 1132, 574, -1, 180, 573, 574, -1, 181, - 573, 873, 574, -1, 182, 573, 873, 575, 873, 574, - -1, 183, 573, 873, 575, 873, 575, 873, 574, -1, - 7, 573, 873, 575, 873, 574, -1, 7, 573, 873, - 575, 225, 873, 959, 574, -1, 404, 573, 873, 575, - 873, 574, -1, 22, 573, 873, 574, -1, 22, 573, - 873, 575, 873, 574, -1, 56, 573, 919, 574, -1, - 56, 573, 919, 530, 750, 574, -1, 55, 573, 873, - 574, -1, 62, 573, 919, 574, -1, 65, 573, 873, - 574, -1, 73, 573, 919, 574, -1, 74, 573, 873, - 575, 919, 574, -1, 84, 573, 873, 575, 873, 575, - 873, 574, -1, 90, 872, -1, 93, 872, -1, 93, - 573, 873, 574, -1, 91, 872, -1, 98, 573, 873, - 575, 895, 959, 574, -1, 99, 573, 873, 575, 895, - 959, 574, -1, 94, 573, 574, -1, 100, 573, 873, - 574, -1, 105, 573, 873, 574, -1, 136, 573, 873, - 575, 919, 574, -1, 272, 573, 873, 575, 919, 574, - -1, 140, 573, 873, 574, -1, 140, 573, 873, 575, - 873, 574, -1, 110, 573, 873, 575, 1139, 574, -1, - 139, 573, 873, 575, 1139, 574, -1, 118, 573, 873, - 574, -1, 118, 573, 873, 575, 873, 574, -1, 119, - 573, 873, 574, -1, 119, 573, 873, 575, 873, 574, - -1, 155, 573, 873, 575, 873, 575, 873, 574, -1, - 155, 573, 873, 575, 873, 575, 873, 575, 873, 574, - -1, 155, 573, 873, 575, 873, 575, 873, 575, 873, - 575, 873, 574, -1, 171, 573, 873, 575, 338, 574, - -1, 176, 573, 873, 574, -1, 176, 573, 873, 575, - 873, 574, -1, 162, 573, 873, 575, 919, 574, -1, - 898, -1, 190, 573, 961, 575, 873, 574, -1, 209, - 573, 873, 574, -1, 213, 573, 873, 575, 873, 575, - 873, 574, -1, 223, 573, 873, 575, 873, 575, 873, - 575, 873, 574, -1, 895, 959, 566, 873, -1, 895, - -1, 242, 573, 574, -1, 242, 573, 873, 574, -1, - 249, 573, 873, 575, 873, 574, -1, 259, 573, 873, - 575, 873, 574, -1, 259, 573, 873, 575, 873, 575, - 873, 574, -1, 194, 573, 873, 575, 919, 574, -1, - 246, 573, 873, 575, 919, 574, -1, 264, 573, 873, - 574, -1, 264, 573, 873, 575, 873, 574, -1, 279, - 573, 873, 575, 873, 574, -1, 279, 573, 873, 575, - 873, 575, 873, 574, -1, 302, 573, 873, 574, -1, - 306, 573, 873, 574, -1, 313, 573, 873, 575, 873, - 574, -1, 314, 573, 873, 574, -1, 334, 872, -1, - 334, 573, 873, 574, -1, 361, 573, 873, 574, -1, - 343, 573, 873, 574, -1, 368, 573, 883, 229, 873, - 574, -1, 380, 573, 873, 574, -1, 388, 573, 873, - 574, -1, 388, 573, 574, -1, 405, 573, 873, 575, - 873, 575, 873, 574, -1, 416, 573, 873, 575, 873, - 574, -1, 419, 573, 873, 574, -1, 419, 573, 873, - 575, 873, 574, -1, 422, 573, 574, -1, 473, 573, - 873, 575, 873, 574, -1, 473, 573, 873, 575, 225, - 873, 959, 574, -1, 428, 573, 873, 574, -1, 475, - 573, 873, 575, 873, 575, 873, 574, -1, 475, 573, - 873, 575, 873, 574, -1, 475, 573, 873, 175, 873, - 172, 873, 574, -1, 475, 573, 873, 175, 873, 574, - -1, 476, 573, 873, 575, 873, 575, 873, 574, -1, - 482, 872, -1, 482, 573, 873, 574, -1, 494, 573, - 873, 574, -1, 491, 573, 873, 574, -1, 491, 573, - 873, 575, 873, 574, -1, 492, 573, 960, 575, 873, - 575, 873, 574, -1, 493, 573, 960, 575, 873, 575, - 873, 574, -1, 503, 573, 873, 574, -1, 503, 573, - 245, 873, 175, 873, 574, -1, 503, 573, 499, 873, - 175, 873, 574, -1, 503, 573, 43, 873, 175, 873, - 574, -1, 503, 573, 245, 175, 873, 574, -1, 503, - 573, 499, 175, 873, 574, -1, 503, 573, 43, 175, - 873, 574, -1, 503, 573, 873, 175, 873, 574, -1, - 505, 573, 873, 575, 873, 574, -1, 1141, 580, 1141, - 573, 918, 574, -1, -1, 1137, 573, 897, 900, 574, - -1, 518, 573, 1122, 575, 338, 575, 338, 575, 919, - 574, -1, 519, 573, 574, -1, 519, 573, 873, 574, - -1, 527, 573, 574, -1, 531, 872, -1, 533, 872, - -1, 532, 872, -1, 544, 573, 873, 574, -1, 544, - 573, 873, 575, 873, 574, -1, 556, 573, 873, 574, - -1, 554, 573, 873, 574, -1, 554, 573, 873, 575, - 873, 574, -1, 29, 573, 987, 575, 873, 574, -1, - 157, 573, 959, 175, 873, 574, -1, 80, 573, 873, - 575, 873, 574, -1, 188, 573, 873, 574, -1, 188, - 573, 873, 575, 873, 574, -1, 189, 573, 873, 574, - -1, 189, 573, 873, 575, 873, 574, -1, 186, 573, - 919, 574, -1, 256, 573, 919, 574, -1, 317, 573, - 919, 574, -1, 309, 573, 873, 574, -1, 309, 573, - 873, 575, 873, 574, -1, 315, 573, 873, 574, -1, - 315, 573, 873, 575, 873, 574, -1, 316, 573, 873, - 574, -1, 316, 573, 873, 575, 873, 574, -1, 318, - 573, 919, 574, -1, 319, 573, 919, 574, -1, 365, - 573, 873, 575, 873, 574, -1, 364, 573, 873, 574, - -1, 364, 573, 873, 575, 873, 574, -1, 366, 573, - 873, 574, -1, 366, 573, 873, 575, 873, 574, -1, - 367, 573, 919, 574, -1, 185, 573, 873, 574, -1, - 185, 573, 873, 575, 873, 574, -1, 254, 573, 873, - 574, -1, 254, 573, 873, 575, 873, 574, -1, -1, - 548, 381, 154, -1, 229, 41, 310, -1, -1, 901, - -1, -1, 902, 903, -1, 904, -1, 903, 575, 904, - -1, 868, 873, 869, 871, -1, 25, 573, 915, 574, - -1, 25, 573, 125, 915, 574, -1, 35, 573, 915, - 574, -1, 36, 573, 915, 574, -1, 38, 573, 915, - 574, -1, 85, 573, 964, 567, 574, -1, 85, 573, - 915, 574, -1, -1, -1, 85, 573, 125, 906, 919, - 907, 574, -1, 197, 573, 1122, 575, 338, 575, 338, - 575, 915, 574, -1, 308, 573, 915, 574, -1, 308, - 573, 125, 915, 574, -1, 293, 573, 915, 574, -1, - 293, 573, 125, 915, 574, -1, 467, 573, 915, 574, - -1, 540, 573, 915, 574, -1, 468, 573, 915, 574, - -1, 534, 573, 915, 574, -1, 477, 573, 915, 574, - -1, 477, 573, 125, 915, 574, -1, -1, 196, 573, - 912, 908, 919, 914, 913, 574, -1, -1, 579, 910, - 911, -1, 1143, 437, 873, -1, 1143, -1, 579, 1156, - 1143, 782, -1, -1, 125, -1, -1, 432, 1123, -1, - -1, 977, -1, -1, 964, 916, 873, -1, 32, 743, - -1, 56, 743, 759, -1, 326, 743, -1, 443, -1, - 443, 227, -1, 522, -1, 522, 227, -1, 100, -1, - 494, -1, 97, -1, 108, 738, -1, -1, 919, -1, - -1, 920, 921, -1, 873, -1, 921, 575, 873, -1, - 923, -1, 573, 923, 574, -1, -1, 924, 925, -1, - 1131, -1, 925, 575, 1131, -1, -1, 873, -1, -1, - 559, 873, -1, 545, 873, 560, 873, -1, 928, 545, - 873, 560, 873, -1, 941, -1, 932, -1, 931, -1, - 929, -1, 931, 575, 929, -1, 929, 940, 929, -1, - 929, 471, 941, -1, -1, 929, 940, 929, 344, 933, - 873, -1, -1, 929, 471, 941, 344, 934, 873, -1, - -1, 929, 940, 929, 530, 935, 573, 958, 574, -1, - 929, 324, 236, 941, -1, -1, 929, 249, 951, 236, - 929, 344, 936, 873, -1, -1, 929, 249, 951, 236, - 941, 937, 530, 573, 958, 574, -1, 929, 324, 249, - 951, 236, 941, -1, -1, 929, 416, 951, 236, 929, - 344, 938, 873, -1, -1, 929, 416, 951, 236, 941, - 939, 530, 573, 958, 574, -1, 929, 324, 416, 951, - 236, 941, -1, 236, -1, 219, 236, -1, 88, 236, - -1, -1, 942, 1135, 963, 953, -1, -1, 577, 1141, - 929, 249, 355, 236, 929, 344, 943, 873, 578, -1, - 950, 949, 946, -1, 573, 949, 944, 1219, 574, 963, - -1, -1, 949, 945, 931, -1, -1, -1, 947, 862, - 866, 948, 715, -1, -1, 430, -1, -1, 355, -1, - -1, 172, 236, -1, -1, 529, 954, -1, 169, 954, - -1, 214, 954, -1, -1, 773, 952, 955, 573, 956, - 574, -1, -1, 957, -1, 957, 575, 1141, -1, 1141, - -1, 372, -1, 1141, -1, 958, 575, 1141, -1, 960, - -1, 101, -1, 102, -1, 103, -1, 104, -1, 206, - -1, 207, -1, 208, -1, 302, -1, 304, -1, 305, - -1, 427, -1, 555, -1, 105, -1, 544, -1, 209, - -1, 174, -1, 306, -1, 314, -1, 380, -1, 428, - -1, 556, -1, 100, -1, 494, -1, 97, -1, 491, - -1, -1, 18, -1, 145, -1, -1, 962, 1141, -1, - -1, 12, -1, -1, -1, 546, 966, 873, -1, -1, - -1, 201, 968, 873, -1, 149, 896, -1, -1, -1, - 195, 45, 971, 972, -1, 971, 575, 1130, 980, -1, - 1130, 980, -1, -1, 548, 89, -1, 548, 418, -1, - 352, 45, 974, -1, 974, 575, 975, -1, 975, -1, - 1132, 980, -1, -1, 977, -1, -1, 352, 45, 978, - 979, -1, 979, 575, 1130, 980, -1, 1130, 980, -1, - -1, 19, -1, 116, -1, -1, 983, -1, -1, 983, - -1, 253, 984, -1, 985, -1, 985, 575, 985, -1, - 985, 341, 985, -1, 1124, -1, 510, -1, 267, -1, - 338, -1, -1, 253, 985, -1, 338, -1, 203, -1, - 267, -1, 510, -1, 107, -1, 166, -1, 338, -1, - 510, -1, 267, -1, 107, -1, 166, -1, -1, -1, - 374, 1141, 990, 573, 991, 574, -1, -1, 992, -1, - 992, 575, 993, -1, 993, -1, 868, 873, -1, -1, - 995, 996, -1, 996, 575, 997, -1, 997, -1, 579, - 1143, -1, 1143, -1, -1, 226, 999, 1000, -1, -1, - 356, 1140, 1001, 1111, 1114, -1, 131, 1140, -1, 994, - -1, -1, 128, 1003, 919, -1, 129, 1009, 1166, 1008, - 1006, 799, -1, -1, 129, 217, 1141, 344, 1135, 1005, - -1, 129, 94, 1008, 1141, -1, 129, 179, 1008, 609, - -1, 129, 374, 1008, 609, -1, 129, 527, 608, 1196, - -1, 129, 542, 1008, 1006, 799, -1, 129, 501, 1008, - 609, -1, 1007, -1, 1006, 575, 1007, -1, 1135, -1, - -1, 213, 152, -1, -1, 486, -1, -1, -1, 223, - 1011, 1016, 798, 1018, 1012, 1020, 1036, -1, -1, -1, - 405, 1014, 1017, 1018, 1015, 1020, -1, -1, 270, -1, - 113, -1, 204, -1, 1045, -1, 113, -1, 226, 1019, - -1, 1019, -1, 1007, -1, 1023, -1, 573, 574, 1023, - -1, 573, 1022, 574, 1023, -1, -1, 436, 1021, 1027, - -1, 1022, 575, 1128, -1, 1128, -1, 535, 1026, -1, - 536, 1026, -1, -1, 694, 1024, 1216, -1, -1, 573, - 694, 574, 1025, 1219, -1, 1026, 575, 1031, -1, 1031, - -1, 1027, 575, 1028, -1, 1028, -1, 1132, 1029, 1035, - -1, 145, -1, 437, -1, -1, 1029, -1, -1, 573, - 1032, 1033, 574, -1, -1, 1034, -1, 1034, 575, 1035, - -1, 1035, -1, 873, -1, 111, -1, -1, -1, 344, - 132, 1037, 238, 524, 1043, -1, -1, -1, 524, 1039, - 1045, 798, 930, 436, 1041, 1040, 965, 976, 986, -1, - 1041, 575, 1042, -1, 1042, -1, 1132, 1029, 1035, -1, - 1043, 575, 1044, -1, 1044, -1, 1132, 1029, 1035, -1, - -1, 270, -1, -1, 115, 1047, 1055, 1048, -1, -1, - 175, 1135, 1049, 965, 976, 986, -1, -1, 1052, 1050, - 175, 930, 965, -1, -1, 175, 1052, 1051, 530, 930, - 965, -1, 1053, -1, 1052, 575, 1053, -1, 1141, 1054, - 963, -1, 1141, 580, 1141, 1054, 963, -1, -1, 580, - 567, -1, -1, 1056, 1055, -1, 382, -1, 270, -1, - 214, -1, 505, 1058, 1007, -1, -1, 485, -1, -1, - 1060, -1, 1061, -1, 1060, 575, 1061, -1, 86, -1, - 300, -1, 40, 230, -1, 81, 481, -1, 359, 160, - -1, 231, -1, 480, -1, 449, -1, 12, -1, -1, - 172, 381, 338, -1, -1, 441, 1064, 1065, -1, 95, - 1076, -1, 1072, 483, 1071, 1076, -1, 1072, 502, 1071, - 1076, -1, 485, 466, 1071, 1076, -1, 347, 483, 1071, - 1076, -1, -1, 143, 711, 1066, 1068, -1, 1072, 66, - 1073, 1135, 1071, 1076, -1, 329, 287, 172, 445, 548, - 275, 145, 1138, 16, 276, 145, 988, 16, 280, 145, - 987, -1, 1069, 263, -1, 445, 205, -1, -1, 33, - 150, 1074, 1075, 1067, 981, -1, 775, 1073, 1135, 1071, - 965, -1, 67, 506, -1, 485, 506, -1, 1070, 142, - -1, 373, -1, 85, 573, 567, 574, 543, -1, 85, - 573, 567, 574, 147, -1, 543, 981, -1, 147, 981, - -1, 378, -1, 377, 1059, 1062, 981, -1, 1155, 466, - 1076, -1, 220, 466, -1, 320, 466, -1, 1072, 376, - -1, 1155, 539, 1076, -1, 749, 1076, -1, 65, 1076, - -1, 30, 263, -1, 263, -1, 193, -1, 193, 172, - 1144, -1, 87, 94, 704, 1141, -1, 87, 485, 1135, - -1, 87, 542, 1135, -1, 287, 466, -1, 445, 466, - -1, 87, 374, 609, -1, 87, 179, 609, -1, 374, - 466, 1076, -1, 179, 466, 1076, -1, 374, 63, 609, - -1, 179, 63, 609, -1, 466, -1, 263, -1, 287, - -1, 32, -1, -1, 470, -1, -1, 1073, 1141, -1, - -1, 177, -1, 175, -1, 229, -1, -1, 229, 1138, - -1, -1, 175, 988, -1, -1, 252, 1138, -1, 546, - 873, -1, -1, 1080, 1135, 1078, 1082, -1, -1, 1080, - 1081, 1079, 852, -1, 116, -1, 117, -1, -1, 156, - -1, -1, 1123, -1, 1141, -1, -1, 168, 834, 1084, - 1085, -1, 1085, 575, 1086, -1, 1086, -1, -1, 1166, - 1087, 1088, -1, 483, 548, 390, 262, -1, 381, 47, - -1, 205, -1, 373, -1, 263, -1, 466, -1, 445, - -1, 287, -1, 120, -1, 409, -1, -1, 1006, -1, - -1, 408, 1090, 1091, -1, 1091, 575, 1092, -1, 1092, - -1, 445, -1, 287, -1, 381, 47, -1, -1, 379, - 1094, 1095, -1, 1069, 263, 1096, -1, 498, 1138, -1, - 27, 873, -1, -1, 239, 1098, 1099, 873, -1, -1, - 77, -1, 381, -1, 529, 1141, -1, -1, 257, 96, - 1102, 1103, -1, 257, 485, 1135, 175, 287, -1, -1, - -1, -1, -1, 1109, 1108, 218, 1140, 1104, 1110, 226, - 1105, 485, 1135, 1106, 752, 1107, 1111, 1114, 1117, 1118, - 1121, -1, 175, 287, -1, -1, 258, -1, -1, 75, - -1, 270, -1, -1, 405, -1, 214, -1, -1, 66, - 1112, -1, 1112, 1113, -1, 1113, -1, 488, 45, 1123, - -1, 350, 138, 45, 1123, -1, 138, 45, 1123, -1, - 148, 45, 1123, -1, -1, 255, 1115, -1, 1115, 1116, - -1, 1116, -1, 488, 45, 1123, -1, 464, 45, 1123, - -1, -1, 214, 338, 255, -1, -1, 573, 1119, 574, - -1, 573, 574, -1, 1119, 575, 1120, -1, 1120, -1, - 1132, -1, 579, 1143, -1, -1, 436, 1043, -1, 1139, - -1, 325, -1, 513, 489, -1, 1122, 1139, -1, 1139, - -1, 203, -1, 34, -1, 362, -1, 1126, -1, 566, - 1127, -1, 565, 1127, -1, 1122, -1, 1127, -1, 337, - -1, 158, -1, 504, -1, 203, -1, 34, -1, 513, - 203, -1, 513, 34, -1, 100, 1122, -1, 494, 1122, - -1, 491, 1122, -1, 338, -1, 267, -1, 510, -1, - 107, -1, 166, -1, 1132, -1, 1129, -1, 1141, 580, - 567, -1, 1141, 580, 1141, 580, 567, -1, 873, -1, - 1141, -1, 1133, -1, 1141, -1, 1133, -1, 1141, 580, - 1141, -1, 580, 1141, 580, 1141, -1, 1141, 580, 1141, - 580, 1141, -1, 1141, -1, 1141, 580, 1141, 580, 1141, - -1, 1141, 580, 1141, -1, 580, 1141, -1, 1141, -1, - 1141, 580, 1141, -1, 580, 1141, -1, 1141, -1, 210, - -1, 212, -1, 489, -1, 489, -1, 489, -1, 1137, - -1, 1145, -1, 1137, -1, 1146, -1, 1141, -1, 1138, - -1, 251, -1, 1143, -1, 1143, 579, 1143, -1, 91, - 872, -1, 1146, -1, 20, -1, 26, -1, 28, -1, - 46, -1, 47, -1, 55, -1, 57, -1, 61, -1, - 68, -1, 70, -1, 80, -1, 106, -1, 128, -1, - 141, -1, 151, -1, 168, -1, 199, -1, 202, -1, - 241, -1, 335, -1, 347, -1, 370, -1, 402, -1, - 408, -1, 410, -1, 417, -1, 426, -1, 429, -1, - 443, -1, 445, -1, 465, -1, 469, -1, 505, -1, - 515, -1, 552, -1, 525, -1, 5, -1, 7, -1, - 8, -1, 9, -1, 10, -1, 11, -1, 17, -1, - 23, -1, 24, -1, 25, -1, 30, -1, 33, -1, - 37, -1, 40, -1, 42, -1, 41, -1, 44, -1, - 50, -1, 52, -1, 54, -1, 59, -1, 60, -1, - 63, -1, 65, -1, 66, -1, 69, -1, 71, -1, - 72, -1, 75, -1, 77, -1, 78, -1, 81, -1, - 86, -1, 89, -1, 96, -1, 97, -1, 100, -1, - 105, -1, 112, -1, 114, -1, 120, -1, 122, -1, - 124, -1, 131, -1, 132, -1, 133, -1, 144, -1, - 143, -1, 142, -1, 147, -1, 149, -1, 150, -1, - 154, -1, 156, -1, 159, -1, 160, -1, 173, -1, - 123, -1, 137, -1, 177, -1, 163, -1, 164, -1, - 165, -1, 174, -1, 187, -1, 186, -1, 190, -1, - 193, -1, 191, -1, 200, -1, 205, -1, 209, -1, - 211, -1, 228, -1, 215, -1, 216, -1, 233, -1, - 234, -1, 220, -1, 224, -1, 230, -1, 231, -1, - 398, -1, 243, -1, 247, -1, 250, -1, 256, -1, - 258, -1, 261, -1, 263, -1, 292, -1, 287, -1, - 274, -1, 278, -1, 275, -1, 276, -1, 288, -1, - 277, -1, 280, -1, 273, -1, 286, -1, 282, -1, - 281, -1, 283, -1, 284, -1, 285, -1, 290, -1, - 291, -1, 294, -1, 295, -1, 299, -1, 300, -1, - 301, -1, 302, -1, 303, -1, 306, -1, 307, -1, - 312, -1, 310, -1, 314, -1, 317, -1, 318, -1, - 319, -1, 320, -1, 322, -1, 321, -1, 323, -1, - 326, -1, 327, -1, 330, -1, 329, -1, 331, -1, - 340, -1, 341, -1, 343, -1, 345, -1, 346, -1, - 358, -1, 359, -1, 360, -1, 361, -1, 363, -1, - 365, -1, 367, -1, 371, -1, 373, -1, 375, -1, - 376, -1, 377, -1, 378, -1, 380, -1, 381, -1, - 382, -1, 383, -1, 384, -1, 385, -1, 386, -1, - 387, -1, 392, -1, 393, -1, 396, -1, 397, -1, - 400, -1, 403, -1, 406, -1, 409, -1, 412, -1, - 413, -1, 418, -1, 420, -1, 421, -1, 423, -1, - 424, -1, 425, -1, 428, -1, 434, -1, 433, -1, - 435, -1, 444, -1, 438, -1, 442, -1, 447, -1, - 448, -1, 449, -1, 457, -1, 456, -1, 459, -1, - 462, -1, 466, -1, 470, -1, 472, -1, 473, -1, - 474, -1, 478, -1, 479, -1, 480, -1, 481, -1, - 483, -1, 484, -1, 486, -1, 487, -1, 490, -1, - 500, -1, 502, -1, 491, -1, 492, -1, 493, -1, - 494, -1, 506, -1, 507, -1, 508, -1, 179, -1, - 511, -1, 512, -1, 520, -1, 523, -1, 527, -1, - 528, -1, 539, -1, 542, -1, 536, -1, 543, -1, - 544, -1, 549, -1, 551, -1, 556, -1, -1, 436, - 1149, 1148, 1150, -1, -1, 349, -1, 1151, -1, 1150, - 575, 1151, -1, -1, 1152, 1157, -1, 1154, -1, 191, - -1, 258, -1, 435, -1, -1, 345, -1, -1, 191, - -1, 258, -1, 435, -1, -1, 191, 580, -1, 258, - 580, -1, 435, 580, -1, 1158, -1, 1154, 1159, -1, - 1153, 1160, 1029, 1163, -1, 1153, 500, 233, 250, 1161, - -1, 579, 1143, 1029, 873, -1, 579, 579, 1156, 1160, - 1029, 1163, -1, 749, 754, -1, 321, 1029, 873, -1, - 321, 751, 756, -1, 361, 1029, 1162, -1, 361, 172, - 1144, 1029, 1162, -1, 1141, -1, 1141, 580, 1141, -1, - 111, 580, 1141, -1, 390, 511, -1, 390, 69, -1, - 403, 390, -1, 433, -1, 489, -1, 361, 573, 489, - 574, -1, 343, 573, 489, 574, -1, 873, -1, 111, - -1, 344, -1, 12, -1, 32, -1, -1, 262, 1166, - 1165, 1167, -1, 485, -1, 483, -1, 1168, -1, 1167, - 575, 1168, -1, 1135, 963, 1169, -1, 390, -1, 550, - -1, 270, 550, -1, 390, 258, -1, -1, 521, 1171, - 1166, -1, 199, 1135, 347, 963, -1, 199, 1136, 61, - -1, -1, 199, 1136, 390, 1173, 1174, 965, 982, -1, - 1175, -1, 1141, 1176, -1, 164, -1, 330, -1, 164, - -1, 330, -1, 371, -1, 243, -1, -1, 1178, 1177, - 573, 1034, 574, -1, 145, -1, 184, -1, 244, -1, - 198, -1, 271, -1, 415, 608, 1180, -1, 1184, 344, - 1183, 1195, 175, 1197, -1, 1184, 344, 179, 1195, 175, - 1197, -1, 1184, 344, 374, 1195, 175, 1197, -1, 12, - 1185, 575, 192, 349, 175, 1197, -1, 192, 608, 1182, - -1, 1184, 344, 1183, 1195, 498, 1197, 1202, 1203, -1, - 1184, 344, 179, 1195, 498, 1197, 1202, 1203, -1, 1184, - 344, 374, 1195, 498, 1197, 1202, 1203, -1, -1, 485, - -1, 1186, -1, 12, 1185, -1, -1, 373, -1, 1187, - -1, 1186, 575, 1187, -1, -1, 430, 1188, 1199, -1, - -1, 223, 1189, 1199, -1, -1, 524, 1190, 1199, -1, - -1, 394, 1191, 1199, -1, 115, -1, 526, -1, 217, - -1, 13, -1, 87, -1, 129, -1, 151, -1, 400, - -1, 442, -1, 375, -1, 163, -1, 192, 349, -1, - 441, 95, -1, 478, -1, 87, 486, 483, -1, 262, - 483, -1, 406, 445, -1, 406, 60, -1, 87, 542, - -1, 441, 542, -1, 87, 420, -1, 13, 420, -1, - 87, 527, -1, -1, 16, -1, 1194, 1192, 1193, -1, - 1194, -1, 474, 489, -1, 234, 489, -1, 59, 489, - -1, 567, -1, 1141, 580, 567, -1, 567, 580, 567, - -1, 1135, -1, 1144, -1, 1196, 575, 1144, -1, 1198, - -1, 1197, 575, 1198, -1, 1144, 211, 45, 489, -1, - 1144, 211, 45, 361, 489, -1, 1144, -1, -1, 573, - 1200, 574, -1, 1200, 575, 1201, -1, 1201, -1, 1141, - -1, -1, 407, 1193, -1, 407, 463, -1, 407, 551, - -1, 407, 331, -1, -1, 548, 1204, -1, 1204, 1205, - -1, 1205, -1, 192, 349, -1, 291, 987, -1, 294, - 987, -1, 290, 987, -1, 295, 987, -1, -1, 28, - 1207, 1208, -1, -1, 549, -1, -1, 16, 335, 52, - -1, 16, 52, -1, -1, 399, -1, 335, 399, -1, - -1, 426, -1, 70, 1208, 1209, 1210, -1, 417, 1208, - 1209, 1210, -1, 417, 1208, 498, 1211, 1141, -1, 426, - 1141, -1, 399, 426, 1141, -1, -1, 1217, -1, -1, - 516, 1223, 1218, 853, -1, -1, 1217, -1, 1220, -1, - -1, 1221, 1222, -1, 977, 981, -1, 983, -1, -1, - 125, -1, 12, -1, 430, 1227, 1226, 1228, -1, -1, - 573, 1227, 1224, 574, 1225, 1216, 1228, -1, 855, -1, - -1, -1, 1231, 1230, -1, 1232, 1231, 1237, -1, 1237, - -1, 1245, -1, 1247, -1, -1, 112, 145, 1144, -1, - 1233, -1, 1233, 1234, -1, 1234, -1, 354, 405, -1, - 11, 145, 512, -1, 11, 145, 301, -1, 11, 145, - 487, -1, -1, 1234, -1, -1, 461, 429, 112, -1, - 461, 429, 228, -1, -1, 1236, 542, 1135, 1238, 1239, - 18, 1241, 1244, -1, -1, 573, 1240, 574, -1, 1141, - -1, 1240, 575, 1141, -1, -1, 1242, 1243, -1, 430, - 868, 855, -1, 573, 868, 854, 574, 1219, -1, -1, - 548, 58, 349, -1, 548, 50, 58, 349, -1, 548, - 258, 58, 349, -1, -1, 501, 868, 609, 686, 687, - 344, 868, 1135, 172, 868, 134, 424, 1246, 650, -1, - -1, 716, 868, 179, 609, 1248, 610, -1, -1, -1, - -1, -1, 374, 868, 609, 1249, 573, 1250, 630, 574, - 1251, 617, 1252, 650, -1, 552, 1255, 1254, 1256, -1, - 552, 141, 1254, 1258, -1, 552, 370, 1254, -1, 552, - 70, 1254, 1257, -1, 552, 417, 1254, -1, 552, 392, - -1, 1123, -1, 1123, 575, 1123, -1, 1123, 575, 1123, - 575, 987, -1, 28, -1, 465, -1, -1, 236, -1, - 412, -1, -1, 346, 363, -1, -1, -1, 479, 1259, - 1260, -1, -1, 172, 303, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const unsigned short int yyrline[] = -{ - 0, 1215, 1215, 1229, 1232, 1233, 1238, 1239, 1240, 1241, - 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, - 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, - 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, - 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, - 1282, 1283, 1284, 1288, 1297, 1298, 1303, 1312, 1319, 1329, - 1328, 1339, 1341, 1345, 1346, 1349, 1362, 1361, 1380, 1379, - 1390, 1391, 1394, 1399, 1404, 1409, 1414, 1418, 1423, 1427, - 1431, 1435, 1439, 1444, 1448, 1452, 1468, 1472, 1484, 1483, - 1503, 1502, 1523, 1522, 1535, 1534, 1542, 1550, 1564, 1579, - 1597, 1617, 1656, 1664, 1672, 1684, 1616, 1715, 1716, 1720, - 1721, 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1744, 1745, - 1746, 1750, 1754, 1762, 1761, 1774, 1776, 1779, 1781, 1785, - 1789, 1796, 1798, 1802, 1803, 1808, 1827, 1853, 1855, 1859, - 1860, 1864, 1890, 1891, 1892, 1893, 1897, 1898, 1902, 1903, - 1908, 1911, 1938, 1937, 1993, 2008, 2007, 2051, 2075, 2075, - 2106, 2107, 2112, 2114, 2119, 2142, 2148, 2163, 2164, 2168, - 2172, 2181, 2186, 2191, 2199, 2214, 2232, 2233, 2237, 2237, - 2287, 2286, 2310, 2309, 2313, 2314, 2316, 2316, 2327, 2356, - 2384, 2400, 2399, 2416, 2433, 2435, 2436, 2440, 2461, 2484, - 2486, 2500, 2484, 2518, 2520, 2521, 2525, 2526, 2531, 2537, - 2530, 2556, 2555, 2571, 2572, 2576, 2577, 2582, 2586, 2581, - 2603, 2607, 2602, 2622, 2630, 2635, 2634, 2672, 2673, 2678, - 2677, 2704, 2715, 2717, 2714, 2741, 2740, 2758, 2760, 2765, - 2767, 2769, 2774, 2775, 2776, 2782, 2791, 2792, 2792, 2796, - 2798, 2797, 2800, 2799, 2805, 2821, 2804, 2835, 2836, 2839, - 2840, 2843, 2844, 2847, 2848, 2851, 2852, 2855, 2856, 2859, - 2862, 2863, 2865, 2867, 2870, 2871, 2874, 2875, 2876, 2879, - 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2902, 2908, - 2909, 2910, 2911, 2916, 2921, 2926, 2941, 2942, 2943, 2944, - 2945, 2946, 2950, 2967, 2983, 2993, 2994, 2995, 2996, 2997, - 2998, 3001, 3002, 3003, 3006, 3007, 3008, 3011, 3012, 3015, - 3016, 3019, 3020, 3021, 3022, 3025, 3026, 3030, 3031, 3035, - 3036, 3043, 3051, 3059, 3076, 3080, 3086, 3088, 3092, 3096, - 3097, 3101, 3106, 3105, 3127, 3128, 3129, 3130, 3132, 3134, - 3136, 3138, 3140, 3142, 3145, 3148, 3151, 3154, 3156, 3159, - 3162, 3163, 3164, 3165, 3178, 3179, 3181, 3183, 3195, 3197, - 3199, 3201, 3202, 3203, 3204, 3205, 3206, 3208, 3210, 3212, - 3212, 3214, 3214, 3216, 3217, 3226, 3227, 3228, 3231, 3232, - 3233, 3234, 3235, 3239, 3243, 3244, 3248, 3249, 3253, 3254, - 3255, 3256, 3257, 3261, 3262, 3263, 3264, 3265, 3268, 3270, - 3271, 3275, 3276, 3277, 3280, 3287, 3288, 3291, 3292, 3295, - 3296, 3297, 3300, 3301, 3304, 3305, 3308, 3309, 3312, 3313, - 3316, 3317, 3318, 3319, 3321, 3322, 3328, 3334, 3340, 3346, - 3347, 3363, 3364, 3368, 3369, 3373, 3381, 3385, 3386, 3389, - 3390, 3394, 3403, 3407, 3408, 3411, 3421, 3422, 3426, 3427, - 3430, 3431, 3434, 3435, 3436, 3437, 3446, 3447, 3450, 3451, - 3454, 3455, 3456, 3465, 3467, 3469, 3474, 3473, 3485, 3486, - 3489, 3490, 3494, 3495, 3498, 3499, 3502, 3503, 3504, 3505, - 3506, 3509, 3510, 3511, 3512, 3513, 3516, 3517, 3518, 3530, - 3531, 3534, 3535, 3538, 3539, 3543, 3544, 3545, 3548, 3549, - 3550, 3551, 3564, 3565, 3566, 3569, 3570, 3574, 3577, 3578, - 3581, 3582, 3593, 3594, 3597, 3598, 3601, 3602, 3610, 3609, - 3633, 3632, 3647, 3646, 3665, 3664, 3684, 3682, 3697, 3698, - 3700, 3701, 3702, 3703, 3704, 3707, 3715, 3716, 3720, 3725, - 3724, 3732, 3741, 3731, 3753, 3760, 3764, 3771, 3778, 3784, - 3790, 3796, 3803, 3822, 3843, 3848, 3852, 3859, 3860, 3863, - 3864, 3868, 3869, 3870, 3874, 3875, 3876, 3879, 3880, 3881, - 3882, 3890, 3889, 3900, 3908, 3907, 3917, 3927, 3936, 3937, - 3944, 3944, 3950, 3951, 3955, 3956, 3957, 3961, 3962, 3979, - 3980, 3985, 3984, 3995, 3994, 4005, 4004, 4014, 4015, 4016, - 4021, 4020, 4032, 4033, 4036, 4037, 4040, 4041, 4042, 4046, - 4045, 4058, 4057, 4074, 4075, 4078, 4079, 4082, 4083, 4084, - 4085, 4086, 4087, 4091, 4090, 4102, 4103, 4104, 4109, 4108, - 4114, 4121, 4126, 4134, 4135, 4138, 4150, 4159, 4160, 4163, - 4176, 4177, 4182, 4181, 4191, 4192, 4195, 4208, 4208, 4218, - 4219, 4228, 4229, 4238, 4247, 4249, 4252, 4274, 4278, 4277, - 4297, 4305, 4297, 4311, 4312, 4313, 4314, 4315, 4318, 4325, - 4332, 4334, 4345, 4346, 4349, 4350, 4356, 4357, 4358, 4359, - 4365, 4371, 4377, 4387, 4390, 4392, 4398, 4408, 4409, 4410, - 4423, 4443, 4450, 4457, 4458, 4461, 4462, 4463, 4464, 4465, - 4469, 4470, 4474, 4474, 4491, 4493, 4498, 4499, 4499, 4516, - 4518, 4523, 4524, 4527, 4529, 4531, 4533, 4535, 4536, 4537, - 4541, 4542, 4543, 4544, 4546, 4548, 4551, 4555, 4561, 4565, - 4571, 4575, 4583, 4585, 4591, 4594, 4596, 4598, 4599, 4601, - 4604, 4605, 4608, 4609, 4612, 4614, 4616, 4619, 4620, 4621, - 4623, 4625, 4628, 4629, 4630, 4631, 4632, 4633, 4636, 4637, - 4639, 4639, 4640, 4640, 4641, 4641, 4642, 4642, 4644, 4645, - 4646, 4647, 4648, 4649, 4652, 4653, 4657, 4661, 4662, 4669, - 4670, 4671, 4672, 4673, 4675, 4676, 4677, 4678, 4679, 4683, - 4684, 4689, 4694, 4698, 4699, 4703, 4704, 4708, 4715, 4717, - 4723, 4725, 4736, 4738, 4749, 4760, 4771, 4782, 4784, 4786, - 4788, 4790, 4792, 4794, 4796, 4798, 4800, 4802, 4804, 4806, - 4812, 4814, 4816, 4821, 4826, 4828, 4830, 4835, 4837, 4839, - 4841, 4843, 4848, 4849, 4851, 4853, 4855, 4857, 4859, 4861, - 4863, 4865, 4867, 4869, 4871, 4875, 4877, 4887, 4889, 4891, - 4893, 4895, 4898, 4907, 4912, 4917, 4919, 4921, 4923, 4925, - 4927, 4929, 4931, 4936, 4941, 4943, 4945, 4947, 4949, 4951, - 4953, 4959, 4961, 4963, 4965, 4967, 4969, 4971, 4973, 4975, - 4976, 4981, 4983, 4985, 4987, 4989, 4991, 4993, 4995, 4997, - 5004, 5011, 5013, 5015, 5017, 5019, 5021, 5023, 5025, 5027, - 5029, 5031, 5033, 5035, 5037, 5039, 5053, 5052, 5169, 5173, - 5178, 5180, 5182, 5184, 5186, 5188, 5193, 5195, 5197, 5199, - 5201, 5206, 5210, 5212, 5214, 5216, 5218, 5220, 5224, 5227, - 5230, 5232, 5234, 5236, 5238, 5240, 5242, 5245, 5248, 5250, - 5252, 5254, 5256, 5258, 5261, 5263, 5265, 5267, 5272, 5273, - 5274, 5278, 5279, 5283, 5283, 5289, 5293, 5300, 5331, 5333, - 5335, 5337, 5339, 5341, 5343, 5346, 5348, 5345, 5351, 5353, - 5360, 5362, 5364, 5366, 5368, 5370, 5372, 5374, 5376, 5379, - 5378, 5393, 5392, 5407, 5413, 5419, 5432, 5433, 5436, 5437, - 5442, 5445, 5457, 5456, 5472, 5473, 5474, 5475, 5476, 5477, - 5478, 5479, 5480, 5481, 5482, 5486, 5487, 5491, 5491, 5496, - 5497, 5500, 5501, 5504, 5504, 5509, 5510, 5513, 5514, 5517, - 5518, 5521, 5527, 5537, 5538, 5547, 5552, 5553, 5573, 5575, - 5579, 5577, 5594, 5592, 5610, 5608, 5615, 5624, 5622, 5640, - 5639, 5649, 5660, 5658, 5677, 5676, 5687, 5697, 5698, 5699, - 5704, 5704, 5723, 5721, 5740, 5762, 5810, 5809, 5832, 5850, - 5832, 5857, 5861, 5887, 5888, 5890, 5892, 5895, 5896, 5902, - 5909, 5918, 5917, 5924, 5925, 5929, 5933, 5937, 5943, 5951, - 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, - 5970, 5971, 5972, 5975, 5976, 5977, 5978, 5979, 5980, 5981, - 5982, 5983, 5987, 5988, 5989, 5990, 5993, 5995, 5996, 5999, - 6000, 6003, 6005, 6009, 6011, 6010, 6024, 6027, 6026, 6041, - 6047, 6060, 6062, 6065, 6067, 6071, 6072, 6085, 6103, 6107, - 6108, 6112, 6125, 6127, 6131, 6130, 6162, 6164, 6168, 6169, - 6170, 6175, 6181, 6185, 6186, 6190, 6194, 6201, 6208, 6217, - 6221, 6222, 6223, 6228, 6232, 6240, 6241, 6242, 6243, 6244, - 6245, 6249, 6250, 6251, 6252, 6253, 6256, 6259, 6258, 6287, - 6288, 6291, 6292, 6295, 6310, 6310, 6320, 6321, 6325, 6337, - 6370, 6369, 6382, 6381, 6390, 6402, 6413, 6412, 6429, 6436, - 6436, 6448, 6455, 6467, 6479, 6483, 6489, 6499, 6500, 6503, - 6511, 6512, 6516, 6517, 6525, 6534, 6524, 6544, 6551, 6543, - 6561, 6573, 6574, 6575, 6579, 6580, 6583, 6584, 6587, 6596, - 6597, 6598, 6600, 6599, 6609, 6610, 6613, 6614, 6615, 6615, - 6616, 6616, 6620, 6621, 6624, 6626, 6629, 6637, 6638, 6642, - 6643, 6648, 6647, 6660, 6661, 6664, 6669, 6677, 6678, 6681, - 6683, 6683, 6691, 6700, 6690, 6722, 6723, 6726, 6733, 6734, - 6737, 6746, 6747, 6753, 6752, 6766, 6765, 6774, 6773, 6781, - 6780, 6790, 6791, 6794, 6801, 6814, 6815, 6819, 6820, 6823, - 6824, 6825, 6828, 6838, 6840, 6842, 6844, 6847, 6848, 6851, - 6855, 6859, 6863, 6867, 6871, 6875, 6879, 6883, 6891, 6894, - 6903, 6902, 6916, 6924, 6933, 6942, 6951, 6961, 6960, 6963, - 6973, 6983, 6987, 6992, 6991, 6996, 7006, 7011, 7017, 7022, - 7027, 7029, 7031, 7033, 7035, 7037, 7045, 7054, 7056, 7058, - 7060, 7069, 7077, 7085, 7087, 7089, 7099, 7106, 7112, 7120, - 7128, 7132, 7136, 7143, 7150, 7160, 7170, 7180, 7193, 7207, - 7220, 7221, 7223, 7225, 7228, 7229, 7232, 7233, 7236, 7237, - 7240, 7241, 7244, 7245, 7247, 7249, 7252, 7264, 7263, 7278, - 7277, 7287, 7288, 7291, 7292, 7296, 7297, 7298, 7306, 7305, - 7317, 7318, 7321, 7321, 7322, 7323, 7324, 7325, 7326, 7327, - 7328, 7329, 7330, 7331, 7334, 7335, 7339, 7338, 7347, 7348, - 7351, 7352, 7353, 7357, 7356, 7366, 7370, 7374, 7386, 7386, - 7394, 7395, 7396, 7401, 7411, 7410, 7426, 7444, 7455, 7462, - 7472, 7443, 7477, 7486, 7487, 7490, 7491, 7503, 7507, 7508, - 7509, 7511, 7513, 7516, 7517, 7520, 7525, 7532, 7537, 7543, - 7545, 7548, 7549, 7552, 7557, 7563, 7565, 7572, 7573, 7574, - 7577, 7579, 7584, 7585, 7590, 7591, 7597, 7602, 7604, 7606, - 7611, 7613, 7624, 7637, 7658, 7659, 7660, 7669, 7670, 7671, - 7676, 7677, 7678, 7679, 7680, 7694, 7708, 7709, 7710, 7713, - 7714, 7715, 7716, 7724, 7739, 7740, 7743, 7749, 7760, 7763, - 7799, 7803, 7811, 7815, 7883, 7898, 7922, 7923, 7939, 7949, - 7952, 7953, 7954, 7958, 7962, 7963, 7988, 8000, 8013, 8025, - 8026, 8035, 8036, 8045, 8046, 8047, 8050, 8063, 8076, 8090, - 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, - 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, - 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, 8120, - 8121, 8122, 8123, 8124, 8125, 8126, 8136, 8137, 8138, 8139, - 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, - 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, - 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, - 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, - 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, - 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, - 8200, 8201, 8202, 8203, 8204, 8205, 8206, 8207, 8208, 8209, - 8210, 8211, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, - 8220, 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, 8229, - 8230, 8231, 8232, 8233, 8234, 8235, 8236, 8237, 8238, 8239, - 8240, 8241, 8242, 8243, 8244, 8245, 8246, 8247, 8248, 8249, - 8250, 8251, 8252, 8253, 8254, 8255, 8256, 8257, 8258, 8259, - 8260, 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, 8269, - 8270, 8271, 8272, 8273, 8274, 8275, 8276, 8277, 8278, 8279, - 8280, 8281, 8282, 8283, 8284, 8285, 8286, 8287, 8288, 8289, - 8290, 8291, 8292, 8293, 8294, 8295, 8296, 8297, 8298, 8299, - 8300, 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, 8309, - 8310, 8311, 8312, 8313, 8314, 8315, 8316, 8317, 8318, 8319, - 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, - 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, 8338, 8339, - 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8349, - 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8358, 8359, - 8360, 8361, 8368, 8367, 8381, 8382, 8385, 8386, 8389, 8389, - 8466, 8467, 8468, 8469, 8473, 8474, 8478, 8479, 8480, 8481, - 8485, 8486, 8487, 8488, 8492, 8493, 8496, 8576, 8589, 8593, - 8598, 8605, 8620, 8633, 8654, 8661, 8699, 8742, 8756, 8757, - 8758, 8759, 8763, 8764, 8771, 8780, 8781, 8782, 8783, 8784, - 8792, 8791, 8807, 8808, 8811, 8812, 8815, 8823, 8824, 8825, - 8826, 8831, 8830, 8851, 8863, 8876, 8875, 8894, 8895, 8899, - 8900, 8904, 8905, 8906, 8907, 8909, 8908, 8919, 8920, 8921, - 8922, 8923, 8929, 8934, 8941, 8954, 8966, 8973, 8978, 8986, - 8999, 9013, 9015, 9018, 9019, 9026, 9028, 9032, 9033, 9036, - 9036, 9037, 9037, 9038, 9038, 9039, 9039, 9040, 9041, 9042, - 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 9051, 9052, - 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, - 9067, 9068, 9072, 9073, 9077, 9087, 9097, 9110, 9125, 9138, - 9151, 9164, 9165, 9174, 9175, 9184, 9209, 9211, 9218, 9222, - 9225, 9226, 9229, 9250, 9251, 9255, 9259, 9263, 9270, 9271, - 9274, 9275, 9279, 9280, 9286, 9292, 9298, 9308, 9307, 9317, - 9318, 9322, 9323, 9324, 9328, 9329, 9330, 9334, 9335, 9339, - 9349, 9356, 9366, 9375, 9389, 9390, 9395, 9394, 9429, 9430, - 9431, 9435, 9435, 9459, 9460, 9464, 9465, 9466, 9470, 9475, - 9474, 9494, 9500, 9521, 9543, 9545, 9550, 9552, 9554, 9566, - 9576, 9589, 9591, 9593, 9598, 9603, 9605, 9607, 9613, 9614, - 9620, 9621, 9623, 9629, 9628, 9643, 9644, 9648, 9653, 9661, - 9661, 9679, 9688, 9701, 9702, 9704, 9706, 9719, 9717, 9794, - 9793, 9803, 9832, 9841, 9850, 9802, 9874, 9878, 9882, 9886, - 9890, 9894, 9900, 9907, 9914, 9923, 9924, 9928, 9929, 9930, - 9934, 9935, 9939, 9940, 9940, 9945, 9946 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE -/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "END_OF_INPUT", "ABORT_SYM", "ACTION", - "ADD", "ADDDATE_SYM", "AFTER_SYM", "AGAINST", "AGGREGATE_SYM", - "ALGORITHM_SYM", "ALL", "ALTER", "ANALYZE_SYM", "AND_AND_SYM", "AND_SYM", - "ANY_SYM", "AS", "ASC", "ASCII_SYM", "ASENSITIVE_SYM", "ATAN", - "AUTO_INC", "AVG_ROW_LENGTH", "AVG_SYM", "BACKUP_SYM", "BEFORE_SYM", - "BEGIN_SYM", "BENCHMARK_SYM", "BERKELEY_DB_SYM", "BIGINT", "BINARY", - "BINLOG_SYM", "BIN_NUM", "BIT_AND", "BIT_OR", "BIT_SYM", "BIT_XOR", - "BLOB_SYM", "BLOCK_SYM", "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", - "BY", "BYTE_SYM", "CACHE_SYM", "CALL_SYM", "CASCADE", "CASCADED", - "CAST_SYM", "CHAIN_SYM", "CHANGE", "CHANGED", "CHARSET", "CHAR_SYM", - "CHECKSUM_SYM", "CHECK_SYM", "CIPHER_SYM", "CLIENT_SYM", "CLOSE_SYM", - "COALESCE", "CODE_SYM", "COLLATE_SYM", "COLLATION_SYM", "COLUMNS", - "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM", - "COMPACT_SYM", "COMPRESSED_SYM", "CONCAT", "CONCAT_WS", "CONCURRENT", - "CONDITION_SYM", "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT", - "CONTAINS_SYM", "CONTEXT_SYM", "CONTINUE_SYM", "CONVERT_SYM", - "CONVERT_TZ_SYM", "COUNT_SYM", "CPU_SYM", "CREATE", "CROSS", "CUBE_SYM", - "CURDATE", "CURRENT_USER", "CURSOR_SYM", "CURTIME", "DATABASE", - "DATABASES", "DATA_SYM", "DATETIME", "DATE_ADD_INTERVAL", - "DATE_SUB_INTERVAL", "DATE_SYM", "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", - "DAY_MINUTE_SYM", "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", - "DECIMAL_NUM", "DECIMAL_SYM", "DECLARE_SYM", "DECODE_SYM", "DEFAULT", - "DEFINER_SYM", "DELAYED_SYM", "DELAY_KEY_WRITE_SYM", "DELETE_SYM", - "DESC", "DESCRIBE", "DES_DECRYPT_SYM", "DES_ENCRYPT_SYM", "DES_KEY_FILE", - "DETERMINISTIC_SYM", "DIRECTORY_SYM", "DISABLE_SYM", "DISCARD", - "DISTINCT", "DIV_SYM", "DOUBLE_SYM", "DO_SYM", "DROP", "DUAL_SYM", - "DUMPFILE", "DUPLICATE_SYM", "DYNAMIC_SYM", "EACH_SYM", "ELSEIF_SYM", - "ELT_FUNC", "ENABLE_SYM", "ENCLOSED", "ENCODE_SYM", "ENCRYPT", "END", - "ENGINES_SYM", "ENGINE_SYM", "ENUM", "EQ", "EQUAL_SYM", "ERRORS", - "ESCAPED", "ESCAPE_SYM", "EVENTS_SYM", "EXECUTE_SYM", "EXISTS", - "EXIT_SYM", "EXPANSION_SYM", "EXPORT_SET", "EXTENDED_SYM", "EXTRACT_SYM", - "FALSE_SYM", "FAST_SYM", "FAULTS_SYM", "FETCH_SYM", "FIELD_FUNC", - "FILE_SYM", "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FLOAT_SYM", - "FLUSH_SYM", "FORCE_SYM", "FOREIGN", "FORMAT_SYM", "FOR_SYM", - "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FROM_UNIXTIME", "FULL", - "FULLTEXT_SYM", "FUNCTION_SYM", "FUNC_ARG0", "FUNC_ARG1", "FUNC_ARG2", - "FUNC_ARG3", "GE", "GEOMCOLLFROMTEXT", "GEOMETRYCOLLECTION", - "GEOMETRY_SYM", "GEOMFROMTEXT", "GEOMFROMWKB", "GET_FORMAT", - "GLOBAL_SYM", "GRANT", "GRANTS", "GREATEST_SYM", "GROUP", - "GROUP_CONCAT_SYM", "GROUP_UNIQUE_USERS", "GT_SYM", "HANDLER_SYM", - "HASH_SYM", "HAVING", "HELP_SYM", "HEX_NUM", "HIGH_PRIORITY", - "HOSTS_SYM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM", - "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENT_QUOTED", - "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM", "INFILE", - "INNER_SYM", "INNOBASE_SYM", "INOUT_SYM", "INSENSITIVE_SYM", "INSERT", - "INSERT_METHOD", "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER_SYM", - "IN_SYM", "IO_SYM", "IPC_SYM", "IS", "ISOLATION", "ISSUER_SYM", - "ITERATE_SYM", "JOIN_SYM", "KEYS", "KEY_SYM", "KILL_SYM", "LABEL_SYM", - "LANGUAGE_SYM", "LAST_INSERT_ID", "LAST_SYM", "LE", "LEADING", - "LEAST_SYM", "LEAVES", "LEAVE_SYM", "LEFT", "LEVEL_SYM", "LEX_HOSTNAME", - "LIKE", "LIMIT", "LINEFROMTEXT", "LINES", "LINESTRING", "LOAD", - "LOCAL_SYM", "LOCATE", "LOCATOR_SYM", "LOCKS_SYM", "LOCK_SYM", - "LOGS_SYM", "LOG_SYM", "LONGBLOB", "LONGTEXT", "LONG_NUM", "LONG_SYM", - "LOOP_SYM", "LOW_PRIORITY", "LT", "MAKE_SET_SYM", - "MASTER_CONNECT_RETRY_SYM", "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM", - "MASTER_LOG_POS_SYM", "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM", - "MASTER_POS_WAIT", "MASTER_SERVER_ID_SYM", "MASTER_SSL_CAPATH_SYM", - "MASTER_SSL_CA_SYM", "MASTER_SSL_CERT_SYM", "MASTER_SSL_CIPHER_SYM", - "MASTER_SSL_KEY_SYM", "MASTER_SSL_SYM", "MASTER_SYM", "MASTER_USER_SYM", - "MATCH", "MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", "MAX_ROWS", - "MAX_SYM", "MAX_UPDATES_PER_HOUR", "MAX_USER_CONNECTIONS_SYM", - "MEDIUMBLOB", "MEDIUMINT", "MEDIUMTEXT", "MEDIUM_SYM", "MEMORY_SYM", - "MERGE_SYM", "MICROSECOND_SYM", "MIGRATE_SYM", "MINUTE_MICROSECOND_SYM", - "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_ROWS", "MIN_SYM", - "MLINEFROMTEXT", "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM", - "MONTH_SYM", "MPOINTFROMTEXT", "MPOLYFROMTEXT", "MULTILINESTRING", - "MULTIPOINT", "MULTIPOLYGON", "MUTEX_SYM", "NAMES_SYM", "NAME_SYM", - "NATIONAL_SYM", "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM", - "NE", "NEW_SYM", "NEXT_SYM", "NONE_SYM", "NOT2_SYM", "NOT_SYM", - "NOW_SYM", "NO_SYM", "NO_WRITE_TO_BINLOG", "NULL_SYM", "NUM", - "NUMERIC_SYM", "NVARCHAR_SYM", "OFFSET_SYM", "OJ_SYM", "OLD_PASSWORD", - "ON", "ONE_SHOT_SYM", "ONE_SYM", "OPEN_SYM", "OPTIMIZE", "OPTION", - "OPTIONALLY", "OR2_SYM", "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER", - "OUTFILE", "OUT_SYM", "PACK_KEYS_SYM", "PAGE_SYM", "PARTIAL", "PASSWORD", - "PARAM_MARKER", "PHASE_SYM", "POINTFROMTEXT", "POINT_SYM", - "POLYFROMTEXT", "POLYGON", "POSITION_SYM", "PRECISION", "PREPARE_SYM", - "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", "PROCEDURE", "PROCESS", - "PROCESSLIST_SYM", "PROFILE_SYM", "PROFILES_SYM", "PURGE", "QUARTER_SYM", - "QUERY_SYM", "QUICK", "RAID_0_SYM", "RAID_CHUNKS", "RAID_CHUNKSIZE", - "RAID_STRIPED_SYM", "RAID_TYPE", "RAND", "READS_SYM", "READ_SYM", "REAL", - "RECOVER_SYM", "REDUNDANT_SYM", "REFERENCES", "REGEXP", - "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM", "RELAY_THREAD", "RELEASE_SYM", - "RELOAD", "RENAME", "REPAIR", "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE", - "REPLICATION", "REQUIRE_SYM", "RESET_SYM", "RESOURCES", "RESTORE_SYM", - "RESTRICT", "RESUME_SYM", "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT", - "ROLLBACK_SYM", "ROLLUP_SYM", "ROUND", "ROUTINE_SYM", "ROWS_SYM", - "ROW_COUNT_SYM", "ROW_FORMAT_SYM", "ROW_SYM", "RTREE_SYM", - "SAVEPOINT_SYM", "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM", - "SELECT_SYM", "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM", - "SERIAL_SYM", "SESSION_SYM", "SET", "SET_VAR", "SHARE_SYM", "SHIFT_LEFT", - "SHIFT_RIGHT", "SHOW", "SHUTDOWN", "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", - "SMALLINT", "SNAPSHOT_SYM", "SOUNDS_SYM", "SOURCE_SYM", "SPATIAL_SYM", - "SPECIFIC_SYM", "SQLEXCEPTION_SYM", "SQLSTATE_SYM", "SQLWARNING_SYM", - "SQL_BIG_RESULT", "SQL_BUFFER_RESULT", "SQL_CACHE_SYM", - "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM", "SQL_SMALL_RESULT", "SQL_SYM", - "SQL_THREAD", "SSL_SYM", "STARTING", "START_SYM", "STATUS_SYM", - "STD_SYM", "STDDEV_SAMP_SYM", "STOP_SYM", "STORAGE_SYM", "STRAIGHT_JOIN", - "STRING_SYM", "SUBDATE_SYM", "SUBJECT_SYM", "SUBSTRING", - "SUBSTRING_INDEX", "SUM_SYM", "SUPER_SYM", "SUSPEND_SYM", "SWAPS_SYM", - "SWITCHES_SYM", "SYSDATE", "TABLES", "TABLESPACE", "TABLE_SYM", - "TEMPORARY", "TEMPTABLE_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM", - "TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIME_SYM", "TINYBLOB", - "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING", "TRANSACTION_SYM", - "TRIGGER_SYM", "TRIGGERS_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM", - "TYPES_SYM", "TYPE_SYM", "UDF_RETURNS_SYM", "UDF_SONAME_SYM", - "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDEFINED_SYM", - "UNDERSCORE_CHARSET", "UNDO_SYM", "UNICODE_SYM", "UNION_SYM", - "UNIQUE_SYM", "UNIQUE_USERS", "UNIX_TIMESTAMP", "UNKNOWN_SYM", - "UNLOCK_SYM", "UNSIGNED", "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM", - "USAGE", "USER", "USE_FRM", "USE_SYM", "USING", "UTC_DATE_SYM", - "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM", "VAR_SAMP_SYM", "VALUES", - "VALUE_SYM", "VARBINARY", "VARCHAR", "VARIABLES", "VARIANCE_SYM", - "VARYING", "VIEW_SYM", "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE", - "WHILE_SYM", "WITH", "WORK_SYM", "WRITE_SYM", "X509_SYM", "XA_SYM", - "XOR", "YEARWEEK", "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL", - "TABLE_REF_PRIORITY", "ELSE", "THEN_SYM", "CASE_SYM", "BETWEEN_SYM", - "'|'", "'&'", "'-'", "'+'", "'*'", "'/'", "'%'", "'^'", "'~'", "NEG", - "'('", "')'", "','", "'!'", "'{'", "'}'", "'@'", "'.'", "';'", "':'", - "$accept", "query", "verb_clause", "statement", "deallocate", - "deallocate_or_drop", "prepare", "prepare_src", "execute", "@1", - "execute_using", "execute_var_list", "execute_var_ident", "help", "@2", - "change", "@3", "master_defs", "master_def", "master_file_def", "create", - "@4", "@5", "@6", "@7", "clear_privileges", "sp_name", - "create_function_tail", "@8", "@9", "@10", "@11", "@12", "sp_a_chistics", - "sp_c_chistics", "sp_chistic", "sp_c_chistic", "sp_suid", "call", "@13", - "opt_sp_cparam_list", "opt_sp_cparams", "sp_cparams", "sp_fdparam_list", - "sp_fdparams", "sp_init_param", "sp_fdparam", "sp_pdparam_list", - "sp_pdparams", "sp_pdparam", "sp_opt_inout", "sp_proc_stmts", - "sp_proc_stmts1", "sp_decls", "sp_decl", "@14", "@15", "sp_cursor_stmt", - "@16", "sp_handler_type", "sp_hcond_list", "sp_hcond_element", "sp_cond", - "opt_value", "sp_hcond", "sp_decl_idents", "sp_opt_default", - "sp_proc_stmt", "@17", "@18", "@19", "@20", "@21", "sp_opt_fetch_noise", - "sp_fetch_list", "sp_if", "@22", "@23", "@24", "sp_elseifs", - "case_stmt_specification", "simple_case_stmt", "@25", "@26", - "searched_case_stmt", "@27", "simple_when_clause_list", - "searched_when_clause_list", "simple_when_clause", "@28", "@29", - "searched_when_clause", "@30", "@31", "else_clause_opt", - "sp_labeled_control", "@32", "sp_opt_label", "sp_unlabeled_control", - "@33", "@34", "@35", "@36", "trg_action_time", "trg_event", "create2", - "create2a", "@37", "create3", "@38", "@39", "create_select", "@40", - "@41", "opt_as", "opt_create_database_options", - "create_database_options", "create_database_option", "opt_table_options", - "table_options", "table_option", "opt_if_not_exists", - "opt_create_table_options", "create_table_options_space_separated", - "create_table_options", "create_table_option", "default_charset", - "default_collation", "storage_engines", "row_types", "raid_types", - "merge_insert_types", "opt_select_from", "udf_func_type", "udf_type", - "field_list", "field_list_item", "column_def", "key_def", - "opt_check_constraint", "check_constraint", "opt_constraint", - "constraint", "field_spec", "@42", "type", "@43", "@44", "spatial_type", - "char", "nchar", "varchar", "nvarchar", "int_type", "real_type", - "float_options", "precision", "field_options", "field_opt_list", - "field_option", "opt_len", "opt_precision", "opt_attribute", - "opt_attribute_list", "attribute", "now_or_signed_literal", "charset", - "charset_name", "charset_name_or_default", "opt_load_data_charset", - "old_or_new_charset_name", "old_or_new_charset_name_or_default", - "collation_name", "opt_collate", "collation_name_or_default", - "opt_default", "opt_binary", "opt_bin_mod", "opt_bin_charset", - "opt_primary", "references", "@45", "opt_ref_list", "ref_list", - "opt_on_delete", "opt_on_delete_list", "opt_on_delete_item", - "delete_option", "key_type", "constraint_key_type", "key_or_index", - "opt_key_or_index", "keys_or_index", "opt_unique_or_fulltext", "key_alg", - "opt_btree_or_rtree", "key_list", "key_part", "opt_ident", - "opt_component", "string_list", "alter", "@46", "@47", "@48", "@49", - "@50", "ident_or_empty", "alter_list", "add_column", "alter_list_item", - "@51", "@52", "@53", "opt_column", "opt_ignore", "opt_restrict", - "opt_place", "opt_to", "slave", "@54", "@55", "start", - "start_transaction_opts", "slave_thread_opts", "@56", - "slave_thread_opt_list", "slave_thread_opt", "slave_until", - "slave_until_opts", "restore", "@57", "backup", "@58", "checksum", "@59", - "opt_checksum_type", "repair", "@60", "opt_mi_repair_type", - "mi_repair_types", "mi_repair_type", "analyze", "@61", "check", "@62", - "opt_mi_check_type", "mi_check_types", "mi_check_type", "optimize", - "@63", "opt_no_write_to_binlog", "rename", "@64", "rename_list", - "table_to_table_list", "table_to_table", "keycache", "keycache_list", - "assign_to_keycache", "key_cache_name", "preload", "@65", "preload_list", - "preload_keys", "cache_keys_spec", "@66", "cache_key_list_or_empty", - "opt_ignore_leaves", "select", "select_init", "select_paren", - "select_init2", "@67", "select_part2", "@68", "@69", "select_into", - "select_from", "select_options", "select_option_list", "select_option", - "select_lock_type", "select_item_list", "select_item", "remember_name", - "remember_end", "select_item2", "select_alias", "optional_braces", - "expr", "@70", "bool_or_expr", "bool_term", "@71", "bool_and_expr", - "bool_factor", "bool_test", "bool_pri", "predicate", "bit_expr", - "bit_term", "bit_factor", "value_expr", "term", "factor", "or", "and", - "not", "not2", "comp_op", "all_or_any", "interval_expr", "simple_expr", - "@72", "geometry_function", "fulltext_options", "udf_expr_list", - "udf_expr_list2", "@73", "udf_expr_list3", "udf_expr", "sum_expr", "@74", - "@75", "@76", "variable", "@77", "variable_aux", "opt_distinct", - "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "@78", - "cast_type", "opt_expr_list", "expr_list", "@79", "expr_list2", - "ident_list_arg", "ident_list", "@80", "ident_list2", "opt_expr", - "opt_else", "when_list", "table_ref", "join_table_list", - "derived_table_list", "join_table", "@81", "@82", "@83", "@84", "@85", - "@86", "@87", "normal_join", "table_factor", "@88", "@89", - "select_derived", "@90", "select_derived2", "@91", "@92", - "get_select_lex", "select_derived_init", "opt_outer", "opt_for_join", - "opt_key_definition", "key_usage_list", "@93", "key_list_or_empty", - "key_usage_list2", "using_list", "interval", "interval_time_st", - "date_time_type", "table_alias", "opt_table_alias", "opt_all", - "where_clause", "@94", "having_clause", "@95", "opt_escape", - "group_clause", "group_list", "olap_opt", "alter_order_clause", - "alter_order_list", "alter_order_item", "opt_order_clause", - "order_clause", "@96", "order_list", "order_dir", - "opt_limit_clause_init", "opt_limit_clause", "limit_clause", - "limit_options", "limit_option", "delete_limit_clause", "ulong_num", - "ulonglong_num", "procedure_clause", "@97", "procedure_list", - "procedure_list2", "procedure_item", "select_var_list_init", "@98", - "select_var_list", "select_var_ident", "into", "@99", "into_destination", - "@100", "do", "@101", "drop", "@102", "table_list", "table_name", - "if_exists", "opt_temporary", "insert", "@103", "@104", "replace", - "@105", "@106", "insert_lock_option", "replace_lock_option", "insert2", - "insert_table", "insert_field_spec", "@107", "fields", "insert_values", - "@108", "@109", "values_list", "ident_eq_list", "ident_eq_value", - "equal", "opt_equal", "no_braces", "@110", "opt_values", "values", - "expr_or_default", "opt_insert_update", "@111", "update", "@112", "@113", - "update_list", "update_elem", "insert_update_list", "insert_update_elem", - "opt_low_priority", "delete", "@114", "single_multi", "@115", "@116", - "@117", "table_wild_list", "table_wild_one", "opt_wild", - "opt_delete_options", "opt_delete_option", "truncate", "opt_table_sym", - "opt_profile_defs", "profile_defs", "profile_def", "opt_profile_args", - "show", "@118", "show_param", "@119", "@120", "show_engine_param", - "master_or_binary", "opt_storage", "opt_db", "opt_full", "from_or_in", - "binlog_in", "binlog_from", "wild_and_where", "describe", "@121", "@122", - "describe_command", "opt_extended_describe", "opt_describe_column", - "flush", "@123", "flush_options", "flush_option", "@124", - "opt_table_list", "reset", "@125", "reset_options", "reset_option", - "purge", "@126", "purge_options", "purge_option", "kill", "@127", - "kill_option", "use", "load", "@128", "load_data", "@129", "@130", - "@131", "@132", "opt_local", "load_data_lock", "opt_duplicate", - "opt_field_term", "field_term_list", "field_term", "opt_line_term", - "line_term_list", "line_term", "opt_ignore_lines", - "opt_field_or_var_spec", "fields_or_vars", "field_or_var", - "opt_load_data_set_spec", "text_literal", "text_string", "param_marker", - "signed_literal", "literal", "NUM_literal", "insert_ident", "table_wild", - "order_ident", "simple_ident", "simple_ident_nospvar", "simple_ident_q", - "field_ident", "table_ident", "table_ident_nodb", "IDENT_sys", - "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem", - "ident", "label_ident", "ident_or_text", "user", "keyword", "keyword_sp", - "set", "@133", "opt_option", "option_value_list", "option_type_value", - "@134", "option_type", "option_type2", "opt_var_type", - "opt_var_ident_type", "ext_option_value", "sys_option_value", - "option_value", "internal_variable_name", "isolation_types", - "text_or_password", "set_expr_or_default", "lock", "@135", - "table_or_tables", "table_lock_list", "table_lock", "lock_option", - "unlock", "@136", "handler", "@137", "handler_read_or_scan", - "handler_scan_function", "handler_rkey_function", "@138", - "handler_rkey_mode", "revoke", "revoke_command", "grant", - "grant_command", "opt_table", "grant_privileges", "opt_privileges", - "object_privilege_list", "object_privilege", "@139", "@140", "@141", - "@142", "opt_and", "require_list", "require_list_element", "grant_ident", - "user_list", "grant_list", "grant_user", "opt_column_list", - "column_list", "column_list_id", "require_clause", "grant_options", - "grant_option_list", "grant_option", "begin", "@143", "opt_work", - "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback", - "savepoint", "release", "union_clause", "union_list", "@144", - "union_opt", "union_order_or_limit", "@145", "order_or_limit", - "union_option", "subselect", "@146", "subselect_init", "subselect_start", - "subselect_end", "view_or_trigger_or_sp", "view_or_trigger_or_sp_tail", - "definer", "view_replace_or_algorithm", "view_replace", "view_algorithm", - "view_algorithm_opt", "view_suid", "view_tail", "@147", "view_list_opt", - "view_list", "view_select", "@148", "view_select_aux", - "view_check_option", "trigger_tail", "@149", "sp_tail", "@150", "@151", - "@152", "@153", "@154", "xa", "xid", "begin_or_start", - "opt_join_or_resume", "opt_one_phase", "opt_suspend", "@155", - "opt_migrate", 0 -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const unsigned short int yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, - 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, - 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, - 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, - 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, - 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, - 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, - 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, - 815, 816, 817, 124, 38, 45, 43, 42, 47, 37, - 94, 126, 818, 40, 41, 44, 33, 123, 125, 64, - 46, 59, 58 -}; -# endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const unsigned short int yyr1[] = -{ - 0, 583, 584, 584, 585, 585, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, - 586, 586, 586, 587, 588, 588, 589, 590, 590, 592, - 591, 593, 593, 594, 594, 595, 597, 596, 599, 598, - 600, 600, 601, 601, 601, 601, 601, 601, 601, 601, - 601, 601, 601, 601, 602, 602, 602, 602, 604, 603, - 605, 603, 606, 603, 607, 603, 603, 608, 609, 609, - 610, 611, 612, 613, 614, 615, 610, 616, 616, 617, - 617, 618, 618, 618, 618, 618, 618, 618, 619, 619, - 619, 620, 620, 622, 621, 623, 623, 624, 624, 625, - 625, 626, 626, 627, 627, 628, 629, 630, 630, 631, - 631, 632, 633, 633, 633, 633, 634, 634, 635, 635, - 636, 636, 638, 637, 637, 639, 637, 637, 641, 640, - 642, 642, 643, 643, 644, 645, 645, 646, 646, 647, - 647, 647, 647, 647, 648, 648, 649, 649, 651, 650, - 652, 650, 653, 650, 650, 650, 654, 650, 650, 650, - 650, 655, 650, 650, 656, 656, 656, 657, 657, 659, - 660, 661, 658, 662, 662, 662, 663, 663, 665, 666, - 664, 668, 667, 669, 669, 670, 670, 672, 673, 671, - 675, 676, 674, 677, 677, 679, 678, 680, 680, 682, - 681, 681, 683, 684, 681, 685, 681, 686, 686, 687, - 687, 687, 688, 688, 688, 688, 689, 690, 689, 691, - 692, 691, 693, 691, 695, 696, 694, 697, 697, 698, - 698, 699, 699, 700, 700, 701, 701, 702, 702, 703, - 704, 704, 705, 705, 706, 706, 707, 707, 707, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 709, 710, 711, 712, 712, 712, 712, 712, - 712, 713, 713, 713, 714, 714, 714, 715, 715, 716, - 716, 717, 717, 717, 717, 718, 718, 719, 719, 720, - 720, 721, 721, 721, 721, 721, 722, 722, 723, 724, - 724, 725, 727, 726, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, - 728, 728, 728, 728, 728, 728, 728, 728, 728, 729, - 728, 730, 728, 728, 728, 731, 731, 731, 731, 731, - 731, 731, 731, 732, 733, 733, 734, 734, 735, 735, - 735, 735, 735, 736, 736, 736, 736, 736, 737, 737, - 737, 738, 738, 738, 739, 740, 740, 741, 741, 742, - 742, 742, 743, 743, 744, 744, 745, 745, 746, 746, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, - 747, 748, 748, 749, 749, 750, 750, 751, 751, 752, - 752, 753, 753, 754, 754, 755, 756, 756, 757, 757, - 758, 758, 759, 759, 759, 759, 759, 759, 760, 760, - 761, 761, 761, 761, 762, 762, 764, 763, 765, 765, - 766, 766, 767, 767, 768, 768, 769, 769, 769, 769, - 769, 770, 770, 770, 770, 770, 771, 771, 771, 772, - 772, 773, 773, 774, 774, 775, 775, 775, 776, 776, - 776, 776, 777, 777, 777, 778, 778, 778, 779, 779, - 780, 780, 781, 781, 782, 782, 783, 783, 785, 784, - 786, 784, 787, 784, 788, 784, 789, 784, 790, 790, - 791, 791, 791, 791, 791, 792, 793, 793, 793, 794, - 793, 795, 796, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 793, 793, 793, 793, 797, 797, 798, - 798, 799, 799, 799, 800, 800, 800, 801, 801, 801, - 801, 803, 802, 802, 804, 802, 802, 805, 806, 806, - 808, 807, 809, 809, 810, 810, 810, 811, 811, 812, - 812, 814, 813, 816, 815, 818, 817, 819, 819, 819, - 821, 820, 822, 822, 823, 823, 824, 824, 824, 826, - 825, 828, 827, 829, 829, 830, 830, 831, 831, 831, - 831, 831, 831, 833, 832, 834, 834, 834, 836, 835, - 835, 837, 837, 838, 838, 839, 840, 841, 841, 842, - 843, 843, 845, 844, 846, 846, 847, 849, 848, 850, - 850, 851, 851, 852, 853, 853, 854, 854, 856, 855, - 858, 859, 857, 860, 860, 860, 860, 860, 861, 861, - 862, 862, 863, 863, 864, 864, 864, 864, 864, 864, - 864, 864, 864, 864, 865, 865, 865, 866, 866, 866, - 867, 868, 869, 870, 870, 871, 871, 871, 871, 871, - 872, 872, 874, 873, 875, 875, 876, 877, 876, 878, - 878, 879, 879, 880, 880, 880, 880, 880, 880, 880, - 881, 881, 881, 881, 881, 881, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 883, 883, 884, 884, 885, 885, 885, 886, 886, 886, - 886, 886, 887, 887, 887, 887, 887, 887, 888, 888, - 889, 889, 890, 890, 891, 891, 892, 892, 893, 893, - 893, 893, 893, 893, 894, 894, 895, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 897, 896, 896, 896, - 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, - 896, 896, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 899, 899, - 899, 900, 900, 902, 901, 903, 903, 904, 905, 905, - 905, 905, 905, 905, 905, 906, 907, 905, 905, 905, - 905, 905, 905, 905, 905, 905, 905, 905, 905, 908, - 905, 910, 909, 911, 911, 911, 912, 912, 913, 913, - 914, 914, 916, 915, 917, 917, 917, 917, 917, 917, - 917, 917, 917, 917, 917, 918, 918, 920, 919, 921, - 921, 922, 922, 924, 923, 925, 925, 926, 926, 927, - 927, 928, 928, 929, 929, 930, 931, 931, 932, 932, - 933, 932, 934, 932, 935, 932, 932, 936, 932, 937, - 932, 932, 938, 932, 939, 932, 932, 940, 940, 940, - 942, 941, 943, 941, 941, 941, 945, 944, 947, 948, - 946, 949, 950, 951, 951, 952, 952, 953, 953, 953, - 953, 955, 954, 956, 956, 957, 957, 957, 958, 958, - 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, - 959, 959, 959, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 961, 961, 961, 961, 962, 962, 962, 963, - 963, 964, 964, 965, 966, 965, 967, 968, 967, 969, - 969, 970, 970, 971, 971, 972, 972, 972, 973, 974, - 974, 975, 976, 976, 978, 977, 979, 979, 980, 980, - 980, 981, 981, 982, 982, 983, 984, 984, 984, 985, - 985, 985, 985, 986, 986, 987, 987, 987, 987, 987, - 987, 988, 988, 988, 988, 988, 989, 990, 989, 991, - 991, 992, 992, 993, 995, 994, 996, 996, 997, 997, - 999, 998, 1001, 1000, 1000, 1000, 1003, 1002, 1004, 1005, - 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1006, 1006, 1007, - 1008, 1008, 1009, 1009, 1011, 1012, 1010, 1014, 1015, 1013, - 1016, 1016, 1016, 1016, 1017, 1017, 1018, 1018, 1019, 1020, - 1020, 1020, 1021, 1020, 1022, 1022, 1023, 1023, 1024, 1023, - 1025, 1023, 1026, 1026, 1027, 1027, 1028, 1029, 1029, 1030, - 1030, 1032, 1031, 1033, 1033, 1034, 1034, 1035, 1035, 1036, - 1037, 1036, 1039, 1040, 1038, 1041, 1041, 1042, 1043, 1043, - 1044, 1045, 1045, 1047, 1046, 1049, 1048, 1050, 1048, 1051, - 1048, 1052, 1052, 1053, 1053, 1054, 1054, 1055, 1055, 1056, - 1056, 1056, 1057, 1058, 1058, 1059, 1059, 1060, 1060, 1061, - 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1062, 1062, - 1064, 1063, 1065, 1065, 1065, 1065, 1065, 1066, 1065, 1065, - 1065, 1065, 1065, 1067, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, - 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1068, 1068, - 1069, 1069, 1070, 1070, 1071, 1071, 1072, 1072, 1073, 1073, - 1074, 1074, 1075, 1075, 1076, 1076, 1076, 1078, 1077, 1079, - 1077, 1080, 1080, 1081, 1081, 1082, 1082, 1082, 1084, 1083, - 1085, 1085, 1087, 1086, 1086, 1086, 1086, 1086, 1086, 1086, - 1086, 1086, 1086, 1086, 1088, 1088, 1090, 1089, 1091, 1091, - 1092, 1092, 1092, 1094, 1093, 1095, 1096, 1096, 1098, 1097, - 1099, 1099, 1099, 1100, 1102, 1101, 1101, 1104, 1105, 1106, - 1107, 1103, 1103, 1108, 1108, 1109, 1109, 1109, 1110, 1110, - 1110, 1111, 1111, 1112, 1112, 1113, 1113, 1113, 1113, 1114, - 1114, 1115, 1115, 1116, 1116, 1117, 1117, 1118, 1118, 1118, - 1119, 1119, 1120, 1120, 1121, 1121, 1122, 1122, 1122, 1122, - 1123, 1123, 1123, 1124, 1125, 1125, 1125, 1126, 1126, 1126, - 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1127, - 1127, 1127, 1127, 1127, 1128, 1128, 1129, 1129, 1130, 1131, - 1131, 1132, 1132, 1133, 1133, 1133, 1134, 1134, 1134, 1134, - 1135, 1135, 1135, 1136, 1137, 1137, 1138, 1139, 1140, 1141, - 1141, 1142, 1142, 1143, 1143, 1143, 1144, 1144, 1144, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, - 1145, 1145, 1145, 1145, 1145, 1145, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1148, 1147, 1149, 1149, 1150, 1150, 1152, 1151, - 1153, 1153, 1153, 1153, 1154, 1154, 1155, 1155, 1155, 1155, - 1156, 1156, 1156, 1156, 1157, 1157, 1158, 1158, 1159, 1159, - 1159, 1159, 1159, 1159, 1159, 1160, 1160, 1160, 1161, 1161, - 1161, 1161, 1162, 1162, 1162, 1163, 1163, 1163, 1163, 1163, - 1165, 1164, 1166, 1166, 1167, 1167, 1168, 1169, 1169, 1169, - 1169, 1171, 1170, 1172, 1172, 1173, 1172, 1174, 1174, 1175, - 1175, 1176, 1176, 1176, 1176, 1177, 1176, 1178, 1178, 1178, - 1178, 1178, 1179, 1180, 1180, 1180, 1180, 1181, 1182, 1182, - 1182, 1183, 1183, 1184, 1184, 1185, 1185, 1186, 1186, 1188, - 1187, 1189, 1187, 1190, 1187, 1191, 1187, 1187, 1187, 1187, - 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, - 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, - 1192, 1192, 1193, 1193, 1194, 1194, 1194, 1195, 1195, 1195, - 1195, 1196, 1196, 1197, 1197, 1198, 1198, 1198, 1199, 1199, - 1200, 1200, 1201, 1202, 1202, 1202, 1202, 1202, 1203, 1203, - 1204, 1204, 1205, 1205, 1205, 1205, 1205, 1207, 1206, 1208, - 1208, 1209, 1209, 1209, 1210, 1210, 1210, 1211, 1211, 1212, - 1213, 1213, 1214, 1215, 1216, 1216, 1218, 1217, 1219, 1219, - 1219, 1221, 1220, 1222, 1222, 1223, 1223, 1223, 1224, 1225, - 1224, 1226, 1227, 1228, 1229, 1229, 1230, 1230, 1230, 1231, - 1231, 1232, 1232, 1232, 1233, 1234, 1234, 1234, 1235, 1235, - 1236, 1236, 1236, 1238, 1237, 1239, 1239, 1240, 1240, 1242, - 1241, 1243, 1243, 1244, 1244, 1244, 1244, 1246, 1245, 1248, - 1247, 1249, 1250, 1251, 1252, 1247, 1253, 1253, 1253, 1253, - 1253, 1253, 1254, 1254, 1254, 1255, 1255, 1256, 1256, 1256, - 1257, 1257, 1258, 1259, 1258, 1260, 1260 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const unsigned char yyr2[] = -{ - 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 4, 1, 2, 0, - 4, 0, 2, 3, 1, 2, 0, 3, 0, 5, - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 1, 3, 3, 3, 3, 0, 7, - 0, 11, 0, 6, 0, 3, 4, 0, 3, 1, - 4, 0, 0, 0, 0, 0, 12, 0, 2, 0, - 2, 2, 2, 2, 2, 3, 3, 1, 1, 1, - 2, 3, 3, 0, 4, 0, 3, 0, 1, 3, - 1, 0, 1, 3, 1, 0, 3, 0, 1, 3, - 1, 4, 0, 1, 1, 1, 0, 3, 2, 3, - 0, 3, 0, 5, 5, 0, 7, 5, 0, 2, - 1, 1, 1, 3, 1, 1, 3, 0, 1, 1, - 1, 1, 2, 1, 1, 3, 0, 2, 0, 2, - 0, 3, 0, 5, 1, 1, 0, 2, 2, 2, - 2, 0, 6, 2, 0, 2, 1, 1, 3, 0, - 0, 0, 7, 0, 2, 2, 1, 1, 0, 0, - 8, 0, 6, 1, 2, 1, 2, 0, 0, 6, - 0, 0, 6, 0, 2, 0, 5, 0, 1, 0, - 5, 4, 0, 0, 8, 0, 7, 1, 1, 1, - 1, 1, 2, 2, 2, 4, 4, 0, 4, 0, - 0, 5, 0, 7, 0, 0, 6, 0, 1, 0, - 1, 1, 2, 1, 1, 0, 1, 1, 2, 1, - 0, 3, 0, 1, 1, 2, 1, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 5, 1, 1, 3, 4, - 4, 3, 4, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 3, 1, 1, 2, - 2, 6, 7, 8, 2, 2, 0, 1, 2, 0, - 1, 2, 0, 4, 3, 3, 3, 1, 4, 1, - 1, 5, 2, 5, 2, 4, 1, 5, 5, 4, - 3, 1, 1, 2, 1, 1, 2, 1, 1, 1, - 2, 3, 2, 3, 2, 2, 3, 3, 3, 0, - 6, 0, 6, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, - 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 2, 0, 3, 1, 5, 0, 1, 2, 1, 1, - 1, 1, 0, 3, 0, 1, 0, 1, 2, 1, - 1, 2, 2, 4, 1, 3, 2, 1, 2, 2, - 2, 2, 1, 2, 1, 1, 1, 1, 1, 0, - 2, 1, 1, 1, 1, 1, 0, 2, 1, 1, - 0, 1, 0, 2, 1, 2, 3, 2, 0, 1, - 0, 1, 1, 2, 0, 1, 0, 4, 1, 4, - 3, 1, 0, 1, 2, 1, 3, 3, 2, 2, - 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, - 2, 1, 1, 0, 1, 1, 1, 1, 0, 1, - 1, 1, 0, 2, 2, 1, 1, 1, 4, 2, - 1, 4, 0, 1, 0, 2, 1, 3, 0, 6, - 0, 5, 0, 5, 0, 5, 0, 11, 0, 1, - 0, 2, 2, 1, 3, 2, 3, 2, 4, 0, - 6, 0, 0, 8, 4, 4, 3, 3, 2, 2, - 6, 5, 3, 5, 1, 1, 1, 0, 1, 0, - 1, 0, 1, 1, 0, 2, 1, 0, 1, 1, - 1, 0, 5, 3, 0, 5, 3, 3, 0, 3, - 0, 2, 1, 3, 0, 1, 1, 0, 2, 1, - 3, 0, 6, 0, 6, 0, 5, 0, 1, 1, - 0, 6, 0, 1, 1, 2, 1, 1, 1, 0, - 6, 0, 5, 0, 1, 1, 2, 1, 1, 1, - 1, 1, 2, 0, 6, 0, 1, 1, 0, 4, - 4, 3, 5, 1, 3, 3, 5, 1, 3, 2, - 1, 1, 0, 6, 1, 3, 3, 0, 2, 0, - 4, 0, 2, 1, 2, 4, 2, 3, 0, 3, - 0, 0, 6, 2, 1, 1, 2, 2, 8, 4, - 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 4, 3, 1, 1, - 4, 0, 0, 1, 1, 0, 2, 2, 1, 1, - 0, 2, 0, 3, 0, 3, 3, 0, 3, 0, - 3, 2, 1, 3, 4, 3, 4, 3, 4, 1, - 3, 4, 3, 3, 6, 1, 5, 6, 5, 7, - 6, 8, 5, 6, 4, 4, 5, 3, 4, 1, - 3, 1, 3, 1, 3, 3, 1, 3, 3, 4, - 4, 1, 3, 3, 3, 3, 3, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, - 1, 1, 1, 3, 2, 2, 2, 2, 3, 3, - 5, 6, 4, 4, 7, 4, 2, 6, 5, 6, - 6, 4, 4, 3, 4, 6, 8, 6, 8, 6, - 4, 6, 4, 6, 4, 4, 4, 4, 6, 8, - 2, 2, 4, 2, 7, 7, 3, 4, 4, 6, - 6, 4, 6, 6, 6, 4, 6, 4, 6, 8, - 10, 12, 6, 4, 6, 6, 1, 6, 4, 8, - 10, 4, 1, 3, 4, 6, 6, 8, 6, 6, - 4, 6, 6, 8, 4, 4, 6, 4, 2, 4, - 4, 4, 6, 4, 4, 3, 8, 6, 4, 6, - 3, 6, 8, 4, 8, 6, 8, 6, 8, 2, - 4, 4, 4, 6, 8, 8, 4, 7, 7, 7, - 6, 6, 6, 6, 6, 6, 0, 5, 10, 3, - 4, 3, 2, 2, 2, 4, 6, 4, 4, 6, - 6, 6, 6, 4, 6, 4, 6, 4, 4, 4, - 4, 6, 4, 6, 4, 6, 4, 4, 6, 4, - 6, 4, 6, 4, 4, 6, 4, 6, 0, 3, - 3, 0, 1, 0, 2, 1, 3, 4, 4, 5, - 4, 4, 4, 5, 4, 0, 0, 7, 10, 4, - 5, 4, 5, 4, 4, 4, 4, 4, 5, 0, - 8, 0, 3, 3, 1, 4, 0, 1, 0, 2, - 0, 1, 0, 3, 2, 3, 2, 1, 2, 1, - 2, 1, 1, 1, 2, 0, 1, 0, 2, 1, - 3, 1, 3, 0, 2, 1, 3, 0, 1, 0, - 2, 4, 5, 1, 1, 1, 1, 3, 3, 3, - 0, 6, 0, 6, 0, 8, 4, 0, 8, 0, - 10, 6, 0, 8, 0, 10, 6, 1, 2, 2, - 0, 4, 0, 11, 3, 6, 0, 3, 0, 0, - 5, 0, 1, 0, 1, 0, 2, 0, 2, 2, - 2, 0, 6, 0, 1, 3, 1, 1, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, - 2, 0, 1, 0, 0, 3, 0, 0, 3, 2, - 0, 0, 4, 4, 2, 0, 2, 2, 3, 3, - 1, 2, 0, 1, 0, 4, 4, 2, 0, 1, - 1, 0, 1, 0, 1, 2, 1, 3, 3, 1, - 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 0, 6, 0, - 1, 3, 1, 2, 0, 2, 3, 1, 2, 1, - 0, 3, 0, 5, 2, 1, 0, 3, 6, 0, - 6, 4, 4, 4, 4, 5, 4, 1, 3, 1, - 0, 2, 0, 1, 0, 0, 8, 0, 0, 6, - 0, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 3, 4, 0, 3, 3, 1, 2, 2, 0, 3, - 0, 5, 3, 1, 3, 1, 3, 1, 1, 0, - 1, 0, 4, 0, 1, 3, 1, 1, 1, 0, - 0, 6, 0, 0, 11, 3, 1, 3, 3, 1, - 3, 0, 1, 0, 4, 0, 6, 0, 5, 0, - 6, 1, 3, 3, 5, 0, 2, 0, 2, 1, - 1, 1, 3, 0, 1, 0, 1, 1, 3, 1, - 1, 2, 2, 2, 1, 1, 1, 1, 0, 3, - 0, 3, 2, 4, 4, 4, 4, 0, 4, 6, - 16, 2, 2, 0, 6, 5, 2, 2, 2, 1, - 5, 5, 2, 2, 1, 4, 3, 2, 2, 2, - 3, 2, 2, 2, 1, 1, 3, 4, 3, 3, - 2, 2, 3, 3, 3, 3, 3, 3, 1, 1, - 1, 1, 0, 1, 0, 2, 0, 1, 1, 1, - 0, 2, 0, 2, 0, 2, 2, 0, 4, 0, - 4, 1, 1, 0, 1, 0, 1, 1, 0, 4, - 3, 1, 0, 3, 4, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 0, 3, 3, 1, - 1, 1, 2, 0, 3, 3, 2, 2, 0, 4, - 0, 1, 1, 2, 0, 4, 5, 0, 0, 0, - 0, 18, 2, 0, 1, 0, 1, 1, 0, 1, - 1, 0, 2, 2, 1, 3, 4, 3, 3, 0, - 2, 2, 1, 3, 3, 0, 3, 0, 3, 2, - 3, 1, 1, 2, 0, 2, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 1, 3, 5, 1, 1, - 1, 1, 1, 3, 4, 5, 1, 5, 3, 2, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 1, 1, 3, 0, 2, - 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, - 0, 2, 2, 2, 1, 2, 4, 5, 4, 6, - 2, 3, 3, 3, 5, 1, 3, 3, 2, 2, - 2, 1, 1, 4, 4, 1, 1, 1, 1, 1, - 0, 4, 1, 1, 1, 3, 3, 1, 1, 2, - 2, 0, 3, 4, 3, 0, 7, 1, 2, 1, - 1, 1, 1, 1, 1, 0, 5, 1, 1, 1, - 1, 1, 3, 6, 6, 6, 7, 3, 8, 8, - 8, 0, 1, 1, 2, 0, 1, 1, 3, 0, - 3, 0, 3, 0, 3, 0, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 0, 1, 3, 1, 2, 2, 2, 1, 3, 3, - 1, 1, 3, 1, 3, 4, 5, 1, 0, 3, - 3, 1, 1, 0, 2, 2, 2, 2, 0, 2, - 2, 1, 2, 2, 2, 2, 2, 0, 3, 0, - 1, 0, 3, 2, 0, 1, 2, 0, 1, 4, - 4, 5, 2, 3, 0, 1, 0, 4, 0, 1, - 1, 0, 2, 2, 1, 0, 1, 1, 4, 0, - 7, 1, 0, 0, 2, 3, 1, 1, 1, 0, - 3, 1, 2, 1, 2, 3, 3, 3, 0, 1, - 0, 3, 3, 0, 8, 0, 3, 1, 3, 0, - 2, 3, 5, 0, 3, 4, 4, 0, 14, 0, - 6, 0, 0, 0, 0, 12, 4, 4, 3, 4, - 3, 2, 1, 3, 5, 1, 1, 0, 1, 1, - 0, 2, 0, 0, 3, 0, 2 -}; - -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const unsigned short int yydefact[] = -{ - 0, 2, 2008, 635, 0, 1957, 0, 0, 0, 0, - 0, 1959, 94, 54, 1273, 1381, 1382, 1196, 1212, 0, - 635, 97, 0, 66, 1214, 1418, 0, 0, 635, 0, - 1413, 0, 0, 635, 1217, 1406, 0, 97, 1959, 0, - 670, 1794, 1310, 0, 0, 0, 1293, 1851, 1262, 0, - 0, 0, 0, 0, 4, 15, 0, 32, 20, 24, - 10, 14, 9, 6, 46, 47, 39, 8, 12, 36, - 7, 11, 29, 35, 30, 31, 43, 663, 18, 19, - 25, 37, 50, 16, 48, 45, 17, 1383, 21, 38, - 33, 26, 51, 27, 44, 28, 49, 23, 40, 22, - 5, 13, 41, 42, 34, 52, 0, 538, 0, 570, - 0, 0, 2009, 1999, 637, 636, 0, 1843, 1842, 603, - 1959, 0, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1530, - 1573, 1574, 1575, 1531, 1532, 1576, 1577, 1578, 1579, 1581, - 1580, 1582, 1533, 1534, 1583, 1584, 1585, 1535, 1536, 1586, - 1587, 1537, 1588, 1589, 1590, 1538, 1591, 1539, 1592, 1593, - 1594, 1595, 1596, 1540, 1597, 1598, 1599, 1600, 1601, 1602, - 1603, 1541, 1604, 1605, 1606, 1607, 1623, 1608, 1542, 1609, - 1610, 1611, 1624, 1543, 1614, 1613, 1612, 1615, 1616, 1617, - 1544, 1618, 1619, 1620, 1621, 1626, 1627, 1628, 1545, 1622, - 1629, 1625, 1777, 1631, 1630, 1632, 1634, 1633, 1546, 1635, - 1547, 1636, 1637, 1514, 1638, 1515, 1640, 1641, 1644, 1645, - 1639, 1646, 1647, 1642, 1643, 1548, 1649, 1650, 1651, 1652, - 1653, 1654, 1655, 1665, 1658, 1660, 1661, 1663, 1659, 1664, - 1668, 1667, 1669, 1670, 1671, 1666, 1657, 1662, 1672, 1673, - 1656, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, - 1684, 1683, 1685, 1686, 1687, 1688, 1689, 1691, 1690, 1692, - 1693, 1694, 1696, 1695, 1697, 1549, 1698, 1699, 1700, 1701, - 1702, 1550, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1551, - 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, - 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1648, 1728, - 1552, 1729, 1730, 1553, 1731, 1554, 1732, 1733, 1555, 1734, - 1735, 1736, 1737, 1738, 1739, 1556, 1740, 1557, 1742, 1741, - 1743, 1745, 1746, 1558, 1744, 1559, 1747, 1748, 1749, 1751, - 1750, 1752, 1753, 1560, 1754, 1561, 1755, 1756, 1757, 1758, - 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1770, - 1771, 1772, 1773, 1768, 1769, 1562, 1774, 1775, 1776, 1778, - 1779, 1563, 1780, 1781, 1565, 1782, 1783, 1786, 1784, 1785, - 1787, 1788, 1789, 1790, 1564, 1791, 123, 1519, 99, 1520, - 1529, 0, 605, 621, 1960, 1961, 270, 510, 511, 269, - 509, 97, 1999, 0, 266, 267, 0, 1287, 1017, 1210, - 1210, 0, 1210, 1213, 1210, 97, 1210, 0, 59, 1388, - 0, 0, 0, 0, 1513, 0, 1220, 1420, 1424, 0, - 0, 1840, 0, 0, 0, 0, 97, 638, 0, 1271, - 0, 601, 0, 1961, 1972, 664, 668, 680, 1795, 1792, - 1366, 590, 590, 590, 588, 590, 1294, 0, 0, 1271, - 1423, 2045, 0, 0, 0, 2041, 0, 2046, 0, 670, - 0, 0, 1, 3, 0, 1619, 1379, 1377, 1510, 0, - 530, 539, 534, 532, 0, 0, 2010, 619, 0, 1958, - 0, 647, 657, 125, 0, 68, 0, 0, 0, 1964, - 0, 0, 0, 0, 95, 319, 1999, 2001, 2003, 270, - 268, 0, 1291, 1290, 1289, 0, 1287, 1197, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1210, 61, 0, - 1885, 1900, 1901, 1897, 1902, 1903, 1907, 0, 1899, 1891, - 0, 1906, 1895, 1904, 0, 1889, 0, 1905, 1910, 1893, - 1898, 1877, 0, 1883, 1887, 1512, 1116, 1854, 1855, 0, - 1525, 1516, 1524, 1523, 67, 1222, 1223, 1221, 569, 1421, - 1422, 0, 1435, 0, 0, 0, 633, 0, 1361, 1360, - 0, 1414, 1973, 0, 0, 610, 1225, 1272, 0, 1224, - 1411, 0, 1410, 1407, 1409, 0, 1885, 1872, 0, 1967, - 1964, 1974, 693, 686, 685, 688, 689, 692, 690, 691, - 687, 684, 701, 681, 683, 1798, 0, 0, 444, 0, - 1374, 0, 0, 0, 1374, 0, 1151, 1367, 0, 1807, - 1345, 507, 506, 0, 505, 1808, 1344, 1360, 0, 0, - 0, 1329, 0, 1295, 1334, 1809, 0, 1363, 0, 1151, - 1374, 0, 1311, 0, 0, 0, 0, 584, 594, 586, - 581, 0, 587, 583, 1292, 1209, 1852, 569, 1472, 1471, - 1517, 2042, 1470, 2050, 2052, 2038, 2040, 2047, 666, 0, - 1978, 53, 0, 1385, 2006, 2007, 2005, 460, 107, 107, - 528, 0, 0, 0, 0, 0, 1207, 0, 0, 649, - 659, 127, 124, 98, 0, 607, 623, 1963, 0, 0, - 1965, 1969, 775, 774, 0, 92, 710, 1526, 1937, 96, - 1933, 2004, 320, 701, 701, 701, 1994, 0, 1996, 1997, - 1998, 2010, 2002, 0, 512, 0, 1274, 1277, 1281, 1285, - 1288, 1567, 1530, 0, 1575, 0, 0, 1483, 0, 0, - 0, 0, 1535, 0, 0, 1589, 0, 0, 1540, 0, - 0, 0, 710, 710, 710, 0, 0, 0, 1602, 1603, - 1492, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1480, 0, 1493, 0, 0, 0, 0, 0, 0, - 0, 1631, 0, 0, 1632, 0, 0, 0, 1482, 1637, - 0, 0, 0, 0, 0, 0, 0, 1652, 0, 0, - 1490, 0, 0, 1023, 0, 1679, 1681, 0, 0, 0, - 1685, 0, 0, 1686, 1687, 1688, 1467, 777, 0, 710, - 1479, 1489, 1700, 1706, 1473, 0, 1708, 0, 1709, 0, - 1716, 0, 0, 0, 0, 0, 0, 1738, 1740, 0, - 0, 1757, 0, 0, 0, 710, 1770, 1771, 1772, 1773, - 0, 1481, 1562, 1491, 0, 0, 0, 1782, 710, 710, - 710, 0, 0, 0, 1788, 0, 1791, 1027, 0, 0, - 0, 0, 776, 0, 991, 0, 1019, 712, 717, 722, - 729, 735, 749, 751, 753, 756, 761, 767, 0, 862, - 769, 856, 792, 791, 1018, 1477, 790, 789, 1478, 787, - 1500, 1519, 1466, 1499, 1211, 1201, 1202, 0, 1203, 1206, - 1931, 1204, 571, 0, 0, 60, 1402, 1396, 1398, 1401, - 1397, 0, 1403, 1400, 1399, 1843, 1389, 1391, 1392, 1886, - 1884, 1918, 1917, 0, 1919, 1915, 1908, 1938, 1912, 1938, - 1914, 1913, 1938, 1909, 1916, 1938, 1881, 0, 1117, 1118, - 0, 1853, 0, 1511, 0, 1419, 1436, 0, 1437, 1425, - 1433, 652, 0, 1116, 1841, 1844, 0, 0, 56, 57, - 0, 640, 0, 639, 643, 0, 0, 0, 1228, 1218, - 1227, 1412, 0, 0, 1884, 1881, 1968, 0, 1970, 1985, - 669, 1975, 699, 671, 698, 0, 682, 1793, 1796, 1804, - 1343, 1370, 443, 0, 0, 1342, 1326, 0, 270, 0, - 0, 0, 0, 1312, 1317, 304, 0, 1333, 1152, 0, - 1374, 0, 1337, 1350, 1338, 0, 1364, 0, 1374, 1307, - 0, 0, 1299, 1304, 1300, 0, 1306, 1305, 1308, 1296, - 1297, 1322, 1351, 1364, 1327, 1332, 1341, 1368, 1369, 0, - 1321, 1328, 0, 1339, 1364, 1364, 1374, 1374, 597, 596, - 595, 591, 592, 597, 0, 1060, 0, 0, 2039, 2053, - 2037, 2048, 2049, 2036, 667, 1979, 665, 1980, 0, 1380, - 1378, 1386, 1387, 461, 531, 460, 261, 264, 263, 0, - 535, 533, 460, 2000, 0, 0, 623, 0, 0, 651, - 646, 650, 648, 502, 501, 504, 0, 658, 0, 128, - 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 69, 70, 83, 609, - 608, 606, 631, 630, 628, 0, 629, 627, 622, 624, - 625, 1962, 1966, 271, 460, 0, 1528, 0, 0, 0, - 0, 0, 0, 0, 1995, 88, 0, 0, 0, 1279, - 1275, 1285, 0, 0, 0, 1116, 0, 0, 0, 1121, - 0, 806, 1121, 1121, 1121, 0, 0, 1017, 1017, 0, - 1017, 0, 0, 0, 0, 1121, 830, 833, 0, 831, - 0, 0, 0, 0, 0, 1486, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1017, 0, 0, 0, 0, - 996, 0, 0, 0, 0, 786, 0, 0, 0, 0, - 1017, 0, 0, 0, 0, 1023, 0, 1021, 0, 1121, - 0, 0, 1121, 0, 0, 0, 0, 0, 1017, 1017, - 1017, 721, 0, 878, 0, 0, 0, 0, 0, 1017, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 1121, 0, 0, 0, 1121, 0, 899, 0, 1488, - 0, 0, 0, 1487, 0, 0, 1485, 1484, 1468, 0, - 0, 0, 922, 924, 923, 1121, 0, 1121, 0, 0, - 0, 1028, 0, 795, 794, 796, 1992, 0, 0, 0, - 0, 0, 0, 0, 714, 719, 778, 0, 779, 780, - 0, 781, 782, 783, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 797, 1091, 1092, 1093, 1094, 1103, 1106, - 1095, 1096, 1097, 1105, 1098, 1099, 1100, 1107, 1108, 1109, - 1101, 1110, 1104, 1102, 1111, 0, 1090, 0, 0, 0, - 1469, 916, 0, 1199, 0, 573, 572, 1205, 571, 0, - 62, 64, 1395, 0, 0, 1404, 1911, 0, 1892, 1896, - 1890, 1894, 0, 0, 1882, 0, 1888, 1120, 1627, 1695, - 0, 1123, 1857, 1215, 1432, 1434, 0, 0, 1426, 0, - 0, 623, 58, 0, 0, 1415, 0, 0, 0, 0, - 612, 1226, 0, 1408, 0, 0, 0, 0, 0, 1971, - 1987, 1986, 1976, 701, 1142, 702, 704, 703, 1499, 1798, - 1801, 1802, 1805, 1803, 0, 1800, 1799, 1814, 0, 1372, - 1375, 1376, 0, 0, 1353, 1352, 1348, 1349, 0, 1161, - 1162, 1160, 1155, 1156, 1159, 1357, 1355, 1346, 0, 1374, - 0, 1356, 1354, 1301, 1302, 1303, 0, 1151, 0, 1374, - 1364, 0, 1374, 1374, 1336, 1340, 0, 585, 594, 582, - 589, 1072, 1071, 0, 1036, 0, 1035, 1034, 1033, 0, - 1071, 2043, 2051, 2055, 0, 1151, 1984, 1982, 262, 1249, - 1249, 0, 0, 0, 0, 0, 0, 0, 108, 117, - 567, 567, 1249, 1249, 567, 1249, 1249, 1249, 0, 0, - 1249, 0, 0, 567, 0, 1249, 565, 0, 0, 1249, - 1249, 1249, 567, 0, 1249, 1249, 1249, 1249, 1249, 577, - 1249, 1249, 1249, 564, 274, 296, 297, 529, 0, 543, - 566, 2011, 2012, 536, 620, 604, 1208, 0, 126, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 632, 626, 93, 711, - 1527, 0, 1934, 2031, 0, 0, 2013, 272, 515, 517, - 516, 514, 513, 0, 0, 1123, 0, 1282, 1060, 1286, - 1285, 1283, 0, 0, 0, 1122, 1121, 0, 1002, 1169, - 1170, 1166, 1167, 1165, 1168, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 975, - 0, 1002, 0, 836, 0, 0, 0, 0, 0, 0, - 1499, 0, 0, 0, 0, 0, 1992, 0, 0, 0, - 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, - 0, 1114, 1112, 1115, 1113, 0, 0, 997, 989, 0, - 0, 0, 0, 863, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1024, 1025, 1121, 0, 0, - 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 885, 0, 0, 0, 0, 0, 890, 0, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 919, 0, 921, - 0, 0, 1502, 1501, 0, 0, 0, 0, 0, 1029, - 670, 0, 799, 1017, 798, 0, 1810, 992, 994, 0, - 716, 713, 718, 732, 725, 730, 723, 727, 0, 784, - 1572, 733, 0, 0, 1130, 747, 0, 0, 750, 0, - 0, 0, 0, 752, 754, 755, 758, 862, 757, 862, - 765, 766, 762, 763, 764, 768, 0, 788, 793, 1020, - 963, 1503, 1200, 1932, 1198, 65, 0, 0, 1390, 1405, - 1393, 1942, 0, 1941, 1927, 1930, 1510, 0, 0, 0, - 1867, 1861, 1868, 1870, 1864, 1869, 1871, 1862, 1863, 1858, - 1865, 1124, 1153, 0, 0, 653, 654, 657, 0, 1847, - 1848, 1846, 1845, 634, 1417, 1416, 0, 641, 644, 645, - 617, 616, 618, 611, 613, 614, 254, 1232, 0, 0, - 0, 1238, 1219, 1229, 602, 0, 0, 0, 0, 0, - 697, 1060, 1190, 694, 675, 1153, 1143, 674, 705, 0, - 1797, 0, 1768, 1825, 0, 0, 0, 0, 0, 1815, - 1371, 0, 1323, 0, 1347, 1359, 1358, 1318, 0, 0, - 0, 1316, 1365, 0, 1335, 1298, 1315, 1123, 1364, 1313, - 1314, 599, 598, 593, 1071, 1060, 0, 0, 1057, 1073, - 0, 1073, 1060, 1060, 0, 1060, 1116, 1068, 0, 0, - 2054, 1144, 1983, 1247, 1248, 1250, 0, 0, 111, 114, - 112, 0, 113, 0, 0, 568, 522, 503, 503, 547, - 0, 336, 522, 496, 545, 0, 0, 0, 0, 0, - 0, 0, 0, 1249, 0, 558, 541, 0, 0, 0, - 0, 559, 0, 542, 1249, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 580, 579, 578, 0, 0, - 0, 0, 275, 460, 339, 0, 574, 336, 342, 1506, - 2015, 1087, 0, 1086, 129, 76, 72, 84, 1174, 1175, - 1173, 1171, 1172, 85, 74, 75, 79, 78, 80, 81, - 82, 77, 73, 86, 87, 71, 0, 1935, 0, 238, - 237, 0, 2029, 2015, 0, 339, 89, 1438, 273, 276, - 90, 1060, 1142, 1285, 1123, 0, 1116, 0, 805, 820, - 0, 0, 968, 0, 0, 970, 971, 972, 0, 824, - 0, 822, 825, 826, 827, 1017, 0, 0, 0, 0, - 1017, 974, 0, 832, 0, 0, 837, 838, 0, 811, - 0, 845, 0, 847, 0, 1017, 0, 841, 0, 802, - 0, 0, 1017, 0, 853, 0, 814, 0, 0, 954, - 0, 937, 933, 0, 935, 0, 0, 1017, 1017, 0, - 858, 0, 0, 864, 1017, 0, 956, 0, 938, 0, - 870, 0, 1017, 0, 1022, 0, 0, 0, 981, 874, - 875, 0, 979, 940, 0, 0, 877, 942, 0, 944, - 0, 939, 946, 947, 879, 881, 880, 949, 0, 0, - 951, 0, 953, 0, 883, 884, 0, 0, 0, 888, - 0, 1017, 893, 983, 985, 0, 0, 0, 0, 0, - 987, 900, 902, 0, 0, 0, 901, 0, 0, 0, - 0, 0, 0, 0, 906, 0, 0, 920, 986, 812, - 984, 925, 0, 928, 0, 927, 0, 0, 0, 0, - 1991, 1993, 0, 0, 803, 0, 0, 0, 0, 0, - 1504, 771, 770, 0, 773, 772, 0, 726, 731, 724, - 728, 0, 0, 0, 0, 745, 744, 0, 0, 1130, - 748, 0, 760, 759, 861, 0, 962, 701, 1017, 0, - 63, 1394, 1939, 0, 0, 0, 0, 0, 0, 0, - 0, 1856, 1154, 1259, 1518, 1427, 0, 661, 1849, 1850, - 0, 615, 680, 0, 1251, 1236, 1243, 1237, 0, 0, - 0, 1235, 1495, 1494, 1501, 1974, 0, 0, 0, 0, - 1977, 1123, 1123, 1184, 0, 0, 672, 677, 673, 676, - 0, 700, 709, 708, 1496, 1503, 0, 0, 0, 0, - 446, 448, 447, 456, 0, 445, 0, 0, 1810, 0, - 452, 454, 453, 1820, 451, 1373, 1151, 1331, 1330, 1158, - 1157, 0, 1309, 1325, 1374, 0, 1981, 1066, 0, 1059, - 1058, 1074, 0, 1060, 1073, 1073, 0, 1039, 1038, 1263, - 1266, 0, 1037, 1077, 1064, 680, 2044, 2056, 0, 459, - 458, 303, 455, 302, 116, 115, 121, 122, 341, 523, - 497, 498, 0, 0, 0, 503, 335, 522, 334, 337, - 512, 0, 286, 283, 549, 289, 285, 301, 0, 0, - 290, 522, 556, 557, 571, 279, 0, 315, 316, 314, - 298, 281, 282, 551, 1138, 1140, 1148, 288, 287, 284, - 293, 294, 312, 311, 292, 313, 562, 310, 308, 305, - 307, 306, 309, 291, 280, 0, 544, 0, 325, 327, - 328, 1509, 0, 576, 546, 0, 329, 330, 0, 0, - 0, 0, 660, 0, 1936, 2032, 241, 239, 240, 0, - 0, 0, 244, 0, 242, 0, 0, 1440, 1439, 243, - 257, 460, 277, 0, 1123, 1163, 1278, 1284, 0, 0, - 0, 969, 1003, 0, 422, 422, 1013, 1011, 411, 422, - 1007, 1012, 1009, 0, 0, 0, 0, 0, 0, 0, - 976, 973, 0, 0, 0, 1503, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1000, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 958, 1026, 982, 980, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 988, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1030, 808, 1988, 1989, 800, 1811, 1812, - 1813, 524, 993, 715, 720, 0, 738, 1017, 736, 1129, - 742, 0, 0, 746, 0, 917, 0, 964, 965, 0, - 1016, 1505, 1940, 1929, 1928, 1943, 1943, 1943, 0, 1125, - 0, 1216, 1438, 655, 0, 656, 642, 701, 1233, 1245, - 0, 1253, 0, 0, 1230, 1240, 0, 0, 0, 1239, - 0, 1874, 1875, 1873, 1153, 1131, 0, 0, 1195, 0, - 1191, 695, 0, 707, 706, 0, 1827, 0, 1826, 1838, - 1839, 1836, 1837, 1835, 1816, 0, 1822, 1821, 0, 0, - 0, 1832, 1823, 0, 0, 1324, 0, 1319, 600, 0, - 1060, 1073, 1060, 1046, 0, 0, 1060, 1042, 1040, 1044, - 0, 1123, 0, 0, 0, 0, 1061, 701, 1498, 1145, - 1148, 338, 522, 499, 500, 512, 0, 0, 0, 0, - 456, 299, 555, 554, 300, 0, 0, 1149, 1150, 1141, - 0, 548, 339, 575, 476, 407, 356, 347, 422, 350, - 349, 393, 364, 361, 411, 409, 379, 411, 411, 386, - 385, 403, 389, 369, 462, 462, 368, 406, 462, 390, - 388, 392, 0, 394, 411, 399, 387, 391, 408, 384, - 381, 405, 422, 422, 362, 365, 404, 462, 0, 397, - 422, 426, 367, 462, 468, 0, 0, 422, 424, 1508, - 2017, 0, 2019, 1085, 142, 701, 0, 101, 2030, 2019, - 0, 247, 272, 258, 0, 278, 0, 1280, 0, 1276, - 786, 817, 821, 930, 0, 1004, 462, 0, 1014, 413, - 1006, 1008, 1010, 807, 823, 828, 932, 810, 809, 0, - 0, 0, 0, 843, 846, 848, 839, 844, 842, 0, - 931, 855, 852, 854, 815, 0, 955, 934, 936, 857, - 868, 998, 1001, 0, 0, 0, 869, 865, 957, 866, - 0, 871, 840, 872, 0, 0, 0, 0, 941, 876, - 943, 945, 950, 948, 952, 882, 819, 0, 887, 889, - 801, 786, 891, 0, 897, 895, 0, 0, 903, 0, - 0, 912, 0, 910, 0, 911, 0, 913, 914, 0, - 926, 929, 1031, 0, 1974, 0, 995, 734, 0, 740, - 1017, 737, 743, 702, 701, 915, 0, 1948, 1948, 1948, - 1258, 1257, 0, 1256, 1260, 0, 662, 255, 0, 0, - 0, 1254, 1242, 1978, 1231, 1234, 1503, 1876, 679, 0, - 1126, 1194, 1192, 0, 1185, 1187, 1189, 0, 1497, 0, - 0, 1831, 1817, 457, 0, 0, 0, 0, 1818, 0, - 1116, 1067, 0, 0, 1033, 1060, 1060, 0, 1033, 0, - 0, 0, 1265, 1142, 1267, 1075, 1079, 1080, 1078, 1069, - 0, 1147, 0, 0, 0, 561, 0, 574, 563, 426, - 1139, 295, 326, 482, 0, 0, 366, 415, 410, 0, - 415, 415, 468, 470, 464, 468, 0, 375, 393, 370, - 0, 462, 383, 374, 395, 398, 400, 402, 415, 0, - 462, 363, 372, 0, 415, 434, 0, 0, 0, 430, - 0, 475, 0, 437, 343, 427, 429, 0, 0, 396, - 0, 352, 469, 0, 354, 0, 0, 415, 0, 425, - 415, 0, 2016, 0, 2023, 0, 145, 143, 144, 0, - 138, 140, 135, 0, 323, 324, 322, 321, 0, 131, - 2023, 245, 1978, 1438, 0, 250, 0, 1148, 520, 1164, - 0, 0, 1005, 0, 0, 977, 834, 835, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 804, - 0, 0, 0, 0, 0, 0, 0, 909, 907, 908, - 0, 1032, 1993, 525, 739, 0, 705, 966, 0, 0, - 1947, 1945, 0, 1946, 1944, 1920, 0, 1879, 1880, 1878, - 1866, 0, 0, 1428, 1153, 1244, 1246, 1252, 1241, 0, - 1127, 1142, 1441, 1188, 0, 696, 1829, 1828, 1830, 1824, - 0, 0, 0, 0, 1065, 1060, 1047, 0, 1051, 1056, - 1052, 0, 1043, 1041, 0, 1163, 0, 1081, 1153, 1148, - 0, 0, 0, 0, 0, 0, 0, 0, 560, 1474, - 550, 552, 0, 0, 0, 477, 478, 483, 485, 0, - 0, 419, 420, 421, 376, 416, 418, 0, 378, 346, - 463, 471, 472, 0, 467, 465, 468, 371, 401, 377, - 0, 373, 0, 360, 440, 439, 710, 432, 442, 0, - 0, 438, 428, 436, 431, 0, 0, 0, 0, 344, - 0, 345, 1507, 2018, 0, 537, 701, 701, 2020, 2033, - 142, 0, 0, 0, 0, 132, 134, 135, 2014, 248, - 246, 0, 1974, 91, 0, 519, 0, 818, 423, 412, - 0, 829, 849, 0, 816, 999, 990, 1121, 859, 0, - 867, 873, 960, 959, 886, 892, 896, 894, 898, 904, - 905, 1017, 1990, 741, 967, 1926, 1925, 1924, 1921, 0, - 0, 0, 0, 0, 0, 1949, 1951, 1255, 0, 0, - 256, 694, 317, 1135, 1148, 0, 1153, 0, 1449, 1186, - 1834, 1833, 1819, 0, 0, 0, 0, 0, 0, 0, - 1088, 1264, 1076, 0, 1070, 1146, 0, 0, 331, 1476, - 1475, 574, 488, 489, 490, 0, 0, 0, 481, 484, - 355, 348, 417, 0, 526, 473, 466, 0, 359, 441, - 710, 435, 462, 468, 462, 468, 0, 0, 0, 670, - 0, 109, 139, 0, 701, 100, 102, 0, 0, 252, - 251, 1148, 0, 0, 0, 0, 0, 0, 1922, 1952, - 1955, 1953, 1954, 1956, 1950, 0, 0, 318, 0, 0, - 1132, 1134, 1128, 1176, 0, 0, 0, 0, 1442, 1444, - 0, 1193, 0, 1062, 1048, 0, 1053, 0, 1045, 0, - 1083, 0, 332, 553, 492, 0, 491, 0, 486, 487, - 482, 0, 462, 0, 462, 433, 351, 353, 357, 358, - 0, 2024, 0, 2021, 0, 2034, 141, 0, 0, 133, - 136, 1978, 518, 521, 414, 850, 0, 978, 860, 918, - 1261, 1269, 0, 1429, 1136, 1137, 1148, 0, 678, 0, - 0, 0, 0, 1443, 0, 0, 1450, 1452, 0, 0, - 0, 0, 1089, 0, 1084, 333, 494, 495, 493, 479, - 480, 380, 527, 382, 2025, 2026, 1978, 119, 118, 110, - 0, 178, 0, 103, 253, 0, 0, 0, 449, 1133, - 1177, 1447, 1448, 0, 1445, 0, 0, 1451, 0, 0, - 1050, 1055, 1082, 2022, 120, 0, 194, 182, 0, 0, - 0, 180, 208, 2035, 0, 0, 184, 206, 207, 185, - 1521, 0, 1522, 2027, 0, 851, 1268, 1270, 0, 1430, - 0, 1446, 1454, 1453, 0, 1063, 193, 196, 0, 0, - 199, 189, 188, 190, 0, 0, 0, 179, 229, 178, - 178, 232, 187, 225, 178, 104, 450, 1441, 701, 0, - 195, 0, 0, 0, 181, 209, 220, 223, 215, 150, - 178, 0, 178, 0, 0, 2028, 109, 1449, 0, 0, - 1180, 1182, 0, 191, 0, 0, 0, 0, 178, 216, - 0, 146, 0, 0, 148, 235, 0, 227, 105, 1455, - 1183, 1178, 701, 1320, 0, 183, 200, 217, 223, 213, - 221, 178, 0, 0, 178, 0, 231, 149, 0, 233, - 226, 228, 178, 0, 1457, 1181, 192, 197, 178, 0, - 214, 0, 0, 212, 161, 160, 0, 152, 174, 230, - 0, 151, 0, 178, 106, 0, 0, 1464, 0, 178, - 218, 0, 178, 0, 0, 0, 0, 0, 147, 0, - 178, 1456, 1459, 0, 0, 1461, 1462, 0, 1431, 198, - 203, 0, 210, 178, 155, 175, 176, 0, 158, 236, - 0, 1463, 1458, 0, 1465, 199, 178, 202, 178, 0, - 0, 153, 167, 154, 165, 157, 0, 234, 1460, 204, - 178, 178, 173, 171, 178, 162, 169, 164, 0, 170, - 177, 168, 0, 159, 0, 156, 172, 166, 163 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const short int yydefgoto[] = -{ - -1, 52, 53, 54, 55, 56, 57, 978, 58, 528, - 925, 1390, 1391, 59, 425, 60, 704, 1136, 1137, 1138, - 61, 1607, 2473, 1154, 402, 420, 386, 2778, 3049, 3418, - 3514, 3566, 3612, 1100, 3415, 1528, 3469, 1529, 62, 493, - 702, 1118, 1119, 3224, 3225, 3221, 3226, 3039, 3040, 3041, - 3042, 3604, 3560, 3581, 3605, 3645, 3679, 3685, 3686, 3626, - 3694, 3695, 3696, 3702, 3697, 3627, 3681, 3561, 3504, 3534, - 3530, 3505, 3594, 3529, 3616, 3552, 3553, 3618, 3660, 3677, - 3506, 3507, 3535, 3576, 3508, 3536, 3598, 3557, 3599, 3619, - 3661, 3558, 3577, 3622, 3580, 3509, 3564, 3610, 3542, 3559, - 3563, 3633, 3608, 2051, 2459, 2056, 2464, 3052, 2469, 3232, - 3421, 1881, 2282, 3114, 2784, 1094, 1095, 1096, 403, 404, - 405, 501, 2057, 1563, 2058, 2059, 1565, 1566, 1024, 2433, - 2424, 2410, 3280, 725, 3048, 2437, 2438, 2439, 2440, 2388, - 2389, 1970, 1971, 2017, 2448, 2761, 2979, 2999, 2762, 2763, - 2764, 2765, 2766, 2767, 2768, 2798, 2799, 3174, 3175, 3176, - 2795, 3030, 3014, 3015, 3016, 3197, 2986, 2322, 2323, 3519, - 2332, 2333, 2370, 2656, 2371, 1099, 2987, 3024, 3184, 3017, - 2447, 2973, 3165, 3317, 3166, 3167, 3168, 3398, 1972, 2387, - 1115, 1116, 651, 406, 1168, 1611, 3056, 3057, 2378, 2886, - 3323, 63, 1102, 687, 689, 688, 2020, 480, 1567, 1568, - 1569, 2699, 2705, 3311, 1974, 111, 1387, 2444, 2008, 64, - 1073, 1068, 65, 662, 657, 658, 1071, 1072, 1497, 1932, - 66, 595, 67, 488, 68, 496, 1141, 69, 986, 1873, - 1874, 1875, 70, 694, 71, 497, 1148, 1149, 1150, 72, - 976, 116, 73, 584, 981, 983, 984, 74, 490, 491, - 1110, 75, 1417, 1855, 1856, 699, 700, 1117, 2615, 76, - 77, 471, 445, 601, 446, 447, 1444, 1893, 3281, 612, - 613, 614, 2306, 1003, 1004, 1005, 1898, 1445, 2311, 1156, - 2901, 1324, 1781, 887, 1325, 1782, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 897, 2233, 2236, 3018, 898, - 1334, 1792, 899, 900, 1820, 901, 2847, 2255, 2256, 2257, - 2597, 2598, 902, 2090, 2810, 2128, 903, 1321, 1777, 1688, - 3071, 2831, 1627, 2073, 2493, 2599, 517, 518, 904, 1246, - 1247, 1248, 1705, 1312, 2219, 1769, 1504, 1505, 1506, 1507, - 2950, 2949, 2951, 3295, 3137, 3297, 3141, 1943, 1508, 1509, - 3449, 2346, 2670, 2364, 2365, 3148, 1934, 1510, 2352, 3147, - 2686, 2956, 3303, 3453, 2022, 3299, 1375, 1376, 1685, 960, - 961, 1628, 1852, 2270, 3121, 3285, 2245, 2920, 3283, 3370, - 1570, 2414, 2415, 1895, 1896, 2368, 2689, 2709, 1027, 3282, - 2272, 1472, 1473, 2789, 3684, 2033, 3438, 3520, 3569, 3570, - 3571, 2638, 2639, 2924, 2925, 1897, 2303, 2640, 3122, 78, - 408, 79, 1822, 695, 696, 520, 417, 80, 426, 1853, - 81, 439, 1432, 568, 588, 989, 990, 1882, 2283, 2290, - 1883, 2295, 2913, 2285, 2618, 2619, 1955, 1956, 2286, 2621, - 2910, 2902, 2903, 2611, 3112, 82, 459, 2681, 2359, 2360, - 3430, 3431, 589, 83, 407, 736, 1615, 1173, 1614, 737, - 738, 1175, 515, 516, 84, 457, 1048, 1049, 1050, 1487, - 85, 450, 652, 1468, 2336, 1917, 580, 654, 1479, 655, - 1480, 1459, 1912, 1015, 86, 683, 682, 87, 476, 1090, - 88, 529, 936, 937, 1395, 1830, 89, 440, 593, 594, - 90, 434, 581, 1425, 91, 427, 571, 92, 93, 572, - 969, 2612, 3279, 3478, 3547, 1416, 970, 2470, 3288, 3378, - 3379, 3381, 3446, 3447, 3614, 3637, 3654, 3655, 3658, 905, - 671, 906, 3158, 907, 908, 2291, 2292, 2690, 909, 3432, - 910, 2018, 665, 423, 911, 562, 912, 2275, 913, 3511, - 717, 718, 389, 390, 94, 615, 449, 1007, 1008, 1009, - 1454, 1455, 656, 2228, 1456, 1457, 1909, 1904, 2932, 2662, - 2654, 95, 575, 938, 974, 975, 1861, 96, 458, 97, - 962, 1411, 1412, 1849, 2269, 1850, 98, 597, 99, 551, - 1405, 552, 940, 553, 554, 952, 947, 955, 949, 3269, - 3104, 3105, 1837, 921, 719, 720, 1398, 1832, 1833, 2897, - 3107, 3275, 3276, 100, 120, 395, 499, 711, 997, 101, - 102, 103, 104, 1000, 1085, 1889, 1086, 1087, 1088, 1517, - 1442, 1319, 2884, 2221, 1771, 2575, 504, 726, 486, 506, - 507, 112, 113, 727, 728, 2053, 2451, 2771, 3034, 3035, - 3218, 3215, 729, 3544, 730, 2460, 2048, 2774, 3341, 3471, - 105, 673, 468, 1083, 1078, 1080, 1513, 1950 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -3263 -static const int yypact[] = -{ - 3809, -3263, 171, 886, 619, -3263, 141, 43530, 525, 619, - 619, 300, 656, -3263, -3263, -3263, -3263, -3263, 604, 43530, - 886, -3263, 22003, -3263, -3263, -3263, 216, 619, 886, 43530, - -3263, 413, 777, 886, -3263, -3263, 619, -3263, 300, 43530, - -3263, 510, -3263, 415, 685, 442, 430, -3263, -3263, 43530, - 696, -146, 945, 972, -3263, -3263, 631, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, 22556, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, 926, 43530, 43530, -3263, - 43530, 591, -3263, 981, -3263, -3263, 619, -3263, -3263, -3263, - 300, 22003, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, 571, -3263, - -3263, 668, -3263, -3263, -3263, 1156, 963, -3263, -3263, -3263, - -3263, -3263, 351, 724, -3263, 734, 1023, 751, -3263, 1058, - 1058, 43530, 1058, -3263, 1058, -3263, 1058, 619, -3263, -3263, - 1701, 43530, 948, 361, -116, 38580, 208, 177, -3263, 1056, - 22003, -3263, 619, 1122, 740, 43530, -3263, -3263, 619, 663, - 549, -3263, 1943, 106, -3263, -3263, -3263, 330, -3263, -3263, - 4334, -3263, -3263, -3263, 754, -3263, -3263, 22003, 619, 1036, - -3263, -3263, 133, 133, 133, -3263, 133, -3263, 133, -3263, - -146, 743, -3263, -3263, 43530, -107, -3263, -3263, 728, 490, - -3263, -3263, -3263, -3263, 22003, 1177, 863, -3263, 22003, -3263, - -9, -3263, -3263, 758, 43530, -3263, 22003, 22003, 404, 748, - 542, 43530, 36380, 928, -3263, 166, 981, 1325, -3263, 963, - -3263, 43530, -3263, -3263, -3263, 40230, 751, -3263, 14108, 1195, - 43530, 43530, 1007, 43530, 43530, 36380, 22003, 1058, 830, 1181, - 991, 967, 653, -3263, -3263, -3263, -3263, 1040, -3263, -3263, - 889, -3263, -3263, -3263, 137, -3263, 56, -3263, -3263, -3263, - -3263, -3263, 1055, 828, -3263, -3263, 93, -3263, -3263, 43530, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, 1198, -3263, - -3263, 14108, 176, 1367, 1259, 22003, -3263, -193, -3263, -3263, - 1174, -3263, -3263, 36380, 22003, -3263, -3263, -3263, 19781, -3263, - -3263, 1393, -3263, 868, -3263, 22003, 991, -3263, 1107, 1027, - 748, 951, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, 888, 330, -3263, -3263, 1215, 1347, -3263, 1065, - -25, 998, 938, 95, -25, 38580, 1263, -3263, 135, -3263, - 1350, -3263, -3263, 1063, -3263, -3263, -3263, 1076, 1087, 1264, - 1077, -3263, 169, 267, -3263, -3263, 8, -3263, -99, 1263, - -25, 186, -3263, 1300, 1424, 247, -162, -3263, 702, -3263, - -3263, 1491, -3263, -3263, -3263, -3263, -3263, 1198, -3263, -3263, - -3263, 1005, -3263, 1227, 1109, -3263, -3263, 36, -3263, 1017, - 643, -3263, -101, 36930, -3263, -3263, -3263, 99, -3263, -3263, - -3263, 36380, 1165, 1082, 22003, 318, -3263, 40780, 22003, -3263, - 192, 14108, -3263, -3263, 1593, -3, 117, -3263, 1548, 1211, - -3263, -3263, -3263, -3263, 1460, -3263, 1046, 1049, 1419, 1060, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, 1096, -3263, -3263, - -3263, 863, -3263, 22003, -166, 22003, -3263, 1071, -3263, 1094, - -3263, 1075, 1115, 1120, 1124, 1132, 16988, -3263, 1136, 1142, - 1147, 1162, 1168, 1183, 1187, 1188, 1192, 1193, 1202, 1203, - 1205, 1206, 1046, 1046, 1208, 1209, 1210, 1213, 561, 1216, - -3263, 1217, 1218, 1219, 1220, 1221, 1225, 1228, 1229, 1230, - 1232, -3263, 1233, -3263, 1234, 1235, 1237, 1239, 1244, 1246, - 1247, 1248, 1249, 1252, 1253, 1254, 1255, 1260, -3263, 1261, - 1265, 1266, 14108, 1267, 1268, 1269, 1270, 1271, 1272, 1274, - -3263, 1275, 1276, 1277, 1278, 1282, 1283, 1284, 1285, 1286, - 1287, 1288, 1289, 1290, 1292, 1299, -3263, -3263, 14108, 1307, - -3263, -3263, 1309, 1311, -3263, 1312, 1313, 1314, 1315, 1316, - 1324, 1326, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, - 1338, 1339, 1340, 1341, 1342, 1344, 673, 1348, 1349, 796, - 1352, -3263, 1353, -3263, 143, 1356, 1357, 1358, 1046, 1046, - 1046, 1359, 1360, 1361, 1362, 1363, 1365, 14108, 16988, 16988, - 16988, 9500, -3263, 43530, -3263, 43530, -3263, 1097, -3263, -3263, - 1439, -3263, 1069, 1139, -71, 633, 228, 1112, 16988, 3240, - 357, -3263, -3263, -3263, 1092, 1279, -3263, -3263, -3263, -3263, - -3263, 1366, -3263, 1111, -3263, -3263, -3263, 22003, -3263, -3263, - -3263, 1196, 69, 22003, 1257, -3263, -3263, -3263, -3263, -3263, - -3263, 1737, -3263, -3263, -3263, 1346, 1262, -3263, -3263, -3263, - -3263, -3263, -3263, 1317, -3263, -3263, -3263, 1368, -3263, 1368, - -3263, -3263, 1368, -3263, -3263, 1368, 535, 2777, -3263, -3263, - 43530, -3263, 44080, -3263, 19781, -3263, -3263, 1508, -3263, -3263, - 1662, -3263, 1636, 132, 1369, -3263, 22003, 38580, -3263, -3263, - 111, 1370, 1442, 1371, -3263, 1444, 22003, 22003, -3263, -3263, - -3263, -3263, 549, 53, 1372, 675, -3263, 43530, -3263, 276, - -3263, -3263, -3263, 1373, -3263, 14108, -3263, 1377, -3263, 664, - -3263, 1714, -3263, 1465, 14108, -3263, -3263, 1390, 963, 43530, - 43530, 22003, 22003, -3263, -3263, -3263, 581, -3263, -3263, 43530, - -25, 36380, -3263, -3263, -3263, 1788, 186, 43530, -25, -3263, - 1732, 1483, -3263, -3263, -3263, 1806, -3263, -3263, 1797, 1392, - -3263, -3263, -3263, 186, -3263, -3263, -3263, -3263, -3263, 22003, - -3263, -3263, 186, -3263, 186, 186, -25, -25, 1447, -3263, - -3263, 1397, -3263, 1447, 1528, 623, 133, 1613, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, 539, -3263, - -3263, -3263, -3263, -3263, -3263, 104, -3263, -3263, -3263, 1222, - 814, 814, 1412, -3263, 226, 22003, 117, 1465, 22003, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, 1405, -3263, 1406, 1404, - -3263, 1839, 1841, 1843, 1849, 1850, 1852, 1854, 1855, 1857, - 1859, 1860, 1861, 1866, 1867, 1868, 1440, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, 1489, -3263, -3263, -3263, -3263, - 909, -3263, -3263, -3263, 99, 1443, -3263, 38580, 1971, 36380, - 43530, 43530, 1840, 22003, -3263, -3263, 253, 253, 1674, 1071, - -3263, 84, 43530, 1845, 26422, 91, 14108, 14108, 14108, 815, - 162, 1957, 2010, 2010, 2010, 14108, 14108, -3263, -3263, 14108, - -3263, 14108, 14108, 14108, 14108, 851, -3263, -3263, 10076, -3263, - 1449, 14108, 14108, 1536, 14108, 1279, 14108, 14108, 23109, 14108, - 14108, 14108, 14108, 14108, -100, 14108, 3240, 14108, 14108, 14108, - 1457, 14108, 14108, 14108, 14108, -3263, 14108, 14108, 290, 14108, - 1907, -54, 14108, 14108, 14108, -3263, 10652, 14108, 14108, 14108, - -3263, 14108, 14108, 14108, 14108, -3263, 2024, -3263, 23109, 891, - 14108, 14108, 929, 14108, 14108, 14108, 14108, 14108, -3263, -3263, - -3263, -3263, 10076, -3263, 14108, 14108, 14108, 14108, 14108, -3263, - 16988, 14108, 11228, 14108, 14108, 14108, 14108, 1461, 14108, 14108, - 2010, 2010, 14108, 14108, 14108, 995, 10076, -3263, 14108, 1279, - 151, 151, 14108, 1279, 8348, 14108, -3263, -3263, -3263, -54, - 11804, 1462, -3263, -3263, -3263, 2010, 23109, 2010, 14108, 14108, - 14108, -3263, 1492, 1957, 1957, 1957, -3263, 9500, 766, 1464, - 14108, 24215, 1454, 14108, -3263, -3263, -3263, 16988, -3263, -3263, - 588, -3263, -3263, -3263, 14684, 1466, 16988, 16988, 1789, 16988, - 16988, 677, 16988, 16988, 16988, 16988, 16988, 16988, 16988, 16988, - 16988, 16988, 16988, 1957, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, 1474, -3263, 38580, 16988, 14108, - -3263, -3263, 43530, -3263, 36380, -3263, -3263, -3263, 69, 38580, - 1467, -3263, -3263, 1653, 1181, 22003, -3263, 43530, -3263, -3263, - -3263, -3263, 20334, 20334, -3263, 20334, -3263, -3263, 94, 96, - 1321, 1498, -3263, -3263, -3263, -3263, 1827, 22003, -3263, 547, - 22003, 117, -3263, 14108, 1465, -3263, 36380, 36380, 22003, 22003, - 18, -3263, 414, -3263, 1465, 1864, 20334, 20334, 20334, -3263, - -3263, -3263, -3263, -3263, 92, -3263, -3263, -3263, 1469, -3263, - -3263, -3263, -3263, -3263, 41330, 163, -3263, -3263, 1465, 1871, - -3263, -3263, 1478, 43530, -3263, -3263, -3263, -3263, -26, -3263, - -3263, -3263, -3263, -73, -3263, -3263, -3263, -3263, 1612, -25, - 43530, -3263, -3263, -3263, -3263, -3263, 1678, 1263, 267, -25, - 186, 22003, -25, -25, -3263, -3263, 914, -3263, 702, -3263, - -3263, -3263, -3263, 43530, 1044, 1624, 1488, -3263, -3263, 22003, - -3263, 1490, -3263, 1892, 2021, 1263, -3263, -3263, -3263, 433, - 433, 1465, 1606, 1608, 1610, 1616, 1617, 1645, -3263, -3263, - 690, 2012, 433, 433, 2012, 433, 433, 433, 1583, 1960, - 433, 1846, 1600, 747, 1848, 433, -3263, 1602, 1965, 433, - 433, 433, 2012, 2043, 433, 433, 433, 433, 433, 119, - 433, 433, 433, -3263, 3058, -3263, -3263, 1515, 20887, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, 41880, -3263, 14108, - 162, 1465, 1465, 672, 1465, 162, 1465, 1465, 1465, 1465, - 1465, 162, 1465, 1465, 162, 1593, -3263, -3263, -3263, -3263, - -3263, -86, -3263, -3263, 1102, 43530, -3263, 2090, -3263, -3263, - -3263, -3263, -3263, 22003, 1561, 1498, 26422, -3263, 623, -3263, - 1512, -3263, 1521, 1529, 778, -3263, 2010, 1530, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, 1527, 1531, 1534, 1535, 2092, - 1537, -186, 1538, 1542, 1543, 1540, 1544, -203, 1546, -3263, - 1549, 1551, 1550, -3263, 1547, 1553, 1552, 1556, 1559, 1562, - 1545, 806, 818, 1563, 1565, 842, -3263, 1567, 1569, 1962, - 1573, 1574, 858, -3263, 1576, 1577, 1578, 871, 1581, 896, - 907, -3263, -3263, -3263, -3263, 1582, 1584, -3263, -3263, -199, - 1587, 1588, 1589, -3263, 1591, 1594, 1595, 912, 1597, 1599, - 919, 1601, 1603, 1598, 1604, 1605, -3263, 2010, 1609, 1611, - 1614, 2010, 1615, 925, 1618, 1621, 932, 935, 1622, 1623, - 1625, 1626, 1628, 1629, 939, 1631, 950, 1633, 26, 1634, - -3263, 1635, 1637, 1638, 1639, 953, -3263, 1640, 1642, 1643, - 1644, 1648, 87, 1649, 2010, 1646, 1652, 957, 1654, 1655, - 1657, 12380, 12956, 13532, -5, 1659, 317, -3263, 1658, -3263, - 1661, 1663, -3263, 1545, 1665, 969, 973, 1668, 14108, -189, - -3263, -100, -3263, -3263, -3263, 1590, 66, -3263, 1719, 43530, - -3263, 823, 1541, -3263, -3263, -3263, -3263, -3263, 521, -3263, - 1619, -3263, 1667, 9500, 658, 1627, 16988, 82, 1139, 1670, - 16988, 16988, 16988, -71, 633, 633, 228, 3240, 228, 3240, - 1112, 1112, 1112, 1112, 1112, 1957, 14108, -3263, 1957, -3263, - 1671, 262, -3263, -3263, -3263, -3263, 1257, 1889, -3263, 1669, - -3263, -3263, 984, -3263, 1630, -3263, 1656, 1664, 1677, 1686, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, 1263, 414, 1702, 1672, -3263, -3263, 1696, 1940, - -3263, -3263, -3263, -3263, -3263, -3263, 1713, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, 175, -3263, -3263, 1675, 1675, - 18670, -3263, -3263, -3263, -3263, 1870, 2053, 2074, 2075, -101, - -3263, 140, -3263, 134, 2025, 1263, -3263, 2078, 39130, 26974, - -3263, 1682, 2022, 1683, 433, 34730, 367, 24765, 35280, -3263, - -3263, 672, -3263, 52, -3263, -3263, -3263, -3263, 581, 581, - 1706, -3263, -3263, 1919, -3263, -3263, -3263, 1498, 186, -3263, - -3263, -3263, 1689, -3263, -3263, 623, 2029, 2030, -3263, 1912, - 45, 1912, 623, 623, 23109, 623, 1480, -3263, 162, 1967, - -3263, -3263, -3263, -3263, -3263, -3263, 37480, 35830, -3263, -3263, - -3263, 2172, -3263, 2175, 835, -3263, 23662, 605, 605, -3263, - 77, 121, 23662, -3263, -3263, 23662, 672, 162, 23662, 162, - 1465, 1465, 1516, 433, 162, -3263, -3263, 2034, 2036, 23662, - 23662, -3263, 38580, -3263, 433, 853, 672, 672, 23662, 23109, - 55, 1465, 162, 162, 952, -3263, -3263, -3263, 22003, 1099, - 38580, 1704, -3263, 2908, 18117, 43530, 306, 149, -3263, 1695, - 1705, -3263, 1002, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, 1790, -3263, 1707, -3263, - -3263, 129, -3263, 1705, 22003, 17564, -3263, 102, -3263, 1666, - -3263, 623, 1929, 90, 1498, 1715, 91, 15260, -3263, -3263, - 14108, 1709, -3263, 14108, 14108, -3263, -3263, -3263, 203, -3263, - 38030, -3263, -3263, -3263, -3263, -3263, 14108, 38030, 203, 14108, - -3263, -3263, 1711, -3263, 2063, 2063, -3263, -3263, 1279, -3263, - 43530, -3263, 14108, -3263, 14108, -3263, 1279, -3263, 14108, -3263, - 14108, 14108, -3263, 1955, -3263, 14108, -3263, 14108, 14108, -3263, - 14108, -3263, -3263, 14108, -3263, 14108, 14108, -3263, -3263, 1956, - -3263, 14108, 14108, -3263, -3263, 14108, -3263, 14108, -3263, 14108, - -3263, 14108, -3263, 14108, -3263, 16988, 23109, 1721, -3263, -3263, - -3263, 1722, -3263, -3263, 14108, 14108, -3263, -3263, 14108, -3263, - 14108, -3263, -3263, -3263, -3263, -3263, -3263, -3263, 14108, 14108, - -3263, 14108, -3263, 14108, -3263, -3263, 14108, 14108, 14108, -3263, - 14108, -3263, -3263, -3263, -3263, 15836, 14108, 14108, 14108, 1724, - -3263, -3263, -3263, 14108, 14108, 14108, -3263, 14108, 2125, 14108, - 2126, 14108, 2127, 14108, -3263, 14108, 1966, -3263, -3263, -3263, - -3263, -3263, 14108, -3263, 14108, -3263, 1746, 14108, 14108, 2169, - -3263, -3263, 1738, 1739, -3263, 1735, 1736, 1740, 38580, 14108, - -3263, -3263, -3263, 14108, -3263, -3263, 14108, -3263, -3263, -3263, - -3263, -100, 1004, 1743, 16988, -3263, 1627, 16988, 9500, 658, - 1627, 88, -3263, -3263, -3263, 1747, -3263, -3263, 1748, 43530, - -3263, -3263, -3263, 43530, 1756, 27526, 36380, 36380, 36380, 1751, - 14108, -3263, -3263, 1981, -3263, -3263, 22003, 2112, -3263, -3263, - 36380, -3263, 330, 23109, -3263, 1752, -3263, 1752, 602, 1754, - 1012, -3263, -3263, -3263, 1749, 951, 2155, 36380, 36380, 36380, - -3263, 1498, 1498, 636, 1807, 2103, -3263, -3263, -3263, -3263, - 42430, -3263, -3263, -3263, -3263, 284, 43530, 2083, 43530, 8924, - -3263, -3263, -3263, 2270, 14108, -3263, 36380, -44, 66, 433, - -3263, -3263, -3263, -3263, -3263, -3263, 1263, -3263, -3263, -3263, - -3263, 2060, -3263, -3263, -25, 914, -182, -3263, 1118, -3263, - -3263, -3263, 2100, 623, 1912, 1912, 2102, 1996, -42, 1769, - -3263, 433, 1044, 157, -3263, 330, -3263, -3263, 14108, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, 14108, 2107, 2108, 605, -3263, 23662, -3263, -3263, - -166, 61, -3263, -3263, -3263, -3263, -3263, -3263, 35830, 1465, - -3263, 23662, -3263, -3263, 139, -3263, 1465, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, 1772, -3263, 1029, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, 22003, -3263, 1022, -3263, -3263, - -3263, -3263, 43530, -3263, -3263, 22003, -3263, -3263, 2516, 43530, - 43530, 2330, -3263, 43530, -3263, -3263, -3263, -3263, -3263, 2006, - -165, 2333, -3263, 22003, -3263, 1778, 1028, -3263, -3263, -3263, - 2335, 2551, -3263, 1781, 1498, 2104, -3263, -3263, 14108, 1782, - 1784, -3263, -3263, 1785, 1791, 1791, -3263, -3263, 1792, 1791, - 2128, -3263, 2136, 1793, 1794, 1796, 1798, 1800, 1801, 1802, - -3263, -3263, 3240, 3240, 1805, 1786, 1809, 1813, 1814, 1815, - 1816, 1818, 1821, 1822, 1825, 1826, 1828, 1829, 1831, 1832, - 1833, 1834, 1835, 1929, 1836, 1837, 1842, 1844, 1851, 1853, - 1030, 1856, 1858, 1033, 181, -3263, -3263, -3263, 1862, 1863, - 1865, 1873, 1875, 1876, 1878, 1881, 1883, 1847, 1884, 1885, - 1886, 14108, 1887, 114, 1043, 1869, -3263, 1888, 1890, 1893, - 1896, 14108, 1897, 14108, 1898, 14108, 1899, 1902, 1903, 1905, - 1906, 14108, 1811, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, 1823, -3263, 1097, -3263, 1908, -3263, -3263, -3263, 357, - -3263, 1066, 1909, -3263, 16988, -3263, 14108, 1910, -3263, 1913, - -3263, -3263, -3263, -3263, -3263, -144, -144, -144, 16412, -3263, - 2237, -3263, 47, -3263, 2134, -3263, -3263, 888, 1911, -3263, - 433, 16412, 1675, 1980, -3263, -3263, 602, 23109, 26974, -3263, - 36380, 1060, 1060, 1060, 1263, 2206, 1702, 1702, -3263, 25315, - -3263, -3263, 1978, -3263, -3263, 28078, -3263, 812, -3263, -3263, - 16988, 1218, -3263, -3263, -3263, 37480, -3263, -3263, 433, 1872, - 1891, -3263, -3263, 42980, 14108, -3263, 2274, -3263, -3263, 1914, - 623, 2065, 623, -3263, 2187, 2188, 623, -3263, -3263, -3263, - 23109, 1498, 16412, 605, 605, 605, -3263, 888, -3263, 1915, - 1029, -3263, 23662, -3263, -3263, -166, 1916, 2315, 2318, 23662, - 2270, -3263, -3263, -3263, -3263, 2516, 23109, -3263, -3263, -3263, - 1068, -3263, 18117, -3263, -3263, -3263, 1918, 1920, 1791, -3263, - -3263, -3263, -3263, -3263, 1792, 2062, -3263, 1792, 1792, -3263, - -3263, -3263, -3263, -3263, 148, 194, -3263, -3263, 148, -3263, - -3263, -3263, 68, 735, 1792, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, 1791, 1791, -3263, -3263, -3263, 148, 1921, -3263, - 1791, 714, -3263, 197, 85, 1922, 1923, 1791, 1924, 1901, - -3263, 1070, -3263, -3263, 153, -3263, 635, -3263, -3263, -3263, - 1926, -3263, 3058, -3263, 369, -3263, 43530, -3263, 581, -3263, - 3240, -3263, -3263, -3263, 2095, -3263, 148, 2096, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, 14108, - 1927, 1928, 1930, -3263, -3263, -3263, -3263, -3263, -3263, 14108, - -3263, -3263, -3263, -3263, -3263, 14108, -3263, -3263, -3263, -3263, - -3263, 2008, -3263, 2154, 14108, 14108, -3263, -3263, -3263, -3263, - 14108, -3263, -3263, -3263, 14108, 2400, 2082, 1931, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, 14108, -3263, -3263, - -3263, 3240, -3263, 14108, -3263, -3263, 14108, 14108, -3263, 14108, - 14108, -3263, 1933, -3263, 1934, -3263, 1937, -3263, -3263, 2160, - -3263, -3263, -3263, 14108, 951, 43530, -3263, -3263, 1941, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, 74, 1968, 1968, 1968, - 1218, -3263, 1079, -3263, -3263, 2277, -3263, 1373, 23109, 16412, - 1944, 1939, -3263, 643, -3263, -3263, 1942, 1060, -3263, 2472, - 2319, -3263, -3263, 38580, 1946, -3263, -3263, 2209, -3263, 100, - 2133, -3263, -3263, -3263, -44, 2035, 2037, 433, -3263, 1465, - 337, 1488, 2289, 968, 1997, 623, 623, 1047, 1998, 14108, - 14108, 1958, -3263, 1929, -3263, 2357, -3263, -3263, -3263, 1373, - 14108, -3263, 1959, 1963, 43530, -3263, 790, 306, -3263, 714, - -3263, -3263, -3263, -11, 2192, 2195, -3263, 715, -3263, 1964, - 715, 715, 2503, 128, -3263, 2503, 38030, -3263, 1065, -3263, - 1999, 148, -3263, -3263, 2000, -3263, -3263, -3263, 715, 1969, - 148, -3263, -3263, 2200, 715, -3263, 38580, 1465, 1795, -3263, - 2015, -3263, 2433, 2307, -3263, 714, -3263, 2308, 2212, -3263, - 2213, -3263, -3263, 2214, -3263, 2216, 2218, 715, 2221, -3263, - 715, 43530, -3263, 43530, 2002, 388, -3263, -3263, -3263, 1986, - 1987, -3263, -3263, 22003, -3263, -3263, -3263, -3263, 2052, 43530, - 2002, -3263, 643, 102, 1980, -3263, 1081, 1029, 1990, -3263, - 1991, 1992, -3263, 1083, 1993, -3263, -3263, -3263, 1085, 1994, - 133, 2003, 1989, 2004, 1995, 2005, 2007, 2261, 2419, -3263, - 2009, 2011, 2014, 2016, 2017, 2018, 2019, -3263, -3263, -3263, - 2001, -3263, -3263, -3263, -3263, 2020, 39130, -3263, 2091, 2093, - -3263, -3263, 2097, -3263, -3263, 112, 1067, -3263, -3263, -3263, - -3263, 16412, 2346, -3263, 671, -3263, -3263, -3263, -3263, 14108, - -3263, 1929, 2529, -3263, 25315, -3263, -3263, -3263, -3263, -3263, - 2026, 2027, 8924, 2580, -3263, 623, -3263, 2068, -3263, -3263, - -3263, 2069, -3263, -3263, 43530, 2104, 2366, -3263, 671, 1029, - 43530, 43530, 1098, -54, -54, -54, 706, 706, -3263, -3263, - -3263, -3263, 575, 130, 43530, -3263, -3263, 879, -3263, 2031, - 2033, -3263, -3263, -3263, -3263, 715, -3263, 133, -3263, -3263, - -3263, -3263, -3263, 38030, -3263, -3263, 2503, -3263, -3263, -3263, - 133, -3263, 2038, -3263, -3263, -3263, 1046, -3263, -3263, 2269, - 2073, -3263, -3263, -3263, -3263, 2040, 2041, 2044, 2048, -3263, - 2042, -3263, -3263, -3263, 811, -3263, -3263, -3263, -3263, -3263, - 779, 43530, 2432, 1465, 2051, 2054, -3263, -3263, -3263, -3263, - -3263, 2056, 951, -3263, 43530, -3263, 2272, -3263, -3263, -3263, - 2273, -3263, -3263, 14108, -3263, -3263, -3263, 2010, -3263, 14108, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, 146, - 2278, 162, 162, 162, 162, 1067, -3263, -3263, 2110, 2141, - -3263, 134, -3263, -209, 1029, 14108, 1263, 63, 2376, -3263, - -3263, -3263, -3263, 2360, 1130, 14108, 2066, 14108, 2067, 1103, - -3263, -3263, -3263, 2071, -3263, -3263, 1105, 1121, -3263, -3263, - -3263, 306, -3263, -3263, -3263, 383, 383, 1127, -3263, -3263, - -3263, -3263, -3263, 1133, -3263, -3263, -3263, 1137, -3263, -3263, - 1046, -3263, 148, 2503, 148, 2503, 2583, 2293, 2587, -3263, - -146, -3263, -3263, 2516, -3263, -3263, -3263, 43530, 2516, -3263, - -3263, 1029, 2072, 2076, 1143, 2077, 2079, 2080, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, 23109, 22003, -3263, 302, 14108, - -3263, -3263, -3263, 2275, 2607, 2610, 2519, 2613, 63, -3263, - -129, -3263, 2514, -3263, -3263, 43530, -3263, 43530, -3263, 43530, - 41880, 2267, -3263, -3263, -3263, 2659, -3263, 660, -3263, -3263, - 879, 43530, 148, 133, 148, -3263, -3263, -3263, -3263, -3263, - 2317, -3263, 2320, -3263, 2094, 846, -3263, 2533, 2258, -3263, - -3263, 643, -3263, -3263, -3263, -3263, 14108, -3263, -3263, -3263, - 2099, -3263, 433, -3263, -3263, -3263, 1029, 43530, -3263, 133, - 133, 2627, 133, -3263, 2630, 2631, -129, -3263, 672, 14108, - 1152, 1157, -3263, 2105, 2109, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, 643, -3263, -3263, -3263, - 2556, 33070, 2254, -3263, -3263, 2106, 23109, 16412, 1516, -3263, - -3263, -3263, -3263, 133, -3263, 133, 133, -3263, 2666, 2111, - -3263, -3263, -3263, -3263, -3263, 43530, 108, -3263, 44630, 44630, - 43530, -3263, 2142, -3263, 3970, 126, -3263, -3263, -3263, -3263, - -3263, 2113, -3263, -3263, 2516, -3263, -3263, -3263, 35830, -3263, - 2115, -3263, -3263, -3263, 2406, -3263, -3263, -3263, 2515, 43530, - -3263, -3263, -3263, -3263, 14108, 14108, 2146, -3263, -3263, 33070, - 33070, -3263, -3263, -3263, 33070, -3263, -3263, 2529, 2119, 2552, - -3263, 2470, 2557, 14108, -3263, -3263, -3263, 519, -3263, -3263, - 30295, 2120, 33625, 14108, 126, -3263, -3263, 2376, 14108, 2130, - 2131, -3263, 162, -3263, 2487, 2148, 2164, 14108, 33070, -3263, - 2569, 2602, 2443, 2132, -3263, 2135, 2586, 44630, 846, 2501, - -3263, -3263, -3263, -3263, 43530, -3263, -3263, -3263, 652, -3263, - -3263, 30850, 2157, 39680, 31405, 2138, -3263, -3263, 14108, -3263, - -3263, -3263, 33070, 2378, 2147, -3263, 2149, -3263, 33070, 14108, - -3263, 2581, 2161, -3263, -3263, -3263, 2524, 2151, 281, -3263, - 2150, -3263, 2588, 33070, -3263, 2473, 19223, 2291, 43530, 28630, - -3263, 2171, 33070, 2558, 43530, 2516, 2561, 2562, -3263, 2331, - 31960, -3263, -3263, 38580, 1163, -3263, -3263, 23109, -3263, -3263, - 51, 2176, -3263, 29185, -3263, -3263, 2626, 493, -3263, -3263, - 2191, -3263, -3263, 21445, 2099, -3263, 33070, -3263, 33070, 34180, - 14108, -3263, 2203, -3263, -3263, -3263, 3970, -3263, -3263, -3263, - 32515, 29740, -3263, -3263, 25865, -3263, -3263, -3263, 2568, -3263, - -3263, -3263, 1279, -3263, 34180, -3263, -3263, -3263, -3263 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const short int yypgoto[] = -{ - -3263, -3263, -3263, -3262, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, 916, -3263, -3263, -3263, -3263, -3263, 1149, -1418, - -3263, -3263, -3263, -3263, -3263, 344, -38, -3263, -3263, -3263, - -3263, -3263, -3263, 2057, -819, -3130, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -479, -598, -3263, -3263, -470, - -3263, -3263, -2313, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -953, -915, -3263, -3263, -3263, -3263, -1876, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -921, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -843, -3263, - -3263, -801, -3263, -3263, -840, -3263, -3263, -3263, -805, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -290, -3263, - -3263, -1830, -3263, -3263, -3263, 1620, -3263, 1676, -3263, 2364, - -3263, -370, -17, 1212, -1900, -1029, -551, -540, -1647, -3263, - -3263, -3263, -378, -3263, -3263, 718, 71, 1223, 1250, 761, - 816, -3263, -3263, 86, -3263, -2649, -3263, -3263, -3263, 54, - -3263, 58, -3263, -3263, -3263, -1385, 20, -1365, -3263, -383, - -1215, -3263, -175, -3263, -220, -3263, -449, -2020, -1919, -3263, - -3263, -3263, -210, 97, 144, -3263, -2557, -2224, -3263, -3263, - -593, -3263, -3263, -3263, -600, -3263, -366, -514, -3263, -3263, - -1491, -1744, -3263, -3263, -2168, 1650, -2056, -431, -1859, -3263, - -386, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - 793, -3263, -3263, -3263, -218, -270, -1334, -2737, -3263, -3263, - -3263, -3263, -3263, -3263, 1024, -3263, -3263, 1318, 1742, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - 936, -3263, -3263, -3263, -3263, -3263, -872, 1660, -3263, -3263, - -3263, 1295, -3263, -3263, -3263, -3263, 1381, -3263, -3263, 2121, - -3263, -3263, -3263, -3263, 544, 961, -3263, -3263, -3263, 2139, - 933, -467, -1756, -3263, 2354, -3263, -3263, -3263, -1300, -1987, - -3263, 2211, -455, -2312, 1384, -707, -65, -3263, -267, -743, - 4756, -3263, -3263, -1244, -3263, -3263, -784, -3263, -3263, -1276, - -1194, 1496, 1495, 278, 394, 57, -3263, -3263, -498, -3263, - -3263, -3263, -1254, -723, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -64, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -1120, -3263, 744, -3263, -1067, -3263, -3263, -3263, - 1586, -3263, -3263, -3263, -3263, -3263, -1874, -1338, 168, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -1861, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -1315, -3263, -1621, -3263, - -3263, -939, -3263, -3263, -550, -2173, -1176, 457, -3263, -3263, - -963, 1673, -1538, -3263, -3263, -3263, 595, -3263, -3263, -3263, - -3263, -3263, 145, -2009, -1051, -3263, -3263, -2616, -636, -1811, - -592, -3263, -1829, -298, -1174, -1866, -3263, -3263, -3263, -3263, - -742, -3263, -3263, -3263, -275, 958, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -461, -372, 934, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, 1925, 1874, 1000, -3263, -3263, - -2079, -3263, -3263, 975, -3263, -51, -1858, -307, 238, -3263, - -3263, 242, -2600, -3263, -3263, -3263, -3263, -3263, -3263, 182, - -792, -610, 2408, -3263, -3263, -3263, -3263, -3263, -3263, 2137, - 1697, -1479, 2355, -3263, -3263, -3263, -3263, -3263, 1382, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, 2424, -3263, -970, -3263, - -410, -3263, -3263, -591, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, 1481, -3263, -3263, -3263, -3263, -3263, 1894, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, 264, -670, -3263, - -499, -687, -3263, -564, -3263, -3263, -3263, -789, -3263, -740, - -678, -1019, -121, -2582, -1407, 261, 1895, -2700, -1142, -1297, - -1295, -1826, 21, -3263, -7, -553, -437, -885, 2738, -2382, - -417, -495, -3263, 241, -3263, -3263, -3263, -3263, 1441, -3263, - -3263, -3263, -3263, 563, -3263, -3263, -3263, 230, -3263, -40, - -237, -3263, -3263, 283, -3263, 1476, -3263, -3263, -3263, -3263, - -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - 1904, 2455, 2302, -3263, 1945, -3263, -3263, -3263, -3263, -3263, - -365, -3263, -169, -3263, -1010, 1744, 445, -3263, 642, -852, - -1140, -3263, -367, -3263, -3263, 263, 2467, 2311, -3263, -3263, - -3263, -3263, -3263, -2227, -597, -3263, -2297, -3263, -3263, -3263, - -3263, -1159, -3263, -3263, 1607, -179, -3263, -3263, 407, -3263, - -3263, -70, -3263, 2429, 2189, -3263, 865, -3263, 147, -3263, - -3263, -131, -3263, -3263, -3263, -3263, -3263, -3263, -3263, -3263, - -3263, 910, -3263, -3263, -3263, -3263, -3263, -3263 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -2011 -static const short int yytable[] = -{ - 387, 650, 714, 679, 1001, 1091, 1635, 1474, 564, 1761, - 1419, 1762, 387, 1055, 2220, 387, 1160, 1161, 1162, 1196, - 1197, 1199, 387, 1181, 979, 672, 672, 672, 1205, 672, - 920, 672, 387, 1023, 1028, 705, 706, 1515, 2373, 1973, - 1669, 2271, 387, 422, 1261, 2335, 2319, 2324, 2327, 2669, - 2289, 1783, 1989, 2475, 1824, 1667, 2969, 1028, 1791, 1056, - 2494, 2348, 1636, 1637, 1638, 922, 1659, 2497, 2629, 2358, - 482, 2362, 483, 1564, 2961, 1650, 1728, 2062, 1931, 1780, - 387, 2357, 2954, 1489, 2308, 664, 1263, -1510, 982, 2339, - 2340, 1807, 1809, -1511, 1492, 1493, -1119, -1859, 2247, -1860, - 387, 387, -259, 387, 2594, -249, 1706, -260, 477, 958, - 2392, 958, 1287, 2390, 387, -1923, 1289, 3022, 1385, 1293, - 1641, 1642, 498, 1644, 2994, 1302, 1303, 1304, 3268, 1708, - 2411, 2412, 1712, 3098, 993, 2382, 1097, 2005, 1423, 733, - 2379, 2066, 492, 1795, 1894, 1797, 2379, 1098, 3181, 2391, - 958, 953, 2394, 1139, 3538, 1313, 1314, 1315, 1678, 2472, - 1739, 1740, 1629, 2403, 2404, 1745, 2417, 668, 2982, 3126, - 2203, 1142, 2413, 1698, 1870, 1353, 722, 1296, 2992, 2382, - 2983, 2993, 106, 618, 619, 1760, 3675, 1764, 1385, 1018, - 2697, 1718, 1719, 1720, 2984, 1947, 1103, 950, 1029, 2337, - 3002, 3374, 1727, 618, 619, 3098, 3021, 2382, 1025, 2624, - 1093, 3375, 1621, 1051, 2982, 1093, 988, 2982, 618, 619, - 697, 1630, 2696, 2380, 2381, 2465, 2983, 1013, 1434, 2983, - 3160, -1510, 1037, 1106, 1574, 2484, 959, 1915, 959, 3062, - 2984, 1059, 3537, 2984, 2456, 3315, 672, 2383, 2776, 618, - 2988, 966, 618, 619, 569, 2173, 1358, 2225, 1631, 2485, - 3149, 2467, 2186, 2896, 2006, 107, -1119, 1891, 1918, 1629, - 2301, 826, 1081, 1143, 1019, 2046, 1144, 959, 3162, 1039, - 2064, 2353, 1940, 3527, 469, 3468, 2863, 119, 1440, 1145, - 670, -340, 392, 393, 2354, 2617, 561, 1608, 964, 2659, - 2486, 443, 2678, 2487, 1066, 2907, 2304, 1040, 3099, 3116, - 431, 2488, 428, 1062, 2442, 437, 2467, 2660, 1892, 441, - 2356, 565, 1632, -1384, 2226, 1359, 2683, 2087, 1630, 40, - 1316, 1870, 508, 3163, 999, 3444, 669, -1510, 1571, 3368, - -1119, 1166, 602, -1511, 2080, 2405, 1297, -1859, 1041, -1860, - 108, 967, 2457, 1042, 1347, 958, 2217, 3646, 121, 3445, - 1363, 1057, 106, 2434, 1167, 1631, 3369, 1053, 1343, 1344, - 2218, 2684, 2088, 3647, 3036, 2959, 2129, 1067, 2687, 1140, - 3099, 442, 3037, 489, 3159, 109, 977, 1681, 2081, 2343, - 1682, 3434, -1978, 1633, 1341, 3539, 2305, 1075, 1511, 487, - 1871, 1441, -1119, 2047, 387, 3100, 2025, 1054, 2777, 1113, - 2845, 2035, 566, 3376, 387, 1058, 1146, 2041, 387, 3284, - 2044, 1377, 557, 387, 3703, -1119, 3159, 470, 387, 1632, - 1114, 1159, 3394, 429, 3187, 670, -1510, 732, 3528, 1476, - 1916, 3235, -1511, 3191, 1514, 2661, 968, 1482, 1082, 2384, - 387, 574, 2468, 1609, 1572, 603, 707, 1367, 3468, 1203, - 1460, 2355, 1388, 485, 559, 1368, -1384, 387, 1380, 1020, - 2443, 2664, 51, 1666, 1052, 1494, 1495, 387, 567, 2700, - 1386, 387, 959, 916, 1905, 918, 919, 387, 2679, 387, - 387, 1689, 2673, -340, 387, 387, 1516, 2698, 1043, 1147, - 1633, 2227, 1919, 2682, 387, 690, 2071, 2468, 387, -1119, - 3038, 3277, 1953, 387, 387, 1421, 387, 387, 387, 387, - 1927, 1014, -1119, 1973, 1906, 1430, 2476, 2963, 2695, 2489, - 3540, 1369, -1119, 3305, 604, 1564, 1477, 3101, -1119, 2326, - 723, 1348, 2702, 2445, 1097, 110, 1872, 2914, 3102, 1863, - 1386, 3377, 387, 2302, 1575, 1098, -1119, 1871, 570, 1756, - 1422, 2379, 3164, -1119, 1973, 1634, 698, 1044, 387, 2204, - 1501, 2785, 1108, -1119, 3393, 2379, 387, 387, 1953, 1371, - 1021, 387, 951, 2293, 2066, 1762, -1119, 2147, 387, 1340, - -1119, 2151, 988, 1108, 2385, 2338, 973, 2309, 954, -1119, - 1629, 1030, 2246, 1097, 599, 985, 2995, 2250, 2251, 1424, - 3676, 3127, 2222, 1794, 1098, 988, 3118, 2007, 387, 2347, - 3102, -1119, 670, 1063, 2189, 3103, 1045, 692, 1108, 1815, - -1510, 2252, 1298, 2253, 2243, 1038, -1511, 1022, -340, 672, - -1859, 2694, -1860, 3182, 1108, 1340, 2490, 2361, 1463, 1762, - 1520, 1340, 1491, 2458, 3316, 1818, -569, 3092, 3023, 1630, - -1923, -1119, 2187, 2985, 1616, -1510, -1119, 724, 3371, 3436, - 2065, -1511, 1634, 3541, -1119, -1859, 387, -1860, 1610, 2237, - -259, -1119, -1119, -249, 387, -260, 2685, 387, 2864, -1119, - 387, 387, 1108, -1923, 3416, 1372, 1631, 2491, 409, 3420, - 527, 430, 2416, 1872, 1762, 503, 2223, 1374, -2010, 2985, - 1378, -1119, 2985, 1502, 1402, 576, 1046, 1503, 3395, 492, - 3435, 585, 1377, 2474, 461, 2492, 387, -137, 387, 2846, - 1064, 2989, 2759, 2674, 2675, 3422, 1576, 3005, 3019, 708, - 1600, 666, 1907, 3044, 1340, 502, 1784, 1047, -339, 1065, - 396, 558, 3312, -1119, 1165, 3229, 1170, 1965, 3180, 525, - 1632, 3185, 2909, 2634, 2635, -503, 462, 2636, 1380, 1966, - 3020, 3457, 578, -1119, 2366, 3406, 586, 3408, 3006, 2028, - 583, 1683, 3007, 410, 1684, 605, 606, 607, 608, 609, - 610, 684, 1026, 2289, 3396, 1349, 1350, 1351, 2943, 1876, - 2934, 611, 2947, 2393, 1954, 2395, 670, 2244, -1119, 505, - 2400, 2944, 391, 770, 1965, 2948, 1107, 1858, 3216, 3397, - 3479, 411, 1113, 2918, 747, 3008, 2418, 1625, 2420, 2421, - 2425, 1633, 1788, 2962, 397, 2258, 590, 463, 2029, 435, - 2502, 2503, 2259, 1114, 1876, 3461, 1891, 3463, 1469, 394, - 1877, 1924, 1380, -1119, 1436, 1450, 1380, 2258, 2238, 448, - -339, 3336, 3045, 1625, 2645, 3545, 2379, -1119, 1967, 3337, - 1954, 1865, 783, -508, 712, 713, 387, 3517, 387, 1952, - 451, 1884, 1521, -1119, 452, -1119, 826, 455, 1921, 1823, - 3153, 1514, 2206, 1108, 1522, 1028, -1981, 770, 1926, 1474, - 1474, 1929, 1930, 1625, 1778, 1910, 1799, 1113, 3152, 1403, - 387, -1119, -1119, 731, 1521, 456, 387, 1987, -1119, 1470, - 712, 713, 1451, 1028, 1026, 1785, 1522, 2668, 1114, 1800, - 591, 1866, 1867, 587, 1829, 3313, 2787, 1859, 1383, 2030, - 1626, 1625, 3054, 834, 3145, 472, 3682, 2376, 781, 1878, - 1879, 2534, -474, 387, 3055, 387, 783, 387, 2344, 3059, - 1817, 3217, 3326, 1142, 1113, 512, 3186, 3467, 1958, 387, - 387, 2590, 1825, 810, -55, 473, 1649, 685, 412, 387, - 387, 1464, 1465, 2363, 1564, 1114, 2620, 1880, 1762, 2583, - 387, 1475, 2637, 798, 592, -1981, 3666, 3458, 826, 1481, - 3036, 474, 686, 1634, 2535, 3350, 1908, 1625, 3037, 1452, - 2031, 1378, 387, 387, 387, 387, 1707, 2407, 2495, 3314, - 1404, 513, 387, 2500, 387, 2239, 3046, 579, 2026, 2027, - 387, 2034, 1876, 2036, 2037, 2038, 2039, 2040, 2508, 2042, - 2043, 2240, 1466, 1467, 831, 2513, 712, 713, 2707, 1437, - 670, 3009, 387, 1501, 1711, 1523, 1936, 810, 3010, 1629, - 2522, 2523, -339, 2377, 3556, 1143, 464, 2527, 1144, 3338, - 2703, 479, 1801, 942, 1203, 2532, 484, 2249, 3578, 3132, - 1490, 1145, 2585, 709, 3138, 3139, 3011, 1523, 465, 2592, - 413, 1471, 1786, 485, 3306, 3307, 2408, 1860, 387, 1453, - 1069, 387, 117, 2477, 118, 414, 398, 3047, 1787, 3407, - 2049, 3409, 3286, 466, 2550, 826, 3531, 3532, 1630, 1988, - 1744, 826, 1603, 1604, 3474, 1524, 1573, 830, 831, 2050, - 453, 415, 1936, 514, 1204, 1936, 3038, 1878, 1879, 943, - 1968, -265, 399, 2953, 114, 2708, 416, 710, 3012, 1525, - 387, 494, 387, 387, 387, 1631, 387, 1524, 3171, 999, - 1404, 467, 670, 3325, 1070, 387, 495, 387, 3162, 3493, - 2427, 2428, 498, 400, 2231, 2623, 500, 2232, 712, 713, - 944, 1525, 2032, 401, 1606, 454, 1203, 1937, 2409, 1123, - 1124, 2600, 2955, 2955, 2955, 945, 1502, 3597, 1345, 1346, - 1503, 387, 2929, 1526, 1938, 3611, 1936, -339, 1146, 509, - 2429, 3578, 3450, 1957, 3451, 2930, 863, 1939, 1936, 1632, - 399, 1973, 115, 3163, 3231, 1976, 1977, 3562, 1979, 1980, - 1981, 3013, 2430, 1984, 1838, 1526, 1839, 3172, 1992, 1802, - 511, 387, 1995, 1996, 1997, 2931, 1288, 2000, 2001, 2002, - 2003, 2004, 1380, 2009, 2010, 2011, 2605, 2606, 2607, 3270, - 117, 3294, 118, 1937, 2431, 3601, 1937, 1886, 1887, 1888, - 2796, 519, 3173, 2996, 2800, 1527, 2997, 618, 619, 670, - 1938, 3154, 573, 1938, 3155, 670, 1519, 2631, 2632, 2633, - 1633, 1147, 1940, 1939, 861, 556, 1939, 577, 1335, 387, - 863, 926, 661, 864, 436, 3639, 587, 1527, 559, 1203, - 1134, 1135, 3136, 1975, 387, 419, 1978, 680, 2892, 1380, - 3650, 1336, 691, 432, 692, 1990, 2811, 2812, 438, 3663, - 2293, 701, 1762, 721, 1998, 2422, 106, 1937, 2423, 2977, - 1772, 1773, 2980, 2981, 521, 2312, 523, 914, 524, 1937, - 526, 917, 2069, 2070, 1938, 3156, 3157, 3271, 3272, 2998, - 924, 3273, 3274, 3690, 939, 3691, 1938, 2671, 1940, 1292, - 387, 1940, 948, 674, 675, 387, 676, 387, 677, 1939, - 2101, 2102, 387, 2361, 1941, 1762, 927, 941, 387, 946, - 387, 3140, 2103, 2104, 1399, 387, 387, 1400, 387, 956, - 1401, 712, 713, 957, 1810, 1811, 1812, 1813, 1814, 2416, - 387, 1762, 109, 387, 971, -540, 2107, 2108, 1530, 387, - 387, 387, 387, 1835, 1835, 1531, 1835, 2396, 2397, 387, - 387, 387, 2114, 2115, 972, 1532, 1533, 980, 1857, 1942, - 991, 973, 1940, 992, 928, 2119, 2120, 387, 2419, 985, - 1869, 995, 2584, 996, 1940, 1002, 387, 1835, 1835, 1835, - 1941, 923, 1634, 1941, 1337, 1534, 1840, 999, 929, 1535, - 2122, 2123, 2832, 387, 3383, 3373, 659, 660, 1010, 663, - 1536, 2124, 2125, -1119, 387, 1841, 2136, 2137, 2325, 1537, - 2329, 2334, 2432, 2140, 2141, 1538, 387, 1011, 958, 2153, - 2154, 1012, 387, 2976, 1016, 1842, 2157, 2158, 1539, 2159, - 2160, 1017, 1928, 2167, 2168, 1942, 1026, 1338, 1942, 1843, - 2888, 2589, 1031, 1093, 2170, 2171, 1540, 2179, 2180, 1032, - 1946, 2192, 2193, 2398, 1941, 1541, 1542, 3000, 3001, 2372, - 2325, 1543, 1033, 2211, 2212, 3004, 1941, 2213, 2214, 1544, - 2596, 1035, 3027, 1034, 930, 1545, 2234, 2235, 2262, 2263, - 1036, 387, 931, 1060, 1844, 1845, 1061, 2052, -1119, 1074, - 387, 618, 619, 1077, 3477, 1025, 2452, 2453, 2586, 2587, - 1076, 1546, 3488, 3413, 1326, 1327, 2626, 2627, 1079, 1942, - 932, 1084, 1846, 1025, 1104, 3503, 2711, 2712, 387, 3546, - 1151, 1942, 2782, 2712, 2839, 2840, 387, 2843, 2844, 387, - 1152, 2620, 1153, 1762, 3060, 3178, 3179, 2865, 2866, 1155, - 2917, 1804, 1805, 1328, 1105, 959, 933, 1547, 1157, 1548, - 1158, 1339, 1340, 3189, 2060, 1159, 1549, 1329, 1163, 3193, - 2889, 2890, 2971, 1108, 3032, 3033, 1172, 934, 1176, -1119, - 1323, 1847, -1119, 3110, 3111, 3233, 3234, 3239, 3240, 3242, - 3243, 2504, 3209, 2325, 935, 3211, 118, 1379, 3565, 2509, - 2325, 1330, 3308, 3234, 1174, -1119, 2399, 3388, 3389, 3391, - 3234, -1119, 1352, 1331, 3583, 3081, 3583, 2406, 1177, 1532, - 1533, 1382, 1848, 1178, -1119, 3392, 3234, 1179, 1001, -1119, - 2665, 3400, 3401, 1342, 1550, 1180, -1119, 3402, 3403, 1182, - 1332, 3404, 3403, 530, 531, 1183, -1119, 3425, 3426, 1551, - 1184, -460, -460, 1535, 1552, 3583, 3490, 3389, 3630, -1119, - -460, 3491, 3389, -1119, 1536, 1185, 3634, 3672, 3673, 1806, - 1808, 1186, -1119, 1537, 1028, 2957, 2958, 1748, 1749, 3309, - 3310, 2921, 2922, 2667, 2898, 2899, 1187, 2643, 3108, 3109, - 1188, 1189, 1539, 3583, 1553, 1190, 1191, 1333, 670, 1474, - 1554, 1384, 387, 1555, 3583, 1192, 1193, 1093, 1194, 1195, - 1540, 1198, 1200, 1201, 1392, 2616, 1202, 3583, 532, 1206, - 1207, 1208, 1209, 1210, 1211, 1414, 1556, 1557, 1212, 1558, - 1396, 1213, 1214, 1215, -1119, 1216, 1217, 1218, 1219, 1545, - 1220, 2581, 1221, 1559, 3583, 3583, 533, 1222, 3705, 1223, - 1224, 1225, 1226, 3095, -1119, 1227, 1228, 1229, 1230, 747, - 534, 2658, -1119, 1231, 1232, 1560, 1389, 1394, 1233, 1234, - 1236, 1237, 1238, 1239, 1240, 1241, 2701, 1242, 1243, 1244, - 1245, 1249, 535, 2704, -1119, 1250, 1251, 1252, 1253, 1254, - 1255, 1256, 1257, 1258, 536, 1259, 1121, 1122, 1123, 1124, - 1125, 1126, 1260, 387, 1127, 1128, 1129, 1130, 1131, 1132, - 1262, 1133, 1264, 1548, 1265, 1266, 1267, 1268, 1269, 1270, - 1549, 387, 387, 537, 1393, 3153, -1119, 1271, 387, 1272, - 387, 387, 770, 1273, 1274, 1275, 1276, 1277, 1278, 1279, - 1280, 1281, 1282, 1283, 1284, 1285, -1119, 1286, 538, 1561, - 1415, 1290, 1291, 1418, 539, 1294, 1295, 1181, 1562, 1299, - 1300, 1301, 1305, 1306, 1307, 1308, 1309, 387, 1310, 1381, - 1427, 1397, 1429, 1458, 1420, 1426, 1428, 1435, 1443, 387, - 387, -1119, 1449, 781, 561, 596, 531, 1462, 1550, 387, - 1478, 783, 1483, 540, 1484, 387, 1485, 1488, 387, 1486, - 1496, 387, 1498, 1551, 2710, 1500, 1512, 3134, 1577, 1579, - 1578, 2325, 387, 387, 1580, 387, 1581, -540, 1582, 1134, - 1135, 387, 387, -540, 1583, 1584, -1119, 1585, 798, 1586, - 1587, 387, 1588, 387, 1589, 1590, 1591, 387, 387, -1119, - -1119, 1592, 1593, 1594, 1596, 1595, 1601, 1599, 1613, 1605, - 1618, 1377, 1625, 1653, 1554, 1298, -1119, 1555, -1119, 2426, - 532, 1673, 1687, 1704, 1779, 1736, 1759, 1768, 1774, 1793, - 1816, 1796, 1826, 1827, 1851, 1854, 1911, 387, 387, 1899, - 1556, 1557, 1913, 1558, -1119, -1119, 1885, 1920, 533, 1923, - 1944, -1119, 810, 1945, 1949, 1948, 1951, 1959, 3043, 1960, - 1762, 1961, 534, 387, 1964, 2462, 541, 1962, 1963, 1965, - 387, 1982, 1983, 1985, 1986, 1991, 1993, 1994, 1999, 1560, - 2013, 2061, 2065, 387, 535, 542, 2067, 3360, 3361, 3362, - 3363, 543, 2074, 2068, 2072, 2075, 536, 544, 2076, 2077, - 2078, 2079, 2082, 1532, 1533, 2085, 2083, 2084, 2092, 2086, - 826, 2089, 2094, 2091, 2093, 2100, 2096, 3355, 2095, 3196, - 2097, 545, 830, 831, 2098, 537, 2099, 2111, 2105, 387, - 2106, 2109, 546, 547, 2110, -460, -460, 1535, 2112, 2113, - 2116, 2261, 2117, 2118, -460, 2121, 2229, 2126, 1536, 2127, - 538, 2130, 2266, 2131, 2132, 2133, 539, 1537, 2224, 2134, - 2135, 2138, 2144, 1561, 2139, 2267, 2142, 2145, 2143, 548, - 2146, 1762, 1562, 2148, 2268, 2149, 1539, 2596, 2150, 2152, - 1340, 2274, -785, 2155, 3357, 2156, 2161, 2162, 2279, 2163, - 2164, 1093, 2165, 2166, 1540, 540, 2169, 2172, 2174, 2175, - 2264, 2280, 2176, 2177, 2178, 2181, 2182, 2183, 2184, 2296, - 2190, 387, 2926, 2185, 2188, 549, 2191, 550, 2297, 2194, - 2195, 2196, 2207, 1545, 2205, 2208, 2265, 2209, 2372, 2210, - 2241, 2471, 2215, 2248, 1108, -961, 2278, 2276, 2284, 2298, - 2299, 1892, 387, 1891, 2341, 2317, 387, 2342, 387, 387, - 387, 387, 2316, 2318, 2345, 2349, 2350, 2351, 2374, 387, - 2367, 2375, 2401, 387, 2402, 2449, 387, 2435, 2450, 2454, - 2455, 1514, 1619, 2481, 670, 2501, 3154, 1001, 802, 3155, - 387, 387, 387, 2514, 2524, 2536, 2537, 1857, 2556, 861, - 2561, 2563, 2565, 387, 2568, 863, 2571, 1548, 864, 387, - 2574, 387, 2576, 2577, 1549, 2578, 2579, 2588, 541, 387, - 2580, 2595, -1015, 2603, 2608, 2610, 2614, 2622, 2625, 2628, - 2630, 2641, 2642, 2647, 2655, 2666, 2672, 542, 2676, 3656, - 2677, 1762, 2054, 543, 2680, 2692, 2693, 2706, 2772, 544, - 2775, 2779, 2781, 2783, 2786, 2801, 2791, 2788, 2792, 2793, - 3156, 3157, 1762, 2802, 2794, 2797, 2259, 2803, 2804, 2904, - 2805, 2883, 2806, 545, 2807, 2808, 3656, 2809, 1762, 2813, - 387, 2906, 1550, 2814, 546, 547, 3133, 2815, 2816, 2817, - 2818, 387, 3245, 2819, 387, 2820, 2821, 1551, 3593, 2822, - 2823, 2919, 2824, 2885, 2825, 2826, 2827, 2828, 2829, 2830, - 1876, 2833, 2834, 1205, 1289, 1293, 2927, 2835, 2836, 2939, - 2942, 548, 2857, 2945, 2946, 2837, 2965, 2838, 387, 2966, - 2841, 2978, 2842, 3061, 3063, 387, 2848, 2849, 387, 2850, - 3070, 3077, 387, 387, 2867, 2935, 387, 2851, 1554, 2852, - 2853, 1555, 2854, 3329, 3195, 2855, 387, 2856, 2858, 2859, - 2860, 2862, 2868, 3078, 2936, 2869, 2714, 549, 2870, 550, - 2871, 2873, 2875, 2877, 1556, 1557, 2878, 1558, 2879, 2880, - 2881, 3031, 2887, 2891, 2780, 2894, 2908, 2895, 2940, 2964, - 2960, 2974, 3072, 2975, 3003, 3025, 3026, 3028, 3090, 3324, - 3051, 3065, 3066, 3113, 3067, 3079, 3123, 3087, 3088, 3339, - 3340, 3089, 3324, 1560, 3111, 3094, 3106, 3119, 3117, 3125, - 3120, 3124, 2645, 3128, 3130, 3135, 3131, -1049, -1054, 3146, - 3169, 3144, 3150, 3170, 3183, 3022, 3151, 3177, 3192, 3199, - 3019, 3188, 3190, 2312, 3200, 3201, 3203, 2715, 2716, 3204, - 3214, 3205, 3206, 2717, 3207, 2718, 3208, 2719, 2720, 3210, - 3219, 3223, 3220, 3236, 3247, 3237, 3238, 3241, 3244, 2325, - 3249, 3252, 2721, 3253, 1532, 1533, 3261, 3246, 3248, 3250, - 3265, 3251, 3266, 3254, 3278, 3255, 3267, 3405, 3256, 2372, - 3257, 3258, 3259, 3260, 3263, 3287, 3293, 1561, 3296, 3298, - 3290, 3291, 3302, 3330, 3344, 3320, 1562, 3321, 1535, 3331, - 3352, 3353, 3328, 2722, 3332, 3333, 2723, 3240, 3334, 1536, - 387, 387, 3335, 387, 2724, 3346, 3366, 3359, 1537, 3347, - 3349, 3380, 387, 672, 3365, 1001, 3382, 3417, 387, 3385, - 3387, 3410, 3411, 2725, 3390, 3412, 3423, 1539, 387, 3437, - 3424, 3427, 3439, 3428, 3429, 3440, 387, 3441, 3442, 3448, - 2726, 2445, 1093, 2055, 3456, 1540, 3464, 3472, 3466, 3465, - 3345, 3473, 3483, 387, 3476, 3485, 3486, 3494, 3513, 3492, - 3515, 2727, 3524, 2728, 2453, 387, 3549, -211, 3548, 3525, - 3550, 3556, 387, -1179, 1545, 3543, 3573, 3572, 3574, 387, - 3595, 3584, 2729, 2730, 3591, 387, 3592, 2926, 3596, 3597, - 3602, 3603, 3606, 3607, 3609, 3613, 3635, -1781, 3623, 3631, - 3636, 3642, 3641, 3643, 3638, 3462, 3644, 3657, 3651, 3649, - 3664, 3648, 3662, 3667, 3668, 3669, 3678, 3680, 3687, 3701, - 672, 3706, 2260, 2731, 2045, 388, 1101, 3588, 3348, 3419, - 3342, 3708, 3683, 672, 3689, 3620, 3579, 418, 3621, 3587, - 424, 3481, 3482, 3230, 3484, 3053, 2325, 433, 1548, 510, - 3304, 1518, 2732, 2466, 1598, 1549, 2012, 444, 2446, 387, - 1969, 2733, 2734, 2972, 2735, 2967, 2386, 460, 3029, 2990, - 531, 2016, 3322, 2991, 3161, 3202, 3194, 2968, 3455, 2933, - 3459, 3319, 3399, 3351, 3327, 3521, 2436, 3522, 3523, 1868, - 1597, 2281, 2736, 2737, 2738, 1499, 1933, 1612, 2277, 1112, - 2613, 1089, 2300, 678, 1006, 478, 3367, 1890, 3096, 3264, - 3097, 1703, 2498, 2739, 2740, 2741, 1798, 1803, 2941, 2742, - 3454, 3568, 2743, 1550, 2593, 481, 388, 3301, 388, 3289, - 3615, 2970, 2307, 2273, 2287, 2744, 2745, 3115, 1551, 478, - 2912, 1431, 2952, 2911, 532, 3674, 3516, 667, 1651, 1617, - 1925, 740, 1169, 3414, 653, 1828, 2905, 3567, 387, 3443, - 3589, 2746, 3487, 2747, 3688, 3568, 1433, 3198, 2915, 1413, - 1900, 2663, 533, 2937, 3129, 3292, 1862, 598, 994, 1438, - 1447, 387, 1406, 1602, 3358, 2602, 534, 2748, 3364, 1554, - 600, 998, 1555, 3262, 1530, 693, 387, 3470, 2461, 3228, - 1164, 1531, 0, 1770, 0, 0, 3050, 0, 535, 0, - 0, 1532, 1533, 0, 0, 1556, 1557, 0, 1558, 0, - 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2749, 0, 2750, 0, 0, 0, 0, 387, 0, 0, - 0, 1534, 2751, 0, 0, 1535, 672, 0, 0, 537, - 0, 0, 0, 0, 1560, 0, 1536, 0, 0, 387, - 0, 0, 0, 0, 0, 1537, 0, 0, 0, 0, - 0, 1538, 0, 0, 538, 0, 0, 0, 0, 387, - 539, 0, 672, 672, 1539, 672, 2752, 2753, 0, 0, - 2754, 2755, 2756, 2757, 0, 0, 0, 0, 0, 1093, - 0, 0, 1540, 0, 387, 0, 387, 0, 0, 3518, - 0, 1541, 0, 0, 0, 0, 387, 1543, 0, 540, - 0, 0, 387, 0, 0, 1544, 672, 0, 672, 672, - 0, 1545, 0, 2758, 2759, 0, 0, 0, 1561, 0, - 0, 0, 0, 0, 3222, 0, 0, 1562, 0, 0, - 0, 0, 2760, 0, 0, 0, 0, 1546, 0, 0, - 0, 1532, 1533, 0, 0, 0, 0, 0, 0, 387, - 3470, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2325, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -460, -460, 1535, 0, 387, 0, 0, - 0, 0, -460, 0, 0, 1548, 1536, 0, 0, 0, - 0, 0, 1549, 0, 0, 1537, 0, 387, 0, 0, - 0, 0, 0, 387, 387, 0, 0, 0, 0, 522, - 0, 0, 541, 0, 1539, 0, 0, 387, 0, 555, - 0, 0, 0, 563, 0, 0, 0, 0, 478, 1093, - 0, 542, 1540, 582, 0, 0, 387, 543, 0, 0, - 0, 3698, 0, 544, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 478, 0, 0, 0, 0, - 1550, 1545, 0, 0, 0, 0, 3698, 545, 0, 0, - 0, 0, 681, 0, 387, 1551, 0, 0, 546, 547, - 1552, 0, 478, 0, 0, 0, 478, 387, 0, 0, - 0, 0, 703, 0, 478, 478, 3671, 0, 0, 715, - 563, 0, 0, 0, 0, 0, 0, 0, 0, 734, - 0, 0, 0, 739, 0, 548, 0, 0, 915, 388, - 1553, 388, 388, 563, 478, 3707, 1554, 0, 0, 1555, - 0, 0, 0, 0, 0, 1548, 0, 0, 0, 0, - 0, 0, 1549, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1556, 1557, 0, 1558, 0, 963, 0, 0, - 0, 549, 0, 550, 0, 0, 0, 0, 0, 1559, - 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, - 0, 563, 478, 0, 0, 0, 478, 0, 0, 0, - 0, 1560, 0, 478, 0, 0, 0, 0, 0, 0, - 387, 1354, 1355, 1356, 1357, 1358, 0, 0, 0, 0, - 1550, 0, 0, 0, 0, 0, 0, 0, 387, 387, - 0, 0, 0, 563, 0, 1551, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 387, 0, - 387, 0, 387, 387, 0, 0, 0, 3433, 0, 0, - 0, 0, 0, 0, 387, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1359, 1561, 1554, 0, 0, 1555, - 0, 1092, 0, 0, 1562, 0, 0, 0, 0, 563, - 387, 0, 478, 0, 0, 1111, 478, 0, 0, 0, - 0, 0, 1556, 1557, 0, 1558, 1360, 1361, 1362, 1363, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3510, 0, 0, 0, 0, 387, - 0, 478, 0, 1171, 0, 0, 0, 0, 0, 0, - 0, 1560, 0, 0, 0, 0, 0, 0, 387, 0, - 0, 3510, 3510, 387, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 387, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 387, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3510, 3510, 0, 0, 0, 3510, 0, 0, - 0, 0, 1364, 0, 1365, 1366, 1367, 0, 0, 0, - 0, 0, 0, 3510, 1368, 3510, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1561, 0, 0, 0, 0, - 0, 3510, 0, 0, 1562, 0, 0, 0, 0, 0, - 3510, 0, 0, 0, 0, 0, 0, 387, 0, 0, - 0, 0, 0, 0, 3510, 0, 387, 3510, 0, 0, - 0, 0, 0, 0, 0, 3510, 0, 0, 0, 0, - 0, 3510, 0, 0, 0, 0, 0, 0, 0, 0, - 1369, 1320, 0, 1322, 0, 0, 3510, 0, 0, 387, - 0, 387, 3510, 0, 0, 3510, 0, 387, 0, 0, - 0, 0, 0, 3510, 0, 0, 387, 0, 0, 0, - 387, 0, 0, 0, 0, 478, 3510, 0, 0, 0, - 0, 478, 0, 0, 0, 0, 387, 1370, 1371, 3510, - 0, 3510, 387, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3510, 3510, 0, 0, 3510, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 387, 1407, 0, - 1410, 0, 478, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3512, 0, 478, 563, 0, 0, 0, 0, - 0, 0, 0, 0, 478, 478, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1439, 0, 0, 0, 3512, - 3512, 0, 0, 1448, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 388, 388, 478, - 478, 0, 0, 0, 0, 0, 0, 388, 0, 563, - 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, - 3512, 3512, 0, 0, 1372, 3512, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1373, 1374, 478, 0, 0, - 0, 3512, 0, 3512, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 3512, - 0, 0, 2, 3, 0, 0, 0, 0, 3512, 0, - 0, 0, 0, 0, 0, 4, 0, 5, 0, 0, - 0, 0, 3512, 478, 0, 3512, 478, 0, 0, 0, - 0, 0, 0, 3512, 0, 0, 6, 7, 0, 3512, - 0, 0, 8, 0, 0, 0, 9, 10, 0, 0, - 0, 0, 0, 0, 3512, 0, 0, 0, 0, 11, - 3512, 0, 0, 3512, 0, 0, 0, 0, 0, 0, - 0, 3512, 0, 0, 0, 563, 12, 563, 388, 388, - 0, 478, 0, 0, 3512, 0, 0, 0, 0, 0, - 739, 0, 1620, 0, 0, 13, 0, 3512, 0, 3512, - 0, 0, 0, 0, 14, 15, 16, 0, 0, 0, - 0, 3512, 3512, 0, 0, 3512, 0, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 1660, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 2, 3, 0, 1660, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 21, 0, 0, 0, 0, 0, 0, 22, 0, - 0, 23, 0, 0, 0, 0, 0, 6, 7, 0, - 0, 0, 0, 8, 0, 0, 0, 9, 10, 0, - 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 1763, 0, 0, 0, 25, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 563, - 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0, 27, 0, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 15, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 0, 0, 0, 0, - 1821, 19, 563, 0, 0, 0, 0, 563, 0, 0, - 0, 0, 0, 478, 0, 1831, 0, 0, 20, 0, - 1836, 1836, 0, 1836, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 478, 0, 28, 478, 0, - 0, 0, 21, 0, 563, 563, 478, 478, 0, 22, - 0, 0, 23, 0, 1836, 1836, 1836, 0, 0, 29, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 1903, 24, 0, 0, 0, 0, 0, 0, - 0, 1914, 0, 0, 0, 0, 0, 0, 31, 25, - 32, 33, 0, 0, 34, 0, 0, 35, 1922, 36, - 0, 0, 0, 0, 37, 0, 38, 26, 0, 478, - 0, 0, 27, 0, 0, 39, 0, 0, 0, 40, - 0, 1935, 0, 0, 0, 41, 0, 478, 0, 0, - 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 0, 0, 0, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2019, 0, 0, 0, - 0, 0, 0, 0, 46, 2023, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 47, 0, 0, 48, 0, 0, 0, 0, 49, 0, - 29, 0, 0, 388, 0, 0, 0, 0, 0, 30, - 0, 478, 0, 0, 2063, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 616, 0, 578, 617, 0, 31, - 0, 32, 33, 0, 0, 34, 0, 0, 35, 0, - 36, 0, 51, 0, 0, 37, 0, 38, 0, 618, - 619, 0, 0, 0, 0, 0, 39, 0, 0, 620, - 40, 621, 0, 0, 0, 0, 41, 0, 0, 0, - 0, 42, 0, 0, 0, 43, 0, 0, 0, 622, - 0, 623, 0, 0, 0, 0, 0, 0, 0, 624, - 0, 0, 0, 0, 0, 44, 0, 0, 0, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 46, -1362, 625, 0, 0, - 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 48, 0, 0, 0, 0, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 627, 0, 628, 0, 0, 0, 2230, 0, 0, - 0, 0, 50, 0, 0, 629, 0, 630, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, - 631, 632, 0, 0, 633, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 635, 0, 0, 0, 0, 636, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2294, 0, - 0, 637, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2313, 2315, 0, 0, - 0, 0, 0, 563, 0, 563, 563, 0, 0, 0, - 0, 0, 0, 0, 638, 0, 0, 0, 0, 0, - 0, 0, 0, 639, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 640, 1763, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 563, 0, 0, 0, 0, - 0, 0, 0, 0, 2019, 0, 0, 641, 642, 0, - 2019, 643, 644, 2019, 0, 0, 2019, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2019, 2019, 0, - 563, 0, 0, 0, 0, 0, 2019, 1763, 0, 0, - 0, 0, 0, 0, 0, 0, 478, 0, 563, 0, - 0, 0, 2019, 2441, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 645, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 478, 2019, 0, 0, 0, 0, 0, 0, - -1806, 0, 0, 0, 647, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 648, - 0, 0, 0, 0, 0, 563, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2505, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1806, 0, 0, 0, 649, 0, 0, - 0, 0, 0, 0, 1660, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2601, 0, 0, - 0, 1831, 0, 963, 563, 563, 563, 0, 0, 0, - 0, 0, 0, 0, 478, 0, 0, 0, 563, 0, - 0, 1763, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 563, 563, 563, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2644, 0, - 0, 0, 0, 0, 2646, 0, 2648, 0, 0, 0, - 0, 0, 0, 0, 563, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2019, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 0, 0, 2019, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, - 2713, 0, 0, 478, 0, 0, 0, 2769, 2770, 0, - 0, 2773, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 886, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 965, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2294, 2916, 0, 563, 0, - 0, 0, 0, 0, 0, 0, 0, 563, 0, 0, - 0, 0, 0, 2601, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 563, 0, 0, 0, 0, 0, 0, - 0, 1903, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1763, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2019, 0, 0, 0, 0, 0, 0, 2019, 0, 0, - 0, 0, 0, 0, 1763, 0, 0, 0, 0, 0, - 2019, 0, 0, 0, 0, 0, 0, 1120, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3058, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1235, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3093, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1311, 0, 0, 0, 1318, 0, 0, - 0, 0, 0, 0, 0, 0, 1763, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3058, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 563, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1446, 0, 0, 0, 0, 0, 0, 0, 3212, - 1461, 3213, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 478, 0, 0, 0, 0, 0, 3227, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2313, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 563, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3300, 0, 0, 0, 0, 0, 3058, 3058, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3318, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1622, 1623, 1624, 0, 0, 0, 0, 0, - 0, 1639, 1640, 0, 0, 1643, 0, 1645, 1646, 1647, - 1648, 0, 0, 0, 1652, 0, 0, 1654, 1655, 3343, - 1656, 0, 1657, 1658, 0, 1661, 1662, 1663, 1664, 1665, - 0, 1668, 3058, 1670, 1671, 1672, 0, 1674, 1675, 1676, - 1677, 0, 1679, 1680, 0, 1686, 0, 0, 1690, 1691, - 1692, 0, 1694, 1695, 1696, 1697, 0, 1699, 1700, 1701, - 1702, 0, 0, 0, 0, 0, 1709, 1710, 0, 1713, - 1714, 1715, 1716, 1717, 0, 0, 0, 0, 1721, 0, - 1722, 1723, 1724, 1725, 1726, 0, 0, 1729, 1731, 1732, - 1733, 1734, 1735, 0, 1737, 1738, 0, 0, 1741, 1742, - 1743, 0, 1746, 0, 1747, 0, 0, 0, 1750, 0, - 1754, 1755, 0, 0, 0, 0, 1758, 0, 0, 0, - 0, 0, 0, 0, 1765, 1766, 1767, 0, 0, 0, - 0, 0, 0, 1318, 0, 0, 1775, 0, 0, 0, - 0, 0, 0, 0, 0, 3227, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1763, 478, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3300, 0, 3300, 0, 3452, 2023, 0, - 0, 0, 0, 0, 0, 1819, 0, 0, 0, 3460, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3480, 0, 0, 0, 1864, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1763, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3526, 0, 0, 0, 0, 3533, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 563, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3551, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3617, 0, 0, 2024, 0, 0, 0, 0, - 0, 3628, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1763, 0, 3659, 0, 0, 0, - 0, 0, 3665, 0, 0, 0, 0, 0, 0, 0, - 0, 563, 0, 0, 0, 1763, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1763, 0, 0, 0, 0, 0, 3699, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3699, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2198, 2200, 2202, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2242, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2254, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2479, 0, 0, 2480, 0, 0, 2482, - 2483, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2496, 0, 0, 2499, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2506, 0, - 2507, 0, 0, 0, 2510, 0, 2511, 2512, 0, 0, - 0, 2515, 0, 2516, 2517, 0, 2518, 0, 0, 2519, - 0, 2520, 2521, 0, 0, 0, 0, 2525, 2526, 0, - 0, 2528, 0, 2529, 0, 2530, 0, 2531, 0, 2533, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2538, 2539, 0, 0, 2540, 0, 2541, 0, 0, 0, - 0, 0, 0, 0, 2542, 2543, 0, 2544, 0, 2545, - 0, 0, 2546, 2547, 2548, 0, 2549, 0, 0, 0, - 0, 2552, 2553, 2554, 2555, 0, 0, 0, 0, 2557, - 2558, 2559, 0, 2560, 0, 2562, 0, 2564, 0, 2566, - 0, 2567, 0, 0, 0, 0, 0, 0, 2569, 0, - 2570, 0, 0, 2572, 2573, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2582, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2591, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2609, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2653, 0, 0, 0, 0, - 2657, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2688, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2691, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2790, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2861, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2872, 0, 2874, - 0, 2876, 0, 0, 0, 0, 0, 2882, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2893, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2938, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3064, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3068, 0, 0, 0, 0, - 0, 3069, 0, 0, 0, 0, 0, 0, 0, 0, - 3073, 3074, 0, 0, 0, 0, 3075, 0, 0, 0, - 3076, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3080, 0, 0, 0, 0, 0, 3082, - 0, 0, 3083, 3084, 0, 3085, 3086, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3091, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3142, 3143, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2688, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2688, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2653, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3354, - 0, 0, 0, 0, 0, 3356, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3372, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3384, 0, 3386, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2688, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3475, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3489, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3554, 3555, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3575, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3586, - 0, 0, 0, 0, 3590, 0, 0, 0, 0, 0, - 0, 0, 0, 3600, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 122, 0, 741, 124, 125, 126, 127, - 0, 0, 0, 0, 3632, 128, 0, 0, 742, 0, - 743, 130, 131, 744, 133, 3640, 134, 745, 135, 0, - 746, 136, 747, 748, 749, 137, 750, 0, 138, 139, - 140, 1751, 141, 0, 142, 143, 0, 0, 144, 751, - 145, 0, 146, 752, 753, 148, 0, 149, 150, 151, - 754, 152, 0, 755, 154, 0, 155, 156, 157, 158, - 159, 756, 757, 160, 0, 161, 162, 0, 758, 164, - 0, 759, 760, 761, 165, 0, 3700, 166, 762, 763, - 0, 764, 765, 0, 167, 168, 766, 767, 768, 0, - 0, 0, 0, 769, 171, 770, 0, 0, 771, 772, - 172, 0, 173, 0, 0, 0, 773, 774, 174, 0, - 175, 176, 177, 0, 0, 0, 178, 0, 0, 179, - 180, 181, 0, 0, 775, 182, 0, 776, 777, 183, - 184, 185, 186, 0, 0, 187, 0, 188, 189, 190, - 778, 0, 191, 779, 192, 780, 781, 193, 194, 0, - 782, 195, 196, 197, 783, 0, 198, 0, 0, 784, - 0, 199, 200, 0, 785, 201, 0, 202, 786, 787, - 788, 789, 0, 790, 791, 204, 792, 793, 794, 206, - 0, 207, 795, 0, 796, 797, 0, 208, 209, 0, - 210, 798, 0, 211, 0, 0, 0, 799, 213, 214, - 215, 800, 0, 216, 217, 0, 0, 0, 218, 0, - 0, 801, 219, 802, 0, 0, 220, 0, 221, 222, - 0, 223, 224, 0, 0, 0, 0, 0, 0, 225, - 803, 226, 0, 1752, 804, 227, 0, 805, 228, 0, - 0, 0, 806, 0, 807, 0, 230, 808, 0, 231, - 0, 232, 809, 0, 0, 810, 0, 0, 0, 0, - 811, 233, 234, 235, 236, 237, 238, 812, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 813, 248, 249, - 250, 814, 251, 252, 0, 0, 0, 253, 254, 255, - 815, 257, 0, 0, 816, 259, 817, 818, 260, 0, - 261, 819, 820, 821, 822, 823, 824, 825, 266, 267, - 268, 269, 0, 826, 270, 271, 0, 272, 273, 274, - 827, 828, 829, 275, 0, 830, 831, 0, 276, 277, - 0, 832, 0, 279, 280, 281, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 282, 283, 284, 833, - 834, 286, 835, 836, 837, 838, 839, 0, 289, 290, - 0, 291, 0, 292, 293, 294, 295, 0, 840, 297, - 298, 299, 300, 301, 302, 303, 841, 0, 0, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 309, 0, - 310, 311, 842, 843, 312, 0, 313, 314, 315, 0, - 316, 317, 0, 0, 844, 318, 319, 845, 320, 321, - 846, 322, 847, 324, 325, 0, 848, 327, 0, 0, - 0, 328, 329, 330, 0, 0, 331, 0, 0, 0, - 332, 333, 334, 335, 0, 336, 337, 338, 0, 0, - 0, 0, 0, 0, 339, 340, 0, 341, 0, 0, - 342, 0, 0, 343, 344, 849, 850, 345, 346, 0, - 347, 851, 349, 852, 853, 854, 350, 351, 352, 353, - 855, 354, 355, 0, 356, 357, 0, 670, 358, 856, - 857, 858, 859, 0, 0, 0, 0, 1753, 363, 0, - 364, 860, 861, 862, 366, 367, 368, 0, 863, 369, - 370, 864, 0, 371, 0, 0, 865, 866, 372, 0, - 0, 373, 0, 374, 0, 867, 376, 0, 0, 868, - 869, 870, 871, 872, 377, 0, 0, 378, 873, 0, - 379, 380, 874, 0, 0, 0, 0, 382, 0, 383, - 384, 0, 875, 0, 876, 0, 0, 0, 0, 877, - 0, 0, 0, 878, 879, 0, 0, 0, 0, 880, - 0, 881, 0, 0, 882, 883, 0, 884, 885, 122, - 0, 741, 124, 125, 126, 127, 2649, 0, 0, 0, - 0, 128, 0, 0, 742, 0, 743, 130, 131, 744, - 133, 0, 134, 745, 135, 0, 2650, 136, 747, 748, - 749, 137, 750, 0, 138, 139, 140, 0, 141, 0, - 142, 143, 0, 0, 144, 751, 145, 0, 146, 752, - 753, 148, 0, 149, 150, 151, 754, 152, 0, 755, - 154, 0, 155, 156, 157, 158, 159, 756, 757, 160, - 0, 161, 162, 0, 758, 164, 0, 759, 760, 761, - 165, 0, 0, 166, 762, 763, 0, 764, 765, 0, - 167, 168, 766, 767, 768, 0, 0, 0, 0, 769, - 171, 770, 0, 0, 771, 2651, 172, 0, 173, 0, - 0, 0, 773, 774, 174, 0, 175, 176, 177, 0, - 0, 0, 178, 0, 0, 179, 180, 181, 0, 0, - 775, 182, 0, 776, 777, 183, 184, 185, 186, 0, - 0, 187, 0, 188, 189, 190, 778, 0, 191, 779, - 192, 780, 781, 193, 194, 0, 782, 195, 196, 197, - 783, 0, 198, 0, 0, 784, 0, 199, 200, 0, - 785, 201, 0, 202, 786, 787, 788, 789, 0, 790, - 791, 204, 792, 793, 794, 206, 0, 207, 795, 0, - 796, 797, 0, 208, 209, 0, 210, 798, 0, 211, - 0, 0, 0, 799, 213, 214, 215, 800, 0, 216, - 217, 0, 0, 0, 218, 0, 0, 801, 219, 802, - 0, 0, 220, 0, 221, 222, 0, 223, 224, 0, - 0, 0, 0, 0, 0, 225, 803, 226, 0, 0, - 804, 227, 0, 805, 228, 0, 0, 0, 806, 0, - 807, 0, 230, 808, 0, 231, 0, 232, 809, 0, - 0, 810, 0, 0, 0, 0, 811, 233, 234, 235, - 236, 237, 238, 812, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 813, 248, 249, 250, 814, 251, 252, - 0, 0, 0, 253, 254, 255, 815, 257, 0, 0, - 816, 259, 817, 818, 260, 0, 261, 819, 820, 821, - 822, 823, 824, 825, 266, 267, 268, 269, 0, 826, - 270, 271, 0, 272, 273, 274, 827, 828, 829, 275, - 0, 830, 831, 0, 276, 277, 0, 832, 2652, 279, - 280, 281, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 282, 283, 284, 833, 834, 286, 835, 836, - 837, 838, 839, 0, 289, 290, 0, 291, 0, 292, - 293, 294, 295, 0, 840, 297, 298, 299, 300, 301, - 302, 303, 841, 0, 0, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 309, 0, 310, 311, 842, 843, - 312, 0, 313, 314, 315, 0, 316, 317, 0, 0, - 844, 318, 319, 845, 320, 321, 846, 322, 847, 324, - 325, 0, 848, 327, 0, 0, 0, 328, 329, 330, - 0, 0, 331, 0, 0, 0, 332, 333, 334, 335, - 0, 336, 337, 338, 0, 0, 0, 0, 0, 0, - 339, 340, 0, 341, 0, 0, 342, 0, 0, 343, - 344, 849, 850, 345, 346, 0, 347, 851, 349, 852, - 853, 854, 350, 351, 352, 353, 855, 354, 355, 0, - 356, 357, 0, 670, 358, 856, 857, 858, 859, 0, - 0, 0, 0, 0, 363, 0, 364, 860, 861, 862, - 366, 367, 368, 0, 863, 369, 370, 864, 0, 371, - 0, 0, 865, 866, 372, 0, 0, 373, 0, 374, - 0, 867, 376, 0, 0, 868, 869, 870, 871, 872, - 377, 0, 0, 378, 873, 0, 379, 380, 874, 0, - 0, 0, 0, 382, 0, 383, 384, 0, 875, 0, - 876, 0, 0, 0, 0, 877, 0, 0, 0, 878, - 879, 0, 0, 0, 0, 880, 0, 881, 0, 0, - 882, 883, 0, 884, 885, 122, 0, 741, 124, 125, - 126, 127, 0, 0, 0, 0, 0, 128, 0, 0, - 742, 0, 743, 130, 131, 744, 133, 0, 134, 745, - 135, 0, 746, 136, 747, 748, 749, 137, 750, 0, - 138, 139, 140, 0, 141, 0, 142, 143, 0, 0, - 144, 751, 145, 0, 146, 752, 753, 148, 0, 149, - 150, 151, 754, 152, 0, 755, 154, 0, 155, 156, - 157, 158, 159, 756, 757, 160, 0, 161, 162, 0, - 758, 164, 0, 759, 760, 761, 165, 0, 0, 166, - 762, 763, 0, 764, 765, 0, 167, 168, 766, 767, - 768, 0, 0, 0, 0, 769, 171, 770, 0, 0, - 771, 772, 172, 0, 173, 0, 0, 0, 773, 774, - 174, 0, 175, 176, 177, 0, 0, 0, 178, 0, - 0, 179, 180, 181, 0, 0, 775, 182, 0, 776, - 777, 183, 184, 185, 186, 0, 0, 187, 0, 188, - 189, 190, 778, 0, 191, 779, 192, 780, 781, 193, - 194, 0, 782, 195, 196, 197, 783, 0, 198, 0, - 0, 784, 0, 199, 200, 0, 785, 201, 0, 202, - 786, 787, 788, 789, 0, 790, 791, 204, 792, 793, - 794, 206, 0, 207, 795, 0, 796, 797, 0, 208, - 209, 0, 210, 798, 0, 211, 0, 0, 0, 799, - 213, 214, 215, 800, 0, 216, 217, 0, 0, 0, - 218, 0, 0, 801, 219, 802, 0, 0, 220, 0, - 221, 222, 0, 223, 224, 0, 0, 0, 0, 0, - 0, 225, 803, 226, 0, 0, 804, 227, 0, 805, - 228, 0, 0, 0, 806, 0, 807, 0, 230, 808, - 0, 231, 0, 232, 809, 0, 0, 810, 0, 0, - 0, 0, 811, 233, 234, 235, 236, 237, 238, 812, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 813, - 248, 249, 250, 814, 251, 252, 0, 0, 0, 253, - 254, 255, 815, 257, 0, 0, 816, 259, 817, 818, - 260, 0, 261, 819, 820, 821, 822, 823, 824, 825, - 266, 267, 268, 269, 0, 826, 270, 271, 0, 272, - 273, 274, 827, 828, 829, 275, 0, 830, 831, 0, - 276, 277, 0, 832, 0, 279, 280, 281, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 282, 283, - 284, 833, 834, 286, 835, 836, 837, 838, 839, 0, - 289, 290, 0, 291, 0, 292, 293, 294, 295, 0, - 840, 297, 298, 299, 300, 301, 302, 303, 841, 0, - 0, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 309, 0, 310, 311, 842, 843, 312, 0, 313, 314, - 315, 0, 316, 317, 0, 0, 844, 318, 319, 845, - 320, 321, 846, 322, 847, 324, 325, 0, 848, 327, - 1316, 0, 0, 328, 329, 330, 0, 0, 331, 0, - 0, 0, 332, 333, 334, 335, 0, 336, 337, 338, - 0, 0, 0, 0, 0, 0, 339, 340, 0, 341, - 0, 0, 342, 0, 0, 343, 344, 849, 850, 345, - 346, 0, 347, 851, 349, 852, 853, 854, 350, 351, - 352, 353, 855, 354, 355, 0, 356, 357, 0, 670, - 358, 856, 857, 858, 859, 0, 0, 0, 0, 0, - 363, 0, 364, 860, 861, 862, 366, 367, 368, 0, - 863, 369, 370, 864, 0, 371, 0, 0, 865, 866, - 372, 0, 0, 373, 0, 374, 0, 867, 376, 0, - 0, 868, 869, 870, 871, 872, 377, 0, 0, 378, - 873, 0, 379, 380, 874, 0, 0, 0, 0, 382, - 0, 383, 384, 0, 875, 0, 876, 0, 0, 0, - 0, 877, 0, 0, 0, 878, 879, 0, 0, 0, - 0, 880, 0, 1317, 0, 0, 882, 883, 0, 884, - 885, 122, 0, 741, 124, 125, 126, 127, 0, 0, - 0, 0, 0, 128, 0, 0, 742, 0, 743, 130, - 131, 744, 133, 0, 134, 745, 135, 0, 746, 136, - 747, 748, 749, 137, 750, 0, 138, 139, 140, 0, - 141, 0, 142, 143, 0, 0, 144, 751, 145, 0, - 146, 752, 753, 148, 0, 149, 150, 151, 754, 152, - 0, 755, 154, 0, 155, 156, 157, 158, 159, 756, - 757, 160, 0, 161, 162, 0, 758, 164, 0, 759, - 760, 761, 165, 0, 0, 166, 762, 763, 0, 764, - 765, 0, 167, 168, 766, 767, 768, 0, 0, 0, - 0, 769, 171, 770, 0, 0, 771, 772, 172, 0, - 173, 0, 0, 0, 773, 774, 174, 0, 175, 176, - 177, 0, 0, 0, 178, 0, 0, 179, 180, 181, - 0, 0, 775, 182, 0, 776, 777, 183, 184, 185, - 186, 0, 0, 187, 0, 188, 189, 190, 778, 0, - 191, 779, 192, 780, 781, 193, 194, 0, 782, 195, - 196, 197, 783, 0, 198, 0, 0, 784, 0, 199, - 200, 0, 785, 201, 0, 202, 786, 787, 788, 789, - 0, 790, 791, 204, 792, 793, 794, 206, 0, 207, - 795, 0, 796, 797, 0, 208, 209, 0, 210, 798, - 0, 211, 0, 0, 0, 799, 213, 214, 215, 800, - 0, 216, 217, 0, 0, 0, 218, 0, 0, 801, - 219, 802, 0, 0, 220, 0, 221, 222, 0, 223, - 224, 0, 0, 0, 0, 0, 0, 225, 803, 226, - 0, 0, 804, 227, 0, 805, 228, 0, 0, 0, - 806, 0, 807, 0, 230, 808, 0, 231, 0, 232, - 809, 0, 0, 810, 0, 0, 0, 0, 811, 233, - 234, 235, 236, 237, 238, 812, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 813, 248, 249, 250, 814, - 251, 252, 0, 0, 0, 253, 254, 255, 815, 257, - 0, 0, 816, 259, 817, 818, 260, 0, 261, 819, - 820, 821, 822, 823, 824, 825, 266, 267, 268, 269, - 0, 826, 270, 271, 0, 272, 273, 274, 827, 828, - 829, 275, 0, 830, 831, 0, 276, 277, 0, 832, - 0, 279, 280, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 282, 283, 284, 833, 834, 286, - 835, 836, 837, 838, 839, 0, 289, 290, 0, 291, - 0, 292, 293, 294, 295, 0, 840, 297, 298, 299, - 300, 301, 302, 303, 841, 0, 0, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 309, 0, 310, 311, - 842, 843, 312, 0, 313, 314, 315, 0, 316, 317, - 0, 0, 844, 318, 319, 845, 320, 321, 846, 322, - 847, 324, 325, 0, 848, 327, 0, 0, 0, 328, - 329, 330, 0, 0, 331, 0, 0, 0, 332, 333, - 334, 335, 0, 336, 337, 338, 0, 0, 0, 0, - 0, 0, 339, 340, 0, 341, 0, 0, 342, 0, - 0, 343, 344, 849, 850, 345, 346, 0, 347, 851, - 349, 852, 853, 854, 350, 351, 352, 353, 855, 354, - 355, 0, 356, 357, 0, 670, 358, 856, 857, 858, - 859, 0, 0, 0, 0, 0, 363, 0, 364, 860, - 861, 862, 366, 367, 368, 0, 863, 369, 370, 864, - 0, 371, 0, 0, 865, 866, 372, 0, 0, 373, - 0, 374, 0, 867, 376, 0, 0, 868, 869, 870, - 871, 872, 377, 0, 0, 378, 873, 0, 379, 380, - 874, 0, 0, 0, 0, 382, 0, 383, 384, 0, - 875, 0, 876, 0, 0, 0, 0, 877, 0, 0, - 0, 878, 879, 0, 0, 0, 0, 880, 0, 881, - 1599, 0, 882, 883, 0, 884, 885, 122, 0, 741, - 124, 125, 126, 127, 0, 0, 0, 0, 0, 128, - 0, 0, 742, 0, 743, 130, 131, 744, 133, 0, - 134, 745, 135, 0, 746, 136, 747, 748, 749, 137, - 750, 0, 138, 139, 140, 0, 141, 0, 142, 143, - 0, 0, 144, 751, 145, 0, 146, 752, 753, 148, - 0, 149, 150, 151, 754, 152, 0, 755, 154, 0, - 155, 156, 157, 158, 159, 756, 757, 160, 0, 161, - 162, 0, 758, 164, 0, 759, 760, 761, 165, 0, - 0, 166, 762, 763, 0, 764, 765, 0, 167, 168, - 766, 767, 768, 0, 0, 0, 0, 769, 171, 770, - 0, 0, 771, 772, 172, 0, 173, 0, 0, 0, - 773, 774, 174, 0, 175, 176, 177, 0, 0, 0, - 178, 0, 0, 179, 180, 181, 0, 0, 775, 182, - 0, 776, 777, 183, 184, 185, 186, 0, 0, 187, - 0, 188, 189, 190, 778, 0, 191, 779, 192, 780, - 781, 193, 194, 0, 782, 195, 196, 197, 783, 0, - 198, 0, 0, 784, 0, 199, 200, 0, 785, 201, - 0, 202, 786, 787, 788, 789, 0, 790, 791, 204, - 792, 793, 794, 206, 0, 207, 795, 0, 796, 797, - 0, 208, 209, 0, 210, 798, 0, 211, 0, 0, - 0, 799, 213, 214, 215, 800, 0, 216, 217, 0, - 0, 0, 218, 0, 0, 801, 219, 802, 0, 0, - 220, 0, 221, 222, 0, 223, 224, 0, 0, 0, - 0, 0, 0, 225, 803, 226, 0, 0, 804, 227, - 0, 805, 228, 0, 0, 0, 806, 0, 807, 0, - 230, 808, 0, 231, 0, 232, 809, 0, 0, 810, - 0, 0, 0, 0, 811, 233, 234, 235, 236, 237, - 238, 812, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 813, 248, 249, 250, 814, 251, 252, 0, 0, - 0, 253, 254, 255, 815, 257, 0, 0, 816, 259, - 817, 818, 260, 0, 261, 819, 820, 821, 822, 823, - 824, 825, 266, 267, 268, 269, 0, 826, 270, 271, - 0, 272, 273, 274, 827, 828, 829, 275, 0, 830, - 831, 0, 276, 277, 0, 832, 0, 279, 280, 281, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 282, 283, 284, 833, 834, 286, 835, 836, 837, 838, - 839, 0, 289, 290, 0, 291, 0, 292, 293, 294, - 295, 0, 840, 297, 298, 299, 300, 301, 302, 303, - 841, 0, 0, 0, 304, 305, 0, 0, 306, 307, - 308, 0, 309, 0, 310, 311, 842, 843, 312, 0, - 313, 314, 315, 0, 316, 317, 0, 0, 844, 318, - 319, 845, 320, 321, 846, 322, 847, 324, 325, 0, - 848, 327, 0, 0, 0, 328, 329, 330, 0, 0, - 331, 0, 0, 0, 332, 333, 334, 335, 0, 336, - 337, 338, 0, 0, 0, 0, 0, 0, 339, 340, - 0, 341, 0, 0, 342, 0, 0, 343, 344, 849, - 850, 345, 346, 0, 347, 851, 349, 852, 853, 854, - 350, 351, 352, 353, 855, 354, 355, 0, 356, 357, - 0, 670, 358, 856, 857, 858, 859, 0, 0, 0, - 0, 0, 363, 0, 364, 860, 861, 862, 366, 367, - 368, 0, 863, 369, 370, 864, 0, 371, 0, 0, - 865, 866, 372, 0, 0, 373, 0, 374, 0, 867, - 376, 0, 0, 868, 869, 870, 871, 872, 377, 0, - 0, 378, 873, 0, 379, 380, 874, 0, 0, 0, - 0, 382, 0, 383, 384, 0, 875, 0, 876, 0, - 0, 0, 0, 877, 0, 0, 0, 878, 879, 0, - 0, 0, 0, 880, 0, 881, 1693, 0, 882, 883, - 0, 884, 885, 122, 0, 741, 124, 125, 126, 127, - 0, 0, 0, 0, 0, 128, 0, 0, 742, 0, - 743, 130, 131, 744, 133, 0, 134, 745, 135, 0, - 746, 136, 747, 748, 749, 137, 750, 0, 138, 139, - 140, 0, 141, 0, 142, 143, 0, 0, 144, 751, - 145, 0, 146, 752, 753, 148, 0, 149, 150, 151, - 754, 152, 0, 755, 154, 0, 155, 156, 157, 158, - 159, 756, 757, 160, 0, 161, 162, 0, 758, 164, - 0, 759, 760, 761, 165, 0, 0, 166, 762, 763, - 0, 764, 765, 0, 167, 168, 766, 767, 768, 0, - 0, 0, 0, 769, 171, 770, 0, 0, 771, 772, - 172, 0, 173, 0, 0, 0, 773, 774, 174, 0, - 175, 176, 177, 0, 0, 0, 178, 0, 0, 179, - 180, 181, 0, 0, 775, 182, 0, 776, 777, 183, - 184, 185, 186, 0, 0, 187, 0, 188, 189, 190, - 778, 0, 191, 779, 192, 780, 781, 193, 194, 0, - 782, 195, 196, 197, 783, 0, 198, 0, 0, 784, - 0, 199, 200, 0, 785, 201, 0, 202, 786, 787, - 788, 789, 0, 790, 791, 204, 792, 793, 794, 206, - 0, 207, 795, 0, 796, 797, 0, 208, 209, 0, - 210, 798, 0, 211, 0, 0, 0, 799, 213, 214, - 215, 800, 0, 216, 217, 0, 0, 0, 218, 0, - 0, 801, 219, 802, 0, 0, 220, 0, 221, 222, - 0, 223, 224, 0, 0, 0, 0, 0, 0, 225, - 803, 226, 0, 0, 804, 227, 0, 805, 228, 0, - 0, 0, 806, 0, 807, 0, 230, 808, 0, 231, - 0, 232, 809, 0, 0, 810, 0, 0, 0, 0, - 811, 233, 234, 235, 236, 237, 238, 812, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 813, 248, 249, - 250, 814, 251, 252, 0, 0, 0, 253, 254, 255, - 815, 257, 0, 0, 816, 259, 817, 818, 260, 0, - 261, 819, 820, 821, 822, 823, 824, 825, 266, 267, - 268, 269, 0, 826, 270, 271, 0, 272, 273, 274, - 827, 828, 829, 275, 0, 830, 831, 0, 276, 277, - 0, 832, 0, 279, 280, 281, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 282, 283, 284, 833, - 834, 286, 835, 836, 837, 838, 839, 0, 289, 290, - 0, 291, 0, 292, 293, 294, 295, 0, 840, 297, - 298, 299, 300, 301, 302, 303, 841, 0, 0, 0, - 304, 305, 0, 0, 306, 307, 308, 0, 309, 0, - 310, 311, 842, 843, 312, 0, 313, 314, 315, 0, - 316, 317, 0, 0, 844, 318, 319, 845, 320, 321, - 846, 322, 847, 324, 325, 0, 848, 327, 0, 0, - 0, 328, 329, 330, 0, 0, 331, 0, 0, 0, - 332, 333, 334, 335, 0, 336, 337, 338, 0, 0, - 0, 0, 0, 0, 339, 340, 0, 341, 0, 0, - 342, 0, 0, 343, 344, 849, 850, 345, 346, 0, - 347, 851, 349, 852, 853, 854, 350, 351, 352, 353, - 855, 354, 355, 0, 356, 357, 0, 670, 358, 856, - 857, 858, 859, 0, 0, 0, 0, 0, 363, 0, - 364, 860, 861, 862, 366, 367, 368, 0, 863, 369, - 370, 864, 0, 371, 0, 0, 865, 866, 372, 0, - 0, 373, 0, 374, 0, 867, 376, 0, 0, 868, - 869, 870, 871, 872, 377, 0, 0, 378, 873, 0, - 379, 380, 874, 0, 0, 0, 0, 382, 0, 383, - 384, 0, 875, 0, 876, 0, 0, 0, 0, 877, - 0, 0, 0, 878, 879, 0, 0, 0, 0, 880, - 0, 881, 1730, 0, 882, 883, 0, 884, 885, 122, - 0, 741, 124, 125, 126, 127, 0, 0, 0, 0, - 0, 128, 0, 0, 742, 0, 743, 130, 131, 744, - 133, 0, 134, 745, 135, 0, 746, 136, 747, 748, - 749, 137, 750, 0, 138, 139, 140, 0, 141, 0, - 142, 143, 0, 0, 144, 751, 145, 0, 146, 752, - 753, 148, 0, 149, 150, 151, 754, 152, 0, 755, - 154, 0, 155, 156, 157, 158, 159, 756, 757, 160, - 0, 161, 162, 0, 758, 164, 0, 759, 760, 761, - 165, 0, 0, 166, 762, 763, 0, 764, 765, 0, - 167, 168, 766, 767, 768, 0, 0, 0, 0, 769, - 171, 770, 0, 0, 771, 772, 172, 0, 173, 0, - 0, 0, 773, 774, 174, 0, 175, 176, 177, 0, - 0, 0, 178, 0, 0, 179, 180, 181, 0, 0, - 775, 182, 0, 776, 777, 183, 184, 185, 186, 0, - 0, 187, 0, 188, 189, 190, 778, 0, 191, 779, - 192, 780, 781, 193, 194, 0, 782, 195, 196, 197, - 783, 0, 198, 0, 0, 784, 0, 199, 200, 0, - 785, 201, 0, 202, 786, 787, 788, 789, 0, 790, - 791, 204, 792, 793, 794, 206, 0, 207, 795, 0, - 796, 797, 0, 208, 209, 0, 210, 798, 0, 211, - 0, 0, 0, 799, 213, 214, 215, 800, 0, 216, - 217, 0, 0, 0, 218, 0, 0, 801, 219, 802, - 0, 0, 220, 0, 221, 222, 0, 223, 224, 0, - 0, 0, 0, 0, 0, 225, 803, 226, 0, 0, - 804, 227, 0, 805, 228, 0, 0, 0, 806, 0, - 807, 0, 230, 808, 0, 231, 0, 232, 809, 0, - 0, 810, 0, 0, 0, 0, 811, 233, 234, 235, - 236, 237, 238, 812, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 813, 248, 249, 250, 814, 251, 252, - 0, 0, 0, 253, 254, 255, 815, 257, 0, 0, - 816, 259, 817, 818, 260, 0, 261, 819, 820, 821, - 822, 823, 824, 825, 266, 267, 268, 269, 0, 826, - 270, 271, 0, 272, 273, 274, 827, 828, 829, 275, - 0, 830, 831, 0, 276, 277, 0, 832, 0, 279, - 280, 281, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 282, 283, 284, 833, 834, 286, 835, 836, - 837, 838, 839, 0, 289, 290, 0, 291, 0, 292, - 293, 294, 295, 0, 840, 297, 298, 299, 300, 301, - 302, 303, 841, 0, 0, 0, 304, 305, 0, 0, - 306, 307, 308, 0, 309, 0, 310, 311, 842, 843, - 312, 0, 313, 314, 315, 0, 316, 317, 0, 0, - 844, 318, 319, 845, 320, 321, 846, 322, 847, 324, - 325, 0, 848, 327, 0, 0, 0, 328, 329, 330, - 0, 0, 331, 0, 0, 0, 332, 333, 334, 335, - 0, 336, 337, 338, 0, 0, 0, 0, 0, 0, - 339, 340, 0, 341, 0, 0, 342, 0, 0, 343, - 344, 849, 850, 345, 346, 0, 347, 851, 349, 852, - 853, 854, 350, 351, 352, 353, 855, 354, 355, 0, - 356, 357, 0, 670, 358, 856, 857, 858, 859, 0, - 0, 0, 0, 0, 363, 0, 364, 860, 861, 862, - 366, 367, 368, 0, 863, 369, 370, 864, 0, 371, - 0, 0, 865, 866, 372, 0, 0, 373, 0, 374, - 0, 867, 376, 0, 0, 868, 869, 870, 871, 872, - 377, 0, 0, 378, 873, 0, 379, 380, 874, 0, - 0, 0, 0, 382, 0, 383, 384, 0, 875, 0, - 876, 0, 0, 0, 0, 877, 0, 0, 0, 878, - 879, 0, 0, 0, 0, 880, 0, 881, 1757, 0, - 882, 883, 0, 884, 885, 122, 0, 741, 124, 125, - 126, 127, 0, 0, 0, 0, 0, 128, 0, 0, - 742, 0, 743, 130, 131, 744, 133, 0, 134, 745, - 135, 0, 746, 136, 747, 748, 749, 137, 750, 0, - 138, 139, 140, 0, 141, 0, 142, 143, 0, 0, - 144, 751, 145, 0, 146, 752, 753, 148, 0, 149, - 150, 151, 754, 152, 0, 755, 154, 0, 155, 156, - 157, 158, 159, 756, 757, 160, 0, 161, 162, 0, - 758, 164, 0, 759, 760, 761, 165, 0, 0, 166, - 762, 763, 0, 764, 765, 0, 167, 168, 766, 767, - 768, 0, 0, 0, 0, 769, 171, 770, 0, 0, - 771, 772, 172, 0, 173, 0, 0, 0, 773, 774, - 174, 0, 175, 176, 177, 0, 0, 0, 178, 0, - 0, 179, 180, 181, 0, 0, 775, 182, 0, 776, - 777, 183, 184, 185, 186, 0, 0, 187, 0, 188, - 189, 190, 778, 0, 191, 779, 192, 780, 781, 193, - 194, 0, 782, 195, 196, 197, 783, 0, 198, 0, - 0, 784, 0, 199, 200, 2197, 785, 201, 0, 202, - 786, 787, 788, 789, 0, 790, 791, 204, 792, 793, - 794, 206, 0, 207, 795, 0, 796, 797, 0, 208, - 209, 0, 210, 798, 0, 211, 0, 0, 0, 799, - 213, 214, 215, 800, 0, 216, 217, 0, 0, 0, - 218, 0, 0, 801, 219, 802, 0, 0, 220, 0, - 221, 222, 0, 223, 224, 0, 0, 0, 0, 0, - 0, 225, 803, 226, 0, 0, 804, 227, 0, 805, - 228, 0, 0, 0, 806, 0, 807, 0, 230, 808, - 0, 231, 0, 232, 809, 0, 0, 810, 0, 0, - 0, 0, 811, 233, 234, 235, 236, 237, 238, 812, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 813, - 248, 249, 250, 814, 251, 252, 0, 0, 0, 253, - 254, 255, 815, 257, 0, 0, 816, 259, 817, 818, - 260, 0, 261, 819, 820, 821, 822, 823, 824, 825, - 266, 267, 268, 269, 0, 826, 270, 271, 0, 272, - 273, 274, 827, 828, 829, 275, 0, 830, 831, 0, - 276, 277, 0, 832, 0, 279, 280, 281, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 282, 283, - 284, 833, 834, 286, 835, 836, 837, 838, 839, 0, - 289, 290, 0, 291, 0, 292, 293, 294, 295, 0, - 840, 297, 298, 299, 300, 301, 302, 303, 841, 0, - 0, 0, 304, 305, 0, 0, 306, 307, 308, 0, - 309, 0, 310, 311, 842, 843, 312, 0, 313, 314, - 315, 0, 316, 317, 0, 0, 844, 318, 319, 845, - 320, 321, 846, 322, 847, 324, 325, 0, 848, 327, - 0, 0, 0, 328, 329, 330, 0, 0, 331, 0, - 0, 0, 332, 333, 334, 335, 0, 336, 337, 338, - 0, 0, 0, 0, 0, 0, 339, 340, 0, 341, - 0, 0, 342, 0, 0, 343, 344, 849, 850, 345, - 346, 0, 347, 851, 349, 852, 853, 854, 350, 351, - 352, 353, 855, 354, 355, 0, 356, 357, 0, 670, - 358, 856, 857, 858, 859, 0, 0, 0, 0, 0, - 363, 0, 364, 860, 861, 862, 366, 367, 368, 0, - 863, 369, 370, 864, 0, 371, 0, 0, 865, 866, - 372, 0, 0, 373, 0, 374, 0, 867, 376, 0, - 0, 868, 869, 870, 871, 872, 377, 0, 0, 378, - 873, 0, 379, 380, 874, 0, 0, 0, 0, 382, - 0, 383, 384, 0, 875, 0, 876, 0, 0, 0, - 0, 877, 0, 0, 0, 878, 879, 0, 0, 0, - 0, 880, 0, 881, 0, 0, 882, 883, 0, 884, - 885, 122, 0, 741, 124, 125, 126, 127, 0, 0, - 0, 0, 0, 128, 0, 0, 742, 0, 743, 130, - 131, 744, 133, 0, 134, 745, 135, 0, 746, 136, - 747, 748, 749, 137, 750, 0, 138, 139, 140, 0, - 141, 0, 142, 143, 0, 0, 144, 751, 145, 0, - 146, 752, 753, 148, 0, 149, 150, 151, 754, 152, - 0, 755, 154, 0, 155, 156, 157, 158, 159, 756, - 757, 160, 0, 161, 162, 0, 758, 164, 0, 759, - 760, 761, 165, 0, 0, 166, 762, 763, 0, 764, - 765, 0, 167, 168, 766, 767, 768, 0, 0, 0, - 0, 769, 171, 770, 0, 0, 771, 772, 172, 0, - 173, 0, 0, 0, 773, 774, 174, 0, 175, 176, - 177, 0, 0, 0, 178, 0, 0, 179, 180, 181, - 0, 0, 775, 182, 0, 776, 777, 183, 184, 185, - 186, 0, 0, 187, 0, 188, 189, 190, 778, 0, - 191, 779, 192, 780, 781, 193, 194, 0, 782, 195, - 196, 197, 783, 0, 198, 0, 0, 784, 0, 199, - 200, 2199, 785, 201, 0, 202, 786, 787, 788, 789, - 0, 790, 791, 204, 792, 793, 794, 206, 0, 207, - 795, 0, 796, 797, 0, 208, 209, 0, 210, 798, - 0, 211, 0, 0, 0, 799, 213, 214, 215, 800, - 0, 216, 217, 0, 0, 0, 218, 0, 0, 801, - 219, 802, 0, 0, 220, 0, 221, 222, 0, 223, - 224, 0, 0, 0, 0, 0, 0, 225, 803, 226, - 0, 0, 804, 227, 0, 805, 228, 0, 0, 0, - 806, 0, 807, 0, 230, 808, 0, 231, 0, 232, - 809, 0, 0, 810, 0, 0, 0, 0, 811, 233, - 234, 235, 236, 237, 238, 812, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 813, 248, 249, 250, 814, - 251, 252, 0, 0, 0, 253, 254, 255, 815, 257, - 0, 0, 816, 259, 817, 818, 260, 0, 261, 819, - 820, 821, 822, 823, 824, 825, 266, 267, 268, 269, - 0, 826, 270, 271, 0, 272, 273, 274, 827, 828, - 829, 275, 0, 830, 831, 0, 276, 277, 0, 832, - 0, 279, 280, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 282, 283, 284, 833, 834, 286, - 835, 836, 837, 838, 839, 0, 289, 290, 0, 291, - 0, 292, 293, 294, 295, 0, 840, 297, 298, 299, - 300, 301, 302, 303, 841, 0, 0, 0, 304, 305, - 0, 0, 306, 307, 308, 0, 309, 0, 310, 311, - 842, 843, 312, 0, 313, 314, 315, 0, 316, 317, - 0, 0, 844, 318, 319, 845, 320, 321, 846, 322, - 847, 324, 325, 0, 848, 327, 0, 0, 0, 328, - 329, 330, 0, 0, 331, 0, 0, 0, 332, 333, - 334, 335, 0, 336, 337, 338, 0, 0, 0, 0, - 0, 0, 339, 340, 0, 341, 0, 0, 342, 0, - 0, 343, 344, 849, 850, 345, 346, 0, 347, 851, - 349, 852, 853, 854, 350, 351, 352, 353, 855, 354, - 355, 0, 356, 357, 0, 670, 358, 856, 857, 858, - 859, 0, 0, 0, 0, 0, 363, 0, 364, 860, - 861, 862, 366, 367, 368, 0, 863, 369, 370, 864, - 0, 371, 0, 0, 865, 866, 372, 0, 0, 373, - 0, 374, 0, 867, 376, 0, 0, 868, 869, 870, - 871, 872, 377, 0, 0, 378, 873, 0, 379, 380, - 874, 0, 0, 0, 0, 382, 0, 383, 384, 0, - 875, 0, 876, 0, 0, 0, 0, 877, 0, 0, - 0, 878, 879, 0, 0, 0, 0, 880, 0, 881, - 0, 0, 882, 883, 0, 884, 885, 122, 0, 741, - 124, 125, 126, 127, 0, 0, 0, 0, 0, 128, - 0, 0, 742, 0, 743, 130, 131, 744, 133, 0, - 134, 745, 135, 0, 746, 136, 747, 748, 749, 137, - 750, 0, 138, 139, 140, 0, 141, 0, 142, 143, - 0, 0, 144, 751, 145, 0, 146, 752, 753, 148, - 0, 149, 150, 151, 754, 152, 0, 755, 154, 0, - 155, 156, 157, 158, 159, 756, 757, 160, 0, 161, - 162, 0, 758, 164, 0, 759, 760, 761, 165, 0, - 0, 166, 762, 763, 0, 764, 765, 0, 167, 168, - 766, 767, 768, 0, 0, 0, 0, 769, 171, 770, - 0, 0, 771, 772, 172, 0, 173, 0, 0, 0, - 773, 774, 174, 0, 175, 176, 177, 0, 0, 0, - 178, 0, 0, 179, 180, 181, 0, 0, 775, 182, - 0, 776, 777, 183, 184, 185, 186, 0, 0, 187, - 0, 188, 189, 190, 778, 0, 191, 779, 192, 780, - 781, 193, 194, 0, 782, 195, 196, 197, 783, 0, - 198, 0, 0, 784, 0, 199, 200, 2201, 785, 201, - 0, 202, 786, 787, 788, 789, 0, 790, 791, 204, - 792, 793, 794, 206, 0, 207, 795, 0, 796, 797, - 0, 208, 209, 0, 210, 798, 0, 211,