00001 00002 #line 3 "<stdout>" 00003 00004 #define YY_INT_ALIGNED short int 00005 00006 /* A lexical scanner generated by flex */ 00007 00008 #define FLEX_SCANNER 00009 #define YY_FLEX_MAJOR_VERSION 2 00010 #define YY_FLEX_MINOR_VERSION 5 00011 #define YY_FLEX_SUBMINOR_VERSION 33 00012 #if YY_FLEX_SUBMINOR_VERSION > 0 00013 #define FLEX_BETA 00014 #endif 00015 00016 /* First, we deal with platform-specific or compiler-specific issues. */ 00017 00018 /* begin standard C headers. */ 00019 #include <stdio.h> 00020 #include <string.h> 00021 #include <errno.h> 00022 #include <stdlib.h> 00023 00024 /* end standard C headers. */ 00025 00026 /* flex integer type definitions */ 00027 00028 #ifndef FLEXINT_H 00029 #define FLEXINT_H 00030 00031 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 00032 00033 #if __STDC_VERSION__ >= 199901L 00034 00035 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 00036 * if you want the limit (max/min) macros for int types. 00037 */ 00038 #ifndef __STDC_LIMIT_MACROS 00039 #define __STDC_LIMIT_MACROS 1 00040 #endif 00041 00042 #include <inttypes.h> 00043 typedef int8_t flex_int8_t; 00044 typedef uint8_t flex_uint8_t; 00045 typedef int16_t flex_int16_t; 00046 typedef uint16_t flex_uint16_t; 00047 typedef int32_t flex_int32_t; 00048 typedef uint32_t flex_uint32_t; 00049 #else 00050 typedef signed char flex_int8_t; 00051 typedef short int flex_int16_t; 00052 typedef int flex_int32_t; 00053 typedef unsigned char flex_uint8_t; 00054 typedef unsigned short int flex_uint16_t; 00055 typedef unsigned int flex_uint32_t; 00056 #endif /* ! C99 */ 00057 00058 /* Limits of integral types. */ 00059 #ifndef INT8_MIN 00060 #define INT8_MIN (-128) 00061 #endif 00062 #ifndef INT16_MIN 00063 #define INT16_MIN (-32767-1) 00064 #endif 00065 #ifndef INT32_MIN 00066 #define INT32_MIN (-2147483647-1) 00067 #endif 00068 #ifndef INT8_MAX 00069 #define INT8_MAX (127) 00070 #endif 00071 #ifndef INT16_MAX 00072 #define INT16_MAX (32767) 00073 #endif 00074 #ifndef INT32_MAX 00075 #define INT32_MAX (2147483647) 00076 #endif 00077 #ifndef UINT8_MAX 00078 #define UINT8_MAX (255U) 00079 #endif 00080 #ifndef UINT16_MAX 00081 #define UINT16_MAX (65535U) 00082 #endif 00083 #ifndef UINT32_MAX 00084 #define UINT32_MAX (4294967295U) 00085 #endif 00086 00087 #endif /* ! FLEXINT_H */ 00088 00089 #ifdef __cplusplus 00090 00091 /* The "const" storage-class-modifier is valid. */ 00092 #define YY_USE_CONST 00093 00094 #else /* ! __cplusplus */ 00095 00096 #if __STDC__ 00097 00098 #define YY_USE_CONST 00099 00100 #endif /* __STDC__ */ 00101 #endif /* ! __cplusplus */ 00102 00103 #ifdef YY_USE_CONST 00104 #define yyconst const 00105 #else 00106 #define yyconst 00107 #endif 00108 00109 /* Returned upon end-of-file. */ 00110 #define YY_NULL 0 00111 00112 /* Promotes a possibly negative, possibly signed char to an unsigned 00113 * integer for use as an array index. If the signed char is negative, 00114 * we want to instead treat it as an 8-bit unsigned char, hence the 00115 * double cast. 00116 */ 00117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 00118 00119 /* Enter a start condition. This macro really ought to take a parameter, 00120 * but we do it the disgusting crufty way forced on us by the ()-less 00121 * definition of BEGIN. 00122 */ 00123 #define BEGIN (yy_start) = 1 + 2 * 00124 00125 /* Translate the current start state into a value that can be later handed 00126 * to BEGIN to return to the state. The YYSTATE alias is for lex 00127 * compatibility. 00128 */ 00129 #define YY_START (((yy_start) - 1) / 2) 00130 #define YYSTATE YY_START 00131 00132 /* Action number for EOF rule of a given start state. */ 00133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 00134 00135 /* Special action meaning "start processing a new file". */ 00136 #define YY_NEW_FILE codeYYrestart(codeYYin ) 00137 00138 #define YY_END_OF_BUFFER_CHAR 0 00139 00140 /* Size of default input buffer. */ 00141 #ifndef YY_BUF_SIZE 00142 #define YY_BUF_SIZE 262144 00143 #endif 00144 00145 /* The state buf must be large enough to hold one state per character in the main buffer. 00146 */ 00147 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 00148 00149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 00150 #define YY_TYPEDEF_YY_BUFFER_STATE 00151 typedef struct yy_buffer_state *YY_BUFFER_STATE; 00152 #endif 00153 00154 extern int codeYYleng; 00155 00156 extern FILE *codeYYin, *codeYYout; 00157 00158 #define EOB_ACT_CONTINUE_SCAN 0 00159 #define EOB_ACT_END_OF_FILE 1 00160 #define EOB_ACT_LAST_MATCH 2 00161 00162 #define YY_LESS_LINENO(n) 00163 00164 /* Return all but the first "n" matched characters back to the input stream. */ 00165 #define yyless(n) \ 00166 do \ 00167 { \ 00168 /* Undo effects of setting up codeYYtext. */ \ 00169 int yyless_macro_arg = (n); \ 00170 YY_LESS_LINENO(yyless_macro_arg);\ 00171 *yy_cp = (yy_hold_char); \ 00172 YY_RESTORE_YY_MORE_OFFSET \ 00173 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 00174 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ \ 00175 } \ 00176 while ( 0 ) 00177 00178 #define unput(c) yyunput( c, (yytext_ptr) ) 00179 00180 /* The following is because we cannot portably get our hands on size_t 00181 * (without autoconf's help, which isn't available because we want 00182 * flex-generated scanners to compile on their own). 00183 */ 00184 00185 #ifndef YY_TYPEDEF_YY_SIZE_T 00186 #define YY_TYPEDEF_YY_SIZE_T 00187 typedef unsigned int yy_size_t; 00188 #endif 00189 00190 #ifndef YY_STRUCT_YY_BUFFER_STATE 00191 #define YY_STRUCT_YY_BUFFER_STATE 00192 struct yy_buffer_state 00193 { 00194 FILE *yy_input_file; 00195 00196 char *yy_ch_buf; /* input buffer */ 00197 char *yy_buf_pos; /* current position in input buffer */ 00198 00199 /* Size of input buffer in bytes, not including room for EOB 00200 * characters. 00201 */ 00202 yy_size_t yy_buf_size; 00203 00204 /* Number of characters read into yy_ch_buf, not including EOB 00205 * characters. 00206 */ 00207 int yy_n_chars; 00208 00209 /* Whether we "own" the buffer - i.e., we know we created it, 00210 * and can realloc() it to grow it, and should free() it to 00211 * delete it. 00212 */ 00213 int yy_is_our_buffer; 00214 00215 /* Whether this is an "interactive" input source; if so, and 00216 * if we're using stdio for input, then we want to use getc() 00217 * instead of fread(), to make sure we stop fetching input after 00218 * each newline. 00219 */ 00220 int yy_is_interactive; 00221 00222 /* Whether we're considered to be at the beginning of a line. 00223 * If so, '^' rules will be active on the next match, otherwise 00224 * not. 00225 */ 00226 int yy_at_bol; 00227 00228 int yy_bs_lineno; 00229 int yy_bs_column; 00231 /* Whether to try to fill the input buffer when we reach the 00232 * end of it. 00233 */ 00234 int yy_fill_buffer; 00235 00236 int yy_buffer_status; 00237 00238 #define YY_BUFFER_NEW 0 00239 #define YY_BUFFER_NORMAL 1 00240 /* When an EOF's been seen but there's still some text to process 00241 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 00242 * shouldn't try reading from the input source any more. We might 00243 * still have a bunch of tokens to match, though, because of 00244 * possible backing-up. 00245 * 00246 * When we actually see the EOF, we change the status to "new" 00247 * (via codeYYrestart()), so that the user can continue scanning by 00248 * just pointing codeYYin at a new input file. 00249 */ 00250 #define YY_BUFFER_EOF_PENDING 2 00251 00252 }; 00253 #endif /* !YY_STRUCT_YY_BUFFER_STATE */ 00254 00255 /* Stack of input buffers. */ 00256 static size_t yy_buffer_stack_top = 0; 00257 static size_t yy_buffer_stack_max = 0; 00258 static YY_BUFFER_STATE * yy_buffer_stack = 0; 00260 /* We provide macros for accessing buffer states in case in the 00261 * future we want to put the buffer states in a more general 00262 * "scanner state". 00263 * 00264 * Returns the top of the stack, or NULL. 00265 */ 00266 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 00267 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 00268 : NULL) 00269 00270 /* Same as previous macro, but useful when we know that the buffer stack is not 00271 * NULL or when we need an lvalue. For internal use only. 00272 */ 00273 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 00274 00275 /* yy_hold_char holds the character lost when codeYYtext is formed. */ 00276 static char yy_hold_char; 00277 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 00278 int codeYYleng; 00279 00280 /* Points to current character in buffer. */ 00281 static char *yy_c_buf_p = (char *) 0; 00282 static int yy_init = 0; /* whether we need to initialize */ 00283 static int yy_start = 0; /* start state number */ 00284 00285 /* Flag which is used to allow codeYYwrap()'s to do buffer switches 00286 * instead of setting up a fresh codeYYin. A bit of a hack ... 00287 */ 00288 static int yy_did_buffer_switch_on_eof; 00289 00290 void codeYYrestart (FILE *input_file ); 00291 void codeYY_switch_to_buffer (YY_BUFFER_STATE new_buffer ); 00292 YY_BUFFER_STATE codeYY_create_buffer (FILE *file,int size ); 00293 void codeYY_delete_buffer (YY_BUFFER_STATE b ); 00294 void codeYY_flush_buffer (YY_BUFFER_STATE b ); 00295 void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer ); 00296 void codeYYpop_buffer_state (void ); 00297 00298 static void codeYYensure_buffer_stack (void ); 00299 static void codeYY_load_buffer_state (void ); 00300 static void codeYY_init_buffer (YY_BUFFER_STATE b,FILE *file ); 00301 00302 #define YY_FLUSH_BUFFER codeYY_flush_buffer(YY_CURRENT_BUFFER ) 00303 00304 YY_BUFFER_STATE codeYY_scan_buffer (char *base,yy_size_t size ); 00305 YY_BUFFER_STATE codeYY_scan_string (yyconst char *yy_str ); 00306 YY_BUFFER_STATE codeYY_scan_bytes (yyconst char *bytes,int len ); 00307 00308 void *codeYYalloc (yy_size_t ); 00309 void *codeYYrealloc (void *,yy_size_t ); 00310 void codeYYfree (void * ); 00311 00312 #define yy_new_buffer codeYY_create_buffer 00313 00314 #define yy_set_interactive(is_interactive) \ 00315 { \ 00316 if ( ! YY_CURRENT_BUFFER ){ \ 00317 codeYYensure_buffer_stack (); \ 00318 YY_CURRENT_BUFFER_LVALUE = \ 00319 codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); \ 00320 } \ 00321 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 00322 } 00323 00324 #define yy_set_bol(at_bol) \ 00325 { \ 00326 if ( ! YY_CURRENT_BUFFER ){\ 00327 codeYYensure_buffer_stack (); \ 00328 YY_CURRENT_BUFFER_LVALUE = \ 00329 codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); \ 00330 } \ 00331 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 00332 } 00333 00334 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 00335 00336 /* Begin user sect3 */ 00337 00338 #define codeYYwrap(n) 1 00339 #define YY_SKIP_YYWRAP 00340 00341 typedef unsigned char YY_CHAR; 00342 00343 FILE *codeYYin = (FILE *) 0, *codeYYout = (FILE *) 0; 00344 00345 typedef int yy_state_type; 00346 00347 extern int codeYYlineno; 00348 00349 int codeYYlineno = 1; 00350 00351 extern char *codeYYtext; 00352 #define yytext_ptr codeYYtext 00353 00354 static yy_state_type yy_get_previous_state (void ); 00355 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); 00356 static int yy_get_next_buffer (void ); 00357 static void yy_fatal_error (yyconst char msg[] ); 00358 00359 /* Done after the current pattern has been matched and before the 00360 * corresponding action - sets up codeYYtext. 00361 */ 00362 #define YY_DO_BEFORE_ACTION \ 00363 (yytext_ptr) = yy_bp; \ 00364 codeYYleng = (size_t) (yy_cp - yy_bp); \ 00365 (yy_hold_char) = *yy_cp; \ 00366 *yy_cp = '\0'; \ 00367 (yy_c_buf_p) = yy_cp; 00368 00369 #define YY_NUM_RULES 187 00370 #define YY_END_OF_BUFFER 188 00371 /* This struct is not used in this scanner, 00372 but its presence is necessary. */ 00373 struct yy_trans_info 00374 { 00375 flex_int32_t yy_verify; 00376 flex_int32_t yy_nxt; 00377 }; 00378 static yyconst flex_int16_t yy_acclist[6036] = 00379 { 0, 00380 84, 84, 85, 85, 75, 75, 133, 133, 109, 109, 00381 188, 186, 187, 185, 187, 1, 186, 187, 183, 186, 00382 187, 184, 186, 187, 186, 187, 186, 187, 186, 187, 00383 186, 187, 84, 186, 187, 87, 186, 187, 84, 183, 00384 186, 187, 84, 184, 186, 187, 84, 186, 187, 84, 00385 186, 187, 186, 187, 84, 186, 187, 84, 186, 187, 00386 85, 186, 187, 88, 186, 187, 85, 183, 186, 187, 00387 85, 184, 186, 187, 85, 186, 187, 85, 186, 187, 00388 85, 186, 187, 85, 186, 187, 90, 93, 186, 187, 00389 94, 185, 187, 1, 90, 93, 186, 187, 92, 93, 00390 00391 186, 187, 90, 93, 183, 186, 187, 90, 93, 184, 00392 186, 187, 90, 93, 186, 187, 90, 93, 186, 187, 00393 90, 93, 186, 187, 90, 93, 186, 187, 23, 186, 00394 187, 185, 187, 1, 23, 186, 187, 23, 183, 186, 00395 187, 23, 184, 186, 187, 23, 186, 187, 23, 186, 00396 187, 23, 186, 187, 23, 186, 187, 23, 186, 187, 00397 154, 186, 187, 154, 186, 187, 1, 154, 186, 187, 00398 154, 183, 186, 187, 154, 184, 186, 187, 186, 187, 00399 186, 187, 154, 186, 187, 154, 186, 187, 186, 187, 00400 156, 159, 186, 187, 158, 185, 187, 1, 157, 159, 00401 00402 186, 187, 156, 159, 183, 186, 187, 156, 159, 184, 00403 186, 187, 156, 159, 186, 187, 156, 159, 186, 187, 00404 156, 159, 186, 187, 156, 159, 186, 187, 163, 166, 00405 186, 187, 165, 185, 187, 1, 163, 166, 186, 187, 00406 163, 166, 183, 186, 187, 163, 166, 184, 186, 187, 00407 166, 186, 187, 163, 166, 186, 187, 163, 166, 186, 00408 187, 163, 166, 186, 187, 163, 166, 186, 187, 186, 00409 187, 185, 187, 1, 186, 187, 65, 186, 187, 82, 00410 186, 187, 186, 187, 83, 186, 187, 183, 186, 187, 00411 65, 184, 186, 187, 9, 65, 186, 187, 103, 186, 00412 00413 187, 9, 65, 186, 187, 100, 186, 187, 65, 186, 00414 187, 122, 186, 187, 95, 186, 187, 96, 186, 187, 00415 97, 186, 187, 186, 187, 8271, 186, 187,16462,16463, 00416 16465, 8271, 186, 187,16462,16463,16465, 8271, 186, 187, 00417 16462,16463,16465, 103, 183, 186, 187, 121, 184, 186, 00418 187, 8271, 186, 187,16462,16463,16465, 8271, 186, 187, 00419 16462,16463,16465, 8271, 186, 187,16462,16463,16465, 8271, 00420 186, 187,16462,16463,16465, 8271, 186, 187,16462,16463, 00421 16465, 8271, 186, 187,16462,16463,16465, 8271, 186, 187, 00422 16462,16463,16465, 8271, 186, 187,16462,16463,16465, 8271, 00423 00424 186, 187,16462,16463,16465, 8271, 186, 187,16462,16463, 00425 16465, 8271, 186, 187,16462,16463,16465, 8271, 186, 187, 00426 16462,16463,16465, 8271, 186, 187,16462,16463,16465, 8271, 00427 186, 187,16462,16463,16465, 8271, 186, 187,16462,16463, 00428 16465, 8271, 186, 187,16462,16463,16465, 8271, 186, 187, 00429 16462,16463,16465, 8271, 186, 187,16462,16463,16465, 8271, 00430 186, 187,16462,16463,16465, 8271, 186, 187,16462,16463, 00431 16465, 26, 186, 187, 27, 186, 187, 65, 186, 187, 00432 186, 187, 22, 186, 187, 65, 186, 187, 131, 186, 00433 187, 186, 187, 131, 186, 187, 131, 186, 187, 130, 00434 00435 183, 186, 187, 132, 184, 186, 187, 131, 186, 187, 00436 131, 186, 187, 129, 186, 187, 131, 186, 187, 131, 00437 186, 187, 128, 186, 187, 131, 186, 187, 131, 186, 00438 187, 131, 186, 187, 127, 186, 187,16531, 127, 186, 00439 187,16531, 127, 186, 187,16531, 131, 186, 187, 127, 00440 186, 187,16531, 127, 186, 187,16531, 127, 186, 187, 00441 16531, 127, 186, 187,16531, 127, 186, 187,16531, 127, 00442 186, 187,16531, 127, 186, 187,16531, 127, 186, 187, 00443 16531, 127, 186, 187,16531, 127, 186, 187,16531, 127, 00444 186, 187,16531, 127, 186, 187,16531, 127, 186, 187, 00445 00446 16531, 127, 186, 187,16531, 127, 186, 187,16531, 127, 00447 186, 187,16531, 127, 186, 187,16531, 127, 186, 187, 00448 16531, 127, 186, 187,16531, 127, 186, 187,16531, 131, 00449 186, 187, 131, 186, 187, 131, 186, 187, 167, 186, 00450 187, 167, 186, 187, 185, 187, 1, 167, 186, 187, 00451 82, 167, 186, 187, 167, 186, 187, 83, 167, 186, 00452 187, 132, 167, 184, 186, 187, 167, 186, 187, 167, 00453 186, 187, 167, 186, 187, 8294, 186, 187,16485,16486, 00454 167, 183, 186, 187, 167, 184, 186, 187, 27, 167, 00455 186, 187, 167, 186, 187, 167, 186, 187, 167, 186, 00456 00457 187, 186, 187, 131, 186, 187, 151, 186, 187, 127, 00458 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00459 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00460 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00461 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00462 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00463 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00464 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00465 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00466 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00467 00468 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00469 186, 187,16533,16534, 127, 186, 187,16533,16534, 127, 00470 186, 187,16533,16534, 186, 187, 83, 186, 187, 143, 00471 186, 187, 145, 186, 187, 144, 186, 187, 186, 187, 00472 186, 187, 30, 186, 187, 38, 186, 187, 29, 186, 00473 187, 32, 186, 187, 32, 186, 187, 40, 186, 187, 00474 186, 187, 186, 187, 186, 187, 39, 186, 187, 33, 00475 186, 187, 186, 187, 8, 185, 187, 186, 187, 9, 00476 186, 187, 34, 186, 187, 186, 187, 37, 186, 187, 00477 37, 186, 187, 37, 186, 187, 37, 186, 187, 37, 00478 00479 186, 187, 186, 187, 186, 187, 47, 183, 186, 187, 00480 50, 186, 187, 43, 186, 187, 44, 186, 187, 186, 00481 187, 42, 186, 187, 42, 186, 187, 42, 186, 187, 00482 186, 187, 48, 183, 186, 187, 49, 184, 186, 187, 00483 45, 186, 187, 46, 186, 187, 186, 187,16405, 1, 00484 186, 187,16405, 183, 186, 187,16405, 184, 186, 187, 00485 16405, 186, 187,16405, 186, 187,16405, 186, 187,16405, 00486 186, 187,16405, 70, 186, 187, 71, 186, 187, 186, 00487 187, 186, 187, 186, 187, 186, 187, 186, 187, 186, 00488 187, 186, 187, 186, 187, 186, 187, 186, 187, 186, 00489 00490 187, 186, 187, 186, 187, 186, 187, 186, 187, 185, 00491 187, 1, 186, 187, 186, 187, 75, 186, 187, 186, 00492 187, 72, 186, 187, 73, 186, 187, 73, 186, 187, 00493 73, 186, 187, 73, 186, 187, 73, 186, 187, 73, 00494 186, 187, 73, 186, 187, 73, 186, 187, 73, 186, 00495 187, 73, 186, 187, 73, 186, 187, 73, 186, 187, 00496 73, 186, 187, 186, 187, 186, 187, 142, 186, 187, 00497 133, 142, 186, 187, 133, 185, 187, 1, 142, 186, 00498 187, 141, 142, 186, 187, 142, 186, 187, 142, 183, 00499 186, 187, 142, 184, 186, 187, 142, 186, 187, 134, 00500 00501 142, 186, 187, 142, 186, 187, 138, 142, 186, 187, 00502 138, 142, 186, 187, 138, 142, 186, 187, 138, 142, 00503 186, 187, 138, 142, 186, 187, 138, 142, 186, 187, 00504 136, 142, 186, 187, 133, 142, 186, 187, 142, 186, 00505 187, 19, 186, 187, 20, 185, 187, 1, 19, 186, 00506 187, 19, 186, 187, 19, 183, 186, 187, 19, 184, 00507 186, 187, 19, 186, 187, 10, 19, 186, 187, 12, 00508 19, 186, 187, 19, 186, 187, 18, 19, 186, 187, 00509 18, 19, 186, 187, 18, 19, 186, 187, 18, 19, 00510 186, 187, 18, 19, 186, 187, 18, 19, 186, 187, 00511 00512 18, 19, 186, 187, 18, 19, 186, 187, 18, 19, 00513 186, 187, 18, 19, 186, 187, 18, 19, 186, 187, 00514 18, 19, 186, 187, 18, 19, 186, 187, 19, 186, 00515 187, 19, 186, 187, 19, 186, 187, 11, 19, 183, 00516 186, 187, 17, 18, 19, 186, 187, 19, 186, 187, 00517 16, 19, 184, 186, 187, 15, 18, 19, 186, 187, 00518 15, 18, 19, 186, 187, 15, 18, 19, 186, 187, 00519 15, 18, 19, 186, 187, 15, 18, 19, 186, 187, 00520 15, 18, 19, 186, 187, 15, 18, 19, 186, 187, 00521 15, 18, 19, 186, 187, 15, 18, 19, 186, 187, 00522 00523 15, 18, 19, 186, 187, 15, 18, 19, 186, 187, 00524 15, 18, 19, 186, 187, 15, 18, 19, 186, 187, 00525 119, 186, 187, 120, 185, 187, 1, 119, 186, 187, 00526 113, 119, 186, 187, 114, 119, 186, 187, 119, 186, 00527 187, 115, 119, 183, 186, 187, 116, 119, 184, 186, 00528 187, 119, 186, 187, 119, 186, 187, 106, 118, 119, 00529 186, 187, 104, 119, 183, 186, 187, 105, 119, 184, 00530 186, 187, 119, 186, 187, 119, 186, 187, 114, 119, 00531 186, 187, 118, 119, 186, 187,16491,16492, 109, 119, 00532 186, 187, 1, 109, 119, 186, 187, 111, 119, 186, 00533 00534 187, 114, 119, 186, 187, 109, 119, 183, 186, 187, 00535 109, 119, 184, 186, 187, 109, 119, 186, 187, 109, 00536 119, 186, 187, 109, 118, 119, 186, 187, 119, 186, 00537 187, 109, 119, 186, 187, 109, 119, 186, 187, 186, 00538 187, 185, 187, 1, 186, 187, 141, 186, 187, 186, 00539 187, 140, 186, 187, 139, 186, 187, 139, 186, 187, 00540 139, 186, 187, 139, 186, 187, 139, 186, 187, 139, 00541 186, 187, 139, 186, 187, 139, 186, 187, 139, 186, 00542 187, 139, 186, 187, 139, 186, 187, 139, 186, 187, 00543 139, 186, 187, 136, 186, 187, 186, 187, 57, 186, 00544 00545 187, 56, 185, 187, 1, 57, 186, 187, 57, 186, 00546 187, 57, 183, 186, 187, 57, 184, 186, 187, 57, 00547 186, 187, 57, 186, 187, 55, 57, 186, 187, 57, 00548 186, 187, 57, 186, 187, 180, 182, 181, 180, 182, 00549 84, 84, 86, 180, 84, 86, 182, 87, 181, 89, 00550 84, 84, 84, 86, 180, 84, 86, 182, 85, 85, 00551 86, 180, 85, 86, 182, 85, 181, 85, 85, 85, 00552 86, 180, 85, 86, 182, 90, 91, 90, 180, 90, 00553 182, 90, 90, 90, 180, 90, 182, 169, 25, 182, 00554 24, 25, 182, 154, 154, 155, 153, 180, 153, 182, 00555 00556 154, 181, 154, 153, 180, 153, 182, 156, 156, 180, 00557 156, 182, 156, 181, 156, 156, 156, 180, 156, 182, 00558 163, 162, 164, 180, 163, 164, 182, 163, 181, 163, 00559 163, 164, 180, 163, 164, 182, 8271,16462,16463,16465, 00560 8271,16462,16463,16465, 100, 122, 8271, 8273, 8270, 8271, 00561 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00562 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00563 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00564 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00565 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00566 00567 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8256, 00568 8271,16446,16448,16462,16463,16465, 8271,16462,16463,16465, 00569 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00570 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00571 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00572 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00573 8271,16462,16463,16465, 8271,16462,16463,16465, 8258, 8271, 00574 16450,16462,16463,16465, 8256, 8271,16446,16448,16462,16463, 00575 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00576 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00577 00578 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00579 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00580 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00581 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00582 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00583 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00584 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00585 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00586 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00587 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00588 00589 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00590 16462,16463,16465, 8271,16462,16463,16465, 22, 131, 127, 00591 127, 131, 131, 131, 131, 146, 8339, 127,16531, 127, 00592 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00593 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00594 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00595 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00596 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00597 16531, 127,16531, 127,16531, 127,16531, 127,16531, 61, 00598 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00599 00600 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00601 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00602 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00603 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00604 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00605 8294,16485,16486, 8294, 8293, 8294,16485,16486, 8294,16485, 00606 16486, 151, 8341, 8342, 127,16533,16534, 127,16533,16534, 00607 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00608 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00609 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00610 00611 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00612 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00613 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00614 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00615 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00616 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00617 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00618 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00619 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00620 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00621 00622 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00623 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00624 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00625 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00626 16534, 127,16533,16534, 145, 145, 38, 40, 32, 30, 00627 38, 32, 32, 40, 39, 33, 33, 37, 37, 37, 00628 37, 37, 37, 42, 42, 42, 42, 42,16405, 8213, 00629 180,16405, 182,16405, 8213, 181,16405,16405, 180,16405, 00630 182,16405, 8258,16450, 73, 75, 73, 73, 73, 73, 00631 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 00632 00633 73, 73, 73, 133, 136, 133, 138, 138, 138, 138, 00634 138, 138, 138, 133, 18, 18, 18, 18, 18, 18, 00635 18, 18, 8258,16450, 18, 18, 18, 18, 18, 18, 00636 18, 18, 18, 17, 18, 17, 18, 13, 15, 18, 00637 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 00638 15, 18, 14, 15, 18, 15, 18, 15, 18, 15, 00639 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 00640 18, 15, 18, 106, 118, 113, 181, 106, 118, 118, 00641 16491,16492, 118,16491,16492, 8300, 8299, 109, 118, 109, 00642 180, 109, 182, 117, 181, 109, 118, 110, 109, 109, 00643 00644 109, 180, 109, 182, 139, 139, 139, 139, 139, 139, 00645 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 00646 139, 139, 139, 139, 55, 55, 84, 84, 84, 84, 00647 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 00648 85, 85, 85, 85, 85, 85, 90, 90, 90, 90, 00649 90, 90, 90, 90, 90, 90, 156, 156, 156, 156, 00650 156, 156, 156, 156, 156, 156, 161, 163, 163, 163, 00651 163, 8271,16462,16463, 8271,16462,16463,16465, 8271,16462, 00652 16463, 98, 98, 8272,16464, 123, 8269,16461, 8271,16462, 00653 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00654 00655 8271,16462,16463,16465, 8251, 8271,16443,16444,16462,16463, 00656 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00657 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00658 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00659 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00660 16465, 63, 63, 8256, 8271, 63, 8254, 63, 8273, 63, 00661 8270, 63, 63, 8271,16462,16463,16465, 8271,16462,16463, 00662 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00663 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00664 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00665 00666 16462,16463,16465, 8256, 8271,16446,16448,16462,16463,16465, 00667 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00668 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00669 8258, 8271, 8271,16462,16463,16465, 8271,16462,16463,16465, 00670 8258, 8271,16450,16462,16463,16465, 8271,16462,16463,16465, 00671 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00672 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00673 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00674 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00675 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00676 00677 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00678 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00679 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00680 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00681 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00682 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00683 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00684 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00685 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00686 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00687 00688 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00689 8271,16462,16463,16465, 8271, 8271,16462,16463,16465, 127, 00690 127, 127, 127,16531, 127,16531, 127,16531, 127,16531, 00691 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00692 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00693 127,16531, 126, 126, 126, 146, 126, 126, 8339, 126, 00694 126, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00695 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00696 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00697 16531, 125, 125, 125, 146, 125, 125, 8339, 125, 125, 00698 00699 127,16531, 61, 61, 127,16531, 127,16531, 127,16531, 00700 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00701 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00702 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00703 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00704 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00705 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00706 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00707 127,16531, 127,16531, 8294,16486, 8294,16486, 8294, 8294, 00708 16485,16486, 127,16533,16534, 127,16533,16534, 127,16533, 00709 00710 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00711 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00712 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00713 16534, 127,16533,16534, 127,16533,16534, 126, 126, 126, 00714 8341, 126, 126, 8342, 127,16533,16534, 127,16533,16534, 00715 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00716 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00717 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00718 127,16533,16534, 127,16533,16534, 125, 125, 125, 8341, 00719 125, 125, 8342, 127,16533,16534, 127,16533,16534, 127, 00720 00721 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00722 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00723 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00724 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00725 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00726 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00727 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00728 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00729 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00730 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00731 00732 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00733 127,16533,16534, 32, 33, 37, 37, 37, 37, 42, 00734 42, 42, 42,16405,16405,16405,16405,16405,16405,16405, 00735 16405,16405,16405, 8258, 8269,16461, 73, 73, 73, 73, 00736 73, 125, 125, 125, 125, 73, 73, 73, 73, 73, 00737 73, 73, 73, 73, 73, 138, 138, 138, 137, 138, 00738 138, 18, 18, 18, 18, 18, 18, 18, 18, 18, 00739 18, 18, 18, 18, 15, 18, 15, 18, 15, 18, 00740 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 00741 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 00742 00743 112, 118, 109, 109, 109, 109, 109, 109, 109, 109, 00744 109, 109, 139, 139, 139, 139, 139, 139, 139, 139, 00745 139, 139, 139, 139, 139, 139, 139, 139, 139, 178, 00746 179, 175, 177, 178, 173, 174, 175, 84, 178, 84, 00747 84, 179, 84, 84, 84, 84, 177, 178, 84, 173, 00748 84, 84, 85, 178, 85, 85, 179, 85, 85, 85, 00749 85, 177, 178, 85, 173, 85, 85, 90, 178, 90, 00750 90, 179, 90, 90, 90, 90, 177, 178, 90, 173, 00751 90, 90, 152, 179, 156, 178, 156, 156, 179, 156, 00752 156, 156, 156, 177, 178, 156, 173, 156, 156, 161, 00753 00754 163, 163, 163, 163, 8271, 8271,16462,16463, 8271,16462, 00755 16463,16465, 8271, 8271,16462,16463, 8272, 28, 8271,16462, 00756 16463,16465, 8269, 8271,16462,16463,16465, 8271,16462,16463, 00757 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 58, 00758 58, 8251, 8271, 58, 58, 8252, 8273, 58, 8270, 58, 00759 58, 8258, 8271,16450,16462,16463,16465, 8271,16462,16463, 00760 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00761 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00762 16465, 8271,16462,16463,16465, 8256, 8271, 8254, 8273, 8271, 00763 16462,16463,16465, 8271,16462,16463,16465, 8251, 8271,16443, 00764 00765 16444,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00766 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00767 8271,16462,16463,16465, 8271,16462,16463,16465, 63, 8256, 00768 8271, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00769 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00770 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00771 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00772 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00773 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00774 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00775 00776 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00777 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00778 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00779 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00780 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00781 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00782 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00783 16463,16465, 8251, 8271,16443,16444,16462,16463,16465, 8271, 00784 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00785 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00786 00787 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00788 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00789 16462,16463,16465, 127,16532, 127, 127,16531, 127,16531, 00790 127,16531, 127,16531, 124, 124, 124, 146, 124, 124, 00791 8339, 124, 124, 127,16531, 127,16531, 127,16531, 127, 00792 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00793 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00794 16531, 127,16531, 126, 127,16531, 127,16531, 127,16531, 00795 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00796 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00797 00798 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00799 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00800 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00801 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00802 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00803 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00804 8294, 8294,16486, 8294, 8294,16486, 127,16533,16534, 127, 00805 16533,16534, 127,16533,16534, 127,16533,16534, 124, 124, 00806 124, 8341, 124, 124, 8342, 127,16533,16534, 127,16533, 00807 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00808 00809 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00810 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00811 16534, 127,16533,16534, 127,16533,16534, 126, 127,16533, 00812 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00813 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00814 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00815 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00816 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00817 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00818 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00819 00820 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00821 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00822 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00823 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00824 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00825 16534, 32, 32, 33, 37, 37, 37, 37, 42, 42, 00826 42, 42, 178,16405, 8213, 178,16405, 179,16405,16405, 00827 8213,16405,16405, 177, 178,16405, 8213, 177, 178, 173, 00828 16405,16405, 8213,16405, 8258,16450, 73, 8269, 73, 73, 00829 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 00830 00831 138, 138, 138, 138, 18, 8258,16450, 18, 18, 18, 00832 18, 18, 18, 18, 18, 18, 14, 15, 18, 15, 00833 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 00834 18, 15, 18, 15, 18, 15, 18, 112, 109, 178, 00835 109, 109, 179, 109, 109, 109, 109, 177, 178, 109, 00836 173, 109, 109, 139, 139, 139, 139, 139, 139, 139, 00837 139, 139, 139, 139, 139, 139, 139, 55, 176, 171, 00838 168, 177, 174, 172, 84, 177, 84, 84, 85, 177, 00839 85, 85, 90, 177, 90, 90, 176, 169, 176, 171, 00840 168, 169, 156, 177, 156, 156, 163, 163, 8271,16462, 00841 00842 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00843 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00844 16463,16465, 8251, 8271, 8252, 8273, 8271,16462,16463,16465, 00845 8251, 8271,16443,16444,16462,16463,16465, 8251, 8271,16443, 00846 16444,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00847 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00848 8271,16462,16463,16465, 58, 8251, 8271, 8197, 8271,16389, 00849 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00850 16465, 8251, 8271,16443,16444,16462,16463,16465, 8271,16462, 00851 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00852 00853 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00854 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00855 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00856 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00857 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00858 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00859 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00860 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00861 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00862 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00863 00864 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00865 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00866 58, 8256, 8271,16446,16448,16462,16463,16465, 8271,16462, 00867 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00868 8271,16462,16463,16465, 8271,16462,16463,16465, 8251, 8271, 00869 16443,16444,16462,16463,16465, 8271,16462,16463,16465, 8271, 00870 16462,16463,16465, 8271,16462,16463,16465, 127,16532, 8340, 00871 127, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00872 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00873 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00874 00875 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00876 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00877 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00878 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00879 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00880 16531, 127,16531, 127,16531, 127,16531, 127,16531, 124, 00881 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00882 127,16531, 127,16531, 127,16531, 127,16531, 127,16533, 00883 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00884 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00885 00886 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00887 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00888 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00889 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00890 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00891 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00892 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00893 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00894 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00895 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00896 00897 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00898 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00899 16533,16534, 127,16533,16534, 127,16533,16534, 32, 32, 00900 37, 37, 37, 37, 42, 42, 42, 42, 177,16405, 00901 8213, 177,16405, 8213,16405, 8213, 69, 73, 73, 73, 00902 74, 73, 73, 73, 73, 73, 73, 73, 73, 138, 00903 16519, 138, 138, 138, 18, 18, 18, 18, 18, 18, 00904 18, 18, 15, 18, 15, 18, 15, 18, 15, 18, 00905 15, 18, 15, 18, 15, 18, 15, 18, 109, 177, 00906 109, 109, 139, 139, 139, 139, 139, 139, 139, 139, 00907 00908 139, 139, 139, 139, 55, 170, 169, 170, 8271,16462, 00909 16463,16465, 8269,16461,16465, 8269,16461,16465, 8271,16462, 00910 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00911 8271,16462,16463,16465, 8271,16462,16463,16465, 6, 58, 00912 8251, 8271, 8271,16462,16463,16465, 8271,16462,16463,16465, 00913 8271,16462,16463,16465, 8271,16462,16463,16465, 8251, 8271, 00914 8197, 8271, 8197, 8271,16462,16463,16465, 8271,16462,16463, 00915 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00916 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00917 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00918 00919 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00920 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00921 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00922 16465, 8251, 8271,16443,16444,16462,16463,16465, 8271,16462, 00923 16463,16465, 8271,16462,16463,16465, 8251, 8271,16443,16444, 00924 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00925 16465, 99, 8271,16462,16463,16465, 8271,16462,16463,16465, 00926 8271,16462,16463,16465, 8271,16462,16463,16465, 58, 8251, 00927 8271, 58, 8271,16462,16463,16465, 8271,16462,16463,16465, 00928 8271,16462,16463,16465, 127,16531, 127,16531, 127,16531, 00929 00930 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00931 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00932 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00933 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00934 127,16531, 127,16531, 127,16531, 127,16531, 99, 8339, 00935 127,16531, 127,16531, 127,16531, 127,16531, 127,16531, 00936 127,16531, 127,16531,16485, 127,16533,16534, 127,16533, 00937 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00938 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00939 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00940 00941 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00942 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00943 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00944 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00945 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00946 16533,16534, 127,16533,16534, 32, 37, 37, 37, 37, 00947 16420, 42, 42, 41, 42, 42, 8269,16461, 73, 74, 00948 73, 73, 73, 8327, 138, 138, 138, 138, 138, 138, 00949 138, 18, 18, 18, 15, 18, 15, 18, 15, 18, 00950 139, 139, 139, 139, 139, 139, 139, 139, 139, 160, 00951 00952 8271,16462,16463,16465,16465,16465, 8269, 8269,16461,16465, 00953 8269,16461,16465,16465, 8271,16462,16463,16465, 8271,16462, 00954 16463,16465, 8271,16462,16463,16465, 6, 8251, 8271, 8271, 00955 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00956 16465, 8271,16462,16463,16465, 8251, 8271,16443,16444,16462, 00957 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00958 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00959 16463,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 00960 8271,16462,16463,16465, 8271,16462,16463,16465, 58, 8251, 00961 8271, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00962 00963 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 00964 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00965 16462,16463,16465, 8251, 8271, 8271,16462,16463,16465, 127, 00966 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00967 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00968 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00969 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00970 16531,16485,16485, 127,16533,16534, 127,16533,16534, 127, 00971 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00972 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00973 00974 127,16533,16534, 127,16533,16534, 127,16533,16534, 127, 00975 16533,16534, 127,16533,16534, 127,16533,16534, 127,16533, 00976 16534, 127,16533,16534, 32, 37, 35, 37, 37, 8228, 00977 41, 42, 8269,16461, 73, 73, 138, 138, 138, 138, 00978 138, 138, 138, 18, 15, 18, 139, 139, 139, 139, 00979 161, 8271,16462,16463,16465,16465,16465, 8269,16461,16465, 00980 16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 8271, 00981 16462,16463,16465, 8256,16446,16448, 53, 58, 53, 58, 00982 8251, 8271, 53, 58, 53, 58, 8252, 8273, 53, 58, 00983 8270, 53, 58, 53, 58, 53, 8271,16462,16463,16465, 00984 00985 8271,16462,16463,16465, 8271,16462,16463,16465, 8251, 8271, 00986 16443,16444,16462,16463,16465, 7, 8271, 7, 8271, 8271, 00987 16462,16463,16465, 8251, 8271, 8271,16462,16463,16465, 8271, 00988 16462,16463,16465, 8271,16462,16463,16465, 8251, 8271,16443, 00989 16444,16462,16463,16465, 8271,16462,16463,16465, 2, 127, 00990 16531, 127,16531, 127,16531, 127,16531, 127,16531, 127, 00991 16531, 127,16531, 127,16531, 127,16531,16485, 127,16533, 00992 16534, 127,16533,16534, 127,16533,16534, 127,16533,16534, 00993 127,16533,16534, 32, 37, 42, 53, 138, 138, 138, 00994 138, 138, 8271,16462,16463,16465,16465, 8269,16461,16465, 00995 00996 8271,16462,16463,16465, 8271,16462,16463,16465, 8271,16462, 00997 16463,16465, 8271,16462,16463,16465, 63, 8256, 63, 8254, 00998 63, 8251, 8271, 67, 8269,16461, 58, 58, 8251, 8271, 00999 58, 58, 8252, 8273, 58, 8270, 8271,16462,16463,16465, 01000 58, 58, 4, 8271,16462,16463,16465, 8271,16462,16463, 01001 16465, 8271,16462,16463,16465, 53, 58, 8251, 8271, 53, 01002 58, 127,16531, 127,16531, 127,16531, 127,16531, 127, 01003 16531, 127,16531, 127,16533,16534, 127,16533,16534, 32, 01004 37, 138, 138, 138, 138, 138, 3, 8271,16462,16463, 01005 16465,16465, 8269,16461,16465, 8271,16462,16463,16465, 8271, 01006 01007 16462,16463,16465, 8271,16462,16463,16465, 8271,16462,16463, 01008 16465, 8256, 8254, 67, 8269,16461, 67, 8269, 52, 8251, 01009 8271, 52, 8252, 8273, 8270, 52, 8252, 8273, 8271, 52, 01010 8273, 52, 8269,16461, 8271,16462,16463,16465, 8271,16462, 01011 16463,16465, 8271,16462,16463,16465, 8251, 8271, 68, 8269, 01012 16461, 127,16531, 127,16531, 127,16531, 127,16531, 127, 01013 16531, 127,16531, 127,16533,16534, 127,16533,16534, 32, 01014 138, 138, 138, 138, 138, 8271,16462,16463,16465,16465, 01015 8269,16461,16465, 8271,16462,16463,16465, 8271,16462,16463, 01016 16465, 76, 8271,16462,16463,16465, 67, 8269, 8269,16461, 01017 01018 51, 8271,16462,16463,16465, 8271,16462,16463,16465, 8269, 01019 8271,16462,16463,16465, 8271,16462,16463,16465, 68, 8269, 01020 16461, 68, 8269, 127,16531, 76, 127,16531, 127,16531, 01021 127,16531, 127,16533,16534, 127,16533,16534,16519, 138, 01022 138, 8271, 8273,16465, 8269,16461,16465, 8271,16462,16463, 01023 16465, 8269, 8271,16462,16463,16465, 8271,16462,16463,16465, 01024 8271,16462,16463,16465, 68, 8269, 127,16531, 138, 138, 01025 52, 8273,16465, 8269,16461,16465, 8271,16462,16463,16465, 01026 8271,16462,16463, 8271,16462,16463,16465, 8271, 8271,16462, 01027 16463,16465, 8269,16461,16465, 8269,16461,16465, 8271,16462, 01028 01029 16463,16465, 127,16531, 31,16465, 8269, 8269,16461,16465, 01030 8271,16462,16463,16465, 8269,16461, 8271, 8271,16462,16463, 01031 8271,16462,16463, 8271,16462,16463,16465,16465,16465, 8269, 01032 8269,16461,16465,16465, 6, 8271,16462,16463,16465, 127, 01033 16531,16465, 8271,16462,16463,16465, 8269,16461, 8271, 8271, 01034 16462,16463, 8271,16462,16463,16465,16465, 8269,16461,16465, 01035 16465, 8271,16462,16463,16465, 127,16531, 8271,16462,16463, 01036 16465, 8271,16462,16463,16465,16465, 8269,16461,16465, 54, 01037 8271,16462,16463,16465, 8271,16462,16463,16465,16465, 8269, 01038 16461,16465, 8271,16462,16463,16465, 8271,16462,16463,16465, 01039 01040 16465, 8269,16461,16465, 8271,16462,16463,16465,16465, 8269, 01041 16461,16465, 8271,16462,16463,16465,16465, 8269,16461,16465, 01042 8271,16462,16463,16465,16465, 8271,16462,16463,16465, 8271, 01043 16462,16463,16465, 6, 8271 01044 } ; 01045 01046 static yyconst flex_int16_t yy_accept[2976] = 01047 { 0, 01048 1, 1, 1, 2, 3, 4, 5, 5, 5, 5, 01049 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 01050 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 01051 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 01052 5, 5, 5, 5, 5, 6, 7, 8, 9, 9, 01053 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 01054 11, 11, 11, 11, 11, 12, 14, 16, 19, 22, 01055 25, 27, 29, 31, 33, 36, 39, 43, 47, 50, 01056 53, 55, 58, 61, 64, 67, 71, 75, 78, 81, 01057 84, 87, 91, 94, 99, 103, 108, 113, 117, 121, 01058 01059 125, 129, 132, 134, 138, 142, 146, 149, 152, 155, 01060 158, 161, 164, 167, 171, 175, 179, 181, 183, 186, 01061 189, 191, 195, 198, 203, 208, 213, 217, 221, 225, 01062 229, 233, 236, 241, 246, 251, 254, 258, 262, 266, 01063 270, 272, 274, 277, 280, 283, 285, 288, 291, 295, 01064 299, 302, 306, 309, 312, 315, 318, 321, 324, 326, 01065 332, 338, 344, 348, 352, 358, 364, 370, 376, 382, 01066 388, 394, 400, 406, 412, 418, 424, 430, 436, 442, 01067 448, 454, 460, 466, 472, 475, 478, 481, 483, 486, 01068 489, 492, 494, 497, 500, 504, 508, 511, 514, 517, 01069 01070 520, 523, 526, 529, 532, 535, 539, 543, 547, 550, 01071 554, 558, 562, 566, 570, 574, 578, 582, 586, 590, 01072 594, 598, 602, 606, 610, 614, 618, 622, 626, 630, 01073 633, 636, 639, 642, 645, 647, 651, 655, 658, 662, 01074 667, 670, 673, 676, 681, 685, 689, 693, 696, 699, 01075 702, 704, 707, 710, 715, 720, 725, 730, 735, 740, 01076 745, 750, 755, 760, 765, 770, 775, 780, 785, 790, 01077 795, 800, 805, 810, 815, 820, 825, 827, 830, 833, 01078 836, 839, 841, 843, 846, 849, 852, 855, 858, 861, 01079 863, 865, 867, 870, 873, 875, 878, 880, 883, 886, 01080 01081 888, 891, 894, 897, 900, 903, 905, 907, 911, 914, 01082 917, 920, 922, 925, 928, 931, 933, 937, 941, 944, 01083 947, 950, 954, 958, 962, 965, 968, 971, 974, 977, 01084 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, 01085 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1015, 1017, 1020, 01086 1022, 1025, 1028, 1031, 1034, 1037, 1040, 1043, 1046, 1049, 01087 1052, 1055, 1058, 1061, 1064, 1066, 1068, 1071, 1075, 1078, 01088 1082, 1086, 1089, 1093, 1097, 1100, 1104, 1107, 1111, 1115, 01089 1119, 1123, 1127, 1131, 1135, 1139, 1142, 1145, 1148, 1152, 01090 1155, 1159, 1163, 1166, 1170, 1174, 1177, 1181, 1185, 1189, 01091 01092 1193, 1197, 1201, 1205, 1209, 1213, 1217, 1221, 1225, 1229, 01093 1232, 1235, 1238, 1243, 1248, 1251, 1256, 1261, 1266, 1271, 01094 1276, 1281, 1286, 1291, 1296, 1301, 1306, 1311, 1316, 1321, 01095 1324, 1327, 1331, 1335, 1339, 1342, 1347, 1352, 1355, 1358, 01096 1363, 1368, 1373, 1376, 1379, 1383, 1389, 1393, 1398, 1402, 01097 1406, 1411, 1416, 1420, 1424, 1429, 1432, 1436, 1440, 1442, 01098 1444, 1447, 1450, 1452, 1455, 1458, 1461, 1464, 1467, 1470, 01099 1473, 1476, 1479, 1482, 1485, 1488, 1491, 1494, 1497, 1499, 01100 1502, 1505, 1509, 1512, 1516, 1520, 1523, 1526, 1530, 1533, 01101 1536, 1536, 1536, 1537, 1538, 1539, 1539, 1539, 1540, 1541, 01102 01103 1542, 1545, 1548, 1550, 1551, 1552, 1553, 1556, 1559, 1560, 01104 1563, 1566, 1568, 1569, 1570, 1573, 1576, 1577, 1578, 1580, 01105 1582, 1583, 1584, 1586, 1588, 1588, 1588, 1589, 1589, 1591, 01106 1592, 1592, 1594, 1595, 1596, 1596, 1597, 1599, 1601, 1603, 01107 1604, 1606, 1608, 1609, 1611, 1613, 1615, 1616, 1617, 1619, 01108 1621, 1622, 1623, 1625, 1628, 1630, 1631, 1632, 1634, 1637, 01109 1637, 1637, 1637, 1637, 1641, 1645, 1645, 1645, 1645, 1645, 01110 1645, 1646, 1647, 1647, 1647, 1647, 1647, 1647, 1648, 1648, 01111 1649, 1650, 1654, 1654, 1654, 1658, 1662, 1666, 1670, 1674, 01112 1678, 1682, 1686, 1690, 1694, 1698, 1702, 1706, 1710, 1717, 01113 01114 1721, 1725, 1729, 1733, 1737, 1741, 1745, 1749, 1753, 1757, 01115 1761, 1765, 1769, 1775, 1782, 1786, 1790, 1794, 1798, 1802, 01116 1806, 1810, 1814, 1818, 1822, 1826, 1830, 1834, 1838, 1842, 01117 1846, 1850, 1854, 1858, 1862, 1866, 1870, 1874, 1878, 1882, 01118 1886, 1890, 1894, 1898, 1902, 1906, 1910, 1914, 1914, 1914, 01119 1918, 1918, 1919, 1919, 1919, 1920, 1921, 1922, 1923, 1923, 01120 1923, 1924, 1925, 1926, 1926, 1927, 1927, 1928, 1930, 1930, 01121 1930, 1932, 1934, 1936, 1938, 1940, 1942, 1944, 1946, 1948, 01122 1950, 1952, 1954, 1956, 1958, 1960, 1962, 1964, 1966, 1968, 01123 1970, 1972, 1974, 1976, 1978, 1980, 1982, 1984, 1986, 1988, 01124 01125 1990, 1993, 1995, 1997, 1999, 2001, 2003, 2005, 2007, 2009, 01126 2011, 2013, 2015, 2017, 2019, 2021, 2023, 2025, 2027, 2029, 01127 2031, 2033, 2035, 2037, 2039, 2041, 2043, 2045, 2047, 2049, 01128 2051, 2051, 2051, 2051, 2051, 2054, 2054, 2054, 2055, 2055, 01129 2056, 2059, 2059, 2059, 2059, 2059, 2062, 2062, 2063, 2063, 01130 2063, 2064, 2064, 2065, 2068, 2071, 2074, 2077, 2080, 2083, 01131 2086, 2089, 2092, 2095, 2098, 2101, 2104, 2107, 2110, 2113, 01132 2116, 2119, 2122, 2125, 2128, 2131, 2134, 2137, 2140, 2143, 01133 2146, 2149, 2152, 2155, 2158, 2161, 2164, 2167, 2170, 2173, 01134 2176, 2179, 2182, 2185, 2188, 2191, 2194, 2197, 2200, 2203, 01135 01136 2206, 2209, 2212, 2215, 2218, 2221, 2224, 2227, 2230, 2233, 01137 2236, 2239, 2242, 2245, 2246, 2247, 2247, 2248, 2249, 2250, 01138 2251, 2252, 2253, 2253, 2254, 2255, 2255, 2255, 2256, 2257, 01139 2257, 2258, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2264, 01140 2265, 2265, 2266, 2267, 2268, 2269, 2269, 2270, 2271, 2273, 01141 2275, 2277, 2278, 2279, 2281, 2283, 2283, 2283, 2283, 2283, 01142 2283, 2283, 2283, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 01143 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2286, 01144 2286, 2287, 2287, 2287, 2288, 2288, 2288, 2289, 2290, 2291, 01145 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 01146 01147 2302, 2303, 2304, 2304, 2304, 2304, 2304, 2305, 2305, 2305, 01148 2305, 2305, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 01149 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 01150 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 01151 2336, 2336, 2338, 2339, 2341, 2343, 2345, 2347, 2349, 2351, 01152 2353, 2356, 2358, 2360, 2362, 2364, 2366, 2368, 2370, 2372, 01153 2374, 2376, 2376, 2376, 2378, 2380, 2383, 2383, 2386, 2387, 01154 2388, 2389, 2390, 2392, 2394, 2396, 2398, 2399, 2400, 2401, 01155 2403, 2405, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 01156 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 01157 01158 2423, 2424, 2425, 2425, 2426, 2427, 2427, 2427, 2427, 2427, 01159 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2428, 01160 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 01161 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 01162 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2457, 01163 2457, 2457, 2457, 2457, 2457, 2458, 2459, 2460, 2461, 2462, 01164 2463, 2464, 2465, 2466, 2467, 2467, 2468, 2469, 2470, 2471, 01165 2472, 2475, 2479, 2479, 2479, 2482, 2483, 2484, 2484, 2484, 01166 2484, 2484, 2486, 2486, 2486, 2486, 2487, 2487, 2487, 2487, 01167 2487, 2487, 2487, 2487, 2487, 2487, 2489, 2493, 2497, 2501, 01168 01169 2505, 2512, 2516, 2520, 2524, 2528, 2532, 2536, 2540, 2544, 01170 2548, 2552, 2553, 2556, 2557, 2560, 2562, 2563, 2564, 2568, 01171 2572, 2576, 2580, 2584, 2588, 2592, 2596, 2600, 2604, 2611, 01172 2615, 2619, 2623, 2627, 2631, 2633, 2637, 2641, 2647, 2651, 01173 2655, 2659, 2663, 2667, 2671, 2675, 2679, 2683, 2687, 2691, 01174 2695, 2699, 2703, 2707, 2711, 2715, 2719, 2723, 2727, 2731, 01175 2735, 2739, 2743, 2747, 2751, 2755, 2759, 2763, 2767, 2771, 01176 2775, 2779, 2783, 2787, 2791, 2795, 2799, 2803, 2807, 2811, 01177 2815, 2816, 2816, 2820, 2820, 2820, 2821, 2822, 2822, 2822, 01178 2822, 2822, 2823, 2825, 2827, 2829, 2831, 2833, 2835, 2837, 01179 01180 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2854, 2855, 01181 2857, 2858, 2860, 2861, 2862, 2864, 2866, 2868, 2870, 2872, 01182 2874, 2876, 2878, 2880, 2882, 2884, 2886, 2888, 2890, 2892, 01183 2893, 2894, 2896, 2897, 2899, 2900, 2901, 2903, 2904, 2905, 01184 2907, 2909, 2911, 2913, 2915, 2917, 2919, 2921, 2923, 2925, 01185 2927, 2929, 2931, 2933, 2935, 2937, 2939, 2941, 2943, 2945, 01186 2947, 2949, 2951, 2953, 2955, 2957, 2959, 2961, 2963, 2965, 01187 2967, 2969, 2971, 2973, 2975, 2977, 2979, 2981, 2983, 2985, 01188 2987, 2987, 2987, 2989, 2989, 2989, 2989, 2989, 2990, 2990, 01189 2993, 2996, 2999, 3002, 3005, 3008, 3011, 3014, 3017, 3020, 01190 01191 3023, 3026, 3029, 3032, 3035, 3038, 3039, 3040, 3042, 3043, 01192 3045, 3048, 3051, 3054, 3057, 3060, 3063, 3066, 3069, 3072, 01193 3075, 3078, 3081, 3084, 3087, 3088, 3089, 3091, 3092, 3094, 01194 3097, 3100, 3103, 3106, 3109, 3112, 3115, 3118, 3121, 3124, 01195 3127, 3130, 3133, 3136, 3139, 3142, 3145, 3148, 3151, 3154, 01196 3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, 3181, 3184, 01197 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214, 01198 3214, 3215, 3215, 3216, 3217, 3218, 3219, 3220, 3220, 3220, 01199 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 01200 3231, 3232, 3233, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 01201 01202 3235, 3235, 3235, 3235, 3235, 3235, 3235, 3235, 3235, 3235, 01203 3235, 3235, 3235, 3235, 3235, 3237, 3238, 3239, 3240, 3241, 01204 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 01205 3252, 3253, 3254, 3255, 3256, 3256, 3256, 3256, 3256, 3256, 01206 3256, 3257, 3258, 3259, 3261, 3262, 3263, 3264, 3265, 3266, 01207 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3277, 01208 3279, 3281, 3283, 3285, 3287, 3289, 3291, 3293, 3295, 3297, 01209 3299, 3301, 3301, 3302, 3302, 3302, 3303, 3304, 3305, 3306, 01210 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 01211 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 01212 01213 3327, 3328, 3329, 3330, 3330, 3330, 3330, 3330, 3330, 3331, 01214 3331, 3332, 3332, 3333, 3333, 3333, 3335, 3336, 3336, 3338, 01215 3338, 3340, 3341, 3343, 3344, 3345, 3346, 3349, 3351, 3352, 01216 3353, 3355, 3356, 3358, 3359, 3360, 3361, 3364, 3366, 3367, 01217 3368, 3370, 3371, 3373, 3374, 3375, 3376, 3379, 3381, 3382, 01218 3383, 3383, 3383, 3383, 3383, 3383, 3385, 3387, 3388, 3390, 01219 3391, 3392, 3393, 3396, 3398, 3399, 3400, 3400, 3401, 3401, 01220 3402, 3403, 3404, 3405, 3406, 3406, 3409, 3413, 3414, 3414, 01221 3417, 3417, 3417, 3418, 3418, 3418, 3418, 3418, 3418, 3418, 01222 3418, 3419, 3419, 3419, 3419, 3419, 3419, 3423, 3423, 3423, 01223 01224 3424, 3424, 3424, 3428, 3432, 3436, 3440, 3441, 3444, 3445, 01225 3448, 3450, 3451, 3452, 3458, 3462, 3466, 3470, 3474, 3478, 01226 3482, 3486, 3488, 3488, 3490, 3494, 3498, 3505, 3509, 3513, 01227 3517, 3521, 3525, 3529, 3532, 3536, 3540, 3544, 3548, 3552, 01228 3556, 3560, 3564, 3568, 3572, 3576, 3580, 3584, 3588, 3592, 01229 3596, 3600, 3604, 3608, 3612, 3616, 3620, 3621, 3625, 3629, 01230 3633, 3637, 3641, 3645, 3649, 3653, 3657, 3661, 3665, 3669, 01231 3673, 3680, 3684, 3688, 3692, 3696, 3700, 3704, 3708, 3712, 01232 3716, 3720, 3724, 3724, 3724, 3725, 3725, 3726, 3726, 3726, 01233 3726, 3727, 3729, 3731, 3733, 3735, 3736, 3737, 3739, 3740, 01234 01235 3742, 3743, 3744, 3746, 3748, 3750, 3752, 3754, 3756, 3758, 01236 3760, 3762, 3764, 3766, 3768, 3770, 3772, 3774, 3775, 3777, 01237 3779, 3781, 3783, 3785, 3787, 3789, 3791, 3793, 3795, 3797, 01238 3799, 3801, 3803, 3805, 3807, 3809, 3811, 3813, 3815, 3817, 01239 3819, 3821, 3823, 3825, 3827, 3829, 3831, 3833, 3835, 3837, 01240 3839, 3841, 3843, 3845, 3847, 3849, 3851, 3853, 3855, 3857, 01241 3859, 3861, 3862, 3864, 3865, 3867, 3867, 3867, 3867, 3867, 01242 3867, 3870, 3873, 3876, 3879, 3880, 3881, 3883, 3884, 3886, 01243 3889, 3892, 3895, 3898, 3901, 3904, 3907, 3910, 3913, 3916, 01244 3919, 3922, 3925, 3928, 3929, 3932, 3935, 3938, 3941, 3944, 01245 01246 3947, 3950, 3953, 3956, 3959, 3962, 3965, 3968, 3971, 3974, 01247 3977, 3980, 3983, 3986, 3989, 3992, 3995, 3998, 4001, 4004, 01248 4007, 4010, 4013, 4016, 4019, 4022, 4025, 4028, 4031, 4034, 01249 4037, 4040, 4043, 4046, 4049, 4052, 4052, 4053, 4054, 4055, 01250 4056, 4057, 4058, 4059, 4059, 4059, 4059, 4060, 4061, 4062, 01251 4063, 4065, 4067, 4068, 4070, 4071, 4072, 4073, 4074, 4077, 01252 4080, 4082, 4083, 4084, 4085, 4087, 4087, 4087, 4087, 4087, 01253 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 01254 4087, 4088, 4089, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 01255 4096, 4097, 4098, 4099, 4100, 4101, 4101, 4101, 4101, 4101, 01256 01257 4102, 4103, 4104, 4105, 4108, 4109, 4110, 4111, 4112, 4113, 01258 4114, 4115, 4116, 4117, 4120, 4122, 4124, 4126, 4128, 4130, 01259 4132, 4134, 4136, 4138, 4138, 4139, 4139, 4141, 4142, 4144, 01260 4145, 4146, 4147, 4150, 4152, 4153, 4154, 4155, 4156, 4157, 01261 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 01262 4168, 4168, 4169, 4170, 4171, 4171, 4172, 4172, 4173, 4173, 01263 4174, 4174, 4175, 4177, 4178, 4179, 4181, 4182, 4183, 4185, 01264 4186, 4187, 4188, 4190, 4191, 4191, 4193, 4193, 4195, 4196, 01265 4197, 4197, 4197, 4198, 4199, 4203, 4203, 4203, 4203, 4203, 01266 4203, 4203, 4207, 4207, 4207, 4211, 4215, 4219, 4223, 4225, 01267 01268 4225, 4227, 4231, 4238, 4245, 4249, 4253, 4257, 4261, 4265, 01269 4268, 4274, 4278, 4282, 4289, 4289, 4293, 4297, 4301, 4305, 01270 4309, 4313, 4317, 4321, 4325, 4329, 4333, 4337, 4341, 4345, 01271 4349, 4353, 4357, 4361, 4365, 4369, 4369, 4369, 4373, 4377, 01272 4381, 4385, 4389, 4393, 4397, 4401, 4405, 4409, 4413, 4417, 01273 4421, 4422, 4429, 4433, 4437, 4441, 4445, 4449, 4456, 4460, 01274 4464, 4468, 4468, 4468, 4469, 4470, 4470, 4471, 4472, 4474, 01275 4476, 4478, 4480, 4482, 4484, 4486, 4488, 4490, 4492, 4494, 01276 4496, 4498, 4500, 4500, 4502, 4504, 4506, 4508, 4510, 4512, 01277 4514, 4516, 4518, 4520, 4522, 4524, 4526, 4528, 4530, 4532, 01278 01279 4534, 4536, 4538, 4540, 4542, 4544, 4546, 4548, 4550, 4552, 01280 4554, 4556, 4558, 4560, 4561, 4563, 4565, 4567, 4569, 4571, 01281 4573, 4575, 4577, 4579, 4579, 4582, 4585, 4588, 4591, 4594, 01282 4597, 4600, 4603, 4606, 4609, 4612, 4615, 4618, 4621, 4624, 01283 4627, 4630, 4633, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 01284 4657, 4660, 4663, 4666, 4669, 4672, 4675, 4678, 4681, 4684, 01285 4687, 4690, 4693, 4696, 4699, 4702, 4705, 4708, 4711, 4714, 01286 4717, 4720, 4723, 4726, 4729, 4730, 4731, 4732, 4733, 4734, 01287 4735, 4735, 4735, 4735, 4736, 4737, 4738, 4739, 4741, 4743, 01288 4744, 4745, 4746, 4747, 4747, 4748, 4748, 4748, 4748, 4748, 01289 01290 4748, 4748, 4748, 4748, 4748, 4748, 4749, 4749, 4750, 4752, 01291 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4760, 4760, 01292 4760, 4760, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 01293 4770, 4771, 4772, 4773, 4775, 4777, 4779, 4781, 4783, 4785, 01294 4787, 4789, 4789, 4789, 4791, 4792, 4793, 4794, 4795, 4796, 01295 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 01296 4806, 4806, 4806, 4807, 4807, 4809, 4809, 4809, 4809, 4809, 01297 4809, 4809, 4809, 4813, 4813, 4813, 4813, 4816, 4819, 4819, 01298 4823, 4827, 4831, 4835, 4839, 4843, 4847, 4851, 4855, 4859, 01299 4861, 4863, 4864, 4868, 4872, 4872, 4876, 4880, 4884, 4888, 01300 01301 4892, 4896, 4900, 4904, 4908, 4912, 4916, 4920, 4924, 4928, 01302 4932, 4939, 4939, 4939, 4943, 4947, 4954, 4958, 4962, 4963, 01303 4967, 4971, 4975, 4979, 4982, 4983, 4987, 4991, 4995, 4995, 01304 4995, 4997, 4999, 5001, 5003, 5005, 5007, 5009, 5011, 5013, 01305 5015, 5017, 5017, 5019, 5021, 5023, 5025, 5027, 5029, 5031, 01306 5033, 5035, 5037, 5039, 5041, 5043, 5045, 5047, 5049, 5051, 01307 5053, 5055, 5057, 5059, 5061, 5063, 5065, 5065, 5065, 5066, 01308 5066, 5069, 5072, 5075, 5078, 5081, 5084, 5087, 5090, 5093, 01309 5096, 5099, 5102, 5105, 5108, 5111, 5114, 5117, 5120, 5123, 01310 5126, 5129, 5132, 5135, 5138, 5141, 5144, 5147, 5150, 5153, 01311 01312 5156, 5157, 5158, 5159, 5160, 5162, 5162, 5162, 5162, 5163, 01313 5164, 5166, 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167, 01314 5169, 5170, 5171, 5172, 5173, 5174, 5174, 5174, 5174, 5174, 01315 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 01316 5184, 5185, 5187, 5189, 5191, 5192, 5193, 5194, 5195, 5196, 01317 5197, 5198, 5199, 5200, 5200, 5201, 5201, 5201, 5201, 5201, 01318 5201, 5205, 5205, 5206, 5207, 5208, 5208, 5211, 5211, 5214, 01319 5214, 5214, 5215, 5219, 5223, 5227, 5230, 5234, 5238, 5242, 01320 5246, 5246, 5253, 5257, 5261, 5265, 5269, 5273, 5277, 5281, 01321 5285, 5289, 5292, 5292, 5292, 5296, 5300, 5304, 5308, 5312, 01322 01323 5316, 5320, 5324, 5326, 5326, 5326, 5330, 5330, 5330, 5332, 01324 5334, 5336, 5338, 5340, 5342, 5344, 5344, 5346, 5348, 5350, 01325 5352, 5354, 5356, 5358, 5360, 5362, 5364, 5366, 5368, 5370, 01326 5372, 5372, 5373, 5373, 5373, 5374, 5377, 5380, 5383, 5386, 01327 5389, 5392, 5395, 5398, 5401, 5404, 5407, 5410, 5413, 5416, 01328 5419, 5422, 5425, 5426, 5427, 5429, 5430, 5430, 5431, 5431, 01329 5431, 5432, 5433, 5433, 5433, 5433, 5433, 5435, 5436, 5437, 01330 5437, 5437, 5437, 5437, 5437, 5437, 5437, 5438, 5439, 5440, 01331 5441, 5442, 5443, 5444, 5445, 5447, 5448, 5449, 5450, 5451, 01332 5451, 5451, 5452, 5452, 5452, 5452, 5456, 5457, 5458, 5461, 01333 01334 5461, 5462, 5466, 5470, 5474, 5477, 5479, 5483, 5485, 5489, 01335 5492, 5494, 5496, 5501, 5505, 5509, 5516, 5518, 5519, 5520, 01336 5524, 5526, 5526, 5526, 5526, 5526, 5526, 5526, 5530, 5534, 01337 5538, 5545, 5549, 5549, 5549, 5550, 5552, 5554, 5556, 5556, 01338 5558, 5560, 5562, 5564, 5566, 5568, 5569, 5572, 5575, 5578, 01339 5581, 5584, 5585, 5586, 5586, 5587, 5588, 5588, 5588, 5588, 01340 5588, 5588, 5588, 5588, 5589, 5590, 5591, 5592, 5593, 5593, 01341 5593, 5593, 5593, 5593, 5597, 5598, 5601, 5605, 5609, 5613, 01342 5617, 5619, 5620, 5622, 5624, 5624, 5624, 5624, 5627, 5628, 01343 5631, 5632, 5635, 5637, 5641, 5642, 5643, 5643, 5643, 5643, 01344 01345 5643, 5643, 5644, 5644, 5648, 5652, 5656, 5660, 5662, 5662, 01346 5664, 5666, 5668, 5670, 5672, 5674, 5677, 5680, 5681, 5682, 01347 5682, 5682, 5682, 5682, 5682, 5682, 5683, 5684, 5685, 5686, 01348 5687, 5687, 5687, 5688, 5692, 5693, 5696, 5700, 5704, 5708, 01349 5712, 5713, 5713, 5714, 5717, 5719, 5719, 5720, 5722, 5722, 01350 5725, 5726, 5726, 5726, 5729, 5729, 5730, 5730, 5732, 5732, 01351 5732, 5732, 5733, 5733, 5733, 5735, 5735, 5735, 5735, 5735, 01352 5735, 5739, 5743, 5747, 5749, 5749, 5749, 5749, 5752, 5752, 01353 5754, 5756, 5758, 5760, 5762, 5764, 5767, 5770, 5771, 5771, 01354 5771, 5771, 5771, 5771, 5772, 5773, 5774, 5775, 5776, 5776, 01355 01356 5780, 5781, 5784, 5788, 5792, 5793, 5797, 5799, 5801, 5801, 01357 5802, 5802, 5802, 5802, 5806, 5810, 5810, 5810, 5811, 5811, 01358 5811, 5811, 5811, 5811, 5811, 5815, 5819, 5822, 5824, 5824, 01359 5826, 5827, 5829, 5831, 5833, 5836, 5839, 5839, 5839, 5840, 01360 5840, 5840, 5840, 5840, 5841, 5841, 5842, 5842, 5843, 5844, 01361 5845, 5848, 5852, 5853, 5853, 5853, 5857, 5857, 5857, 5861, 01362 5861, 5861, 5861, 5861, 5865, 5867, 5867, 5869, 5869, 5869, 01363 5869, 5869, 5869, 5870, 5871, 5871, 5873, 5874, 5877, 5881, 01364 5881, 5881, 5881, 5884, 5884, 5888, 5889, 5889, 5893, 5893, 01365 5893, 5893, 5896, 5899, 5899, 5899, 5899, 5903, 5903, 5905, 01366 01367 5905, 5906, 5906, 5906, 5906, 5906, 5907, 5908, 5908, 5911, 01368 5911, 5915, 5915, 5917, 5918, 5918, 5921, 5921, 5921, 5924, 01369 5928, 5928, 5929, 5930, 5931, 5934, 5934, 5934, 5935, 5936, 01370 5936, 5940, 5940, 5942, 5942, 5943, 5947, 5949, 5950, 5950, 01371 5953, 5957, 5958, 5961, 5961, 5962, 5962, 5966, 5966, 5968, 01372 5972, 5976, 5977, 5980, 5981, 5985, 5989, 5990, 5993, 5997, 01373 6001, 6002, 6005, 6009, 6010, 6013, 6017, 6018, 6021, 6025, 01374 6026, 6030, 6034, 6036, 6036 01375 } ; 01376 01377 static yyconst flex_int32_t yy_ec[256] = 01378 { 0, 01379 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 01380 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 01381 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01382 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 01383 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 01384 22, 22, 22, 22, 22, 23, 23, 24, 25, 26, 01385 27, 28, 1, 29, 30, 31, 32, 33, 34, 35, 01386 36, 36, 37, 38, 39, 40, 36, 36, 41, 42, 01387 36, 43, 44, 45, 36, 36, 46, 47, 48, 36, 01388 49, 50, 51, 52, 53, 1, 54, 55, 56, 57, 01389 01390 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 01391 68, 69, 36, 70, 71, 72, 73, 74, 75, 76, 01392 77, 78, 79, 80, 81, 82, 1, 1, 1, 1, 01393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01394 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01398 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01399 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01400 01401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01403 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01406 1, 1, 1, 1, 1 01407 } ; 01408 01409 static yyconst flex_int32_t yy_meta[83] = 01410 { 0, 01411 1, 2, 3, 4, 5, 1, 6, 1, 7, 1, 01412 1, 8, 9, 10, 11, 1, 12, 13, 14, 15, 01413 16, 16, 16, 17, 18, 19, 20, 1, 1, 21, 01414 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 01415 22, 22, 22, 22, 22, 22, 22, 22, 23, 24, 01416 25, 1, 26, 21, 21, 21, 21, 21, 21, 22, 01417 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 01418 22, 22, 22, 22, 22, 22, 22, 22, 27, 1, 01419 28, 29 01420 } ; 01421 01422 static yyconst flex_int16_t yy_base[3360] = 01423 { 0, 01424 0, 3, 8, 58, 63, 77, 81, 131, 136, 150, 01425 189, 193, 207, 212, 251, 270, 274, 293, 344, 22, 01426 426, 33, 508, 91, 590, 97, 672, 98, 754, 117, 01427 836, 141, 918, 157, 999, 1012, 1091, 164, 1017, 1172, 01428 1175, 1205, 1254, 169, 1329, 170, 1411, 226, 1493, 228, 01429 1575, 232, 1657, 248, 1739, 284, 1821, 306, 1903, 307, 01430 1985, 312, 2067, 313,10786,26042, 1004,26042,26042,26042, 01431 11,10770, 1033, 19, 0,26042, 0, 0, 21,10764, 01432 0, 1037, 25, 0,26042, 0, 0, 28,10763, 1042, 01433 35, 0, 1047, 0,10761, 0, 0, 49,10758, 1049, 01434 01435 53,26042, 1053,26042,26042,26042, 100,10752, 6, 1069, 01436 101, 0, 255, 0, 0, 0,10732, 109,10743, 1070, 01437 127, 0, 1179,26042, 0, 0, 153,10736, 1185, 161, 01438 0, 1191, 0, 0, 0,10720, 163,10727, 1211, 204, 01439 1225, 1235, 1239,26042,26042, 2148,10683, 277,26042,26042, 01440 26042,10704,26042, 247, 1224,10705,26042,26042, 262, 2156, 01441 2161,10692,26042,26042, 52, 1218, 267, 1216, 1227, 1186, 01442 1253, 1238, 2133, 36, 178, 1006, 2122, 2149, 189, 2163, 01443 2171, 1198, 2155, 282,26042,26042, 1078, 2241, 1003, 261, 01444 10692,10646,10688, 114, 1297,26042,10687, 17,26042, 29, 01445 01446 314,26042, 131,10669, 312, 2234, 2249, 2261,10666, 2279, 01447 2288, 2245, 2265, 2289, 2298, 2313, 2332, 2268, 2325, 2215, 01448 2337, 2342, 2347, 2367, 2371, 2392, 2285, 2399, 2403, 1006, 01449 26042, 1007,26042, 2475, 2480, 2484,26042, 2488,10640,26042, 01450 290,10661,10677, 2511,26042,26042,26042, 2432, 2516, 1182, 01451 0, 2166,26042, 2504, 2529, 2541, 2559, 2571, 2531, 2552, 01452 2561, 2576, 2583, 2602, 2610, 2400, 2495, 2630, 2623, 2636, 01453 2656, 2660, 2681, 2525, 2688, 2692, 0,26042,26042, 0, 01454 26042, 1005, 0, 2203, 1178,26042,10655, 1035, 1189, 2700, 01455 2232, 0,26042,10659, 2721, 1288, 0,26042,26042, 181, 01456 01457 0,10622,10596,10601,10607, 2199, 0,26042,26042,26042, 01458 26042, 160, 0, 1144,10598, 2536,26042,26042,26042,26042, 01459 18, 1208, 1269, 2148, 2249, 2199, 2289, 2357,26042,26042, 01460 10621,10586, 184,10585,10587,10592, 1221,10580,10587, 2154, 01461 1243,10572,10570,10580, 2764, 2769, 2773, 2778, 276,10610, 01462 26042, 2796, 2801, 2805, 2810, 2814, 2839, 2843, 2848, 2853, 01463 2881, 2885, 2889, 2893, 2659, 2920,26042, 2924, 2928, 2956, 01464 26042, 0,26042,26042, 2213,26042,10625, 0,10557,10549, 01465 10560,10540,10541,26042, 2963, 2256,26042, 2425,26042, 0, 01466 26042,26042, 2284,26042,26042,10601, 0,10569,10534,10539, 01467 01468 10529,10527, 2131,10523,10535, 2249,10517,10515,10526, 2619, 01469 2309, 0,26042, 2326, 0,26042, 0,10542,10507,10509, 01470 10501,10497, 2438,10488,10500, 2574,10485,10473,10483,26042, 01471 2669,26042,26042, 0,10484,26042,26042, 2334,10518, 0, 01472 26042,26042, 2714, 2386, 0, 2967, 0, 0,26042, 0, 01473 0, 0, 2392,10509, 3042, 0, 2819, 2399, 3018, 3075, 01474 3079,26042, 0,26042, 0,10481,10442, 950,10441,10442, 01475 2444,10438, 2176, 2915,10437,10433,10440,26042, 3096,26042, 01476 2901,26042, 0,26042,26042, 2483,10482,10461, 2934, 2585, 01477 2936, 2588, 2156, 2148,26042, 2973, 2607, 2975, 2446, 0, 01478 01479 2543, 2331,26042,26042, 2977, 2635, 2979, 2666, 0, 2684, 01480 2490, 0, 3008, 2710, 3000, 2980, 0,26042, 2749, 2519, 01481 3012, 2742, 3010, 3020,10470, 3070,26042, 2808, 2551,26042, 01482 10468, 3082, 0, 2897,10442,26042, 2779, 2573, 0, 3105, 01483 3090, 3097, 0, 2780, 2764, 0, 3031, 2776, 3098, 3108, 01484 0, 2524, 2853, 2855, 0, 3110, 2817, 3103, 3128, 3136, 01485 10436, 3169, 0, 3174, 3192, 3181,10446, 2925, 3140, 3199, 01486 26042, 3189, 0, 3217,10390, 1010,10384, 3225, 3242,26042, 01487 26042,10392,10423, 3244, 1174, 2441, 3090, 2520, 2553, 2788, 01488 2809, 1218, 2315, 3163, 1263, 2228, 269, 2886, 3325, 2141, 01489 01490 2805, 2378, 2621, 3199, 2639, 2484, 2526, 2894, 2873, 3095, 01491 3203, 2902, 3131,10371, 62, 3208, 2853, 3004, 3102, 3105, 01492 2647, 1203, 2772, 2980, 3218, 2944, 3216, 3176, 2927, 3230, 01493 3222, 3172, 3225, 3243, 3002, 3187, 3234, 3244, 3247, 2362, 01494 3248, 3120, 2679, 3191, 3250,10374, 3255, 3353, 3361, 3376, 01495 3392, 3366, 3367, 3255,26042, 3406, 3412,26042, 3408, 3416, 01496 26042,10404,10400, 3417,26042,10397,26042, 3432,10396,10391, 01497 3442, 3452, 3462, 3480, 3489, 3512, 3516, 3539, 3543, 3566, 01498 3578, 3593, 3603, 3626, 3691, 3654, 3658, 3720, 3732, 3750, 01499 3773, 3793, 3803, 3818, 3828, 3846, 3858, 3930,10344, 3883, 01500 01501 3901, 3959, 3982, 4011, 4015, 4038, 4042, 4065, 4069, 4094, 01502 4106, 3873, 4124, 4133, 3510, 3380, 3417, 3564, 3460, 3487, 01503 3527, 3687, 3589, 3766, 3664, 3717, 3783, 3722, 3796, 3821, 01504 3965,10390, 3994, 0, 4151, 3382, 4112, 4167, 4179,26042, 01505 4185,10384,10376, 4210, 4218, 3989, 4226,26042, 4230, 4160, 01506 26042,10372,26042, 4234, 4259, 4263, 4291, 4295, 4320, 4324, 01507 4350, 4362, 4380, 4389, 4415, 4424, 4444, 4453, 4518, 4478, 01508 4482, 4558, 4570, 4590, 4599, 4619, 4637, 4646, 4666, 4678, 01509 4750,10318, 4704, 4716, 4790, 4802, 4820, 4832, 4857, 4866, 01510 4875, 4893, 4913, 4922, 4940, 4952, 4970, 4997, 5015, 5035, 01511 01512 5047, 5072, 5084, 5102, 5120, 5140, 5152, 5178, 5182, 5207, 01513 5232, 5250, 5262, 0, 0, 3495, 3457, 3467,10365, 3631, 01514 3482,10363,10360, 3335, 3507, 4239, 3598,26042,10362,10370, 01515 10347, 3760, 0, 0,10293,10291,10293,10306, 3608, 0, 01516 3454, 0, 3299,10301,10282, 4002, 2873,26042, 4094, 4025, 01517 26042, 4329, 3566, 4273, 4138,10310,10276,10289,10285,10264, 01518 10266,10266, 3652,10250,10253,10246,10239, 3355,10235,10237, 01519 10232,10226,10231,10230, 4407,10256, 4554, 0, 4449, 4673, 01520 3308, 4782, 4722, 5001,10254,10247, 5280, 5288, 5297, 5305, 01521 5313, 5323, 5391, 5340, 5355, 5350, 5421, 5425, 5429, 5433, 01522 01523 5458, 5464, 4808, 4838, 3663, 5365, 5472, 5476,10206,10198, 01524 10210,10197,26042, 5489, 0, 0,10196,10203,10205,10178, 01525 10183, 5493, 0, 0,10205,10174,10184,10162,10165, 3726, 01526 10159,10158,10157,10148, 3375,10142,10133,10140,10128, 4070, 01527 4074, 4202,26042, 0, 0,10143,10111,10121,10100,10099, 01528 0,10088,10087,10082,10072, 3445,10066,10049,10057,10057, 01529 0,10105, 3325,26042, 0, 4958, 5076, 5503,26042,26042, 01530 0, 0, 3292, 3419,26042, 5572,26042, 3798, 3368, 3945, 01531 3761, 5600, 0, 0,10069,10040,10048,10028,10013,10012, 01532 5679,10007,10010,10011,10010,10012, 9995, 3450, 9990, 9988, 01533 01534 3745, 9991, 5644,10018,10017,10012, 3947, 3888,10020, 3481, 01535 10031, 4021, 4196,10018, 3535, 2711,10022, 2783, 5212, 5239, 01536 4266, 4195, 4341, 5515, 5607, 3006, 4583, 3027, 4616, 5043, 01537 4308, 4372, 4394, 5157, 5613, 3345, 4432, 3458, 3909, 4483, 01538 3396, 4390, 4487, 4729, 4846, 3485, 3672, 3554, 4894, 5267, 01539 10007, 3594,10005, 3600, 4082, 4271, 15, 4459, 4533, 4369, 01540 4683, 3607, 3709, 3788, 4512, 4900, 2947, 5002, 3666, 3842, 01541 5722, 5738, 5127, 5331, 5765,26042,10002, 5698, 5783, 5512, 01542 5799, 4044, 9989, 5815, 5604, 0, 5634, 9948, 9935, 9931, 01543 9929, 5823, 5827, 9965, 9963, 5730, 5847, 3161, 3336, 3602, 01544 01545 5908, 3686, 2565, 3457, 3702, 3113, 28, 3302, 4494, 3820, 01546 3756,26042, 5948, 5978,26042,26042, 9966, 5849, 3668, 3917, 01547 3767, 3844, 3833, 3940, 3957, 3403, 4019, 4085, 6029, 4034, 01548 4082, 3843, 4139, 4150, 6069, 4199, 3788, 4642, 3992, 4087, 01549 4282, 3977, 4313, 189, 3594, 4260, 4088, 3869, 3579, 4725, 01550 4192, 3919, 4349, 4209, 4002, 4357, 4103, 3750, 4286, 4238, 01551 4418, 4162, 4600, 4508, 4443, 4171, 4289, 4399, 4446, 4506, 01552 4583, 4539, 4370, 4559, 4351, 4588, 4284, 4647, 4666, 4375, 01553 6087, 6112, 6119, 9919, 9919, 5532, 5807, 4850, 4822, 4290, 01554 9946, 5751, 6129, 5877, 5991, 5995, 6175, 6138, 6147, 6215, 01555 01556 6227, 6247, 6257, 6275, 6287, 6302, 6312,26042, 5852,26042, 01557 9941,26042, 9935, 9930, 6342, 6360, 6369, 6387, 6397, 6407, 01558 6417, 6432, 6442, 6496, 6525, 6537, 6465, 6555, 6567,26042, 01559 5878,26042, 9923,26042, 9926, 9921, 6585, 5940, 5145, 6597, 01560 6659, 6620, 6688, 6624, 6700, 6730, 6742, 6757, 6767, 6777, 01561 6787, 6797, 6812, 6824, 6839, 6851, 6866, 6876, 6886, 6896, 01562 6919, 6923, 6946, 6955, 6973, 6983, 6998, 7013, 7023, 7038, 01563 7048, 7058, 7073, 7096, 7105, 7114, 7132, 7141, 7123, 5791, 01564 5657, 5883, 4546, 6470, 7170, 9897, 5974, 5627, 5936, 6057, 01565 7178, 7187, 7196, 7214, 7286, 7241, 7259, 7315, 7223, 7327, 01566 01567 7358, 7376, 7385, 7394, 7403, 7412, 6245,26042, 9896,26042, 01568 7440, 7449, 7467, 7479, 7497, 7506, 7524, 7533, 7587, 7616, 01569 7628, 7646, 7658, 7676, 7685, 6330,26042, 9893,26042, 7694, 01570 7719, 7781, 7751, 7810, 7822, 7852, 7864, 7747, 7882, 7894, 01571 7922, 7931, 7940, 7958, 7976, 7967, 7996, 8008, 8028, 8037, 01572 8055, 8046, 8073, 8082, 8107, 8119, 8146, 8155, 8173, 8200, 01573 8209, 8182, 8229, 8257, 8261, 8287, 8291, 8316, 8334, 9904, 01574 3519, 0, 9881, 9822, 9830, 9820, 9818, 3957, 9826, 9805, 01575 9803, 9803, 9794, 5004, 6215, 4949, 5232, 5355, 6216, 6309, 01576 4906, 5081, 5107, 9800, 9788, 9783, 9797, 9796, 9790, 4608, 01577 01578 9781, 9778, 9765, 9766, 9771, 9763, 9751, 9754, 9745, 9748, 01579 9745, 6726, 7561, 7737, 4945, 8352, 8359, 7731, 7848, 8364, 01580 8369, 6094, 9771, 9764, 8377, 8402, 8406, 8410, 8417, 8442, 01581 8446, 8454, 8459, 8486, 5114, 5293, 9719, 9727, 9726, 9714, 01582 9707, 9704, 9700, 0, 9710, 9696, 9686, 9700, 9664, 9647, 01583 9641, 9628, 9627, 9627, 9621, 9597, 9601, 9584, 9567, 9560, 01584 9574, 9571, 9553, 9554, 9539, 9540, 9546, 9538, 9533, 9525, 01585 9517, 9558,26042, 9552, 4693, 0, 5221, 7080, 5061, 4915, 01586 5006, 8127, 8234, 4025, 6013, 4500, 9486, 9480, 9473, 9480, 01587 9479, 9472, 9472, 9457, 9461, 9450, 9450, 9457, 9450, 9443, 01588 01589 9445, 9441, 9435, 9476, 0, 4573, 9479, 4629,26042, 9461, 01590 26042, 9468,26042, 0, 9467,26042,26042, 9463,26042, 9457, 01591 0, 9437, 0, 4994, 8494, 6165, 0, 0, 6435, 6445, 01592 0, 9436, 0, 5498, 6514, 5951, 0, 0, 6155, 6478, 01593 0, 9421, 0, 4056, 6271, 4502, 0, 0, 4608, 4734, 01594 4971, 4964, 9432, 5269, 9413,26042, 0, 9412, 0, 4691, 01595 5159, 4779, 0, 0, 4786, 4815, 5965, 6337, 3746, 4728, 01596 4978, 5079, 5103, 8513, 6603, 8517, 8545, 8549, 8574, 8578, 01597 6275, 0, 5187, 8603, 8521, 8617, 8640, 6205, 6694, 8665, 01598 26042, 9366, 9362, 9342, 8648, 8673, 8688, 6718, 6830, 7620, 01599 01600 7723, 9386, 4670, 4676, 9339, 4803,26042, 8724, 8729,26042, 01601 26042, 9383, 7329, 5557, 4589, 4711, 4727, 5142, 4820, 4794, 01602 5269, 8757, 8774,26042, 4822, 5311, 8825, 5318, 5030, 4987, 01603 4880, 4839, 5414, 8865, 3770, 5106, 4131, 5130, 5153, 5209, 01604 5136, 5395, 4859, 5234, 9337, 3919, 5083, 5442, 5087, 5309, 01605 9332, 5319, 4910, 5160, 5352, 5381, 8922, 5261, 5452, 4998, 01606 5469, 5457, 5473, 5526, 5550, 5296, 5431, 5497, 5383, 5389, 01607 6101, 4779, 5377, 5608, 5502, 4182, 4481, 5483, 5572, 5600, 01608 5565, 5512, 9328, 9330, 6988, 6063, 6362, 6125, 6367, 6389, 01609 6928, 7949, 7556, 8787, 8791,26042, 6929,26042, 9366,26042, 01610 01611 9365, 9355, 8993, 8895, 8953, 8962, 9022, 9034, 9052, 9064, 01612 9079, 9097, 9109, 9124, 9149, 9159, 9174, 7205, 9184, 9199, 01613 9209, 9224, 9234, 9249, 9259, 9269, 9289, 9298, 9316, 9328, 01614 9346, 9355, 9373, 9385, 9400, 9410, 9425, 9435, 9450, 9460, 01615 9475, 9485, 9495, 9505, 9523, 9541, 9550, 9570, 9579, 9597, 01616 9662, 9609, 9629, 9691, 9703, 9721, 9733, 9758, 9770, 9785, 01617 9795, 8450, 8631, 5671, 5709, 9615, 9813, 7271, 8716, 9358, 01618 9821, 9825, 9854, 9858, 9884, 7232,26042, 9339,26042, 9928, 01619 9896, 9963, 9993,10013,10025,10043,10052,10070,10079,10088, 01620 10108,10120,10146,10150,10175,10179,10204,10208,10234,10238, 01621 01622 10264,10268,10293,10297,10323,10327,10352,10356,10383,10392, 01623 10410,10419,10437,10446,10464,10473,10500,10509,10518,10527, 01624 10555,10575,10593,10602,10611,10638,10656,10668,10686,10698, 01625 10718,10736,10761,10770,10779, 0, 9334, 2186, 9336, 9283, 01626 9282, 9287, 9285, 9263, 9260, 9262, 9260, 9254, 9237, 9223, 01627 4985,26042, 5737, 5694, 5710, 9287, 7553, 5777, 5743,26042, 01628 5771, 6347, 9278, 6400, 6083, 9209, 9214, 9204, 9200, 9213, 01629 9193, 9205, 9206, 9190, 9191, 9188, 9189, 9174, 8860, 0, 01630 8891, 5851, 9210,10840, 8958, 8926, 9968, 9997,10561,10743, 01631 10642, 9115,10921,10925, 9959, 9161, 9161, 9165, 9167, 9148, 01632 01633 9149, 9157, 9141, 6399, 6427, 6560, 6211, 6653, 6530, 6022, 01634 6690, 6587, 6769, 9151, 9141, 9133, 9140, 9123, 9132, 9131, 01635 9114, 9120, 9095, 9147,26042, 5822, 0, 9133, 0, 6873, 01636 8262, 6937, 0, 0, 6973, 7437,10997, 9075, 9081, 9073, 01637 9084, 9068, 9076, 9060, 9073, 9077, 9057, 9044, 9029, 9030, 01638 0, 9071,26042,26042, 9090, 6064, 9086,26042, 9082,26042, 01639 9077,26042, 0, 7351, 8021, 0, 6843, 7158, 0, 5769, 01640 5803, 9076,26042, 9052, 9047, 6592, 9046, 0, 5818, 5855, 01641 5860, 9009, 5109, 5652,10939, 9902,11078,11101, 8979, 8961, 01642 8961,11182, 9004, 8014, 5723, 5826, 8967, 5816,11114,11130, 01643 01644 26042, 5917,11240, 6023, 5190, 5644, 8958, 8957, 5949,11321, 01645 7430, 5586, 5255, 6475, 8938, 5873, 5849, 5954, 6088, 6139, 01646 8932, 6251, 5777, 5936, 6210, 6305, 6382, 6180, 5926, 6265, 01647 6495, 6512, 5679, 5994, 6049, 8924, 8915, 6524, 8927, 8925, 01648 5889, 6295, 6542, 6359, 6140, 6325, 6573, 6591, 5948, 6287, 01649 8929,11392, 6401, 8898, 6479, 6576, 6633, 7100, 6582, 6675, 01650 6226, 8884, 8880, 8296, 7150, 8921,26042, 7515,10953,11140, 01651 11144,11275,11331,11474,11196,11349,11515,11533,11433,11545, 01652 11443, 6237, 8890,11563,11581,11590,11608,11618,11628,11648, 01653 11658,11192,11676,11686,11701,11716,11726,11736,11751,11761, 01654 01655 11786,11801,11811,11821,11836,11848,11863,11873,11893,11908, 01656 11923,11933,11943, 8910,12003,11963,12032,12044,11972,12062, 01657 12074,12089,12101, 8490,12119,12131,12156,12165,12174,12183, 01658 12192,12218,12222,12249,12253,12320,12285,12349,12289,12379, 01659 12391,12409,12418,12427,12447,12456,12476,12485,12494,12512, 01660 12521,12541,12550,12559,12568,12577,12586,12606,12615,12633, 01661 12645,12674,12678,12704,12708,12774,12735,12747,12809,12839, 01662 12857,12866,12884,12904, 8909, 6422, 8868, 8861, 8836, 8844, 01663 8834, 8829, 8823, 8787, 8802, 8801, 8801, 6687,26042, 6770, 01664 8845, 6821, 8844, 8770,26042, 8765, 8760, 8744, 8757, 8740, 01665 01666 8741, 8741, 8740, 8717, 8719,10808, 8756,10935,10812,11279, 01667 11271,11304,11968,12353,11429,12805,12909, 8692, 8693, 8700, 01668 8673,12934,11361,12663,12938, 8690, 8678, 8663, 8668, 8652, 01669 8663, 8650, 8653, 8650, 8645, 8628, 8639, 8622, 8624, 8616, 01670 8628, 8661, 8659, 0, 7771, 8389, 8612,12896, 8602, 8587, 01671 8596, 8599, 8591, 8575, 8570, 8550, 8551, 8557, 8578, 6802, 01672 8581, 8591,26042, 8590,26042, 0, 6390, 6655, 8557, 8518, 01673 8514, 8490,12969, 9764,11308, 0,11423,12975, 7474,13021, 01674 6069, 3657, 5913, 6228,13038, 6568, 2275, 2461, 6585,13088, 01675 13056,13106, 6431, 1215, 8480, 5617, 6648, 6713, 6730, 5018, 01676 01677 6754, 3988, 4426, 6761, 5560, 2695, 4077, 6508, 6486, 6725, 01678 13159, 8452, 8403, 6720, 5778, 7068, 6204, 6839,26042, 6925, 01679 4877, 6095, 6936,13199,13229, 6586, 6624, 6841, 8399, 8410, 01680 13116,13243,13255,13273,13282,13300,13309,13318,13341,13345, 01681 13368, 8409,13386,13396,13406,13416,13431,13446,13464,13473, 01682 13482,13491,13500,13509,13518,13588,13551,13555,26042,13629, 01683 13647,13659,13677,13686,13695,13713, 8764, 9728,13072, 7653, 01684 13731,13743,13763,13775,13793,13802,13811,13837,13846,13866, 01685 13884,13893,13902,13911,13931,13940,13949,13967,13976,13985, 01686 13994,14012,14030,14042,14060,14069,14094,14103,14112,14121, 01687 01688 5759, 8375, 8352, 8344, 9888, 8322, 8319, 92, 147, 221, 01689 0, 1005, 1139, 2123, 2187, 2313, 2511, 2594, 0, 7320, 01690 12813,13007,13122,13193,13620, 7370, 2764, 2861, 2939,14139, 01691 26042, 2977, 3055, 3157, 3221, 3250, 3363, 3398, 3493, 3600, 01692 3854, 4223, 4321, 4438, 4539, 4606, 4955, 5109, 5125, 5209, 01693 5288, 5317, 5384, 6867,26042, 5518, 6924, 5517, 5840, 5832, 01694 6786,10545,14146,14152,10971,11169,14158, 5995,14196, 7840, 01695 7889, 7926, 6121, 6972, 6917,14212, 6812, 6977, 6863, 6934, 01696 5990,14263, 6928, 6933, 6988, 6827, 6980, 7347, 7106, 6885, 01697 6987,14344, 6150, 6235, 7015, 6834, 7032, 6357, 7000, 7001, 01698 01699 7021, 7060,14304,14349, 6280, 7022, 7703, 6338,14178,14362, 01700 14222,14385,14408,14417,14435, 6347,14445,14455,14470,14480, 01701 14490,14500,14510,14528,14537,14562,14572,14587,14597,14612, 01702 12945,14298, 8323, 8706, 8346,14624,14650,14654,14679,14683, 01703 14709,14727,14739,14766,14775,14784,14793,14813,14825,14843, 01704 14861,14870, 6740, 6404, 0, 6464,11791,26042, 6501, 6499, 01705 26042, 6598, 0, 6658, 6687, 6694, 7529,13225,14895, 6804, 01706 6842, 6840, 6843, 6913, 6943, 6978, 7027, 7054, 7059, 7074, 01707 7083, 7095, 7099, 7107, 7109, 7111, 7120, 7125, 7126, 7165, 01708 7421, 7251, 7120, 7137, 7138, 7185,14900,14907,14912, 8907, 01709 01710 8938, 7275, 7197, 7329, 9153,26042,14937,14942,26042,26042, 01711 7188, 8075, 7188, 7190, 7298,14993,15074,15079,15103, 7222, 01712 0, 7172, 7199, 7212, 7228, 7213, 7263, 7294, 7337, 7427, 01713 7746, 7422, 7255, 8164,26042,15119,15129,15139, 0,15159, 01714 15168,15186,15196,15211,15221, 9535,15239,15257,15266,15284, 01715 15293, 7335, 7251, 7268, 7329,26042, 7334, 7361, 7370, 7381, 01716 7387, 7380, 7398, 7394, 7401, 7409, 7422, 7442, 7884, 7486, 01717 7432, 7448, 7581, 7479,15109,15323, 7480, 7577, 7495, 7599, 01718 9641, 9647,26042,15327, 7486,10143, 7490,10126, 7527,15355, 01719 15371, 7531, 7536,15422, 7596,14313, 7489, 7489, 7499, 7513, 01720 01721 7511,26042, 7507, 7617, 7652, 7595,15462,11493, 7559,14955, 01722 15337,15389,15492,15504,15519,15539,15559, 7659, 7555, 7623, 01723 7620, 7622, 7628, 7633, 7652, 7645, 7649, 7672, 7656, 7686, 01724 7753, 7709, 8112, 7734,15577,15457, 7805, 7835, 7876, 7743, 01725 9914,10816,26042, 7914,10704, 7766,26042,15591,15608, 7789, 01726 7803, 7813, 8853,26042, 8114,15636,15641,26042,14365,15692, 01727 15768, 7790, 9343,10480,13372, 7766, 7756, 7798, 7909, 7785, 01728 7893, 7964, 7950,15787, 7831,12282, 7847,10930, 7808,15797, 01729 15662,15801,15824,15839,15849,15874,15900, 8191, 7809, 7835, 01730 7852, 7840, 7849,15878, 7861, 7875,10822, 7875, 7884, 8139, 01731 01732 15912,15918, 7955, 7974,13119, 7971, 8075, 8585, 8148,26042, 01733 0,12651, 8115, 0, 7905,15986,14757,14967,15666, 8116, 01734 7921, 7942, 8609, 7979, 8129, 8033, 8205,11899, 7975,15935, 01735 8017,16067,16071,16094,16103,16112, 8384, 8382,15487, 7991, 01736 8005,10965, 8021, 8045,11175, 8040, 8045,16139, 8097,16144, 01737 16169, 8176, 8422, 8170,16239, 8065, 0, 9059,16321, 8212, 01738 16403, 8084, 8108, 8165, 8297, 8126,16173, 8477, 8498, 8482, 01739 8132, 8155, 8172, 8180, 8171, 8230,16484,16554, 8219,16636, 01740 0,15395,16718,16800, 8175,16488,16881, 0,16932, 0, 01741 11575, 8584, 8963,17014, 8336, 8192, 8218, 8201,16183, 8693, 01742 01743 26042, 8878, 8203, 8210, 8206,17096,15886,15961, 8932,13860, 01744 8255, 8269,17178,17259,17264, 0, 0, 9104,17315, 8232, 01745 12386, 9021, 9147,16201, 9054, 0,10983,17397, 8341, 8239, 01746 8367, 8239,17478,16214, 9186, 8270, 0,17496,17503, 0, 01747 8235, 9318, 9296,11221, 0, 8258, 8344, 8816,17513, 8472, 01748 8255, 9323, 9284, 9575, 8436, 8260, 9462, 9375, 8499, 9588, 01749 9690, 9723, 8522,10322,10045, 8392,10428, 8318, 8400, 8352, 01750 8523, 8613,17531,26042,17585,17614,17643,17672,17701,17730, 01751 17759,17788,17817,17846,17875,17904,17933,17962,17991,18020, 01752 18049,18077,18106,18134,18159, 8539,18184,18209,18237,18262, 01753 01754 18287, 8602, 8781, 8730,18298, 8764,18311, 8877, 9540, 8948, 01755 9848,18337,18365,18393,18418, 9065,10121, 9148,10174, 9219, 01756 18443, 9284,10228, 9395,18469,10351, 9424,18497,18523, 9470, 01757 18552,18581, 9565,10377, 9615,18595,18621,18650,18679,18708, 01758 18737,18766,18795, 9635,18823,18848,18874,18902, 8512,18931, 01759 18959,18984,19009,19034,19059,19085, 9680,19113,19138,19164, 01760 19192,19217,19242,10458,19253,19266,10676,10735,11068,19292, 01761 9698,19320,19345,19371,19399,11358,11444,19424,11492,11596, 01762 19450,19479,19507,19533,11643,19562,11671,19576,19602,19631, 01763 19660,19689,19718,19747,19776,19805,19834,19863,19892,19921, 01764 01765 19950,19979,20008,20037,20066,20095,20124,20153,20182,20211, 01766 20240,20269,20298,20327,20356,20385,20413,20438,20463,20488, 01767 20513,20541,20569, 8616,20594,20622,20651,20680,20709,20737, 01768 20762,20787,20812,20837,20863,20891,20916,20941,20966,20991, 01769 21019,21048,21076,21101,10769,21112, 9728,21125,11760,11830, 01770 21151,21180,21209,21238,21267,21295,21320,21348,21376,21402, 01771 21430,12017,12083,12126,21456,12217,21485,21514,21543,21572, 01772 21601,12243,11086,21630,21659,21688,21717,21746,21775,21804, 01773 21833,21862,21891,21920,21949,21978,22007,22036,22065,22094, 01774 22123,22152,22181,22210,22239,22268,22297,22326,22355,22384, 01775 01776 22413,22442,22471,22500,22529,22558,22587,22616,22645,22674, 01777 22703,22731,22756,22781, 9780,22806,22834,22859,22887,22915, 01778 22941,22969,22994,23019,23044,23069,23095,23123,23148,23173, 01779 23201,23226,10078,23237,23248,23261,12511,12742,23287,23316, 01780 23345,23374,23403,23432,23461,23490,23518,10165,23543,23568, 01781 12856,23593,12905,23619,23648,23677,23706,23735,23764,23793, 01782 13006,10193,23807,23833,23862,23891,23920,23949,23978,24007, 01783 24036,24065,24094,24123,24152,24181,24210,24239,24268,24297, 01784 24326,24355,24384,24413,24441,24466,24494,24522,24550,24578, 01785 24603,24628,24653,24681,24692,24703,13062,13078,24729,24758, 01786 01787 24787,24816,24845,24873,11130,24898,24923,13129,13267,24950, 01788 24979,25008,13524,25022,25048,25077,25106,25134,25159,10263, 01789 25187,25212,25237,25262,25290,25315,25340,25351,13701,13737, 01790 10292,25376,25401,13831,14000,14153,14223,25426,25452,25480, 01791 25505,25530,25556,25585,25614,25643,25672,25701,25730,25759, 01792 25788,25817,25846,25875,25904,25933,25961,25986,26012 01793 } ; 01794 01795 static yyconst flex_int16_t yy_def[3360] = 01796 { 0, 01797 2975, 2975, 2976, 2976, 2977, 2977, 2978, 2978, 2979, 2979, 01798 2980, 2980, 2981, 2981, 2982, 2982, 2975, 2975, 2974, 19, 01799 2974, 21, 2974, 23, 2974, 25, 2974, 27, 2974, 29, 01800 2974, 31, 2974, 33, 2975, 2975, 2974, 37, 2975, 2975, 01801 2983, 2983, 2975, 43, 2974, 45, 2974, 47, 2974, 49, 01802 2974, 51, 2974, 53, 2974, 55, 2974, 57, 2974, 59, 01803 2974, 61, 2974, 63, 2974, 2974, 2974, 2974, 2974, 2974, 01804 2974, 2974, 2974, 2974, 2984, 2974, 2984, 2984, 2984, 2984, 01805 2985, 2984, 2984, 2986, 2974, 2986, 2986, 2986, 2986, 2986, 01806 2986, 2987, 2974, 2987, 2974, 2987, 2987, 2987, 2987, 2987, 01807 01808 2987, 2974, 2988, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 01809 2974, 2989, 2989, 2989, 2989, 2989, 2974, 2974, 2989, 2989, 01810 2974, 2990, 2974, 2974, 2990, 2990, 2990, 2990, 2990, 2990, 01811 2991, 2974, 2991, 2991, 2991, 2974, 2991, 2991, 2991, 2991, 01812 2974, 2974, 2974, 2974, 2974, 2992, 2993, 2974, 2974, 2974, 01813 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2994, 01814 2994, 161, 2974, 2974, 161, 161, 161, 161, 161, 161, 01815 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 01816 161, 161, 161, 161, 2974, 2974, 2995, 2974, 2974, 2974, 01817 2974, 2996, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 01818 01819 2974, 2974, 2974, 2974, 2974, 2997, 2997, 2997, 2974, 2997, 01820 2997, 211, 211, 211, 211, 211, 211, 211, 211, 211, 01821 211, 211, 211, 211, 211, 211, 211, 211, 211, 2974, 01822 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2998, 2993, 2974, 01823 2974, 2974, 2974, 2999, 2974, 2974, 2974, 3000, 2974, 2974, 01824 2996, 2974, 2974, 3001, 3001, 3001, 3001, 3001, 258, 258, 01825 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, 01826 258, 258, 258, 258, 258, 258, 3002, 2974, 2974, 3003, 01827 2974, 2974, 3004, 2974, 2974, 2974, 3005, 3005, 2974, 2974, 01828 2974, 3006, 2974, 3007, 2974, 2974, 3008, 2974, 2974, 2974, 01829 01830 3009, 3009, 3009, 3009, 3009, 2974, 3010, 2974, 2974, 2974, 01831 2974, 2974, 3011, 3011, 3011, 2974, 2974, 2974, 2974, 2974, 01832 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 2974, 2974, 01833 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 01834 2974, 2974, 2974, 2974, 2974, 2974, 2974, 3013, 2974, 2974, 01835 2974, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 01836 3014, 3014, 3014, 3014, 3015, 2974, 2974, 2974, 2974, 2974, 01837 2974, 3016, 2974, 2974, 2974, 2974, 2974, 3017, 3017, 3017, 01838 3017, 3017, 3017, 2974, 2974, 2974, 2974, 2974, 2974, 3018, 01839 2974, 2974, 2974, 2974, 2974, 2974, 3019, 3019, 3019, 3019, 01840 01841 3019, 3019, 3019, 3019, 3019, 3019, 3019, 3019, 3019, 2974, 01842 2974, 3020, 2974, 3021, 3022, 2974, 3023, 3023, 3023, 3023, 01843 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 2974, 01844 2974, 2974, 2974, 3024, 3025, 2974, 2974, 2974, 2974, 3026, 01845 2974, 2974, 2974, 2974, 3027, 3028, 3029, 3029, 2974, 3030, 01846 3029, 3029, 3029, 3029, 3031, 3032, 3029, 3029, 2974, 2974, 01847 2974, 2974, 3033, 2974, 3034, 3034, 3034, 3034, 3034, 3034, 01848 3034, 3034, 3034, 3034, 3034, 3034, 3034, 2974, 2974, 2974, 01849 2974, 2974, 3035, 2974, 2974, 2974, 2974, 3036, 2974, 2974, 01850 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 3037, 01851 01852 3037, 3037, 2974, 2974, 3037, 3037, 3037, 3037, 3038, 3038, 01853 3038, 3038, 3038, 3038, 3038, 3038, 3039, 2974, 3039, 3039, 01854 3039, 3039, 3039, 3039, 3040, 3040, 2974, 3040, 2974, 2974, 01855 2974, 2974, 3041, 3041, 2974, 2974, 2974, 2974, 3041, 3041, 01856 2974, 2974, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 01857 3043, 2974, 2974, 3043, 3043, 3043, 3043, 2974, 3043, 2974, 01858 2974, 2974, 3044, 3045, 3045, 3046, 2974, 3047, 2974, 3048, 01859 2974, 2974, 3049, 3044, 2974, 2974, 2974, 2974, 2974, 2974, 01860 2974, 565, 2974, 3050, 565, 565, 565, 565, 565, 565, 01861 565, 565, 565, 565, 565, 565, 565, 565, 3045, 565, 01862 01863 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 01864 565, 565, 565, 599, 565, 565, 565, 565, 565, 565, 01865 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 01866 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 01867 565, 565, 565, 565, 565, 565, 565, 3051, 3051, 3052, 01868 2974, 2974, 2974, 2974, 2974, 3053, 3053, 2974, 2974, 3054, 01869 2974, 2974, 2974, 2974, 2974, 2974, 2974, 3055, 2974, 3056, 01870 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 01871 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 01872 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 685, 3055, 01873 01874 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 3055, 01875 3055, 3055, 3055, 3055, 714, 714, 714, 714, 714, 714, 01876 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 01877 2974, 2974, 2974, 3057, 3058, 3059, 3057, 2974, 2974, 2974, 01878 3058, 2974, 3060, 3061, 3061, 3062, 2974, 2974, 2974, 2974, 01879 2974, 2974, 2974, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 01880 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 01881 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 01882 3063, 769, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 01883 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 01884 01885 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 3063, 01886 3063, 3063, 3063, 3064, 3064, 2974, 2974, 2974, 3065, 2974, 01887 2974, 3065, 2974, 3065, 2974, 2974, 2974, 2974, 3066, 3067, 01888 3066, 2974, 3068, 3068, 3068, 3068, 3068, 3068, 2974, 3069, 01889 2974, 3069, 3069, 3069, 3069, 2974, 3070, 2974, 3070, 3070, 01890 2974, 3070, 3070, 3070, 3070, 2974, 2974, 2974, 2974, 2974, 01891 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 01892 2974, 2974, 2974, 2974, 2974, 2974, 2974, 3071, 3072, 3073, 01893 2974, 3071, 2974, 3072, 2974, 3074, 3072, 3072, 3072, 3072, 01894 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 01895 01896 3072, 3072, 3073, 3073, 3075, 2974, 2974, 2974, 2974, 2974, 01897 2974, 2974, 2974, 2974, 3076, 3076, 3076, 3076, 3076, 3076, 01898 3076, 2974, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 01899 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3078, 01900 2974, 3078, 2974, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 01901 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 01902 3080, 3081, 3082, 2974, 3080, 3083, 2974, 3083, 2974, 2974, 01903 3084, 3085, 3084, 3084, 2974, 3086, 2974, 3084, 3084, 3084, 01904 3084, 2974, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 01905 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 01906 01907 3087, 3087, 2974, 3088, 3088, 2974, 2974, 2974, 3089, 3089, 01908 3090, 2974, 2974, 3091, 3091, 2974, 3092, 2974, 3093, 3093, 01909 3094, 3095, 3095, 3096, 3096, 3095, 3097, 3095, 3098, 3098, 01910 3099, 3100, 3100, 3101, 3101, 3100, 3102, 3100, 3103, 3103, 01911 3104, 3105, 3105, 3106, 3106, 3105, 3107, 3105, 3108, 3108, 01912 3089, 3089, 3091, 3091, 3109, 3109, 3110, 3111, 3111, 3112, 01913 3112, 3111, 3113, 3111, 2974, 2974, 3114, 3115, 3116, 3115, 01914 3117, 3118, 3119, 3119, 3120, 2974, 2974, 2974, 3121, 2974, 01915 3121, 2974, 2974, 3122, 3123, 3124, 3125, 2974, 2974, 2974, 01916 2974, 3126, 3127, 3128, 3129, 2974, 3118, 1097, 1097, 1097, 01917 01918 3118, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 01919 1097, 2974, 2974, 2974, 2974, 2974, 2974, 3127, 1097, 1097, 01920 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 3118, 1097, 01921 1097, 1097, 1097, 1097, 2974, 1097, 1097, 1097, 1097, 1097, 01922 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 01923 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 01924 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 01925 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 01926 2974, 2974, 3130, 2974, 2974, 3131, 3131, 3132, 3133, 3134, 01927 3135, 2974, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 01928 01929 3136, 3136, 3136, 3136, 3136, 3136, 3136, 2974, 2974, 2974, 01930 2974, 2974, 2974, 3135, 3136, 3136, 3136, 3136, 3136, 3136, 01931 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 2974, 01932 2974, 2974, 2974, 2974, 2974, 3135, 3136, 2974, 2974, 3136, 01933 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 01934 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 01935 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 01936 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3137, 01937 3138, 3138, 3139, 3140, 3141, 3142, 2974, 2974, 2974, 3143, 01938 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 01939 01940 3144, 3144, 3144, 3144, 3144, 2974, 2974, 2974, 2974, 2974, 01941 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 01942 3144, 3144, 3144, 3144, 2974, 2974, 2974, 2974, 2974, 3144, 01943 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 01944 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 01945 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 01946 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3145, 01947 3146, 3147, 3148, 3149, 3149, 3149, 3149, 2974, 2974, 3150, 01948 3150, 3150, 3150, 3151, 3151, 3152, 3153, 3153, 3154, 3154, 01949 3153, 3155, 3153, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 01950 01951 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 01952 2974, 3156, 3157, 3158, 2974, 3159, 3159, 3159, 3159, 3159, 01953 2974, 2974, 2974, 3160, 3159, 3159, 3159, 3159, 3159, 3159, 01954 3159, 3159, 3159, 3159, 2974, 3161, 2974, 2974, 2974, 2974, 01955 3162, 3162, 3162, 3162, 3162, 3163, 3163, 3163, 3163, 3163, 01956 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3163, 3164, 3164, 01957 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 01958 3164, 3165, 2974, 2974, 2974, 3166, 3167, 3167, 3168, 3169, 01959 3169, 3170, 3170, 3169, 3171, 3169, 3172, 3172, 3172, 3172, 01960 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 01961 01962 3172, 3172, 3172, 3173, 3174, 2974, 3175, 2974, 2974, 2974, 01963 2974, 3176, 2974, 3177, 3178, 2974, 2974, 3179, 2974, 3180, 01964 3181, 3181, 3181, 3182, 3183, 3184, 3181, 3181, 3185, 3186, 01965 3187, 3187, 3187, 3188, 3189, 3190, 3187, 3187, 3191, 3192, 01966 3193, 3193, 3193, 3194, 3195, 3196, 3193, 3193, 3197, 3198, 01967 3199, 3200, 3201, 3200, 2974, 2974, 3202, 3202, 3202, 3203, 01968 3204, 3205, 3202, 3202, 3206, 3207, 2974, 2974, 2974, 3208, 01969 3209, 3210, 3211, 2974, 2974, 3212, 3213, 2974, 2974, 3214, 01970 2974, 3215, 2974, 3215, 2974, 3216, 3216, 3217, 3217, 3218, 01971 2974, 2974, 2974, 2974, 3219, 3219, 3213, 3220, 2974, 2974, 01972 01973 2974, 2974, 1597, 1597, 1597, 1597, 2974, 2974, 2974, 2974, 01974 2974, 2974, 3221, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 01975 1597, 2974, 2974, 2974, 1597, 1597, 3213, 1597, 1597, 1597, 01976 1597, 1597, 1597, 2974, 1597, 1597, 1597, 1597, 1597, 1597, 01977 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 01978 1597, 1597, 1597, 1597, 1597, 1597, 2974, 1597, 1597, 1597, 01979 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 01980 1627, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 1597, 01981 1597, 1597, 2974, 2974, 3222, 2974, 2974, 3223, 3224, 3224, 01982 3225, 3226, 3226, 3226, 3226, 2974, 2974, 2974, 2974, 2974, 01983 01984 2974, 3227, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 01985 3226, 3226, 3226, 3226, 3226, 3226, 3226, 2974, 3226, 3226, 01986 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 01987 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 01988 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 01989 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 01990 3226, 2974, 3228, 2974, 3229, 3230, 3230, 3231, 2974, 2974, 01991 3232, 3232, 3232, 3232, 2974, 2974, 2974, 2974, 2974, 3232, 01992 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 01993 3232, 3232, 3232, 2974, 3232, 3232, 3232, 3232, 3232, 3232, 01994 01995 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 01996 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 01997 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 01998 3232, 3232, 3232, 3232, 3232, 3233, 3234, 3235, 3236, 3237, 01999 3237, 3237, 3237, 2974, 2974, 2974, 3238, 3238, 3238, 3238, 02000 3239, 2974, 3239, 3239, 3240, 3241, 3242, 3243, 3239, 2974, 02001 3239, 3244, 3245, 3246, 2974, 2974, 2974, 2974, 2974, 2974, 02002 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 3247, 3248, 02003 3249, 2974, 2974, 2974, 3250, 3250, 3250, 3250, 3250, 3250, 02004 3250, 3250, 3250, 3250, 3250, 2974, 2974, 2974, 2974, 3251, 02005 02006 3251, 3251, 3251, 3252, 3252, 3252, 3252, 3252, 3252, 3252, 02007 3252, 3252, 3252, 3253, 3253, 3253, 3253, 3253, 3253, 3253, 02008 3253, 3253, 3253, 3254, 2974, 2974, 3255, 3255, 3255, 3256, 02009 3257, 3258, 3255, 3255, 3259, 3260, 2974, 3261, 3261, 3261, 02010 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 02011 3262, 3263, 2974, 2974, 3264, 2974, 3265, 2974, 3266, 2974, 02012 3267, 2974, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 02013 3276, 3277, 2974, 3277, 3278, 2974, 3279, 3280, 3281, 3282, 02014 2974, 2974, 3283, 3284, 3285, 3286, 3287, 3288, 2974, 2974, 02015 2974, 3285, 2974, 3289, 1992, 1992, 1992, 1992, 2974, 2974, 02016 02017 2974, 1992, 3285, 2003, 1992, 1992, 1992, 1992, 1992, 2974, 02018 1992, 1992, 1992, 2003, 2974, 1992, 1992, 1992, 1992, 1992, 02019 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 02020 1992, 1992, 1992, 1992, 1992, 2974, 2974, 1992, 1992, 1992, 02021 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 02022 2974, 2003, 1992, 1992, 1992, 1992, 1992, 2003, 1992, 1992, 02023 1992, 2974, 2974, 3290, 2974, 2974, 2974, 3291, 3292, 3292, 02024 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 02025 3292, 2074, 2974, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 02026 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 02027 02028 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 02029 3292, 3292, 3292, 2974, 3292, 3292, 3292, 3292, 3292, 3292, 02030 3292, 3292, 3292, 3293, 3294, 3294, 3294, 3294, 3294, 3294, 02031 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 02032 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 02033 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 02034 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 02035 3294, 3294, 3294, 3294, 3295, 3296, 3297, 3297, 3297, 3297, 02036 2974, 2974, 2974, 3298, 3298, 3298, 3298, 3299, 2974, 3300, 02037 3301, 3302, 3303, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02038 02039 2974, 2974, 2974, 2974, 2974, 3304, 3305, 3306, 3306, 3306, 02040 3306, 3306, 3306, 3306, 3306, 3306, 3306, 2974, 2974, 2974, 02041 2974, 3307, 3307, 3307, 3307, 3308, 3308, 3308, 3308, 3308, 02042 3308, 3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309, 3309, 02043 3309, 2974, 2974, 3310, 3311, 3312, 3313, 3313, 3313, 3313, 02044 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3314, 2974, 02045 2974, 3315, 2974, 3316, 2974, 3317, 2974, 2974, 2974, 2974, 02046 2974, 2974, 3318, 3319, 3319, 3320, 3321, 3321, 3322, 3318, 02047 2280, 2280, 2280, 2280, 2974, 2280, 2280, 2280, 2280, 2974, 02048 2974, 2974, 2280, 2280, 2974, 2280, 2280, 2280, 2280, 2280, 02049 02050 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 02051 3318, 2974, 2974, 2280, 2280, 2311, 2280, 2280, 2974, 2280, 02052 2280, 2280, 2280, 2974, 2974, 2280, 2280, 2280, 2974, 2974, 02053 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 02054 3323, 2974, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 02055 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 2974, 3323, 02056 3323, 3323, 3323, 3323, 3323, 3323, 3324, 3324, 3325, 3326, 02057 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 02058 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 02059 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 02060 02061 3328, 3329, 3329, 3329, 3329, 2974, 2974, 2974, 3330, 3330, 02062 3330, 3330, 2974, 2974, 2974, 2974, 2974, 2974, 3331, 3332, 02063 3333, 2974, 3333, 3333, 3333, 2974, 2974, 2974, 2974, 2974, 02064 2974, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3335, 3335, 02065 3335, 3336, 3336, 3336, 3337, 3337, 3337, 3337, 3337, 3337, 02066 3337, 3337, 3337, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02067 2280, 3319, 3338, 3338, 2974, 2974, 3321, 3339, 3321, 3340, 02068 3340, 3341, 2280, 2280, 2280, 2974, 2280, 2280, 2280, 2280, 02069 2974, 2311, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 2280, 02070 2280, 2974, 2974, 2974, 2280, 2280, 2280, 2280, 2280, 2280, 02071 02072 2280, 2280, 2974, 2974, 2974, 2280, 2974, 2974, 3323, 3323, 02073 3323, 3323, 3323, 3323, 3323, 2974, 3323, 3323, 3323, 3323, 02074 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 02075 2974, 3325, 3326, 3326, 3342, 3327, 3327, 3327, 3327, 3327, 02076 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 02077 3327, 3327, 3328, 3329, 3329, 3329, 2974, 2974, 2974, 2974, 02078 2974, 3330, 3343, 2974, 2974, 2974, 3332, 3333, 3333, 2974, 02079 2974, 2974, 2974, 2974, 2974, 2974, 3334, 3334, 3334, 3334, 02080 3334, 3334, 3334, 3335, 3336, 3337, 3337, 3337, 3337, 2974, 02081 2974, 2974, 2974, 2974, 2974, 2280, 3338, 3338, 3321, 2974, 02082 02083 3341, 2280, 2280, 2280, 3344, 2974, 2974, 2974, 2974, 2974, 02084 2974, 3345, 2280, 2280, 2280, 2974, 2974, 2974, 2974, 2280, 02085 2492, 2974, 2974, 2974, 2974, 2974, 2974, 2280, 2280, 2280, 02086 2482, 2280, 2974, 2974, 2974, 3323, 3323, 3323, 3346, 3323, 02087 3323, 3323, 3323, 3323, 3323, 3342, 3327, 3327, 3327, 3327, 02088 3327, 3328, 3329, 2974, 3330, 2974, 2974, 2974, 2974, 2974, 02089 2974, 2974, 2974, 3334, 3334, 3334, 3334, 3334, 2974, 2974, 02090 2974, 2974, 2974, 2280, 3338, 3321, 2280, 2280, 2280, 2280, 02091 2974, 2974, 2974, 2974, 3347, 3345, 3347, 2974, 3348, 3348, 02092 3348, 2974, 3348, 2616, 3348, 3349, 2974, 2974, 2974, 2974, 02093 02094 2974, 2974, 2974, 2280, 2280, 2280, 2974, 3350, 2974, 3323, 02095 3323, 3323, 3323, 3323, 3323, 3327, 3327, 3328, 3329, 2974, 02096 2974, 2974, 2974, 2974, 2974, 3334, 3334, 3334, 3334, 3334, 02097 2974, 2974, 2974, 2280, 3338, 3321, 2280, 2280, 2280, 2280, 02098 2974, 2974, 2974, 2974, 2974, 3348, 2974, 3348, 3348, 2974, 02099 3348, 3348, 3351, 2974, 2974, 3348, 3348, 2974, 3349, 2974, 02100 3349, 3352, 3351, 3353, 3348, 2974, 2974, 2974, 2974, 2974, 02101 2280, 2280, 2280, 2974, 3354, 3350, 3354, 2974, 2974, 3323, 02102 3323, 3323, 3323, 3323, 3323, 3327, 3327, 3328, 2974, 2974, 02103 2974, 2974, 2974, 3334, 3334, 3334, 3334, 3334, 2974, 2694, 02104 02105 3338, 3321, 2280, 2280, 3355, 2280, 2974, 3348, 2974, 2974, 02106 2760, 2760, 3348, 2694, 2694, 2974, 3348, 3348, 3348, 3348, 02107 2974, 2974, 2974, 2974, 2280, 2280, 2974, 2974, 2974, 3323, 02108 3356, 3323, 3323, 3323, 3327, 3327, 2974, 3357, 2974, 2974, 02109 2974, 2974, 2974, 3334, 2974, 3334, 2974, 3348, 2974, 3338, 02110 3321, 2280, 3348, 3348, 2974, 2694, 2816, 2816, 2974, 3348, 02111 2974, 2974, 2974, 2280, 2974, 2974, 3323, 3357, 3357, 3358, 02112 2974, 2974, 3334, 3334, 2974, 2974, 3338, 2974, 2280, 2974, 02113 2855, 2855, 2974, 2974, 2694, 3348, 3348, 2859, 2974, 2889, 02114 2861, 2878, 2878, 2974, 2974, 2974, 2280, 2974, 3323, 2974, 02115 02116 2974, 3358, 2974, 2974, 2974, 2974, 3348, 3348, 2878, 3359, 02117 2280, 2880, 2974, 3348, 3348, 2883, 2884, 2884, 2974, 2694, 02118 2889, 2906, 2906, 3348, 2878, 2894, 2894, 2974, 2974, 2974, 02119 2280, 2974, 3323, 3348, 2906, 2280, 2913, 3348, 3348, 2919, 02120 2694, 2906, 2878, 3348, 2928, 2974, 2280, 2974, 3323, 2280, 02121 2694, 2906, 2878, 2974, 2280, 2694, 2906, 2878, 2280, 2694, 02122 2906, 2878, 2280, 2906, 2878, 2280, 2906, 2878, 2280, 2906, 02123 2280, 2280, 2974, 0, 2974, 2974, 2974, 2974, 2974, 2974, 02124 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02125 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02126 02127 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02128 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02129 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02130 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02131 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02132 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02133 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02134 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02135 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02136 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02137 02138 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02139 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02140 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02141 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02142 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02143 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02144 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02145 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02146 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02147 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02148 02149 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02150 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02151 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02152 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02153 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02154 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02155 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02156 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02157 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02158 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02159 02160 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02161 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02162 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02163 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02164 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 02165 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974 02166 } ; 02167 02168 static yyconst flex_int16_t yy_nxt[26125] = 02169 { 0, 02170 2974, 2974, 67, 68, 73, 67, 68, 73, 530, 531, 02171 67, 68, 69, 70, 76, 69, 70, 1513, 1512, 71, 02172 77, 78, 74, 188, 848, 493, 188, 79, 72, 189, 02173 494, 72, 661, 498, 73, 501, 80, 73, 499, 507, 02174 502, 190, 510, 658, 508, 848, 661, 511, 69, 515, 02175 70, 69, 232, 70, 516, 658, 77, 81, 78, 82, 02176 67, 68, 82, 519, 76, 67, 68, 523, 520, 582, 02177 77, 78, 524, 582, 85, 86, 87, 83, 90, 67, 02178 68, 90, 88, 93, 94, 582, 80, 95, 85, 86, 02179 87, 89, 249, 96, 97, 249, 91, 613, 73, 73, 02180 02181 98, 73, 73, 617, 587, 89, 77, 81, 78, 99, 02182 250, 86, 81, 87, 493, 498, 232, 74, 290, 529, 02183 532, 290, 582, 537, 655, 86, 81, 87, 538, 96, 02184 1136, 97, 100, 93, 94, 100, 74, 95, 103, 104, 02185 658, 541, 295, 96, 97, 295, 542, 2561, 105, 106, 02186 101, 110, 103, 104, 110, 107, 662, 655, 290, 99, 02187 74, 290, 105, 106, 108, 316, 495, 544, 316, 111, 02188 73, 366, 545, 73, 366, 549, 74, 553, 108, 96, 02189 550, 97, 554, 74, 105, 109, 106, 495, 74, 74, 02190 113, 67, 114, 113, 120, 67, 114, 120, 105, 109, 02191 02192 106, 115, 116, 117, 2411, 115, 116, 117, 118, 123, 02193 124, 582, 121, 129, 123, 124, 129, 119, 558, 125, 02194 126, 119, 582, 559, 125, 126, 127, 385, 841, 410, 02195 385, 130, 410, 410, 582, 128, 410, 115, 575, 116, 02196 128, 115, 629, 116, 858, 386, 630, 411, 859, 410, 02197 618, 411, 410, 132, 133, 125, 534, 126, 1647, 534, 02198 125, 493, 126, 134, 135, 136, 494, 411, 495, 535, 02199 137, 139, 132, 133, 139, 498, 67, 68, 569, 138, 02200 499, 569, 134, 135, 136, 443, 69, 70, 443, 140, 02201 881, 570, 2562, 71, 73, 67, 68, 73, 138, 134, 02202 02203 582, 135, 72, 444, 493, 69, 70, 443, 457, 494, 02204 443, 457, 74, 479, 489, 582, 479, 489, 134, 575, 02205 135, 72, 69, 576, 70, 444, 458, 881, 493, 582, 02206 577, 74, 490, 494, 592, 1109, 593, 646, 655, 663, 02207 658, 69, 647, 70, 66, 141, 142, 143, 141, 144, 02208 145, 66, 146, 144, 66, 147, 148, 149, 66, 150, 02209 151, 152, 153, 154, 155, 155, 155, 156, 151, 157, 02210 151, 158, 159, 160, 160, 160, 160, 160, 160, 160, 02211 160, 160, 161, 160, 160, 160, 160, 162, 160, 160, 02212 160, 160, 163, 144, 164, 66, 165, 166, 167, 168, 02213 02214 169, 170, 171, 172, 160, 173, 160, 160, 174, 175, 02215 176, 177, 178, 179, 180, 181, 182, 183, 184, 160, 02216 160, 160, 185, 144, 186, 187, 66, 66, 67, 68, 02217 66, 191, 145, 66, 192, 193, 194, 147, 195, 196, 02218 197, 198, 199, 200, 66, 201, 66, 66, 66, 66, 02219 202, 203, 204, 205, 72, 206, 206, 206, 206, 206, 02220 206, 206, 206, 206, 207, 206, 206, 206, 206, 208, 02221 206, 206, 206, 206, 69, 66, 70, 209, 210, 211, 02222 212, 213, 214, 215, 216, 217, 206, 218, 206, 206, 02223 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 02224 02225 229, 206, 206, 206, 185, 230, 66, 231, 233, 234, 02226 235, 236, 234, 233, 237, 233, 238, 233, 233, 239, 02227 69, 240, 233, 233, 233, 233, 233, 241, 66, 66, 02228 66, 242, 233, 233, 233, 233, 243, 244, 244, 244, 02229 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02230 244, 244, 244, 244, 244, 244, 245, 233, 246, 233, 02231 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02232 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02233 244, 244, 244, 244, 244, 244, 233, 233, 247, 248, 02234 66, 66, 67, 68, 66, 191, 145, 66, 251, 193, 02235 02236 194, 147, 195, 196, 197, 198, 199, 252, 253, 201, 02237 66, 66, 66, 66, 66, 203, 204, 205, 72, 254, 02238 254, 254, 254, 254, 254, 254, 254, 254, 255, 254, 02239 254, 254, 254, 256, 254, 254, 254, 254, 69, 66, 02240 70, 209, 257, 258, 259, 260, 261, 262, 263, 264, 02241 254, 265, 254, 254, 266, 267, 268, 269, 270, 271, 02242 272, 273, 274, 275, 276, 254, 254, 254, 66, 230, 02243 186, 231, 66, 66, 67, 68, 66, 66, 145, 66, 02244 277, 66, 66, 278, 69, 70, 66, 66, 66, 66, 02245 66, 71, 66, 66, 66, 66, 279, 66, 66, 66, 02246 02247 72, 280, 280, 280, 280, 280, 280, 280, 280, 280, 02248 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 02249 69, 66, 70, 66, 280, 280, 280, 280, 280, 280, 02250 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 02251 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 02252 281, 66, 66, 66, 66, 282, 67, 68, 282, 66, 02253 66, 66, 283, 284, 284, 66, 69, 70, 284, 66, 02254 66, 66, 66, 71, 66, 66, 66, 285, 286, 66, 02255 66, 66, 72, 287, 287, 287, 287, 287, 287, 287, 02256 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 02257 02258 287, 287, 69, 66, 70, 284, 288, 287, 287, 287, 02259 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 02260 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 02261 287, 287, 289, 66, 66, 66, 66, 291, 67, 68, 02262 291, 66, 66, 66, 292, 66, 66, 66, 69, 70, 02263 66, 66, 66, 66, 66, 71, 66, 66, 66, 66, 02264 293, 66, 66, 66, 72, 294, 294, 294, 294, 294, 02265 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 02266 294, 294, 294, 294, 69, 66, 70, 66, 294, 294, 02267 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 02268 02269 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 02270 294, 294, 294, 294, 66, 66, 66, 66, 66, 282, 02271 296, 68, 282, 66, 66, 66, 297, 284, 284, 66, 02272 69, 70, 284, 298, 66, 298, 66, 71, 66, 66, 02273 66, 285, 286, 66, 299, 66, 300, 301, 301, 301, 02274 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 02275 301, 301, 301, 301, 301, 301, 69, 66, 70, 284, 02276 301, 302, 301, 301, 301, 303, 301, 301, 301, 304, 02277 301, 301, 301, 301, 301, 301, 301, 301, 305, 301, 02278 301, 301, 301, 301, 301, 301, 289, 66, 66, 66, 02279 02280 282, 67, 68, 282, 653, 491, 816, 653, 491, 816, 02281 987, 69, 70, 290, 67, 68, 290, 988, 71, 67, 02282 68, 498, 285, 492, 69, 70, 499, 72, 817, 317, 02283 318, 74, 658, 658, 496, 285, 71, 496, 505, 582, 02284 72, 505, 319, 513, 320, 72, 513, 69, 491, 70, 02285 521, 491, 497, 521, 526, 527, 506, 526, 823, 619, 02286 69, 514, 70, 620, 654, 69, 492, 70, 522, 2411, 02287 496, 540, 528, 496, 540, 1089, 1090, 289, 621, 648, 02288 648, 648, 648, 818, 535, 655, 649, 824, 497, 497, 02289 289, 66, 306, 67, 68, 306, 66, 66, 66, 307, 02290 02291 66, 66, 66, 308, 70, 66, 298, 309, 298, 66, 02292 71, 66, 66, 66, 66, 66, 310, 66, 311, 312, 02293 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 02294 313, 313, 313, 313, 313, 313, 313, 313, 313, 69, 02295 66, 70, 66, 313, 313, 313, 313, 313, 313, 313, 02296 313, 313, 313, 313, 313, 313, 313, 313, 313, 314, 02297 313, 313, 313, 313, 315, 313, 313, 313, 313, 289, 02298 66, 66, 66, 73, 67, 68, 73, 67, 322, 821, 02299 491, 66, 821, 491, 317, 318, 547, 323, 324, 547, 02300 825, 74, 491, 825, 325, 491, 498, 319, 492, 320, 02301 02302 72, 499, 66, 326, 548, 863, 327, 67, 322, 327, 02303 492, 66, 556, 843, 848, 556, 844, 323, 324, 582, 02304 69, 1097, 70, 323, 328, 324, 560, 560, 560, 560, 02305 557, 582, 66, 326, 582, 848, 562, 560, 560, 562, 02306 560, 560, 560, 560, 572, 572, 572, 582, 561, 582, 02307 601, 582, 602, 323, 492, 324, 67, 68, 561, 603, 02308 582, 604, 561, 582, 641, 1143, 69, 70, 642, 594, 02309 573, 582, 588, 71, 589, 848, 595, 863, 582, 329, 02310 596, 330, 72, 597, 598, 1103, 582, 864, 590, 491, 02311 591, 614, 491, 610, 599, 611, 848, 331, 659, 573, 02312 02313 870, 659, 69, 600, 70, 612, 605, 492, 332, 333, 02314 334, 660, 335, 336, 606, 337, 1107, 607, 338, 871, 02315 608, 339, 609, 582, 340, 341, 342, 343, 344, 66, 02316 345, 346, 347, 345, 66, 66, 66, 348, 66, 66, 02317 66, 69, 70, 349, 66, 66, 66, 66, 71, 66, 02318 66, 66, 350, 66, 66, 66, 351, 72, 352, 352, 02319 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, 02320 352, 352, 353, 352, 352, 352, 352, 69, 66, 70, 02321 349, 352, 352, 354, 355, 356, 352, 357, 352, 352, 02322 358, 352, 352, 359, 352, 352, 360, 352, 352, 361, 02323 02324 352, 362, 363, 364, 352, 352, 352, 66, 66, 66, 02325 365, 367, 368, 369, 370, 368, 367, 367, 371, 372, 02326 367, 367, 367, 373, 374, 367, 367, 367, 367, 367, 02327 375, 367, 367, 367, 376, 376, 367, 367, 367, 377, 02328 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 02329 378, 378, 378, 378, 378, 378, 378, 378, 378, 373, 02330 367, 374, 367, 378, 378, 378, 379, 378, 378, 378, 02331 378, 378, 378, 378, 378, 378, 378, 378, 380, 378, 02332 378, 381, 382, 378, 383, 378, 378, 378, 378, 384, 02333 367, 367, 367, 387, 387, 388, 389, 387, 387, 387, 02334 02335 387, 390, 387, 387, 387, 391, 392, 387, 387, 387, 02336 387, 387, 393, 387, 387, 387, 394, 395, 387, 387, 02337 387, 396, 397, 397, 397, 397, 397, 397, 397, 397, 02338 397, 397, 397, 397, 397, 397, 398, 397, 397, 397, 02339 397, 391, 387, 392, 387, 397, 397, 399, 400, 401, 02340 397, 402, 397, 397, 403, 397, 397, 404, 397, 397, 02341 405, 397, 397, 406, 397, 407, 408, 409, 397, 397, 02342 397, 395, 387, 387, 387, 387, 387, 388, 389, 387, 02343 387, 387, 387, 412, 387, 387, 387, 413, 392, 387, 02344 387, 387, 387, 387, 393, 387, 387, 387, 387, 395, 02345 02346 387, 387, 387, 396, 414, 414, 414, 414, 414, 414, 02347 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 02348 414, 414, 414, 391, 387, 392, 387, 414, 414, 414, 02349 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 02350 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 02351 414, 414, 414, 395, 387, 387, 387, 387, 387, 388, 02352 389, 387, 387, 387, 387, 415, 387, 387, 387, 391, 02353 416, 387, 387, 387, 387, 387, 393, 387, 387, 387, 02354 387, 387, 387, 387, 387, 396, 417, 417, 417, 417, 02355 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 02356 02357 418, 417, 417, 417, 417, 391, 387, 392, 387, 417, 02358 417, 419, 420, 421, 417, 422, 417, 417, 423, 417, 02359 417, 424, 417, 417, 425, 417, 417, 426, 417, 427, 02360 428, 429, 417, 417, 417, 387, 387, 387, 387, 430, 02361 430, 431, 432, 430, 430, 433, 430, 434, 430, 430, 02362 435, 436, 437, 430, 430, 430, 430, 430, 438, 430, 02363 430, 430, 430, 430, 430, 430, 430, 439, 440, 440, 02364 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 02365 440, 440, 440, 440, 440, 440, 440, 441, 430, 442, 02366 430, 440, 440, 440, 440, 440, 440, 440, 440, 440, 02367 02368 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 02369 440, 440, 440, 440, 440, 440, 440, 430, 430, 430, 02370 430, 430, 430, 431, 432, 430, 430, 433, 430, 445, 02371 430, 430, 435, 436, 437, 430, 430, 430, 430, 430, 02372 438, 430, 430, 430, 430, 430, 430, 430, 430, 439, 02373 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 02374 446, 446, 446, 446, 446, 446, 446, 446, 446, 441, 02375 430, 442, 430, 446, 446, 446, 446, 446, 446, 446, 02376 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 02377 446, 446, 446, 446, 446, 446, 446, 446, 446, 430, 02378 02379 430, 430, 430, 447, 447, 431, 448, 447, 447, 449, 02380 447, 450, 447, 447, 447, 451, 452, 447, 447, 447, 02381 447, 447, 453, 447, 447, 447, 447, 447, 447, 447, 02382 447, 454, 455, 455, 455, 455, 455, 455, 455, 455, 02383 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 02384 455, 451, 456, 452, 447, 455, 455, 455, 455, 455, 02385 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 02386 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 02387 455, 447, 447, 447, 447, 66, 459, 460, 461, 459, 02388 66, 66, 462, 463, 66, 66, 66, 69, 70, 66, 02389 02390 66, 464, 66, 66, 71, 66, 66, 66, 66, 464, 02391 66, 66, 66, 72, 465, 465, 465, 465, 465, 465, 02392 465, 465, 465, 465, 465, 465, 465, 465, 466, 465, 02393 465, 465, 465, 69, 66, 70, 66, 465, 465, 467, 02394 468, 469, 465, 470, 465, 465, 471, 465, 465, 472, 02395 465, 465, 473, 465, 465, 474, 465, 475, 476, 477, 02396 465, 465, 465, 478, 66, 66, 66, 480, 480, 481, 02397 482, 480, 480, 480, 480, 483, 480, 480, 480, 484, 02398 485, 480, 480, 480, 480, 480, 486, 480, 480, 480, 02399 480, 480, 480, 480, 480, 487, 488, 488, 488, 488, 02400 02401 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 02402 488, 488, 488, 488, 488, 484, 480, 485, 480, 488, 02403 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 02404 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 02405 488, 488, 488, 488, 488, 480, 480, 480, 480, 560, 02406 560, 560, 560, 1011, 848, 582, 563, 578, 579, 579, 02407 578, 1009, 578, 579, 579, 578, 582, 1011, 580, 581, 02408 1010, 561, 581, 580, 581, 848, 622, 581, 2563, 583, 02409 581, 584, 582, 661, 583, 581, 584, 930, 582, 613, 02410 623, 614, 658, 748, 585, 624, 582, 931, 615, 616, 02411 02412 839, 582, 625, 839, 582, 851, 581, 1120, 643, 823, 02413 626, 581, 820, 820, 867, 868, 644, 820, 627, 565, 02414 631, 628, 645, 632, 633, 869, 848, 493, 637, 566, 02415 994, 638, 494, 827, 634, 664, 827, 635, 664, 636, 02416 639, 2176, 651, 560, 560, 651, 665, 640, 652, 995, 02417 664, 666, 667, 664, 820, 848, 828, 669, 2564, 670, 02418 497, 665, 664, 849, 561, 664, 666, 667, 850, 668, 02419 498, 668, 669, 665, 670, 499, 848, 818, 666, 667, 02420 664, 1108, 671, 664, 669, 668, 670, 703, 582, 664, 02421 852, 665, 664, 852, 672, 848, 666, 667, 493, 668, 02422 02423 665, 668, 669, 494, 670, 666, 667, 582, 853, 934, 02424 935, 669, 678, 670, 679, 668, 848, 668, 680, 668, 02425 936, 668, 668, 498, 698, 681, 699, 941, 499, 682, 02426 941, 673, 683, 700, 701, 668, 1021, 668, 668, 668, 02427 668, 668, 674, 668, 675, 668, 684, 2478, 493, 943, 02428 1021, 725, 668, 494, 668, 726, 685, 668, 676, 668, 02429 677, 668, 687, 848, 688, 686, 690, 668, 668, 668, 02430 668, 854, 1104, 689, 691, 582, 855, 692, 2565, 668, 02431 693, 668, 694, 668, 848, 668, 668, 695, 668, 696, 02432 704, 668, 702, 668, 705, 668, 707, 668, 668, 697, 02433 02434 498, 668, 668, 668, 668, 499, 973, 668, 710, 706, 02435 708, 974, 668, 980, 668, 709, 711, 668, 981, 712, 02436 713, 668, 582, 668, 714, 668, 491, 668, 715, 491, 02437 1171, 716, 717, 744, 744, 744, 744, 668, 582, 668, 02438 745, 668, 718, 668, 492, 719, 668, 720, 668, 721, 02439 1122, 1017, 722, 668, 754, 668, 754, 668, 729, 668, 02440 727, 723, 668, 730, 668, 1017, 728, 785, 724, 668, 02441 754, 668, 754, 668, 1018, 668, 731, 731, 731, 731, 02442 613, 733, 731, 731, 733, 731, 731, 731, 731, 731, 02443 731, 731, 731, 582, 951, 1031, 734, 493, 732, 492, 02444 02445 991, 582, 494, 732, 952, 749, 750, 732, 749, 1031, 02446 992, 732, 738, 739, 739, 738, 751, 747, 731, 731, 02447 747, 752, 753, 740, 1041, 1065, 1066, 669, 1065, 670, 02448 749, 750, 614, 749, 742, 497, 743, 846, 1041, 732, 02449 846, 751, 749, 750, 582, 749, 752, 753, 1019, 754, 02450 1127, 754, 669, 751, 670, 497, 1011, 1020, 752, 753, 02451 749, 750, 755, 749, 669, 754, 670, 786, 2566, 736, 02452 1011, 751, 749, 750, 756, 749, 752, 753, 1011, 754, 02453 582, 754, 669, 751, 670, 754, 582, 754, 752, 753, 02454 1100, 808, 1011, 1128, 669, 809, 670, 754, 762, 498, 02455 02456 763, 754, 1007, 754, 499, 764, 754, 1008, 754, 1101, 02457 582, 757, 765, 582, 818, 754, 766, 754, 768, 767, 02458 496, 1012, 754, 496, 754, 758, 1013, 759, 769, 1614, 02459 754, 754, 754, 754, 955, 956, 773, 754, 497, 754, 02460 770, 760, 771, 761, 774, 957, 754, 775, 754, 1022, 02461 776, 772, 777, 754, 1023, 754, 754, 778, 754, 779, 02462 903, 903, 903, 903, 754, 863, 781, 904, 782, 780, 02463 491, 1027, 754, 491, 754, 783, 784, 790, 1123, 754, 02464 754, 582, 754, 787, 754, 1027, 754, 788, 492, 1029, 02465 754, 791, 754, 754, 1028, 754, 792, 793, 1030, 582, 02466 02467 754, 826, 789, 1126, 826, 794, 754, 582, 795, 796, 02468 754, 1142, 754, 797, 754, 496, 754, 798, 496, 497, 02469 799, 800, 832, 817, 1032, 832, 754, 582, 754, 1033, 02470 754, 801, 754, 497, 802, 754, 803, 754, 804, 582, 02471 497, 805, 754, 1175, 754, 828, 754, 812, 754, 810, 02472 806, 754, 813, 754, 1039, 811, 1042, 807, 754, 2489, 02473 754, 1043, 754, 1040, 754, 875, 875, 875, 875, 1057, 02474 877, 875, 875, 877, 875, 875, 875, 875, 818, 875, 02475 875, 875, 875, 1057, 1051, 1055, 878, 876, 492, 1517, 02476 1058, 1517, 876, 1052, 1056, 1059, 876, 883, 875, 875, 02477 02478 883, 876, 883, 875, 875, 883, 883, 875, 875, 883, 02479 527, 883, 875, 875, 883, 883, 875, 875, 883, 885, 02480 978, 886, 1049, 978, 885, 2570, 886, 1050, 885, 1144, 02481 886, 1012, 582, 885, 887, 886, 1068, 885, 979, 886, 02482 883, 875, 875, 883, 883, 875, 875, 883, 582, 883, 02483 875, 875, 883, 1101, 883, 875, 875, 883, 1009, 880, 02484 1067, 1520, 885, 1520, 886, 582, 885, 1010, 886, 582, 02485 889, 885, 888, 886, 1067, 1121, 885, 890, 886, 848, 02486 1102, 891, 883, 875, 875, 883, 883, 875, 875, 883, 02487 883, 875, 875, 883, 883, 875, 875, 883, 534, 893, 02488 02489 848, 534, 491, 892, 885, 491, 886, 896, 885, 894, 02490 886, 535, 885, 582, 886, 895, 885, 2426, 886, 1139, 02491 492, 906, 875, 875, 906, 907, 907, 908, 907, 914, 02492 907, 908, 914, 582, 1130, 496, 1077, 491, 496, 497, 02493 491, 897, 898, 876, 1110, 1078, 582, 492, 902, 1513, 02494 1111, 900, 899, 497, 582, 492, 901, 908, 908, 908, 02495 908, 1512, 582, 1129, 922, 907, 908, 922, 967, 967, 02496 967, 967, 996, 1134, 496, 997, 998, 496, 505, 909, 02497 1014, 505, 497, 909, 1024, 1037, 999, 582, 1152, 1015, 02498 969, 910, 497, 1025, 911, 910, 506, 912, 911, 1037, 02499 02500 2571, 912, 913, 1016, 582, 1034, 913, 1026, 1038, 513, 02501 1148, 909, 513, 521, 1035, 1044, 521, 970, 909, 908, 02502 908, 908, 908, 910, 1045, 1047, 911, 514, 1036, 912, 02503 910, 522, 547, 911, 913, 547, 912, 1145, 1046, 1047, 02504 582, 913, 971, 971, 2577, 971, 971, 971, 1048, 971, 02505 548, 971, 971, 971, 971, 971, 971, 971, 971, 971, 02506 971, 971, 582, 1164, 582, 971, 971, 971, 971, 971, 02507 971, 526, 527, 909, 526, 1140, 982, 908, 908, 982, 02508 908, 908, 908, 908, 1528, 910, 1528, 1017, 911, 528, 02509 971, 912, 971, 971, 492, 1053, 913, 1003, 908, 908, 02510 02511 1003, 1017, 1017, 1060, 1054, 1530, 540, 1530, 1014, 540, 02512 1018, 556, 1061, 1063, 556, 497, 1017, 1015, 1016, 535, 02513 971, 971, 971, 971, 497, 1018, 1062, 1063, 2578, 557, 02514 909, 1016, 1135, 1069, 909, 1135, 1064, 560, 560, 560, 02515 560, 569, 910, 1098, 569, 911, 910, 1069, 912, 911, 02516 582, 909, 912, 913, 570, 582, 1070, 913, 582, 561, 02517 1099, 1131, 582, 910, 1132, 582, 911, 1141, 1616, 912, 02518 562, 560, 560, 562, 913, 578, 579, 579, 578, 1101, 02519 582, 1174, 1073, 1073, 1073, 1073, 580, 581, 492, 1074, 02520 581, 582, 561, 578, 579, 579, 578, 583, 581, 584, 02521 02522 1079, 1080, 1080, 1079, 580, 581, 582, 1081, 581, 572, 02523 572, 572, 1082, 570, 2579, 583, 581, 584, 1087, 1087, 02524 1087, 1087, 1083, 582, 581, 563, 578, 579, 579, 578, 02525 1151, 1604, 582, 1105, 1106, 573, 582, 580, 581, 1159, 02526 561, 581, 581, 579, 579, 579, 579, 582, 583, 581, 02527 886, 582, 1072, 1165, 580, 581, 1094, 1094, 581, 582, 02528 1176, 1095, 1095, 582, 573, 583, 581, 1124, 582, 1133, 02529 1125, 1096, 1137, 1146, 1101, 581, 582, 1149, 582, 1138, 02530 1085, 2580, 582, 1150, 1160, 582, 1158, 1147, 1153, 1154, 02531 582, 1155, 581, 1101, 582, 1156, 1162, 1477, 566, 1166, 02532 02533 1169, 1157, 1161, 582, 582, 1167, 1478, 582, 582, 1172, 02534 582, 1177, 1163, 1168, 1178, 582, 1180, 2581, 1173, 1170, 02535 1184, 1185, 881, 614, 1094, 1112, 1113, 1114, 1114, 1113, 02536 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1115, 1116, 1112, 02537 1112, 1116, 1112, 1112, 1112, 1475, 1475, 582, 1117, 1116, 02538 1118, 1112, 1112, 1112, 648, 648, 648, 648, 823, 881, 02539 1380, 649, 2974, 2974, 2974, 2974, 1381, 653, 653, 2974, 02540 653, 653, 1617, 1112, 1112, 1116, 1112, 1181, 1182, 1182, 02541 1181, 582, 1480, 1281, 1281, 1281, 1281, 1481, 580, 581, 02542 1282, 1371, 581, 651, 560, 560, 651, 1119, 1513, 652, 02543 02544 581, 886, 1512, 1112, 1112, 1112, 1112, 664, 1605, 659, 02545 664, 497, 659, 664, 1404, 561, 664, 1188, 664, 2582, 02546 1188, 664, 660, 1538, 1479, 1538, 581, 654, 654, 669, 02547 660, 670, 1405, 664, 1453, 669, 664, 670, 1479, 668, 02548 669, 668, 670, 664, 665, 668, 664, 1259, 582, 666, 02549 667, 668, 1454, 664, 665, 669, 664, 670, 821, 666, 02550 667, 821, 2583, 664, 665, 669, 664, 670, 825, 666, 02551 667, 825, 1187, 1631, 665, 669, 1260, 670, 668, 666, 02552 667, 664, 668, 821, 664, 669, 821, 670, 668, 1193, 02553 664, 698, 665, 664, 1261, 2974, 816, 666, 667, 816, 02554 02555 1511, 665, 582, 669, 1466, 670, 666, 667, 825, 1497, 02556 1615, 825, 669, 664, 670, 1194, 664, 664, 817, 668, 02557 664, 1264, 1467, 1378, 665, 668, 1379, 1498, 665, 666, 02558 667, 668, 1195, 666, 667, 669, 1540, 670, 1540, 669, 02559 664, 670, 823, 664, 664, 1197, 668, 664, 668, 2974, 02560 1196, 665, 668, 1265, 1511, 665, 666, 667, 668, 930, 02561 666, 667, 669, 1548, 670, 1548, 669, 664, 670, 668, 02562 664, 668, 848, 818, 1258, 668, 1838, 1197, 665, 664, 02563 1387, 1197, 664, 666, 667, 1388, 668, 1198, 668, 669, 02564 665, 670, 1266, 848, 664, 666, 667, 664, 668, 827, 02565 02566 1200, 669, 827, 670, 664, 665, 1199, 664, 2974, 839, 02567 666, 667, 839, 1556, 2974, 665, 669, 1262, 670, 1556, 02568 666, 667, 828, 668, 582, 668, 669, 664, 670, 668, 02569 664, 1203, 1550, 1263, 1550, 668, 1201, 1202, 665, 582, 02570 820, 820, 1269, 666, 667, 820, 1204, 582, 668, 669, 02571 668, 670, 1652, 1400, 668, 664, 1400, 2584, 664, 664, 02572 668, 1270, 664, 1648, 1435, 699, 665, 1435, 1519, 1205, 02573 665, 666, 667, 1606, 1519, 666, 667, 669, 1518, 670, 02574 1518, 669, 820, 670, 1206, 1564, 818, 1564, 886, 582, 02575 1207, 1208, 1209, 1208, 1208, 1209, 1208, 1208, 1208, 1208, 02576 02577 1208, 1208, 1208, 1210, 1208, 1208, 1208, 1208, 1211, 1212, 02578 1208, 1519, 1518, 582, 1213, 1208, 1214, 1208, 1208, 1208, 02579 1216, 664, 1625, 668, 664, 1272, 1101, 1400, 1217, 668, 02580 1400, 582, 665, 664, 1273, 668, 664, 666, 667, 1208, 02581 1208, 1208, 1208, 669, 665, 670, 668, 582, 1267, 666, 02582 667, 664, 668, 1101, 664, 669, 1268, 670, 668, 614, 02583 1981, 832, 665, 1215, 832, 1982, 1485, 666, 667, 1208, 02584 1208, 1208, 1208, 669, 664, 670, 668, 664, 1274, 497, 02585 1485, 668, 668, 1276, 828, 665, 1277, 668, 668, 1486, 02586 666, 667, 1218, 668, 664, 582, 669, 664, 670, 978, 02587 02588 1219, 582, 978, 1220, 664, 665, 1501, 664, 1101, 1502, 02589 666, 667, 582, 1621, 1221, 665, 669, 979, 670, 664, 02590 666, 667, 664, 2016, 614, 668, 669, 668, 670, 664, 02591 665, 668, 664, 582, 1271, 666, 667, 668, 582, 1222, 02592 665, 669, 668, 670, 668, 666, 667, 664, 668, 1641, 02593 664, 669, 1275, 670, 668, 668, 1278, 668, 665, 664, 02594 1223, 668, 664, 666, 667, 582, 1566, 668, 1566, 669, 02595 665, 670, 1224, 1620, 664, 666, 667, 664, 582, 1225, 02596 668, 669, 1279, 670, 664, 665, 668, 664, 582, 582, 02597 666, 667, 668, 1507, 1226, 665, 669, 1227, 670, 1628, 02598 02599 666, 667, 1238, 1239, 1239, 1238, 669, 1507, 670, 1627, 02600 1638, 1509, 1228, 665, 582, 1509, 1508, 1197, 666, 667, 02601 1573, 1651, 1573, 1542, 669, 930, 670, 1252, 517, 1229, 02602 1230, 1231, 1230, 1230, 1231, 1230, 1230, 1230, 1230, 1230, 02603 1230, 1230, 1232, 1230, 1230, 1230, 1230, 1233, 1234, 1230, 02604 1482, 1237, 1505, 1235, 1230, 1236, 1230, 1230, 1230, 1483, 02605 664, 1505, 582, 664, 582, 1240, 731, 731, 731, 731, 02606 1626, 665, 1241, 1484, 2026, 1506, 666, 667, 1230, 1230, 02607 1230, 1230, 669, 664, 670, 582, 664, 582, 732, 1656, 02608 1288, 1289, 1289, 1288, 665, 733, 731, 731, 733, 666, 02609 02610 667, 740, 582, 846, 1629, 669, 846, 670, 1230, 1230, 02611 1230, 1230, 664, 492, 1630, 664, 664, 732, 1844, 664, 02612 582, 497, 582, 665, 1845, 1242, 1514, 665, 666, 667, 02613 1386, 848, 666, 667, 669, 1514, 670, 582, 669, 664, 02614 670, 1645, 664, 664, 1386, 1583, 664, 582, 1583, 1016, 02615 665, 613, 848, 1243, 665, 666, 667, 1101, 1513, 666, 02616 667, 669, 1512, 670, 582, 669, 664, 670, 1659, 664, 02617 664, 941, 1632, 664, 941, 941, 1244, 665, 941, 582, 02618 818, 665, 666, 667, 1509, 1509, 666, 667, 669, 1197, 02619 670, 1636, 669, 943, 670, 664, 1558, 943, 664, 1384, 02620 02621 848, 543, 1245, 1934, 1246, 1934, 665, 664, 1385, 582, 02622 664, 666, 667, 1284, 1284, 1284, 1284, 669, 665, 670, 02623 734, 848, 1247, 666, 667, 664, 1248, 582, 664, 669, 02624 582, 670, 582, 582, 664, 732, 665, 664, 1633, 1637, 02625 1643, 666, 667, 1392, 848, 665, 1101, 669, 582, 670, 02626 666, 667, 738, 739, 739, 738, 669, 1392, 670, 1650, 02627 1249, 750, 750, 740, 750, 848, 1393, 1250, 738, 739, 02628 739, 738, 751, 1251, 742, 1661, 743, 752, 753, 740, 02629 739, 739, 739, 739, 582, 1253, 738, 739, 739, 738, 02630 742, 740, 1254, 736, 1255, 582, 1639, 740, 1256, 582, 02631 02632 1525, 1515, 742, 941, 1257, 1101, 941, 582, 742, 1525, 02633 743, 744, 744, 744, 744, 1515, 582, 614, 745, 2974, 02634 2974, 2974, 2974, 1026, 1018, 943, 2974, 747, 731, 731, 02635 747, 749, 750, 1665, 749, 749, 750, 582, 749, 1670, 02636 826, 2057, 751, 826, 582, 497, 751, 752, 753, 732, 02637 582, 752, 753, 669, 582, 670, 1655, 669, 497, 670, 02638 749, 750, 817, 749, 749, 750, 1640, 749, 1513, 1512, 02639 1658, 751, 1512, 1509, 1509, 751, 752, 753, 1389, 848, 02640 752, 753, 669, 582, 670, 543, 669, 1390, 670, 951, 02641 1559, 1689, 749, 750, 1689, 749, 749, 750, 1690, 749, 02642 02643 848, 1391, 781, 751, 1663, 582, 1291, 751, 752, 753, 02644 1513, 1512, 752, 753, 669, 1512, 670, 818, 669, 1512, 02645 670, 749, 750, 1649, 749, 749, 750, 582, 749, 582, 02646 852, 582, 751, 852, 582, 848, 751, 752, 753, 1644, 02647 613, 752, 753, 669, 1292, 670, 1526, 669, 853, 670, 02648 1657, 749, 750, 1657, 749, 1662, 848, 1512, 582, 1671, 02649 1526, 1293, 751, 749, 750, 1294, 749, 752, 753, 1028, 02650 1646, 1516, 1516, 669, 751, 670, 1295, 1535, 2585, 752, 02651 753, 749, 750, 1558, 749, 669, 1535, 670, 543, 1295, 02652 749, 750, 751, 749, 582, 1545, 582, 752, 753, 1536, 02653 02654 1036, 751, 582, 669, 1545, 670, 752, 753, 875, 875, 02655 875, 875, 669, 1536, 670, 582, 749, 750, 1046, 749, 02656 582, 1296, 1038, 1678, 1660, 749, 750, 751, 749, 1297, 02657 876, 1676, 752, 753, 1519, 1518, 751, 1298, 669, 1682, 02658 670, 752, 753, 1518, 582, 749, 750, 669, 749, 670, 02659 883, 875, 875, 883, 749, 750, 751, 749, 582, 1299, 02660 1300, 752, 753, 582, 1561, 751, 1672, 669, 1301, 670, 02661 752, 753, 885, 1561, 886, 1664, 669, 1302, 670, 749, 02662 750, 1518, 749, 749, 750, 1509, 749, 1062, 582, 1509, 02663 751, 582, 1546, 2486, 751, 752, 753, 517, 1669, 752, 02664 02665 753, 669, 1543, 670, 1960, 669, 1546, 670, 1959, 951, 02666 1303, 1304, 1673, 1065, 1066, 1048, 1065, 1305, 1208, 1306, 02667 1307, 1208, 1306, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 02668 1308, 1208, 1208, 1208, 1208, 1309, 1310, 1208, 1562, 582, 02669 2058, 1213, 1208, 1214, 1208, 1208, 1208, 1764, 1312, 582, 02670 1764, 582, 1562, 582, 1313, 877, 875, 875, 877, 749, 02671 750, 1064, 749, 1101, 1618, 1619, 1208, 1208, 1208, 1208, 02672 751, 749, 750, 492, 749, 752, 753, 876, 1936, 1668, 02673 1936, 669, 751, 670, 582, 1519, 1518, 752, 753, 1518, 02674 1311, 749, 750, 669, 749, 670, 1208, 1208, 1208, 1208, 02675 02676 749, 750, 751, 749, 582, 991, 1675, 752, 753, 1400, 02677 1519, 751, 1400, 669, 1518, 670, 752, 753, 1509, 1509, 02678 749, 750, 669, 749, 670, 1677, 1314, 1509, 582, 1315, 02679 1532, 751, 1518, 582, 1316, 509, 752, 753, 749, 750, 02680 1674, 749, 669, 1135, 670, 582, 1135, 749, 750, 751, 02681 749, 1954, 614, 1954, 752, 753, 1317, 582, 751, 1679, 02682 669, 1666, 670, 752, 753, 1509, 1318, 749, 750, 669, 02683 749, 670, 1667, 988, 903, 903, 903, 903, 751, 749, 02684 750, 904, 749, 752, 753, 1516, 1516, 582, 1319, 669, 02685 751, 670, 582, 1513, 1512, 752, 753, 543, 1320, 1642, 02686 02687 1680, 669, 1559, 670, 1925, 749, 750, 1957, 749, 1957, 02688 1995, 582, 1321, 1926, 1926, 1322, 751, 749, 750, 1681, 02689 749, 752, 753, 883, 875, 875, 883, 669, 751, 670, 02690 1513, 1516, 1323, 752, 753, 1516, 1962, 1295, 582, 669, 02691 1961, 670, 1512, 1542, 582, 876, 1996, 886, 517, 1324, 02692 1230, 1325, 1326, 1230, 1325, 1230, 1230, 1230, 1230, 1230, 02693 1230, 1230, 1327, 1230, 1230, 1230, 1230, 1328, 1329, 1230, 02694 582, 614, 1330, 1235, 1230, 1236, 1230, 1230, 1230, 582, 02695 1331, 1960, 1959, 1413, 1413, 1413, 1413, 1332, 1519, 1518, 02696 878, 749, 750, 1653, 749, 582, 1654, 2003, 1230, 1230, 02697 02698 1230, 1230, 751, 749, 750, 876, 749, 752, 753, 903, 02699 903, 903, 903, 669, 751, 670, 904, 1962, 1961, 752, 02700 753, 749, 750, 1686, 749, 669, 1686, 670, 1230, 1230, 02701 1230, 1230, 751, 749, 750, 1687, 749, 752, 753, 2974, 02702 2974, 2974, 2974, 669, 751, 670, 2974, 582, 1516, 752, 02703 753, 1188, 1516, 2052, 1188, 669, 1333, 670, 749, 750, 02704 517, 749, 582, 880, 660, 1543, 2006, 749, 750, 751, 02705 749, 582, 1998, 1334, 752, 753, 749, 750, 751, 749, 02706 669, 2005, 670, 752, 753, 1335, 2008, 751, 582, 669, 02707 582, 670, 752, 753, 749, 750, 527, 749, 669, 1551, 02708 02709 670, 1567, 1568, 2014, 1567, 751, 1295, 582, 1551, 582, 02710 752, 753, 848, 2023, 749, 750, 669, 749, 670, 1569, 02711 1931, 1336, 1552, 749, 750, 751, 749, 582, 1337, 1931, 02712 752, 753, 1338, 848, 751, 1101, 669, 1101, 670, 752, 02713 753, 749, 750, 1484, 749, 669, 1882, 670, 582, 1882, 02714 1339, 1513, 751, 749, 750, 1856, 749, 752, 753, 967, 02715 967, 967, 967, 669, 751, 670, 527, 2033, 1883, 752, 02716 753, 749, 750, 1973, 749, 669, 1856, 670, 582, 1340, 02717 1960, 969, 751, 1341, 1861, 525, 1861, 752, 753, 1342, 02718 525, 848, 1959, 669, 1343, 670, 1513, 1512, 749, 750, 02719 02720 1512, 749, 883, 875, 875, 883, 1509, 1571, 970, 751, 02721 1852, 1932, 848, 1344, 752, 753, 749, 750, 1853, 749, 02722 669, 1571, 670, 847, 885, 1932, 886, 751, 995, 1345, 02723 1070, 1852, 752, 753, 1486, 1346, 749, 750, 669, 749, 02724 670, 1347, 1974, 1512, 1974, 1509, 1509, 751, 749, 750, 02725 582, 749, 752, 753, 1509, 582, 2013, 509, 669, 751, 02726 670, 1348, 1533, 1513, 752, 753, 582, 1512, 1295, 1512, 02727 669, 2040, 670, 749, 750, 1101, 749, 967, 967, 967, 02728 967, 1519, 1349, 1519, 751, 749, 750, 1863, 749, 752, 02729 753, 2012, 1509, 1518, 1350, 669, 751, 670, 582, 969, 02730 02731 1352, 752, 753, 749, 750, 1962, 749, 669, 1863, 670, 02732 1512, 1960, 1351, 848, 751, 1435, 1353, 1961, 1435, 752, 02733 753, 749, 750, 1959, 749, 669, 970, 670, 1073, 1073, 02734 1073, 1073, 751, 1354, 848, 1074, 2027, 752, 753, 886, 02735 2029, 749, 750, 669, 749, 670, 1239, 1239, 1239, 1239, 02736 1355, 582, 751, 749, 750, 582, 749, 752, 753, 1516, 02737 1516, 1958, 1958, 669, 751, 670, 996, 1356, 1516, 752, 02738 753, 1532, 2017, 543, 582, 669, 509, 670, 543, 749, 02739 750, 1357, 749, 749, 750, 1864, 749, 1864, 1583, 1358, 02740 751, 1583, 2586, 1359, 751, 752, 753, 2018, 582, 752, 02741 02742 753, 669, 2021, 670, 582, 669, 1516, 670, 749, 750, 02743 582, 749, 1360, 2004, 1509, 1509, 782, 2034, 1509, 751, 02744 1361, 582, 2019, 1509, 752, 753, 1522, 1509, 582, 1509, 02745 669, 500, 670, 749, 750, 1928, 749, 1857, 848, 1362, 02746 971, 1509, 1509, 1364, 751, 1509, 1857, 582, 1363, 752, 02747 753, 749, 750, 500, 749, 669, 2287, 670, 1523, 848, 02748 1391, 1509, 751, 749, 750, 2587, 749, 752, 753, 527, 02749 1509, 527, 1553, 669, 751, 670, 1365, 582, 2020, 752, 02750 753, 883, 875, 875, 883, 669, 1553, 670, 1509, 883, 02751 875, 875, 883, 1366, 1435, 1554, 1367, 1435, 883, 875, 02752 02753 875, 883, 582, 885, 2024, 886, 883, 875, 875, 883, 02754 1368, 885, 582, 886, 883, 875, 875, 883, 886, 893, 02755 885, 1101, 886, 1369, 883, 875, 875, 883, 885, 582, 02756 886, 2038, 2974, 2974, 2974, 2974, 885, 582, 886, 2974, 02757 2007, 883, 875, 875, 883, 2588, 885, 1977, 886, 1977, 02758 1417, 883, 875, 875, 883, 1416, 883, 875, 875, 883, 02759 1858, 848, 2046, 885, 582, 886, 906, 875, 875, 906, 02760 2030, 1418, 2032, 885, 1858, 886, 2009, 582, 885, 582, 02761 886, 2589, 848, 1393, 497, 1419, 582, 582, 876, 2011, 02762 1420, 1230, 1421, 1422, 1422, 1421, 1230, 1230, 1230, 1230, 02763 02764 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 02765 1230, 893, 1426, 2035, 1423, 1230, 1424, 1230, 1230, 1230, 02766 582, 1425, 883, 875, 875, 883, 883, 875, 875, 883, 02767 883, 875, 875, 883, 883, 875, 875, 883, 1101, 1230, 02768 1230, 1230, 1230, 2049, 885, 582, 886, 2053, 885, 582, 02769 886, 582, 885, 2050, 886, 991, 885, 582, 886, 883, 02770 875, 875, 883, 582, 2022, 883, 875, 875, 883, 1230, 02771 1230, 1230, 1230, 907, 907, 908, 907, 908, 908, 908, 02772 908, 885, 582, 886, 1428, 613, 2047, 885, 1427, 886, 02773 914, 907, 908, 914, 922, 907, 908, 922, 1430, 582, 02774 02775 1513, 1512, 1429, 1431, 967, 967, 967, 967, 492, 1512, 02776 582, 2028, 497, 1080, 1080, 1080, 1080, 1516, 1516, 1432, 02777 582, 1516, 1433, 2039, 1434, 582, 969, 909, 613, 1522, 02778 2042, 909, 2590, 664, 500, 1083, 664, 582, 2041, 910, 02779 1153, 582, 911, 910, 909, 912, 911, 1512, 909, 912, 02780 913, 582, 2048, 970, 913, 669, 910, 670, 1135, 911, 02781 910, 1135, 912, 911, 1516, 582, 912, 913, 2003, 614, 02782 582, 913, 971, 971, 2593, 971, 971, 971, 2043, 971, 02783 582, 971, 971, 971, 971, 971, 971, 971, 971, 971, 02784 971, 971, 582, 2044, 582, 971, 971, 971, 971, 971, 02785 02786 971, 982, 908, 908, 982, 1588, 1588, 1588, 1588, 1516, 02787 1516, 2045, 1589, 1516, 2002, 1516, 1516, 2488, 582, 492, 02788 971, 500, 971, 971, 1516, 582, 1523, 509, 1288, 1289, 02789 1289, 1288, 1533, 582, 2061, 1087, 1087, 1087, 1087, 740, 02790 582, 2293, 563, 582, 2059, 1003, 908, 908, 1003, 582, 02791 971, 971, 971, 971, 1962, 909, 1516, 561, 1281, 1281, 02792 1281, 1281, 1516, 497, 2054, 1282, 1961, 910, 582, 2055, 02793 911, 2060, 1764, 912, 2056, 1764, 582, 614, 913, 1230, 02794 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 02795 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 909, 02796 02797 848, 582, 1230, 1230, 1230, 1230, 1230, 1230, 2288, 1076, 02798 1764, 910, 1513, 1764, 911, 566, 1856, 912, 1581, 1581, 02799 1581, 848, 913, 1574, 1575, 1575, 1574, 1230, 1230, 1230, 02800 1230, 1600, 1601, 1601, 1600, 581, 582, 1856, 581, 578, 02801 579, 579, 578, 848, 1581, 561, 581, 886, 2309, 848, 02802 580, 581, 664, 1602, 581, 664, 1854, 1230, 1230, 1230, 02803 1230, 583, 581, 584, 848, 2280, 1578, 1579, 1579, 1578, 02804 848, 1960, 581, 1581, 669, 1959, 670, 848, 581, 1960, 02805 582, 581, 823, 2191, 1079, 1080, 1080, 1079, 581, 581, 02806 886, 1081, 1762, 731, 731, 1762, 1082, 570, 848, 1577, 02807 02808 1080, 1080, 1080, 1080, 2191, 1962, 1083, 1582, 664, 1961, 02809 582, 664, 2974, 2974, 732, 581, 1585, 1080, 1080, 1585, 02810 1960, 1959, 1083, 1081, 1595, 1595, 1595, 1595, 1082, 2553, 02811 669, 1596, 670, 1473, 582, 1586, 1586, 1586, 1083, 1094, 02812 1094, 2300, 2243, 2243, 1095, 1095, 561, 2496, 578, 579, 02813 579, 578, 1882, 664, 1096, 1882, 664, 1962, 1961, 580, 02814 581, 1094, 1094, 581, 1085, 2266, 1095, 1095, 1685, 2283, 02815 583, 581, 584, 582, 2266, 669, 1096, 670, 664, 664, 02816 1085, 664, 664, 582, 2974, 2974, 2974, 2974, 2267, 665, 02817 1597, 2974, 1603, 2594, 666, 667, 1085, 581, 2281, 2595, 02818 02819 669, 669, 670, 670, 1598, 1101, 582, 1094, 1607, 1608, 02820 1609, 1609, 1608, 1607, 1607, 1607, 1607, 1607, 1607, 1607, 02821 1610, 1611, 1607, 1607, 1611, 1607, 1607, 1607, 2296, 1094, 02822 582, 1612, 1611, 1613, 1607, 1607, 1607, 1289, 1289, 1289, 02823 1289, 1238, 1239, 1239, 1238, 582, 582, 1693, 740, 1622, 02824 1623, 1623, 1622, 1960, 1959, 614, 1607, 1607, 1611, 1607, 02825 1624, 581, 1959, 669, 581, 670, 1567, 1568, 2475, 1567, 02826 2284, 583, 581, 886, 582, 1769, 1769, 1769, 1769, 1623, 02827 1623, 1623, 1623, 582, 1569, 2305, 1607, 1607, 1607, 1607, 02828 1624, 581, 664, 582, 581, 664, 664, 1770, 581, 664, 02829 02830 1959, 583, 581, 665, 2301, 582, 582, 665, 666, 667, 02831 2289, 582, 666, 667, 669, 1519, 670, 2317, 669, 1518, 02832 670, 1518, 1599, 2974, 1608, 1101, 2974, 1608, 581, 1112, 02833 1113, 1114, 1114, 1634, 1112, 1112, 1112, 1112, 1112, 1112, 02834 1112, 1115, 1116, 1112, 1112, 1116, 1112, 1112, 1112, 2310, 02835 2605, 582, 1117, 1116, 1118, 1112, 1112, 1112, 1288, 1289, 02836 1289, 1288, 1518, 1694, 1686, 2260, 1695, 1686, 2260, 740, 02837 1135, 579, 579, 1135, 2230, 2286, 1687, 1112, 1112, 1116, 02838 1112, 580, 581, 2261, 1400, 581, 1635, 1400, 1181, 1182, 02839 1182, 1181, 583, 581, 886, 875, 875, 875, 875, 580, 02840 02841 581, 582, 1608, 581, 2311, 1608, 582, 1112, 1112, 1112, 02842 1112, 581, 886, 1182, 1182, 1182, 1182, 876, 2051, 581, 02843 1181, 1182, 1182, 1181, 580, 581, 1686, 582, 581, 1686, 02844 664, 580, 581, 664, 2474, 581, 581, 581, 1687, 664, 02845 2194, 665, 664, 581, 886, 582, 666, 667, 664, 2297, 02846 665, 664, 669, 582, 670, 666, 667, 1519, 1518, 665, 02847 2501, 669, 581, 670, 666, 667, 1518, 1960, 1959, 581, 02848 669, 1959, 670, 2602, 1692, 1696, 1697, 1696, 1696, 1697, 02849 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1698, 1696, 1696, 02850 1696, 1696, 1699, 1700, 1696, 2316, 582, 582, 1701, 1696, 02851 02852 1702, 1696, 1696, 1696, 1518, 1197, 1588, 1588, 1588, 1588, 02853 1101, 1703, 2974, 1589, 1959, 2974, 664, 1509, 1516, 664, 02854 2626, 1852, 1860, 1696, 1696, 1696, 1696, 665, 664, 847, 02855 1853, 664, 666, 667, 1854, 847, 582, 582, 669, 665, 02856 670, 2304, 1852, 1860, 666, 667, 750, 750, 664, 750, 02857 669, 664, 670, 1696, 1696, 1696, 1696, 751, 664, 665, 02858 582, 664, 752, 753, 666, 667, 2228, 582, 1704, 665, 02859 669, 2498, 670, 1958, 666, 667, 664, 1958, 2328, 664, 02860 669, 2302, 670, 582, 699, 517, 1076, 665, 664, 668, 02861 517, 664, 666, 667, 613, 1581, 1581, 1581, 669, 665, 02862 02863 670, 2341, 1705, 664, 666, 667, 664, 2627, 582, 2298, 02864 669, 1516, 670, 664, 665, 1860, 664, 2299, 2306, 666, 02865 667, 1581, 582, 847, 665, 669, 698, 670, 1854, 666, 02866 667, 750, 750, 2633, 750, 669, 1860, 670, 1567, 1568, 02867 2318, 1567, 751, 664, 582, 1706, 664, 752, 753, 1519, 02868 1581, 613, 582, 1863, 665, 1709, 1569, 1707, 1708, 666, 02869 667, 664, 582, 2065, 664, 669, 2065, 670, 1689, 1710, 02870 664, 1689, 665, 664, 1863, 1690, 613, 666, 667, 2066, 02871 2067, 665, 582, 669, 613, 670, 666, 667, 664, 582, 02872 2974, 664, 669, 2974, 670, 2507, 1711, 2974, 664, 665, 02873 02874 1400, 664, 1962, 1400, 666, 667, 2193, 2639, 664, 665, 02875 669, 664, 670, 1712, 666, 667, 582, 1101, 664, 665, 02876 669, 664, 670, 2630, 666, 667, 699, 2193, 2974, 665, 02877 669, 2974, 670, 664, 666, 667, 664, 1519, 1518, 582, 02878 669, 1518, 670, 664, 665, 823, 664, 1962, 1961, 666, 02879 667, 1961, 1197, 2303, 665, 669, 2226, 670, 582, 666, 02880 667, 1713, 2320, 582, 1714, 669, 664, 670, 2456, 664, 02881 2456, 1284, 1284, 1284, 1284, 2405, 1608, 665, 734, 1608, 02882 1962, 1961, 666, 667, 1518, 1716, 2401, 1715, 669, 1961, 02883 670, 2227, 2480, 732, 1961, 1717, 1208, 1209, 1208, 1208, 02884 02885 1718, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1210, 1208, 02886 1208, 1208, 1208, 1211, 1212, 1208, 1958, 1958, 582, 1213, 02887 1208, 1214, 1208, 1208, 1208, 1958, 664, 1961, 509, 664, 02888 2653, 2974, 1722, 509, 2974, 1101, 582, 665, 664, 2294, 02889 582, 664, 666, 667, 1208, 1208, 1208, 1208, 669, 665, 02890 670, 736, 582, 1719, 666, 667, 664, 2490, 2561, 664, 02891 669, 2974, 670, 1958, 2974, 2311, 2307, 665, 664, 582, 02892 2654, 664, 666, 667, 1208, 1208, 1208, 1208, 669, 665, 02893 670, 582, 1720, 2308, 666, 667, 664, 2229, 2974, 664, 02894 669, 2974, 670, 2260, 1721, 2314, 2260, 665, 664, 582, 02895 02896 582, 664, 666, 667, 1575, 1575, 1575, 1575, 669, 665, 02897 670, 2261, 1723, 613, 666, 667, 581, 582, 582, 581, 02898 669, 664, 670, 2477, 664, 664, 561, 581, 664, 2322, 02899 582, 930, 665, 582, 699, 2326, 665, 666, 667, 582, 02900 2479, 666, 667, 669, 2003, 670, 2232, 669, 582, 670, 02901 1101, 614, 1724, 581, 2974, 2655, 582, 2974, 1725, 1230, 02902 1231, 1230, 1230, 1231, 1230, 1230, 1230, 1230, 1230, 1230, 02903 1230, 1232, 1230, 1230, 1230, 1230, 1233, 1234, 1230, 698, 02904 582, 1728, 1235, 1230, 1236, 1230, 1230, 1230, 2506, 664, 02905 582, 2974, 664, 848, 2974, 2974, 2974, 2974, 2974, 2323, 02906 02907 665, 664, 2974, 2482, 664, 666, 667, 1230, 1230, 1230, 02908 1230, 669, 665, 670, 848, 2563, 1726, 666, 667, 648, 02909 648, 648, 648, 669, 930, 670, 649, 883, 875, 875, 02910 883, 664, 582, 2457, 664, 2457, 2327, 1230, 1230, 1230, 02911 1230, 1727, 665, 664, 2195, 582, 664, 666, 667, 876, 02912 863, 886, 582, 669, 665, 670, 2231, 582, 664, 666, 02913 667, 664, 582, 823, 1729, 669, 2483, 670, 664, 665, 02914 2974, 664, 1960, 2974, 666, 667, 2191, 2495, 664, 665, 02915 669, 664, 670, 2484, 666, 667, 582, 1730, 664, 665, 02916 669, 664, 670, 582, 666, 667, 2491, 2191, 664, 665, 02917 02918 669, 664, 670, 2260, 666, 667, 2260, 2485, 2652, 665, 02919 669, 1731, 670, 664, 666, 667, 664, 2487, 582, 1733, 02920 669, 2261, 670, 1962, 665, 664, 1732, 2193, 664, 666, 02921 667, 1601, 1601, 1601, 1601, 669, 665, 670, 2233, 2596, 02922 664, 666, 667, 664, 582, 1960, 1959, 669, 2193, 670, 02923 1734, 665, 664, 1993, 1959, 664, 666, 667, 1735, 582, 02924 2657, 1736, 669, 665, 670, 2603, 582, 664, 666, 667, 02925 664, 582, 1507, 582, 669, 1513, 670, 664, 665, 1512, 02926 664, 1512, 1737, 666, 667, 1738, 1507, 664, 665, 669, 02927 664, 670, 1959, 666, 667, 582, 2616, 664, 665, 669, 02928 02929 664, 670, 2628, 666, 667, 1739, 2658, 2659, 665, 669, 02930 2499, 670, 613, 666, 667, 2604, 2660, 582, 1740, 669, 02931 664, 670, 1512, 664, 664, 2591, 2592, 664, 2591, 664, 02932 664, 665, 664, 664, 1197, 665, 666, 667, 1741, 1960, 02933 666, 667, 669, 1959, 670, 1959, 669, 664, 670, 582, 02934 664, 669, 669, 670, 670, 1742, 664, 582, 665, 664, 02935 582, 2011, 1743, 666, 667, 582, 582, 665, 582, 669, 02936 2661, 670, 666, 667, 664, 1519, 1744, 664, 669, 1518, 02937 670, 1518, 2500, 2614, 664, 665, 1959, 664, 1101, 664, 02938 666, 667, 664, 2502, 1745, 665, 669, 1101, 670, 664, 02939 02940 666, 667, 664, 2662, 582, 1101, 669, 1746, 670, 582, 02941 665, 669, 582, 670, 664, 666, 667, 664, 1747, 582, 02942 582, 669, 1518, 670, 664, 665, 1748, 664, 1749, 1101, 02943 666, 667, 582, 582, 614, 665, 669, 1101, 670, 664, 02944 666, 667, 664, 2615, 2620, 2663, 669, 582, 670, 664, 02945 665, 1750, 664, 582, 582, 666, 667, 2631, 2064, 664, 02946 665, 669, 664, 670, 582, 666, 667, 2632, 1751, 1608, 02947 665, 669, 1608, 670, 664, 666, 667, 664, 1101, 1101, 02948 1752, 669, 1509, 670, 1101, 665, 1509, 2629, 1509, 1753, 02949 666, 667, 582, 2664, 971, 1197, 669, 664, 670, 1929, 02950 02951 664, 2324, 2325, 2325, 2324, 1754, 664, 2619, 665, 664, 02952 2619, 2665, 2666, 666, 667, 664, 613, 665, 664, 669, 02953 2497, 670, 666, 667, 664, 1755, 665, 664, 669, 1509, 02954 670, 666, 667, 664, 1756, 665, 664, 669, 582, 670, 02955 666, 667, 664, 2667, 665, 664, 669, 2668, 670, 666, 02956 667, 2065, 2222, 665, 2065, 669, 2222, 670, 666, 667, 02957 1962, 1961, 1757, 930, 669, 951, 670, 2066, 2067, 1961, 02958 698, 1766, 1766, 1766, 1766, 1502, 1758, 2248, 1767, 749, 02959 750, 991, 749, 2248, 2457, 1759, 2671, 1761, 749, 750, 02960 751, 749, 2672, 732, 1760, 752, 753, 749, 750, 751, 02961 02962 749, 669, 2673, 670, 752, 753, 664, 1961, 751, 664, 02963 669, 1092, 670, 752, 753, 749, 750, 582, 749, 669, 02964 582, 670, 582, 1771, 749, 750, 751, 749, 669, 582, 02965 670, 752, 753, 750, 750, 751, 750, 669, 2698, 670, 02966 752, 753, 749, 750, 751, 749, 669, 1153, 670, 752, 02967 753, 1768, 2669, 751, 582, 2669, 2674, 1772, 752, 753, 02968 749, 750, 2083, 749, 669, 2699, 670, 2679, 1773, 2700, 02969 2670, 751, 744, 744, 744, 744, 752, 753, 1101, 745, 02970 782, 2701, 669, 2702, 670, 1774, 1696, 1775, 1776, 1696, 02971 1775, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 1777, 1696, 02972 02973 1696, 1696, 1696, 1778, 1779, 1696, 2677, 582, 1295, 1701, 02974 1696, 1702, 1696, 1696, 1696, 2678, 749, 750, 2703, 749, 02975 2709, 1882, 2719, 1780, 1882, 2720, 582, 751, 749, 750, 02976 582, 749, 752, 753, 1696, 1696, 1696, 1696, 669, 751, 02977 670, 1094, 1094, 1883, 752, 753, 1095, 1095, 2617, 2618, 02978 669, 2617, 670, 1960, 1959, 2003, 1096, 1959, 823, 749, 02979 750, 582, 749, 2704, 1696, 1696, 1696, 1696, 1781, 582, 02980 751, 908, 908, 908, 908, 752, 753, 749, 750, 582, 02981 749, 669, 1782, 670, 2680, 2411, 749, 750, 751, 749, 02982 2705, 2426, 2718, 752, 753, 749, 750, 751, 749, 669, 02983 02984 1959, 670, 752, 753, 749, 750, 751, 749, 669, 1094, 02985 670, 752, 753, 749, 750, 751, 749, 669, 2426, 670, 02986 752, 753, 2591, 2592, 751, 2591, 669, 781, 670, 752, 02987 753, 2291, 2292, 2292, 2291, 669, 2721, 670, 2722, 1962, 02988 2723, 749, 750, 1961, 749, 1961, 1783, 1786, 913, 2724, 02989 749, 750, 751, 749, 582, 1784, 1785, 752, 753, 582, 02990 1787, 751, 2725, 669, 2726, 670, 752, 753, 749, 750, 02991 2727, 749, 669, 2728, 670, 2470, 2470, 2470, 2470, 751, 02992 749, 750, 2471, 749, 752, 753, 1961, 582, 2706, 2729, 02993 669, 751, 670, 1101, 1788, 2730, 752, 753, 749, 750, 02994 02995 2731, 749, 669, 2732, 670, 2673, 782, 749, 750, 751, 02996 749, 582, 582, 2744, 752, 753, 664, 2744, 751, 664, 02997 669, 2737, 670, 752, 753, 749, 750, 582, 749, 669, 02998 1882, 670, 1295, 1882, 749, 750, 751, 749, 669, 2747, 02999 670, 752, 753, 1789, 2755, 751, 2734, 669, 2747, 670, 03000 752, 753, 1883, 2766, 1790, 1958, 669, 664, 670, 2189, 03001 664, 2767, 1413, 1413, 1413, 1413, 2739, 847, 665, 878, 03002 2768, 2769, 847, 666, 667, 2770, 1791, 1792, 2702, 669, 03003 2189, 670, 2733, 2733, 876, 2733, 1793, 1208, 1306, 1307, 03004 1208, 1794, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1308, 03005 03006 1208, 1208, 1208, 1208, 1309, 1310, 1208, 2738, 2747, 582, 03007 1213, 1208, 1214, 1208, 1208, 1208, 2779, 749, 750, 2760, 03008 749, 1600, 1601, 1601, 1600, 2555, 2070, 582, 751, 749, 03009 750, 582, 749, 752, 753, 1208, 1208, 1208, 1208, 669, 03010 751, 670, 880, 1993, 1795, 752, 753, 749, 750, 582, 03011 749, 669, 2740, 670, 2533, 2533, 2533, 2533, 751, 749, 03012 750, 2534, 749, 752, 753, 1208, 1208, 1208, 1208, 669, 03013 751, 670, 2773, 1796, 2771, 752, 753, 749, 750, 2561, 03014 749, 669, 823, 670, 582, 1797, 749, 750, 751, 749, 03015 2789, 2790, 2791, 752, 753, 749, 750, 751, 749, 669, 03016 03017 2792, 670, 752, 753, 2634, 2793, 751, 2634, 669, 2635, 03018 670, 752, 753, 1798, 2788, 1799, 2794, 669, 2795, 670, 03019 749, 750, 2772, 749, 1601, 1601, 1601, 1601, 2635, 2796, 03020 2797, 751, 883, 875, 875, 883, 752, 753, 1413, 1413, 03021 1413, 1413, 669, 782, 670, 1880, 1993, 2707, 749, 750, 03022 2707, 749, 749, 750, 885, 749, 886, 2798, 2266, 751, 03023 876, 1800, 2799, 751, 752, 753, 582, 2266, 752, 753, 03024 669, 2708, 670, 1960, 669, 582, 670, 1959, 2747, 1959, 03025 1801, 1230, 1325, 1326, 1230, 1325, 1230, 1230, 1230, 1230, 03026 1230, 1230, 1230, 1327, 1230, 1230, 1230, 1230, 1328, 1329, 03027 03028 1230, 1885, 2755, 2800, 1235, 1230, 1236, 1230, 1230, 1230, 03029 781, 749, 750, 2806, 749, 2747, 1807, 1415, 880, 2821, 03030 1959, 2769, 751, 749, 750, 2747, 749, 752, 753, 1230, 03031 1230, 1230, 1230, 669, 751, 670, 2760, 582, 1802, 752, 03032 753, 2470, 2470, 2470, 2470, 669, 2803, 670, 2471, 883, 03033 875, 875, 883, 749, 750, 2822, 749, 2824, 2827, 1230, 03034 1230, 1230, 1230, 1803, 751, 749, 750, 582, 749, 752, 03035 753, 885, 2804, 886, 2827, 669, 751, 670, 2829, 1804, 03036 2839, 752, 753, 749, 750, 2669, 749, 669, 2669, 670, 03037 2974, 2974, 2974, 2974, 751, 749, 750, 2974, 749, 752, 03038 03039 753, 2805, 1886, 2670, 2840, 669, 751, 670, 582, 2841, 03040 2823, 752, 753, 2823, 2842, 2807, 1805, 669, 2807, 670, 03041 2843, 1806, 2844, 749, 750, 582, 749, 2600, 2600, 2600, 03042 2600, 2794, 749, 750, 751, 749, 2846, 1883, 580, 752, 03043 753, 749, 750, 751, 749, 669, 1809, 670, 752, 753, 03044 664, 1808, 751, 664, 669, 2847, 670, 752, 753, 749, 03045 750, 665, 749, 669, 2825, 670, 666, 667, 749, 750, 03046 751, 749, 669, 2856, 670, 752, 753, 749, 750, 751, 03047 749, 669, 582, 670, 752, 753, 2852, 582, 751, 2069, 03048 669, 2862, 670, 752, 753, 1810, 582, 749, 750, 669, 03049 03050 749, 670, 1811, 582, 1812, 1101, 582, 2826, 751, 749, 03051 750, 2863, 749, 752, 753, 2275, 2275, 2275, 2275, 669, 03052 751, 670, 2276, 1962, 1961, 752, 753, 1961, 1813, 749, 03053 750, 669, 749, 670, 1815, 2739, 2769, 1814, 749, 750, 03054 751, 749, 2739, 2866, 1192, 752, 753, 749, 750, 751, 03055 749, 669, 2871, 670, 752, 753, 749, 750, 751, 749, 03056 669, 2839, 670, 752, 753, 582, 1295, 751, 1816, 669, 03057 1961, 670, 752, 753, 749, 750, 2807, 749, 669, 2807, 03058 670, 2278, 2872, 749, 750, 751, 749, 2687, 2687, 1101, 03059 752, 753, 1095, 1095, 751, 2279, 669, 1817, 670, 752, 03060 03061 753, 2873, 2688, 1818, 2874, 669, 2875, 670, 749, 750, 03062 2755, 749, 1819, 2733, 2733, 2809, 2733, 1820, 2809, 751, 03063 749, 750, 2885, 749, 752, 753, 2810, 2747, 2747, 1516, 03064 669, 751, 670, 1516, 1821, 1516, 752, 753, 2855, 2861, 03065 2848, 1928, 669, 2848, 670, 1822, 971, 749, 750, 2809, 03066 749, 2849, 2809, 1823, 2895, 2687, 749, 750, 751, 749, 03067 2810, 582, 1824, 752, 753, 2634, 2896, 751, 2634, 669, 03068 2635, 670, 752, 753, 749, 750, 1516, 749, 669, 2898, 03069 670, 2864, 2747, 749, 750, 751, 749, 1825, 2903, 2635, 03070 752, 753, 2837, 2880, 751, 2837, 669, 582, 670, 752, 03071 03072 753, 749, 750, 2838, 749, 669, 2865, 670, 582, 2865, 03073 749, 750, 751, 749, 823, 2879, 1295, 752, 753, 2904, 03074 2897, 751, 1826, 669, 2747, 670, 752, 753, 1883, 2794, 03075 749, 750, 669, 749, 670, 2889, 1516, 2794, 2905, 1827, 03076 1516, 751, 1516, 2755, 2920, 2930, 752, 753, 971, 1829, 03077 582, 582, 669, 1929, 670, 2911, 2932, 1295, 749, 750, 03078 2839, 749, 749, 750, 1958, 749, 1828, 2839, 1958, 751, 03079 1958, 2931, 2673, 751, 752, 753, 971, 2746, 752, 753, 03080 669, 971, 670, 1516, 669, 2941, 670, 582, 749, 750, 03081 1830, 749, 749, 750, 2946, 749, 2948, 664, 2865, 751, 03082 03083 664, 2865, 2950, 751, 752, 753, 2951, 2936, 752, 753, 03084 669, 1958, 670, 2269, 669, 2769, 670, 749, 750, 669, 03085 749, 670, 2956, 1831, 2533, 2533, 2533, 2533, 751, 2960, 03086 2876, 2534, 1832, 752, 753, 749, 750, 2929, 749, 669, 03087 2929, 670, 2929, 781, 1833, 2929, 751, 1289, 1289, 1289, 03088 1289, 752, 753, 883, 875, 875, 883, 669, 740, 670, 03089 883, 875, 875, 883, 2876, 883, 875, 875, 883, 1834, 03090 883, 875, 875, 883, 2560, 885, 582, 886, 883, 875, 03091 875, 883, 885, 2868, 886, 2837, 2868, 885, 2837, 886, 03092 2869, 1962, 876, 2559, 886, 1961, 2838, 1961, 1835, 582, 03093 03094 885, 2556, 886, 883, 875, 875, 883, 883, 875, 875, 03095 883, 883, 875, 875, 883, 2739, 1884, 1887, 883, 875, 03096 875, 883, 2555, 2853, 582, 885, 2853, 886, 893, 885, 03097 2554, 886, 582, 885, 2747, 886, 893, 2947, 1961, 2969, 03098 885, 2971, 886, 883, 875, 875, 883, 883, 875, 875, 03099 883, 1762, 731, 731, 1762, 883, 875, 875, 883, 1888, 03100 883, 875, 875, 883, 2516, 885, 2508, 886, 582, 885, 03101 2507, 886, 2494, 732, 1891, 1889, 1890, 885, 2868, 886, 03102 2959, 2868, 885, 2900, 886, 2869, 2900, 883, 875, 875, 03103 883, 2367, 2367, 2367, 2367, 2901, 1958, 1958, 2368, 2974, 03104 03105 1958, 2955, 2974, 1892, 582, 2493, 2974, 1893, 500, 885, 03106 893, 886, 1894, 500, 1574, 1575, 1575, 1574, 1574, 1575, 03107 1575, 1574, 1585, 1080, 1080, 1585, 581, 1086, 2963, 581, 03108 581, 582, 1086, 581, 1082, 2481, 561, 581, 886, 1895, 03109 561, 581, 886, 1958, 1083, 2460, 578, 579, 579, 578, 03110 1578, 1579, 1579, 1578, 582, 582, 2972, 580, 581, 656, 03111 656, 581, 581, 581, 656, 581, 2966, 581, 583, 581, 03112 584, 2370, 2459, 581, 886, 1579, 1579, 1579, 1579, 1578, 03113 1579, 1579, 1578, 2458, 2319, 2924, 2853, 581, 2924, 2853, 03114 581, 581, 2265, 2263, 581, 581, 2758, 2747, 581, 581, 03115 03116 2454, 1006, 581, 886, 1986, 1986, 1986, 1986, 2854, 2453, 03117 2823, 1582, 2452, 2823, 2973, 1985, 2451, 2973, 1585, 1080, 03118 1080, 1585, 814, 814, 581, 1081, 1083, 814, 581, 991, 03119 1082, 1086, 1762, 731, 731, 1762, 1086, 1586, 1586, 1586, 03120 1083, 1585, 1080, 1080, 1585, 582, 991, 991, 1081, 1595, 03121 1595, 1595, 1595, 1082, 732, 2248, 1596, 2450, 991, 991, 03122 1586, 1586, 1586, 1083, 2036, 2445, 1585, 1080, 1080, 1585, 03123 1473, 561, 1473, 1081, 2974, 2974, 2974, 2974, 1082, 2037, 03124 2444, 2974, 2443, 951, 1085, 1987, 1987, 1987, 1083, 578, 03125 579, 579, 578, 951, 2900, 951, 2974, 2900, 1085, 951, 03126 03127 580, 581, 951, 2442, 581, 2441, 2901, 2974, 2974, 2974, 03128 2974, 583, 581, 584, 2974, 1597, 2440, 1769, 1769, 1769, 03129 1769, 1085, 930, 930, 930, 1999, 2000, 2000, 1999, 1598, 03130 2000, 2000, 2000, 2000, 930, 930, 2001, 581, 581, 1770, 03131 581, 2001, 581, 2439, 2429, 581, 1085, 583, 581, 886, 03132 819, 819, 583, 581, 2974, 819, 1992, 2428, 1622, 1623, 03133 1623, 1622, 2427, 2426, 2419, 2367, 2367, 2367, 2367, 1624, 03134 581, 2418, 2368, 581, 581, 1623, 1623, 1623, 1623, 581, 03135 583, 581, 886, 2417, 829, 829, 1624, 581, 664, 829, 03136 581, 664, 664, 2416, 2415, 664, 815, 583, 581, 665, 03137 03138 863, 815, 815, 665, 666, 667, 815, 581, 666, 667, 03139 669, 863, 670, 863, 669, 863, 670, 2954, 2954, 2954, 03140 2954, 2414, 863, 2413, 581, 1607, 2010, 1609, 1609, 2010, 03141 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1610, 1611, 1607, 03142 1607, 1611, 1607, 1607, 1607, 2370, 1962, 1960, 1612, 1611, 03143 1613, 1607, 1607, 1607, 2412, 2071, 2411, 2410, 2409, 2746, 03144 2072, 883, 875, 875, 883, 2762, 1622, 1623, 1623, 1622, 03145 2746, 2746, 2746, 1607, 1607, 1611, 1607, 1624, 581, 2900, 03146 2808, 581, 2900, 876, 2408, 886, 2407, 2406, 583, 581, 03147 886, 2901, 883, 875, 875, 883, 664, 833, 833, 664, 03148 03149 2405, 2404, 833, 1607, 1607, 1607, 1607, 665, 2600, 2600, 03150 2600, 2600, 666, 667, 885, 581, 886, 2403, 669, 580, 03151 670, 2402, 2015, 1657, 579, 579, 1657, 883, 875, 875, 03152 883, 2746, 823, 2924, 580, 581, 2924, 2359, 581, 2600, 03153 2600, 2600, 2600, 2342, 2758, 583, 581, 886, 2067, 885, 03154 580, 886, 2330, 2329, 664, 2321, 2319, 664, 699, 883, 03155 875, 875, 883, 664, 2924, 665, 664, 2924, 840, 840, 03156 666, 667, 581, 840, 665, 2758, 669, 2036, 670, 666, 03157 667, 885, 1101, 886, 2315, 669, 2313, 670, 2312, 1101, 03158 2210, 2295, 2037, 1230, 1231, 1230, 1230, 1231, 1230, 1230, 03159 03160 1230, 1230, 1230, 1230, 1230, 1232, 1230, 1230, 1230, 1230, 03161 1233, 1234, 1230, 699, 613, 1101, 1235, 1230, 1236, 1230, 03162 1230, 1230, 2908, 664, 2282, 2908, 664, 2274, 2272, 2209, 03163 2271, 2925, 1197, 2758, 665, 664, 2270, 2268, 664, 666, 03164 667, 1230, 1230, 1230, 1230, 669, 665, 670, 2265, 1976, 03165 2073, 666, 667, 664, 527, 2924, 664, 669, 2924, 670, 03166 2746, 2974, 2746, 2746, 665, 664, 2758, 2746, 664, 666, 03167 667, 1230, 1230, 1230, 1230, 669, 665, 670, 527, 1962, 03168 664, 666, 667, 664, 1960, 915, 915, 669, 2263, 670, 03169 915, 665, 1956, 2074, 1006, 2075, 666, 667, 664, 2258, 03170 03171 2257, 664, 669, 2256, 670, 2746, 2974, 2746, 2746, 665, 03172 664, 2943, 2746, 664, 666, 667, 883, 875, 875, 883, 03173 669, 665, 670, 2255, 2076, 664, 666, 667, 664, 2254, 03174 2253, 991, 669, 2252, 670, 2077, 665, 2251, 885, 2250, 03175 886, 666, 667, 2078, 991, 2249, 2248, 669, 2908, 670, 03176 664, 2908, 1929, 664, 2681, 2682, 2682, 2681, 1473, 2758, 03177 664, 665, 2079, 664, 2241, 2683, 666, 667, 923, 923, 03178 2080, 665, 669, 923, 670, 664, 666, 667, 664, 2240, 03179 2239, 2214, 669, 2238, 670, 664, 665, 2908, 664, 2237, 03180 2908, 666, 667, 2081, 951, 2236, 665, 669, 2758, 670, 03181 03182 664, 666, 667, 664, 951, 2235, 1197, 669, 2234, 670, 03183 664, 665, 2225, 664, 2224, 2942, 666, 667, 2223, 2222, 03184 2221, 665, 669, 2082, 670, 664, 666, 667, 664, 2220, 03185 2219, 2218, 669, 2207, 670, 664, 665, 2084, 664, 940, 03186 940, 666, 667, 2205, 940, 698, 665, 669, 2204, 670, 03187 664, 666, 667, 664, 2203, 2202, 2201, 669, 2200, 670, 03188 664, 665, 2199, 664, 863, 2085, 666, 667, 2198, 2197, 03189 664, 665, 669, 664, 670, 863, 666, 667, 2196, 2195, 03190 1519, 665, 669, 1197, 670, 2924, 666, 667, 2924, 1513, 03191 664, 2086, 669, 664, 670, 2187, 2758, 2924, 2186, 664, 03192 03193 2924, 665, 664, 2087, 944, 944, 666, 667, 2758, 944, 03194 665, 2185, 669, 2184, 670, 666, 667, 664, 2088, 2908, 03195 664, 669, 2908, 670, 2908, 2089, 2183, 2908, 665, 664, 03196 2758, 2182, 664, 666, 667, 2758, 2181, 2958, 2090, 669, 03197 665, 670, 2180, 2091, 2179, 666, 667, 664, 2178, 2746, 03198 664, 669, 2177, 670, 830, 2762, 664, 823, 665, 664, 03199 2746, 2746, 2746, 666, 667, 2953, 753, 665, 2092, 669, 03200 2808, 670, 666, 667, 664, 2952, 2924, 664, 669, 2924, 03201 670, 2124, 1192, 2094, 2093, 665, 664, 2758, 1190, 664, 03202 666, 667, 2957, 667, 2063, 2062, 669, 665, 670, 2095, 03203 03204 2031, 664, 666, 667, 664, 2025, 1092, 1997, 669, 1994, 03205 670, 664, 665, 1991, 664, 961, 961, 666, 667, 1990, 03206 961, 2746, 665, 669, 2096, 670, 664, 666, 667, 664, 03207 1989, 1559, 1556, 669, 1976, 670, 664, 665, 2098, 664, 03208 1543, 2097, 666, 667, 966, 966, 2962, 665, 669, 966, 03209 670, 664, 666, 667, 664, 1533, 1523, 2099, 669, 1962, 03210 670, 664, 665, 2908, 664, 1519, 2908, 666, 667, 1960, 03211 1513, 2100, 665, 669, 2758, 670, 664, 666, 667, 664, 03212 1511, 1956, 1197, 669, 1951, 670, 664, 665, 1950, 664, 03213 972, 972, 666, 667, 1949, 972, 664, 665, 669, 664, 03214 03215 670, 991, 666, 667, 1948, 2101, 664, 665, 669, 664, 03216 670, 1947, 666, 667, 1946, 2961, 1945, 665, 669, 1944, 03217 670, 2102, 666, 667, 664, 1943, 1942, 664, 669, 1941, 03218 670, 991, 1940, 2103, 1939, 665, 1289, 1289, 1289, 1289, 03219 666, 667, 664, 1938, 2104, 664, 669, 740, 670, 991, 03220 1937, 664, 2105, 665, 664, 834, 698, 2106, 666, 667, 03221 834, 834, 665, 1473, 669, 834, 670, 666, 667, 1473, 03222 1923, 664, 2107, 669, 664, 670, 2954, 2954, 2954, 2954, 03223 664, 951, 665, 664, 2108, 983, 983, 666, 667, 2848, 03224 983, 665, 2848, 669, 1922, 670, 666, 667, 664, 1921, 03225 03226 2876, 664, 669, 1920, 670, 2110, 1919, 2109, 1918, 665, 03227 664, 1917, 951, 664, 666, 667, 1766, 1766, 1766, 1766, 03228 669, 665, 670, 1767, 1916, 2111, 666, 667, 1915, 951, 03229 664, 1914, 669, 664, 670, 1004, 1004, 1913, 732, 2112, 03230 1004, 665, 2741, 2742, 2742, 2741, 666, 667, 2742, 2742, 03231 2742, 2742, 669, 2743, 670, 1071, 1071, 930, 1912, 2743, 03232 1071, 2113, 1696, 1697, 1696, 1696, 1697, 1696, 1696, 1696, 03233 1696, 1696, 1696, 1696, 1698, 1696, 1696, 1696, 1696, 2114, 03234 1700, 1696, 1911, 2115, 1910, 1701, 1696, 1702, 1696, 1696, 03235 1696, 2908, 664, 1909, 2908, 664, 1768, 1908, 1907, 2116, 03236 03237 1280, 1280, 2758, 665, 664, 1280, 930, 664, 666, 667, 03238 1696, 1696, 1696, 1696, 669, 665, 670, 1906, 1412, 1412, 03239 666, 667, 664, 1412, 2924, 664, 669, 2924, 670, 2974, 03240 2974, 2974, 2974, 665, 664, 2758, 2974, 664, 666, 667, 03241 1696, 1696, 1696, 1696, 669, 665, 670, 2117, 1373, 1373, 03242 666, 667, 2118, 1373, 1905, 930, 669, 2119, 670, 664, 03243 1904, 2964, 664, 1903, 1902, 2275, 2275, 2275, 2275, 1197, 03244 665, 664, 2462, 1901, 664, 666, 667, 1900, 1899, 1898, 03245 2120, 669, 665, 670, 1897, 1896, 664, 666, 667, 664, 03246 2965, 1415, 1197, 669, 1414, 670, 664, 665, 1878, 664, 03247 03248 1084, 1084, 666, 667, 863, 1084, 1877, 665, 669, 2974, 03249 670, 1876, 666, 667, 2974, 2974, 2974, 2974, 669, 1875, 03250 670, 2974, 749, 750, 1874, 749, 749, 750, 1873, 749, 03251 2121, 2464, 1872, 751, 1871, 1870, 2974, 751, 752, 753, 03252 863, 2122, 752, 753, 669, 2279, 670, 1869, 669, 1868, 03253 670, 1867, 699, 1866, 2123, 749, 750, 863, 749, 749, 03254 750, 2125, 749, 842, 1865, 1850, 751, 1849, 842, 842, 03255 751, 752, 753, 842, 1848, 752, 753, 669, 1847, 670, 03256 1846, 669, 1843, 670, 1842, 749, 750, 1841, 749, 2557, 03257 2557, 2557, 2557, 1840, 2974, 2126, 751, 749, 750, 830, 03258 03259 749, 752, 753, 1986, 1986, 1986, 1986, 669, 751, 670, 03260 1582, 2558, 1836, 752, 753, 2741, 2742, 2742, 2741, 669, 03261 753, 670, 2127, 753, 1287, 1083, 2743, 2128, 1230, 1325, 03262 1326, 1230, 1325, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 03263 1327, 1230, 1230, 1230, 1230, 1328, 1329, 1230, 1192, 1190, 03264 667, 1235, 1230, 1236, 1230, 1230, 1230, 1192, 1190, 782, 03265 883, 875, 875, 883, 749, 750, 2558, 749, 667, 883, 03266 875, 875, 883, 1192, 1684, 751, 1230, 1230, 1230, 1230, 03267 752, 753, 885, 1085, 886, 2129, 669, 1683, 670, 1092, 03268 1599, 885, 1415, 886, 749, 750, 1594, 749, 883, 875, 03269 03270 875, 883, 1593, 1592, 1591, 751, 1230, 1230, 1230, 1230, 03271 752, 753, 1584, 1076, 749, 750, 669, 749, 670, 1555, 03272 885, 1555, 886, 782, 1519, 751, 749, 750, 2217, 749, 03273 752, 753, 1510, 1513, 1510, 1504, 669, 751, 670, 893, 03274 1006, 1006, 752, 753, 749, 750, 2924, 749, 669, 2924, 03275 670, 1503, 2211, 749, 750, 751, 749, 2758, 1500, 1499, 03276 752, 753, 1496, 1295, 751, 1495, 669, 1494, 670, 752, 03277 753, 749, 750, 1493, 749, 669, 1492, 670, 991, 1491, 03278 749, 750, 751, 749, 1295, 1490, 2130, 752, 753, 749, 03279 750, 751, 749, 669, 1489, 670, 752, 753, 1837, 1837, 03280 03281 751, 1488, 669, 1837, 670, 752, 753, 1487, 991, 749, 03282 750, 669, 749, 670, 2968, 2131, 1473, 1471, 1470, 1469, 03283 751, 749, 750, 2132, 749, 752, 753, 2745, 1601, 1601, 03284 2745, 669, 751, 670, 2133, 1468, 916, 752, 753, 1465, 03285 2134, 916, 916, 669, 1464, 670, 916, 749, 750, 1602, 03286 749, 749, 750, 1463, 749, 2687, 2687, 2135, 751, 951, 03287 1095, 1095, 751, 752, 753, 1295, 1462, 752, 753, 669, 03288 2688, 670, 1461, 669, 1460, 670, 749, 750, 1459, 749, 03289 749, 750, 951, 749, 2136, 1881, 1881, 751, 1458, 924, 03290 1881, 751, 752, 753, 924, 924, 752, 753, 669, 924, 03291 03292 670, 1457, 669, 1456, 670, 749, 750, 2083, 749, 749, 03293 750, 1455, 749, 1952, 1952, 1452, 751, 781, 1952, 1451, 03294 751, 752, 753, 2687, 1450, 752, 753, 669, 2137, 670, 03295 930, 669, 1449, 670, 1448, 749, 750, 1447, 749, 749, 03296 750, 1446, 749, 945, 930, 2138, 751, 1445, 945, 945, 03297 751, 752, 753, 945, 1444, 752, 753, 669, 1443, 670, 03298 1442, 669, 1441, 670, 1440, 749, 750, 1439, 749, 749, 03299 750, 1438, 749, 1437, 1415, 2139, 751, 1414, 1295, 882, 03300 751, 752, 753, 2277, 2277, 752, 753, 669, 2277, 670, 03301 1411, 669, 1410, 670, 749, 750, 1409, 749, 749, 750, 03302 03303 1408, 749, 1407, 2140, 1406, 751, 1403, 2141, 1402, 751, 03304 752, 753, 2420, 2420, 752, 753, 669, 2420, 670, 1401, 03305 669, 863, 670, 2908, 749, 750, 2908, 749, 749, 750, 03306 2142, 749, 1399, 1398, 2758, 751, 1397, 2143, 1396, 751, 03307 752, 753, 1395, 1394, 752, 753, 669, 2144, 670, 863, 03308 669, 1383, 670, 749, 750, 1382, 749, 749, 750, 1377, 03309 749, 1376, 1375, 1374, 751, 830, 965, 2145, 751, 752, 03310 753, 965, 965, 752, 753, 669, 965, 670, 1372, 669, 03311 830, 670, 2147, 1370, 749, 750, 823, 749, 823, 2967, 03312 754, 2146, 984, 749, 750, 751, 749, 984, 984, 753, 03313 03314 752, 753, 984, 1287, 751, 2148, 669, 1285, 670, 752, 03315 753, 749, 750, 737, 749, 669, 668, 670, 1192, 1190, 03316 749, 750, 751, 749, 667, 2149, 658, 752, 753, 2908, 03317 658, 751, 2908, 669, 1179, 670, 752, 753, 749, 750, 03318 2758, 749, 669, 582, 670, 2151, 1092, 749, 750, 751, 03319 749, 2150, 582, 1091, 752, 753, 1088, 1076, 751, 574, 03320 669, 536, 670, 752, 753, 749, 750, 2152, 749, 669, 03321 530, 670, 527, 815, 749, 750, 751, 749, 815, 815, 03322 2153, 752, 753, 815, 1006, 751, 2746, 669, 495, 670, 03323 752, 753, 2747, 2746, 1295, 1002, 669, 2970, 670, 2746, 03324 03325 1001, 749, 750, 1000, 749, 993, 990, 2817, 989, 986, 03326 749, 750, 751, 749, 985, 975, 2154, 752, 753, 749, 03327 750, 751, 749, 669, 964, 670, 752, 753, 749, 750, 03328 751, 749, 669, 963, 670, 752, 753, 2155, 960, 751, 03329 959, 669, 2156, 670, 752, 753, 2974, 2974, 2974, 2974, 03330 669, 958, 670, 2974, 954, 953, 749, 750, 2746, 749, 03331 2746, 950, 883, 875, 875, 883, 2157, 751, 949, 948, 03332 2158, 781, 752, 753, 947, 946, 749, 750, 669, 749, 03333 670, 939, 938, 937, 885, 2159, 886, 751, 2160, 933, 03334 932, 929, 752, 753, 749, 750, 928, 749, 669, 927, 03335 03336 670, 926, 925, 749, 750, 751, 749, 495, 921, 920, 03337 752, 753, 749, 750, 751, 749, 669, 919, 670, 752, 03338 753, 2161, 918, 751, 917, 669, 2974, 670, 752, 753, 03339 2162, 495, 893, 882, 669, 874, 670, 873, 872, 749, 03340 750, 866, 749, 883, 875, 875, 883, 865, 2163, 862, 03341 751, 861, 860, 857, 856, 752, 753, 749, 750, 845, 03342 749, 669, 2164, 670, 838, 885, 837, 886, 751, 749, 03343 750, 836, 749, 752, 753, 2165, 835, 830, 823, 669, 03344 751, 670, 1373, 495, 737, 752, 753, 749, 750, 568, 03345 749, 669, 658, 670, 2213, 655, 1373, 1373, 751, 749, 03346 03347 750, 1373, 749, 752, 753, 2745, 1601, 1601, 2745, 669, 03348 751, 670, 2166, 658, 658, 752, 753, 657, 655, 749, 03349 750, 669, 749, 670, 2168, 586, 2167, 1993, 574, 2169, 03350 751, 571, 568, 555, 2170, 752, 753, 749, 750, 552, 03351 749, 669, 546, 670, 883, 875, 875, 883, 751, 539, 03352 834, 536, 1295, 752, 753, 834, 834, 2171, 495, 669, 03353 834, 670, 749, 750, 495, 749, 885, 518, 886, 512, 03354 503, 749, 750, 751, 749, 1837, 495, 1295, 752, 753, 03355 749, 750, 751, 749, 669, 2974, 670, 752, 753, 1837, 03356 1837, 751, 2974, 669, 1837, 670, 752, 753, 2974, 2974, 03357 03358 2212, 2974, 669, 2974, 670, 2974, 2974, 2974, 2172, 883, 03359 875, 875, 883, 2422, 875, 875, 2422, 2742, 2742, 2742, 03360 2742, 2974, 2974, 2845, 2845, 2845, 2845, 2974, 2743, 2974, 03361 2974, 885, 2173, 886, 2431, 885, 782, 886, 2974, 2174, 03362 1230, 1421, 1422, 1422, 1421, 1230, 1230, 1230, 1230, 1230, 03363 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 03364 884, 884, 884, 1423, 1230, 1424, 1230, 1230, 1230, 884, 03365 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 03366 884, 884, 884, 884, 884, 884, 884, 884, 1230, 1230, 03367 1230, 1230, 884, 884, 884, 884, 884, 2208, 884, 884, 03368 03369 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, 03370 884, 884, 884, 884, 884, 884, 884, 884, 1230, 1230, 03371 1230, 1230, 883, 875, 875, 883, 883, 875, 875, 883, 03372 2974, 2828, 1601, 1601, 2828, 2974, 883, 875, 875, 883, 03373 578, 579, 579, 578, 885, 2974, 886, 2974, 885, 2974, 03374 886, 580, 581, 1602, 664, 581, 2269, 664, 885, 2974, 03375 886, 2974, 583, 581, 584, 665, 2845, 2845, 2845, 2845, 03376 666, 667, 2465, 2466, 2466, 2465, 669, 2431, 670, 2974, 03377 2215, 2974, 2974, 580, 2746, 2974, 2746, 2746, 2421, 581, 03378 2974, 2746, 2974, 2974, 1993, 2331, 2216, 1230, 1230, 1230, 03379 03380 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 03381 1230, 1230, 1230, 1230, 1230, 1230, 1230, 984, 984, 984, 03382 1230, 1230, 1230, 1230, 1230, 1230, 984, 984, 984, 984, 03383 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 03384 984, 984, 984, 984, 984, 1230, 1230, 1230, 1230, 984, 03385 984, 984, 984, 984, 2247, 984, 984, 984, 984, 984, 03386 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 03387 984, 984, 984, 984, 984, 1230, 1230, 1230, 1230, 1585, 03388 1080, 1080, 1585, 842, 2974, 2974, 1081, 2974, 842, 842, 03389 2974, 1082, 1952, 842, 2974, 2974, 2974, 2974, 1987, 1987, 03390 03391 1987, 1083, 1585, 1080, 1080, 1585, 1952, 1952, 2974, 1081, 03392 2974, 1952, 2974, 2974, 1082, 1999, 2000, 2000, 1999, 2974, 03393 2974, 1586, 1586, 1586, 1083, 2974, 2001, 581, 2974, 2974, 03394 581, 2000, 2000, 2000, 2000, 2974, 2420, 583, 581, 886, 03395 2974, 664, 2001, 581, 664, 664, 581, 2974, 664, 2974, 03396 2420, 2420, 665, 583, 581, 2420, 665, 666, 667, 1085, 03397 2974, 666, 667, 669, 581, 670, 2974, 669, 2974, 670, 03398 2466, 2466, 2466, 2466, 2974, 2974, 2845, 2845, 2845, 2845, 03399 581, 580, 1085, 578, 579, 579, 578, 2431, 2974, 2974, 03400 2974, 2974, 1993, 664, 580, 581, 664, 664, 581, 2974, 03401 03402 664, 2333, 2974, 2974, 665, 583, 581, 584, 665, 666, 03403 667, 2974, 2332, 666, 667, 669, 2974, 670, 2974, 669, 03404 2974, 670, 2944, 2600, 2944, 2944, 2974, 2974, 2974, 2974, 03405 2974, 2974, 581, 2758, 2974, 2974, 2974, 2974, 2974, 2273, 03406 1607, 2285, 1609, 1609, 2285, 1607, 1607, 1607, 1607, 1607, 03407 1607, 1607, 1610, 1611, 1607, 1607, 1611, 1607, 1607, 1607, 03408 2347, 2974, 2337, 1612, 1611, 1613, 1607, 1607, 1607, 2974, 03409 2974, 2974, 883, 875, 875, 883, 664, 2974, 2974, 664, 03410 883, 875, 875, 883, 2974, 2974, 2974, 665, 1607, 1607, 03411 1611, 1607, 666, 667, 885, 2974, 886, 2974, 669, 2974, 03412 03413 670, 2974, 885, 2974, 886, 883, 875, 875, 883, 2275, 03414 2275, 2275, 2275, 2974, 2974, 2974, 2462, 2974, 1607, 1607, 03415 1607, 1607, 2290, 2000, 2000, 2290, 2974, 885, 2334, 886, 03416 2974, 2974, 664, 2001, 581, 664, 893, 581, 2974, 2974, 03417 2974, 2974, 893, 665, 583, 581, 886, 2974, 666, 667, 03418 664, 2974, 2974, 664, 669, 2974, 670, 2974, 2974, 2974, 03419 893, 665, 2974, 2974, 2974, 2974, 666, 667, 2974, 2974, 03420 2974, 581, 669, 916, 670, 2464, 2036, 2974, 916, 916, 03421 2974, 2974, 2974, 916, 2335, 2974, 2974, 2974, 2974, 2279, 03422 2974, 2037, 1112, 1113, 1114, 1114, 1113, 1112, 1112, 1112, 03423 03424 1112, 1112, 1112, 1112, 1115, 1116, 1112, 1112, 1116, 1112, 03425 1112, 1112, 2974, 2338, 2974, 1117, 1116, 1118, 1112, 1112, 03426 1112, 2974, 2437, 2974, 2465, 2466, 2466, 2465, 2974, 2974, 03427 883, 875, 875, 883, 664, 580, 2974, 664, 2974, 2974, 03428 1112, 1112, 1116, 1112, 664, 665, 1602, 664, 2468, 2974, 03429 666, 667, 885, 2974, 886, 665, 669, 2974, 670, 924, 03430 666, 667, 614, 2974, 924, 924, 669, 2974, 670, 924, 03431 1112, 1112, 1112, 1112, 1696, 1697, 1696, 1696, 1697, 1696, 03432 1696, 1696, 1696, 1696, 1696, 1696, 1698, 1696, 1696, 1696, 03433 1696, 1699, 1700, 1696, 2339, 2423, 2974, 1701, 1696, 1702, 03434 03435 1696, 1696, 1696, 2974, 2974, 2777, 2777, 945, 2974, 1197, 03436 1095, 1095, 945, 945, 2974, 2974, 664, 945, 2974, 664, 03437 2778, 2974, 1696, 1696, 1696, 1696, 2336, 665, 2974, 2974, 03438 2974, 2974, 666, 667, 664, 2974, 2974, 664, 669, 2974, 03439 670, 2974, 2974, 2974, 2974, 665, 664, 2974, 2974, 664, 03440 666, 667, 1696, 1696, 1696, 1696, 669, 665, 670, 2974, 03441 2974, 2974, 666, 667, 664, 2974, 2974, 664, 669, 2974, 03442 670, 2974, 1197, 2777, 2974, 665, 2746, 2974, 2746, 2746, 03443 666, 667, 664, 2746, 2974, 664, 669, 2974, 670, 2974, 03444 698, 664, 2974, 665, 664, 2974, 2974, 2974, 666, 667, 03445 03446 2340, 2974, 665, 2974, 669, 2974, 670, 666, 667, 664, 03447 2974, 965, 664, 669, 2974, 670, 965, 965, 2343, 664, 03448 665, 965, 664, 2974, 2974, 666, 667, 2974, 2974, 664, 03449 665, 669, 664, 670, 2974, 666, 667, 1197, 2974, 2974, 03450 665, 669, 2892, 670, 2974, 666, 667, 2974, 2974, 664, 03451 2974, 669, 664, 670, 2974, 2974, 2746, 2974, 1476, 664, 03452 665, 1197, 664, 1476, 1476, 666, 667, 2974, 1476, 2344, 03453 665, 669, 2974, 670, 2974, 666, 667, 664, 2974, 2974, 03454 664, 669, 2974, 670, 2974, 1197, 984, 664, 665, 1197, 03455 664, 984, 984, 666, 667, 2974, 984, 2974, 665, 669, 03456 03457 2974, 670, 664, 666, 667, 664, 2974, 2974, 2974, 669, 03458 2974, 670, 2974, 665, 2345, 2974, 2974, 664, 666, 667, 03459 664, 2974, 2346, 2974, 669, 2974, 670, 664, 665, 2974, 03460 664, 2974, 2974, 666, 667, 2974, 2974, 664, 665, 669, 03461 664, 670, 2974, 666, 667, 2974, 2974, 2348, 665, 669, 03462 2974, 670, 664, 666, 667, 664, 2974, 698, 2974, 669, 03463 2974, 670, 664, 665, 2974, 664, 2974, 2974, 666, 667, 03464 2974, 2974, 2349, 665, 669, 834, 670, 2350, 666, 667, 03465 834, 834, 2974, 2974, 669, 834, 670, 664, 2974, 2974, 03466 664, 2974, 2557, 2557, 2557, 2557, 2974, 2351, 665, 2974, 03467 03468 2974, 2974, 664, 666, 667, 664, 2353, 2352, 2974, 669, 03469 2974, 670, 664, 665, 2558, 664, 1197, 2974, 666, 667, 03470 2974, 2974, 664, 665, 669, 664, 670, 2974, 666, 667, 03471 2974, 2974, 2974, 665, 669, 2974, 670, 664, 666, 667, 03472 664, 2974, 2974, 2974, 669, 842, 670, 2974, 665, 664, 03473 842, 842, 664, 666, 667, 842, 2974, 2354, 2355, 669, 03474 665, 670, 2974, 2974, 664, 666, 667, 664, 1197, 2558, 03475 2974, 669, 2974, 670, 664, 665, 2974, 664, 2974, 2974, 03476 666, 667, 2974, 2974, 2974, 665, 669, 699, 670, 2974, 03477 666, 667, 698, 2974, 664, 2974, 669, 664, 670, 2974, 03478 03479 2828, 1601, 1601, 2828, 2974, 665, 2974, 2974, 2974, 664, 03480 666, 667, 664, 2974, 2974, 2974, 669, 2974, 670, 698, 03481 665, 1197, 1993, 2974, 664, 666, 667, 664, 2356, 2974, 03482 2974, 669, 2974, 670, 664, 665, 2974, 664, 2974, 2974, 03483 666, 667, 2974, 2974, 664, 665, 669, 664, 670, 2974, 03484 666, 667, 698, 2974, 2974, 665, 669, 2974, 670, 2974, 03485 666, 667, 2974, 2974, 664, 2974, 669, 664, 670, 883, 03486 875, 875, 883, 664, 2974, 665, 664, 2974, 2974, 1197, 03487 666, 667, 2974, 699, 665, 2974, 669, 2974, 670, 666, 03488 667, 885, 2974, 886, 2974, 669, 2358, 670, 2974, 2974, 03489 03490 2974, 2974, 2357, 1208, 1209, 1208, 1208, 1209, 1208, 1208, 03491 1208, 1208, 1208, 1208, 1208, 1210, 1208, 1208, 1208, 1208, 03492 1211, 1212, 1208, 2974, 2360, 2362, 1213, 1208, 1214, 1208, 03493 1208, 1208, 916, 664, 2974, 2974, 664, 916, 916, 893, 03494 2974, 2974, 916, 2974, 665, 664, 2974, 2974, 664, 666, 03495 667, 1208, 1208, 1208, 1208, 669, 665, 670, 2974, 2974, 03496 2974, 666, 667, 664, 2974, 2974, 664, 669, 2974, 670, 03497 2974, 2974, 2974, 699, 665, 664, 2974, 2974, 664, 666, 03498 667, 1208, 1208, 1208, 1208, 669, 665, 670, 2974, 2361, 03499 664, 666, 667, 664, 2974, 2974, 2974, 669, 924, 670, 03500 03501 1197, 665, 664, 924, 924, 664, 666, 667, 924, 2974, 03502 2974, 2974, 669, 665, 670, 2974, 2974, 2974, 666, 667, 03503 749, 750, 2974, 749, 669, 2974, 670, 2364, 2363, 2974, 03504 2974, 751, 749, 750, 2974, 749, 752, 753, 2974, 2974, 03505 2974, 945, 669, 751, 670, 2974, 945, 945, 752, 753, 03506 2365, 945, 2974, 2366, 669, 2974, 670, 749, 750, 2974, 03507 749, 2371, 2974, 2974, 2974, 2974, 749, 750, 751, 749, 03508 2974, 2974, 2974, 752, 753, 749, 750, 751, 749, 669, 03509 2974, 670, 752, 753, 749, 750, 751, 749, 669, 2974, 03510 670, 752, 753, 749, 750, 751, 749, 669, 2974, 670, 03511 03512 752, 753, 2974, 2372, 751, 2974, 669, 2974, 670, 752, 03513 753, 2974, 2974, 2373, 2974, 669, 2974, 670, 2374, 749, 03514 750, 2974, 749, 749, 750, 2974, 749, 2375, 2974, 2974, 03515 751, 2974, 1476, 2974, 751, 752, 753, 1476, 1476, 752, 03516 753, 669, 1476, 670, 2974, 669, 2974, 670, 2974, 2376, 03517 749, 750, 2974, 749, 749, 750, 2377, 749, 984, 2974, 03518 2974, 751, 2974, 984, 984, 751, 752, 753, 984, 2974, 03519 752, 753, 669, 2974, 670, 1295, 669, 2974, 670, 781, 03520 2974, 2974, 2974, 2974, 2974, 2974, 749, 750, 2974, 749, 03521 749, 750, 2974, 749, 2777, 2777, 2974, 751, 2974, 1095, 03522 03523 1095, 751, 752, 753, 2378, 2974, 752, 753, 669, 2778, 03524 670, 2974, 669, 2974, 670, 2974, 2974, 2974, 2974, 1295, 03525 1696, 1775, 1776, 1696, 1775, 1696, 1696, 1696, 1696, 1696, 03526 1696, 1696, 1777, 1696, 1696, 1696, 1696, 1778, 1779, 1696, 03527 2380, 2974, 2974, 1701, 1696, 1702, 1696, 1696, 1696, 2974, 03528 749, 750, 2974, 749, 883, 875, 875, 883, 2974, 2974, 03529 1295, 751, 2777, 2974, 2974, 2974, 752, 753, 1696, 1696, 03530 1696, 1696, 669, 2974, 670, 2974, 885, 2974, 886, 2974, 03531 749, 750, 2974, 749, 2379, 2974, 2974, 2746, 2974, 2746, 03532 2746, 751, 749, 750, 2746, 749, 752, 753, 1696, 1696, 03533 03534 1696, 1696, 669, 751, 670, 1295, 2974, 2974, 752, 753, 03535 749, 750, 893, 749, 669, 2974, 670, 2974, 2974, 749, 03536 750, 751, 749, 2974, 2974, 2974, 752, 753, 749, 750, 03537 751, 749, 669, 2974, 670, 752, 753, 2974, 2974, 751, 03538 2381, 669, 2974, 670, 752, 753, 2974, 2974, 749, 750, 03539 669, 749, 670, 2922, 2974, 2974, 2974, 749, 750, 751, 03540 749, 2974, 1295, 2974, 752, 753, 1295, 2746, 751, 2974, 03541 669, 2974, 670, 752, 753, 2974, 2974, 749, 750, 669, 03542 749, 670, 2974, 2974, 2382, 2974, 749, 750, 751, 749, 03543 2974, 2383, 2974, 752, 753, 749, 750, 751, 749, 669, 03544 03545 2974, 670, 752, 753, 2974, 2974, 751, 2974, 669, 2974, 03546 670, 752, 753, 749, 750, 2384, 749, 669, 2974, 670, 03547 2974, 2974, 749, 750, 751, 749, 834, 2385, 2974, 752, 03548 753, 834, 834, 751, 2974, 669, 834, 670, 752, 753, 03549 2974, 2974, 749, 750, 669, 749, 670, 781, 2974, 2974, 03550 2974, 749, 750, 751, 749, 2387, 2386, 2974, 752, 753, 03551 749, 750, 751, 749, 669, 2974, 670, 752, 753, 749, 03552 750, 751, 749, 669, 2974, 670, 752, 753, 749, 750, 03553 751, 749, 669, 2388, 670, 752, 753, 749, 750, 751, 03554 749, 669, 2389, 670, 752, 753, 2390, 2974, 751, 2974, 03555 03556 669, 2974, 670, 752, 753, 1295, 2974, 749, 750, 669, 03557 749, 670, 2974, 2974, 2974, 2974, 749, 750, 751, 749, 03558 2974, 2974, 2974, 752, 753, 1295, 2974, 751, 2974, 669, 03559 2391, 670, 752, 753, 749, 750, 2974, 749, 669, 2974, 03560 670, 2974, 781, 782, 2974, 751, 749, 750, 2974, 749, 03561 752, 753, 2746, 2974, 2746, 2746, 669, 751, 670, 2746, 03562 2974, 2974, 752, 753, 2974, 2974, 2974, 2974, 669, 2974, 03563 670, 2974, 2974, 1295, 2746, 749, 750, 781, 749, 749, 03564 750, 2974, 749, 2974, 2974, 2974, 751, 2974, 1295, 2974, 03565 751, 752, 753, 2974, 2974, 752, 753, 669, 2974, 670, 03566 03567 2974, 669, 2974, 670, 781, 749, 750, 2974, 749, 749, 03568 750, 2974, 749, 2974, 2974, 2974, 751, 2974, 2814, 2222, 03569 751, 752, 753, 2974, 2974, 752, 753, 669, 2974, 670, 03570 2974, 669, 2746, 670, 2974, 2974, 749, 750, 782, 749, 03571 2974, 2974, 2974, 2974, 2974, 1295, 2974, 751, 749, 750, 03572 2974, 749, 752, 753, 2974, 2974, 2974, 842, 669, 751, 03573 670, 2393, 842, 842, 752, 753, 2974, 842, 2974, 2974, 03574 669, 2974, 670, 2392, 1208, 1306, 1307, 1208, 1306, 1208, 03575 1208, 1208, 1208, 1208, 1208, 1208, 1308, 1208, 1208, 1208, 03576 1208, 1309, 1310, 1208, 2974, 2974, 2394, 1213, 1208, 1214, 03577 03578 1208, 1208, 1208, 2974, 2395, 2974, 883, 875, 875, 883, 03579 749, 750, 2974, 749, 883, 875, 875, 883, 2974, 2974, 03580 2974, 751, 1208, 1208, 1208, 1208, 752, 753, 885, 2974, 03581 886, 2974, 669, 2974, 670, 2974, 885, 2974, 886, 2974, 03582 749, 750, 2974, 749, 782, 2974, 2974, 2974, 2974, 2974, 03583 2974, 751, 1208, 1208, 1208, 1208, 752, 753, 749, 750, 03584 2974, 749, 669, 2974, 670, 1295, 2424, 749, 750, 751, 03585 749, 916, 2974, 2974, 752, 753, 916, 916, 751, 893, 03586 669, 916, 670, 752, 753, 749, 750, 2974, 749, 669, 03587 2974, 670, 2396, 2974, 2974, 2974, 751, 908, 908, 908, 03588 03589 908, 752, 753, 2974, 2974, 749, 750, 669, 749, 670, 03590 883, 875, 875, 883, 2974, 2974, 751, 2974, 2974, 2398, 03591 945, 752, 753, 2397, 2974, 945, 945, 669, 2974, 670, 03592 945, 2974, 885, 2974, 886, 2430, 2430, 2430, 2430, 2974, 03593 2974, 2974, 2974, 2974, 2974, 2399, 2531, 2531, 2531, 2531, 03594 2974, 2446, 2974, 2974, 2974, 2974, 2400, 740, 2431, 2974, 03595 2431, 2425, 2974, 2447, 2974, 2974, 2448, 2974, 1770, 2449, 03596 578, 579, 579, 578, 913, 2974, 2465, 2466, 2466, 2465, 03597 2974, 580, 581, 2974, 2974, 581, 2974, 580, 2974, 2432, 03598 2974, 2974, 583, 581, 584, 2974, 2974, 2974, 1602, 2438, 03599 03600 2468, 2433, 2974, 2974, 2434, 2435, 2974, 2436, 2422, 875, 03601 875, 2422, 913, 2974, 2974, 2974, 2974, 2974, 2974, 581, 03602 2974, 984, 578, 579, 579, 578, 984, 984, 2974, 2974, 03603 876, 984, 886, 580, 581, 2974, 2974, 581, 2461, 2476, 03604 2000, 2000, 2476, 2469, 583, 581, 584, 2974, 2974, 2974, 03605 2001, 581, 2974, 2473, 581, 2974, 2974, 2291, 2292, 2292, 03606 2291, 583, 581, 886, 2974, 2974, 2974, 2974, 580, 581, 03607 2974, 581, 581, 2531, 2531, 2531, 2531, 834, 2974, 583, 03608 581, 886, 834, 834, 740, 2974, 2974, 834, 581, 2290, 03609 2000, 2000, 2290, 842, 2974, 1770, 2974, 743, 842, 842, 03610 03611 2001, 581, 2974, 842, 581, 2974, 581, 2292, 2292, 2292, 03612 2292, 583, 581, 886, 2974, 2974, 2974, 664, 580, 581, 03613 664, 2974, 581, 883, 875, 875, 883, 2974, 665, 583, 03614 581, 1094, 1094, 666, 667, 2974, 1095, 1095, 581, 669, 03615 2974, 670, 2974, 2036, 924, 885, 1096, 886, 2509, 924, 03616 924, 2974, 2974, 2974, 924, 2974, 581, 2974, 2037, 1607, 03617 2492, 1609, 1609, 2492, 1607, 1607, 1607, 1607, 1607, 1607, 03618 1607, 1610, 1611, 1607, 1607, 1611, 1607, 1607, 1607, 2568, 03619 2974, 2974, 1612, 1611, 1613, 1607, 1607, 1607, 2974, 2974, 03620 2974, 2974, 2974, 2974, 883, 875, 875, 883, 2974, 1094, 03621 03622 2503, 2504, 2504, 2503, 2974, 2974, 2974, 1607, 1607, 1611, 03623 1607, 2001, 581, 2974, 2974, 581, 885, 2974, 886, 2974, 03624 2974, 2974, 583, 581, 886, 2974, 883, 875, 875, 883, 03625 2504, 2504, 2504, 2504, 2974, 2974, 2974, 1607, 1607, 1607, 03626 1607, 2001, 581, 2974, 664, 581, 2974, 664, 885, 581, 03627 886, 2974, 583, 581, 2974, 665, 664, 2569, 2974, 664, 03628 666, 667, 2974, 2974, 2974, 2505, 669, 665, 670, 2974, 03629 2974, 2974, 666, 667, 664, 2974, 2974, 664, 669, 581, 03630 670, 893, 945, 664, 2974, 665, 664, 945, 945, 2974, 03631 666, 667, 945, 2974, 665, 2505, 669, 2974, 670, 666, 03632 03633 667, 664, 2974, 2974, 664, 669, 2974, 670, 2510, 2974, 03634 664, 2974, 665, 664, 2974, 2974, 2974, 666, 667, 664, 03635 2974, 665, 664, 669, 1197, 670, 666, 667, 2511, 2974, 03636 665, 2974, 669, 2974, 670, 666, 667, 2974, 2974, 2974, 03637 2974, 669, 664, 670, 2974, 664, 664, 2974, 698, 664, 03638 2974, 2974, 2974, 665, 2974, 2512, 2974, 665, 666, 667, 03639 2974, 2974, 666, 667, 669, 2974, 670, 2974, 669, 664, 03640 670, 2974, 664, 2818, 1601, 2819, 2818, 2974, 2974, 2974, 03641 665, 2513, 2974, 2974, 2747, 666, 667, 664, 2974, 699, 03642 664, 669, 2974, 670, 2974, 2820, 2514, 664, 665, 2974, 03643 03644 664, 2974, 2974, 666, 667, 2974, 2515, 664, 665, 669, 03645 664, 670, 2974, 666, 667, 2974, 2974, 664, 665, 669, 03646 664, 670, 2974, 666, 667, 2974, 2974, 2974, 665, 669, 03647 2974, 670, 664, 666, 667, 664, 2974, 2974, 2974, 669, 03648 2974, 670, 2974, 665, 699, 2974, 699, 664, 666, 667, 03649 664, 1197, 2974, 2974, 669, 2974, 670, 2974, 665, 2517, 03650 2974, 2974, 2974, 666, 667, 664, 2974, 2974, 664, 669, 03651 2974, 670, 2974, 1197, 664, 2974, 665, 664, 2974, 2974, 03652 2974, 666, 667, 664, 2518, 665, 664, 669, 2974, 670, 03653 666, 667, 664, 2974, 665, 664, 669, 2974, 670, 666, 03654 03655 667, 664, 2974, 665, 664, 669, 2974, 670, 666, 667, 03656 664, 2974, 665, 664, 669, 1197, 670, 666, 667, 664, 03657 2974, 665, 664, 669, 2974, 670, 666, 667, 2974, 2520, 03658 665, 2519, 669, 2974, 670, 666, 667, 2974, 2974, 984, 03659 2974, 669, 2974, 670, 984, 984, 2974, 2974, 1197, 984, 03660 2974, 1197, 664, 2974, 2974, 664, 664, 2974, 2974, 664, 03661 2974, 2974, 2974, 665, 2974, 2974, 2522, 665, 666, 667, 03662 2974, 2521, 666, 667, 669, 2974, 670, 2974, 669, 2974, 03663 670, 2974, 2974, 2974, 2974, 2974, 2974, 2523, 1696, 1697, 03664 1696, 1696, 1697, 1696, 1696, 1696, 1696, 1696, 1696, 1696, 03665 03666 1698, 1696, 1696, 1696, 1696, 1699, 1700, 1696, 2974, 2974, 03667 2974, 1701, 1696, 1702, 1696, 1696, 1696, 2974, 2525, 2974, 03668 2974, 883, 875, 875, 883, 2974, 2526, 2974, 2974, 2974, 03669 664, 2974, 2974, 664, 2974, 2974, 1696, 1696, 1696, 1696, 03670 2524, 665, 2974, 885, 2974, 886, 666, 667, 664, 2974, 03671 2974, 664, 669, 2974, 670, 2974, 2974, 2974, 2974, 665, 03672 664, 2974, 2974, 664, 666, 667, 1696, 1696, 1696, 1696, 03673 669, 665, 670, 2974, 2974, 2974, 666, 667, 664, 2974, 03674 2974, 664, 669, 2974, 670, 2974, 2527, 664, 2974, 665, 03675 664, 893, 2974, 2974, 666, 667, 664, 2974, 665, 664, 03676 03677 669, 2974, 670, 666, 667, 1197, 2974, 665, 2974, 669, 03678 2974, 670, 666, 667, 664, 2974, 834, 664, 669, 2974, 03679 670, 834, 834, 2974, 2528, 665, 834, 2974, 2974, 2974, 03680 666, 667, 749, 750, 2529, 749, 669, 2974, 670, 2974, 03681 2974, 2974, 2974, 751, 749, 750, 2974, 749, 752, 753, 03682 1197, 2974, 842, 2974, 669, 751, 670, 842, 842, 2530, 03683 752, 753, 842, 2536, 749, 750, 669, 749, 670, 2974, 03684 2974, 2974, 2974, 2974, 2974, 751, 749, 750, 2974, 749, 03685 752, 753, 2974, 2974, 698, 2974, 669, 751, 670, 2974, 03686 2974, 2974, 752, 753, 749, 750, 2974, 749, 669, 2974, 03687 03688 670, 2974, 2974, 749, 750, 751, 749, 2974, 2537, 2974, 03689 752, 753, 749, 750, 751, 749, 669, 2974, 670, 752, 03690 753, 2974, 2974, 751, 2974, 669, 2974, 670, 752, 753, 03691 2538, 2974, 1295, 2974, 669, 2974, 670, 2974, 749, 750, 03692 2974, 749, 2974, 2974, 2974, 2974, 916, 749, 750, 751, 03693 749, 916, 916, 2974, 752, 753, 916, 2974, 751, 781, 03694 669, 2974, 670, 752, 753, 2974, 2746, 749, 750, 669, 03695 749, 670, 2747, 2746, 2539, 2974, 2974, 2974, 751, 2746, 03696 2974, 2974, 782, 752, 753, 749, 750, 2817, 749, 669, 03697 2974, 670, 2974, 2974, 749, 750, 751, 749, 2540, 2974, 03698 03699 2974, 752, 753, 749, 750, 751, 749, 669, 2974, 670, 03700 752, 753, 749, 750, 751, 749, 669, 2974, 670, 752, 03701 753, 2974, 782, 751, 2974, 669, 782, 670, 752, 753, 03702 2974, 2974, 749, 750, 669, 749, 670, 2974, 2746, 1295, 03703 2746, 749, 750, 751, 749, 2974, 2541, 2974, 752, 753, 03704 749, 750, 751, 749, 669, 2974, 670, 752, 753, 1295, 03705 2974, 751, 2974, 669, 2542, 670, 752, 753, 749, 750, 03706 2974, 749, 669, 2974, 670, 2974, 2974, 749, 750, 751, 03707 749, 2974, 2974, 2974, 752, 753, 749, 750, 751, 749, 03708 669, 2974, 670, 752, 753, 749, 750, 751, 749, 669, 03709 03710 1295, 670, 752, 753, 2974, 2544, 751, 2543, 669, 2974, 03711 670, 752, 753, 749, 750, 924, 749, 669, 2974, 670, 03712 924, 924, 2974, 2974, 751, 924, 2974, 2974, 2974, 752, 03713 753, 749, 750, 1295, 749, 669, 1295, 670, 2974, 2974, 03714 2974, 2974, 751, 749, 750, 2974, 749, 752, 753, 2974, 03715 2974, 2546, 2974, 669, 751, 670, 2545, 2974, 2974, 752, 03716 753, 749, 750, 2974, 749, 669, 2974, 670, 2974, 2974, 03717 749, 750, 751, 749, 2974, 2974, 2974, 752, 753, 2547, 03718 2974, 751, 2974, 669, 2974, 670, 752, 753, 2974, 2974, 03719 2974, 2974, 669, 2974, 670, 749, 750, 2974, 749, 2549, 03720 03721 2974, 2548, 2974, 2974, 749, 750, 751, 749, 2974, 2974, 03722 2974, 752, 753, 749, 750, 751, 749, 669, 1295, 670, 03723 752, 753, 749, 750, 751, 749, 669, 2974, 670, 752, 03724 753, 2974, 2974, 751, 2550, 669, 2974, 670, 752, 753, 03725 2430, 2430, 2430, 2430, 669, 2974, 670, 2466, 2466, 2466, 03726 2466, 2551, 2974, 2466, 2466, 2466, 2466, 2974, 580, 2465, 03727 2466, 2466, 2465, 2431, 580, 2431, 2974, 1295, 945, 1993, 03728 580, 2468, 2974, 945, 945, 1993, 2552, 2468, 945, 664, 03729 2974, 1602, 664, 2468, 2974, 2974, 2974, 2974, 2974, 2974, 03730 665, 2974, 781, 2974, 2572, 666, 667, 2465, 2466, 2466, 03731 03732 2465, 669, 2974, 670, 2974, 2974, 2573, 2974, 580, 2574, 03733 2575, 2974, 2576, 2476, 2000, 2000, 2476, 913, 2974, 1602, 03734 2598, 2468, 2974, 664, 2001, 581, 664, 2974, 581, 2974, 03735 2636, 2974, 2974, 2974, 665, 583, 581, 886, 984, 666, 03736 667, 2974, 2974, 984, 984, 669, 2974, 670, 984, 2974, 03737 2974, 2974, 2974, 2599, 2974, 2974, 2974, 2974, 2974, 2974, 03738 2974, 2974, 581, 2606, 2607, 2608, 2608, 2607, 2606, 2606, 03739 2606, 2606, 2606, 2606, 2606, 2609, 2610, 2606, 2606, 2610, 03740 2606, 2606, 2606, 2974, 2974, 2974, 2611, 2610, 2612, 2606, 03741 2606, 2606, 2974, 1197, 2974, 2974, 2974, 2974, 2974, 2531, 03742 03743 2531, 2531, 2531, 2974, 2974, 2503, 2504, 2504, 2503, 2974, 03744 740, 2606, 2606, 2610, 2606, 2613, 2001, 581, 2974, 2746, 03745 581, 1770, 2974, 743, 2974, 2762, 2763, 583, 581, 886, 03746 2764, 2764, 2746, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 03747 2765, 2606, 2606, 2606, 2606, 2621, 2000, 2000, 2621, 2974, 03748 2504, 2504, 2504, 2504, 581, 2974, 2001, 581, 2974, 2974, 03749 581, 2001, 581, 664, 2974, 581, 664, 583, 581, 886, 03750 2505, 2746, 583, 581, 665, 2974, 2974, 2762, 2763, 666, 03751 667, 2974, 2764, 2764, 2746, 669, 664, 670, 2974, 664, 03752 2974, 2746, 2765, 2763, 581, 2974, 2974, 665, 2974, 581, 03753 03754 2974, 2622, 666, 667, 2974, 2623, 2974, 2974, 669, 664, 03755 670, 2974, 664, 2624, 2974, 2505, 2974, 2625, 664, 1197, 03756 665, 664, 2974, 2974, 2974, 666, 667, 2974, 2974, 665, 03757 2974, 669, 2974, 670, 666, 667, 664, 2974, 2637, 664, 03758 669, 2974, 670, 2746, 2974, 2763, 664, 665, 2974, 664, 03759 2974, 2974, 666, 667, 2974, 2974, 664, 665, 669, 664, 03760 670, 2974, 666, 667, 2974, 699, 2974, 665, 669, 2638, 03761 670, 664, 666, 667, 664, 2974, 2974, 2974, 669, 2974, 03762 670, 664, 665, 2974, 664, 2974, 2974, 666, 667, 2974, 03763 2974, 664, 665, 669, 664, 670, 2974, 666, 667, 2974, 03764 03765 2974, 664, 665, 669, 664, 670, 1197, 666, 667, 1197, 03766 2640, 664, 665, 669, 664, 670, 2974, 666, 667, 2974, 03767 2974, 2974, 665, 669, 2974, 670, 2974, 666, 667, 664, 03768 2974, 2974, 664, 669, 2974, 670, 2974, 1197, 664, 1197, 03769 665, 664, 2974, 2974, 2974, 666, 667, 2641, 2974, 665, 03770 2974, 669, 2974, 670, 666, 667, 2974, 2974, 2974, 2974, 03771 669, 2974, 670, 664, 2974, 2974, 664, 2974, 2974, 1197, 03772 2974, 2974, 2974, 664, 665, 2974, 664, 2974, 2642, 666, 03773 667, 2974, 2974, 2643, 665, 669, 2974, 670, 664, 666, 03774 667, 664, 2974, 2974, 2974, 669, 2974, 670, 664, 665, 03775 03776 2974, 664, 2974, 2644, 666, 667, 2974, 2974, 2974, 665, 03777 669, 2974, 670, 664, 666, 667, 664, 2974, 2974, 1197, 03778 669, 2974, 670, 2974, 665, 749, 750, 2974, 749, 666, 03779 667, 2974, 2974, 2974, 2974, 669, 751, 670, 2645, 2974, 03780 2974, 752, 753, 2974, 1197, 2974, 2974, 669, 2974, 670, 03781 2974, 749, 750, 698, 749, 749, 750, 2974, 749, 2974, 03782 2974, 2974, 751, 2974, 2974, 2974, 751, 752, 753, 1197, 03783 2974, 752, 753, 669, 2974, 670, 2647, 669, 2974, 670, 03784 749, 750, 2974, 749, 749, 750, 2974, 749, 2974, 2974, 03785 2974, 751, 2974, 2974, 2974, 751, 752, 753, 2974, 2974, 03786 03787 752, 753, 669, 2974, 670, 2974, 669, 1295, 670, 2974, 03788 749, 750, 2974, 749, 2974, 2974, 2974, 2974, 2974, 2974, 03789 2974, 751, 2974, 2974, 2974, 1295, 752, 753, 749, 750, 03790 2974, 749, 669, 2974, 670, 2974, 782, 2974, 2974, 751, 03791 749, 750, 2974, 749, 752, 753, 2974, 2974, 2974, 2974, 03792 669, 751, 670, 2974, 1295, 2974, 752, 753, 2819, 1601, 03793 2819, 2819, 669, 2974, 670, 2974, 2974, 749, 750, 2747, 03794 749, 2974, 2974, 1295, 2974, 2974, 749, 750, 751, 749, 03795 2860, 2974, 2648, 752, 753, 749, 750, 751, 749, 669, 03796 2974, 670, 752, 753, 749, 750, 751, 749, 669, 2974, 03797 03798 670, 752, 753, 2974, 2974, 751, 2974, 669, 1295, 670, 03799 752, 753, 2974, 2974, 749, 750, 669, 749, 670, 2974, 03800 2974, 2974, 2974, 1295, 2974, 751, 749, 750, 2974, 749, 03801 752, 753, 2649, 2974, 2974, 2974, 669, 751, 670, 2974, 03802 2974, 2974, 752, 753, 749, 750, 2974, 749, 669, 2974, 03803 670, 2974, 2974, 1295, 2974, 751, 2974, 2974, 2974, 2650, 03804 752, 753, 749, 750, 2974, 749, 669, 2974, 670, 2974, 03805 1295, 749, 750, 751, 749, 2974, 2974, 2974, 752, 753, 03806 2974, 2974, 751, 2974, 669, 2974, 670, 752, 753, 2974, 03807 2974, 2651, 2974, 669, 2974, 670, 883, 875, 875, 883, 03808 03809 1295, 2466, 2466, 2466, 2466, 2974, 2974, 2974, 2466, 2466, 03810 2466, 2466, 580, 2465, 2466, 2466, 2465, 781, 885, 580, 03811 886, 2974, 2974, 1993, 580, 2468, 2974, 1295, 2974, 2974, 03812 1993, 2974, 2468, 2974, 2974, 1602, 2974, 2468, 2684, 2000, 03813 2000, 2684, 2974, 2000, 2000, 2000, 2000, 2974, 2974, 2001, 03814 581, 2974, 2209, 581, 2001, 581, 664, 2974, 581, 664, 03815 583, 581, 2685, 2974, 2675, 583, 581, 665, 2818, 1601, 03816 2819, 2818, 666, 667, 2974, 2974, 2974, 2974, 669, 2747, 03817 670, 2676, 2974, 2974, 2974, 2780, 2974, 581, 2974, 2974, 03818 2860, 2974, 581, 2689, 2690, 1609, 2691, 2690, 2689, 2689, 03819 03820 2689, 2689, 2689, 2689, 2689, 2692, 2693, 2689, 2689, 2693, 03821 2689, 2689, 2689, 2694, 2694, 2694, 2695, 2693, 2696, 2689, 03822 2689, 2689, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 03823 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 03824 2694, 2689, 2689, 2693, 2689, 2694, 2694, 2694, 2694, 2694, 03825 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 03826 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 03827 2694, 2689, 2689, 2689, 2689, 2617, 2618, 579, 2617, 2974, 03828 2618, 2618, 579, 2618, 2974, 2974, 580, 581, 2974, 2974, 03829 581, 580, 581, 2974, 2974, 581, 2974, 583, 581, 886, 03830 03831 2974, 2974, 583, 581, 2619, 579, 579, 2619, 2974, 2974, 03832 2466, 2466, 2466, 2466, 2974, 580, 581, 2974, 2974, 581, 03833 664, 580, 2974, 664, 581, 2974, 583, 581, 886, 581, 03834 664, 665, 1993, 664, 2468, 2974, 666, 667, 2974, 2974, 03835 664, 665, 669, 664, 670, 2974, 666, 667, 2974, 2974, 03836 2974, 665, 669, 581, 670, 2974, 666, 667, 2697, 2710, 03837 664, 2974, 669, 664, 670, 2974, 2974, 2974, 2974, 664, 03838 2974, 665, 664, 2974, 2974, 2974, 666, 667, 2735, 2974, 03839 665, 2974, 669, 2974, 670, 666, 667, 664, 2974, 2974, 03840 664, 669, 2974, 670, 2712, 2974, 2974, 664, 665, 2711, 03841 03842 664, 2974, 2974, 666, 667, 2974, 2974, 2974, 665, 669, 03843 2974, 670, 664, 666, 667, 664, 1197, 2974, 2974, 669, 03844 2974, 670, 664, 665, 1197, 664, 2974, 2974, 666, 667, 03845 2974, 2974, 2974, 665, 669, 2974, 670, 2974, 666, 667, 03846 749, 750, 2974, 749, 669, 2974, 670, 2974, 2974, 2714, 03847 2974, 751, 2974, 2974, 2974, 2713, 752, 753, 749, 750, 03848 2974, 749, 669, 2974, 670, 2974, 2974, 749, 750, 751, 03849 749, 2974, 2715, 2974, 752, 753, 2974, 2974, 751, 2716, 03850 669, 2974, 670, 752, 753, 749, 750, 2974, 749, 669, 03851 2974, 670, 1197, 2974, 749, 750, 751, 749, 2974, 2974, 03852 03853 2974, 752, 753, 2974, 2974, 751, 2974, 669, 2974, 670, 03854 752, 753, 2974, 2974, 1295, 2974, 669, 2974, 670, 2974, 03855 2974, 2974, 1295, 2974, 2465, 2466, 2466, 2465, 2684, 2000, 03856 2000, 2684, 2974, 2974, 2974, 580, 2974, 2974, 664, 2001, 03857 581, 664, 2974, 581, 2974, 2717, 1602, 2974, 2468, 665, 03858 583, 581, 2685, 2974, 666, 667, 2748, 2000, 2749, 2748, 03859 669, 2974, 670, 2974, 1295, 2974, 2974, 2750, 2751, 2974, 03860 2974, 2751, 2749, 2000, 2749, 2749, 2736, 581, 2752, 2751, 03861 2753, 2974, 2974, 2754, 2751, 2974, 2974, 2751, 2974, 2974, 03862 664, 2974, 2974, 664, 2752, 2751, 2746, 2974, 2746, 2746, 03863 03864 2974, 665, 2974, 2746, 2974, 2751, 666, 667, 2781, 2974, 03865 2974, 2974, 669, 2974, 670, 2974, 2974, 2974, 2746, 2974, 03866 2974, 2751, 2746, 2756, 579, 2757, 2756, 2746, 2746, 2746, 03867 2746, 2746, 2746, 2746, 2758, 2751, 2746, 2746, 2751, 2746, 03868 2746, 2746, 2782, 2974, 2974, 2752, 2751, 2759, 2746, 2746, 03869 2746, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2465, 2466, 03870 2466, 2465, 2974, 2774, 2000, 2000, 2774, 2974, 2974, 580, 03871 2746, 2746, 2751, 2746, 2001, 581, 2746, 2974, 581, 2974, 03872 1602, 2974, 2468, 2974, 2974, 583, 581, 2775, 2430, 2430, 03873 2430, 2430, 2974, 664, 2974, 2974, 664, 2974, 2974, 2974, 03874 03875 2746, 2746, 2746, 2746, 665, 664, 2974, 2974, 664, 666, 03876 667, 2431, 581, 2431, 2974, 669, 665, 670, 2974, 2974, 03877 664, 666, 667, 664, 2974, 2974, 2974, 669, 2802, 670, 03878 2974, 665, 2974, 2974, 2974, 2974, 666, 667, 2974, 2974, 03879 749, 750, 669, 749, 670, 2974, 2974, 2974, 2974, 2783, 03880 2974, 751, 2974, 2974, 2974, 2974, 752, 753, 2575, 2974, 03881 749, 750, 669, 749, 670, 913, 2974, 2974, 2974, 2786, 03882 2974, 751, 2974, 2974, 2784, 2974, 752, 753, 2466, 2466, 03883 2466, 2466, 669, 2974, 670, 2974, 2974, 2974, 2974, 580, 03884 2974, 2974, 2748, 2000, 2749, 2748, 2785, 2974, 2974, 2974, 03885 03886 1993, 2974, 2468, 2750, 2751, 2974, 2974, 2751, 2974, 2749, 03887 2000, 2749, 2749, 2974, 2752, 2751, 2753, 2974, 2974, 2974, 03888 2754, 2751, 2974, 2974, 2751, 2974, 2974, 2974, 2974, 2974, 03889 2801, 2752, 2751, 2974, 2974, 2974, 2787, 2756, 579, 2757, 03890 2756, 2751, 2757, 579, 2757, 2757, 2974, 2974, 2758, 2751, 03891 2974, 2974, 2751, 2758, 2751, 2974, 2974, 2751, 2751, 2752, 03892 2751, 2753, 2974, 664, 2752, 2751, 664, 2819, 1601, 2819, 03893 2819, 2974, 2974, 2974, 665, 2974, 2974, 2974, 2747, 666, 03894 667, 2974, 2974, 2974, 2974, 669, 2751, 2831, 2974, 2860, 03895 2974, 2751, 2746, 2811, 1595, 2811, 2811, 2746, 2746, 2746, 03896 03897 2812, 2746, 2746, 2746, 2747, 2746, 2746, 2746, 2746, 2746, 03898 2746, 2746, 2746, 2746, 2746, 2813, 2746, 2746, 2746, 2746, 03899 2746, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 03900 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 03901 2746, 2746, 2746, 2746, 2814, 2814, 2814, 2814, 2814, 2814, 03902 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2815, 03903 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 03904 2746, 2746, 2746, 2816, 2746, 2974, 2974, 2974, 2974, 2974, 03905 2762, 2763, 2974, 2974, 2974, 2764, 2764, 2746, 2774, 2000, 03906 2000, 2774, 2974, 2974, 2974, 2765, 2974, 2974, 664, 2001, 03907 03908 581, 664, 664, 581, 2974, 664, 2974, 2974, 2974, 665, 03909 583, 581, 2775, 665, 666, 667, 2974, 2974, 666, 667, 03910 669, 2974, 670, 2974, 669, 664, 670, 2974, 664, 2974, 03911 2974, 2974, 2974, 2974, 2830, 2974, 665, 581, 2974, 2974, 03912 664, 666, 667, 664, 2974, 2974, 2746, 669, 2763, 670, 03913 664, 665, 2974, 664, 2974, 2974, 666, 667, 2974, 2974, 03914 2974, 665, 669, 2974, 670, 2974, 666, 667, 2974, 2974, 03915 2974, 2832, 669, 2974, 670, 749, 750, 2974, 749, 908, 03916 908, 908, 908, 2974, 2974, 2974, 751, 2907, 2466, 2908, 03917 2907, 752, 753, 2974, 2974, 2833, 2974, 669, 2876, 670, 03918 03919 2974, 749, 750, 2974, 749, 2974, 2834, 2974, 2974, 2860, 03920 2781, 2835, 751, 2466, 2466, 2466, 2466, 752, 753, 2465, 03921 2466, 2466, 2465, 669, 580, 670, 2974, 2974, 2974, 2974, 03922 580, 2974, 2974, 2432, 2974, 1993, 664, 2468, 2974, 664, 03923 2974, 1602, 2974, 2468, 2974, 2433, 2974, 665, 2434, 2974, 03924 2974, 2436, 666, 667, 2974, 2974, 913, 2836, 669, 2974, 03925 670, 2974, 2908, 2466, 2908, 2908, 1197, 2974, 2974, 2974, 03926 2974, 2974, 2974, 2758, 2974, 2974, 2974, 2974, 2974, 2974, 03927 2974, 2974, 2974, 2850, 2860, 2851, 2746, 2857, 648, 2857, 03928 2857, 2746, 2746, 2746, 2858, 2746, 2746, 2746, 2747, 2746, 03929 03930 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 03931 2746, 2746, 2746, 2746, 2746, 2859, 2859, 2859, 2859, 2859, 03932 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 03933 2859, 2859, 2859, 2859, 2746, 2746, 2746, 2746, 2859, 2859, 03934 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 03935 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 03936 2859, 2859, 2859, 2859, 2746, 2746, 2746, 2746, 664, 2974, 03937 2974, 664, 664, 2974, 2974, 664, 2974, 2974, 2974, 665, 03938 2974, 2974, 2974, 665, 666, 667, 2974, 2974, 666, 667, 03939 669, 2974, 670, 2974, 669, 664, 670, 2974, 664, 2974, 03940 03941 2974, 2974, 2974, 2974, 749, 750, 665, 749, 2974, 2974, 03942 2974, 666, 667, 749, 750, 751, 749, 669, 2974, 670, 03943 752, 753, 2974, 2867, 751, 2974, 669, 2974, 670, 752, 03944 753, 2974, 2974, 2974, 1295, 669, 2974, 670, 2781, 2974, 03945 2848, 579, 2757, 2848, 2974, 2466, 2466, 2466, 2466, 2974, 03946 1197, 2876, 2751, 2974, 2974, 2751, 580, 2974, 2974, 2974, 03947 2974, 2974, 2752, 2751, 2753, 2974, 2974, 1993, 1295, 2468, 03948 2465, 2466, 2466, 2465, 664, 2974, 2974, 664, 2974, 2974, 03949 2974, 580, 2974, 2974, 664, 665, 2974, 664, 2974, 2751, 03950 666, 667, 1602, 2974, 2468, 665, 669, 2974, 670, 2974, 03951 03952 666, 667, 2924, 2466, 2908, 2924, 669, 2974, 670, 2974, 03953 2974, 2877, 2974, 2758, 2974, 2934, 2466, 2908, 2934, 2974, 03954 2974, 2974, 2974, 2974, 2860, 2974, 2876, 2974, 2899, 2974, 03955 2974, 2974, 2974, 2974, 2974, 2974, 2933, 2860, 2878, 2746, 03956 2881, 1087, 2881, 2881, 2746, 2746, 2746, 2882, 2746, 2746, 03957 2746, 2747, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 03958 2746, 2746, 2813, 2746, 2746, 2746, 2746, 2746, 2883, 2883, 03959 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 03960 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2746, 2746, 2746, 03961 2746, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 03962 03963 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 03964 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2746, 2746, 2746, 03965 2884, 2746, 2886, 1182, 2887, 2886, 2746, 2746, 2746, 2746, 03966 2746, 2746, 2746, 2758, 2751, 2746, 2746, 2751, 2746, 2746, 03967 2746, 2888, 2888, 2888, 2746, 2751, 2753, 2746, 2746, 2746, 03968 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 03969 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2746, 03970 2746, 2751, 2746, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 03971 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 03972 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2746, 03973 03974 2746, 2746, 2746, 2746, 2890, 2275, 2890, 2890, 2746, 2746, 03975 2746, 2891, 2746, 2746, 2746, 2747, 2746, 2746, 2746, 2746, 03976 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 03977 2746, 2746, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 03978 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 03979 2892, 2746, 2746, 2746, 2746, 2892, 2892, 2892, 2892, 2892, 03980 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 03981 2893, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 03982 2892, 2746, 2746, 2746, 2894, 2466, 2466, 2466, 2466, 2886, 03983 1182, 2887, 2886, 2974, 2974, 2974, 580, 2974, 2974, 2974, 03984 03985 2758, 2751, 2974, 2974, 2751, 2974, 2974, 1993, 2974, 2468, 03986 2974, 2974, 2751, 2753, 2974, 2974, 2974, 2974, 2974, 2974, 03987 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 03988 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2751, 2974, 03989 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 03990 2974, 2974, 2974, 2906, 2746, 2907, 2466, 2908, 2907, 2746, 03991 2746, 2746, 2746, 2746, 2746, 2746, 2849, 2746, 2746, 2746, 03992 2746, 2746, 2746, 2746, 2909, 2909, 2909, 2820, 2746, 2910, 03993 2746, 2746, 2746, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 03994 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 03995 03996 2909, 2909, 2746, 2746, 2746, 2746, 2909, 2909, 2909, 2909, 03997 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 03998 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 03999 2909, 2909, 2746, 2746, 2746, 2746, 2746, 2746, 2974, 2746, 04000 2746, 2746, 2746, 2746, 2912, 2746, 2746, 2746, 2747, 2746, 04001 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 04002 2746, 2746, 2746, 2746, 2746, 2913, 2913, 2913, 2913, 2913, 04003 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 04004 2913, 2913, 2913, 2913, 2746, 2746, 2746, 2746, 2913, 2913, 04005 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 04006 04007 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 04008 2913, 2913, 2913, 2913, 2746, 2746, 2746, 2746, 2746, 2914, 04009 1575, 2915, 2914, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 04010 2747, 2751, 2746, 2746, 2751, 2746, 2746, 2746, 2916, 2916, 04011 2916, 2813, 2751, 2753, 2746, 2746, 2746, 2916, 2916, 2916, 04012 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 04013 2916, 2916, 2916, 2916, 2916, 2916, 2746, 2746, 2751, 2746, 04014 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 04015 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 2916, 04016 2916, 2916, 2916, 2916, 2916, 2916, 2746, 2746, 2746, 2746, 04017 04018 2746, 2917, 1073, 2917, 2917, 2746, 2746, 2746, 2918, 2746, 04019 2746, 2746, 2747, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 04020 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2919, 04021 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 04022 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2746, 2746, 04023 2746, 2746, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 04024 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 04025 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2746, 2746, 04026 2746, 2746, 2887, 1182, 2887, 2887, 2974, 2974, 2974, 2974, 04027 2974, 2974, 2974, 2758, 2751, 2974, 2974, 2751, 2974, 2974, 04028 04029 2974, 2974, 2974, 2974, 2974, 2751, 2974, 2974, 2974, 2974, 04030 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04031 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04032 2974, 2751, 2746, 2890, 2275, 2890, 2890, 2746, 2746, 2746, 04033 2921, 2746, 2746, 2746, 2747, 2746, 2746, 2746, 2746, 2746, 04034 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 04035 2746, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 04036 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 04037 2746, 2746, 2746, 2746, 2922, 2922, 2922, 2922, 2922, 2922, 04038 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2923, 04039 04040 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 04041 2746, 2746, 2746, 2894, 2746, 2926, 2470, 2926, 2926, 2746, 04042 2746, 2746, 2927, 2746, 2746, 2746, 2747, 2746, 2746, 2746, 04043 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 04044 2746, 2746, 2746, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 04045 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 04046 2928, 2928, 2746, 2746, 2746, 2746, 2928, 2928, 2928, 2928, 04047 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 04048 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 04049 2928, 2928, 2746, 2746, 2746, 2746, 2746, 2934, 2466, 2908, 04050 04051 2934, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2849, 2746, 04052 2746, 2746, 2746, 2746, 2746, 2746, 2935, 2935, 2935, 2860, 04053 2746, 2910, 2746, 2746, 2746, 2935, 2935, 2935, 2935, 2935, 04054 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 04055 2935, 2935, 2935, 2935, 2746, 2746, 2746, 2746, 2935, 2935, 04056 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 04057 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 04058 2935, 2935, 2935, 2935, 2746, 2746, 2746, 2746, 2746, 2853, 04059 2974, 2746, 2853, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 04060 2747, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2937, 2937, 04061 04062 2937, 2854, 2746, 2746, 2746, 2746, 2746, 2937, 2937, 2937, 04063 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 04064 2937, 2937, 2937, 2937, 2937, 2937, 2746, 2746, 2746, 2746, 04065 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 04066 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 04067 2937, 2937, 2937, 2937, 2937, 2937, 2746, 2746, 2746, 2746, 04068 2914, 1575, 2915, 2914, 2974, 2915, 1575, 2915, 2915, 2974, 04069 2974, 2747, 2751, 2974, 2974, 2751, 2747, 2751, 2974, 2974, 04070 2751, 2974, 2813, 2751, 2753, 2974, 2974, 2813, 2751, 2974, 04071 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04072 04073 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2751, 04074 2974, 2974, 2974, 2974, 2751, 2746, 2938, 1579, 2939, 2938, 04075 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2747, 2751, 2746, 04076 2746, 2751, 2746, 2746, 2746, 2940, 2940, 2940, 2746, 2751, 04077 2753, 2746, 2746, 2746, 2940, 2940, 2940, 2940, 2940, 2940, 04078 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 04079 2940, 2940, 2940, 2746, 2746, 2751, 2746, 2940, 2940, 2940, 04080 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 04081 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 04082 2940, 2940, 2940, 2746, 2746, 2746, 2746, 2746, 2944, 2600, 04083 04084 2944, 2944, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2758, 04085 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2945, 2945, 2945, 04086 2746, 2746, 2746, 2746, 2746, 2746, 2945, 2945, 2945, 2945, 04087 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 04088 2945, 2945, 2945, 2945, 2945, 2746, 2746, 2746, 2746, 2945, 04089 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 04090 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 04091 2945, 2945, 2945, 2945, 2945, 2746, 2746, 2746, 2746, 664, 04092 2974, 2974, 664, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04093 665, 2974, 2974, 2974, 2974, 666, 667, 2938, 1579, 2939, 04094 04095 2938, 669, 2974, 670, 2939, 1579, 2939, 2939, 2747, 2751, 04096 2974, 2974, 2751, 2974, 664, 2747, 2751, 664, 2974, 2751, 04097 2751, 2753, 2974, 2974, 2974, 665, 2974, 2751, 2974, 2974, 04098 666, 667, 2973, 579, 579, 2973, 669, 2974, 670, 2974, 04099 2974, 2974, 2974, 580, 581, 2974, 2751, 581, 2949, 2974, 04100 2974, 2974, 2974, 2751, 583, 581, 886, 2974, 2974, 2974, 04101 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04102 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04103 2974, 581, 2974, 2974, 2781, 66, 66, 66, 66, 66, 04104 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 04105 04106 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 04107 66, 66, 66, 66, 75, 75, 75, 75, 75, 75, 04108 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 04109 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 04110 75, 75, 75, 84, 84, 84, 84, 84, 84, 84, 04111 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 04112 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 04113 84, 84, 92, 92, 92, 92, 92, 92, 92, 92, 04114 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 04115 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 04116 04117 92, 102, 102, 102, 102, 102, 102, 102, 102, 102, 04118 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 04119 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 04120 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 04121 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 04122 112, 112, 112, 112, 112, 112, 112, 112, 112, 122, 04123 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 04124 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 04125 122, 122, 122, 122, 122, 122, 122, 122, 131, 131, 04126 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 04127 04128 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 04129 131, 131, 131, 131, 131, 131, 131, 321, 321, 321, 04130 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 04131 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 04132 321, 321, 321, 321, 321, 321, 500, 500, 2974, 2974, 04133 500, 2974, 500, 500, 500, 500, 500, 500, 500, 500, 04134 500, 500, 500, 500, 500, 500, 500, 500, 500, 2974, 04135 500, 500, 500, 500, 500, 504, 504, 2974, 504, 504, 04136 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 04137 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 04138 04139 504, 504, 504, 504, 509, 509, 2974, 2974, 509, 509, 04140 509, 2974, 509, 509, 509, 509, 509, 509, 509, 509, 04141 509, 509, 509, 509, 509, 509, 509, 2974, 509, 509, 04142 509, 509, 509, 517, 517, 2974, 517, 517, 2974, 517, 04143 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04144 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04145 517, 517, 525, 525, 525, 525, 525, 525, 525, 525, 04146 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04147 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04148 525, 533, 533, 2974, 533, 533, 533, 533, 533, 533, 04149 04150 533, 2974, 533, 533, 533, 2974, 533, 533, 533, 533, 04151 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 04152 543, 543, 2974, 2974, 543, 543, 543, 543, 543, 543, 04153 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04154 543, 543, 543, 543, 543, 543, 543, 543, 543, 551, 04155 551, 2974, 551, 551, 551, 551, 551, 551, 551, 2974, 04156 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 04157 551, 551, 551, 551, 551, 551, 551, 551, 564, 564, 04158 564, 564, 2974, 564, 2974, 2974, 2974, 2974, 2974, 2974, 04159 2974, 2974, 2974, 564, 2974, 2974, 2974, 564, 564, 2974, 04160 04161 2974, 2974, 564, 2974, 2974, 564, 567, 567, 2974, 567, 04162 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 04163 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 04164 567, 567, 567, 567, 567, 582, 582, 582, 582, 2974, 04165 2974, 2974, 582, 582, 2974, 582, 2974, 2974, 2974, 582, 04166 582, 582, 582, 2974, 582, 582, 2974, 2974, 582, 582, 04167 650, 650, 650, 650, 2974, 650, 2974, 2974, 2974, 2974, 04168 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 650, 04169 650, 2974, 2974, 2974, 650, 668, 2974, 2974, 668, 2974, 04170 2974, 2974, 668, 2974, 2974, 2974, 668, 668, 2974, 668, 04171 04172 668, 2974, 668, 2974, 668, 668, 2974, 2974, 2974, 668, 04173 735, 735, 735, 735, 2974, 735, 2974, 2974, 2974, 2974, 04174 2974, 2974, 2974, 2974, 2974, 735, 2974, 2974, 2974, 735, 04175 735, 2974, 2974, 2974, 735, 2974, 2974, 735, 741, 741, 04176 741, 741, 2974, 2974, 2974, 741, 2974, 2974, 2974, 2974, 04177 2974, 2974, 741, 741, 2974, 741, 2974, 741, 741, 2974, 04178 2974, 2974, 741, 746, 746, 746, 746, 2974, 746, 2974, 04179 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04180 2974, 2974, 746, 746, 2974, 2974, 2974, 746, 754, 754, 04181 2974, 754, 2974, 2974, 2974, 754, 2974, 2974, 2974, 754, 04182 04183 754, 2974, 754, 754, 2974, 754, 2974, 754, 754, 2974, 04184 2974, 2974, 754, 822, 822, 2974, 2974, 2974, 822, 822, 04185 2974, 2974, 2974, 822, 831, 2974, 831, 2974, 2974, 2974, 04186 2974, 831, 831, 2974, 2974, 2974, 831, 847, 847, 2974, 04187 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04188 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04189 847, 847, 847, 847, 847, 847, 879, 879, 879, 879, 04190 2974, 879, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04191 2974, 879, 2974, 2974, 2974, 879, 879, 2974, 2974, 2974, 04192 879, 2974, 2974, 879, 884, 884, 884, 884, 2974, 2974, 04193 04194 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 884, 884, 04195 2974, 884, 2974, 884, 884, 2974, 2974, 2974, 884, 905, 04196 905, 905, 905, 2974, 905, 2974, 2974, 2974, 2974, 2974, 04197 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 905, 905, 04198 2974, 2974, 2974, 905, 942, 2974, 2974, 942, 2974, 2974, 04199 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 942, 942, 04200 2974, 2974, 2974, 942, 942, 2974, 2974, 2974, 942, 962, 04201 962, 2974, 962, 2974, 962, 962, 2974, 962, 962, 962, 04202 962, 962, 962, 962, 962, 962, 962, 962, 962, 962, 04203 962, 962, 962, 962, 962, 962, 962, 962, 968, 968, 04204 04205 968, 968, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04206 2974, 2974, 968, 968, 2974, 2974, 2974, 968, 968, 2974, 04207 2974, 968, 968, 971, 971, 2974, 971, 971, 2974, 2974, 04208 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 04209 971, 971, 971, 971, 971, 971, 2974, 971, 971, 971, 04210 971, 971, 976, 976, 2974, 976, 976, 2974, 2974, 976, 04211 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 04212 976, 976, 976, 976, 976, 2974, 976, 976, 976, 976, 04213 976, 977, 977, 2974, 977, 977, 977, 977, 977, 977, 04214 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 04215 04216 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, 04217 1005, 1005, 2974, 2974, 2974, 1005, 1005, 2974, 2974, 2974, 04218 1005, 500, 500, 2974, 2974, 500, 2974, 500, 500, 500, 04219 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 04220 500, 500, 500, 500, 2974, 500, 500, 500, 500, 500, 04221 509, 509, 2974, 2974, 509, 509, 509, 2974, 509, 509, 04222 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 04223 509, 509, 509, 2974, 509, 509, 509, 509, 509, 517, 04224 517, 2974, 517, 517, 2974, 517, 517, 517, 517, 517, 04225 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04226 04227 517, 517, 517, 517, 517, 517, 517, 517, 525, 525, 04228 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04229 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04230 525, 525, 525, 525, 525, 525, 525, 533, 533, 2974, 04231 533, 533, 533, 533, 533, 533, 533, 2974, 533, 533, 04232 533, 2974, 533, 533, 533, 533, 533, 533, 533, 533, 04233 533, 533, 533, 533, 533, 533, 543, 543, 2974, 2974, 04234 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04235 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04236 543, 543, 543, 543, 543, 551, 551, 2974, 551, 551, 04237 04238 551, 551, 551, 551, 551, 2974, 551, 551, 551, 551, 04239 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 04240 551, 551, 551, 551, 582, 582, 582, 582, 2974, 2974, 04241 2974, 582, 582, 2974, 582, 2974, 2974, 2974, 582, 582, 04242 582, 582, 2974, 582, 582, 2974, 2974, 582, 582, 1075, 04243 1075, 1075, 1075, 2974, 1075, 2974, 2974, 2974, 2974, 2974, 04244 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1075, 1075, 04245 2974, 2974, 2974, 1075, 567, 567, 2974, 567, 567, 567, 04246 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 04247 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, 04248 04249 567, 567, 567, 1084, 1084, 1084, 1084, 2974, 1084, 2974, 04250 2974, 1084, 1084, 2974, 2974, 2974, 2974, 2974, 1084, 2974, 04251 2974, 2974, 1084, 1084, 2974, 2974, 2974, 1084, 2974, 2974, 04252 1084, 1093, 1093, 2974, 1093, 1093, 2974, 1093, 1093, 1093, 04253 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 1093, 1093, 04254 1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 04255 650, 650, 650, 650, 2974, 650, 2974, 2974, 2974, 2974, 04256 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 650, 04257 650, 2974, 2974, 2974, 650, 1183, 1183, 1183, 1183, 2974, 04258 2974, 2974, 1183, 1183, 2974, 1183, 2974, 2974, 2974, 1183, 04259 04260 2974, 1183, 1183, 2974, 1183, 1183, 2974, 2974, 1183, 1183, 04261 1186, 2974, 2974, 1186, 2974, 2974, 2974, 2974, 2974, 2974, 04262 2974, 2974, 2974, 2974, 1186, 1186, 2974, 1186, 2974, 1186, 04263 1186, 2974, 2974, 2974, 1186, 1189, 2974, 2974, 1189, 2974, 04264 2974, 2974, 2974, 2974, 1189, 2974, 2974, 2974, 2974, 2974, 04265 2974, 2974, 2974, 2974, 1189, 1189, 2974, 2974, 2974, 1189, 04266 668, 2974, 2974, 668, 2974, 2974, 2974, 668, 2974, 2974, 04267 2974, 668, 668, 2974, 668, 668, 2974, 668, 2974, 668, 04268 668, 2974, 2974, 2974, 668, 1191, 1191, 2974, 1191, 1191, 04269 1191, 1191, 1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191, 04270 04271 1191, 1191, 1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974, 04272 1191, 2974, 2974, 1191, 741, 741, 741, 741, 2974, 2974, 04273 2974, 741, 2974, 2974, 2974, 2974, 2974, 2974, 741, 741, 04274 2974, 741, 2974, 741, 741, 2974, 2974, 2974, 741, 1283, 04275 1283, 1283, 1283, 2974, 1283, 2974, 2974, 2974, 2974, 2974, 04276 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1283, 1283, 04277 2974, 2974, 2974, 1283, 1286, 1286, 2974, 1286, 1286, 2974, 04278 1286, 1286, 2974, 2974, 1286, 1286, 1286, 1286, 2974, 1286, 04279 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 04280 2974, 2974, 1286, 746, 746, 746, 746, 2974, 746, 2974, 04281 04282 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04283 2974, 2974, 746, 746, 2974, 2974, 2974, 746, 1290, 1290, 04284 1290, 1290, 2974, 2974, 2974, 1290, 2974, 2974, 2974, 2974, 04285 2974, 2974, 1290, 2974, 2974, 2974, 2974, 1290, 1290, 2974, 04286 2974, 2974, 1290, 754, 754, 2974, 754, 2974, 2974, 2974, 04287 754, 2974, 2974, 2974, 754, 754, 2974, 754, 754, 2974, 04288 754, 2974, 754, 754, 2974, 2974, 2974, 754, 822, 822, 04289 2974, 2974, 2974, 822, 822, 2974, 2974, 2974, 822, 831, 04290 2974, 831, 2974, 2974, 2974, 2974, 831, 831, 2974, 2974, 04291 2974, 831, 847, 847, 2974, 847, 847, 847, 847, 847, 04292 04293 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04294 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04295 847, 884, 884, 884, 884, 2974, 2974, 2974, 2974, 2974, 04296 2974, 2974, 2974, 2974, 2974, 884, 884, 2974, 884, 2974, 04297 884, 884, 2974, 2974, 2974, 884, 905, 905, 905, 905, 04298 2974, 905, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04299 2974, 2974, 2974, 2974, 2974, 905, 905, 2974, 2974, 2974, 04300 905, 1094, 1094, 2974, 1094, 1094, 2974, 1094, 1094, 1094, 04301 1094, 1094, 1094, 2974, 2974, 2974, 1094, 1094, 1094, 1094, 04302 1094, 1094, 1094, 1094, 1094, 1094, 1094, 2974, 1094, 1094, 04303 04304 1436, 2974, 2974, 1436, 2974, 2974, 2974, 2974, 2974, 2974, 04305 2974, 2974, 2974, 2974, 1436, 2974, 2974, 1436, 2974, 1436, 04306 1436, 2974, 2974, 2974, 1436, 942, 2974, 2974, 942, 2974, 04307 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 942, 04308 942, 2974, 2974, 2974, 942, 942, 2974, 2974, 2974, 942, 04309 1472, 1472, 2974, 1472, 2974, 1472, 1472, 1472, 1472, 1472, 04310 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 04311 1472, 1472, 1472, 2974, 1472, 1472, 1472, 1472, 1472, 1474, 04312 1474, 2974, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 04313 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 04314 04315 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 968, 968, 04316 968, 968, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04317 2974, 2974, 968, 968, 2974, 2974, 2974, 968, 968, 2974, 04318 2974, 968, 968, 971, 971, 2974, 971, 971, 2974, 2974, 04319 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 04320 971, 971, 971, 971, 971, 971, 2974, 971, 971, 971, 04321 971, 971, 976, 976, 2974, 976, 976, 2974, 2974, 976, 04322 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 04323 976, 976, 976, 976, 976, 2974, 976, 976, 976, 976, 04324 976, 1005, 1005, 2974, 2974, 2974, 1005, 1005, 2974, 2974, 04325 04326 2974, 1005, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 04327 1509, 1509, 1509, 1509, 1509, 1509, 2974, 1509, 1509, 1509, 04328 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 04329 1509, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 04330 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 04331 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 04332 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 04333 1516, 1516, 1516, 1516, 2974, 1516, 1516, 1516, 1516, 1516, 04334 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1518, 04335 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04336 04337 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04338 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1521, 1521, 04339 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 04340 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 04341 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1524, 1524, 1524, 04342 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 04343 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 04344 1524, 1524, 1524, 1524, 1524, 1524, 500, 500, 2974, 2974, 04345 500, 2974, 500, 500, 500, 500, 500, 500, 500, 500, 04346 500, 500, 500, 500, 500, 500, 500, 500, 500, 2974, 04347 04348 500, 500, 500, 500, 500, 1527, 1527, 1527, 1527, 1527, 04349 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 04350 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 04351 1527, 1527, 1527, 1527, 1529, 1529, 1529, 1529, 1529, 1529, 04352 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 04353 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 04354 1529, 1529, 1529, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 04355 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 04356 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 04357 1531, 1531, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 04358 04359 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 04360 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 04361 1534, 509, 509, 2974, 2974, 509, 509, 509, 2974, 509, 04362 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 04363 509, 509, 509, 509, 2974, 509, 509, 509, 509, 509, 04364 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 04365 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 04366 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1539, 04367 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 04368 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 04369 04370 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1541, 1541, 04371 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 04372 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 04373 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1544, 1544, 1544, 04374 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 04375 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 04376 1544, 1544, 1544, 1544, 1544, 1544, 517, 517, 2974, 517, 04377 517, 2974, 517, 517, 517, 517, 517, 517, 517, 517, 04378 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04379 517, 517, 517, 517, 517, 1547, 1547, 1547, 1547, 1547, 04380 04381 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 04382 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 04383 1547, 1547, 1547, 1547, 1549, 1549, 1549, 1549, 1549, 1549, 04384 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 04385 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 04386 1549, 1549, 1549, 525, 525, 525, 525, 525, 525, 525, 04387 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04388 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04389 525, 525, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 04390 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 04391 04392 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 04393 1557, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 04394 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 04395 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 04396 543, 543, 2974, 2974, 543, 543, 543, 543, 543, 543, 04397 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04398 543, 543, 543, 543, 543, 543, 543, 543, 543, 1563, 04399 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 04400 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 04401 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1565, 1565, 04402 04403 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 04404 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 04405 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1570, 1570, 1570, 04406 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 04407 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 04408 1570, 1570, 1570, 1570, 1570, 1570, 551, 551, 2974, 551, 04409 551, 551, 551, 551, 551, 551, 2974, 551, 551, 551, 04410 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 04411 551, 551, 551, 551, 551, 1572, 1572, 1572, 1572, 1572, 04412 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 04413 04414 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 04415 1572, 1572, 1572, 1572, 1576, 1576, 1576, 1576, 2974, 2974, 04416 2974, 2974, 1576, 2974, 1576, 2974, 2974, 2974, 1576, 1576, 04417 1576, 1576, 2974, 1576, 1576, 2974, 2974, 1576, 1576, 582, 04418 582, 582, 582, 2974, 2974, 2974, 582, 582, 2974, 582, 04419 2974, 2974, 2974, 582, 582, 582, 582, 2974, 582, 582, 04420 2974, 2974, 582, 582, 1075, 1075, 1075, 1075, 2974, 1075, 04421 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04422 2974, 2974, 2974, 1075, 1075, 2974, 2974, 2974, 1075, 1580, 04423 1580, 1580, 1580, 2974, 2974, 2974, 2974, 1580, 2974, 1580, 04424 04425 2974, 2974, 2974, 1580, 2974, 1580, 1580, 2974, 1580, 1580, 04426 2974, 2974, 1580, 1580, 1084, 1084, 1084, 1084, 2974, 1084, 04427 2974, 2974, 1084, 1084, 2974, 2974, 2974, 2974, 2974, 1084, 04428 2974, 2974, 2974, 1084, 1084, 2974, 2974, 2974, 1084, 2974, 04429 2974, 1084, 1587, 1587, 1587, 1587, 2974, 1587, 2974, 2974, 04430 1587, 2974, 2974, 2974, 2974, 2974, 1587, 1587, 2974, 2974, 04431 2974, 1587, 1587, 2974, 2974, 2974, 1587, 2974, 2974, 1587, 04432 1590, 1590, 1590, 1590, 2974, 1590, 2974, 2974, 2974, 2974, 04433 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1590, 04434 1590, 2974, 2974, 2974, 1590, 1071, 1071, 1071, 1071, 2974, 04435 04436 1071, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04437 1071, 2974, 2974, 2974, 1071, 1071, 2974, 2974, 2974, 1071, 04438 2974, 2974, 1071, 564, 564, 564, 564, 2974, 564, 2974, 04439 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 564, 2974, 04440 2974, 2974, 564, 564, 2974, 2974, 2974, 564, 2974, 2974, 04441 564, 1093, 1093, 2974, 1093, 1093, 2974, 1093, 1093, 1093, 04442 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 1093, 1093, 04443 1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 04444 1094, 1094, 2974, 1094, 1094, 2974, 1094, 1094, 1094, 1094, 04445 1094, 1094, 2974, 2974, 2974, 1094, 1094, 1094, 1094, 1094, 04446 04447 1094, 1094, 1094, 1094, 1094, 1094, 2974, 1094, 1094, 1095, 04448 1095, 2974, 1095, 1095, 2974, 1095, 1095, 2974, 2974, 1095, 04449 1095, 1095, 1095, 2974, 1095, 1095, 1095, 1095, 1095, 1095, 04450 1095, 1095, 1095, 1095, 1095, 2974, 2974, 1095, 1183, 1183, 04451 1183, 1183, 2974, 2974, 2974, 1183, 1183, 2974, 1183, 2974, 04452 2974, 2974, 1183, 2974, 1183, 1183, 2974, 1183, 1183, 2974, 04453 2974, 1183, 1183, 1186, 2974, 2974, 1186, 2974, 2974, 2974, 04454 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1186, 1186, 2974, 04455 1186, 2974, 1186, 1186, 2974, 2974, 2974, 1186, 1189, 2974, 04456 2974, 1189, 2974, 2974, 2974, 2974, 2974, 1189, 2974, 2974, 04457 04458 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1189, 1189, 2974, 04459 2974, 2974, 1189, 1688, 2974, 2974, 1688, 2974, 2974, 2974, 04460 2974, 1688, 2974, 2974, 2974, 2974, 2974, 1688, 2974, 2974, 04461 2974, 2974, 1688, 1688, 2974, 2974, 2974, 1688, 1691, 2974, 04462 2974, 1691, 2974, 1691, 2974, 2974, 2974, 2974, 2974, 2974, 04463 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1691, 1691, 2974, 04464 2974, 2974, 1691, 1191, 1191, 2974, 1191, 1191, 1191, 1191, 04465 1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 04466 1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974, 1191, 2974, 04467 2974, 1191, 668, 2974, 2974, 668, 2974, 2974, 2974, 668, 04468 04469 2974, 2974, 2974, 668, 668, 2974, 668, 668, 2974, 668, 04470 2974, 668, 668, 2974, 2974, 2974, 668, 1763, 1763, 1763, 04471 1763, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04472 2974, 1763, 1763, 2974, 2974, 2974, 1763, 1763, 2974, 2974, 04473 2974, 1763, 1283, 1283, 1283, 1283, 2974, 1283, 2974, 2974, 04474 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04475 2974, 1283, 1283, 2974, 2974, 2974, 1283, 1765, 2974, 2974, 04476 1765, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04477 2974, 1765, 2974, 2974, 2974, 2974, 1765, 1765, 2974, 2974, 04478 2974, 1765, 1280, 1280, 1280, 1280, 2974, 1280, 2974, 2974, 04479 04480 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1280, 2974, 2974, 04481 2974, 1280, 1280, 2974, 2974, 2974, 1280, 2974, 2974, 1280, 04482 735, 735, 735, 735, 2974, 735, 2974, 2974, 2974, 2974, 04483 2974, 2974, 2974, 2974, 2974, 735, 2974, 2974, 2974, 735, 04484 735, 2974, 2974, 2974, 735, 2974, 2974, 735, 1286, 1286, 04485 2974, 1286, 1286, 2974, 1286, 1286, 2974, 2974, 1286, 1286, 04486 1286, 1286, 2974, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 04487 1286, 1286, 1286, 1286, 2974, 2974, 1286, 1290, 1290, 1290, 04488 1290, 2974, 2974, 2974, 1290, 2974, 2974, 2974, 2974, 2974, 04489 2974, 1290, 2974, 2974, 2974, 2974, 1290, 1290, 2974, 2974, 04490 04491 2974, 1290, 754, 754, 2974, 754, 2974, 2974, 2974, 754, 04492 2974, 2974, 2974, 754, 754, 2974, 754, 754, 2974, 754, 04493 2974, 754, 754, 2974, 2974, 2974, 754, 822, 822, 2974, 04494 2974, 2974, 822, 822, 2974, 2974, 2974, 822, 1839, 2974, 04495 1839, 2974, 2974, 2974, 2974, 1839, 1839, 2974, 2974, 2974, 04496 1839, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 04497 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 04498 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 04499 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 04500 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 04501 04502 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 847, 04503 847, 2974, 847, 847, 847, 847, 847, 847, 847, 847, 04504 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04505 847, 847, 847, 847, 847, 847, 847, 847, 1859, 1859, 04506 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 04507 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 04508 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1862, 1862, 1862, 04509 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 04510 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 04511 1862, 1862, 1862, 1862, 1862, 1862, 1879, 1879, 1879, 1879, 04512 04513 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04514 1879, 1879, 2974, 1879, 2974, 1879, 1879, 2974, 2974, 2974, 04515 1879, 1412, 1412, 1412, 1412, 2974, 1412, 2974, 2974, 2974, 04516 2974, 2974, 2974, 2974, 2974, 2974, 1412, 2974, 2974, 2974, 04517 1412, 1412, 2974, 2974, 2974, 1412, 2974, 2974, 1412, 1881, 04518 1881, 1881, 1881, 2974, 1881, 2974, 2974, 2974, 2974, 2974, 04519 2974, 2974, 2974, 2974, 1881, 2974, 2974, 2974, 1881, 1881, 04520 2974, 2974, 2974, 1881, 2974, 2974, 1881, 884, 884, 884, 04521 884, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04522 2974, 884, 884, 2974, 884, 2974, 884, 884, 2974, 2974, 04523 04524 2974, 884, 1094, 1094, 2974, 1094, 1094, 2974, 1094, 1094, 04525 1094, 1094, 1094, 1094, 2974, 2974, 2974, 1094, 1094, 1094, 04526 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 2974, 1094, 04527 1094, 1436, 2974, 2974, 1436, 2974, 2974, 2974, 2974, 2974, 04528 2974, 2974, 2974, 2974, 2974, 1436, 2974, 2974, 1436, 2974, 04529 1436, 1436, 2974, 2974, 2974, 1436, 1924, 1924, 2974, 1924, 04530 2974, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 04531 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 2974, 04532 1924, 1924, 1924, 1924, 1924, 1927, 1927, 1927, 1927, 1927, 04533 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 04534 04535 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 04536 1927, 1927, 1927, 1927, 1930, 1930, 1930, 1930, 1930, 1930, 04537 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 04538 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 04539 1930, 1930, 1930, 971, 971, 2974, 971, 971, 2974, 2974, 04540 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 04541 971, 971, 971, 971, 971, 971, 2974, 971, 971, 971, 04542 971, 971, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 04543 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 04544 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 04545 04546 1933, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 04547 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 04548 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 04549 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 04550 2974, 1953, 1953, 1953, 2974, 1953, 1953, 1953, 1953, 1953, 04551 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1955, 04552 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 04553 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 04554 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1512, 1512, 04555 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 04556 04557 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 04558 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1958, 1958, 1958, 04559 1958, 1958, 1958, 1958, 1958, 1958, 1958, 2974, 1958, 1958, 04560 1958, 2974, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 04561 1958, 1958, 1958, 1958, 1958, 1958, 1959, 1959, 1959, 1959, 04562 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 04563 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 04564 1959, 1959, 1959, 1959, 1959, 1518, 1518, 1518, 1518, 1518, 04565 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04566 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04567 04568 1518, 1518, 1518, 1518, 1961, 1961, 1961, 1961, 1961, 1961, 04569 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 04570 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 04571 1961, 1961, 1961, 500, 500, 2974, 2974, 500, 2974, 500, 04572 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 04573 500, 500, 500, 500, 500, 500, 2974, 500, 500, 500, 04574 500, 500, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 04575 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 04576 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 04577 1524, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 04578 04579 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 04580 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 04581 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 04582 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 04583 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1529, 04584 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 04585 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 04586 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1965, 1965, 04587 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 04588 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 04589 04590 1965, 1965, 1965, 1965, 1965, 1965, 1965, 509, 509, 2974, 04591 2974, 509, 509, 509, 2974, 509, 509, 509, 509, 509, 04592 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 04593 2974, 509, 509, 509, 509, 509, 1534, 1534, 1534, 1534, 04594 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 04595 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 04596 1534, 1534, 1534, 1534, 1534, 1966, 1966, 1966, 1966, 1966, 04597 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 04598 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 04599 1966, 1966, 1966, 1966, 1967, 1967, 1967, 1967, 1967, 1967, 04600 04601 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 04602 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 04603 1967, 1967, 1967, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 04604 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 04605 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 04606 1539, 1539, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 04607 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 04608 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 04609 1968, 517, 517, 2974, 517, 517, 2974, 517, 517, 517, 04610 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04611 04612 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04613 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 04614 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 04615 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1969, 04616 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 04617 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 04618 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1969, 1970, 1970, 04619 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 04620 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 04621 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1549, 1549, 1549, 04622 04623 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 04624 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 04625 1549, 1549, 1549, 1549, 1549, 1549, 1971, 1971, 1971, 1971, 04626 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 04627 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 04628 1971, 1971, 1971, 1971, 1971, 1972, 1972, 1972, 1972, 1972, 04629 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 04630 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 04631 1972, 1972, 1972, 1972, 525, 525, 525, 525, 525, 525, 04632 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04633 04634 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04635 525, 525, 525, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 04636 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 04637 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 04638 1975, 1975, 543, 543, 2974, 2974, 543, 543, 543, 543, 04639 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04640 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04641 543, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 04642 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 04643 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 04644 04645 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 04646 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 04647 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1979, 04648 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 04649 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 04650 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1565, 1565, 04651 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 04652 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 04653 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1980, 1980, 1980, 04654 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 04655 04656 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 04657 1980, 1980, 1980, 1980, 1980, 1980, 1570, 1570, 1570, 1570, 04658 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 04659 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 1570, 04660 1570, 1570, 1570, 1570, 1570, 1983, 1983, 1983, 1983, 1983, 04661 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 04662 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 04663 1983, 1983, 1983, 1983, 1572, 1572, 1572, 1572, 1572, 1572, 04664 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 04665 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 1572, 04666 04667 1572, 1572, 1572, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 04668 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 04669 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 04670 1984, 1984, 1576, 1576, 1576, 1576, 2974, 2974, 2974, 2974, 04671 1576, 2974, 1576, 2974, 2974, 2974, 1576, 1576, 1576, 1576, 04672 2974, 1576, 1576, 2974, 2974, 1576, 1576, 582, 582, 582, 04673 582, 2974, 2974, 2974, 582, 582, 2974, 582, 2974, 2974, 04674 2974, 582, 582, 582, 582, 2974, 582, 582, 2974, 2974, 04675 582, 582, 1580, 1580, 1580, 1580, 2974, 2974, 2974, 2974, 04676 1580, 2974, 1580, 2974, 2974, 2974, 1580, 2974, 1580, 1580, 04677 04678 2974, 1580, 1580, 2974, 2974, 1580, 1580, 1587, 1587, 1587, 04679 1587, 2974, 1587, 2974, 2974, 1587, 2974, 2974, 2974, 2974, 04680 2974, 1587, 1587, 2974, 2974, 2974, 1587, 1587, 2974, 2974, 04681 2974, 1587, 2974, 2974, 1587, 1590, 1590, 1590, 1590, 2974, 04682 1590, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04683 2974, 2974, 2974, 2974, 1590, 1590, 2974, 2974, 2974, 1590, 04684 1988, 1988, 1988, 1988, 2974, 1988, 2974, 2974, 1988, 2974, 04685 2974, 2974, 2974, 2974, 1988, 1988, 2974, 2974, 2974, 1988, 04686 1988, 2974, 2974, 2974, 1988, 2974, 2974, 1988, 564, 564, 04687 564, 564, 2974, 564, 2974, 2974, 2974, 2974, 2974, 2974, 04688 04689 2974, 2974, 2974, 564, 2974, 2974, 2974, 564, 564, 2974, 04690 2974, 2974, 564, 2974, 2974, 564, 650, 650, 650, 650, 04691 2974, 650, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04692 2974, 2974, 2974, 2974, 2974, 650, 650, 2974, 2974, 2974, 04693 650, 1093, 1093, 2974, 1093, 1093, 2974, 1093, 1093, 1093, 04694 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 1093, 1093, 04695 1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093, 1093, 04696 1186, 2974, 2974, 1186, 2974, 2974, 2974, 2974, 2974, 2974, 04697 2974, 2974, 2974, 2974, 1186, 1186, 2974, 1186, 2974, 1186, 04698 1186, 2974, 2974, 2974, 1186, 1688, 2974, 2974, 1688, 2974, 04699 04700 2974, 2974, 2974, 1688, 2974, 2974, 2974, 2974, 2974, 1688, 04701 2974, 2974, 2974, 2974, 1688, 1688, 2974, 2974, 2974, 1688, 04702 1691, 2974, 2974, 1691, 2974, 1691, 2974, 2974, 2974, 2974, 04703 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1691, 04704 1691, 2974, 2974, 2974, 1691, 2068, 2974, 2974, 2068, 2974, 04705 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2068, 04706 2068, 2974, 2068, 2974, 2068, 2068, 2974, 2974, 2974, 2068, 04707 668, 2974, 2974, 668, 2974, 2974, 2974, 668, 2974, 2974, 04708 2974, 668, 668, 2974, 668, 668, 2974, 668, 2974, 668, 04709 668, 2974, 2974, 2974, 668, 1191, 1191, 2974, 1191, 1191, 04710 04711 1191, 1191, 1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191, 04712 1191, 1191, 1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974, 04713 1191, 2974, 2974, 1191, 1763, 1763, 1763, 1763, 2974, 2974, 04714 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 1763, 1763, 04715 2974, 2974, 2974, 1763, 1763, 2974, 2974, 2974, 1763, 1765, 04716 2974, 2974, 1765, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04717 2974, 2974, 2974, 1765, 2974, 2974, 2974, 2974, 1765, 1765, 04718 2974, 2974, 2974, 1765, 735, 735, 735, 735, 2974, 735, 04719 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 735, 04720 2974, 2974, 2974, 735, 735, 2974, 2974, 2974, 735, 2974, 04721 04722 2974, 735, 746, 746, 746, 746, 2974, 746, 2974, 2974, 04723 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04724 2974, 746, 746, 2974, 2974, 2974, 746, 754, 754, 2974, 04725 754, 2974, 2974, 2974, 754, 2974, 2974, 2974, 754, 754, 04726 2974, 754, 754, 2974, 754, 2974, 754, 754, 2974, 2974, 04727 2974, 754, 2175, 2175, 2974, 2974, 2974, 2175, 2175, 2974, 04728 2974, 2974, 2175, 822, 822, 2974, 2974, 2974, 822, 822, 04729 2974, 2974, 2974, 822, 1839, 2974, 1839, 2974, 2974, 2974, 04730 2974, 1839, 1839, 2974, 2974, 2974, 1839, 847, 847, 2974, 04731 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04732 04733 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04734 847, 847, 847, 847, 847, 847, 1855, 1855, 1855, 1855, 04735 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 04736 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 1855, 04737 1855, 1855, 1855, 1855, 1855, 1512, 1512, 1512, 1512, 1512, 04738 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 04739 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 04740 1512, 1512, 1512, 1512, 2188, 2188, 2188, 2188, 2188, 2188, 04741 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 04742 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 2188, 04743 04744 2188, 2188, 2188, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 04745 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 04746 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 04747 2190, 2190, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 04748 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 04749 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 04750 1862, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04751 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04752 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04753 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 04754 04755 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 04756 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 1879, 04757 1879, 1879, 1879, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04758 2974, 2974, 2974, 1879, 1879, 2974, 1879, 2974, 1879, 1879, 04759 2974, 2974, 2974, 1879, 2206, 2206, 2206, 2206, 2974, 2974, 04760 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2206, 2206, 04761 2974, 2206, 2974, 2206, 2206, 2974, 2974, 2974, 2206, 884, 04762 884, 884, 884, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04763 2974, 2974, 2974, 884, 884, 2974, 884, 2974, 884, 884, 04764 2974, 2974, 2974, 884, 924, 2974, 2974, 924, 2974, 2974, 04765 04766 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 924, 2974, 04767 2974, 2974, 2974, 924, 924, 2974, 2974, 2974, 924, 2242, 04768 2242, 2974, 2242, 2974, 2242, 2242, 2242, 2242, 2242, 2242, 04769 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 04770 2242, 2242, 2974, 2242, 2242, 2242, 2242, 2242, 971, 971, 04771 2974, 971, 971, 2974, 2974, 971, 971, 971, 971, 971, 04772 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 04773 971, 2974, 971, 971, 971, 971, 971, 1930, 1930, 1930, 04774 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 04775 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 04776 04777 1930, 1930, 1930, 1930, 1930, 1930, 2244, 2244, 2244, 2244, 04778 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 04779 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 04780 2244, 2244, 2244, 2244, 2244, 2245, 2245, 2245, 2245, 2245, 04781 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 04782 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 04783 2245, 2245, 2245, 2245, 1935, 1935, 1935, 1935, 1935, 1935, 04784 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 04785 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 04786 1935, 1935, 1935, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 04787 04788 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 04789 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 04790 2246, 2246, 2259, 2259, 2974, 2974, 2974, 2259, 2259, 2974, 04791 2974, 2974, 2259, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 04792 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 04793 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 04794 1955, 1955, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 04795 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 04796 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 04797 2262, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 04798 04799 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 04800 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 04801 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 04802 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 04803 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 500, 04804 500, 2974, 2974, 500, 2974, 500, 500, 500, 500, 500, 04805 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 04806 500, 500, 2974, 500, 500, 500, 500, 500, 1964, 1964, 04807 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 04808 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 04809 04810 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1965, 1965, 1965, 04811 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 04812 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 04813 1965, 1965, 1965, 1965, 1965, 1965, 509, 509, 2974, 2974, 04814 509, 509, 509, 2974, 509, 509, 509, 509, 509, 509, 04815 509, 509, 509, 509, 509, 509, 509, 509, 509, 2974, 04816 509, 509, 509, 509, 509, 1967, 1967, 1967, 1967, 1967, 04817 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 04818 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 04819 1967, 1967, 1967, 1967, 1968, 1968, 1968, 1968, 1968, 1968, 04820 04821 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 04822 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 04823 1968, 1968, 1968, 517, 517, 2974, 517, 517, 2974, 517, 04824 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04825 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 04826 517, 517, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 04827 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 04828 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 04829 1970, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 04830 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 04831 04832 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 04833 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04834 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 04835 525, 525, 525, 525, 525, 525, 525, 525, 525, 1975, 04836 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 04837 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 04838 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 2264, 2264, 04839 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 04840 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 04841 2264, 2264, 2264, 2264, 2264, 2264, 2264, 543, 543, 2974, 04842 04843 2974, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04844 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, 04845 543, 543, 543, 543, 543, 543, 1979, 1979, 1979, 1979, 04846 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 04847 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 04848 1979, 1979, 1979, 1979, 1979, 1980, 1980, 1980, 1980, 1980, 04849 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 04850 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 1980, 04851 1980, 1980, 1980, 1980, 1983, 1983, 1983, 1983, 1983, 1983, 04852 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 04853 04854 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 04855 1983, 1983, 1983, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 04856 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 04857 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 04858 1984, 1984, 582, 582, 582, 582, 2974, 2974, 2974, 582, 04859 582, 2974, 582, 582, 2974, 2974, 582, 582, 582, 582, 04860 2974, 582, 582, 2974, 2974, 582, 582, 1084, 1084, 1084, 04861 1084, 2974, 1084, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04862 2974, 2974, 1084, 2974, 2974, 2974, 1084, 1084, 2974, 2974, 04863 2974, 1084, 2974, 2974, 1084, 1988, 1988, 1988, 1988, 2974, 04864 04865 1988, 2974, 2974, 1988, 2974, 2974, 2974, 2974, 2974, 1988, 04866 1988, 2974, 2974, 2974, 1988, 1988, 2974, 2974, 2974, 1988, 04867 2974, 2974, 1988, 1587, 1587, 1587, 1587, 2974, 1587, 2974, 04868 2974, 1587, 2974, 2974, 2974, 2974, 2974, 1587, 1587, 2974, 04869 2974, 2974, 1587, 1587, 2974, 2974, 2974, 1587, 2974, 2974, 04870 1587, 2277, 2277, 2277, 2277, 2974, 2277, 2974, 2974, 2974, 04871 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04872 2277, 2277, 2974, 2974, 2974, 2277, 2974, 2974, 2277, 1186, 04873 2974, 2974, 1186, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04874 1186, 2974, 2974, 1186, 1186, 2974, 1186, 2974, 1186, 1186, 04875 04876 2974, 2974, 2974, 1186, 2068, 2974, 2974, 2068, 2974, 2974, 04877 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2068, 2068, 04878 2974, 2068, 2974, 2068, 2068, 2974, 2974, 2974, 2068, 668, 04879 2974, 2974, 668, 2974, 2974, 2974, 668, 2974, 2974, 2974, 04880 668, 668, 2974, 668, 668, 2974, 668, 2974, 668, 668, 04881 2974, 2974, 2974, 668, 2369, 2369, 2369, 2369, 2974, 2369, 04882 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04883 2974, 2974, 2974, 2369, 2369, 2974, 2974, 2974, 2369, 2974, 04884 2974, 2369, 754, 754, 2974, 754, 2974, 2974, 2974, 754, 04885 2974, 2974, 2974, 754, 754, 2974, 754, 754, 2974, 754, 04886 04887 2974, 754, 754, 2974, 2974, 2974, 754, 2175, 2175, 2974, 04888 2974, 2974, 2175, 2175, 2974, 2974, 2974, 2175, 822, 822, 04889 2974, 2974, 2974, 822, 822, 2974, 2974, 2974, 822, 847, 04890 847, 2974, 847, 847, 847, 847, 847, 847, 847, 847, 04891 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 04892 847, 847, 847, 847, 847, 847, 847, 847, 2190, 2190, 04893 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 04894 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 2190, 04895 2190, 2190, 2190, 2190, 2190, 2190, 2190, 1959, 1959, 1959, 04896 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 04897 04898 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 04899 1959, 1959, 1959, 1959, 1959, 1959, 2192, 2192, 2192, 2192, 04900 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 04901 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 04902 2192, 2192, 2192, 2192, 2192, 1961, 1961, 1961, 1961, 1961, 04903 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 04904 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 1961, 04905 1961, 1961, 1961, 1961, 2206, 2206, 2206, 2206, 2974, 2974, 04906 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2206, 2206, 04907 2974, 2206, 2974, 2206, 2206, 2974, 2974, 2974, 2206, 884, 04908 04909 884, 884, 884, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04910 2974, 2974, 2974, 884, 884, 2974, 884, 2974, 884, 884, 04911 2974, 2974, 2974, 884, 916, 916, 916, 916, 2974, 2974, 04912 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 916, 2974, 04913 916, 2974, 916, 916, 916, 2974, 2974, 2974, 916, 916, 04914 971, 971, 2974, 971, 971, 2974, 2974, 971, 971, 971, 04915 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 04916 971, 971, 971, 2974, 971, 971, 971, 971, 971, 2245, 04917 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 04918 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 04919 04920 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2245, 2246, 2246, 04921 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 04922 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 04923 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2259, 2259, 2974, 04924 2974, 2974, 2259, 2259, 2974, 2974, 2974, 2259, 2262, 2262, 04925 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 04926 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 04927 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2264, 2264, 2264, 04928 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 04929 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 04930 04931 2264, 2264, 2264, 2264, 2264, 2264, 2455, 2455, 2455, 2455, 04932 2455, 2455, 2455, 2455, 2455, 2455, 2974, 2455, 2455, 2455, 04933 2974, 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455, 2455, 04934 2455, 2455, 2455, 2455, 2455, 582, 582, 582, 582, 2974, 04935 2974, 2974, 582, 582, 2974, 582, 2974, 2974, 2974, 582, 04936 582, 582, 582, 2974, 582, 582, 2974, 2974, 582, 582, 04937 2463, 2463, 2463, 2463, 2974, 2463, 2974, 2974, 2974, 2974, 04938 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2463, 04939 2463, 2974, 2974, 2974, 2463, 2974, 2974, 2463, 2467, 2467, 04940 2467, 2467, 2974, 2974, 2974, 2467, 2974, 2974, 2974, 2974, 04941 04942 2974, 2974, 2467, 2467, 2974, 2467, 2974, 2467, 2467, 2974, 04943 2974, 2974, 2467, 2472, 2472, 2472, 2472, 2974, 2472, 2974, 04944 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04945 2974, 2974, 2472, 2472, 2974, 2974, 2974, 2472, 668, 2974, 04946 2974, 668, 2974, 2974, 2974, 668, 2974, 2974, 2974, 668, 04947 668, 2974, 668, 668, 2974, 668, 2974, 668, 668, 2974, 04948 2974, 2974, 668, 2369, 2369, 2369, 2369, 2974, 2369, 2974, 04949 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04950 2974, 2974, 2369, 2369, 2974, 2974, 2974, 2369, 2974, 2974, 04951 2369, 2532, 2532, 2532, 2532, 2974, 2974, 2974, 2532, 2974, 04952 04953 2974, 2974, 2974, 2974, 2974, 2532, 2532, 2974, 2532, 2974, 04954 2532, 2532, 2974, 2974, 2974, 2532, 2535, 2535, 2535, 2535, 04955 2974, 2535, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04956 2974, 2974, 2974, 2974, 2974, 2535, 2535, 2974, 2974, 2974, 04957 2535, 754, 754, 2974, 754, 2974, 2974, 2974, 754, 2974, 04958 2974, 2974, 754, 754, 2974, 754, 754, 2974, 754, 2974, 04959 754, 754, 2974, 2974, 2974, 754, 822, 822, 2974, 2974, 04960 2974, 822, 822, 2974, 2974, 2974, 822, 2567, 2974, 2974, 04961 2567, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04962 2974, 2567, 2567, 2974, 2974, 2974, 2567, 2567, 2974, 2974, 04963 04964 2974, 2567, 884, 884, 884, 884, 2974, 2974, 2974, 2974, 04965 2974, 2974, 2974, 2974, 2974, 2974, 884, 884, 2974, 884, 04966 2974, 884, 884, 2974, 2974, 2974, 884, 2597, 2597, 2597, 04967 2597, 2974, 2974, 2974, 2597, 2974, 2974, 2974, 2974, 2974, 04968 2974, 2597, 2597, 2974, 2597, 2974, 2597, 2597, 2974, 2974, 04969 2974, 2597, 1095, 1095, 2974, 1095, 1095, 2974, 1095, 1095, 04970 2974, 2974, 1095, 1095, 1095, 1095, 2974, 1095, 1095, 1095, 04971 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 2974, 2974, 04972 1095, 2472, 2472, 2472, 2472, 2974, 2472, 2974, 2974, 2974, 04973 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 04974 04975 2472, 2472, 2974, 2974, 2974, 2472, 2601, 2601, 2601, 2601, 04976 2974, 2974, 2974, 2601, 2974, 2974, 2974, 2974, 2974, 2974, 04977 2601, 2974, 2974, 2974, 2974, 2601, 2601, 2974, 2974, 2974, 04978 2601, 2646, 2646, 2646, 2646, 2974, 2974, 2974, 2646, 2974, 04979 2974, 2974, 2974, 2974, 2974, 2646, 2974, 2974, 2974, 2974, 04980 2646, 2646, 2974, 2974, 2974, 2646, 2656, 2656, 2656, 2656, 04981 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 2656, 04982 2656, 2974, 2656, 2656, 2656, 2656, 2974, 2974, 2656, 2656, 04983 2656, 2656, 2656, 2656, 2656, 1112, 1112, 1112, 1112, 1112, 04984 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 04985 04986 2974, 1112, 1112, 1112, 1112, 2974, 2974, 1112, 1112, 1112, 04987 2974, 1112, 1112, 1112, 2686, 2686, 2974, 2686, 2686, 2974, 04988 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2974, 2686, 04989 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686, 2686, 04990 2974, 2686, 2686, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 04991 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 2974, 1208, 04992 1208, 1208, 1208, 2974, 2974, 1208, 1208, 1208, 2974, 1208, 04993 1208, 1208, 2687, 2687, 2974, 2687, 2687, 2974, 2687, 2687, 04994 2687, 2687, 2687, 2687, 2974, 2974, 2974, 2687, 2687, 2687, 04995 2687, 2687, 2687, 2687, 2687, 2687, 2687, 2687, 2974, 2687, 04996 04997 2687, 2746, 2746, 2974, 2746, 2746, 2746, 2746, 2746, 2746, 04998 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 04999 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 05000 2761, 2761, 2974, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 05001 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 05002 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2761, 2776, 05003 2776, 2974, 2776, 2776, 2974, 2776, 2776, 2776, 2776, 2776, 05004 2776, 2776, 2776, 2974, 2776, 2776, 2776, 2776, 2776, 2776, 05005 2776, 2776, 2776, 2776, 2776, 2974, 2776, 2776, 2763, 2763, 05006 2974, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 05007 05008 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 05009 2763, 2763, 2763, 2763, 2763, 2763, 2763, 1094, 1094, 2974, 05010 1094, 1094, 2974, 1094, 1094, 1094, 1094, 1094, 1094, 2974, 05011 2974, 2974, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 05012 1094, 1094, 1094, 2974, 1094, 1094, 2764, 2764, 2974, 2764, 05013 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 05014 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 05015 2764, 2764, 2764, 2764, 2764, 2777, 2777, 2974, 2777, 2777, 05016 2974, 2777, 2777, 2777, 2777, 2777, 2777, 2974, 2974, 2974, 05017 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 2777, 05018 05019 2777, 2974, 2777, 2777, 1093, 1093, 2974, 1093, 1093, 2974, 05020 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 2974, 1093, 05021 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 05022 2974, 1093, 1093, 1191, 1191, 2974, 1191, 1191, 1191, 1191, 05023 1191, 2974, 2974, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 05024 1191, 2974, 1191, 1191, 1191, 2974, 1191, 2974, 1191, 2974, 05025 2974, 1191, 2870, 2974, 2974, 2870, 2974, 2870, 2974, 2974, 05026 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05027 2974, 2870, 2870, 2974, 2974, 2974, 2870, 2902, 2974, 2974, 05028 2902, 2974, 2974, 2974, 2974, 2902, 2974, 2974, 2974, 2974, 05029 05030 2974, 2902, 2974, 2974, 2974, 2974, 2902, 2902, 2974, 2974, 05031 2974, 2902, 2764, 2764, 2974, 2764, 2764, 2764, 2764, 2764, 05032 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 05033 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 05034 2764, 65, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05035 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05036 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05037 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05038 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05039 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05040 05041 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05042 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 05043 2974, 2974, 2974, 2974 05044 } ; 05045 05046 static yyconst flex_int16_t yy_chk[26125] = 05047 { 0, 05048 0, 0, 1, 1, 2, 2, 2, 2, 109, 109, 05049 3, 3, 1, 1, 3, 2, 2, 1057, 1057, 1, 05050 3, 3, 2, 20, 321, 71, 20, 3, 1, 20, 05051 71, 2, 198, 74, 22, 79, 3, 22, 74, 83, 05052 79, 20, 88, 198, 83, 321, 200, 88, 1, 91, 05053 1, 2, 22, 2, 91, 200, 3, 3, 3, 4, 05054 4, 4, 4, 98, 4, 5, 5, 101, 98, 174, 05055 4, 4, 101, 1107, 5, 5, 5, 4, 6, 6, 05056 6, 6, 5, 7, 7, 165, 4, 7, 6, 6, 05057 6, 5, 24, 7, 7, 24, 6, 1107, 26, 28, 05058 05059 7, 26, 28, 174, 165, 6, 4, 4, 4, 7, 05060 24, 5, 5, 5, 107, 111, 26, 28, 30, 107, 05061 111, 30, 615, 118, 194, 6, 6, 6, 118, 7, 05062 615, 7, 8, 8, 8, 8, 30, 8, 9, 9, 05063 194, 121, 32, 8, 8, 32, 121, 2408, 9, 9, 05064 8, 10, 10, 10, 10, 9, 203, 203, 34, 8, 05065 32, 34, 10, 10, 9, 38, 312, 127, 38, 10, 05066 44, 46, 127, 44, 46, 130, 34, 137, 10, 8, 05067 130, 8, 137, 38, 9, 9, 9, 300, 44, 46, 05068 11, 11, 11, 11, 12, 12, 12, 12, 10, 10, 05069 05070 10, 11, 11, 11, 2409, 12, 12, 12, 11, 13, 05071 13, 175, 12, 14, 14, 14, 14, 11, 140, 13, 05072 13, 12, 179, 140, 14, 14, 13, 48, 312, 50, 05073 48, 14, 50, 52, 1144, 13, 52, 11, 300, 11, 05074 14, 12, 179, 12, 333, 48, 179, 50, 333, 54, 05075 175, 52, 54, 15, 15, 13, 113, 13, 1144, 113, 05076 14, 154, 14, 15, 15, 15, 154, 54, 159, 113, 05077 15, 16, 16, 16, 16, 190, 17, 17, 148, 15, 05078 190, 148, 16, 16, 16, 56, 17, 17, 56, 16, 05079 349, 148, 2410, 17, 18, 18, 18, 18, 16, 15, 05080 05081 167, 15, 17, 56, 241, 18, 18, 58, 60, 241, 05082 58, 60, 18, 62, 64, 184, 62, 64, 16, 159, 05083 16, 18, 17, 159, 17, 58, 60, 349, 201, 597, 05084 159, 62, 64, 201, 167, 597, 167, 184, 205, 205, 05085 201, 18, 184, 18, 19, 19, 19, 19, 19, 19, 05086 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05087 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05088 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05089 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05090 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05091 05092 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05093 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05094 19, 19, 19, 19, 19, 19, 21, 21, 21, 21, 05095 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05096 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05097 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05098 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05099 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05100 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05101 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05102 05103 21, 21, 21, 21, 21, 21, 21, 21, 23, 23, 05104 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05105 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05106 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05107 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05108 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05109 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05110 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05111 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05112 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05113 05114 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05115 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05116 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05117 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05118 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05119 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05120 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 05121 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 05122 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 05123 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 05124 05125 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 05126 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 05127 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 05128 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 05129 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 05130 27, 27, 27, 27, 29, 29, 29, 29, 29, 29, 05131 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 05132 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 05133 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 05134 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 05135 05136 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 05137 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 05138 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 05139 29, 29, 29, 29, 29, 29, 31, 31, 31, 31, 05140 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05141 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05142 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05143 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05144 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05145 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05146 05147 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05148 31, 31, 31, 31, 31, 31, 31, 31, 33, 33, 05149 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05150 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05151 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05152 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05153 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05154 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05155 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05156 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05157 05158 35, 35, 35, 35, 189, 67, 282, 189, 67, 282, 05159 468, 35, 35, 36, 36, 36, 36, 468, 35, 39, 05160 39, 232, 35, 67, 36, 36, 232, 35, 282, 39, 05161 39, 36, 230, 232, 73, 36, 39, 73, 82, 176, 05162 36, 82, 39, 90, 39, 39, 90, 35, 93, 35, 05163 100, 93, 73, 100, 103, 103, 82, 103, 288, 176, 05164 36, 90, 36, 176, 189, 39, 93, 39, 100, 2412, 05165 110, 120, 103, 110, 120, 576, 576, 35, 176, 187, 05166 187, 187, 187, 282, 120, 230, 187, 288, 110, 120, 05167 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05168 05169 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05170 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05171 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05172 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05173 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05174 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05175 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05176 37, 37, 37, 40, 40, 40, 40, 41, 41, 285, 05177 123, 41, 285, 123, 40, 40, 129, 41, 41, 129, 05178 289, 40, 132, 289, 41, 132, 250, 40, 123, 40, 05179 05180 40, 250, 41, 41, 129, 2413, 42, 42, 42, 42, 05181 132, 42, 139, 314, 322, 139, 314, 42, 42, 170, 05182 40, 585, 40, 41, 42, 41, 141, 141, 141, 141, 05183 139, 182, 42, 42, 585, 322, 142, 142, 142, 142, 05184 143, 143, 143, 143, 155, 155, 155, 2294, 141, 168, 05185 170, 166, 170, 42, 142, 42, 43, 43, 142, 170, 05186 169, 170, 143, 622, 182, 622, 43, 43, 182, 168, 05187 155, 172, 166, 43, 166, 323, 168, 337, 592, 43, 05188 168, 43, 43, 168, 169, 592, 171, 337, 166, 296, 05189 166, 2294, 296, 172, 169, 172, 323, 43, 195, 155, 05190 05191 341, 195, 43, 169, 43, 172, 171, 296, 43, 43, 05192 43, 195, 43, 43, 171, 43, 595, 171, 43, 341, 05193 171, 43, 171, 595, 43, 43, 43, 43, 43, 45, 05194 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05195 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05196 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05197 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05198 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05199 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05200 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05201 05202 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 05203 45, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05204 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05205 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05206 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05207 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05208 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05209 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05210 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 05211 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 05212 05213 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05214 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05215 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05216 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05217 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05218 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05219 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05220 49, 49, 49, 49, 49, 51, 51, 51, 51, 51, 05221 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 05222 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 05223 05224 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 05225 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 05226 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 05227 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 05228 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 05229 51, 51, 51, 51, 51, 51, 51, 53, 53, 53, 05230 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 05231 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 05232 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 05233 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 05234 05235 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 05236 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 05237 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 05238 53, 53, 53, 53, 53, 53, 53, 53, 53, 55, 05239 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05240 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05241 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05242 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05243 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05244 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05245 05246 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05247 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 05248 55, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05249 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05250 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05251 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05252 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05253 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05254 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05255 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 05256 05257 57, 57, 57, 59, 59, 59, 59, 59, 59, 59, 05258 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 05259 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 05260 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 05261 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 05262 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 05263 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 05264 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 05265 59, 59, 59, 59, 59, 61, 61, 61, 61, 61, 05266 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05267 05268 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05269 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05270 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05271 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05272 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05273 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05274 61, 61, 61, 61, 61, 61, 61, 63, 63, 63, 05275 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05276 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05277 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05278 05279 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05280 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05281 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05282 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05283 63, 63, 63, 63, 63, 63, 63, 63, 63, 146, 05284 146, 146, 146, 494, 324, 177, 146, 160, 160, 160, 05285 160, 493, 161, 161, 161, 161, 173, 494, 160, 160, 05286 493, 146, 160, 161, 161, 324, 177, 161, 2414, 160, 05287 160, 160, 178, 252, 161, 161, 161, 403, 183, 173, 05288 177, 173, 252, 252, 161, 177, 180, 403, 173, 173, 05289 05290 306, 600, 178, 306, 181, 326, 160, 600, 183, 1838, 05291 178, 161, 284, 284, 340, 340, 183, 284, 178, 146, 05292 180, 178, 183, 180, 180, 340, 326, 375, 181, 146, 05293 473, 181, 375, 291, 180, 206, 291, 180, 206, 180, 05294 181, 1838, 188, 188, 188, 188, 206, 181, 188, 473, 05295 207, 206, 206, 207, 284, 325, 291, 206, 2415, 206, 05296 188, 207, 208, 325, 188, 208, 207, 207, 325, 220, 05297 386, 220, 207, 208, 207, 386, 325, 306, 208, 208, 05298 210, 596, 207, 210, 208, 220, 208, 220, 596, 211, 05299 327, 210, 211, 327, 208, 327, 210, 210, 393, 212, 05300 05301 211, 212, 210, 393, 210, 211, 211, 2287, 327, 406, 05302 406, 211, 212, 211, 212, 212, 327, 212, 213, 213, 05303 406, 213, 218, 411, 218, 213, 218, 414, 411, 213, 05304 414, 210, 213, 218, 218, 213, 502, 213, 218, 227, 05305 218, 227, 211, 214, 211, 214, 214, 2287, 438, 414, 05306 502, 227, 215, 438, 215, 227, 214, 227, 211, 214, 05307 211, 214, 215, 328, 215, 214, 216, 216, 215, 216, 05308 215, 328, 593, 215, 216, 593, 328, 216, 2416, 219, 05309 216, 219, 216, 216, 328, 216, 217, 217, 217, 217, 05310 221, 221, 219, 221, 221, 219, 222, 219, 222, 217, 05311 05312 444, 223, 217, 223, 217, 444, 453, 221, 223, 221, 05313 222, 453, 222, 458, 222, 222, 223, 223, 458, 223, 05314 224, 224, 640, 224, 224, 225, 388, 225, 225, 388, 05315 640, 225, 225, 248, 248, 248, 248, 224, 602, 224, 05316 248, 225, 225, 225, 388, 225, 226, 225, 226, 226, 05317 602, 499, 226, 228, 266, 228, 266, 229, 229, 229, 05318 228, 226, 226, 229, 226, 499, 228, 266, 226, 228, 05319 266, 228, 266, 229, 499, 229, 234, 234, 234, 234, 05320 586, 235, 235, 235, 235, 236, 236, 236, 236, 238, 05321 238, 238, 238, 2288, 423, 511, 238, 486, 234, 235, 05322 05323 471, 586, 486, 235, 423, 254, 254, 236, 254, 511, 05324 471, 238, 244, 244, 244, 244, 254, 249, 249, 249, 05325 249, 254, 254, 244, 520, 552, 552, 254, 552, 254, 05326 255, 255, 2288, 255, 244, 249, 244, 316, 520, 249, 05327 316, 255, 256, 256, 606, 256, 255, 255, 501, 267, 05328 606, 267, 255, 256, 255, 316, 529, 501, 256, 256, 05329 257, 257, 255, 257, 256, 267, 256, 267, 2417, 238, 05330 529, 257, 258, 258, 256, 258, 257, 257, 538, 274, 05331 588, 274, 257, 258, 257, 259, 607, 259, 258, 258, 05332 588, 274, 538, 607, 258, 274, 258, 274, 259, 490, 05333 05334 259, 259, 492, 259, 490, 260, 260, 492, 260, 589, 05335 1103, 257, 260, 589, 316, 261, 260, 261, 261, 260, 05336 410, 497, 260, 410, 260, 258, 497, 258, 261, 1103, 05337 262, 261, 262, 261, 426, 426, 263, 263, 410, 263, 05338 262, 258, 262, 258, 263, 426, 262, 263, 262, 506, 05339 263, 262, 263, 263, 506, 263, 264, 264, 264, 264, 05340 365, 365, 365, 365, 265, 2418, 265, 365, 265, 264, 05341 431, 508, 264, 431, 264, 265, 265, 269, 603, 269, 05342 265, 603, 265, 268, 268, 508, 268, 268, 431, 510, 05343 270, 269, 270, 269, 508, 269, 269, 270, 510, 605, 05344 05345 268, 290, 268, 605, 290, 270, 270, 621, 270, 271, 05346 271, 621, 271, 271, 272, 443, 272, 272, 443, 290, 05347 272, 272, 295, 290, 514, 295, 271, 2306, 271, 514, 05348 272, 272, 272, 443, 272, 273, 272, 273, 273, 643, 05349 295, 273, 275, 643, 275, 295, 276, 276, 276, 275, 05350 273, 273, 276, 273, 519, 275, 522, 273, 275, 2306, 05351 275, 522, 276, 519, 276, 345, 345, 345, 345, 545, 05352 346, 346, 346, 346, 347, 347, 347, 347, 290, 348, 05353 348, 348, 348, 545, 537, 544, 348, 345, 346, 1016, 05354 548, 1016, 346, 537, 544, 548, 347, 352, 352, 352, 05355 05356 352, 348, 353, 353, 353, 353, 354, 354, 354, 354, 05357 528, 355, 355, 355, 355, 356, 356, 356, 356, 352, 05358 457, 352, 528, 457, 353, 2427, 353, 528, 354, 623, 05359 354, 557, 623, 355, 353, 355, 557, 356, 457, 356, 05360 357, 357, 357, 357, 358, 358, 358, 358, 590, 359, 05361 359, 359, 359, 590, 360, 360, 360, 360, 553, 348, 05362 554, 1018, 357, 1018, 357, 601, 358, 553, 358, 591, 05363 355, 359, 354, 359, 554, 601, 360, 355, 360, 847, 05364 591, 356, 361, 361, 361, 361, 362, 362, 362, 362, 05365 363, 363, 363, 363, 364, 364, 364, 364, 534, 358, 05366 05367 847, 534, 481, 357, 361, 481, 361, 360, 362, 358, 05368 362, 534, 363, 617, 363, 359, 364, 2428, 364, 617, 05369 481, 366, 366, 366, 366, 368, 368, 368, 368, 369, 05370 369, 369, 369, 609, 609, 489, 568, 491, 489, 366, 05371 491, 361, 361, 366, 598, 568, 598, 369, 364, 1067, 05372 598, 362, 361, 489, 608, 491, 363, 370, 370, 370, 05373 370, 1067, 612, 608, 385, 385, 385, 385, 446, 446, 05374 446, 446, 474, 612, 496, 474, 474, 496, 505, 368, 05375 498, 505, 385, 369, 507, 516, 474, 629, 629, 498, 05376 446, 368, 496, 507, 368, 369, 505, 368, 369, 516, 05377 05378 2429, 369, 368, 498, 626, 515, 369, 507, 516, 513, 05379 626, 370, 513, 521, 515, 523, 521, 446, 385, 459, 05380 459, 459, 459, 370, 523, 524, 370, 513, 515, 370, 05381 385, 521, 547, 385, 370, 547, 385, 624, 523, 524, 05382 624, 385, 455, 455, 2432, 455, 455, 455, 524, 455, 05383 547, 455, 455, 455, 455, 455, 455, 455, 455, 455, 05384 455, 455, 635, 635, 618, 455, 455, 455, 455, 455, 05385 455, 526, 526, 459, 526, 618, 460, 460, 460, 460, 05386 461, 461, 461, 461, 1026, 459, 1026, 532, 459, 526, 05387 455, 459, 455, 455, 460, 541, 459, 479, 479, 479, 05388 05389 479, 532, 542, 549, 541, 1028, 540, 1028, 558, 540, 05390 532, 556, 549, 550, 556, 479, 542, 558, 541, 540, 05391 455, 455, 455, 455, 540, 542, 549, 550, 2433, 556, 05392 460, 558, 613, 559, 461, 613, 550, 560, 560, 560, 05393 560, 569, 460, 587, 569, 460, 461, 559, 460, 461, 05394 587, 479, 461, 460, 569, 610, 559, 461, 1106, 560, 05395 587, 610, 619, 479, 610, 620, 479, 619, 1106, 479, 05396 562, 562, 562, 562, 479, 564, 564, 564, 564, 620, 05397 642, 642, 566, 566, 566, 566, 564, 564, 562, 566, 05398 564, 613, 562, 565, 565, 565, 565, 564, 564, 564, 05399 05400 570, 570, 570, 570, 565, 565, 1098, 570, 565, 572, 05401 572, 572, 570, 570, 2434, 565, 565, 565, 574, 574, 05402 574, 574, 570, 594, 564, 574, 578, 578, 578, 578, 05403 628, 1098, 632, 594, 594, 572, 628, 578, 578, 632, 05404 574, 578, 565, 579, 579, 579, 579, 636, 578, 578, 05405 578, 644, 565, 636, 579, 579, 584, 584, 579, 604, 05406 644, 584, 584, 611, 572, 579, 579, 604, 616, 611, 05407 604, 584, 616, 625, 611, 578, 627, 627, 625, 616, 05408 570, 2435, 631, 627, 633, 633, 631, 625, 630, 630, 05409 630, 630, 579, 631, 637, 630, 634, 973, 574, 637, 05410 05411 639, 630, 633, 634, 638, 638, 973, 639, 641, 641, 05412 645, 645, 634, 638, 645, 647, 647, 2436, 641, 639, 05413 654, 654, 881, 639, 584, 599, 599, 599, 599, 599, 05414 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 05415 599, 599, 599, 599, 599, 963, 963, 1108, 599, 599, 05416 599, 599, 599, 599, 648, 648, 648, 648, 824, 881, 05417 843, 648, 649, 649, 649, 649, 843, 652, 653, 649, 05418 652, 653, 1108, 599, 599, 599, 599, 650, 650, 650, 05419 650, 1099, 979, 736, 736, 736, 736, 979, 650, 650, 05420 736, 824, 650, 651, 651, 651, 651, 599, 1041, 651, 05421 05422 650, 650, 1041, 599, 599, 599, 599, 656, 1099, 659, 05423 656, 651, 659, 657, 868, 651, 657, 660, 664, 2437, 05424 660, 664, 659, 1036, 974, 1036, 650, 652, 653, 656, 05425 660, 656, 868, 668, 935, 657, 668, 657, 974, 716, 05426 664, 716, 664, 671, 668, 716, 671, 716, 1126, 668, 05427 668, 716, 935, 672, 671, 668, 672, 668, 817, 671, 05428 671, 817, 2438, 673, 672, 671, 673, 671, 818, 672, 05429 672, 818, 657, 1126, 673, 672, 717, 672, 717, 673, 05430 673, 674, 717, 821, 674, 673, 821, 673, 717, 671, 05431 675, 672, 674, 675, 717, 1010, 816, 674, 674, 816, 05432 05433 1010, 675, 1104, 674, 956, 674, 675, 675, 825, 998, 05434 1104, 825, 675, 676, 675, 673, 676, 677, 816, 719, 05435 677, 719, 956, 841, 676, 719, 841, 998, 677, 676, 05436 676, 719, 673, 677, 677, 676, 1038, 676, 1038, 677, 05437 678, 677, 1371, 678, 679, 675, 720, 679, 720, 1015, 05438 674, 678, 720, 720, 1015, 679, 678, 678, 720, 2439, 05439 679, 679, 678, 1046, 678, 1046, 679, 680, 679, 715, 05440 680, 715, 853, 816, 715, 715, 1371, 676, 680, 681, 05441 853, 715, 681, 680, 680, 853, 721, 677, 721, 680, 05442 681, 680, 721, 853, 682, 681, 681, 682, 721, 827, 05443 05444 679, 681, 827, 681, 683, 682, 678, 683, 1052, 839, 05445 682, 682, 839, 1052, 1054, 683, 682, 718, 682, 1054, 05446 683, 683, 827, 718, 1149, 718, 683, 684, 683, 718, 05447 684, 681, 1048, 718, 1048, 718, 680, 680, 684, 1145, 05448 820, 820, 723, 684, 684, 820, 682, 1100, 723, 684, 05449 723, 684, 1149, 863, 723, 686, 863, 2440, 686, 687, 05450 723, 723, 687, 1145, 905, 723, 686, 905, 1069, 683, 05451 687, 686, 686, 1100, 1047, 687, 687, 686, 1047, 686, 05452 1069, 687, 820, 687, 684, 1062, 839, 1062, 905, 2282, 05453 684, 685, 685, 685, 685, 685, 685, 685, 685, 685, 05454 05455 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 05456 685, 1063, 1063, 1119, 685, 685, 685, 685, 685, 685, 05457 686, 688, 1119, 725, 688, 725, 2282, 930, 687, 725, 05458 930, 1102, 688, 689, 725, 725, 689, 688, 688, 685, 05459 685, 685, 685, 688, 689, 688, 722, 1105, 722, 689, 05460 689, 690, 722, 1102, 690, 689, 722, 689, 722, 1105, 05461 1569, 832, 690, 685, 832, 1569, 981, 690, 690, 685, 05462 685, 685, 685, 690, 691, 690, 726, 691, 726, 832, 05463 981, 728, 726, 728, 832, 691, 728, 728, 726, 981, 05464 691, 691, 688, 728, 692, 1158, 691, 692, 691, 978, 05465 05466 689, 1111, 978, 689, 693, 692, 1001, 693, 1158, 1001, 05467 692, 692, 1121, 1111, 690, 693, 692, 978, 692, 694, 05468 693, 693, 694, 1635, 1121, 724, 693, 724, 693, 695, 05469 694, 724, 695, 1137, 724, 694, 694, 724, 1635, 691, 05470 695, 694, 727, 694, 727, 695, 695, 696, 727, 1137, 05471 696, 695, 727, 695, 727, 729, 729, 729, 696, 697, 05472 692, 729, 697, 696, 696, 1110, 1064, 729, 1064, 696, 05473 697, 696, 693, 1110, 712, 697, 697, 712, 1123, 694, 05474 730, 697, 730, 697, 700, 712, 730, 700, 1132, 1122, 05475 712, 712, 730, 1008, 695, 700, 712, 695, 712, 1123, 05476 05477 700, 700, 701, 701, 701, 701, 700, 1008, 700, 1122, 05478 1132, 1039, 696, 701, 1148, 1039, 1008, 696, 701, 701, 05479 1070, 1148, 1070, 1039, 701, 2441, 701, 712, 1039, 697, 05480 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 05481 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 05482 980, 700, 1007, 698, 698, 698, 698, 698, 698, 980, 05483 702, 1007, 1120, 702, 1152, 701, 731, 731, 731, 731, 05484 1120, 702, 701, 980, 1646, 1007, 702, 702, 698, 698, 05485 698, 698, 702, 703, 702, 1124, 703, 1646, 731, 1152, 05486 746, 746, 746, 746, 703, 733, 733, 733, 733, 703, 05487 05488 703, 746, 1125, 846, 1124, 703, 846, 703, 698, 698, 05489 698, 698, 704, 733, 1125, 704, 705, 733, 1378, 705, 05490 2302, 846, 1142, 704, 1378, 702, 1012, 705, 704, 704, 05491 850, 850, 705, 705, 704, 1012, 704, 1139, 705, 706, 05492 705, 1142, 706, 707, 850, 1082, 707, 1155, 1082, 1012, 05493 706, 1139, 850, 703, 707, 706, 706, 2302, 1544, 707, 05494 707, 706, 1544, 706, 1127, 707, 708, 707, 1155, 708, 05495 709, 940, 1127, 709, 940, 941, 704, 708, 941, 1130, 05496 846, 709, 708, 708, 1055, 1055, 709, 709, 708, 705, 05497 708, 1130, 709, 940, 709, 710, 1055, 941, 710, 849, 05498 05499 849, 1055, 706, 1484, 707, 1484, 710, 711, 849, 2307, 05500 711, 710, 710, 737, 737, 737, 737, 710, 711, 710, 05501 737, 849, 708, 711, 711, 713, 709, 1131, 713, 711, 05502 1128, 711, 1140, 1147, 714, 737, 713, 714, 1128, 1131, 05503 1140, 713, 713, 855, 855, 714, 2307, 713, 1157, 713, 05504 714, 714, 735, 735, 735, 735, 714, 855, 714, 1147, 05505 710, 750, 750, 735, 750, 855, 855, 711, 738, 738, 05506 738, 738, 750, 711, 735, 1157, 735, 750, 750, 738, 05507 739, 739, 739, 739, 1133, 713, 741, 741, 741, 741, 05508 738, 739, 714, 737, 714, 1134, 1133, 741, 714, 1637, 05509 05510 1022, 1013, 739, 942, 714, 1637, 942, 1162, 741, 1022, 05511 741, 744, 744, 744, 744, 1013, 1166, 1134, 744, 745, 05512 745, 745, 745, 1022, 1013, 942, 745, 747, 747, 747, 05513 747, 749, 749, 1162, 749, 754, 754, 1151, 754, 1166, 05514 826, 1676, 749, 826, 1136, 747, 754, 749, 749, 747, 05515 1676, 754, 754, 749, 1154, 749, 1151, 754, 826, 754, 05516 755, 755, 826, 755, 756, 756, 1136, 756, 1021, 1021, 05517 1154, 755, 1021, 1056, 1056, 756, 755, 755, 854, 854, 05518 756, 756, 755, 1160, 755, 1056, 756, 854, 756, 2442, 05519 1056, 1190, 757, 757, 1190, 757, 758, 758, 1190, 758, 05520 05521 854, 854, 756, 757, 1160, 1146, 755, 758, 757, 757, 05522 1031, 1031, 758, 758, 757, 1021, 757, 826, 758, 1031, 05523 758, 759, 759, 1146, 759, 760, 760, 1141, 760, 1177, 05524 852, 1159, 759, 852, 1167, 852, 760, 759, 759, 1141, 05525 1177, 760, 760, 759, 757, 759, 1023, 760, 852, 760, 05526 1153, 761, 761, 1153, 761, 1159, 852, 1031, 1143, 1167, 05527 1023, 757, 761, 762, 762, 758, 762, 761, 761, 1023, 05528 1143, 1060, 1060, 761, 762, 761, 759, 1032, 2443, 762, 05529 762, 763, 763, 1060, 763, 762, 1032, 762, 1060, 760, 05530 764, 764, 763, 764, 1153, 1042, 1175, 763, 763, 1033, 05531 05532 1032, 764, 1156, 763, 1042, 763, 764, 764, 875, 875, 05533 875, 875, 764, 1033, 764, 1173, 765, 765, 1042, 765, 05534 1180, 761, 1033, 1175, 1156, 766, 766, 765, 766, 762, 05535 875, 1173, 765, 765, 1037, 1037, 766, 763, 765, 1180, 05536 765, 766, 766, 1037, 1168, 767, 767, 766, 767, 766, 05537 879, 879, 879, 879, 768, 768, 767, 768, 2303, 764, 05538 764, 767, 767, 1161, 1058, 768, 1168, 767, 765, 767, 05539 768, 768, 879, 1058, 879, 1161, 768, 766, 768, 770, 05540 770, 1037, 770, 771, 771, 1040, 771, 1058, 1165, 1040, 05541 770, 1169, 1043, 2303, 771, 770, 770, 1040, 1165, 771, 05542 05543 771, 770, 1040, 770, 1546, 771, 1043, 771, 1546, 2444, 05544 767, 768, 1169, 1065, 1065, 1043, 1065, 768, 769, 769, 05545 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 05546 769, 769, 769, 769, 769, 769, 769, 769, 1059, 1109, 05547 1677, 769, 769, 769, 769, 769, 769, 1283, 770, 1677, 05548 1283, 1170, 1059, 1164, 771, 877, 877, 877, 877, 772, 05549 772, 1059, 772, 1170, 1109, 1109, 769, 769, 769, 769, 05550 772, 773, 773, 877, 773, 772, 772, 877, 1486, 1164, 05551 1486, 772, 773, 772, 1172, 1027, 1027, 773, 773, 1027, 05552 769, 774, 774, 773, 774, 773, 769, 769, 769, 769, 05553 05554 775, 775, 774, 775, 1174, 2445, 1172, 774, 774, 1400, 05555 1549, 775, 1400, 774, 1549, 774, 775, 775, 1029, 1029, 05556 776, 776, 775, 776, 775, 1174, 772, 1029, 1171, 772, 05557 1029, 776, 1027, 1176, 773, 1029, 776, 776, 777, 777, 05558 1171, 777, 776, 1138, 776, 1163, 1138, 778, 778, 777, 05559 778, 1506, 1615, 1506, 777, 777, 774, 1615, 778, 1176, 05560 777, 1163, 777, 778, 778, 1029, 775, 779, 779, 778, 05561 779, 778, 1163, 2446, 880, 880, 880, 880, 779, 780, 05562 780, 880, 780, 779, 779, 1061, 1061, 1138, 776, 779, 05563 780, 779, 1178, 1560, 1560, 780, 780, 1061, 777, 1138, 05564 05565 1178, 780, 1061, 780, 1475, 783, 783, 1508, 783, 1508, 05566 1603, 1179, 778, 1475, 1475, 778, 783, 784, 784, 1179, 05567 784, 783, 783, 883, 883, 883, 883, 783, 784, 783, 05568 1570, 1044, 779, 784, 784, 1044, 1550, 779, 1603, 784, 05569 1550, 784, 1570, 1044, 1604, 883, 1604, 883, 1044, 780, 05570 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 05571 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 05572 1150, 1616, 783, 781, 781, 781, 781, 781, 781, 1616, 05573 784, 1562, 1562, 882, 882, 882, 882, 784, 1565, 1565, 05574 882, 785, 785, 1150, 785, 1617, 1150, 1617, 781, 781, 05575 05576 781, 781, 785, 786, 786, 882, 786, 785, 785, 903, 05577 903, 903, 903, 785, 786, 785, 903, 1566, 1566, 786, 05578 786, 787, 787, 1189, 787, 786, 1189, 786, 781, 781, 05579 781, 781, 787, 788, 788, 1189, 788, 787, 787, 904, 05580 904, 904, 904, 787, 788, 787, 904, 1672, 1045, 788, 05581 788, 1188, 1045, 1672, 1188, 788, 785, 788, 789, 789, 05582 1045, 789, 1620, 882, 1188, 1045, 1620, 790, 790, 789, 05583 790, 1606, 1606, 786, 789, 789, 791, 791, 790, 791, 05584 789, 1619, 789, 790, 790, 787, 1625, 791, 1619, 790, 05585 1625, 790, 791, 791, 792, 792, 1049, 792, 791, 1049, 05586 05587 791, 1066, 1066, 1632, 1066, 792, 788, 1632, 1049, 2321, 05588 792, 792, 1391, 1643, 793, 793, 792, 793, 792, 1066, 05589 1480, 789, 1049, 794, 794, 793, 794, 1643, 790, 1480, 05590 793, 793, 791, 1391, 794, 2321, 793, 1631, 793, 794, 05591 794, 795, 795, 1480, 795, 794, 1415, 794, 1631, 1415, 05592 792, 1386, 795, 796, 796, 1386, 796, 795, 795, 966, 05593 966, 966, 966, 795, 796, 795, 1552, 1653, 1415, 796, 05594 796, 797, 797, 1551, 797, 796, 1386, 796, 1653, 793, 05595 1571, 966, 797, 794, 1391, 1551, 1391, 797, 797, 794, 05596 1551, 1851, 1571, 797, 795, 797, 1524, 1524, 798, 798, 05597 05598 1524, 798, 884, 884, 884, 884, 1384, 1068, 966, 798, 05599 1384, 1481, 1851, 796, 798, 798, 799, 799, 1384, 799, 05600 798, 1068, 798, 1384, 884, 1481, 884, 799, 2447, 797, 05601 1068, 1384, 799, 799, 1481, 797, 800, 800, 799, 800, 05602 799, 797, 1552, 1524, 1552, 1030, 1030, 800, 801, 801, 05603 2300, 801, 800, 800, 1030, 1630, 1630, 1030, 800, 801, 05604 800, 798, 1030, 1479, 801, 801, 1660, 1479, 798, 1479, 05605 801, 1660, 801, 802, 802, 2300, 802, 967, 967, 967, 05606 967, 1572, 799, 1392, 802, 803, 803, 1392, 803, 802, 05607 802, 1629, 1030, 1572, 800, 802, 803, 802, 1629, 967, 05608 05609 801, 803, 803, 804, 804, 1573, 804, 803, 1392, 803, 05610 1479, 1983, 800, 1393, 804, 1435, 801, 1573, 1435, 804, 05611 804, 805, 805, 1983, 805, 804, 967, 804, 1073, 1073, 05612 1073, 1073, 805, 802, 1393, 1073, 1647, 805, 805, 1435, 05613 1649, 806, 806, 805, 806, 805, 1239, 1239, 1239, 1239, 05614 803, 1647, 806, 807, 807, 1649, 807, 806, 806, 1034, 05615 1034, 1561, 1561, 806, 807, 806, 2448, 804, 1034, 807, 05616 807, 1034, 1636, 1561, 1636, 807, 1034, 807, 1561, 808, 05617 808, 805, 808, 809, 809, 1393, 809, 1393, 1583, 805, 05618 808, 1583, 2449, 806, 809, 808, 808, 1638, 1638, 809, 05619 05620 809, 808, 1641, 808, 1641, 809, 1034, 809, 810, 810, 05621 1618, 810, 806, 1618, 1019, 1019, 806, 1654, 1019, 810, 05622 807, 1639, 1639, 1477, 810, 810, 1019, 1477, 1654, 1477, 05623 810, 1019, 810, 811, 811, 1477, 811, 1387, 1387, 808, 05624 1477, 1020, 1020, 809, 811, 1020, 1387, 2005, 808, 811, 05625 811, 812, 812, 1020, 812, 811, 2005, 811, 1020, 1387, 05626 1387, 1019, 812, 813, 813, 2450, 813, 812, 812, 1050, 05627 1477, 1554, 1050, 812, 813, 812, 810, 1640, 1640, 813, 05628 813, 887, 887, 887, 887, 813, 1050, 813, 1020, 888, 05629 888, 888, 888, 811, 1436, 1050, 811, 1436, 889, 889, 05630 05631 889, 889, 1644, 887, 1644, 887, 890, 890, 890, 890, 05632 812, 888, 2013, 888, 891, 891, 891, 891, 1436, 887, 05633 889, 2013, 889, 813, 892, 892, 892, 892, 890, 1658, 05634 890, 1658, 1074, 1074, 1074, 1074, 891, 1621, 891, 1074, 05635 1621, 894, 894, 894, 894, 2451, 892, 1554, 892, 1554, 05636 889, 896, 896, 896, 896, 888, 895, 895, 895, 895, 05637 1388, 1388, 1666, 894, 1666, 894, 906, 906, 906, 906, 05638 1650, 890, 1652, 896, 1388, 896, 1626, 1650, 895, 1626, 05639 895, 2452, 1388, 1388, 906, 891, 1628, 1652, 906, 1628, 05640 892, 893, 893, 893, 893, 893, 893, 893, 893, 893, 05641 05642 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, 05643 893, 894, 896, 1655, 893, 893, 893, 893, 893, 893, 05644 1655, 895, 897, 897, 897, 897, 898, 898, 898, 898, 05645 899, 899, 899, 899, 900, 900, 900, 900, 1656, 893, 05646 893, 893, 893, 1669, 897, 1673, 897, 1673, 898, 1656, 05647 898, 1669, 899, 1670, 899, 2453, 900, 1670, 900, 901, 05648 901, 901, 901, 1642, 1642, 902, 902, 902, 902, 893, 05649 893, 893, 893, 907, 907, 907, 907, 908, 908, 908, 05650 908, 901, 1633, 901, 898, 1633, 1667, 902, 897, 902, 05651 914, 914, 914, 914, 922, 922, 922, 922, 899, 1667, 05652 05653 1534, 1534, 898, 900, 968, 968, 968, 968, 914, 1534, 05654 1648, 1648, 922, 1080, 1080, 1080, 1080, 1024, 1024, 901, 05655 1659, 1024, 901, 1659, 902, 1662, 968, 907, 1662, 1024, 05656 1663, 908, 2456, 1186, 1024, 1080, 1186, 1661, 1661, 907, 05657 1678, 1663, 907, 908, 914, 907, 908, 1534, 922, 908, 05658 907, 1678, 1668, 968, 908, 1186, 914, 1186, 1614, 914, 05659 922, 1614, 914, 922, 1024, 1668, 922, 914, 1675, 1682, 05660 1675, 922, 976, 976, 2458, 976, 976, 976, 1664, 976, 05661 1682, 976, 976, 976, 976, 976, 976, 976, 976, 976, 05662 976, 976, 2305, 1664, 1664, 976, 976, 976, 976, 976, 05663 05664 976, 982, 982, 982, 982, 1085, 1085, 1085, 1085, 1025, 05665 1025, 1665, 1085, 1025, 1614, 1035, 1035, 2305, 1665, 982, 05666 976, 1025, 976, 976, 1035, 1614, 1025, 1035, 1288, 1288, 05667 1288, 1288, 1035, 1681, 1681, 1087, 1087, 1087, 1087, 1288, 05668 1679, 2012, 1087, 2012, 1679, 1003, 1003, 1003, 1003, 2296, 05669 976, 976, 976, 976, 1984, 982, 1025, 1087, 1281, 1281, 05670 1281, 1281, 1035, 1003, 1674, 1281, 1984, 982, 1680, 1674, 05671 982, 1680, 1764, 982, 1674, 1764, 1674, 2296, 982, 991, 05672 991, 991, 991, 991, 991, 991, 991, 991, 991, 991, 05673 991, 991, 991, 991, 991, 991, 991, 991, 991, 1003, 05674 05675 1854, 2006, 991, 991, 991, 991, 991, 991, 2006, 1078, 05676 1765, 1003, 1855, 1765, 1003, 1087, 1855, 1003, 1078, 1078, 05677 1078, 1854, 1003, 1071, 1071, 1071, 1071, 991, 991, 991, 05678 991, 1096, 1096, 1096, 1096, 1071, 2033, 1855, 1071, 1072, 05679 1072, 1072, 1072, 1853, 1078, 1071, 1071, 1071, 2033, 1859, 05680 1072, 1072, 1192, 1096, 1072, 1192, 1853, 991, 991, 991, 05681 991, 1072, 1072, 1072, 1853, 1995, 1075, 1075, 1075, 1075, 05682 1859, 1970, 1071, 1078, 1192, 1970, 1192, 1861, 1075, 1858, 05683 1995, 1075, 2401, 1858, 1079, 1079, 1079, 1079, 1072, 1075, 05684 1075, 1079, 1280, 1280, 1280, 1280, 1079, 1079, 1861, 1072, 05685 05686 1081, 1081, 1081, 1081, 1858, 1971, 1079, 1081, 1187, 1971, 05687 2315, 1187, 1081, 1081, 1280, 1075, 1084, 1084, 1084, 1084, 05688 1979, 1979, 1081, 1084, 1092, 1092, 1092, 1092, 1084, 2401, 05689 1187, 1092, 1187, 1926, 2023, 1084, 1084, 1084, 1084, 1093, 05690 1093, 2023, 1926, 1926, 1093, 1093, 1092, 2315, 1097, 1097, 05691 1097, 1097, 1882, 1209, 1093, 1882, 1209, 1980, 1980, 1097, 05692 1097, 1118, 1118, 1097, 1079, 1981, 1118, 1118, 1187, 1998, 05693 1097, 1097, 1097, 1998, 1981, 1209, 1118, 1209, 1194, 1231, 05694 1081, 1194, 1231, 1996, 1282, 1282, 1282, 1282, 1981, 1194, 05695 1092, 1282, 1097, 2459, 1194, 1194, 1084, 1097, 1996, 2460, 05696 05697 1194, 1231, 1194, 1231, 1092, 2017, 2017, 1093, 1101, 1101, 05698 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 05699 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 2016, 1118, 05700 2016, 1101, 1101, 1101, 1101, 1101, 1101, 1289, 1289, 1289, 05701 1289, 1238, 1238, 1238, 1238, 2283, 2041, 1194, 1289, 1113, 05702 1113, 1113, 1113, 1536, 1536, 2041, 1101, 1101, 1101, 1101, 05703 1113, 1113, 1536, 1238, 1113, 1238, 1567, 1567, 2283, 1567, 05704 2002, 1113, 1113, 1113, 2002, 1287, 1287, 1287, 1287, 1114, 05705 1114, 1114, 1114, 2029, 1567, 2029, 1101, 1101, 1101, 1101, 05706 1114, 1114, 1195, 2024, 1114, 1195, 1196, 1287, 1113, 1196, 05707 05708 1536, 1114, 1114, 1195, 2024, 2049, 2009, 1196, 1195, 1195, 05709 2009, 2018, 1196, 1196, 1195, 1485, 1195, 2049, 1196, 1485, 05710 1196, 1485, 2468, 1910, 2004, 2018, 1910, 2004, 1114, 1129, 05711 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 05712 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 2034, 05713 2481, 2034, 1129, 1129, 1129, 1129, 1129, 1129, 1290, 1290, 05714 1290, 1290, 1485, 1195, 1686, 1956, 1196, 1686, 1956, 1290, 05715 1135, 1135, 1135, 1135, 1910, 2004, 1686, 1129, 1129, 1129, 05716 1129, 1135, 1135, 1956, 1865, 1135, 1129, 1865, 1181, 1181, 05717 1181, 1181, 1135, 1135, 1135, 1422, 1422, 1422, 1422, 1181, 05718 05719 1181, 2281, 1671, 1181, 2035, 1671, 2035, 1129, 1129, 1129, 05720 1129, 1181, 1181, 1182, 1182, 1182, 1182, 1422, 1671, 1135, 05721 1183, 1183, 1183, 1183, 1182, 1182, 1688, 2322, 1182, 1688, 05722 1193, 1183, 1183, 1193, 2281, 1183, 1182, 1181, 1688, 1198, 05723 1865, 1193, 1198, 1183, 1183, 2019, 1193, 1193, 1199, 2019, 05724 1198, 1199, 1193, 2473, 1193, 1198, 1198, 1539, 1539, 1199, 05725 2322, 1198, 1182, 1198, 1199, 1199, 1539, 1526, 1526, 1183, 05726 1199, 1526, 1199, 2473, 1193, 1197, 1197, 1197, 1197, 1197, 05727 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 05728 1197, 1197, 1197, 1197, 1197, 2045, 2020, 2045, 1197, 1197, 05729 05730 1197, 1197, 1197, 1197, 1539, 1198, 1588, 1588, 1588, 1588, 05731 2020, 1199, 1907, 1588, 1526, 1907, 1200, 1385, 1389, 1200, 05732 2493, 1385, 1389, 1197, 1197, 1197, 1197, 1200, 1201, 1385, 05733 1389, 1201, 1200, 1200, 1385, 1389, 2317, 2028, 1200, 1201, 05734 1200, 2028, 1385, 1389, 1201, 1201, 1307, 1307, 1202, 1307, 05735 1201, 1202, 1201, 1197, 1197, 1197, 1197, 1307, 1203, 1202, 05736 2284, 1203, 1307, 1307, 1202, 1202, 1907, 2025, 1200, 1203, 05737 1202, 2317, 1202, 1545, 1203, 1203, 1204, 1545, 2061, 1204, 05738 1203, 2025, 1203, 2061, 1201, 1545, 1581, 1204, 1205, 2082, 05739 1545, 1205, 1204, 1204, 2284, 1581, 1581, 1581, 1204, 1205, 05740 05741 1204, 2082, 1202, 1206, 1205, 1205, 1206, 2494, 2022, 2022, 05742 1205, 1390, 1205, 1207, 1206, 1390, 1207, 2022, 2030, 1206, 05743 1206, 1581, 2030, 1390, 1207, 1206, 1203, 1206, 1390, 1207, 05744 1207, 1326, 1326, 2505, 1326, 1207, 1390, 1207, 1568, 1568, 05745 2050, 1568, 1326, 1215, 2050, 1204, 1215, 1326, 1326, 1862, 05746 1581, 2042, 2042, 1862, 1215, 1206, 1568, 1205, 1205, 1215, 05747 1215, 1216, 2026, 1687, 1216, 1215, 1687, 1215, 1689, 1207, 05748 1217, 1689, 1216, 1217, 1862, 1689, 2026, 1216, 1216, 1687, 05749 1687, 1217, 2046, 1216, 2046, 1216, 1217, 1217, 1218, 2498, 05750 1690, 1218, 1217, 1690, 1217, 2508, 1215, 1690, 1219, 1218, 05751 05752 1904, 1219, 1864, 1904, 1218, 1218, 1864, 2516, 1220, 1219, 05753 1218, 1220, 1218, 1216, 1219, 1219, 2044, 2044, 1221, 1220, 05754 1219, 1221, 1219, 2498, 1220, 1220, 1217, 1864, 1905, 1221, 05755 1220, 1905, 1220, 1222, 1221, 1221, 1222, 1529, 1529, 2027, 05756 1221, 1529, 1221, 1223, 1222, 2176, 1223, 1530, 1530, 1222, 05757 1222, 1530, 1218, 2027, 1223, 1222, 1904, 1222, 2053, 1223, 05758 1223, 1219, 2053, 2293, 1220, 1223, 1227, 1223, 2267, 1227, 05759 2267, 1284, 1284, 1284, 1284, 2554, 2014, 1227, 1284, 2014, 05760 1540, 1540, 1227, 1227, 1529, 1222, 2176, 1221, 1227, 1540, 05761 1227, 1905, 2293, 1284, 1530, 1223, 1224, 1224, 1224, 1224, 05762 05763 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 05764 1224, 1224, 1224, 1224, 1224, 1224, 1535, 1535, 2309, 1224, 05765 1224, 1224, 1224, 1224, 1224, 1535, 1225, 1540, 1535, 1225, 05766 2556, 1909, 1227, 1535, 1909, 2055, 2055, 1225, 1226, 2014, 05767 2308, 1226, 1225, 1225, 1224, 1224, 1224, 1224, 1225, 1226, 05768 1225, 1284, 2031, 1224, 1226, 1226, 1228, 2309, 2559, 1228, 05769 1226, 1906, 1226, 1535, 1906, 2308, 2031, 1228, 1229, 2032, 05770 2560, 1229, 1228, 1228, 1224, 1224, 1224, 1224, 1228, 1229, 05771 1228, 2038, 1225, 2032, 1229, 1229, 1237, 1909, 1912, 1237, 05772 1229, 1912, 1229, 1976, 1226, 2038, 1976, 1237, 1240, 2043, 05773 05774 2286, 1240, 1237, 1237, 1575, 1575, 1575, 1575, 1237, 1240, 05775 1237, 1976, 1228, 2043, 1240, 1240, 1575, 2289, 2326, 1575, 05776 1240, 1242, 1240, 2286, 1242, 1244, 1575, 1575, 1244, 2056, 05777 2047, 1906, 1242, 2056, 1229, 2059, 1244, 1242, 1242, 2059, 05778 2289, 1244, 1244, 1242, 2047, 1242, 1912, 1244, 2048, 1244, 05779 2326, 2048, 1237, 1575, 1908, 2562, 2327, 1908, 1240, 1241, 05780 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 05781 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1242, 05782 2297, 1244, 1241, 1241, 1241, 1241, 1241, 1241, 2327, 1243, 05783 2057, 1911, 1243, 2188, 1911, 1589, 1589, 1589, 1589, 2057, 05784 05785 1243, 1245, 1589, 2297, 1245, 1243, 1243, 1241, 1241, 1241, 05786 1241, 1243, 1245, 1243, 2188, 2564, 1241, 1245, 1245, 1598, 05787 1598, 1598, 1598, 1245, 1908, 1245, 1598, 1412, 1412, 1412, 05788 1412, 1246, 2060, 2268, 1246, 2268, 2060, 1241, 1241, 1241, 05789 1241, 1243, 1246, 1247, 2565, 2298, 1247, 1246, 1246, 1412, 05790 2566, 1412, 2314, 1246, 1247, 1246, 1911, 2310, 1248, 1247, 05791 1247, 1248, 2299, 2553, 1245, 1247, 2298, 1247, 1249, 1248, 05792 1913, 1249, 2190, 1913, 1248, 1248, 2190, 2314, 1250, 1249, 05793 1248, 1250, 1248, 2299, 1249, 1249, 2301, 1246, 1251, 1250, 05794 1249, 1251, 1249, 2304, 1250, 1250, 2310, 2190, 1252, 1251, 05795 05796 1250, 1252, 1250, 2260, 1251, 1251, 2260, 2301, 2553, 1252, 05797 1251, 1247, 1251, 1253, 1252, 1252, 1253, 2304, 2461, 1249, 05798 1252, 2260, 1252, 2192, 1253, 1254, 1248, 2192, 1254, 1253, 05799 1253, 1599, 1599, 1599, 1599, 1253, 1254, 1253, 1913, 2461, 05800 1255, 1254, 1254, 1255, 2477, 1967, 1967, 1254, 2192, 1254, 05801 1250, 1255, 1256, 1599, 1967, 1256, 1255, 1255, 1251, 2486, 05802 2570, 1252, 1255, 1256, 1255, 2477, 2496, 1257, 1256, 1256, 05803 1257, 2318, 2454, 2328, 1256, 1930, 1256, 1258, 1257, 1930, 05804 1258, 1930, 1253, 1257, 1257, 1254, 2454, 1259, 1258, 1257, 05805 1259, 1257, 1967, 1258, 1258, 2479, 2486, 1260, 1259, 1258, 05806 05807 1260, 1258, 2496, 1259, 1259, 1255, 2571, 2572, 1260, 1259, 05808 2318, 1259, 2328, 1260, 1260, 2479, 2573, 2490, 1256, 1260, 05809 1261, 1260, 1930, 1261, 1262, 2457, 2457, 1262, 2457, 1691, 05810 1697, 1261, 1691, 1697, 1258, 1262, 1261, 1261, 1257, 1932, 05811 1262, 1262, 1261, 1932, 1261, 1932, 1262, 1263, 1262, 2475, 05812 1263, 1691, 1697, 1691, 1697, 1259, 1264, 2320, 1263, 1264, 05813 2483, 2490, 1260, 1263, 1263, 2484, 2480, 1264, 2323, 1263, 05814 2574, 1263, 1264, 1264, 1265, 1935, 1261, 1265, 1264, 1935, 05815 1264, 1935, 2320, 2483, 1266, 1265, 1932, 1266, 2475, 1685, 05816 1265, 1265, 1685, 2323, 1262, 1266, 1265, 2484, 1265, 1267, 05817 05818 1266, 1266, 1267, 2575, 2474, 2480, 1266, 1263, 1266, 2478, 05819 1267, 1685, 2487, 1685, 1268, 1267, 1267, 1268, 1263, 2491, 05820 2485, 1267, 1935, 1267, 1269, 1268, 1264, 1269, 1265, 2474, 05821 1268, 1268, 2499, 2500, 2478, 1269, 1268, 2487, 1268, 1270, 05822 1269, 1269, 1270, 2485, 2491, 2576, 1269, 2495, 1269, 1271, 05823 1270, 1266, 1271, 2501, 2506, 1270, 1270, 2499, 1685, 1272, 05824 1271, 1270, 1272, 1270, 2497, 1271, 1271, 2500, 1267, 2316, 05825 1272, 1271, 2316, 1271, 1273, 1272, 1272, 1273, 2501, 2506, 05826 1268, 1272, 1478, 1272, 2495, 1273, 1478, 2497, 1478, 1269, 05827 1273, 1273, 2502, 2577, 1478, 1270, 1273, 1274, 1273, 1478, 05828 05829 1274, 2058, 2058, 2058, 2058, 1271, 1275, 2489, 1274, 1275, 05830 2489, 2578, 2579, 1274, 1274, 1276, 2502, 1275, 1276, 1274, 05831 2316, 1274, 1275, 1275, 1279, 1272, 1276, 1279, 1275, 1478, 05832 1275, 1276, 1276, 1277, 1273, 1279, 1277, 1276, 2489, 1276, 05833 1279, 1279, 1278, 2580, 1277, 1278, 1279, 2581, 1279, 1277, 05834 1277, 2065, 2582, 1278, 2065, 1277, 2583, 1277, 1278, 1278, 05835 1968, 1968, 1274, 2584, 1278, 2585, 1278, 2065, 2065, 1968, 05836 1276, 1285, 1285, 1285, 1285, 2586, 1275, 2587, 1285, 1291, 05837 1291, 2588, 1291, 2589, 2590, 1277, 2593, 1279, 1292, 1292, 05838 1291, 1292, 2594, 1285, 1278, 1291, 1291, 1293, 1293, 1292, 05839 05840 1293, 1291, 2595, 1291, 1292, 1292, 1718, 1968, 1293, 1718, 05841 1292, 2611, 1292, 1293, 1293, 1294, 1294, 2596, 1294, 1293, 05842 2613, 1293, 2614, 1291, 1299, 1299, 1294, 1299, 1718, 2603, 05843 1718, 1294, 1294, 1776, 1776, 1299, 1776, 1294, 2622, 1294, 05844 1299, 1299, 1296, 1296, 1776, 1296, 1299, 2614, 1299, 1776, 05845 1776, 1285, 2592, 1296, 2620, 2592, 2596, 1292, 1296, 1296, 05846 1297, 1297, 1718, 1297, 1296, 2623, 1296, 2603, 1293, 2624, 05847 2592, 1297, 1768, 1768, 1768, 1768, 1297, 1297, 2620, 1768, 05848 1299, 2625, 1297, 2626, 1297, 1294, 1295, 1295, 1295, 1295, 05849 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 05850 05851 1295, 1295, 1295, 1295, 1295, 1295, 2602, 2602, 1296, 1295, 05852 1295, 1295, 1295, 1295, 1295, 2602, 1298, 1298, 2627, 1298, 05853 2633, 2420, 2653, 1297, 2420, 2654, 2628, 1298, 1300, 1300, 05854 2615, 1300, 1298, 1298, 1295, 1295, 1295, 1295, 1298, 1300, 05855 1298, 1613, 1613, 2420, 1300, 1300, 1613, 1613, 2488, 2488, 05856 1300, 2488, 1300, 1964, 1964, 2615, 1613, 1964, 2652, 1301, 05857 1301, 2604, 1301, 2628, 1295, 1295, 1295, 1295, 1298, 2629, 05858 1301, 2426, 2426, 2426, 2426, 1301, 1301, 1302, 1302, 2488, 05859 1302, 1301, 1300, 1301, 2604, 2655, 1303, 1303, 1302, 1303, 05860 2629, 2657, 2652, 1302, 1302, 1304, 1304, 1303, 1304, 1302, 05861 05862 1964, 1302, 1303, 1303, 1305, 1305, 1304, 1305, 1303, 1613, 05863 1303, 1304, 1304, 1306, 1306, 1305, 1306, 1304, 2658, 1304, 05864 1305, 1305, 2591, 2591, 1306, 2591, 1305, 1301, 1305, 1306, 05865 1306, 2011, 2011, 2011, 2011, 1306, 2659, 1306, 2660, 1936, 05866 2661, 1311, 1311, 1936, 1311, 1936, 1302, 1304, 2426, 2662, 05867 1312, 1312, 1311, 1312, 2632, 1303, 1303, 1311, 1311, 2630, 05868 1305, 1312, 2663, 1311, 2664, 1311, 1312, 1312, 1313, 1313, 05869 2665, 1313, 1312, 2666, 1312, 2279, 2279, 2279, 2279, 1313, 05870 1314, 1314, 2279, 1314, 1313, 1313, 1936, 2011, 2630, 2667, 05871 1313, 1314, 1313, 2632, 1311, 2668, 1314, 1314, 1315, 1315, 05872 05873 2670, 1315, 1314, 2671, 1314, 2672, 1312, 1316, 1316, 1315, 05874 1316, 2674, 2677, 2685, 1315, 1315, 2068, 2687, 1316, 2068, 05875 1315, 2677, 1315, 1316, 1316, 1317, 1317, 2679, 1317, 1316, 05876 2567, 1316, 1313, 2567, 1318, 1318, 1317, 1318, 2068, 2689, 05877 2068, 1317, 1317, 1314, 2692, 1318, 2674, 1317, 2693, 1317, 05878 1318, 1318, 2567, 2697, 1315, 1857, 1318, 1693, 1318, 1857, 05879 1693, 2698, 1413, 1413, 1413, 1413, 2679, 1857, 1693, 1413, 05880 2699, 2700, 1857, 1693, 1693, 2701, 1316, 1317, 2703, 1693, 05881 1857, 1693, 2673, 2673, 1413, 2673, 1318, 1319, 1319, 1319, 05882 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 05883 05884 1319, 1319, 1319, 1319, 1319, 1319, 1319, 2678, 2695, 2678, 05885 1319, 1319, 1319, 1319, 1319, 1319, 2709, 1320, 1320, 2695, 05886 1320, 1600, 1600, 1600, 1600, 2719, 1693, 2706, 1320, 1321, 05887 1321, 2680, 1321, 1320, 1320, 1319, 1319, 1319, 1319, 1320, 05888 1321, 1320, 1413, 1600, 1319, 1321, 1321, 1322, 1322, 2704, 05889 1322, 1321, 2680, 1321, 2370, 2370, 2370, 2370, 1322, 1323, 05890 1323, 2370, 1323, 1322, 1322, 1319, 1319, 1319, 1319, 1322, 05891 1323, 1322, 2706, 1320, 2704, 1323, 1323, 1324, 1324, 2720, 05892 1324, 1323, 2718, 1323, 2705, 1321, 1325, 1325, 1324, 1325, 05893 2721, 2722, 2723, 1324, 1324, 1330, 1330, 1325, 1330, 1324, 05894 05895 2724, 1324, 1325, 1325, 2507, 2725, 1330, 2507, 1325, 2507, 05896 1325, 1330, 1330, 1322, 2718, 1323, 2726, 1330, 2727, 1330, 05897 1331, 1331, 2705, 1331, 1601, 1601, 1601, 1601, 2507, 2728, 05898 2729, 1331, 1418, 1418, 1418, 1418, 1331, 1331, 1414, 1414, 05899 1414, 1414, 1331, 1324, 1331, 1414, 1601, 2631, 1338, 1338, 05900 2631, 1338, 1333, 1333, 1418, 1333, 1418, 2730, 2731, 1338, 05901 1414, 1330, 2732, 1333, 1338, 1338, 2734, 2731, 1333, 1333, 05902 1338, 2631, 1338, 2245, 1333, 2740, 1333, 2245, 2746, 2245, 05903 1331, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 05904 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 05905 05906 1332, 1418, 2750, 2734, 1332, 1332, 1332, 1332, 1332, 1332, 05907 1333, 1334, 1334, 2740, 1334, 2751, 1338, 2762, 1414, 2766, 05908 2245, 2767, 1334, 1335, 1335, 2752, 1335, 1334, 1334, 1332, 05909 1332, 1332, 1332, 1334, 1335, 1334, 2752, 2737, 1332, 1335, 05910 1335, 2470, 2470, 2470, 2470, 1335, 2737, 1335, 2470, 1419, 05911 1419, 1419, 1419, 1336, 1336, 2768, 1336, 2770, 2775, 1332, 05912 1332, 1332, 1332, 1334, 1336, 1337, 1337, 2738, 1337, 1336, 05913 1336, 1419, 2738, 1419, 2777, 1336, 1337, 1336, 2779, 1335, 05914 2789, 1337, 1337, 1339, 1339, 2669, 1339, 1337, 2669, 1337, 05915 2471, 2471, 2471, 2471, 1339, 1340, 1340, 2471, 1340, 1339, 05916 05917 1339, 2739, 1419, 2669, 2790, 1339, 1340, 1339, 2739, 2791, 05918 2769, 1340, 1340, 2769, 2792, 2744, 1336, 1340, 2744, 1340, 05919 2793, 1337, 2795, 1341, 1341, 2771, 1341, 2472, 2472, 2472, 05920 2472, 2796, 1342, 1342, 1341, 1342, 2798, 2744, 2472, 1341, 05921 1341, 1343, 1343, 1342, 1343, 1341, 1340, 1341, 1342, 1342, 05922 1692, 1339, 1343, 1692, 1342, 2799, 1342, 1343, 1343, 1344, 05923 1344, 1692, 1344, 1343, 2771, 1343, 1692, 1692, 1346, 1346, 05924 1344, 1346, 1692, 2815, 1692, 1344, 1344, 1345, 1345, 1346, 05925 1345, 1344, 2773, 1344, 1346, 1346, 2803, 2803, 1345, 1692, 05926 1346, 2821, 1346, 1345, 1345, 1341, 2772, 1347, 1347, 1345, 05927 05928 1347, 1345, 1342, 2806, 1343, 2804, 2804, 2773, 1347, 1348, 05929 1348, 2822, 1348, 1347, 1347, 1994, 1994, 1994, 1994, 1347, 05930 1348, 1347, 1994, 1965, 1965, 1348, 1348, 1965, 1344, 1349, 05931 1349, 1348, 1349, 1348, 1346, 2772, 2824, 1345, 1350, 1350, 05932 1349, 1350, 2806, 2829, 2831, 1349, 1349, 1352, 1352, 1350, 05933 1352, 1349, 2840, 1349, 1350, 1350, 1351, 1351, 1352, 1351, 05934 1350, 2841, 1350, 1352, 1352, 2826, 1348, 1351, 1347, 1352, 05935 1965, 1352, 1351, 1351, 1353, 1353, 2807, 1353, 1351, 2807, 05936 1351, 1994, 2843, 1354, 1354, 1353, 1354, 2612, 2612, 2826, 05937 1353, 1353, 2612, 2612, 1354, 1994, 1353, 1349, 1353, 1354, 05938 05939 1354, 2844, 2612, 1350, 2846, 1354, 2847, 1354, 1355, 1355, 05940 2849, 1355, 1351, 2733, 2733, 2755, 2733, 1352, 2755, 1355, 05941 1356, 1356, 2856, 1356, 1355, 1355, 2755, 2813, 2820, 1482, 05942 1355, 1356, 1355, 1482, 1353, 1482, 1356, 1356, 2813, 2820, 05943 2800, 1482, 1356, 2800, 1356, 1353, 1482, 1357, 1357, 2809, 05944 1357, 2800, 2809, 1354, 2862, 2612, 1358, 1358, 1357, 1358, 05945 2809, 2825, 1355, 1357, 1357, 2634, 2863, 1358, 2634, 1357, 05946 2634, 1357, 1358, 1358, 1359, 1359, 1482, 1359, 1358, 2866, 05947 1358, 2825, 2854, 1362, 1362, 1359, 1362, 1356, 2871, 2634, 05948 1359, 1359, 2788, 2854, 1362, 2788, 1359, 2864, 1359, 1362, 05949 05950 1362, 1360, 1360, 2788, 1360, 1362, 2827, 1362, 2852, 2827, 05951 1361, 1361, 1360, 1361, 2788, 2852, 1357, 1360, 1360, 2872, 05952 2864, 1361, 1358, 1360, 2860, 1360, 1361, 1361, 2827, 2873, 05953 1363, 1363, 1361, 1363, 1361, 2860, 1483, 2874, 2875, 1359, 05954 1483, 1363, 1483, 2876, 2885, 2896, 1363, 1363, 1483, 1362, 05955 2897, 2879, 1363, 1483, 1363, 2879, 2898, 1360, 1364, 1364, 05956 2903, 1364, 1365, 1365, 1931, 1365, 1361, 2904, 1931, 1364, 05957 1931, 2897, 2905, 1365, 1364, 1364, 1931, 2912, 1365, 1365, 05958 1364, 1931, 1364, 1483, 1365, 2920, 1365, 2911, 1366, 1366, 05959 1363, 1366, 1367, 1367, 2930, 1367, 2932, 2064, 2865, 1366, 05960 05961 2064, 2865, 2936, 1367, 1366, 1366, 2941, 2911, 1367, 1367, 05962 1366, 1931, 1366, 2064, 1367, 2946, 1367, 1368, 1368, 2064, 05963 1368, 2064, 2951, 1364, 2533, 2533, 2533, 2533, 1368, 2956, 05964 2968, 2533, 1365, 1368, 1368, 1369, 1369, 2895, 1369, 1368, 05965 2895, 1368, 2929, 1366, 1367, 2929, 1369, 2535, 2535, 2535, 05966 2535, 1369, 1369, 1416, 1416, 1416, 1416, 1369, 2535, 1369, 05967 1417, 1417, 1417, 1417, 2970, 1420, 1420, 1420, 1420, 1368, 05968 1421, 1421, 1421, 1421, 2407, 1416, 2947, 1416, 1425, 1425, 05969 1425, 1425, 1417, 2838, 1417, 2837, 2838, 1420, 2837, 1420, 05970 2838, 2246, 1421, 2406, 1421, 2246, 2837, 2246, 1369, 2931, 05971 05972 1425, 2404, 1425, 1426, 1426, 1426, 1426, 1427, 1427, 1427, 05973 1427, 1428, 1428, 1428, 1428, 2947, 1416, 1420, 1429, 1429, 05974 1429, 1429, 2403, 2853, 2966, 1426, 2853, 1426, 1417, 1427, 05975 2402, 1427, 2969, 1428, 2853, 1428, 1425, 2931, 2246, 2966, 05976 1429, 2969, 1429, 1430, 1430, 1430, 1430, 1431, 1431, 1431, 05977 1431, 1762, 1762, 1762, 1762, 1432, 1432, 1432, 1432, 1426, 05978 1433, 1433, 1433, 1433, 2342, 1430, 2330, 1430, 2955, 1431, 05979 2329, 1431, 2313, 1762, 1429, 1427, 1428, 1432, 2868, 1432, 05980 2955, 2868, 1433, 2870, 1433, 2868, 2870, 1434, 1434, 1434, 05981 1434, 2124, 2124, 2124, 2124, 2870, 1525, 1525, 2124, 2869, 05982 05983 1525, 2950, 2869, 1430, 2950, 2312, 2869, 1431, 1525, 1434, 05984 1432, 1434, 1433, 1525, 1574, 1574, 1574, 1574, 1576, 1576, 05985 1576, 1576, 1585, 1585, 1585, 1585, 1574, 3049, 2959, 1574, 05986 1576, 2959, 3049, 1576, 1585, 2295, 1574, 1574, 1574, 1434, 05987 1576, 1576, 1576, 1525, 1585, 2272, 1577, 1577, 1577, 1577, 05988 1578, 1578, 1578, 1578, 2963, 2971, 2971, 1577, 1577, 2996, 05989 2996, 1577, 1578, 1574, 2996, 1578, 2963, 1576, 1577, 1577, 05990 1577, 2124, 2271, 1578, 1578, 1579, 1579, 1579, 1579, 1580, 05991 1580, 1580, 1580, 2270, 2269, 2892, 2808, 1579, 2892, 2808, 05992 1579, 1580, 2264, 2262, 1580, 1577, 2892, 2808, 1579, 1578, 05993 05994 2261, 2259, 1580, 1580, 1584, 1584, 1584, 1584, 2808, 2258, 05995 2823, 1584, 2257, 2823, 2972, 1577, 2256, 2972, 1586, 1586, 05996 1586, 1586, 3002, 3002, 1579, 1586, 1584, 3002, 1580, 2255, 05997 1586, 3124, 1763, 1763, 1763, 1763, 3124, 1586, 1586, 1586, 05998 1586, 1587, 1587, 1587, 1587, 2972, 2254, 2253, 1587, 1595, 05999 1595, 1595, 1595, 1587, 1763, 2252, 1595, 2251, 2250, 2249, 06000 1587, 1587, 1587, 1587, 2823, 2247, 1590, 1590, 1590, 1590, 06001 2243, 1595, 2242, 1590, 1596, 1596, 1596, 1596, 1590, 2823, 06002 2241, 1596, 2240, 2239, 1584, 1590, 1590, 1590, 1590, 1597, 06003 1597, 1597, 1597, 2238, 2900, 2237, 1596, 2900, 1586, 2236, 06004 06005 1597, 1597, 2235, 2234, 1597, 2233, 2900, 2534, 2534, 2534, 06006 2534, 1597, 1597, 1597, 2534, 1595, 2232, 1769, 1769, 1769, 06007 1769, 1587, 2231, 2230, 2229, 1608, 1608, 1608, 1608, 1595, 06008 1609, 1609, 1609, 1609, 2228, 2227, 1608, 1608, 1597, 1769, 06009 1608, 1609, 1609, 2226, 2221, 1609, 1590, 1608, 1608, 1608, 06010 3004, 3004, 1609, 1609, 1596, 3004, 1597, 2220, 1622, 1622, 06011 1622, 1622, 2219, 2218, 2207, 2367, 2367, 2367, 2367, 1622, 06012 1622, 2205, 2367, 1622, 1608, 1623, 1623, 1623, 1623, 1609, 06013 1622, 1622, 1622, 2204, 3006, 3006, 1623, 1623, 1694, 3006, 06014 1623, 1694, 1695, 2203, 2202, 1695, 3003, 1623, 1623, 1694, 06015 06016 2201, 3003, 3003, 1695, 1694, 1694, 3003, 1622, 1695, 1695, 06017 1694, 2200, 1694, 2199, 1695, 2198, 1695, 2948, 2948, 2948, 06018 2948, 2197, 2196, 2194, 1623, 1627, 1627, 1627, 1627, 1627, 06019 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 1627, 06020 1627, 1627, 1627, 1627, 1627, 2367, 2193, 2191, 1627, 1627, 06021 1627, 1627, 1627, 1627, 2187, 1694, 2186, 2185, 2184, 2753, 06022 1695, 1879, 1879, 1879, 1879, 2753, 1634, 1634, 1634, 1634, 06023 2753, 2753, 2753, 1627, 1627, 1627, 1627, 1634, 1634, 2902, 06024 2753, 1634, 2902, 1879, 2183, 1879, 2182, 2181, 1634, 1634, 06025 1634, 2902, 1881, 1881, 1881, 1881, 1704, 3008, 3008, 1704, 06026 06027 2180, 2179, 3008, 1627, 1627, 1627, 1627, 1704, 2600, 2600, 06028 2600, 2600, 1704, 1704, 1881, 1634, 1881, 2178, 1704, 2600, 06029 1704, 2177, 1634, 1657, 1657, 1657, 1657, 1886, 1886, 1886, 06030 1886, 2753, 2175, 2909, 1657, 1657, 2909, 2114, 1657, 2601, 06031 2601, 2601, 2601, 2083, 2909, 1657, 1657, 1657, 2066, 1886, 06032 2601, 1886, 2063, 2062, 1705, 2054, 2051, 1705, 1704, 1885, 06033 1885, 1885, 1885, 1706, 2893, 1705, 1706, 2893, 3010, 3010, 06034 1705, 1705, 1657, 3010, 1706, 2893, 1705, 1657, 1705, 1706, 06035 1706, 1885, 2040, 1885, 2039, 1706, 2037, 1706, 2036, 2021, 06036 1886, 2015, 1657, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 06037 06038 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 06039 1703, 1703, 1703, 1705, 2008, 2007, 1703, 1703, 1703, 1703, 06040 1703, 1703, 2922, 1707, 1997, 2922, 1707, 1993, 1991, 1885, 06041 1990, 2893, 1706, 2922, 1707, 1708, 1989, 1982, 1708, 1707, 06042 1707, 1703, 1703, 1703, 1703, 1707, 1708, 1707, 1977, 1975, 06043 1703, 1708, 1708, 1709, 1974, 2925, 1709, 1708, 2925, 1708, 06044 2858, 2858, 2858, 2858, 1709, 1710, 2925, 2858, 1710, 1709, 06045 1709, 1703, 1703, 1703, 1703, 1709, 1710, 1709, 1972, 1961, 06046 1711, 1710, 1710, 1711, 1959, 3016, 3016, 1710, 1957, 1710, 06047 3016, 1711, 1955, 1707, 1952, 1708, 1711, 1711, 1712, 1950, 06048 06049 1949, 1712, 1711, 1948, 1711, 2918, 2918, 2918, 2918, 1712, 06050 1713, 2925, 2918, 1713, 1712, 1712, 1892, 1892, 1892, 1892, 06051 1712, 1713, 1712, 1947, 1709, 1714, 1713, 1713, 1714, 1946, 06052 1945, 1944, 1713, 1943, 1713, 1710, 1714, 1942, 1892, 1941, 06053 1892, 1714, 1714, 1711, 1940, 1939, 1938, 1714, 2923, 1714, 06054 1715, 2923, 1928, 1715, 2605, 2605, 2605, 2605, 1924, 2923, 06055 1716, 1715, 1712, 1716, 1923, 2605, 1715, 1715, 3018, 3018, 06056 1713, 1716, 1715, 3018, 1715, 1717, 1716, 1716, 1717, 1922, 06057 1921, 1892, 1716, 1920, 1716, 1719, 1717, 2935, 1719, 1919, 06058 2935, 1717, 1717, 1714, 1918, 1917, 1719, 1717, 2935, 1717, 06059 06060 1720, 1719, 1719, 1720, 1916, 1915, 1715, 1719, 1914, 1719, 06061 1721, 1720, 1903, 1721, 1902, 2923, 1720, 1720, 1901, 1900, 06062 1899, 1721, 1720, 1716, 1720, 1722, 1721, 1721, 1722, 1898, 06063 1897, 1896, 1721, 1883, 1721, 1723, 1722, 1719, 1723, 3020, 06064 3020, 1722, 1722, 1878, 3020, 1717, 1723, 1722, 1877, 1722, 06065 1724, 1723, 1723, 1724, 1876, 1875, 1874, 1723, 1873, 1723, 06066 1725, 1724, 1872, 1725, 1871, 1720, 1724, 1724, 1870, 1869, 06067 1726, 1725, 1724, 1726, 1724, 1868, 1725, 1725, 1867, 1866, 06068 1863, 1726, 1725, 1721, 1725, 2953, 1726, 1726, 2953, 1856, 06069 1727, 1722, 1726, 1727, 1726, 1850, 2953, 2943, 1849, 1728, 06070 06071 2943, 1727, 1728, 1723, 3022, 3022, 1727, 1727, 2943, 3022, 06072 1728, 1848, 1727, 1847, 1727, 1728, 1728, 1729, 1724, 2942, 06073 1729, 1728, 2942, 1728, 2952, 1725, 1846, 2952, 1729, 1730, 06074 2942, 1845, 1730, 1729, 1729, 2952, 1844, 2953, 1726, 1729, 06075 1730, 1729, 1843, 1727, 1842, 1730, 1730, 1731, 1841, 2763, 06076 1731, 1730, 1840, 1730, 1839, 2763, 1732, 1837, 1731, 1732, 06077 2763, 2763, 2763, 1731, 1731, 2943, 1778, 1732, 1728, 1731, 06078 2763, 1731, 1732, 1732, 1733, 2942, 2958, 1733, 1732, 2958, 06079 1732, 1770, 1702, 1730, 1729, 1733, 1734, 2958, 1701, 1734, 06080 1733, 1733, 2952, 1699, 1684, 1683, 1733, 1734, 1733, 1731, 06081 06082 1651, 1735, 1734, 1734, 1735, 1645, 1612, 1605, 1734, 1602, 06083 1734, 1736, 1735, 1594, 1736, 3024, 3024, 1735, 1735, 1593, 06084 3024, 2763, 1736, 1735, 1732, 1735, 1737, 1736, 1736, 1737, 06085 1592, 1558, 1555, 1736, 1553, 1736, 1738, 1737, 1734, 1738, 06086 1542, 1733, 1737, 1737, 3027, 3027, 2958, 1738, 1737, 3027, 06087 1737, 1739, 1738, 1738, 1739, 1532, 1522, 1735, 1738, 1520, 06088 1738, 1740, 1739, 2957, 1740, 1518, 2957, 1739, 1739, 1515, 06089 1512, 1736, 1740, 1739, 2957, 1739, 1741, 1740, 1740, 1741, 06090 1510, 1507, 1737, 1740, 1504, 1740, 1742, 1741, 1503, 1742, 06091 3030, 3030, 1741, 1741, 1502, 3030, 1743, 1742, 1741, 1743, 06092 06093 1741, 1501, 1742, 1742, 1500, 1738, 1744, 1743, 1742, 1744, 06094 1742, 1499, 1743, 1743, 1498, 2957, 1497, 1744, 1743, 1496, 06095 1743, 1739, 1744, 1744, 1745, 1495, 1494, 1745, 1744, 1493, 06096 1744, 1492, 1491, 1740, 1490, 1745, 2646, 2646, 2646, 2646, 06097 1745, 1745, 1746, 1489, 1741, 1746, 1745, 2646, 1745, 1488, 06098 1487, 1747, 1743, 1746, 1747, 3009, 1742, 1744, 1746, 1746, 06099 3009, 3009, 1747, 1474, 1746, 3009, 1746, 1747, 1747, 1472, 06100 1471, 1748, 1744, 1747, 1748, 1747, 2954, 2954, 2954, 2954, 06101 1749, 1470, 1748, 1749, 1745, 3033, 3033, 1748, 1748, 2960, 06102 3033, 1749, 2960, 1748, 1469, 1748, 1749, 1749, 1750, 1468, 06103 06104 2960, 1750, 1749, 1467, 1749, 1747, 1466, 1746, 1465, 1750, 06105 1752, 1464, 1463, 1752, 1750, 1750, 1766, 1766, 1766, 1766, 06106 1750, 1752, 1750, 1766, 1462, 1748, 1752, 1752, 1461, 1460, 06107 1753, 1459, 1752, 1753, 1752, 3035, 3035, 1458, 1766, 1749, 06108 3035, 1753, 2681, 2681, 2681, 2681, 1753, 1753, 2682, 2682, 06109 2682, 2682, 1753, 2681, 1753, 3044, 3044, 1457, 1456, 2682, 06110 3044, 1750, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 06111 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 06112 1751, 1751, 1455, 1752, 1454, 1751, 1751, 1751, 1751, 1751, 06113 1751, 2961, 1754, 1453, 2961, 1754, 1766, 1452, 1451, 1753, 06114 06115 3057, 3057, 2961, 1754, 1755, 3057, 1450, 1755, 1754, 1754, 06116 1751, 1751, 1751, 1751, 1754, 1755, 1754, 1449, 3071, 3071, 06117 1755, 1755, 1756, 3071, 2962, 1756, 1755, 2962, 1755, 2368, 06118 2368, 2368, 2368, 1756, 1757, 2962, 2368, 1757, 1756, 1756, 06119 1751, 1751, 1751, 1751, 1756, 1757, 1756, 1754, 3147, 3147, 06120 1757, 1757, 1754, 3147, 1448, 1447, 1757, 1754, 1757, 1758, 06121 1446, 2961, 1758, 1445, 1443, 2274, 2274, 2274, 2274, 1755, 06122 1758, 1759, 2274, 1442, 1759, 1758, 1758, 1441, 1440, 1439, 06123 1756, 1758, 1759, 1758, 1438, 1437, 1760, 1759, 1759, 1760, 06124 2962, 1424, 1757, 1759, 1423, 1759, 1761, 1760, 1411, 1761, 06125 06126 3215, 3215, 1760, 1760, 1410, 3215, 1409, 1761, 1760, 2368, 06127 1760, 1408, 1761, 1761, 1767, 1767, 1767, 1767, 1761, 1407, 06128 1761, 1767, 1771, 1771, 1406, 1771, 1772, 1772, 1405, 1772, 06129 1758, 2274, 1404, 1771, 1403, 1402, 1767, 1772, 1771, 1771, 06130 1401, 1759, 1772, 1772, 1771, 2274, 1771, 1399, 1772, 1398, 06131 1772, 1397, 1761, 1396, 1760, 1773, 1773, 1395, 1773, 1774, 06132 1774, 1771, 1774, 3011, 1394, 1383, 1773, 1382, 3011, 3011, 06133 1774, 1773, 1773, 3011, 1381, 1774, 1774, 1773, 1380, 1773, 06134 1379, 1774, 1377, 1774, 1376, 1775, 1775, 1375, 1775, 2405, 06135 2405, 2405, 2405, 1374, 1767, 1772, 1775, 1781, 1781, 1373, 06136 06137 1781, 1775, 1775, 1986, 1986, 1986, 1986, 1775, 1781, 1775, 06138 1986, 2405, 1370, 1781, 1781, 2741, 2741, 2741, 2741, 1781, 06139 1328, 1781, 1773, 1309, 1286, 1986, 2741, 1774, 1780, 1780, 06140 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 06141 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1236, 1235, 06142 1233, 1780, 1780, 1780, 1780, 1780, 1780, 1214, 1213, 1781, 06143 1895, 1895, 1895, 1895, 1782, 1782, 2405, 1782, 1211, 1887, 06144 1887, 1887, 1887, 1191, 1185, 1782, 1780, 1780, 1780, 1780, 06145 1782, 1782, 1895, 1986, 1895, 1780, 1782, 1184, 1782, 1117, 06146 1095, 1887, 1094, 1887, 1783, 1783, 1091, 1783, 1888, 1888, 06147 06148 1888, 1888, 1090, 1089, 1088, 1783, 1780, 1780, 1780, 1780, 06149 1783, 1783, 1083, 1077, 1784, 1784, 1783, 1784, 1783, 1053, 06150 1888, 1051, 1888, 1782, 1017, 1784, 1785, 1785, 1895, 1785, 06151 1784, 1784, 1014, 1011, 1009, 1006, 1784, 1785, 1784, 1887, 06152 1005, 1004, 1785, 1785, 1786, 1786, 2965, 1786, 1785, 2965, 06153 1785, 1002, 1888, 1787, 1787, 1786, 1787, 2965, 1000, 999, 06154 1786, 1786, 997, 1783, 1787, 996, 1786, 995, 1786, 1787, 06155 1787, 1788, 1788, 994, 1788, 1787, 993, 1787, 992, 990, 06156 1789, 1789, 1788, 1789, 1784, 989, 1785, 1788, 1788, 1790, 06157 1790, 1789, 1790, 1788, 988, 1788, 1789, 1789, 3233, 3233, 06158 06159 1790, 987, 1789, 3233, 1789, 1790, 1790, 986, 985, 1791, 06160 1791, 1790, 1791, 1790, 2965, 1786, 962, 960, 959, 958, 06161 1791, 1792, 1792, 1787, 1792, 1791, 1791, 2688, 2688, 2688, 06162 2688, 1791, 1792, 1791, 1788, 957, 3017, 1792, 1792, 955, 06163 1789, 3017, 3017, 1792, 954, 1792, 3017, 1793, 1793, 2688, 06164 1793, 1794, 1794, 953, 1794, 2686, 2686, 1790, 1793, 952, 06165 2686, 2686, 1794, 1793, 1793, 1791, 950, 1794, 1794, 1793, 06166 2686, 1793, 949, 1794, 948, 1794, 1795, 1795, 947, 1795, 06167 1796, 1796, 946, 1796, 1792, 3248, 3248, 1795, 939, 3019, 06168 3248, 1796, 1795, 1795, 3019, 3019, 1796, 1796, 1795, 3019, 06169 06170 1795, 938, 1796, 937, 1796, 1797, 1797, 1794, 1797, 1798, 06171 1798, 936, 1798, 3262, 3262, 934, 1797, 1793, 3262, 933, 06172 1798, 1797, 1797, 2686, 932, 1798, 1798, 1797, 1795, 1797, 06173 931, 1798, 929, 1798, 928, 1799, 1799, 927, 1799, 1800, 06174 1800, 926, 1800, 3023, 925, 1796, 1799, 921, 3023, 3023, 06175 1800, 1799, 1799, 3023, 920, 1800, 1800, 1799, 919, 1799, 06176 918, 1800, 917, 1800, 912, 1801, 1801, 911, 1801, 1802, 06177 1802, 910, 1802, 909, 886, 1798, 1801, 885, 1797, 876, 06178 1802, 1801, 1801, 3320, 3320, 1802, 1802, 1801, 3320, 1801, 06179 874, 1802, 873, 1802, 1803, 1803, 872, 1803, 1804, 1804, 06180 06181 871, 1804, 870, 1799, 869, 1803, 867, 1800, 866, 1804, 06182 1803, 1803, 3331, 3331, 1804, 1804, 1803, 3331, 1803, 865, 06183 1804, 864, 1804, 2964, 1805, 1805, 2964, 1805, 1806, 1806, 06184 1801, 1806, 862, 861, 2964, 1805, 860, 1802, 859, 1806, 06185 1805, 1805, 858, 857, 1806, 1806, 1805, 1803, 1805, 856, 06186 1806, 845, 1806, 1807, 1807, 844, 1807, 1808, 1808, 838, 06187 1808, 837, 836, 835, 1807, 831, 3026, 1804, 1808, 1807, 06188 1807, 3026, 3026, 1808, 1808, 1807, 3026, 1807, 830, 1808, 06189 829, 1808, 1806, 823, 1809, 1809, 822, 1809, 819, 2964, 06190 782, 1805, 3034, 1810, 1810, 1809, 1810, 3034, 3034, 752, 06191 06192 1809, 1809, 3034, 743, 1810, 1807, 1809, 742, 1809, 1810, 06193 1810, 1811, 1811, 732, 1811, 1810, 699, 1810, 670, 669, 06194 1812, 1812, 1811, 1812, 666, 1808, 663, 1811, 1811, 2967, 06195 662, 1812, 2967, 1811, 646, 1811, 1812, 1812, 1813, 1813, 06196 2967, 1813, 1812, 614, 1812, 1810, 583, 1814, 1814, 1813, 06197 1814, 1809, 582, 577, 1813, 1813, 575, 567, 1814, 561, 06198 1813, 535, 1813, 1814, 1814, 1815, 1815, 1811, 1815, 1814, 06199 531, 1814, 525, 3064, 1816, 1816, 1815, 1816, 3064, 3064, 06200 1812, 1815, 1815, 3064, 488, 1816, 2764, 1815, 487, 1815, 06201 1816, 1816, 2764, 2764, 1813, 477, 1816, 2967, 1816, 2764, 06202 06203 476, 1817, 1817, 475, 1817, 472, 470, 2764, 469, 467, 06204 1818, 1818, 1817, 1818, 466, 454, 1814, 1817, 1817, 1819, 06205 1819, 1818, 1819, 1817, 439, 1817, 1818, 1818, 1820, 1820, 06206 1819, 1820, 1818, 435, 1818, 1819, 1819, 1815, 429, 1820, 06207 428, 1819, 1816, 1819, 1820, 1820, 2462, 2462, 2462, 2462, 06208 1820, 427, 1820, 2462, 425, 424, 1821, 1821, 2764, 1821, 06209 2764, 422, 1889, 1889, 1889, 1889, 1818, 1821, 421, 420, 06210 1819, 1817, 1821, 1821, 419, 418, 1822, 1822, 1821, 1822, 06211 1821, 409, 408, 407, 1889, 1819, 1889, 1822, 1820, 405, 06212 404, 402, 1822, 1822, 1823, 1823, 401, 1823, 1822, 400, 06213 06214 1822, 399, 398, 1824, 1824, 1823, 1824, 396, 383, 382, 06215 1823, 1823, 1825, 1825, 1824, 1825, 1823, 381, 1823, 1824, 06216 1824, 1821, 380, 1825, 379, 1824, 2462, 1824, 1825, 1825, 06217 1822, 377, 1889, 350, 1825, 344, 1825, 343, 342, 1826, 06218 1826, 339, 1826, 1891, 1891, 1891, 1891, 338, 1823, 336, 06219 1826, 335, 334, 332, 331, 1826, 1826, 1827, 1827, 315, 06220 1827, 1826, 1824, 1826, 305, 1891, 304, 1891, 1827, 1828, 06221 1828, 303, 1828, 1827, 1827, 1825, 302, 294, 287, 1827, 06222 1828, 1827, 3067, 243, 242, 1828, 1828, 1829, 1829, 239, 06223 1829, 1828, 209, 1828, 1891, 204, 3067, 3067, 1829, 1830, 06224 06225 1830, 3067, 1830, 1829, 1829, 2745, 2745, 2745, 2745, 1829, 06226 1830, 1829, 1826, 197, 193, 1830, 1830, 192, 191, 1831, 06227 1831, 1830, 1831, 1830, 1828, 162, 1827, 2745, 156, 1828, 06228 1831, 152, 147, 138, 1828, 1831, 1831, 1832, 1832, 136, 06229 1832, 1831, 128, 1831, 1890, 1890, 1890, 1890, 1832, 119, 06230 3068, 117, 1829, 1832, 1832, 3068, 3068, 1830, 108, 1832, 06231 3068, 1832, 1833, 1833, 99, 1833, 1890, 95, 1890, 89, 06232 80, 1834, 1834, 1833, 1834, 3145, 72, 1831, 1833, 1833, 06233 1835, 1835, 1834, 1835, 1833, 65, 1833, 1834, 1834, 3145, 06234 3145, 1835, 0, 1834, 3145, 1834, 1835, 1835, 0, 0, 06235 06236 1890, 0, 1835, 0, 1835, 0, 0, 0, 1832, 2206, 06237 2206, 2206, 2206, 2209, 2209, 2209, 2209, 2742, 2742, 2742, 06238 2742, 0, 0, 2797, 2797, 2797, 2797, 0, 2742, 0, 06239 0, 2206, 1833, 2206, 2797, 2209, 1835, 2209, 0, 1834, 06240 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06241 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06242 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06243 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06244 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06245 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06246 06247 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06248 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 06249 1884, 1884, 1893, 1893, 1893, 1893, 1894, 1894, 1894, 1894, 06250 0, 2778, 2778, 2778, 2778, 0, 2208, 2208, 2208, 2208, 06251 1985, 1985, 1985, 1985, 1893, 0, 1893, 0, 1894, 0, 06252 1894, 1985, 1985, 2778, 2069, 1985, 1985, 2069, 2208, 0, 06253 2208, 0, 1985, 1985, 1985, 2069, 2842, 2842, 2842, 2842, 06254 2069, 2069, 2465, 2465, 2465, 2465, 2069, 2842, 2069, 0, 06255 1893, 0, 0, 2465, 2927, 2927, 2927, 2927, 2208, 1985, 06256 0, 2927, 0, 0, 2465, 2069, 1894, 1937, 1937, 1937, 06257 06258 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 06259 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 06260 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 06261 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 06262 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 06263 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 06264 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 06265 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1987, 06266 1987, 1987, 1987, 3069, 0, 0, 1987, 0, 3069, 3069, 06267 0, 1987, 3173, 3069, 0, 0, 0, 0, 1987, 1987, 06268 06269 1987, 1987, 1988, 1988, 1988, 1988, 3173, 3173, 0, 1988, 06270 0, 3173, 0, 0, 1988, 1999, 1999, 1999, 1999, 0, 06271 0, 1988, 1988, 1988, 1988, 0, 1999, 1999, 0, 0, 06272 1999, 2000, 2000, 2000, 2000, 0, 3305, 1999, 1999, 1999, 06273 0, 2070, 2000, 2000, 2070, 2071, 2000, 0, 2071, 0, 06274 3305, 3305, 2070, 2000, 2000, 3305, 2071, 2070, 2070, 1987, 06275 0, 2071, 2071, 2070, 1999, 2070, 0, 2071, 0, 2071, 06276 2466, 2466, 2466, 2466, 0, 0, 2845, 2845, 2845, 2845, 06277 2000, 2466, 1988, 1992, 1992, 1992, 1992, 2845, 0, 0, 06278 0, 0, 2466, 2092, 1992, 1992, 2092, 2075, 1992, 1992, 06279 06280 2075, 2071, 0, 0, 2092, 1992, 1992, 1992, 2075, 2092, 06281 2092, 0, 2070, 2075, 2075, 2092, 0, 2092, 0, 2075, 06282 0, 2075, 2944, 2944, 2944, 2944, 0, 0, 0, 0, 06283 0, 0, 1992, 2944, 0, 0, 0, 0, 0, 1992, 06284 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 06285 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 2003, 06286 2092, 0, 2075, 2003, 2003, 2003, 2003, 2003, 2003, 0, 06287 0, 0, 2211, 2211, 2211, 2211, 2072, 0, 0, 2072, 06288 2210, 2210, 2210, 2210, 0, 0, 0, 2072, 2003, 2003, 06289 2003, 2003, 2072, 2072, 2211, 0, 2211, 0, 2072, 0, 06290 06291 2072, 0, 2210, 0, 2210, 2212, 2212, 2212, 2212, 2275, 06292 2275, 2275, 2275, 0, 0, 0, 2275, 0, 2003, 2003, 06293 2003, 2003, 2010, 2010, 2010, 2010, 0, 2212, 2072, 2212, 06294 0, 0, 2073, 2010, 2010, 2073, 2210, 2010, 0, 0, 06295 0, 0, 2211, 2073, 2010, 2010, 2010, 0, 2073, 2073, 06296 2076, 0, 0, 2076, 2073, 0, 2073, 0, 0, 0, 06297 2212, 2076, 2223, 2223, 2223, 2223, 2076, 2076, 0, 0, 06298 0, 2010, 2076, 3076, 2076, 2275, 2010, 0, 3076, 3076, 06299 0, 0, 0, 3076, 2073, 2223, 0, 2223, 0, 2275, 06300 0, 2010, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 06301 06302 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 2052, 06303 2052, 2052, 0, 2076, 0, 2052, 2052, 2052, 2052, 2052, 06304 2052, 0, 2223, 0, 2277, 2277, 2277, 2277, 0, 0, 06305 2215, 2215, 2215, 2215, 2079, 2277, 0, 2079, 0, 2223, 06306 2052, 2052, 2052, 2052, 2081, 2079, 2277, 2081, 2277, 0, 06307 2079, 2079, 2215, 0, 2215, 2081, 2079, 0, 2079, 3077, 06308 2081, 2081, 2052, 0, 3077, 3077, 2081, 0, 2081, 3077, 06309 2052, 2052, 2052, 2052, 2074, 2074, 2074, 2074, 2074, 2074, 06310 2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074, 06311 2074, 2074, 2074, 2074, 2079, 2215, 0, 2074, 2074, 2074, 06312 06313 2074, 2074, 2074, 0, 0, 2708, 2708, 3079, 0, 2081, 06314 2708, 2708, 3079, 3079, 0, 0, 2077, 3079, 0, 2077, 06315 2708, 0, 2074, 2074, 2074, 2074, 2074, 2077, 0, 0, 06316 0, 0, 2077, 2077, 2078, 0, 0, 2078, 2077, 0, 06317 2077, 0, 0, 0, 0, 2078, 2080, 0, 0, 2080, 06318 2078, 2078, 2074, 2074, 2074, 2074, 2078, 2080, 2078, 0, 06319 0, 0, 2080, 2080, 2084, 0, 0, 2084, 2080, 0, 06320 2080, 0, 2077, 2708, 0, 2084, 2891, 2891, 2891, 2891, 06321 2084, 2084, 2085, 2891, 0, 2085, 2084, 0, 2084, 0, 06322 2078, 2086, 0, 2085, 2086, 0, 0, 0, 2085, 2085, 06323 06324 2080, 0, 2086, 0, 2085, 0, 2085, 2086, 2086, 2087, 06325 0, 3080, 2087, 2086, 0, 2086, 3080, 3080, 2084, 2088, 06326 2087, 3080, 2088, 0, 0, 2087, 2087, 0, 0, 2089, 06327 2088, 2087, 2089, 2087, 0, 2088, 2088, 2085, 0, 0, 06328 2089, 2088, 2891, 2088, 0, 2089, 2089, 0, 0, 2090, 06329 0, 2089, 2090, 2089, 0, 0, 2891, 0, 3085, 2091, 06330 2090, 2086, 2091, 3085, 3085, 2090, 2090, 0, 3085, 2087, 06331 2091, 2090, 0, 2090, 0, 2091, 2091, 2093, 0, 0, 06332 2093, 2091, 0, 2091, 0, 2089, 3087, 2094, 2093, 2088, 06333 2094, 3087, 3087, 2093, 2093, 0, 3087, 0, 2094, 2093, 06334 06335 0, 2093, 2095, 2094, 2094, 2095, 0, 0, 0, 2094, 06336 0, 2094, 0, 2095, 2090, 0, 0, 2096, 2095, 2095, 06337 2096, 0, 2091, 0, 2095, 0, 2095, 2097, 2096, 0, 06338 2097, 0, 0, 2096, 2096, 0, 0, 2098, 2097, 2096, 06339 2098, 2096, 0, 2097, 2097, 0, 0, 2093, 2098, 2097, 06340 0, 2097, 2099, 2098, 2098, 2099, 0, 2094, 0, 2098, 06341 0, 2098, 2100, 2099, 0, 2100, 0, 0, 2099, 2099, 06342 0, 0, 2095, 2100, 2099, 3149, 2099, 2096, 2100, 2100, 06343 3149, 3149, 0, 0, 2100, 3149, 2100, 2101, 0, 0, 06344 2101, 0, 2557, 2557, 2557, 2557, 0, 2097, 2101, 0, 06345 06346 0, 0, 2102, 2101, 2101, 2102, 2099, 2098, 0, 2101, 06347 0, 2101, 2103, 2102, 2557, 2103, 2100, 0, 2102, 2102, 06348 0, 0, 2104, 2103, 2102, 2104, 2102, 0, 2103, 2103, 06349 0, 0, 0, 2104, 2103, 0, 2103, 2105, 2104, 2104, 06350 2105, 0, 0, 0, 2104, 3150, 2104, 0, 2105, 2106, 06351 3150, 3150, 2106, 2105, 2105, 3150, 0, 2101, 2102, 2105, 06352 2106, 2105, 0, 0, 2107, 2106, 2106, 2107, 2103, 2557, 06353 0, 2106, 0, 2106, 2108, 2107, 0, 2108, 0, 0, 06354 2107, 2107, 0, 0, 0, 2108, 2107, 2104, 2107, 0, 06355 2108, 2108, 2105, 0, 2109, 0, 2108, 2109, 2108, 0, 06356 06357 2828, 2828, 2828, 2828, 0, 2109, 0, 0, 0, 2110, 06358 2109, 2109, 2110, 0, 0, 0, 2109, 0, 2109, 2106, 06359 2110, 2107, 2828, 0, 2111, 2110, 2110, 2111, 2108, 0, 06360 0, 2110, 0, 2110, 2112, 2111, 0, 2112, 0, 0, 06361 2111, 2111, 0, 0, 2113, 2112, 2111, 2113, 2111, 0, 06362 2112, 2112, 2109, 0, 0, 2113, 2112, 0, 2112, 0, 06363 2113, 2113, 0, 0, 2116, 0, 2113, 2116, 2113, 2213, 06364 2213, 2213, 2213, 2119, 0, 2116, 2119, 0, 0, 2110, 06365 2116, 2116, 0, 2111, 2119, 0, 2116, 0, 2116, 2119, 06366 2119, 2213, 0, 2213, 0, 2119, 2113, 2119, 0, 0, 06367 06368 0, 0, 2112, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 06369 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 06370 2115, 2115, 2115, 0, 2116, 2119, 2115, 2115, 2115, 2115, 06371 2115, 2115, 3162, 2117, 0, 0, 2117, 3162, 3162, 2213, 06372 0, 0, 3162, 0, 2117, 2118, 0, 0, 2118, 2117, 06373 2117, 2115, 2115, 2115, 2115, 2117, 2118, 2117, 0, 0, 06374 0, 2118, 2118, 2120, 0, 0, 2120, 2118, 0, 2118, 06375 0, 0, 0, 2115, 2120, 2121, 0, 0, 2121, 2120, 06376 2120, 2115, 2115, 2115, 2115, 2120, 2121, 2120, 0, 2117, 06377 2122, 2121, 2121, 2122, 0, 0, 0, 2121, 3163, 2121, 06378 06379 2118, 2122, 2123, 3163, 3163, 2123, 2122, 2122, 3163, 0, 06380 0, 0, 2122, 2123, 2122, 0, 0, 0, 2123, 2123, 06381 2125, 2125, 0, 2125, 2123, 0, 2123, 2121, 2120, 0, 06382 0, 2125, 2126, 2126, 0, 2126, 2125, 2125, 0, 0, 06383 0, 3164, 2125, 2126, 2125, 0, 3164, 3164, 2126, 2126, 06384 2122, 3164, 0, 2123, 2126, 0, 2126, 2127, 2127, 0, 06385 2127, 2125, 0, 0, 0, 0, 2128, 2128, 2127, 2128, 06386 0, 0, 0, 2127, 2127, 2129, 2129, 2128, 2129, 2127, 06387 0, 2127, 2128, 2128, 2130, 2130, 2129, 2130, 2128, 0, 06388 2128, 2129, 2129, 2131, 2131, 2130, 2131, 2129, 0, 2129, 06389 06390 2130, 2130, 0, 2126, 2131, 0, 2130, 0, 2130, 2131, 06391 2131, 0, 0, 2127, 0, 2131, 0, 2131, 2128, 2132, 06392 2132, 0, 2132, 2133, 2133, 0, 2133, 2129, 0, 0, 06393 2132, 0, 3166, 0, 2133, 2132, 2132, 3166, 3166, 2133, 06394 2133, 2132, 3166, 2132, 0, 2133, 0, 2133, 0, 2130, 06395 2134, 2134, 0, 2134, 2135, 2135, 2131, 2135, 3172, 0, 06396 0, 2134, 0, 3172, 3172, 2135, 2134, 2134, 3172, 0, 06397 2135, 2135, 2134, 0, 2134, 2132, 2135, 0, 2135, 2133, 06398 0, 0, 0, 0, 0, 0, 2137, 2137, 0, 2137, 06399 2139, 2139, 0, 2139, 2776, 2776, 0, 2137, 0, 2776, 06400 06401 2776, 2139, 2137, 2137, 2134, 0, 2139, 2139, 2137, 2776, 06402 2137, 0, 2139, 0, 2139, 0, 0, 0, 0, 2135, 06403 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 06404 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 06405 2137, 0, 0, 2136, 2136, 2136, 2136, 2136, 2136, 0, 06406 2138, 2138, 0, 2138, 2214, 2214, 2214, 2214, 0, 0, 06407 2139, 2138, 2776, 0, 0, 0, 2138, 2138, 2136, 2136, 06408 2136, 2136, 2138, 0, 2138, 0, 2214, 0, 2214, 0, 06409 2140, 2140, 0, 2140, 2136, 0, 0, 2921, 2921, 2921, 06410 2921, 2140, 2141, 2141, 2921, 2141, 2140, 2140, 2136, 2136, 06411 06412 2136, 2136, 2140, 2141, 2140, 2138, 0, 0, 2141, 2141, 06413 2142, 2142, 2214, 2142, 2141, 0, 2141, 0, 0, 2143, 06414 2143, 2142, 2143, 0, 0, 0, 2142, 2142, 2144, 2144, 06415 2143, 2144, 2142, 0, 2142, 2143, 2143, 0, 0, 2144, 06416 2140, 2143, 0, 2143, 2144, 2144, 0, 0, 2145, 2145, 06417 2144, 2145, 2144, 2921, 0, 0, 0, 2146, 2146, 2145, 06418 2146, 0, 2141, 0, 2145, 2145, 2142, 2921, 2146, 0, 06419 2145, 0, 2145, 2146, 2146, 0, 0, 2147, 2147, 2146, 06420 2147, 2146, 0, 0, 2143, 0, 2148, 2148, 2147, 2148, 06421 0, 2144, 0, 2147, 2147, 2149, 2149, 2148, 2149, 2147, 06422 06423 0, 2147, 2148, 2148, 0, 0, 2149, 0, 2148, 0, 06424 2148, 2149, 2149, 2150, 2150, 2145, 2150, 2149, 0, 2149, 06425 0, 0, 2151, 2151, 2150, 2151, 3237, 2146, 0, 2150, 06426 2150, 3237, 3237, 2151, 0, 2150, 3237, 2150, 2151, 2151, 06427 0, 0, 2152, 2152, 2151, 2152, 2151, 2147, 0, 0, 06428 0, 2153, 2153, 2152, 2153, 2149, 2148, 0, 2152, 2152, 06429 2154, 2154, 2153, 2154, 2152, 0, 2152, 2153, 2153, 2155, 06430 2155, 2154, 2155, 2153, 0, 2153, 2154, 2154, 2156, 2156, 06431 2155, 2156, 2154, 2150, 2154, 2155, 2155, 2157, 2157, 2156, 06432 2157, 2155, 2151, 2155, 2156, 2156, 2152, 0, 2157, 0, 06433 06434 2156, 0, 2156, 2157, 2157, 2153, 0, 2158, 2158, 2157, 06435 2158, 2157, 0, 0, 0, 0, 2159, 2159, 2158, 2159, 06436 0, 0, 0, 2158, 2158, 2155, 0, 2159, 0, 2158, 06437 2154, 2158, 2159, 2159, 2160, 2160, 0, 2160, 2159, 0, 06438 2159, 0, 2157, 2156, 0, 2160, 2161, 2161, 0, 2161, 06439 2160, 2160, 2812, 2812, 2812, 2812, 2160, 2161, 2160, 2812, 06440 0, 0, 2161, 2161, 2224, 2224, 2224, 2224, 2161, 0, 06441 2161, 0, 0, 2159, 2812, 2162, 2162, 2158, 2162, 2163, 06442 2163, 0, 2163, 0, 0, 0, 2162, 2224, 2160, 2224, 06443 2163, 2162, 2162, 0, 0, 2163, 2163, 2162, 0, 2162, 06444 06445 0, 2163, 0, 2163, 2161, 2164, 2164, 0, 2164, 2165, 06446 2165, 0, 2165, 0, 0, 0, 2164, 0, 2812, 2224, 06447 2165, 2164, 2164, 0, 0, 2165, 2165, 2164, 0, 2164, 06448 0, 2165, 2812, 2165, 0, 0, 2167, 2167, 2163, 2167, 06449 0, 2224, 0, 0, 0, 2162, 0, 2167, 2168, 2168, 06450 0, 2168, 2167, 2167, 0, 0, 0, 3238, 2167, 2168, 06451 2167, 2165, 3238, 3238, 2168, 2168, 0, 3238, 0, 0, 06452 2168, 0, 2168, 2164, 2166, 2166, 2166, 2166, 2166, 2166, 06453 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 06454 2166, 2166, 2166, 2166, 0, 0, 2167, 2166, 2166, 2166, 06455 06456 2166, 2166, 2166, 0, 2168, 0, 2216, 2216, 2216, 2216, 06457 2169, 2169, 0, 2169, 2421, 2421, 2421, 2421, 0, 0, 06458 0, 2169, 2166, 2166, 2166, 2166, 2169, 2169, 2216, 0, 06459 2216, 0, 2169, 0, 2169, 0, 2421, 0, 2421, 0, 06460 2170, 2170, 0, 2170, 2166, 0, 0, 0, 0, 0, 06461 0, 2170, 2166, 2166, 2166, 2166, 2170, 2170, 2171, 2171, 06462 0, 2171, 2170, 0, 2170, 2169, 2216, 2172, 2172, 2171, 06463 2172, 3251, 0, 0, 2171, 2171, 3251, 3251, 2172, 2421, 06464 2171, 3251, 2171, 2172, 2172, 2173, 2173, 0, 2173, 2172, 06465 0, 2172, 2170, 0, 0, 0, 2173, 2248, 2248, 2248, 06466 06467 2248, 2173, 2173, 0, 0, 2174, 2174, 2173, 2174, 2173, 06468 2217, 2217, 2217, 2217, 0, 0, 2174, 0, 0, 2172, 06469 3253, 2174, 2174, 2171, 0, 3253, 3253, 2174, 0, 2174, 06470 3253, 0, 2217, 0, 2217, 2222, 2222, 2222, 2222, 2225, 06471 2225, 2225, 2225, 0, 0, 2173, 2531, 2531, 2531, 2531, 06472 0, 2248, 0, 0, 0, 0, 2174, 2531, 2222, 0, 06473 2222, 2217, 2225, 2248, 2225, 0, 2248, 0, 2531, 2248, 06474 2273, 2273, 2273, 2273, 2248, 0, 2278, 2278, 2278, 2278, 06475 0, 2273, 2273, 0, 0, 2273, 0, 2278, 0, 2222, 06476 0, 0, 2273, 2273, 2273, 0, 0, 0, 2278, 2225, 06477 06478 2278, 2222, 0, 0, 2222, 2222, 0, 2222, 2422, 2422, 06479 2422, 2422, 2222, 0, 0, 0, 2225, 0, 0, 2273, 06480 0, 3261, 2280, 2280, 2280, 2280, 3261, 3261, 0, 0, 06481 2422, 3261, 2422, 2280, 2280, 0, 0, 2280, 2273, 2285, 06482 2285, 2285, 2285, 2278, 2280, 2280, 2280, 0, 0, 0, 06483 2285, 2285, 0, 2280, 2285, 0, 0, 2291, 2291, 2291, 06484 2291, 2285, 2285, 2285, 0, 0, 0, 0, 2291, 2291, 06485 0, 2280, 2291, 2369, 2369, 2369, 2369, 3297, 0, 2291, 06486 2291, 2291, 3297, 3297, 2369, 0, 0, 3297, 2285, 2290, 06487 2290, 2290, 2290, 3298, 0, 2369, 0, 2369, 3298, 3298, 06488 06489 2290, 2290, 0, 3298, 2290, 0, 2291, 2292, 2292, 2292, 06490 2292, 2290, 2290, 2290, 0, 0, 0, 2331, 2292, 2292, 06491 2331, 0, 2292, 2423, 2423, 2423, 2423, 0, 2331, 2292, 06492 2292, 2805, 2805, 2331, 2331, 0, 2805, 2805, 2290, 2331, 06493 0, 2331, 0, 2290, 3308, 2423, 2805, 2423, 2331, 3308, 06494 3308, 0, 0, 0, 3308, 0, 2292, 0, 2290, 2311, 06495 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 06496 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2311, 2423, 06497 0, 0, 2311, 2311, 2311, 2311, 2311, 2311, 0, 0, 06498 0, 0, 0, 0, 2424, 2424, 2424, 2424, 0, 2805, 06499 06500 2324, 2324, 2324, 2324, 0, 0, 0, 2311, 2311, 2311, 06501 2311, 2324, 2324, 0, 0, 2324, 2424, 0, 2424, 0, 06502 0, 0, 2324, 2324, 2324, 0, 2568, 2568, 2568, 2568, 06503 2325, 2325, 2325, 2325, 0, 0, 0, 2311, 2311, 2311, 06504 2311, 2325, 2325, 0, 2332, 2325, 0, 2332, 2568, 2324, 06505 2568, 0, 2325, 2325, 0, 2332, 2333, 2424, 0, 2333, 06506 2332, 2332, 0, 0, 0, 2324, 2332, 2333, 2332, 0, 06507 0, 0, 2333, 2333, 2334, 0, 0, 2334, 2333, 2325, 06508 2333, 2568, 3309, 2335, 0, 2334, 2335, 3309, 3309, 0, 06509 2334, 2334, 3309, 0, 2335, 2325, 2334, 0, 2334, 2335, 06510 06511 2335, 2336, 0, 0, 2336, 2335, 0, 2335, 2332, 0, 06512 2337, 0, 2336, 2337, 0, 0, 0, 2336, 2336, 2338, 06513 0, 2337, 2338, 2336, 2333, 2336, 2337, 2337, 2334, 0, 06514 2338, 0, 2337, 0, 2337, 2338, 2338, 0, 0, 0, 06515 0, 2338, 2339, 2338, 0, 2339, 2340, 0, 2335, 2340, 06516 0, 0, 0, 2339, 0, 2336, 0, 2340, 2339, 2339, 06517 0, 0, 2340, 2340, 2339, 0, 2339, 0, 2340, 2341, 06518 2340, 0, 2341, 2765, 2765, 2765, 2765, 0, 0, 0, 06519 2341, 2337, 0, 0, 2765, 2341, 2341, 2343, 0, 2338, 06520 2343, 2341, 0, 2341, 0, 2765, 2339, 2344, 2343, 0, 06521 06522 2344, 0, 0, 2343, 2343, 0, 2340, 2345, 2344, 2343, 06523 2345, 2343, 0, 2344, 2344, 0, 0, 2346, 2345, 2344, 06524 2346, 2344, 0, 2345, 2345, 0, 0, 0, 2346, 2345, 06525 0, 2345, 2347, 2346, 2346, 2347, 0, 0, 0, 2346, 06526 0, 2346, 0, 2347, 2341, 0, 2343, 2348, 2347, 2347, 06527 2348, 2344, 0, 0, 2347, 0, 2347, 0, 2348, 2345, 06528 0, 0, 0, 2348, 2348, 2349, 0, 0, 2349, 2348, 06529 0, 2348, 0, 2346, 2350, 0, 2349, 2350, 0, 0, 06530 0, 2349, 2349, 2351, 2347, 2350, 2351, 2349, 0, 2349, 06531 2350, 2350, 2352, 0, 2351, 2352, 2350, 0, 2350, 2351, 06532 06533 2351, 2353, 0, 2352, 2353, 2351, 0, 2351, 2352, 2352, 06534 2354, 0, 2353, 2354, 2352, 2348, 2352, 2353, 2353, 2355, 06535 0, 2354, 2355, 2353, 0, 2353, 2354, 2354, 0, 2350, 06536 2355, 2349, 2354, 0, 2354, 2355, 2355, 0, 0, 3313, 06537 0, 2355, 0, 2355, 3313, 3313, 0, 0, 2352, 3313, 06538 0, 2351, 2357, 0, 0, 2357, 2358, 0, 0, 2358, 06539 0, 0, 0, 2357, 0, 0, 2354, 2358, 2357, 2357, 06540 0, 2353, 2358, 2358, 2357, 0, 2357, 0, 2358, 0, 06541 2358, 0, 0, 0, 0, 0, 0, 2355, 2356, 2356, 06542 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 06543 06544 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 0, 0, 06545 0, 2356, 2356, 2356, 2356, 2356, 2356, 0, 2357, 0, 06546 0, 2425, 2425, 2425, 2425, 0, 2358, 0, 0, 0, 06547 2360, 0, 0, 2360, 0, 0, 2356, 2356, 2356, 2356, 06548 2356, 2360, 0, 2425, 0, 2425, 2360, 2360, 2361, 0, 06549 0, 2361, 2360, 0, 2360, 0, 0, 0, 0, 2361, 06550 2362, 0, 0, 2362, 2361, 2361, 2356, 2356, 2356, 2356, 06551 2361, 2362, 2361, 0, 0, 0, 2362, 2362, 2363, 0, 06552 0, 2363, 2362, 0, 2362, 0, 2360, 2364, 0, 2363, 06553 2364, 2425, 0, 0, 2363, 2363, 2365, 0, 2364, 2365, 06554 06555 2363, 0, 2363, 2364, 2364, 2361, 0, 2365, 0, 2364, 06556 0, 2364, 2365, 2365, 2366, 0, 3329, 2366, 2365, 0, 06557 2365, 3329, 3329, 0, 2362, 2366, 3329, 0, 0, 0, 06558 2366, 2366, 2371, 2371, 2363, 2371, 2366, 0, 2366, 0, 06559 0, 0, 0, 2371, 2372, 2372, 0, 2372, 2371, 2371, 06560 2364, 0, 3330, 0, 2371, 2372, 2371, 3330, 3330, 2365, 06561 2372, 2372, 3330, 2371, 2373, 2373, 2372, 2373, 2372, 0, 06562 0, 0, 0, 0, 0, 2373, 2374, 2374, 0, 2374, 06563 2373, 2373, 0, 0, 2366, 0, 2373, 2374, 2373, 0, 06564 0, 0, 2374, 2374, 2375, 2375, 0, 2375, 2374, 0, 06565 06566 2374, 0, 0, 2376, 2376, 2375, 2376, 0, 2372, 0, 06567 2375, 2375, 2377, 2377, 2376, 2377, 2375, 0, 2375, 2376, 06568 2376, 0, 0, 2377, 0, 2376, 0, 2376, 2377, 2377, 06569 2374, 0, 2373, 0, 2377, 0, 2377, 0, 2378, 2378, 06570 0, 2378, 0, 0, 0, 0, 3334, 2379, 2379, 2378, 06571 2379, 3334, 3334, 0, 2378, 2378, 3334, 0, 2379, 2375, 06572 2378, 0, 2378, 2379, 2379, 0, 2910, 2380, 2380, 2379, 06573 2380, 2379, 2910, 2910, 2376, 0, 0, 0, 2380, 2910, 06574 0, 0, 2377, 2380, 2380, 2381, 2381, 2910, 2381, 2380, 06575 0, 2380, 0, 0, 2382, 2382, 2381, 2382, 2378, 0, 06576 06577 0, 2381, 2381, 2383, 2383, 2382, 2383, 2381, 0, 2381, 06578 2382, 2382, 2384, 2384, 2383, 2384, 2382, 0, 2382, 2383, 06579 2383, 0, 2379, 2384, 0, 2383, 2380, 2383, 2384, 2384, 06580 0, 0, 2385, 2385, 2384, 2385, 2384, 0, 2910, 2381, 06581 2910, 2386, 2386, 2385, 2386, 0, 2382, 0, 2385, 2385, 06582 2387, 2387, 2386, 2387, 2385, 0, 2385, 2386, 2386, 2383, 06583 0, 2387, 0, 2386, 2384, 2386, 2387, 2387, 2388, 2388, 06584 0, 2388, 2387, 0, 2387, 0, 0, 2389, 2389, 2388, 06585 2389, 0, 0, 0, 2388, 2388, 2390, 2390, 2389, 2390, 06586 2388, 0, 2388, 2389, 2389, 2391, 2391, 2390, 2391, 2389, 06587 06588 2385, 2389, 2390, 2390, 0, 2387, 2391, 2386, 2390, 0, 06589 2390, 2391, 2391, 2392, 2392, 3335, 2392, 2391, 0, 2391, 06590 3335, 3335, 0, 0, 2392, 3335, 0, 0, 0, 2392, 06591 2392, 2393, 2393, 2389, 2393, 2392, 2388, 2392, 0, 0, 06592 0, 0, 2393, 2394, 2394, 0, 2394, 2393, 2393, 0, 06593 0, 2391, 0, 2393, 2394, 2393, 2390, 0, 0, 2394, 06594 2394, 2395, 2395, 0, 2395, 2394, 0, 2394, 0, 0, 06595 2396, 2396, 2395, 2396, 0, 0, 0, 2395, 2395, 2392, 06596 0, 2396, 0, 2395, 0, 2395, 2396, 2396, 0, 0, 06597 0, 0, 2396, 0, 2396, 2397, 2397, 0, 2397, 2394, 06598 06599 0, 2393, 0, 0, 2398, 2398, 2397, 2398, 0, 0, 06600 0, 2397, 2397, 2399, 2399, 2398, 2399, 2397, 2395, 2397, 06601 2398, 2398, 2400, 2400, 2399, 2400, 2398, 0, 2398, 2399, 06602 2399, 0, 0, 2400, 2396, 2399, 0, 2399, 2400, 2400, 06603 2430, 2430, 2430, 2430, 2400, 0, 2400, 2463, 2463, 2463, 06604 2463, 2397, 0, 2464, 2464, 2464, 2464, 0, 2463, 2467, 06605 2467, 2467, 2467, 2430, 2464, 2430, 0, 2398, 3336, 2463, 06606 2467, 2463, 0, 3336, 3336, 2464, 2399, 2464, 3336, 2509, 06607 0, 2467, 2509, 2467, 0, 0, 0, 0, 0, 0, 06608 2509, 0, 2400, 0, 2430, 2509, 2509, 2469, 2469, 2469, 06609 06610 2469, 2509, 0, 2509, 0, 0, 2430, 0, 2469, 2430, 06611 2430, 0, 2430, 2476, 2476, 2476, 2476, 2430, 0, 2469, 06612 2464, 2469, 0, 2511, 2476, 2476, 2511, 0, 2476, 0, 06613 2509, 0, 0, 0, 2511, 2476, 2476, 2476, 3337, 2511, 06614 2511, 0, 0, 3337, 3337, 2511, 0, 2511, 3337, 0, 06615 0, 0, 0, 2469, 0, 0, 0, 0, 0, 0, 06616 0, 0, 2476, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 06617 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 06618 2482, 2482, 2482, 0, 0, 0, 2482, 2482, 2482, 2482, 06619 2482, 2482, 0, 2511, 0, 0, 0, 0, 0, 2532, 06620 06621 2532, 2532, 2532, 0, 0, 2503, 2503, 2503, 2503, 0, 06622 2532, 2482, 2482, 2482, 2482, 2482, 2503, 2503, 0, 2696, 06623 2503, 2532, 0, 2532, 0, 2696, 2696, 2503, 2503, 2503, 06624 2696, 2696, 2696, 0, 0, 0, 0, 0, 0, 0, 06625 2696, 2482, 2482, 2482, 2482, 2492, 2492, 2492, 2492, 0, 06626 2504, 2504, 2504, 2504, 2503, 0, 2492, 2492, 0, 0, 06627 2492, 2504, 2504, 2510, 0, 2504, 2510, 2492, 2492, 2492, 06628 2503, 2759, 2504, 2504, 2510, 0, 0, 2759, 2759, 2510, 06629 2510, 0, 2759, 2759, 2759, 2510, 2512, 2510, 0, 2512, 06630 0, 2696, 2759, 2696, 2492, 0, 0, 2512, 0, 2504, 06631 06632 0, 2492, 2512, 2512, 0, 2492, 0, 0, 2512, 2513, 06633 2512, 0, 2513, 2492, 0, 2504, 0, 2492, 2514, 2510, 06634 2513, 2514, 0, 0, 0, 2513, 2513, 0, 0, 2514, 06635 0, 2513, 0, 2513, 2514, 2514, 2515, 0, 2512, 2515, 06636 2514, 0, 2514, 2759, 0, 2759, 2517, 2515, 0, 2517, 06637 0, 0, 2515, 2515, 0, 0, 2518, 2517, 2515, 2518, 06638 2515, 0, 2517, 2517, 0, 2513, 0, 2518, 2517, 2514, 06639 2517, 2519, 2518, 2518, 2519, 0, 0, 0, 2518, 0, 06640 2518, 2520, 2519, 0, 2520, 0, 0, 2519, 2519, 0, 06641 0, 2521, 2520, 2519, 2521, 2519, 0, 2520, 2520, 0, 06642 06643 0, 2522, 2521, 2520, 2522, 2520, 2515, 2521, 2521, 2517, 06644 2518, 2523, 2522, 2521, 2523, 2521, 0, 2522, 2522, 0, 06645 0, 0, 2523, 2522, 0, 2522, 0, 2523, 2523, 2524, 06646 0, 0, 2524, 2523, 0, 2523, 0, 2520, 2525, 2519, 06647 2524, 2525, 0, 0, 0, 2524, 2524, 2521, 0, 2525, 06648 0, 2524, 0, 2524, 2525, 2525, 0, 0, 0, 0, 06649 2525, 0, 2525, 2526, 0, 0, 2526, 0, 0, 2522, 06650 0, 0, 0, 2527, 2526, 0, 2527, 0, 2523, 2526, 06651 2526, 0, 0, 2524, 2527, 2526, 0, 2526, 2528, 2527, 06652 2527, 2528, 0, 0, 0, 2527, 0, 2527, 2529, 2528, 06653 06654 0, 2529, 0, 2525, 2528, 2528, 0, 0, 0, 2529, 06655 2528, 0, 2528, 2530, 2529, 2529, 2530, 0, 0, 2526, 06656 2529, 0, 2529, 0, 2530, 2536, 2536, 0, 2536, 2530, 06657 2530, 0, 0, 0, 0, 2530, 2536, 2530, 2527, 0, 06658 0, 2536, 2536, 0, 2528, 0, 0, 2536, 0, 2536, 06659 0, 2537, 2537, 2529, 2537, 2538, 2538, 0, 2538, 0, 06660 0, 0, 2537, 0, 0, 0, 2538, 2537, 2537, 2530, 06661 0, 2538, 2538, 2537, 0, 2537, 2536, 2538, 0, 2538, 06662 2539, 2539, 0, 2539, 2540, 2540, 0, 2540, 0, 0, 06663 0, 2539, 0, 0, 0, 2540, 2539, 2539, 0, 0, 06664 06665 2540, 2540, 2539, 0, 2539, 0, 2540, 2537, 2540, 0, 06666 2541, 2541, 0, 2541, 0, 0, 0, 0, 0, 0, 06667 0, 2541, 0, 0, 0, 2538, 2541, 2541, 2542, 2542, 06668 0, 2542, 2541, 0, 2541, 0, 2539, 0, 0, 2542, 06669 2543, 2543, 0, 2543, 2542, 2542, 0, 0, 0, 0, 06670 2542, 2543, 2542, 0, 2540, 0, 2543, 2543, 2817, 2817, 06671 2817, 2817, 2543, 0, 2543, 0, 0, 2544, 2544, 2817, 06672 2544, 0, 0, 2541, 0, 0, 2545, 2545, 2544, 2545, 06673 2817, 0, 2542, 2544, 2544, 2546, 2546, 2545, 2546, 2544, 06674 0, 2544, 2545, 2545, 2547, 2547, 2546, 2547, 2545, 0, 06675 06676 2545, 2546, 2546, 0, 0, 2547, 0, 2546, 2543, 2546, 06677 2547, 2547, 0, 0, 2548, 2548, 2547, 2548, 2547, 0, 06678 0, 0, 0, 2544, 0, 2548, 2549, 2549, 0, 2549, 06679 2548, 2548, 2545, 0, 0, 0, 2548, 2549, 2548, 0, 06680 0, 0, 2549, 2549, 2550, 2550, 0, 2550, 2549, 0, 06681 2549, 0, 0, 2546, 0, 2550, 0, 0, 0, 2547, 06682 2550, 2550, 2551, 2551, 0, 2551, 2550, 0, 2550, 0, 06683 2548, 2552, 2552, 2551, 2552, 0, 0, 0, 2551, 2551, 06684 0, 0, 2552, 0, 2551, 0, 2551, 2552, 2552, 0, 06685 0, 2549, 0, 2552, 0, 2552, 2569, 2569, 2569, 2569, 06686 06687 2550, 2597, 2597, 2597, 2597, 0, 0, 0, 2598, 2598, 06688 2598, 2598, 2597, 2599, 2599, 2599, 2599, 2551, 2569, 2598, 06689 2569, 0, 0, 2597, 2599, 2597, 0, 2552, 0, 0, 06690 2598, 0, 2598, 0, 0, 2599, 0, 2599, 2607, 2607, 06691 2607, 2607, 0, 2608, 2608, 2608, 2608, 0, 0, 2607, 06692 2607, 0, 2569, 2607, 2608, 2608, 2710, 0, 2608, 2710, 06693 2607, 2607, 2607, 0, 2598, 2608, 2608, 2710, 2818, 2818, 06694 2818, 2818, 2710, 2710, 0, 0, 0, 0, 2710, 2818, 06695 2710, 2599, 0, 0, 0, 2710, 0, 2607, 0, 0, 06696 2818, 0, 2608, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06697 06698 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06699 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06700 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06701 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06702 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06703 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06704 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 2616, 06705 2616, 2616, 2616, 2616, 2616, 2617, 2617, 2617, 2617, 0, 06706 2618, 2618, 2618, 2618, 0, 0, 2617, 2617, 0, 0, 06707 2617, 2618, 2618, 0, 0, 2618, 0, 2617, 2617, 2617, 06708 06709 0, 0, 2618, 2618, 2619, 2619, 2619, 2619, 0, 0, 06710 2675, 2675, 2675, 2675, 0, 2619, 2619, 0, 0, 2619, 06711 2636, 2675, 0, 2636, 2617, 0, 2619, 2619, 2619, 2618, 06712 2637, 2636, 2675, 2637, 2675, 0, 2636, 2636, 0, 0, 06713 2638, 2637, 2636, 2638, 2636, 0, 2637, 2637, 0, 0, 06714 0, 2638, 2637, 2619, 2637, 0, 2638, 2638, 2619, 2636, 06715 2640, 0, 2638, 2640, 2638, 0, 0, 0, 0, 2641, 06716 0, 2640, 2641, 0, 0, 0, 2640, 2640, 2675, 0, 06717 2641, 0, 2640, 0, 2640, 2641, 2641, 2642, 0, 0, 06718 2642, 2641, 0, 2641, 2638, 0, 0, 2643, 2642, 2637, 06719 06720 2643, 0, 0, 2642, 2642, 0, 0, 0, 2643, 2642, 06721 0, 2642, 2644, 2643, 2643, 2644, 2640, 0, 0, 2643, 06722 0, 2643, 2645, 2644, 2641, 2645, 0, 0, 2644, 2644, 06723 0, 0, 0, 2645, 2644, 0, 2644, 0, 2645, 2645, 06724 2647, 2647, 0, 2647, 2645, 0, 2645, 0, 0, 2643, 06725 0, 2647, 0, 0, 0, 2642, 2647, 2647, 2648, 2648, 06726 0, 2648, 2647, 0, 2647, 0, 0, 2649, 2649, 2648, 06727 2649, 0, 2644, 0, 2648, 2648, 0, 0, 2649, 2647, 06728 2648, 0, 2648, 2649, 2649, 2650, 2650, 0, 2650, 2649, 06729 0, 2649, 2645, 0, 2651, 2651, 2650, 2651, 0, 0, 06730 06731 0, 2650, 2650, 0, 0, 2651, 0, 2650, 0, 2650, 06732 2651, 2651, 0, 0, 2648, 0, 2651, 0, 2651, 0, 06733 0, 0, 2649, 0, 2676, 2676, 2676, 2676, 2684, 2684, 06734 2684, 2684, 0, 0, 0, 2676, 0, 0, 2711, 2684, 06735 2684, 2711, 0, 2684, 0, 2650, 2676, 0, 2676, 2711, 06736 2684, 2684, 2684, 0, 2711, 2711, 2690, 2690, 2690, 2690, 06737 2711, 0, 2711, 0, 2651, 0, 0, 2690, 2690, 0, 06738 0, 2690, 2691, 2691, 2691, 2691, 2676, 2684, 2690, 2690, 06739 2690, 0, 0, 2691, 2691, 0, 0, 2691, 0, 0, 06740 2712, 0, 0, 2712, 2691, 2691, 2882, 2882, 2882, 2882, 06741 06742 0, 2712, 0, 2882, 0, 2690, 2712, 2712, 2711, 0, 06743 0, 0, 2712, 0, 2712, 0, 0, 0, 2882, 0, 06744 0, 2691, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 06745 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 06746 2694, 2694, 2712, 0, 0, 2694, 2694, 2694, 2694, 2694, 06747 2694, 0, 0, 0, 0, 0, 0, 0, 2736, 2736, 06748 2736, 2736, 0, 2707, 2707, 2707, 2707, 0, 0, 2736, 06749 2694, 2694, 2694, 2694, 2707, 2707, 2882, 0, 2707, 0, 06750 2736, 0, 2736, 0, 0, 2707, 2707, 2707, 2839, 2839, 06751 2839, 2839, 0, 2713, 0, 0, 2713, 0, 0, 0, 06752 06753 2694, 2694, 2694, 2694, 2713, 2714, 0, 0, 2714, 2713, 06754 2713, 2839, 2707, 2839, 0, 2713, 2714, 2713, 0, 0, 06755 2715, 2714, 2714, 2715, 0, 0, 0, 2714, 2736, 2714, 06756 0, 2715, 0, 0, 0, 0, 2715, 2715, 0, 0, 06757 2716, 2716, 2715, 2716, 2715, 0, 0, 0, 0, 2713, 06758 0, 2716, 0, 0, 0, 0, 2716, 2716, 2839, 0, 06759 2717, 2717, 2716, 2717, 2716, 2839, 0, 0, 0, 2716, 06760 0, 2717, 0, 0, 2714, 0, 2717, 2717, 2735, 2735, 06761 2735, 2735, 2717, 0, 2717, 0, 0, 0, 0, 2735, 06762 0, 0, 2748, 2748, 2748, 2748, 2715, 0, 0, 0, 06763 06764 2735, 0, 2735, 2748, 2748, 0, 0, 2748, 0, 2749, 06765 2749, 2749, 2749, 0, 2748, 2748, 2748, 0, 0, 0, 06766 2749, 2749, 0, 0, 2749, 0, 0, 0, 0, 0, 06767 2735, 2749, 2749, 0, 0, 0, 2717, 2756, 2756, 2756, 06768 2756, 2748, 2757, 2757, 2757, 2757, 0, 0, 2756, 2756, 06769 0, 0, 2756, 2757, 2757, 0, 0, 2757, 2749, 2756, 06770 2756, 2756, 0, 2781, 2757, 2757, 2781, 2819, 2819, 2819, 06771 2819, 0, 0, 0, 2781, 0, 0, 0, 2819, 2781, 06772 2781, 0, 0, 0, 0, 2781, 2756, 2781, 0, 2819, 06773 0, 2757, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06774 06775 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06776 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06777 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06778 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06779 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06780 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06781 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 06782 2760, 2760, 2760, 2760, 2761, 0, 0, 0, 0, 0, 06783 2761, 2761, 0, 0, 0, 2761, 2761, 2761, 2774, 2774, 06784 2774, 2774, 0, 0, 0, 2761, 0, 0, 2780, 2774, 06785 06786 2774, 2780, 2782, 2774, 0, 2782, 0, 0, 0, 2780, 06787 2774, 2774, 2774, 2782, 2780, 2780, 0, 0, 2782, 2782, 06788 2780, 0, 2780, 0, 2782, 2783, 2782, 0, 2783, 0, 06789 0, 0, 0, 0, 2780, 0, 2783, 2774, 0, 0, 06790 2784, 2783, 2783, 2784, 0, 0, 2761, 2783, 2761, 2783, 06791 2785, 2784, 0, 2785, 0, 0, 2784, 2784, 0, 0, 06792 0, 2785, 2784, 0, 2784, 0, 2785, 2785, 0, 0, 06793 0, 2782, 2785, 0, 2785, 2786, 2786, 0, 2786, 2794, 06794 2794, 2794, 2794, 0, 0, 0, 2786, 2907, 2907, 2907, 06795 2907, 2786, 2786, 0, 0, 2783, 0, 2786, 2907, 2786, 06796 06797 0, 2787, 2787, 0, 2787, 0, 2785, 0, 0, 2907, 06798 2784, 2786, 2787, 2801, 2801, 2801, 2801, 2787, 2787, 2802, 06799 2802, 2802, 2802, 2787, 2801, 2787, 0, 0, 0, 0, 06800 2802, 0, 0, 2794, 0, 2801, 2830, 2801, 0, 2830, 06801 0, 2802, 0, 2802, 0, 2794, 0, 2830, 2794, 0, 06802 0, 2794, 2830, 2830, 0, 0, 2794, 2787, 2830, 0, 06803 2830, 0, 2908, 2908, 2908, 2908, 2830, 0, 0, 0, 06804 0, 0, 0, 2908, 0, 0, 0, 0, 0, 0, 06805 0, 0, 0, 2801, 2908, 2802, 2816, 2816, 2816, 2816, 06806 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 06807 06808 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 06809 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 06810 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 06811 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 06812 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 06813 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 06814 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2832, 0, 06815 0, 2832, 2833, 0, 0, 2833, 0, 0, 0, 2832, 06816 0, 0, 0, 2833, 2832, 2832, 0, 0, 2833, 2833, 06817 2832, 0, 2832, 0, 2833, 2834, 2833, 0, 2834, 0, 06818 06819 0, 0, 0, 0, 2835, 2835, 2834, 2835, 0, 0, 06820 0, 2834, 2834, 2836, 2836, 2835, 2836, 2834, 0, 2834, 06821 2835, 2835, 0, 2833, 2836, 0, 2835, 0, 2835, 2836, 06822 2836, 0, 0, 0, 2835, 2836, 0, 2836, 2832, 0, 06823 2848, 2848, 2848, 2848, 0, 2850, 2850, 2850, 2850, 0, 06824 2834, 2848, 2848, 0, 0, 2848, 2850, 0, 0, 0, 06825 0, 0, 2848, 2848, 2848, 0, 0, 2850, 2836, 2850, 06826 2851, 2851, 2851, 2851, 2867, 0, 0, 2867, 0, 0, 06827 0, 2851, 0, 0, 2899, 2867, 0, 2899, 0, 2848, 06828 2867, 2867, 2851, 0, 2851, 2899, 2867, 0, 2867, 0, 06829 06830 2899, 2899, 2924, 2924, 2924, 2924, 2899, 0, 2899, 0, 06831 0, 2850, 0, 2924, 0, 2934, 2934, 2934, 2934, 0, 06832 0, 0, 0, 0, 2924, 0, 2934, 0, 2867, 0, 06833 0, 0, 0, 0, 0, 0, 2899, 2934, 2851, 2855, 06834 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06835 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06836 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06837 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06838 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06839 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06840 06841 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06842 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 06843 2855, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06844 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06845 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06846 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06847 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06848 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06849 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06850 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 06851 06852 2859, 2859, 2859, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06853 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06854 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06855 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06856 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06857 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06858 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06859 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 06860 2861, 2861, 2861, 2861, 2861, 2877, 2877, 2877, 2877, 2886, 06861 2886, 2886, 2886, 0, 0, 0, 2877, 0, 0, 0, 06862 06863 2886, 2886, 0, 0, 2886, 0, 0, 2877, 0, 2877, 06864 0, 0, 2886, 2886, 0, 0, 0, 0, 0, 0, 06865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06866 0, 0, 0, 0, 0, 0, 0, 0, 2886, 0, 06867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06868 0, 0, 0, 2877, 2878, 2878, 2878, 2878, 2878, 2878, 06869 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 06870 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 06871 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 06872 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 06873 06874 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 06875 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 06876 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 2878, 06877 2878, 2878, 2878, 2878, 2878, 2878, 2880, 2880, 0, 2880, 06878 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 06879 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 06880 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 06881 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 06882 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 06883 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 06884 06885 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 06886 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2880, 2883, 2883, 06887 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06888 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06889 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06890 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06891 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06892 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06893 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06894 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 06895 06896 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06897 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06898 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06899 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06900 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06901 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06902 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06903 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 06904 2884, 2884, 2887, 2887, 2887, 2887, 0, 0, 0, 0, 06905 0, 0, 0, 2887, 2887, 0, 0, 2887, 0, 0, 06906 06907 0, 0, 0, 0, 0, 2887, 0, 0, 0, 0, 06908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06910 0, 2887, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06911 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06912 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06913 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06914 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06915 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06916 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06917 06918 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 2889, 06919 2889, 2889, 2889, 2889, 2894, 2894, 2894, 2894, 2894, 2894, 06920 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 06921 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 06922 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 06923 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 06924 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 06925 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 06926 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 2894, 06927 2894, 2894, 2894, 2894, 2894, 2894, 2906, 2906, 2906, 2906, 06928 06929 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 06930 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 06931 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 06932 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 06933 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 06934 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 06935 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 06936 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2906, 2913, 2913, 06937 0, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06938 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06939 06940 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06941 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06942 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06943 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06944 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06945 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 06946 2914, 2914, 2914, 2914, 0, 2915, 2915, 2915, 2915, 0, 06947 0, 2914, 2914, 0, 0, 2914, 2915, 2915, 0, 0, 06948 2915, 0, 2914, 2914, 2914, 0, 0, 2915, 2915, 0, 06949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06950 06951 0, 0, 0, 0, 0, 0, 0, 0, 0, 2914, 06952 0, 0, 0, 0, 2915, 2919, 2919, 2919, 2919, 2919, 06953 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 06954 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 06955 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 06956 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 06957 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 06958 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 06959 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 06960 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2928, 2928, 2928, 06961 06962 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 06963 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 06964 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 06965 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 06966 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 06967 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 06968 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 06969 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2933, 06970 0, 0, 2933, 0, 0, 0, 0, 0, 0, 0, 06971 2933, 0, 0, 0, 0, 2933, 2933, 2938, 2938, 2938, 06972 06973 2938, 2933, 0, 2933, 2939, 2939, 2939, 2939, 2938, 2938, 06974 0, 0, 2938, 0, 2949, 2939, 2939, 2949, 0, 2939, 06975 2938, 2938, 0, 0, 0, 2949, 0, 2939, 0, 0, 06976 2949, 2949, 2973, 2973, 2973, 2973, 2949, 0, 2949, 0, 06977 0, 0, 0, 2973, 2973, 0, 2938, 2973, 2933, 0, 06978 0, 0, 0, 2939, 2973, 2973, 2973, 0, 0, 0, 06979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06980 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06981 0, 2973, 0, 0, 2949, 2975, 2975, 2975, 2975, 2975, 06982 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 06983 06984 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 06985 2975, 2975, 2975, 2975, 2976, 2976, 2976, 2976, 2976, 2976, 06986 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 06987 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 06988 2976, 2976, 2976, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 06989 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 06990 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 2977, 06991 2977, 2977, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 06992 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 06993 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 2978, 06994 06995 2978, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 06996 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 06997 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 06998 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 06999 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 07000 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2981, 07001 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 07002 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 07003 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2981, 2982, 2982, 07004 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 07005 07006 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 07007 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2983, 2983, 2983, 07008 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 07009 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 2983, 07010 2983, 2983, 2983, 2983, 2983, 2983, 2984, 2984, 0, 0, 07011 2984, 0, 2984, 2984, 2984, 2984, 2984, 2984, 2984, 2984, 07012 2984, 2984, 2984, 2984, 2984, 2984, 2984, 2984, 2984, 0, 07013 2984, 2984, 2984, 2984, 2984, 2985, 2985, 0, 2985, 2985, 07014 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 07015 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 07016 07017 2985, 2985, 2985, 2985, 2986, 2986, 0, 0, 2986, 2986, 07018 2986, 0, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 07019 2986, 2986, 2986, 2986, 2986, 2986, 2986, 0, 2986, 2986, 07020 2986, 2986, 2986, 2987, 2987, 0, 2987, 2987, 0, 2987, 07021 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 07022 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 2987, 07023 2987, 2987, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 07024 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 07025 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 07026 2988, 2989, 2989, 0, 2989, 2989, 2989, 2989, 2989, 2989, 07027 07028 2989, 0, 2989, 2989, 2989, 0, 2989, 2989, 2989, 2989, 07029 2989, 2989, 2989, 2989, 2989, 2989, 2989, 2989, 2989, 2989, 07030 2990, 2990, 0, 0, 2990, 2990, 2990, 2990, 2990, 2990, 07031 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 07032 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2991, 07033 2991, 0, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 0, 07034 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 07035 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2991, 2992, 2992, 07036 2992, 2992, 0, 2992, 0, 0, 0, 0, 0, 0, 07037 0, 0, 0, 2992, 0, 0, 0, 2992, 2992, 0, 07038 07039 0, 0, 2992, 0, 0, 2992, 2993, 2993, 0, 2993, 07040 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 07041 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 07042 2993, 2993, 2993, 2993, 2993, 2994, 2994, 2994, 2994, 0, 07043 0, 0, 2994, 2994, 0, 2994, 0, 0, 0, 2994, 07044 2994, 2994, 2994, 0, 2994, 2994, 0, 0, 2994, 2994, 07045 2995, 2995, 2995, 2995, 0, 2995, 0, 0, 0, 0, 07046 0, 0, 0, 0, 0, 0, 0, 0, 0, 2995, 07047 2995, 0, 0, 0, 2995, 2997, 0, 0, 2997, 0, 07048 0, 0, 2997, 0, 0, 0, 2997, 2997, 0, 2997, 07049 07050 2997, 0, 2997, 0, 2997, 2997, 0, 0, 0, 2997, 07051 2998, 2998, 2998, 2998, 0, 2998, 0, 0, 0, 0, 07052 0, 0, 0, 0, 0, 2998, 0, 0, 0, 2998, 07053 2998, 0, 0, 0, 2998, 0, 0, 2998, 2999, 2999, 07054 2999, 2999, 0, 0, 0, 2999, 0, 0, 0, 0, 07055 0, 0, 2999, 2999, 0, 2999, 0, 2999, 2999, 0, 07056 0, 0, 2999, 3000, 3000, 3000, 3000, 0, 3000, 0, 07057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07058 0, 0, 3000, 3000, 0, 0, 0, 3000, 3001, 3001, 07059 0, 3001, 0, 0, 0, 3001, 0, 0, 0, 3001, 07060 07061 3001, 0, 3001, 3001, 0, 3001, 0, 3001, 3001, 0, 07062 0, 0, 3001, 3005, 3005, 0, 0, 0, 3005, 3005, 07063 0, 0, 0, 3005, 3007, 0, 3007, 0, 0, 0, 07064 0, 3007, 3007, 0, 0, 0, 3007, 3012, 3012, 0, 07065 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 07066 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 07067 3012, 3012, 3012, 3012, 3012, 3012, 3013, 3013, 3013, 3013, 07068 0, 3013, 0, 0, 0, 0, 0, 0, 0, 0, 07069 0, 3013, 0, 0, 0, 3013, 3013, 0, 0, 0, 07070 3013, 0, 0, 3013, 3014, 3014, 3014, 3014, 0, 0, 07071 07072 0, 0, 0, 0, 0, 0, 0, 0, 3014, 3014, 07073 0, 3014, 0, 3014, 3014, 0, 0, 0, 3014, 3015, 07074 3015, 3015, 3015, 0, 3015, 0, 0, 0, 0, 0, 07075 0, 0, 0, 0, 0, 0, 0, 0, 3015, 3015, 07076 0, 0, 0, 3015, 3021, 0, 0, 3021, 0, 0, 07077 0, 0, 0, 0, 0, 0, 0, 0, 3021, 3021, 07078 0, 0, 0, 3021, 3021, 0, 0, 0, 3021, 3025, 07079 3025, 0, 3025, 0, 3025, 3025, 0, 3025, 3025, 3025, 07080 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 07081 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3028, 3028, 07082 07083 3028, 3028, 0, 0, 0, 0, 0, 0, 0, 0, 07084 0, 0, 3028, 3028, 0, 0, 0, 3028, 3028, 0, 07085 0, 3028, 3028, 3029, 3029, 0, 3029, 3029, 0, 0, 07086 3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029, 07087 3029, 3029, 3029, 3029, 3029, 3029, 0, 3029, 3029, 3029, 07088 3029, 3029, 3031, 3031, 0, 3031, 3031, 0, 0, 3031, 07089 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 07090 3031, 3031, 3031, 3031, 3031, 0, 3031, 3031, 3031, 3031, 07091 3031, 3032, 3032, 0, 3032, 3032, 3032, 3032, 3032, 3032, 07092 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 07093 07094 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 3032, 07095 3036, 3036, 0, 0, 0, 3036, 3036, 0, 0, 0, 07096 3036, 3037, 3037, 0, 0, 3037, 0, 3037, 3037, 3037, 07097 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 07098 3037, 3037, 3037, 3037, 0, 3037, 3037, 3037, 3037, 3037, 07099 3038, 3038, 0, 0, 3038, 3038, 3038, 0, 3038, 3038, 07100 3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038, 3038, 07101 3038, 3038, 3038, 0, 3038, 3038, 3038, 3038, 3038, 3039, 07102 3039, 0, 3039, 3039, 0, 3039, 3039, 3039, 3039, 3039, 07103 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039, 07104 07105 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3039, 3040, 3040, 07106 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 07107 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 07108 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3041, 3041, 0, 07109 3041, 3041, 3041, 3041, 3041, 3041, 3041, 0, 3041, 3041, 07110 3041, 0, 3041, 3041, 3041, 3041, 3041, 3041, 3041, 3041, 07111 3041, 3041, 3041, 3041, 3041, 3041, 3042, 3042, 0, 0, 07112 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 07113 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 07114 3042, 3042, 3042, 3042, 3042, 3043, 3043, 0, 3043, 3043, 07115 07116 3043, 3043, 3043, 3043, 3043, 0, 3043, 3043, 3043, 3043, 07117 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 07118 3043, 3043, 3043, 3043, 3045, 3045, 3045, 3045, 0, 0, 07119 0, 3045, 3045, 0, 3045, 0, 0, 0, 3045, 3045, 07120 3045, 3045, 0, 3045, 3045, 0, 0, 3045, 3045, 3046, 07121 3046, 3046, 3046, 0, 3046, 0, 0, 0, 0, 0, 07122 0, 0, 0, 0, 0, 0, 0, 0, 3046, 3046, 07123 0, 0, 0, 3046, 3047, 3047, 0, 3047, 3047, 3047, 07124 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 07125 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 07126 07127 3047, 3047, 3047, 3048, 3048, 3048, 3048, 0, 3048, 0, 07128 0, 3048, 3048, 0, 0, 0, 0, 0, 3048, 0, 07129 0, 0, 3048, 3048, 0, 0, 0, 3048, 0, 0, 07130 3048, 3050, 3050, 0, 3050, 3050, 0, 3050, 3050, 3050, 07131 3050, 3050, 3050, 3050, 3050, 0, 3050, 3050, 3050, 3050, 07132 3050, 3050, 3050, 3050, 3050, 3050, 3050, 0, 3050, 3050, 07133 3051, 3051, 3051, 3051, 0, 3051, 0, 0, 0, 0, 07134 0, 0, 0, 0, 0, 0, 0, 0, 0, 3051, 07135 3051, 0, 0, 0, 3051, 3052, 3052, 3052, 3052, 0, 07136 0, 0, 3052, 3052, 0, 3052, 0, 0, 0, 3052, 07137 07138 0, 3052, 3052, 0, 3052, 3052, 0, 0, 3052, 3052, 07139 3053, 0, 0, 3053, 0, 0, 0, 0, 0, 0, 07140 0, 0, 0, 0, 3053, 3053, 0, 3053, 0, 3053, 07141 3053, 0, 0, 0, 3053, 3054, 0, 0, 3054, 0, 07142 0, 0, 0, 0, 3054, 0, 0, 0, 0, 0, 07143 0, 0, 0, 0, 3054, 3054, 0, 0, 0, 3054, 07144 3055, 0, 0, 3055, 0, 0, 0, 3055, 0, 0, 07145 0, 3055, 3055, 0, 3055, 3055, 0, 3055, 0, 3055, 07146 3055, 0, 0, 0, 3055, 3056, 3056, 0, 3056, 3056, 07147 3056, 3056, 3056, 0, 0, 3056, 3056, 3056, 3056, 3056, 07148 07149 3056, 3056, 3056, 0, 3056, 3056, 3056, 0, 3056, 0, 07150 3056, 0, 0, 3056, 3058, 3058, 3058, 3058, 0, 0, 07151 0, 3058, 0, 0, 0, 0, 0, 0, 3058, 3058, 07152 0, 3058, 0, 3058, 3058, 0, 0, 0, 3058, 3059, 07153 3059, 3059, 3059, 0, 3059, 0, 0, 0, 0, 0, 07154 0, 0, 0, 0, 0, 0, 0, 0, 3059, 3059, 07155 0, 0, 0, 3059, 3060, 3060, 0, 3060, 3060, 0, 07156 3060, 3060, 0, 0, 3060, 3060, 3060, 3060, 0, 3060, 07157 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 07158 0, 0, 3060, 3061, 3061, 3061, 3061, 0, 3061, 0, 07159 07160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07161 0, 0, 3061, 3061, 0, 0, 0, 3061, 3062, 3062, 07162 3062, 3062, 0, 0, 0, 3062, 0, 0, 0, 0, 07163 0, 0, 3062, 0, 0, 0, 0, 3062, 3062, 0, 07164 0, 0, 3062, 3063, 3063, 0, 3063, 0, 0, 0, 07165 3063, 0, 0, 0, 3063, 3063, 0, 3063, 3063, 0, 07166 3063, 0, 3063, 3063, 0, 0, 0, 3063, 3065, 3065, 07167 0, 0, 0, 3065, 3065, 0, 0, 0, 3065, 3066, 07168 0, 3066, 0, 0, 0, 0, 3066, 3066, 0, 0, 07169 0, 3066, 3070, 3070, 0, 3070, 3070, 3070, 3070, 3070, 07170 07171 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 07172 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 07173 3070, 3072, 3072, 3072, 3072, 0, 0, 0, 0, 0, 07174 0, 0, 0, 0, 0, 3072, 3072, 0, 3072, 0, 07175 3072, 3072, 0, 0, 0, 3072, 3073, 3073, 3073, 3073, 07176 0, 3073, 0, 0, 0, 0, 0, 0, 0, 0, 07177 0, 0, 0, 0, 0, 3073, 3073, 0, 0, 0, 07178 3073, 3074, 3074, 0, 3074, 3074, 0, 3074, 3074, 3074, 07179 3074, 3074, 3074, 0, 0, 0, 3074, 3074, 3074, 3074, 07180 3074, 3074, 3074, 3074, 3074, 3074, 3074, 0, 3074, 3074, 07181 07182 3075, 0, 0, 3075, 0, 0, 0, 0, 0, 0, 07183 0, 0, 0, 0, 3075, 0, 0, 3075, 0, 3075, 07184 3075, 0, 0, 0, 3075, 3078, 0, 0, 3078, 0, 07185 0, 0, 0, 0, 0, 0, 0, 0, 0, 3078, 07186 3078, 0, 0, 0, 3078, 3078, 0, 0, 0, 3078, 07187 3081, 3081, 0, 3081, 0, 3081, 3081, 3081, 3081, 3081, 07188 3081, 3081, 3081, 3081, 3081, 3081, 3081, 3081, 3081, 3081, 07189 3081, 3081, 3081, 0, 3081, 3081, 3081, 3081, 3081, 3082, 07190 3082, 0, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 07191 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 07192 07193 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3082, 3083, 3083, 07194 3083, 3083, 0, 0, 0, 0, 0, 0, 0, 0, 07195 0, 0, 3083, 3083, 0, 0, 0, 3083, 3083, 0, 07196 0, 3083, 3083, 3084, 3084, 0, 3084, 3084, 0, 0, 07197 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 07198 3084, 3084, 3084, 3084, 3084, 3084, 0, 3084, 3084, 3084, 07199 3084, 3084, 3086, 3086, 0, 3086, 3086, 0, 0, 3086, 07200 3086, 3086, 3086, 3086, 3086, 3086, 3086, 3086, 3086, 3086, 07201 3086, 3086, 3086, 3086, 3086, 0, 3086, 3086, 3086, 3086, 07202 3086, 3088, 3088, 0, 0, 0, 3088, 3088, 0, 0, 07203 07204 0, 3088, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 07205 3089, 3089, 3089, 3089, 3089, 3089, 0, 3089, 3089, 3089, 07206 3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 3089, 07207 3089, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 07208 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 07209 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 07210 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 07211 3091, 3091, 3091, 3091, 0, 3091, 3091, 3091, 3091, 3091, 07212 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3091, 3092, 07213 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 07214 07215 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 07216 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3093, 3093, 07217 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 07218 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3093, 07219 3093, 3093, 3093, 3093, 3093, 3093, 3093, 3094, 3094, 3094, 07220 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 07221 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 07222 3094, 3094, 3094, 3094, 3094, 3094, 3095, 3095, 0, 0, 07223 3095, 0, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 07224 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 3095, 0, 07225 07226 3095, 3095, 3095, 3095, 3095, 3096, 3096, 3096, 3096, 3096, 07227 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 07228 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 07229 3096, 3096, 3096, 3096, 3097, 3097, 3097, 3097, 3097, 3097, 07230 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 07231 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 3097, 07232 3097, 3097, 3097, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 07233 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 07234 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 3098, 07235 3098, 3098, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 07236 07237 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 07238 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 07239 3099, 3100, 3100, 0, 0, 3100, 3100, 3100, 0, 3100, 07240 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 07241 3100, 3100, 3100, 3100, 0, 3100, 3100, 3100, 3100, 3100, 07242 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 07243 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 07244 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3102, 07245 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 07246 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 07247 07248 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3103, 3103, 07249 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 07250 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 07251 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3104, 3104, 3104, 07252 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 07253 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 3104, 07254 3104, 3104, 3104, 3104, 3104, 3104, 3105, 3105, 0, 3105, 07255 3105, 0, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 07256 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 07257 3105, 3105, 3105, 3105, 3105, 3106, 3106, 3106, 3106, 3106, 07258 07259 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 07260 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 3106, 07261 3106, 3106, 3106, 3106, 3107, 3107, 3107, 3107, 3107, 3107, 07262 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 07263 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 07264 3107, 3107, 3107, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 07265 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 07266 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 07267 3108, 3108, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 07268 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 07269 07270 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 07271 3109, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 07272 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 07273 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 3110, 07274 3111, 3111, 0, 0, 3111, 3111, 3111, 3111, 3111, 3111, 07275 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 07276 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3111, 3112, 07277 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 07278 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 07279 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3112, 3113, 3113, 07280 07281 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 07282 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 07283 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3114, 3114, 3114, 07284 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 07285 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 07286 3114, 3114, 3114, 3114, 3114, 3114, 3115, 3115, 0, 3115, 07287 3115, 3115, 3115, 3115, 3115, 3115, 0, 3115, 3115, 3115, 07288 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 07289 3115, 3115, 3115, 3115, 3115, 3116, 3116, 3116, 3116, 3116, 07290 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 07291 07292 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 07293 3116, 3116, 3116, 3116, 3117, 3117, 3117, 3117, 0, 0, 07294 0, 0, 3117, 0, 3117, 0, 0, 0, 3117, 3117, 07295 3117, 3117, 0, 3117, 3117, 0, 0, 3117, 3117, 3118, 07296 3118, 3118, 3118, 0, 0, 0, 3118, 3118, 0, 3118, 07297 0, 0, 0, 3118, 3118, 3118, 3118, 0, 3118, 3118, 07298 0, 0, 3118, 3118, 3119, 3119, 3119, 3119, 0, 3119, 07299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07300 0, 0, 0, 3119, 3119, 0, 0, 0, 3119, 3120, 07301 3120, 3120, 3120, 0, 0, 0, 0, 3120, 0, 3120, 07302 07303 0, 0, 0, 3120, 0, 3120, 3120, 0, 3120, 3120, 07304 0, 0, 3120, 3120, 3121, 3121, 3121, 3121, 0, 3121, 07305 0, 0, 3121, 3121, 0, 0, 0, 0, 0, 3121, 07306 0, 0, 0, 3121, 3121, 0, 0, 0, 3121, 0, 07307 0, 3121, 3122, 3122, 3122, 3122, 0, 3122, 0, 0, 07308 3122, 0, 0, 0, 0, 0, 3122, 3122, 0, 0, 07309 0, 3122, 3122, 0, 0, 0, 3122, 0, 0, 3122, 07310 3123, 3123, 3123, 3123, 0, 3123, 0, 0, 0, 0, 07311 0, 0, 0, 0, 0, 0, 0, 0, 0, 3123, 07312 3123, 0, 0, 0, 3123, 3125, 3125, 3125, 3125, 0, 07313 07314 3125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07315 3125, 0, 0, 0, 3125, 3125, 0, 0, 0, 3125, 07316 0, 0, 3125, 3126, 3126, 3126, 3126, 0, 3126, 0, 07317 0, 0, 0, 0, 0, 0, 0, 0, 3126, 0, 07318 0, 0, 3126, 3126, 0, 0, 0, 3126, 0, 0, 07319 3126, 3127, 3127, 0, 3127, 3127, 0, 3127, 3127, 3127, 07320 3127, 3127, 3127, 3127, 3127, 0, 3127, 3127, 3127, 3127, 07321 3127, 3127, 3127, 3127, 3127, 3127, 3127, 0, 3127, 3127, 07322 3128, 3128, 0, 3128, 3128, 0, 3128, 3128, 3128, 3128, 07323 3128, 3128, 0, 0, 0, 3128, 3128, 3128, 3128, 3128, 07324 07325 3128, 3128, 3128, 3128, 3128, 3128, 0, 3128, 3128, 3129, 07326 3129, 0, 3129, 3129, 0, 3129, 3129, 0, 0, 3129, 07327 3129, 3129, 3129, 0, 3129, 3129, 3129, 3129, 3129, 3129, 07328 3129, 3129, 3129, 3129, 3129, 0, 0, 3129, 3130, 3130, 07329 3130, 3130, 0, 0, 0, 3130, 3130, 0, 3130, 0, 07330 0, 0, 3130, 0, 3130, 3130, 0, 3130, 3130, 0, 07331 0, 3130, 3130, 3131, 0, 0, 3131, 0, 0, 0, 07332 0, 0, 0, 0, 0, 0, 0, 3131, 3131, 0, 07333 3131, 0, 3131, 3131, 0, 0, 0, 3131, 3132, 0, 07334 0, 3132, 0, 0, 0, 0, 0, 3132, 0, 0, 07335 07336 0, 0, 0, 0, 0, 0, 0, 3132, 3132, 0, 07337 0, 0, 3132, 3133, 0, 0, 3133, 0, 0, 0, 07338 0, 3133, 0, 0, 0, 0, 0, 3133, 0, 0, 07339 0, 0, 3133, 3133, 0, 0, 0, 3133, 3134, 0, 07340 0, 3134, 0, 3134, 0, 0, 0, 0, 0, 0, 07341 0, 0, 0, 0, 0, 0, 0, 3134, 3134, 0, 07342 0, 0, 3134, 3135, 3135, 0, 3135, 3135, 3135, 3135, 07343 3135, 0, 0, 3135, 3135, 3135, 3135, 3135, 3135, 3135, 07344 3135, 0, 3135, 3135, 3135, 0, 3135, 0, 3135, 0, 07345 0, 3135, 3136, 0, 0, 3136, 0, 0, 0, 3136, 07346 07347 0, 0, 0, 3136, 3136, 0, 3136, 3136, 0, 3136, 07348 0, 3136, 3136, 0, 0, 0, 3136, 3137, 3137, 3137, 07349 3137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07350 0, 3137, 3137, 0, 0, 0, 3137, 3137, 0, 0, 07351 0, 3137, 3138, 3138, 3138, 3138, 0, 3138, 0, 0, 07352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07353 0, 3138, 3138, 0, 0, 0, 3138, 3139, 0, 0, 07354 3139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07355 0, 3139, 0, 0, 0, 0, 3139, 3139, 0, 0, 07356 0, 3139, 3140, 3140, 3140, 3140, 0, 3140, 0, 0, 07357 07358 0, 0, 0, 0, 0, 0, 0, 3140, 0, 0, 07359 0, 3140, 3140, 0, 0, 0, 3140, 0, 0, 3140, 07360 3141, 3141, 3141, 3141, 0, 3141, 0, 0, 0, 0, 07361 0, 0, 0, 0, 0, 3141, 0, 0, 0, 3141, 07362 3141, 0, 0, 0, 3141, 0, 0, 3141, 3142, 3142, 07363 0, 3142, 3142, 0, 3142, 3142, 0, 0, 3142, 3142, 07364 3142, 3142, 0, 3142, 3142, 3142, 3142, 3142, 3142, 3142, 07365 3142, 3142, 3142, 3142, 0, 0, 3142, 3143, 3143, 3143, 07366 3143, 0, 0, 0, 3143, 0, 0, 0, 0, 0, 07367 0, 3143, 0, 0, 0, 0, 3143, 3143, 0, 0, 07368 07369 0, 3143, 3144, 3144, 0, 3144, 0, 0, 0, 3144, 07370 0, 0, 0, 3144, 3144, 0, 3144, 3144, 0, 3144, 07371 0, 3144, 3144, 0, 0, 0, 3144, 3146, 3146, 0, 07372 0, 0, 3146, 3146, 0, 0, 0, 3146, 3148, 0, 07373 3148, 0, 0, 0, 0, 3148, 3148, 0, 0, 0, 07374 3148, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 07375 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 07376 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3151, 07377 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 07378 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 07379 07380 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3153, 07381 3153, 0, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 07382 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 07383 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3153, 3154, 3154, 07384 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 07385 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 07386 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3155, 3155, 3155, 07387 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 07388 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 07389 3155, 3155, 3155, 3155, 3155, 3155, 3156, 3156, 3156, 3156, 07390 07391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07392 3156, 3156, 0, 3156, 0, 3156, 3156, 0, 0, 0, 07393 3156, 3157, 3157, 3157, 3157, 0, 3157, 0, 0, 0, 07394 0, 0, 0, 0, 0, 0, 3157, 0, 0, 0, 07395 3157, 3157, 0, 0, 0, 3157, 0, 0, 3157, 3158, 07396 3158, 3158, 3158, 0, 3158, 0, 0, 0, 0, 0, 07397 0, 0, 0, 0, 3158, 0, 0, 0, 3158, 3158, 07398 0, 0, 0, 3158, 0, 0, 3158, 3159, 3159, 3159, 07399 3159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07400 0, 3159, 3159, 0, 3159, 0, 3159, 3159, 0, 0, 07401 07402 0, 3159, 3160, 3160, 0, 3160, 3160, 0, 3160, 3160, 07403 3160, 3160, 3160, 3160, 0, 0, 0, 3160, 3160, 3160, 07404 3160, 3160, 3160, 3160, 3160, 3160, 3160, 3160, 0, 3160, 07405 3160, 3161, 0, 0, 3161, 0, 0, 0, 0, 0, 07406 0, 0, 0, 0, 0, 3161, 0, 0, 3161, 0, 07407 3161, 3161, 0, 0, 0, 3161, 3165, 3165, 0, 3165, 07408 0, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 07409 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 0, 07410 3165, 3165, 3165, 3165, 3165, 3167, 3167, 3167, 3167, 3167, 07411 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 07412 07413 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 07414 3167, 3167, 3167, 3167, 3168, 3168, 3168, 3168, 3168, 3168, 07415 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 07416 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 3168, 07417 3168, 3168, 3168, 3169, 3169, 0, 3169, 3169, 0, 0, 07418 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 07419 3169, 3169, 3169, 3169, 3169, 3169, 0, 3169, 3169, 3169, 07420 3169, 3169, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 07421 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 07422 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 07423 07424 3170, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 07425 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 07426 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 07427 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 07428 0, 3174, 3174, 3174, 0, 3174, 3174, 3174, 3174, 3174, 07429 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3175, 07430 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 07431 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 07432 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3175, 3176, 3176, 07433 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 07434 07435 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 07436 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3177, 3177, 3177, 07437 3177, 3177, 3177, 3177, 3177, 3177, 3177, 0, 3177, 3177, 07438 3177, 0, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 3177, 07439 3177, 3177, 3177, 3177, 3177, 3177, 3178, 3178, 3178, 3178, 07440 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 07441 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 07442 3178, 3178, 3178, 3178, 3178, 3179, 3179, 3179, 3179, 3179, 07443 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 07444 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 07445 07446 3179, 3179, 3179, 3179, 3180, 3180, 3180, 3180, 3180, 3180, 07447 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 07448 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 07449 3180, 3180, 3180, 3181, 3181, 0, 0, 3181, 0, 3181, 07450 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 07451 3181, 3181, 3181, 3181, 3181, 3181, 0, 3181, 3181, 3181, 07452 3181, 3181, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 07453 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 07454 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 07455 3182, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 07456 07457 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 07458 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 07459 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 07460 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 07461 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3185, 07462 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 07463 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 07464 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3185, 3186, 3186, 07465 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 07466 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 07467 07468 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3187, 3187, 0, 07469 0, 3187, 3187, 3187, 0, 3187, 3187, 3187, 3187, 3187, 07470 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 07471 0, 3187, 3187, 3187, 3187, 3187, 3188, 3188, 3188, 3188, 07472 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 07473 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 3188, 07474 3188, 3188, 3188, 3188, 3188, 3189, 3189, 3189, 3189, 3189, 07475 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 07476 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 07477 3189, 3189, 3189, 3189, 3190, 3190, 3190, 3190, 3190, 3190, 07478 07479 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 07480 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 3190, 07481 3190, 3190, 3190, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 07482 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 07483 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 07484 3191, 3191, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 07485 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 07486 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 3192, 07487 3192, 3193, 3193, 0, 3193, 3193, 0, 3193, 3193, 3193, 07488 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 07489 07490 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 07491 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 07492 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 07493 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3195, 07494 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 07495 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 07496 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3195, 3196, 3196, 07497 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 07498 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3196, 07499 3196, 3196, 3196, 3196, 3196, 3196, 3196, 3197, 3197, 3197, 07500 07501 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 07502 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 07503 3197, 3197, 3197, 3197, 3197, 3197, 3198, 3198, 3198, 3198, 07504 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 07505 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 07506 3198, 3198, 3198, 3198, 3198, 3199, 3199, 3199, 3199, 3199, 07507 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 07508 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 3199, 07509 3199, 3199, 3199, 3199, 3200, 3200, 3200, 3200, 3200, 3200, 07510 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 07511 07512 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 07513 3200, 3200, 3200, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 07514 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 07515 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 07516 3201, 3201, 3202, 3202, 0, 0, 3202, 3202, 3202, 3202, 07517 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 07518 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 07519 3202, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 07520 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 07521 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 3203, 07522 07523 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 07524 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 07525 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3204, 3205, 07526 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 07527 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 07528 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3205, 3206, 3206, 07529 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 07530 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3206, 07531 3206, 3206, 3206, 3206, 3206, 3206, 3206, 3207, 3207, 3207, 07532 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 07533 07534 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 3207, 07535 3207, 3207, 3207, 3207, 3207, 3207, 3208, 3208, 3208, 3208, 07536 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 07537 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 07538 3208, 3208, 3208, 3208, 3208, 3209, 3209, 3209, 3209, 3209, 07539 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 07540 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 07541 3209, 3209, 3209, 3209, 3210, 3210, 3210, 3210, 3210, 3210, 07542 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 07543 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3210, 07544 07545 3210, 3210, 3210, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 07546 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 07547 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 07548 3211, 3211, 3212, 3212, 3212, 3212, 0, 0, 0, 0, 07549 3212, 0, 3212, 0, 0, 0, 3212, 3212, 3212, 3212, 07550 0, 3212, 3212, 0, 0, 3212, 3212, 3213, 3213, 3213, 07551 3213, 0, 0, 0, 3213, 3213, 0, 3213, 0, 0, 07552 0, 3213, 3213, 3213, 3213, 0, 3213, 3213, 0, 0, 07553 3213, 3213, 3214, 3214, 3214, 3214, 0, 0, 0, 0, 07554 3214, 0, 3214, 0, 0, 0, 3214, 0, 3214, 3214, 07555 07556 0, 3214, 3214, 0, 0, 3214, 3214, 3216, 3216, 3216, 07557 3216, 0, 3216, 0, 0, 3216, 0, 0, 0, 0, 07558 0, 3216, 3216, 0, 0, 0, 3216, 3216, 0, 0, 07559 0, 3216, 0, 0, 3216, 3217, 3217, 3217, 3217, 0, 07560 3217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07561 0, 0, 0, 0, 3217, 3217, 0, 0, 0, 3217, 07562 3218, 3218, 3218, 3218, 0, 3218, 0, 0, 3218, 0, 07563 0, 0, 0, 0, 3218, 3218, 0, 0, 0, 3218, 07564 3218, 0, 0, 0, 3218, 0, 0, 3218, 3219, 3219, 07565 3219, 3219, 0, 3219, 0, 0, 0, 0, 0, 0, 07566 07567 0, 0, 0, 3219, 0, 0, 0, 3219, 3219, 0, 07568 0, 0, 3219, 0, 0, 3219, 3220, 3220, 3220, 3220, 07569 0, 3220, 0, 0, 0, 0, 0, 0, 0, 0, 07570 0, 0, 0, 0, 0, 3220, 3220, 0, 0, 0, 07571 3220, 3221, 3221, 0, 3221, 3221, 0, 3221, 3221, 3221, 07572 3221, 3221, 3221, 3221, 3221, 0, 3221, 3221, 3221, 3221, 07573 3221, 3221, 3221, 3221, 3221, 3221, 3221, 0, 3221, 3221, 07574 3222, 0, 0, 3222, 0, 0, 0, 0, 0, 0, 07575 0, 0, 0, 0, 3222, 3222, 0, 3222, 0, 3222, 07576 3222, 0, 0, 0, 3222, 3223, 0, 0, 3223, 0, 07577 07578 0, 0, 0, 3223, 0, 0, 0, 0, 0, 3223, 07579 0, 0, 0, 0, 3223, 3223, 0, 0, 0, 3223, 07580 3224, 0, 0, 3224, 0, 3224, 0, 0, 0, 0, 07581 0, 0, 0, 0, 0, 0, 0, 0, 0, 3224, 07582 3224, 0, 0, 0, 3224, 3225, 0, 0, 3225, 0, 07583 0, 0, 0, 0, 0, 0, 0, 0, 0, 3225, 07584 3225, 0, 3225, 0, 3225, 3225, 0, 0, 0, 3225, 07585 3226, 0, 0, 3226, 0, 0, 0, 3226, 0, 0, 07586 0, 3226, 3226, 0, 3226, 3226, 0, 3226, 0, 3226, 07587 3226, 0, 0, 0, 3226, 3227, 3227, 0, 3227, 3227, 07588 07589 3227, 3227, 3227, 0, 0, 3227, 3227, 3227, 3227, 3227, 07590 3227, 3227, 3227, 0, 3227, 3227, 3227, 0, 3227, 0, 07591 3227, 0, 0, 3227, 3228, 3228, 3228, 3228, 0, 0, 07592 0, 0, 0, 0, 0, 0, 0, 0, 3228, 3228, 07593 0, 0, 0, 3228, 3228, 0, 0, 0, 3228, 3229, 07594 0, 0, 3229, 0, 0, 0, 0, 0, 0, 0, 07595 0, 0, 0, 3229, 0, 0, 0, 0, 3229, 3229, 07596 0, 0, 0, 3229, 3230, 3230, 3230, 3230, 0, 3230, 07597 0, 0, 0, 0, 0, 0, 0, 0, 0, 3230, 07598 0, 0, 0, 3230, 3230, 0, 0, 0, 3230, 0, 07599 07600 0, 3230, 3231, 3231, 3231, 3231, 0, 3231, 0, 0, 07601 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07602 0, 3231, 3231, 0, 0, 0, 3231, 3232, 3232, 0, 07603 3232, 0, 0, 0, 3232, 0, 0, 0, 3232, 3232, 07604 0, 3232, 3232, 0, 3232, 0, 3232, 3232, 0, 0, 07605 0, 3232, 3234, 3234, 0, 0, 0, 3234, 3234, 0, 07606 0, 0, 3234, 3235, 3235, 0, 0, 0, 3235, 3235, 07607 0, 0, 0, 3235, 3236, 0, 3236, 0, 0, 0, 07608 0, 3236, 3236, 0, 0, 0, 3236, 3239, 3239, 0, 07609 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 07610 07611 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 07612 3239, 3239, 3239, 3239, 3239, 3239, 3240, 3240, 3240, 3240, 07613 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 07614 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 07615 3240, 3240, 3240, 3240, 3240, 3241, 3241, 3241, 3241, 3241, 07616 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 07617 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 07618 3241, 3241, 3241, 3241, 3242, 3242, 3242, 3242, 3242, 3242, 07619 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 07620 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 07621 07622 3242, 3242, 3242, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 07623 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 07624 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 3243, 07625 3243, 3243, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 07626 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 07627 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 07628 3244, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 07629 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 07630 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 07631 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 07632 07633 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 07634 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3247, 07635 3247, 3247, 3247, 0, 0, 0, 0, 0, 0, 0, 07636 0, 0, 0, 3247, 3247, 0, 3247, 0, 3247, 3247, 07637 0, 0, 0, 3247, 3249, 3249, 3249, 3249, 0, 0, 07638 0, 0, 0, 0, 0, 0, 0, 0, 3249, 3249, 07639 0, 3249, 0, 3249, 3249, 0, 0, 0, 3249, 3250, 07640 3250, 3250, 3250, 0, 0, 0, 0, 0, 0, 0, 07641 0, 0, 0, 3250, 3250, 0, 3250, 0, 3250, 3250, 07642 0, 0, 0, 3250, 3252, 0, 0, 3252, 0, 0, 07643 07644 0, 0, 0, 0, 0, 0, 0, 0, 3252, 0, 07645 0, 0, 0, 3252, 3252, 0, 0, 0, 3252, 3254, 07646 3254, 0, 3254, 0, 3254, 3254, 3254, 3254, 3254, 3254, 07647 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 07648 3254, 3254, 0, 3254, 3254, 3254, 3254, 3254, 3255, 3255, 07649 0, 3255, 3255, 0, 0, 3255, 3255, 3255, 3255, 3255, 07650 3255, 3255, 3255, 3255, 3255, 3255, 3255, 3255, 3255, 3255, 07651 3255, 0, 3255, 3255, 3255, 3255, 3255, 3256, 3256, 3256, 07652 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 07653 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 07654 07655 3256, 3256, 3256, 3256, 3256, 3256, 3257, 3257, 3257, 3257, 07656 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 07657 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 07658 3257, 3257, 3257, 3257, 3257, 3258, 3258, 3258, 3258, 3258, 07659 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 07660 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 07661 3258, 3258, 3258, 3258, 3259, 3259, 3259, 3259, 3259, 3259, 07662 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 07663 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 07664 3259, 3259, 3259, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 07665 07666 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 07667 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 07668 3260, 3260, 3263, 3263, 0, 0, 0, 3263, 3263, 0, 07669 0, 0, 3263, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 07670 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 07671 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 07672 3264, 3264, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 07673 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 07674 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 07675 3265, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 07676 07677 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 07678 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 07679 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 07680 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 07681 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3268, 07682 3268, 0, 0, 3268, 0, 3268, 3268, 3268, 3268, 3268, 07683 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 07684 3268, 3268, 0, 3268, 3268, 3268, 3268, 3268, 3269, 3269, 07685 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 07686 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 07687 07688 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3270, 3270, 3270, 07689 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 07690 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 07691 3270, 3270, 3270, 3270, 3270, 3270, 3271, 3271, 0, 0, 07692 3271, 3271, 3271, 0, 3271, 3271, 3271, 3271, 3271, 3271, 07693 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 0, 07694 3271, 3271, 3271, 3271, 3271, 3272, 3272, 3272, 3272, 3272, 07695 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 07696 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 07697 3272, 3272, 3272, 3272, 3273, 3273, 3273, 3273, 3273, 3273, 07698 07699 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 07700 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 07701 3273, 3273, 3273, 3274, 3274, 0, 3274, 3274, 0, 3274, 07702 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 07703 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 07704 3274, 3274, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 07705 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 07706 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 07707 3275, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 07708 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 07709 07710 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 07711 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 07712 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 07713 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3277, 3278, 07714 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 07715 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 07716 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3278, 3279, 3279, 07717 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 07718 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3279, 07719 3279, 3279, 3279, 3279, 3279, 3279, 3279, 3280, 3280, 0, 07720 07721 0, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 07722 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 3280, 07723 3280, 3280, 3280, 3280, 3280, 3280, 3281, 3281, 3281, 3281, 07724 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 07725 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 3281, 07726 3281, 3281, 3281, 3281, 3281, 3282, 3282, 3282, 3282, 3282, 07727 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 07728 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 07729 3282, 3282, 3282, 3282, 3283, 3283, 3283, 3283, 3283, 3283, 07730 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 07731 07732 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 07733 3283, 3283, 3283, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 07734 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 07735 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 07736 3284, 3284, 3285, 3285, 3285, 3285, 0, 0, 0, 3285, 07737 3285, 0, 3285, 3285, 0, 0, 3285, 3285, 3285, 3285, 07738 0, 3285, 3285, 0, 0, 3285, 3285, 3286, 3286, 3286, 07739 3286, 0, 3286, 0, 0, 0, 0, 0, 0, 0, 07740 0, 0, 3286, 0, 0, 0, 3286, 3286, 0, 0, 07741 0, 3286, 0, 0, 3286, 3287, 3287, 3287, 3287, 0, 07742 07743 3287, 0, 0, 3287, 0, 0, 0, 0, 0, 3287, 07744 3287, 0, 0, 0, 3287, 3287, 0, 0, 0, 3287, 07745 0, 0, 3287, 3288, 3288, 3288, 3288, 0, 3288, 0, 07746 0, 3288, 0, 0, 0, 0, 0, 3288, 3288, 0, 07747 0, 0, 3288, 3288, 0, 0, 0, 3288, 0, 0, 07748 3288, 3289, 3289, 3289, 3289, 0, 3289, 0, 0, 0, 07749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07750 3289, 3289, 0, 0, 0, 3289, 0, 0, 3289, 3290, 07751 0, 0, 3290, 0, 0, 0, 0, 0, 0, 0, 07752 3290, 0, 0, 3290, 3290, 0, 3290, 0, 3290, 3290, 07753 07754 0, 0, 0, 3290, 3291, 0, 0, 3291, 0, 0, 07755 0, 0, 0, 0, 0, 0, 0, 0, 3291, 3291, 07756 0, 3291, 0, 3291, 3291, 0, 0, 0, 3291, 3292, 07757 0, 0, 3292, 0, 0, 0, 3292, 0, 0, 0, 07758 3292, 3292, 0, 3292, 3292, 0, 3292, 0, 3292, 3292, 07759 0, 0, 0, 3292, 3293, 3293, 3293, 3293, 0, 3293, 07760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07761 0, 0, 0, 3293, 3293, 0, 0, 0, 3293, 0, 07762 0, 3293, 3294, 3294, 0, 3294, 0, 0, 0, 3294, 07763 0, 0, 0, 3294, 3294, 0, 3294, 3294, 0, 3294, 07764 07765 0, 3294, 3294, 0, 0, 0, 3294, 3295, 3295, 0, 07766 0, 0, 3295, 3295, 0, 0, 0, 3295, 3296, 3296, 07767 0, 0, 0, 3296, 3296, 0, 0, 0, 3296, 3299, 07768 3299, 0, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 07769 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 07770 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3300, 3300, 07771 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 07772 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 07773 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3301, 3301, 3301, 07774 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 07775 07776 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 07777 3301, 3301, 3301, 3301, 3301, 3301, 3302, 3302, 3302, 3302, 07778 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 07779 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 07780 3302, 3302, 3302, 3302, 3302, 3303, 3303, 3303, 3303, 3303, 07781 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 07782 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 07783 3303, 3303, 3303, 3303, 3304, 3304, 3304, 3304, 0, 0, 07784 0, 0, 0, 0, 0, 0, 0, 0, 3304, 3304, 07785 0, 3304, 0, 3304, 3304, 0, 0, 0, 3304, 3306, 07786 07787 3306, 3306, 3306, 0, 0, 0, 0, 0, 0, 0, 07788 0, 0, 0, 3306, 3306, 0, 3306, 0, 3306, 3306, 07789 0, 0, 0, 3306, 3307, 3307, 3307, 3307, 0, 0, 07790 0, 0, 0, 0, 0, 0, 0, 0, 3307, 0, 07791 3307, 0, 3307, 3307, 3307, 0, 0, 0, 3307, 3307, 07792 3310, 3310, 0, 3310, 3310, 0, 0, 3310, 3310, 3310, 07793 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 07794 3310, 3310, 3310, 0, 3310, 3310, 3310, 3310, 3310, 3311, 07795 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 07796 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 07797 07798 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3312, 3312, 07799 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 07800 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 07801 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3314, 3314, 0, 07802 0, 0, 3314, 3314, 0, 0, 0, 3314, 3315, 3315, 07803 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 07804 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 07805 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3316, 3316, 3316, 07806 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 07807 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 07808 07809 3316, 3316, 3316, 3316, 3316, 3316, 3317, 3317, 3317, 3317, 07810 3317, 3317, 3317, 3317, 3317, 3317, 0, 3317, 3317, 3317, 07811 0, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 07812 3317, 3317, 3317, 3317, 3317, 3318, 3318, 3318, 3318, 0, 07813 0, 0, 3318, 3318, 0, 3318, 0, 0, 0, 3318, 07814 3318, 3318, 3318, 0, 3318, 3318, 0, 0, 3318, 3318, 07815 3319, 3319, 3319, 3319, 0, 3319, 0, 0, 0, 0, 07816 0, 0, 0, 0, 0, 0, 0, 0, 0, 3319, 07817 3319, 0, 0, 0, 3319, 0, 0, 3319, 3321, 3321, 07818 3321, 3321, 0, 0, 0, 3321, 0, 0, 0, 0, 07819 07820 0, 0, 3321, 3321, 0, 3321, 0, 3321, 3321, 0, 07821 0, 0, 3321, 3322, 3322, 3322, 3322, 0, 3322, 0, 07822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07823 0, 0, 3322, 3322, 0, 0, 0, 3322, 3323, 0, 07824 0, 3323, 0, 0, 0, 3323, 0, 0, 0, 3323, 07825 3323, 0, 3323, 3323, 0, 3323, 0, 3323, 3323, 0, 07826 0, 0, 3323, 3324, 3324, 3324, 3324, 0, 3324, 0, 07827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07828 0, 0, 3324, 3324, 0, 0, 0, 3324, 0, 0, 07829 3324, 3325, 3325, 3325, 3325, 0, 0, 0, 3325, 0, 07830 07831 0, 0, 0, 0, 0, 3325, 3325, 0, 3325, 0, 07832 3325, 3325, 0, 0, 0, 3325, 3326, 3326, 3326, 3326, 07833 0, 3326, 0, 0, 0, 0, 0, 0, 0, 0, 07834 0, 0, 0, 0, 0, 3326, 3326, 0, 0, 0, 07835 3326, 3327, 3327, 0, 3327, 0, 0, 0, 3327, 0, 07836 0, 0, 3327, 3327, 0, 3327, 3327, 0, 3327, 0, 07837 3327, 3327, 0, 0, 0, 3327, 3328, 3328, 0, 0, 07838 0, 3328, 3328, 0, 0, 0, 3328, 3332, 0, 0, 07839 3332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07840 0, 3332, 3332, 0, 0, 0, 3332, 3332, 0, 0, 07841 07842 0, 3332, 3333, 3333, 3333, 3333, 0, 0, 0, 0, 07843 0, 0, 0, 0, 0, 0, 3333, 3333, 0, 3333, 07844 0, 3333, 3333, 0, 0, 0, 3333, 3338, 3338, 3338, 07845 3338, 0, 0, 0, 3338, 0, 0, 0, 0, 0, 07846 0, 3338, 3338, 0, 3338, 0, 3338, 3338, 0, 0, 07847 0, 3338, 3339, 3339, 0, 3339, 3339, 0, 3339, 3339, 07848 0, 0, 3339, 3339, 3339, 3339, 0, 3339, 3339, 3339, 07849 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 0, 0, 07850 3339, 3340, 3340, 3340, 3340, 0, 3340, 0, 0, 0, 07851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07852 07853 3340, 3340, 0, 0, 0, 3340, 3341, 3341, 3341, 3341, 07854 0, 0, 0, 3341, 0, 0, 0, 0, 0, 0, 07855 3341, 0, 0, 0, 0, 3341, 3341, 0, 0, 0, 07856 3341, 3342, 3342, 3342, 3342, 0, 0, 0, 3342, 0, 07857 0, 0, 0, 0, 0, 3342, 0, 0, 0, 0, 07858 3342, 3342, 0, 0, 0, 3342, 3343, 3343, 3343, 3343, 07859 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 07860 3343, 0, 3343, 3343, 3343, 3343, 0, 0, 3343, 3343, 07861 3343, 3343, 3343, 3343, 3343, 3344, 3344, 3344, 3344, 3344, 07862 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 07863 07864 0, 3344, 3344, 3344, 3344, 0, 0, 3344, 3344, 3344, 07865 0, 3344, 3344, 3344, 3345, 3345, 0, 3345, 3345, 0, 07866 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 0, 3345, 07867 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 07868 0, 3345, 3345, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 07869 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 0, 3346, 07870 3346, 3346, 3346, 0, 0, 3346, 3346, 3346, 0, 3346, 07871 3346, 3346, 3347, 3347, 0, 3347, 3347, 0, 3347, 3347, 07872 3347, 3347, 3347, 3347, 0, 0, 0, 3347, 3347, 3347, 07873 3347, 3347, 3347, 3347, 3347, 3347, 3347, 3347, 0, 3347, 07874 07875 3347, 3348, 3348, 0, 3348, 3348, 3348, 3348, 3348, 3348, 07876 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 07877 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 07878 3349, 3349, 0, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 07879 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 07880 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3350, 07881 3350, 0, 3350, 3350, 0, 3350, 3350, 3350, 3350, 3350, 07882 3350, 3350, 3350, 0, 3350, 3350, 3350, 3350, 3350, 3350, 07883 3350, 3350, 3350, 3350, 3350, 0, 3350, 3350, 3351, 3351, 07884 0, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 07885 07886 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 07887 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3352, 3352, 0, 07888 3352, 3352, 0, 3352, 3352, 3352, 3352, 3352, 3352, 0, 07889 0, 0, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 07890 3352, 3352, 3352, 0, 3352, 3352, 3353, 3353, 0, 3353, 07891 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 07892 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 07893 3353, 3353, 3353, 3353, 3353, 3354, 3354, 0, 3354, 3354, 07894 0, 3354, 3354, 3354, 3354, 3354, 3354, 0, 0, 0, 07895 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 07896 07897 3354, 0, 3354, 3354, 3355, 3355, 0, 3355, 3355, 0, 07898 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 0, 3355, 07899 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 07900 0, 3355, 3355, 3356, 3356, 0, 3356, 3356, 3356, 3356, 07901 3356, 0, 0, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 07902 3356, 0, 3356, 3356, 3356, 0, 3356, 0, 3356, 0, 07903 0, 3356, 3357, 0, 0, 3357, 0, 3357, 0, 0, 07904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07905 0, 3357, 3357, 0, 0, 0, 3357, 3358, 0, 0, 07906 3358, 0, 0, 0, 0, 3358, 0, 0, 0, 0, 07907 07908 0, 3358, 0, 0, 0, 0, 3358, 3358, 0, 0, 07909 0, 3358, 3359, 3359, 0, 3359, 3359, 3359, 3359, 3359, 07910 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 07911 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 07912 3359, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07913 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07914 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07915 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07916 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07917 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07918 07919 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07920 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 07921 2974, 2974, 2974, 2974 07922 } ; 07923 07924 extern int codeYY_flex_debug; 07925 int codeYY_flex_debug = 0; 07926 07927 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; 07928 static char *yy_full_match; 07929 static int yy_lp; 07930 static int yy_looking_for_trail_begin = 0; 07931 static int yy_full_lp; 07932 static int *yy_full_state; 07933 #define YY_TRAILING_MASK 0x2000 07934 #define YY_TRAILING_HEAD_MASK 0x4000 07935 #define REJECT \ 07936 { \ 07937 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ \ 07938 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \ 07939 (yy_lp) = yy_full_lp; /* restore orig. accepting pos. */ \ 07940 (yy_state_ptr) = yy_full_state; /* restore orig. state */ \ 07941 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \ 07942 ++(yy_lp); \ 07943 goto find_rule; \ 07944 } 07945 07946 #define yymore() yymore_used_but_not_detected 07947 #define YY_MORE_ADJ 0 07948 #define YY_RESTORE_YY_MORE_OFFSET 07949 char *codeYYtext; 07950 #line 1 "code.l" 07951 /****************************************************************************** 07952 * 07953 * 07954 * 07955 * Copyright (C) 1997-2008 by Dimitri van Heesch. 07956 * 07957 * Permission to use, copy, modify, and distribute this software and its 07958 * documentation under the terms of the GNU General Public License is hereby 07959 * granted. No representations are made about the suitability of this software 07960 * for any purpose. It is provided "as is" without express or implied warranty. 07961 * See the GNU General Public License for more details. 07962 * 07963 * Documents produced by Doxygen are derivative works derived from the 07964 * input used in their production; they are not affected by this license. 07965 * 07966 */ 07967 #line 19 "code.l" 07968 07969 /* 07970 * includes 07971 */ 07972 #include <stdio.h> 07973 #include <assert.h> 07974 #include <ctype.h> 07975 #include <qregexp.h> 07976 #include <qdir.h> 07977 07978 #include "qtbc.h" 07979 #include "entry.h" 07980 #include "doxygen.h" 07981 #include "message.h" 07982 #include "outputlist.h" 07983 #include "util.h" 07984 #include "membername.h" 07985 #include "searchindex.h" 07986 07987 #define YY_NEVER_INTERACTIVE 1 07988 07989 // Toggle for some debugging info 07990 //#define DBG_CTX(x) fprintf x 07991 #define DBG_CTX(x) do { } while(0) 07992 07993 #define CLASSBLOCK (int *)4 07994 #define SCOPEBLOCK (int *)8 07995 #define INNERBLOCK (int *)12 07996 07997 /* ----------------------------------------------------------------- 07998 * statics 07999 */ 08000 08001 static CodeOutputInterface * g_code; 08002 08003 static ClassSDict *g_codeClassSDict = 0; 08004 static QCString g_curClassName; 08005 static QStrList g_curClassBases; 08006 08007 static QCString g_parmType; 08008 static QCString g_parmName; 08009 08010 static const char * g_inputString; 08011 static int g_inputPosition; 08012 static int g_inputLines; 08013 static int g_yyLineNr; 08014 static bool g_needsTermination; 08015 08016 static bool g_exampleBlock; 08017 static QCString g_exampleName; 08018 static QCString g_exampleFile; 08019 08020 static bool g_insideTemplate = FALSE; 08021 static QCString g_type; 08022 static QCString g_name; 08023 static QCString g_args; 08024 static QCString g_classScope; 08025 static QCString g_realScope; 08026 static QStack<int> g_scopeStack; 08027 // 2 for internal blocks 08028 static int g_anchorCount; 08029 static FileDef * g_sourceFileDef; 08030 static bool g_lineNumbers; 08031 static Definition * g_currentDefinition; 08032 static MemberDef * g_currentMemberDef; 08033 static bool g_includeCodeFragment; 08034 static const char * g_currentFontClass; 08035 static bool g_searchingForBody; 08036 static bool g_insideBody; 08037 static int g_bodyCurlyCount; 08038 static QCString g_saveName; 08039 static QCString g_saveType; 08040 08041 static int g_bracketCount = 0; 08042 static int g_curlyCount = 0; 08043 static int g_sharpCount = 0; 08044 static bool g_inFunctionTryBlock = FALSE; 08045 static bool g_inForEachExpression = FALSE; 08046 08047 static int g_lastTemplCastContext; 08048 static int g_lastSpecialCContext; 08049 static int g_lastStringContext; 08050 static int g_lastSkipCppContext; 08051 static int g_lastVerbStringContext; 08052 static int g_memCallContext; 08053 static int g_lastCContext; 08054 08055 static bool g_insideObjC; 08056 static bool g_insideProtocolList; 08057 08058 static bool g_lexInit = FALSE; 08059 08060 static QStack<int> g_classScopeLengthStack; 08061 08062 // context for an Objective-C method call 08063 struct ObjCCallCtx 08064 { 08065 int id; 08066 QCString methodName; 08067 QCString objectTypeOrName; 08068 ClassDef *objectType; 08069 MemberDef *objectVar; 08070 MemberDef *method; 08071 QCString format; 08072 int lexState; 08073 int braceCount; 08074 }; 08075 08076 // globals for objective-C method calls 08077 static ObjCCallCtx *g_currentCtx=0; 08078 static int g_currentCtxId=0; 08079 static int g_currentNameId=0; 08080 static int g_currentObjId=0; 08081 static int g_currentWordId=0; 08082 static QStack<ObjCCallCtx> g_contextStack; 08083 static QIntDict<ObjCCallCtx> g_contextDict; 08084 static QIntDict<QCString> g_nameDict; 08085 static QIntDict<QCString> g_objectDict; 08086 static QIntDict<QCString> g_wordDict; 08087 static int g_braceCount=0; 08088 08089 static void saveObjCContext(); 08090 static void restoreObjCContext(); 08091 08092 08093 08094 //------------------------------------------------------------------- 08095 08101 class VariableContext 08102 { 08103 public: 08104 static const ClassDef *dummyContext; 08105 08106 class Scope : public SDict<ClassDef> 08107 { 08108 public: 08109 Scope() : SDict<ClassDef>(17) {} 08110 }; 08111 08112 VariableContext() 08113 { 08114 m_scopes.setAutoDelete(TRUE); 08115 } 08116 virtual ~VariableContext() 08117 { 08118 } 08119 08120 void pushScope() 08121 { 08122 m_scopes.append(new Scope); 08123 DBG_CTX((stderr,"** Push var context %d\n",m_scopes.count())); 08124 } 08125 08126 void popScope() 08127 { 08128 if (m_scopes.count()>0) 08129 { 08130 DBG_CTX((stderr,"** Pop var context %d\n",m_scopes.count())); 08131 m_scopes.remove(m_scopes.count()-1); 08132 } 08133 else 08134 { 08135 DBG_CTX((stderr,"** ILLEGAL: Pop var context\n")); 08136 } 08137 } 08138 08139 void clear() 08140 { 08141 m_scopes.clear(); 08142 m_globalScope.clear(); 08143 } 08144 08145 void clearExceptGlobal() 08146 { 08147 DBG_CTX((stderr,"** Clear var context\n")); 08148 m_scopes.clear(); 08149 } 08150 08151 void addVariable(const QCString &type,const QCString &name); 08152 ClassDef *findVariable(const QCString &name); 08153 08154 int count() const { return m_scopes.count(); } 08155 08156 private: 08157 Scope m_globalScope; 08158 QList<Scope> m_scopes; 08159 }; 08160 08161 void VariableContext::addVariable(const QCString &type,const QCString &name) 08162 { 08163 //printf("VariableContext::addVariable(%s,%s)\n",type.data(),name.data()); 08164 QCString ltype = type.simplifyWhiteSpace(); 08165 QCString lname = name.simplifyWhiteSpace(); 08166 if (ltype.left(7)=="struct ") 08167 { 08168 ltype = ltype.right(ltype.length()-7); 08169 } 08170 else if (ltype.left(6)=="union ") 08171 { 08172 ltype = ltype.right(ltype.length()-6); 08173 } 08174 if (ltype.isEmpty() || lname.isEmpty()) return; 08175 DBG_CTX((stderr,"** addVariable trying: type='%s' name='%s' g_currentDefinition=%s\n", 08176 ltype.data(),lname.data(),g_currentDefinition?g_currentDefinition->name().data():"<none>")); 08177 Scope *scope = m_scopes.count()==0 ? &m_globalScope : m_scopes.getLast(); 08178 ClassDef *varType; 08179 int i=0; 08180 if ( 08181 (varType=g_codeClassSDict->find(ltype)) || // look for class definitions inside the code block 08182 (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,ltype)) // look for global class definitions 08183 ) 08184 { 08185 DBG_CTX((stderr,"** addVariable type='%s' name='%s'\n",ltype.data(),lname.data())); 08186 scope->append(lname,varType); // add it to a list 08187 } 08188 else if ((i=ltype.find('<'))!=-1) 08189 { 08190 // probably a template class 08191 QCString typeName(ltype.left(i)); 08192 ClassDef* newDef = 0; 08193 QCString templateArgs(ltype.right(ltype.length() - i)); 08194 if ( 08195 ( // look for class definitions inside the code block 08196 (varType=g_codeClassSDict->find(typeName)) || 08197 // otherwise look for global class definitions 08198 (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,typeName)) 08199 ) && // and it must be a template 08200 varType->templateArguments()) 08201 { 08202 newDef = varType->getVariableInstance( templateArgs ); 08203 } 08204 if (newDef) 08205 { 08206 DBG_CTX((stderr,"** addVariable type='%s' templ='%s' name='%s'\n",typeName.data(),templateArgs.data(),lname.data())); 08207 scope->append(lname, newDef); 08208 } 08209 else 08210 { 08211 // Doesn't seem to be a template. Try just the base name. 08212 addVariable(typeName,name); 08213 } 08214 } 08215 else 08216 { 08217 if (m_scopes.count()>0) // for local variables add a dummy entry so the name 08218 // is hidden to avoid false links to global variables with the same name 08219 // TODO: make this work for namespaces as well! 08220 { 08221 DBG_CTX((stderr,"** addVariable: dummy context for '%s'\n",lname.data())); 08222 scope->append(lname,dummyContext); 08223 } 08224 else 08225 { 08226 DBG_CTX((stderr,"** addVariable: not adding variable!\n")); 08227 } 08228 } 08229 } 08230 08231 ClassDef *VariableContext::findVariable(const QCString &name) 08232 { 08233 if (name.isEmpty()) return 0; 08234 ClassDef *result = 0; 08235 QListIterator<Scope> sli(m_scopes); 08236 Scope *scope; 08237 QCString key = name; 08238 // search from inner to outer scope 08239 for (sli.toLast();(scope=sli.current());--sli) 08240 { 08241 result = scope->find(key); 08242 if (result) 08243 { 08244 DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result)); 08245 return result; 08246 } 08247 } 08248 // nothing found -> also try the global scope 08249 result=m_globalScope.find(name); 08250 DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result)); 08251 return result; 08252 } 08253 08254 static VariableContext g_theVarContext; 08255 const ClassDef *VariableContext::dummyContext = (ClassDef*)0x8; 08256 08257 //------------------------------------------------------------------- 08258 08259 class CallContext 08260 { 08261 public: 08262 struct Ctx 08263 { 08264 Ctx() : name(g_name), type(g_type), cd(0) {} 08265 QCString name; 08266 QCString type; 08267 ClassDef *cd; 08268 }; 08269 08270 CallContext() 08271 { 08272 m_classList.append(new Ctx); 08273 m_classList.setAutoDelete(TRUE); 08274 } 08275 virtual ~CallContext() {} 08276 void setClass(ClassDef *cd) 08277 { 08278 Ctx *ctx = m_classList.getLast(); 08279 if (ctx) 08280 { 08281 DBG_CTX((stderr,"** Set call context %s (%p)\n",cd==0 ? "<null>" : cd->name().data(),cd)); 08282 ctx->cd=cd; 08283 } 08284 } 08285 void pushScope() 08286 { 08287 m_classList.append(new Ctx); 08288 DBG_CTX((stderr,"** Push call context %d\n",m_classList.count())); 08289 } 08290 void popScope() 08291 { 08292 if (m_classList.count()>1) 08293 { 08294 DBG_CTX((stderr,"** Pop call context %d\n",m_classList.count())); 08295 Ctx *ctx = m_classList.getLast(); 08296 if (ctx) 08297 { 08298 g_name = ctx->name; 08299 g_type = ctx->type; 08300 } 08301 m_classList.removeLast(); 08302 } 08303 else 08304 { 08305 DBG_CTX((stderr,"** ILLEGAL: Pop call context\n")); 08306 } 08307 } 08308 void clear() 08309 { 08310 DBG_CTX((stderr,"** Clear call context\n")); 08311 m_classList.clear(); 08312 m_classList.append(new Ctx); 08313 } 08314 ClassDef *getClass() const 08315 { 08316 Ctx *ctx = m_classList.getLast(); 08317 if (ctx) return ctx->cd; else return 0; 08318 } 08319 08320 private: 08321 QList<Ctx> m_classList; 08322 }; 08323 08324 static CallContext g_theCallContext; 08325 08326 //------------------------------------------------------------------- 08327 08329 static void pushScope(const char *s) 08330 { 08331 g_classScopeLengthStack.push(new int(g_classScope.length())); 08332 if (g_classScope.isEmpty()) 08333 { 08334 g_classScope = s; 08335 } 08336 else 08337 { 08338 g_classScope += "::"; 08339 g_classScope += s; 08340 } 08341 //printf("pushScope() result: `%s'\n",g_classScope.data()); 08342 } 08343 08345 static void popScope() 08346 { 08347 if (!g_classScopeLengthStack.isEmpty()) 08348 { 08349 int *pLength = g_classScopeLengthStack.pop(); 08350 g_classScope.truncate(*pLength); 08351 delete pLength; 08352 } 08353 else 08354 { 08355 //err("Error: Too many end of scopes found!\n"); 08356 } 08357 //printf("popScope() result: `%s'\n",g_classScope.data()); 08358 } 08359 08360 static void setCurrentDoc(const QCString &name,const QCString &base,const QCString &anchor="") 08361 { 08362 static bool searchEngineEnabled=Config_getBool("SEARCHENGINE"); 08363 if (searchEngineEnabled) 08364 { 08365 Doxygen::searchIndex->setCurrentDoc(name,base,anchor); 08366 } 08367 } 08368 08369 static void addToSearchIndex(const char *text) 08370 { 08371 static bool searchEngineEnabled=Config_getBool("SEARCHENGINE"); 08372 if (searchEngineEnabled) 08373 { 08374 Doxygen::searchIndex->addWord(text,FALSE); 08375 } 08376 } 08377 08378 static void setClassScope(const QCString &name) 08379 { 08380 //printf("setClassScope(%s)\n",name.data()); 08381 QCString n=name; 08382 n=n.simplifyWhiteSpace(); 08383 int ts=n.find('<'); // start of template 08384 int te=n.findRev('>'); // end of template 08385 //printf("ts=%d te=%d\n",ts,te); 08386 if (ts!=-1 && te!=-1 && te>ts) 08387 { 08388 // remove template from scope 08389 n=n.left(ts)+n.right(n.length()-te-1); 08390 } 08391 g_classScope = n; 08392 //printf("--->New class scope `%s'\n",g_classScope.data()); 08393 } 08394 08399 static void startCodeLine() 08400 { 08401 //if (g_currentFontClass) { g_code->endFontClass(); } 08402 if (g_sourceFileDef && g_lineNumbers) 08403 { 08404 //QCString lineNumber,lineAnchor; 08405 //lineNumber.sprintf("%05d",g_yyLineNr); 08406 //lineAnchor.sprintf("l%05d",g_yyLineNr); 08407 08408 Definition *d = g_sourceFileDef->getSourceDefinition(g_yyLineNr); 08409 if (!g_includeCodeFragment && d) 08410 { 08411 g_currentDefinition = d; 08412 g_currentMemberDef = g_sourceFileDef->getSourceMember(g_yyLineNr); 08413 g_insideBody = FALSE; 08414 g_searchingForBody = TRUE; 08415 g_realScope = d->name().copy(); 08416 g_type.resize(0); 08417 g_name.resize(0); 08418 g_args.resize(0); 08419 g_parmType.resize(0); 08420 g_parmName.resize(0); 08421 //printf("Real scope: `%s'\n",g_realScope.data()); 08422 g_bodyCurlyCount = 0; 08423 QCString lineAnchor; 08424 lineAnchor.sprintf("l%05d",g_yyLineNr); 08425 if (g_currentMemberDef) 08426 { 08427 g_code->writeLineNumber(g_currentMemberDef->getReference(), 08428 g_currentMemberDef->getOutputFileBase(), 08429 g_currentMemberDef->anchor(),g_yyLineNr); 08430 setCurrentDoc( 08431 g_currentMemberDef->qualifiedName(), 08432 g_sourceFileDef->getSourceFileBase(), 08433 lineAnchor); 08434 } 08435 else if (d->isLinkableInProject()) 08436 { 08437 g_code->writeLineNumber(d->getReference(), 08438 d->getOutputFileBase(), 08439 0,g_yyLineNr); 08440 setCurrentDoc( 08441 d->qualifiedName(), 08442 g_sourceFileDef->getSourceFileBase(), 08443 lineAnchor); 08444 } 08445 } 08446 else 08447 { 08448 g_code->writeLineNumber(0,0,0,g_yyLineNr); 08449 } 08450 } 08451 g_code->startCodeLine(); 08452 if (g_currentFontClass) 08453 { 08454 g_code->startFontClass(g_currentFontClass); 08455 } 08456 } 08457 08458 08459 static void endFontClass(); 08460 static void endCodeLine() 08461 { 08462 if (g_currentFontClass) { g_code->endFontClass(); } 08463 g_code->endCodeLine(); 08464 } 08465 08469 static void codifyLines(char *text) 08470 { 08471 //printf("codifyLines(%d,\"%s\")\n",g_yyLineNr,text); 08472 char *p=text,*sp=p; 08473 char c; 08474 bool done=FALSE; 08475 while (!done) 08476 { 08477 sp=p; 08478 while ((c=*p++) && c!='\n'); 08479 if (c=='\n') 08480 { 08481 g_yyLineNr++; 08482 *(p-1)='\0'; 08483 g_code->codify(sp); 08484 endCodeLine(); 08485 if (g_yyLineNr<g_inputLines) 08486 { 08487 startCodeLine(); 08488 } 08489 } 08490 else 08491 { 08492 g_code->codify(sp); 08493 done=TRUE; 08494 } 08495 } 08496 } 08497 08502 static void writeMultiLineCodeLink(CodeOutputInterface &ol, 08503 const char *ref,const char *file, 08504 const char *anchor,const char *text, 08505 const char *tooltip) 08506 { 08507 bool done=FALSE; 08508 char *p=(char *)text; 08509 while (!done) 08510 { 08511 char *sp=p; 08512 char c; 08513 while ((c=*p++) && c!='\n'); 08514 if (c=='\n') 08515 { 08516 g_yyLineNr++; 08517 *(p-1)='\0'; 08518 //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp); 08519 ol.writeCodeLink(ref,file,anchor,sp,tooltip); 08520 endCodeLine(); 08521 if (g_yyLineNr<g_inputLines) 08522 { 08523 startCodeLine(); 08524 } 08525 } 08526 else 08527 { 08528 //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp); 08529 ol.writeCodeLink(ref,file,anchor,sp,tooltip); 08530 done=TRUE; 08531 } 08532 } 08533 } 08534 08535 static void addType() 08536 { 08537 if (g_name=="const") { g_name.resize(0); return; } 08538 if (!g_type.isEmpty()) g_type += ' ' ; 08539 g_type += g_name ; 08540 g_name.resize(0) ; 08541 if (!g_type.isEmpty()) g_type += ' ' ; 08542 g_type += g_args ; 08543 g_args.resize(0) ; 08544 } 08545 08546 static void addParmType() 08547 { 08548 if (g_parmName=="const") { g_parmName.resize(0); return; } 08549 if (!g_parmType.isEmpty()) g_parmType += ' ' ; 08550 g_parmType += g_parmName ; 08551 g_parmName.resize(0) ; 08552 } 08553 08554 static void addUsingDirective(const char *name) 08555 { 08556 if (g_exampleBlock && g_sourceFileDef && name) 08557 { 08558 NamespaceDef *nd = Doxygen::namespaceSDict->find(name); 08559 if (nd) 08560 { 08561 g_sourceFileDef->addUsingDirective(nd); 08562 } 08563 } 08564 } 08565 08566 static void setParameterList(MemberDef *md) 08567 { 08568 g_classScope = md->getClassDef() ? md->getClassDef()->name().data() : ""; 08569 LockingPtr<ArgumentList> al = md->argumentList(); 08570 if (al==0) return; 08571 Argument *a = al->first(); 08572 while (a) 08573 { 08574 g_parmName = a->name.copy(); 08575 g_parmType = a->type.copy(); 08576 int i = g_parmType.find('*'); 08577 if (i!=-1) g_parmType = g_parmType.left(i); 08578 i = g_parmType.find('&'); 08579 if (i!=-1) g_parmType = g_parmType.left(i); 08580 g_parmType.stripPrefix("const "); 08581 g_parmType=g_parmType.stripWhiteSpace(); 08582 g_theVarContext.addVariable(g_parmType,g_parmName); 08583 a = al->next(); 08584 } 08585 } 08586 08587 static ClassDef *stripClassName(const char *s) 08588 { 08589 int pos=0; 08590 QCString type = s; 08591 QCString className; 08592 QCString templSpec; 08593 while (extractClassNameFromType(type,pos,className,templSpec)!=-1) 08594 { 08595 QCString clName=className+templSpec; 08596 ClassDef *cd=0; 08597 if (!g_classScope.isEmpty()) 08598 { 08599 cd=getResolvedClass(g_currentDefinition,g_sourceFileDef,g_classScope+"::"+clName); 08600 } 08601 if (cd==0) 08602 { 08603 cd=getResolvedClass(g_currentDefinition,g_sourceFileDef,clName); 08604 } 08605 //printf("stripClass trying `%s' = %p\n",clName.data(),cd); 08606 if (cd) 08607 { 08608 return cd; 08609 } 08610 } 08611 08612 return 0; 08613 } 08614 08615 static MemberDef *setCallContextForVar(const QCString &name) 08616 { 08617 if (name.isEmpty()) return 0; 08618 //fprintf(stderr,"setCallContextForVar(%s) g_classScope=%s\n",name.data(),g_classScope.data()); 08619 08620 int scopeEnd = name.findRev("::"); 08621 if (scopeEnd!=-1) // name with explicit scope 08622 { 08623 QCString scope = name.left(scopeEnd); 08624 QCString locName = name.right(name.length()-scopeEnd-2); 08625 //printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data()); 08626 ClassDef *mcd = getClass(scope); // TODO: check namespace as well 08627 if (mcd && !locName.isEmpty()) 08628 { 08629 MemberDef *md=mcd->getMemberByName(locName); 08630 if (md) 08631 { 08632 //printf("name=%s scope=%s\n",locName.data(),scope.data()); 08633 g_theCallContext.setClass(stripClassName(md->typeString())); 08634 return md; 08635 } 08636 } 08637 } 08638 08639 MemberName *mn; 08640 ClassDef *mcd = g_theVarContext.findVariable(name); 08641 if (mcd) // local variable 08642 { 08643 //fprintf(stderr,"local variable\n"); 08644 if (mcd!=VariableContext::dummyContext) 08645 { 08646 //fprintf(stderr,"local var `%s' mcd=%s\n",name.data(),mcd->name().data()); 08647 g_theCallContext.setClass(mcd); 08648 } 08649 } 08650 else 08651 { 08652 // look for a class member 08653 mcd = getClass(g_classScope); 08654 if (mcd) 08655 { 08656 //fprintf(stderr,"Inside class %s\n",mcd->name().data()); 08657 MemberDef *md=mcd->getMemberByName(name); 08658 if (md) 08659 { 08660 //fprintf(stderr,"Found member %s\n",md->name().data()); 08661 if (g_scopeStack.top()!=CLASSBLOCK) 08662 { 08663 //fprintf(stderr,"class member `%s' mcd=%s\n",name.data(),mcd->name().data()); 08664 g_theCallContext.setClass(stripClassName(md->typeString())); 08665 } 08666 return md; 08667 } 08668 } 08669 } 08670 08671 // look for a global member 08672 if ((mn=Doxygen::functionNameSDict->find(name))) 08673 { 08674 //printf("global var `%s'\n",name.data()); 08675 if (mn->count()==1) // global defined only once 08676 { 08677 MemberDef *md=mn->getFirst(); 08678 if (!md->isStatic() || md->getBodyDef()==g_sourceFileDef) 08679 { 08680 g_theCallContext.setClass(stripClassName(md->typeString())); 08681 return md; 08682 } 08683 return 0; 08684 } 08685 else if (mn->count()>1) // global defined more than once 08686 { 08687 MemberDef *md=mn->first(); 08688 while (md) 08689 { 08690 //printf("mn=%p md=%p md->getBodyDef()=%p g_sourceFileDef=%p\n", 08691 // mn,md, 08692 // md->getBodyDef(),g_sourceFileDef); 08693 08694 // in case there are multiple members we could link to, we 08695 // only link to members if defined in the same file or 08696 // defined as external. 08697 if (!md->isStatic() || md->getBodyDef()==g_sourceFileDef) 08698 { 08699 g_theCallContext.setClass(stripClassName(md->typeString())); 08700 //printf("returning member %s in source file %s\n",md->name().data(),g_sourceFileDef->name().data()); 08701 return md; 08702 } 08703 md=mn->next(); 08704 } 08705 return 0; 08706 } 08707 } 08708 return 0; 08709 } 08710 08711 static void addDocCrossReference(MemberDef *src,MemberDef *dst) 08712 { 08713 static bool referencedByRelation = Config_getBool("REFERENCED_BY_RELATION"); 08714 static bool referencesRelation = Config_getBool("REFERENCES_RELATION"); 08715 static bool callerGraph = Config_getBool("CALLER_GRAPH"); 08716 static bool callGraph = Config_getBool("CALL_GRAPH"); 08717 08718 //printf("--> addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data()); 08719 if (dst->isTypedef() || dst->isEnumerate()) return; // don't add types 08720 if ((referencedByRelation || callerGraph || dst->hasCallerGraph()) && 08721 (src->isFunction() || src->isSlot()) 08722 ) 08723 { 08724 dst->addSourceReferencedBy(src); 08725 MemberDef *mdDef = dst->memberDefinition(); 08726 if (mdDef) 08727 { 08728 mdDef->addSourceReferencedBy(src); 08729 } 08730 MemberDef *mdDecl = dst->memberDeclaration(); 08731 if (mdDecl) 08732 { 08733 mdDecl->addSourceReferencedBy(src); 08734 } 08735 } 08736 if ((referencesRelation || callGraph || src->hasCallGraph()) && 08737 (src->isFunction() || src->isSlot()) 08738 ) 08739 { 08740 src->addSourceReferences(dst); 08741 MemberDef *mdDef = src->memberDefinition(); 08742 if (mdDef) 08743 { 08744 mdDef->addSourceReferences(dst); 08745 } 08746 MemberDef *mdDecl = src->memberDeclaration(); 08747 if (mdDecl) 08748 { 08749 mdDecl->addSourceReferences(dst); 08750 } 08751 } 08752 08753 } 08754 08755 static bool getLinkInScope(const QCString &c, // scope 08756 const QCString &m, // member 08757 const char *memberText, // exact text 08758 CodeOutputInterface &ol, 08759 const char *text 08760 ) 08761 { 08762 MemberDef *md; 08763 ClassDef *cd; 08764 FileDef *fd; 08765 NamespaceDef *nd; 08766 GroupDef *gd; 08767 //printf("getLinkInScope: trying `%s'::`%s'\n",c.data(),m.data()); 08768 if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef) && 08769 md->isLinkable()) 08770 { 08771 //printf("Found!\n"); 08772 if (g_exampleBlock) 08773 { 08774 QCString anchor; 08775 anchor.sprintf("a%d",g_anchorCount); 08776 //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(), 08777 // g_exampleFile.data()); 08778 if (md->addExample(anchor,g_exampleName,g_exampleFile)) 08779 { 08780 ol.writeCodeAnchor(anchor); 08781 g_anchorCount++; 08782 } 08783 } 08784 08785 Definition *d = md->getOuterScope()==Doxygen::globalScope ? 08786 md->getBodyDef() : md->getOuterScope(); 08787 if (md->getGroupDef()) d = md->getGroupDef(); 08788 //printf("d=%p linkable=%d\n",d,d?d->isLinkable():0); 08789 if (d && d->isLinkable()) 08790 { 08791 g_theCallContext.setClass(stripClassName(md->typeString())); 08792 //printf("g_currentDefinition=%p g_currentMemberDef=%p g_insideBody=%d\n", 08793 // g_currentDefinition,g_currentMemberDef,g_insideBody); 08794 08795 if (g_currentDefinition && g_currentMemberDef && 08796 md!=g_currentMemberDef && g_insideBody) 08797 { 08798 addDocCrossReference(g_currentMemberDef,md); 08799 } 08800 //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data()); 08801 08802 ol.linkableSymbol(g_yyLineNr,md->name(),md, 08803 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 08804 writeMultiLineCodeLink(ol,md->getReference(), 08805 md->getOutputFileBase(), 08806 md->anchor(), 08807 text ? text : memberText, 08808 md->briefDescriptionAsTooltip()); 08809 addToSearchIndex(text ? text : memberText); 08810 return TRUE; 08811 } 08812 } 08813 return FALSE; 08814 } 08815 08816 static bool getLink(const char *className, 08817 const char *memberName, 08818 CodeOutputInterface &ol, 08819 const char *text=0) 08820 { 08821 //printf("getLink(%s,%s)\n",className,memberName); 08822 QCString m=removeRedundantWhiteSpace(memberName); 08823 QCString c=className; 08824 if (!getLinkInScope(c,m,memberName,ol,text)) 08825 { 08826 if (!g_curClassName.isEmpty()) 08827 { 08828 if (!c.isEmpty()) c.prepend("::"); 08829 c.prepend(g_curClassName); 08830 return getLinkInScope(c,m,memberName,ol,text); 08831 } 08832 return FALSE; 08833 } 08834 return TRUE; 08835 } 08836 08837 static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName, 08838 bool typeOnly=FALSE) 08839 { 08840 int i=0; 08841 if (*clName=='~') // correct for matching negated values i.s.o. destructors. 08842 { 08843 g_code->codify("~"); 08844 clName++; 08845 } 08846 QCString className=clName; 08847 if (className.isEmpty()) return; 08848 if (g_insideProtocolList) // for Obj-C 08849 { 08850 className+="-p"; 08851 } 08852 ClassDef *cd=0,*lcd=0; 08853 MemberDef *md=0; 08854 bool isLocal=FALSE; 08855 08856 //printf("generateClassOrGlobalLink(className=%s)\n",className.data()); 08857 if ((lcd=g_theVarContext.findVariable(className))==0) // not a local variable 08858 { 08859 Definition *d = g_currentDefinition; 08860 //printf("d=%p g_sourceFileDef=%p\n",d,g_currentDefinition); 08861 cd = getResolvedClass(d,g_sourceFileDef,className,&md); 08862 //fprintf(stderr,"non-local variable name=%s context=%d cd=%s md=%s!\n", 08863 // className.data(),g_theVarContext.count(),cd?cd->name().data():"<none>", 08864 // md?md->name().data():"<none>"); 08865 if (cd==0 && md==0 && (i=className.find('<'))!=-1) 08866 { 08867 QCString bareName = className.left(i); //stripTemplateSpecifiersFromScope(className); 08868 //fprintf(stderr,"bareName=%s\n",bareName.data()); 08869 if (bareName!=className) 08870 { 08871 cd=getResolvedClass(d,g_sourceFileDef,bareName,&md); // try unspecialized version 08872 } 08873 } 08874 //printf("md=%s\n",md?md->name().data():"<none>"); 08875 //fprintf(stderr,"is found as a type %s\n",cd?cd->name().data():"<null>"); 08876 if (cd==0 && md==0) // also see if it is variable or enum or enum value 08877 { 08878 if (getLink(g_classScope,clName,ol,clName)) 08879 { 08880 return; 08881 } 08882 } 08883 } 08884 else 08885 { 08886 //printf("local variable!\n"); 08887 if (lcd!=VariableContext::dummyContext) 08888 { 08889 //printf("non-dummy context lcd=%s!\n",lcd->name().data()); 08890 g_theCallContext.setClass(lcd); 08891 08892 // to following is needed for links to a global variable, but is 08893 // no good for a link to a local variable that is also a global symbol. 08894 08895 //if (getLink(g_classScope,clName,ol,clName)) 08896 //{ 08897 //return; 08898 //} 08899 } 08900 isLocal=TRUE; 08901 //fprintf(stderr,"is a local variable cd=%p!\n",cd); 08902 } 08903 if (cd && cd->isLinkable()) // is it a linkable class 08904 { 08905 //fprintf(stderr,"is linkable class %s\n",clName); 08906 if (g_exampleBlock) 08907 { 08908 QCString anchor; 08909 anchor.sprintf("_a%d",g_anchorCount); 08910 //printf("addExampleClass(%s,%s,%s)\n",anchor.data(),g_exampleName.data(), 08911 // g_exampleFile.data()); 08912 if (cd->addExample(anchor,g_exampleName,g_exampleFile)) 08913 { 08914 ol.writeCodeAnchor(anchor); 08915 g_anchorCount++; 08916 } 08917 } 08918 ol.linkableSymbol(g_yyLineNr,cd->name(),cd, 08919 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 08920 writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),0,clName,cd->briefDescriptionAsTooltip()); 08921 addToSearchIndex(className); 08922 if (md) 08923 { 08924 Definition *d = md->getOuterScope()==Doxygen::globalScope ? 08925 md->getBodyDef() : md->getOuterScope(); 08926 if (md->getGroupDef()) d = md->getGroupDef(); 08927 if (d && d->isLinkable() && md->isLinkable() && g_currentMemberDef) 08928 { 08929 addDocCrossReference(g_currentMemberDef,md); 08930 } 08931 } 08932 } 08933 else // not a class, maybe a global member 08934 { 08935 //printf("class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly); 08936 if (!isLocal && (md!=0 || (cd==0 && !typeOnly))) // not a class, see if it is a global enum/variable/typedef. 08937 { 08938 if (md==0) // not found as a typedef 08939 { 08940 md = setCallContextForVar(clName); 08941 //printf("setCallContextForVar(%s) md=%p g_currentDefinition=%p\n",clName,md,g_currentDefinition); 08942 if (md && g_currentDefinition) 08943 { 08944 //fprintf(stderr,"%s accessible from %s? %d md->getOuterScope=%s\n", 08945 // md->name().data(),g_currentDefinition->name().data(), 08946 // isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md), 08947 // md->getOuterScope()->name().data()); 08948 } 08949 08950 if (md && g_currentDefinition && 08951 isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md)==-1) 08952 { 08953 md=0; // variable not accessible 08954 } 08955 } 08956 if (md) 08957 { 08958 //printf("is a global md=%p g_currentDefinition=%s\n",md,g_currentDefinition?g_currentDefinition->name().data():"<none>"); 08959 if (md->isLinkable()) 08960 { 08961 ol.linkableSymbol(g_yyLineNr,md->name(),md, 08962 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 08963 writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),clName,md->briefDescriptionAsTooltip()); 08964 addToSearchIndex(clName); 08965 if (g_currentMemberDef) 08966 { 08967 addDocCrossReference(g_currentMemberDef,md); 08968 } 08969 return; 08970 } 08971 } 08972 } 08973 08974 // nothing found, just write out the word 08975 ol.linkableSymbol(g_yyLineNr,clName,0, 08976 g_currentMemberDef?g_currentMemberDef:g_currentDefinition); 08977 codifyLines(clName); 08978 addToSearchIndex(clName); 08979 } 08980 } 08981 08982 static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const char *memName) 08983 { 08984 if (mcd) 08985 { 08986 MemberDef *xmd = mcd->getMemberByName(memName); 08987 //printf("generateClassMemberLink(class=%s,member=%s)=%p\n",mcd->name().data(),memName,xmd); 08988 if (xmd) 08989 { 08990 // extract class definition of the return type in order to resolve 08991 // a->b()->c() like call chains 08992 08993 //printf("type=`%s' args=`%s' class=%s\n", 08994 // xmd->typeString(),xmd->argsString(), 08995 // xmd->getClassDef()->name().data()); 08996 08997 if (g_exampleBlock) 08998 { 08999 QCString anchor; 09000 anchor.sprintf("a%d",g_anchorCount); 09001 //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(), 09002 // g_exampleFile.data()); 09003 if (xmd->addExample(anchor,g_exampleName,g_exampleFile)) 09004 { 09005 ol.writeCodeAnchor(anchor); 09006 g_anchorCount++; 09007 } 09008 } 09009 09010 ClassDef *typeClass = stripClassName(removeAnonymousScopes(xmd->typeString())); 09011 //fprintf(stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass); 09012 g_theCallContext.setClass(typeClass); 09013 09014 Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ? 09015 xmd->getBodyDef() : xmd->getOuterScope(); 09016 if (xmd->getGroupDef()) xd = xmd->getGroupDef(); 09017 if (xd) 09018 { 09019 09020 //printf("g_currentDefiniton=%p g_currentMemberDef=%p xmd=%p g_insideBody=%d\n",g_currentDefinition,g_currentMemberDef,xmd,g_insideBody); 09021 09022 if (xmd->templateMaster()) xmd = xmd->templateMaster(); 09023 09024 // add usage reference 09025 if (g_currentDefinition && g_currentMemberDef && 09026 /*xmd!=g_currentMemberDef &&*/ g_insideBody) 09027 { 09028 addDocCrossReference(g_currentMemberDef,xmd); 09029 } 09030 09031 // write the actual link 09032 ol.linkableSymbol(g_yyLineNr,xmd->name(),xmd, 09033 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09034 writeMultiLineCodeLink(ol,xmd->getReference(), 09035 xmd->getOutputFileBase(),xmd->anchor(),memName,xmd->briefDescriptionAsTooltip()); 09036 addToSearchIndex(memName); 09037 return TRUE; 09038 } 09039 09040 } 09041 } 09042 09043 return FALSE; 09044 } 09045 09046 static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName, 09047 char *memName) 09048 { 09049 //printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n", 09050 // varName.data(),memName,g_classScope.data()); 09051 09052 if (varName.isEmpty()) return; 09053 09054 // look for the variable in the current context 09055 ClassDef *vcd = g_theVarContext.findVariable(varName); 09056 if (vcd) 09057 { 09058 if (vcd!=VariableContext::dummyContext) 09059 { 09060 //printf("Class found!\n"); 09061 if (getLink(vcd->name(),memName,ol)) 09062 { 09063 //printf("Found result!\n"); 09064 return; 09065 } 09066 if (vcd->baseClasses()) 09067 { 09068 BaseClassListIterator bcli(*vcd->baseClasses()); 09069 for ( ; bcli.current() ; ++bcli) 09070 { 09071 if (getLink(bcli.current()->classDef->name(),memName,ol)) 09072 { 09073 //printf("Found result!\n"); 09074 return; 09075 } 09076 } 09077 } 09078 } 09079 } 09080 else // variable not in current context, maybe it is in a parent context 09081 { 09082 vcd = getResolvedClass(g_currentDefinition,g_sourceFileDef,g_classScope); 09083 if (vcd && vcd->isLinkable()) 09084 { 09085 //printf("Found class %s for variable `%s'\n",g_classScope.data(),varName.data()); 09086 MemberName *vmn=Doxygen::memberNameSDict->find(varName); 09087 if (vmn==0) 09088 { 09089 int vi; 09090 QCString vn=varName; 09091 QCString scope; 09092 if ((vi=vn.findRev("::"))!=-1 || (vi=vn.findRev('.'))!=-1) // explicit scope A::b(), probably static member 09093 { 09094 ClassDef *jcd = getClass(vn.left(vi)); 09095 vn=vn.right(vn.length()-vi-2); 09096 vmn=Doxygen::memberNameSDict->find(vn); 09097 //printf("Trying name `%s' scope=%s\n",vn.data(),scope.data()); 09098 if (vmn) 09099 { 09100 MemberNameIterator vmni(*vmn); 09101 MemberDef *vmd; 09102 for (;(vmd=vmni.current());++vmni) 09103 { 09104 if (/*(vmd->isVariable() || vmd->isFunction()) && */ 09105 vmd->getClassDef()==jcd) 09106 { 09107 //printf("Found variable type=%s\n",vmd->typeString()); 09108 ClassDef *mcd=stripClassName(vmd->typeString()); 09109 if (mcd && mcd->isLinkable()) 09110 { 09111 if (generateClassMemberLink(ol,mcd,memName)) return; 09112 } 09113 } 09114 } 09115 } 09116 } 09117 } 09118 if (vmn) 09119 { 09120 //printf("There is a variable with name `%s'\n",varName); 09121 MemberNameIterator vmni(*vmn); 09122 MemberDef *vmd; 09123 for (;(vmd=vmni.current());++vmni) 09124 { 09125 if (/*(vmd->isVariable() || vmd->isFunction()) && */ 09126 vmd->getClassDef()==vcd) 09127 { 09128 //printf("Found variable type=%s\n",vmd->typeString()); 09129 ClassDef *mcd=stripClassName(vmd->typeString()); 09130 if (mcd && mcd->isLinkable()) 09131 { 09132 if (generateClassMemberLink(ol,mcd,memName)) return; 09133 } 09134 } 09135 } 09136 } 09137 } 09138 } 09139 // nothing found -> write result as is 09140 ol.linkableSymbol(g_yyLineNr,memName,0, 09141 g_currentMemberDef?g_currentMemberDef:g_currentDefinition); 09142 codifyLines(memName); 09143 addToSearchIndex(memName); 09144 return; 09145 } 09146 09147 static void generateFunctionLink(CodeOutputInterface &ol,char *funcName) 09148 { 09149 //CodeClassDef *ccd=0; 09150 ClassDef *ccd=0; 09151 QCString locScope=g_classScope.copy(); 09152 QCString locFunc=removeRedundantWhiteSpace(funcName); 09153 //fprintf(stdout,"*** locScope=%s locFunc=%s\n",locScope.data(),locFunc.data()); 09154 int len=2; 09155 int i=locFunc.findRev("::"); 09156 if (i==-1) i=locFunc.findRev("."),len=1; 09157 if (i>0) 09158 { 09159 locScope=locFunc.left(i); 09160 locFunc=locFunc.right(locFunc.length()-i-len).stripWhiteSpace(); 09161 int ts=locScope.find('<'); // start of template 09162 int te=locScope.findRev('>'); // end of template 09163 //printf("ts=%d te=%d\n",ts,te); 09164 if (ts!=-1 && te!=-1 && te>ts) 09165 { 09166 // remove template from scope 09167 locScope=locScope.left(ts)+locScope.right(locScope.length()-te-1); 09168 } 09169 } 09170 //printf("generateFunctionLink(%s) classScope=`%s'\n",locFunc.data(),locScope.data()); 09171 if (!locScope.isEmpty() && (ccd=g_codeClassSDict->find(locScope))) 09172 { 09173 //printf("using classScope %s\n",g_classScope.data()); 09174 if (ccd->baseClasses()) 09175 { 09176 BaseClassListIterator bcli(*ccd->baseClasses()); 09177 for ( ; bcli.current() ; ++bcli) 09178 { 09179 if (getLink(bcli.current()->classDef->name(),locFunc,ol,funcName)) 09180 { 09181 return; 09182 } 09183 } 09184 } 09185 } 09186 if (!getLink(locScope,locFunc,ol,funcName)) 09187 { 09188 generateClassOrGlobalLink(ol,funcName); 09189 } 09190 return; 09191 } 09192 09194 static int countLines() 09195 { 09196 const char *p=g_inputString; 09197 char c; 09198 int count=1; 09199 while ((c=*p)) 09200 { 09201 p++ ; 09202 if (c=='\n') count++; 09203 } 09204 if (p>g_inputString && *(p-1)!='\n') 09205 { // last line does not end with a \n, so we add an extra 09206 // line and explicitly terminate the line after parsing. 09207 count++, 09208 g_needsTermination=TRUE; 09209 } 09210 return count; 09211 } 09212 09213 static void endFontClass() 09214 { 09215 if (g_currentFontClass) 09216 { 09217 g_code->endFontClass(); 09218 g_currentFontClass=0; 09219 } 09220 } 09221 09222 static void startFontClass(const char *s) 09223 { 09224 endFontClass(); 09225 g_code->startFontClass(s); 09226 g_currentFontClass=s; 09227 } 09228 09229 //---------------------------------------------------------------------------- 09230 09231 // recursively writes a linkified Objective-C method call 09232 static void writeObjCMethodCall(ObjCCallCtx *ctx) 09233 { 09234 if (ctx==0) return; 09235 if (ctx->methodName.isEmpty()) return; 09236 const char *p = ctx->format.data(); 09237 //printf("writeObjCMethodCall(%s) obj=%s method=%s\n", 09238 // ctx->format.data(),ctx->objectTypeOrName.data(),ctx->methodName.data()); 09239 char c; 09240 if (!ctx->objectTypeOrName.isEmpty() && ctx->objectTypeOrName.at(0)!='$') 09241 { 09242 //printf("Looking for object=%s method=%s\n",ctx->objectTypeOrName.data(), 09243 // ctx->methodName.data()); 09244 ClassDef *cd = g_theVarContext.findVariable(ctx->objectTypeOrName); 09245 if (cd==0) // not a local variable 09246 { 09247 if (ctx->objectTypeOrName=="self") 09248 { 09249 if (g_currentDefinition && 09250 g_currentDefinition->definitionType()==Definition::TypeClass) 09251 { 09252 ctx->objectType = (ClassDef *)g_currentDefinition; 09253 } 09254 } 09255 else 09256 { 09257 ctx->objectType = getResolvedClass( 09258 g_currentDefinition, 09259 g_sourceFileDef, 09260 ctx->objectTypeOrName, 09261 &ctx->method); 09262 } 09263 //printf(" object is class? %p\n",ctx->objectType); 09264 if (ctx->objectType) // found class 09265 { 09266 ctx->method = ctx->objectType->getMemberByName(ctx->methodName); 09267 //printf(" yes->method=%s\n",ctx->method?ctx->method->name().data():"<none>"); 09268 } 09269 else if (ctx->method==0) // search for class variable with the same name 09270 { 09271 //printf(" no\n"); 09272 //printf("g_currentDefinition=%p\n",g_currentDefinition); 09273 if (g_currentDefinition && 09274 g_currentDefinition->definitionType()==Definition::TypeClass) 09275 { 09276 ctx->objectVar = ((ClassDef *)g_currentDefinition)->getMemberByName(ctx->objectTypeOrName); 09277 //printf(" ctx->objectVar=%p\n",ctx->objectVar); 09278 if (ctx->objectVar) 09279 { 09280 ctx->objectType = stripClassName(ctx->objectVar->typeString()); 09281 //printf(" ctx->objectType=%p\n",ctx->objectType); 09282 if (ctx->objectType) 09283 { 09284 ctx->method = ctx->objectType->getMemberByName(ctx->methodName); 09285 //printf(" ctx->method=%p\n",ctx->method); 09286 } 09287 } 09288 } 09289 } 09290 } 09291 else // local variable 09292 { 09293 //printf(" object is local variable\n"); 09294 if (cd!=VariableContext::dummyContext) 09295 { 09296 ctx->method = cd->getMemberByName(ctx->methodName); 09297 //printf(" class=%p method=%p\n",cd,ctx->method); 09298 } 09299 } 09300 } 09301 09302 //printf("["); 09303 while ((c=*p++)) // for each character in ctx->format 09304 { 09305 if (c=='$') 09306 { 09307 char nc=*p++; 09308 if (nc=='$') // escaped $ 09309 { 09310 g_code->codify("$"); 09311 } 09312 else // name fragment or reference to a nested call 09313 { 09314 if (nc=='n') // name fragment 09315 { 09316 nc=*p++; 09317 QCString refIdStr; 09318 while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } 09319 p--; 09320 int refId=refIdStr.toInt(); 09321 QCString *pName = g_nameDict.find(refId); 09322 if (pName) 09323 { 09324 if (ctx->method && ctx->method->isLinkable()) 09325 { 09326 g_code->linkableSymbol(g_yyLineNr,ctx->method->name(),ctx->method, 09327 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09328 writeMultiLineCodeLink(*g_code, 09329 ctx->method->getReference(), 09330 ctx->method->getOutputFileBase(), 09331 ctx->method->anchor(), 09332 pName->data(), 09333 ctx->method->briefDescriptionAsTooltip()); 09334 if (g_currentMemberDef) 09335 { 09336 addDocCrossReference(g_currentMemberDef,ctx->method); 09337 } 09338 } 09339 else 09340 { 09341 g_code->linkableSymbol(g_yyLineNr,pName->data(),0, 09342 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09343 codifyLines(pName->data()); 09344 } 09345 } 09346 else 09347 { 09348 //printf("Invalid name: id=%d\n",refId); 09349 } 09350 } 09351 else if (nc=='o') // reference to potential object name 09352 { 09353 nc=*p++; 09354 QCString refIdStr; 09355 while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } 09356 p--; 09357 int refId=refIdStr.toInt(); 09358 QCString *pObject = g_objectDict.find(refId); 09359 if (pObject) 09360 { 09361 if (*pObject=="self") 09362 { 09363 if (g_currentDefinition && 09364 g_currentDefinition->definitionType()==Definition::TypeClass) 09365 { 09366 ctx->objectType = (ClassDef *)g_currentDefinition; 09367 if (ctx->objectType->categoryOf()) 09368 { 09369 ctx->objectType = ctx->objectType->categoryOf(); 09370 } 09371 if (ctx->objectType) 09372 { 09373 ctx->method = ctx->objectType->getMemberByName(ctx->methodName); 09374 } 09375 } 09376 startFontClass("keyword"); 09377 codifyLines(pObject->data()); 09378 endFontClass(); 09379 } 09380 else if (*pObject=="super") 09381 { 09382 if (g_currentDefinition && 09383 g_currentDefinition->definitionType()==Definition::TypeClass) 09384 { 09385 ClassDef *cd = (ClassDef *)g_currentDefinition; 09386 if (cd->categoryOf()) 09387 { 09388 cd = cd->categoryOf(); 09389 } 09390 BaseClassList *bcd = cd->baseClasses(); 09391 if (bcd) // get direct base class (there should be only one) 09392 { 09393 BaseClassListIterator bli(*bcd); 09394 BaseClassDef *bclass; 09395 for (bli.toFirst();(bclass=bli.current());++bli) 09396 { 09397 if (bclass->classDef->compoundType()!=ClassDef::Protocol) 09398 { 09399 ctx->objectType = bclass->classDef; 09400 if (ctx->objectType) 09401 { 09402 ctx->method = ctx->objectType->getMemberByName(ctx->methodName); 09403 } 09404 } 09405 } 09406 } 09407 } 09408 startFontClass("keyword"); 09409 codifyLines(pObject->data()); 09410 endFontClass(); 09411 } 09412 else if (ctx->objectVar && ctx->objectVar->isLinkable()) // object is class variable 09413 { 09414 g_code->linkableSymbol(g_yyLineNr,ctx->objectVar->name(),ctx->objectVar, 09415 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09416 writeMultiLineCodeLink(*g_code, 09417 ctx->objectVar->getReference(), 09418 ctx->objectVar->getOutputFileBase(), 09419 ctx->objectVar->anchor(), 09420 pObject->data(), 09421 ctx->objectVar->briefDescriptionAsTooltip()); 09422 if (g_currentMemberDef) 09423 { 09424 addDocCrossReference(g_currentMemberDef,ctx->objectVar); 09425 } 09426 } 09427 else if (ctx->objectType && 09428 ctx->objectType!=VariableContext::dummyContext && 09429 ctx->objectType->isLinkable() 09430 ) // object is class name 09431 { 09432 ClassDef *cd = ctx->objectType; 09433 g_code->linkableSymbol(g_yyLineNr,cd->name(),cd, 09434 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09435 writeMultiLineCodeLink(*g_code, 09436 cd->getReference(), 09437 cd->getOutputFileBase(), 09438 0, 09439 pObject->data(), 09440 cd->briefDescriptionAsTooltip()); 09441 } 09442 else // object still needs to be resolved 09443 { 09444 ClassDef *cd = getResolvedClass(g_currentDefinition, 09445 g_sourceFileDef, *pObject); 09446 if (cd && cd->isLinkable()) 09447 { 09448 if (ctx->objectType==0) ctx->objectType=cd; 09449 g_code->linkableSymbol(g_yyLineNr,cd->name(),cd, 09450 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09451 writeMultiLineCodeLink(*g_code, 09452 cd->getReference(), 09453 cd->getOutputFileBase(), 09454 0, 09455 pObject->data(), 09456 cd->briefDescriptionAsTooltip()); 09457 } 09458 else 09459 { 09460 g_code->linkableSymbol(g_yyLineNr,pObject->data(),0, 09461 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09462 codifyLines(pObject->data()); 09463 } 09464 } 09465 } 09466 else 09467 { 09468 //printf("Invalid object: id=%d\n",refId); 09469 } 09470 } 09471 else if (nc=='c') // reference to nested call 09472 { 09473 nc=*p++; 09474 QCString refIdStr; 09475 while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } 09476 p--; 09477 int refId=refIdStr.toInt(); 09478 ObjCCallCtx *ictx = g_contextDict.find(refId); 09479 if (ictx) // recurse into nested call 09480 { 09481 writeObjCMethodCall(ictx); 09482 if (ictx->method) // link to nested call successfully 09483 { 09484 // get the ClassDef representing the method's return type 09485 if (QCString(ictx->method->typeString())=="id") 09486 { 09487 // see if the method name is unique, if so we link to it 09488 MemberName *mn=Doxygen::memberNameSDict->find(ctx->methodName); 09489 //printf("mn->count=%d ictx->method=%s ctx->methodName=%s\n", 09490 // mn==0?-1:(int)mn->count(), 09491 // ictx->method->name().data(), 09492 // ctx->methodName.data()); 09493 if (mn && mn->count()==1) // member name unique 09494 { 09495 ctx->method = mn->getFirst(); 09496 } 09497 } 09498 else 09499 { 09500 ctx->objectType = stripClassName(ictx->method->typeString()); 09501 if (ctx->objectType) 09502 { 09503 ctx->method = ctx->objectType->getMemberByName(ctx->methodName); 09504 } 09505 } 09506 //printf(" ***** method=%s -> object=%p\n",ictx->method->name().data(),ctx->objectType); 09507 } 09508 } 09509 else 09510 { 09511 //printf("Invalid context: id=%d\n",refId); 09512 } 09513 } 09514 else if (nc=='w') // some word 09515 { 09516 nc=*p++; 09517 QCString refIdStr; 09518 while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } 09519 p--; 09520 int refId=refIdStr.toInt(); 09521 QCString *pWord = g_wordDict.find(refId); 09522 if (pWord) 09523 { 09524 g_code->linkableSymbol(g_yyLineNr,pWord->data(),0, 09525 g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); 09526 codifyLines(pWord->data()); 09527 } 09528 } 09529 else // illegal marker 09530 { 09531 ASSERT(!"invalid escape sequence"); 09532 } 09533 } 09534 } 09535 else // normal non-marker character 09536 { 09537 char s[2]; 09538 s[0]=c;s[1]=0; 09539 codifyLines(s); 09540 } 09541 } 09542 //printf("%s %s]\n",ctx->objectTypeOrName.data(),ctx->methodName.data()); 09543 //printf("}=(type='%s',name='%s')", 09544 // ctx->objectTypeOrName.data(), 09545 // ctx->methodName.data()); 09546 } 09547 09548 // Replaces an Objective-C method name fragment s by a marker of the form 09549 // $n12, the number (12) can later be used as a key for obtaining the name 09550 // fragment, from g_nameDict 09551 static QCString escapeName(const char *s) 09552 { 09553 QCString result; 09554 result.sprintf("$n%d",g_currentNameId); 09555 g_nameDict.insert(g_currentNameId,new QCString(s)); 09556 g_currentNameId++; 09557 return result; 09558 } 09559 09560 static QCString escapeObject(const char *s) 09561 { 09562 QCString result; 09563 result.sprintf("$o%d",g_currentObjId); 09564 g_objectDict.insert(g_currentObjId,new QCString(s)); 09565 g_currentObjId++; 09566 return result; 09567 } 09568 09569 static QCString escapeWord(const char *s) 09570 { 09571 QCString result; 09572 result.sprintf("$w%d",g_currentWordId); 09573 g_wordDict.insert(g_currentWordId,new QCString(s)); 09574 g_currentWordId++; 09575 return result; 09576 } 09577 09578 /* ----------------------------------------------------------------- 09579 */ 09580 #undef YY_INPUT 09581 #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size); 09582 09583 static int yyread(char *buf,int max_size) 09584 { 09585 int c=0; 09586 while( c < max_size && g_inputString[g_inputPosition] ) 09587 { 09588 *buf = g_inputString[g_inputPosition++] ; 09589 c++; buf++; 09590 } 09591 return c; 09592 } 09593 09594 09595 09596 09597 09598 09599 09600 09601 09602 09603 09604 09605 09606 09607 09608 09609 09610 09611 09612 09613 09614 09615 09616 09617 09618 09619 09620 09621 09622 09623 09624 09625 #line 9626 "<stdout>" 09626 09627 #define INITIAL 0 09628 #define SkipString 1 09629 #define SkipStringS 2 09630 #define SkipVerbString 3 09631 #define SkipCPP 4 09632 #define SkipComment 5 09633 #define SkipCxxComment 6 09634 #define RemoveSpecialCComment 7 09635 #define StripSpecialCComment 8 09636 #define Body 9 09637 #define FuncCall 10 09638 #define MemberCall 11 09639 #define MemberCall2 12 09640 #define SkipInits 13 09641 #define ClassName 14 09642 #define PackageName 15 09643 #define ClassVar 16 09644 #define CppCliTypeModifierFollowup 17 09645 #define Bases 18 09646 #define SkipSharp 19 09647 #define ReadInclude 20 09648 #define TemplDecl 21 09649 #define TemplCast 22 09650 #define CallEnd 23 09651 #define ObjCMethod 24 09652 #define ObjCParams 25 09653 #define ObjCParamType 26 09654 #define ObjCCall 27 09655 #define ObjCMName 28 09656 #define ObjCSkipStr 29 09657 #define OldStyleArgs 30 09658 #define UsingName 31 09659 09660 #ifndef YY_NO_UNISTD_H 09661 /* Special case for "unistd.h", since it is non-ANSI. We include it way 09662 * down here because we want the user's section 1 to have been scanned first. 09663 * The user has a chance to override it with an option. 09664 */ 09665 #include <unistd.h> 09666 #endif 09667 09668 #ifndef YY_EXTRA_TYPE 09669 #define YY_EXTRA_TYPE void * 09670 #endif 09671 09672 static int yy_init_globals (void ); 09673 09674 /* Macros after this point can all be overridden by user definitions in 09675 * section 1. 09676 */ 09677 09678 #ifndef YY_SKIP_YYWRAP 09679 #ifdef __cplusplus 09680 extern "C" int codeYYwrap (void ); 09681 #else 09682 extern int codeYYwrap (void ); 09683 #endif 09684 #endif 09685 09686 static void yyunput (int c,char *buf_ptr ); 09687 09688 #ifndef yytext_ptr 09689 static void yy_flex_strncpy (char *,yyconst char *,int ); 09690 #endif 09691 09692 #ifdef YY_NEED_STRLEN 09693 static int yy_flex_strlen (yyconst char * ); 09694 #endif 09695 09696 #ifndef YY_NO_INPUT 09697 09698 #ifdef __cplusplus 09699 static int yyinput (void ); 09700 #else 09701 static int input (void ); 09702 #endif 09703 09704 #endif 09705 09706 /* Amount of stuff to slurp up with each read. */ 09707 #ifndef YY_READ_BUF_SIZE 09708 #define YY_READ_BUF_SIZE 8192 09709 #endif 09710 09711 /* Copy whatever the last rule matched to the standard output. */ 09712 #ifndef ECHO 09713 /* This used to be an fputs(), but since the string might contain NUL's, 09714 * we now use fwrite(). 09715 */ 09716 #define ECHO (void) fwrite( codeYYtext, codeYYleng, 1, codeYYout ) 09717 #endif 09718 09719 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 09720 * is returned in "result". 09721 */ 09722 #ifndef YY_INPUT 09723 #define YY_INPUT(buf,result,max_size) \ 09724 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 09725 { \ 09726 int c = '*'; \ 09727 size_t n; \ 09728 for ( n = 0; n < max_size && \ 09729 (c = getc( codeYYin )) != EOF && c != '\n'; ++n ) \ 09730 buf[n] = (char) c; \ 09731 if ( c == '\n' ) \ 09732 buf[n++] = (char) c; \ 09733 if ( c == EOF && ferror( codeYYin ) ) \ 09734 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 09735 result = n; \ 09736 } \ 09737 else \ 09738 { \ 09739 errno=0; \ 09740 while ( (result = fread(buf, 1, max_size, codeYYin))==0 && ferror(codeYYin)) \ 09741 { \ 09742 if( errno != EINTR) \ 09743 { \ 09744 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 09745 break; \ 09746 } \ 09747 errno=0; \ 09748 clearerr(codeYYin); \ 09749 } \ 09750 }\ 09751 \ 09752 09753 #endif 09754 09755 /* No semi-colon after return; correct usage is to write "yyterminate();" - 09756 * we don't want an extra ';' after the "return" because that will cause 09757 * some compilers to complain about unreachable statements. 09758 */ 09759 #ifndef yyterminate 09760 #define yyterminate() return YY_NULL 09761 #endif 09762 09763 /* Number of entries by which start-condition stack grows. */ 09764 #ifndef YY_START_STACK_INCR 09765 #define YY_START_STACK_INCR 25 09766 #endif 09767 09768 /* Report a fatal error. */ 09769 #ifndef YY_FATAL_ERROR 09770 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 09771 #endif 09772 09773 /* end tables serialization structures and prototypes */ 09774 09775 /* Default declaration of generated scanner - a define so the user can 09776 * easily add parameters. 09777 */ 09778 #ifndef YY_DECL 09779 #define YY_DECL_IS_OURS 1 09780 09781 extern int codeYYlex (void); 09782 09783 #define YY_DECL int codeYYlex (void) 09784 #endif /* !YY_DECL */ 09785 09786 /* Code executed at the beginning of each rule, after codeYYtext and codeYYleng 09787 * have been set up. 09788 */ 09789 #ifndef YY_USER_ACTION 09790 #define YY_USER_ACTION 09791 #endif 09792 09793 /* Code executed at the end of each rule. */ 09794 #ifndef YY_BREAK 09795 #define YY_BREAK break; 09796 #endif 09797 09798 #define YY_RULE_SETUP \ 09799 if ( codeYYleng > 0 ) \ 09800 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ 09801 (codeYYtext[codeYYleng - 1] == '\n'); \ 09802 YY_USER_ACTION 09803 09806 YY_DECL 09807 { 09808 register yy_state_type yy_current_state; 09809 register char *yy_cp, *yy_bp; 09810 register int yy_act; 09811 09812 #line 1699 "code.l" 09813 09814 09815 #line 9816 "<stdout>" 09816 09817 if ( !(yy_init) ) 09818 { 09819 (yy_init) = 1; 09820 09821 #ifdef YY_USER_INIT 09822 YY_USER_INIT; 09823 #endif 09824 09825 /* Create the reject buffer large enough to save one state per allowed character. */ 09826 if ( ! (yy_state_buf) ) 09827 (yy_state_buf) = (yy_state_type *)codeYYalloc(YY_STATE_BUF_SIZE ); 09828 09829 if ( ! (yy_start) ) 09830 (yy_start) = 1; /* first start state */ 09831 09832 if ( ! codeYYin ) 09833 codeYYin = stdin; 09834 09835 if ( ! codeYYout ) 09836 codeYYout = stdout; 09837 09838 if ( ! YY_CURRENT_BUFFER ) { 09839 codeYYensure_buffer_stack (); 09840 YY_CURRENT_BUFFER_LVALUE = 09841 codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); 09842 } 09843 09844 codeYY_load_buffer_state( ); 09845 } 09846 09847 while ( 1 ) /* loops until end-of-file is reached */ 09848 { 09849 yy_cp = (yy_c_buf_p); 09850 09851 /* Support of codeYYtext. */ 09852 *yy_cp = (yy_hold_char); 09853 09854 /* yy_bp points to the position in yy_ch_buf of the start of 09855 * the current run. 09856 */ 09857 yy_bp = yy_cp; 09858 09859 yy_current_state = (yy_start); 09860 yy_current_state += YY_AT_BOL(); 09861 09862 (yy_state_ptr) = (yy_state_buf); 09863 *(yy_state_ptr)++ = yy_current_state; 09864 09865 yy_match: 09866 do 09867 { 09868 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 09869 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 09870 { 09871 yy_current_state = (int) yy_def[yy_current_state]; 09872 if ( yy_current_state >= 2975 ) 09873 yy_c = yy_meta[(unsigned int) yy_c]; 09874 } 09875 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 09876 *(yy_state_ptr)++ = yy_current_state; 09877 ++yy_cp; 09878 } 09879 while ( yy_base[yy_current_state] != 26042 ); 09880 09881 yy_find_action: 09882 yy_current_state = *--(yy_state_ptr); 09883 (yy_lp) = yy_accept[yy_current_state]; 09884 find_rule: /* we branch to this label when backing up */ 09885 for ( ; ; ) /* until we find what rule we matched */ 09886 { 09887 if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] ) 09888 { 09889 yy_act = yy_acclist[(yy_lp)]; 09890 if ( yy_act & YY_TRAILING_HEAD_MASK || 09891 yy_looking_for_trail_begin ) 09892 { 09893 if ( yy_act == yy_looking_for_trail_begin ) 09894 { 09895 yy_looking_for_trail_begin = 0; 09896 yy_act &= ~YY_TRAILING_HEAD_MASK; 09897 break; 09898 } 09899 } 09900 else if ( yy_act & YY_TRAILING_MASK ) 09901 { 09902 yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK; 09903 yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK; 09904 (yy_full_match) = yy_cp; 09905 yy_full_state = (yy_state_ptr); 09906 yy_full_lp = (yy_lp); 09907 } 09908 else 09909 { 09910 (yy_full_match) = yy_cp; 09911 yy_full_state = (yy_state_ptr); 09912 yy_full_lp = (yy_lp); 09913 break; 09914 } 09915 ++(yy_lp); 09916 goto find_rule; 09917 } 09918 --yy_cp; 09919 yy_current_state = *--(yy_state_ptr); 09920 (yy_lp) = yy_accept[yy_current_state]; 09921 } 09922 09923 YY_DO_BEFORE_ACTION; 09924 09925 do_action: /* This label is used only to access EOF actions. */ 09926 09927 switch ( yy_act ) 09928 { /* beginning of action switch */ 09929 case 1: 09930 YY_RULE_SETUP 09931 #line 1701 "code.l" 09932 09933 YY_BREAK 09934 case 2: 09935 YY_RULE_SETUP 09936 #line 1702 "code.l" 09937 { 09938 startFontClass("preprocessor"); 09939 g_code->codify(codeYYtext); 09940 BEGIN( ReadInclude ); 09941 } 09942 YY_BREAK 09943 case 3: 09944 /* rule 3 can match eol */ 09945 YY_RULE_SETUP 09946 #line 1707 "code.l" 09947 { 09948 g_insideObjC=TRUE; 09949 startFontClass("keyword"); 09950 codifyLines(codeYYtext); 09951 endFontClass(); 09952 if (!g_insideTemplate) 09953 BEGIN( ClassName ); 09954 } 09955 YY_BREAK 09956 case 4: 09957 YY_RULE_SETUP 09958 #line 1715 "code.l" 09959 { 09960 if (g_insideTemplate) REJECT; 09961 startFontClass("keyword"); 09962 codifyLines(codeYYtext); 09963 endFontClass(); 09964 BEGIN( ClassName ); 09965 } 09966 YY_BREAK 09967 case 5: 09968 /* rule 5 can match eol */ 09969 YY_RULE_SETUP 09970 #line 1722 "code.l" 09971 { 09972 if (g_insideTemplate) REJECT; 09973 startFontClass("keyword"); 09974 codifyLines(codeYYtext); 09975 endFontClass(); 09976 } 09977 YY_BREAK 09978 case 6: 09979 YY_RULE_SETUP 09980 #line 1728 "code.l" 09981 { 09982 startFontClass("keyword"); 09983 codifyLines(codeYYtext); 09984 endFontClass(); 09985 if (!g_insideTemplate) 09986 BEGIN( ClassName ); 09987 } 09988 YY_BREAK 09989 case 7: 09990 /* rule 7 can match eol */ 09991 YY_RULE_SETUP 09992 #line 1735 "code.l" 09993 { 09994 startFontClass("keyword"); 09995 codifyLines(codeYYtext); 09996 endFontClass(); 09997 BEGIN( PackageName ); 09998 } 09999 YY_BREAK 10000 case 8: 10001 /* rule 8 can match eol */ 10002 YY_RULE_SETUP 10003 #line 1741 "code.l" 10004 { 10005 if (!g_insideObjC) REJECT; 10006 codifyLines(codeYYtext); 10007 BEGIN(Body); 10008 } 10009 YY_BREAK 10010 case 9: 10011 YY_RULE_SETUP 10012 #line 1746 "code.l" 10013 { 10014 if (!g_insideObjC || g_insideBody) 10015 { 10016 g_code->codify(codeYYtext); 10017 } 10018 else // Start of Objective-C method 10019 { 10020 //printf("Method!\n"); 10021 g_code->codify(codeYYtext); 10022 BEGIN(ObjCMethod); 10023 } 10024 } 10025 YY_BREAK 10026 case 10: 10027 YY_RULE_SETUP 10028 #line 1758 "code.l" 10029 { 10030 g_code->codify(codeYYtext); 10031 BEGIN(ObjCParams); 10032 } 10033 YY_BREAK 10034 case 11: 10035 YY_RULE_SETUP 10036 #line 1762 "code.l" 10037 { 10038 g_code->codify(codeYYtext); 10039 BEGIN(ObjCParamType); 10040 } 10041 YY_BREAK 10042 case 12: 10043 YY_RULE_SETUP 10044 #line 1766 "code.l" 10045 { 10046 g_code->codify(codeYYtext); 10047 if (*codeYYtext=='{') 10048 { 10049 g_curlyCount++; 10050 if (g_searchingForBody) 10051 { 10052 g_searchingForBody=FALSE; 10053 g_insideBody=TRUE; 10054 } 10055 if (g_insideBody) g_bodyCurlyCount++; 10056 if (!g_curClassName.isEmpty()) // valid class name 10057 { 10058 pushScope(g_curClassName); 10059 DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n")); 10060 g_scopeStack.push(SCOPEBLOCK); 10061 } 10062 } 10063 g_type.resize(0); 10064 g_name.resize(0); 10065 BEGIN(Body); 10066 } 10067 YY_BREAK 10068 case 13: 10069 YY_RULE_SETUP 10070 #line 1788 "code.l" 10071 { 10072 g_code->codify(codeYYtext); 10073 } 10074 YY_BREAK 10075 case 14: 10076 YY_RULE_SETUP 10077 #line 1791 "code.l" 10078 { 10079 startFontClass("keywordtype"); 10080 g_code->codify(codeYYtext); 10081 endFontClass(); 10082 g_parmType=codeYYtext; 10083 } 10084 YY_BREAK 10085 case 15: 10086 YY_RULE_SETUP 10087 #line 1797 "code.l" 10088 { 10089 generateClassOrGlobalLink(*g_code,codeYYtext); 10090 g_parmType=codeYYtext; 10091 } 10092 YY_BREAK 10093 case 16: 10094 YY_RULE_SETUP 10095 #line 1801 "code.l" 10096 { 10097 g_code->codify(codeYYtext); 10098 BEGIN(ObjCParams); 10099 } 10100 YY_BREAK 10101 case 17: 10102 YY_RULE_SETUP 10103 #line 1805 "code.l" 10104 { 10105 g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, 10106 g_currentMemberDef?g_currentMemberDef:g_currentDefinition); 10107 g_code->codify(codeYYtext); 10108 g_parmName=codeYYtext; 10109 g_theVarContext.addVariable(g_parmType,g_parmName); 10110 g_parmType.resize(0);g_parmName.resize(0); 10111 } 10112 YY_BREAK 10113 case 18: 10114 YY_RULE_SETUP 10115 #line 1813 "code.l" 10116 { 10117 generateClassOrGlobalLink(*g_code,codeYYtext); 10118 } 10119 YY_BREAK 10120 case 19: 10121 YY_RULE_SETUP 10122 #line 1816 "code.l" 10123 { 10124 g_code->codify(codeYYtext); 10125 } 10126 YY_BREAK 10127 case 20: 10128 /* rule 20 can match eol */ 10129 YY_RULE_SETUP 10130 #line 1819 "code.l" 10131 { 10132 codifyLines(codeYYtext); 10133 } 10134 YY_BREAK 10135 case 21: 10136 YY_RULE_SETUP 10137 #line 1822 "code.l" 10138 { 10139 //FileInfo *f; 10140 bool ambig; 10141 bool found=FALSE; 10142 FileDef *fd=0; 10143 //printf("looking for include %s\n",codeYYtext); 10144 if ((fd=findFileDef(Doxygen::inputNameDict,codeYYtext,ambig)) && 10145 fd->isLinkable()) 10146 { 10147 if (ambig) // multiple input files match the name 10148 { 10149 //printf("===== yes %s is ambigious\n",codeYYtext); 10150 QCString name = convertToQCString(QDir::cleanDirPath(codeYYtext)); 10151 if (!name.isEmpty() && g_sourceFileDef) 10152 { 10153 FileName *fn = Doxygen::inputNameDict->find(name); 10154 if (fn) 10155 { 10156 FileNameIterator fni(*fn); 10157 // for each include name 10158 for (fni.toFirst();!found && (fd=fni.current());++fni) 10159 { 10160 // see if this source file actually includes the file 10161 found = g_sourceFileDef->isIncluded(fd->absFilePath()); 10162 //printf(" include file %s found=%d\n",fd->absFilePath().data(),found); 10163 } 10164 } 10165 } 10166 } 10167 else // not ambiguous 10168 { 10169 found = TRUE; 10170 } 10171 } 10172 if (found) 10173 { 10174 //printf(" include file %s found=%d\n",fd->absFilePath().data(),found); 10175 g_code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,codeYYtext,fd->briefDescriptionAsTooltip()); 10176 } 10177 else 10178 { 10179 g_code->codify(codeYYtext); 10180 } 10181 char c=yyinput(); 10182 QCString text; 10183 text+=c; 10184 g_code->codify(text); 10185 endFontClass(); 10186 BEGIN( Body ); 10187 } 10188 YY_BREAK 10189 case 22: 10190 YY_RULE_SETUP 10191 #line 1872 "code.l" 10192 { 10193 startFontClass("preprocessor"); 10194 g_lastSkipCppContext = YY_START; 10195 g_code->codify(codeYYtext); 10196 BEGIN( SkipCPP ) ; 10197 } 10198 YY_BREAK 10199 case 23: 10200 YY_RULE_SETUP 10201 #line 1878 "code.l" 10202 { 10203 g_code->codify(codeYYtext); 10204 } 10205 YY_BREAK 10206 case 24: 10207 /* rule 24 can match eol */ 10208 YY_RULE_SETUP 10209 #line 1881 "code.l" 10210 { 10211 codifyLines(codeYYtext); 10212 } 10213 YY_BREAK 10214 case 25: 10215 YY_RULE_SETUP 10216 #line 1884 "code.l" 10217 { 10218 g_code->codify(codeYYtext); 10219 } 10220 YY_BREAK 10221 case 26: 10222 YY_RULE_SETUP 10223 #line 1887 "code.l" 10224 { 10225 g_theVarContext.pushScope(); 10226 10227 DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); 10228 g_scopeStack.push(INNERBLOCK); 10229 10230 if (g_searchingForBody) 10231 { 10232 g_searchingForBody=FALSE; 10233 g_insideBody=TRUE; 10234 } 10235 g_code->codify(codeYYtext); 10236 g_curlyCount++; 10237 if (g_insideBody) 10238 { 10239 g_bodyCurlyCount++; 10240 } 10241 g_type.resize(0); 10242 g_name.resize(0); 10243 BEGIN( Body ); 10244 } 10245 YY_BREAK 10246 case 27: 10247 YY_RULE_SETUP 10248 #line 1908 "code.l" 10249 { 10250 g_theVarContext.popScope(); 10251 g_type.resize(0); 10252 g_name.resize(0); 10253 10254 int *scope = g_scopeStack.pop(); 10255 DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK)); 10256 if (scope==SCOPEBLOCK || scope==CLASSBLOCK) 10257 { 10258 popScope(); 10259 } 10260 10261 g_code->codify(codeYYtext); 10262 10263 //fprintf(stderr,"g_bodyCurlyCount=%d\n",g_bodyCurlyCount); 10264 if (--g_bodyCurlyCount<=0) 10265 { 10266 g_insideBody=FALSE; 10267 g_currentMemberDef=0; 10268 if (g_currentDefinition) 10269 g_currentDefinition=g_currentDefinition->getOuterScope(); 10270 } 10271 BEGIN(Body); 10272 } 10273 YY_BREAK 10274 case 28: 10275 YY_RULE_SETUP 10276 #line 1932 "code.l" 10277 { 10278 //printf("End of objc scope fd=%s\n",g_sourceFileDef->name().data()); 10279 if (g_sourceFileDef) 10280 { 10281 FileDef *fd=g_sourceFileDef; 10282 g_insideObjC = fd->name().lower().right(2)==".m" || 10283 fd->name().lower().right(3)==".mm"; 10284 //printf("insideObjC=%d\n",g_insideObjC); 10285 } 10286 else 10287 { 10288 g_insideObjC = FALSE; 10289 } 10290 if (g_insideBody) 10291 { 10292 g_theVarContext.popScope(); 10293 10294 int *scope = g_scopeStack.pop(); 10295 DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK)); 10296 if (scope==SCOPEBLOCK || scope==CLASSBLOCK) 10297 { 10298 popScope(); 10299 } 10300 g_insideBody=FALSE; 10301 } 10302 10303 startFontClass("keyword"); 10304 g_code->codify(codeYYtext); 10305 endFontClass(); 10306 10307 g_currentMemberDef=0; 10308 if (g_currentDefinition) 10309 g_currentDefinition=g_currentDefinition->getOuterScope(); 10310 BEGIN(Body); 10311 } 10312 YY_BREAK 10313 case 29: 10314 YY_RULE_SETUP 10315 #line 1967 "code.l" 10316 { 10317 g_code->codify(codeYYtext); 10318 g_searchingForBody=FALSE; 10319 BEGIN( Body ); 10320 } 10321 YY_BREAK 10322 case 30: 10323 YY_RULE_SETUP 10324 #line 1972 "code.l" 10325 { 10326 g_type=g_curClassName.copy(); 10327 g_name.resize(0); 10328 g_code->codify(codeYYtext); 10329 BEGIN( Body ); // variable of type struct * 10330 } 10331 YY_BREAK 10332 case 31: 10333 YY_RULE_SETUP 10334 #line 1978 "code.l" 10335 { 10336 startFontClass("keyword"); 10337 g_code->codify(codeYYtext); 10338 endFontClass(); 10339 } 10340 YY_BREAK 10341 case 32: 10342 YY_RULE_SETUP 10343 #line 1983 "code.l" 10344 { 10345 g_curClassName=codeYYtext; 10346 addType(); 10347 generateClassOrGlobalLink(*g_code,codeYYtext); 10348 BEGIN( ClassVar ); 10349 } 10350 YY_BREAK 10351 case 33: 10352 YY_RULE_SETUP 10353 #line 1989 "code.l" 10354 { 10355 g_curClassName=codeYYtext; 10356 g_curClassName=substitute(g_curClassName,".","::"); 10357 //printf("found package: %s\n",g_curClassName.data()); 10358 addType(); 10359 codifyLines(codeYYtext); 10360 } 10361 YY_BREAK 10362 case 34: 10363 YY_RULE_SETUP 10364 #line 1996 "code.l" 10365 { 10366 unput(*codeYYtext); 10367 BEGIN( Body ); 10368 } 10369 YY_BREAK 10370 case 35: 10371 YY_RULE_SETUP 10372 #line 2000 "code.l" 10373 { // Java 10374 startFontClass("keyword"); 10375 codifyLines(codeYYtext); 10376 endFontClass(); 10377 g_curClassBases.clear(); 10378 BEGIN( Bases ); 10379 } 10380 YY_BREAK 10381 case 36: 10382 /* rule 36 can match eol */ 10383 YY_RULE_SETUP 10384 #line 2007 "code.l" 10385 { 10386 //fprintf(stderr,"***** C++/CLI modifier %s on g_curClassName=%s\n",codeYYtext,g_curClassName.data()); 10387 startFontClass("keyword"); 10388 codifyLines(codeYYtext); 10389 endFontClass(); 10390 BEGIN( CppCliTypeModifierFollowup ); 10391 } 10392 YY_BREAK 10393 case 37: 10394 YY_RULE_SETUP 10395 #line 2014 "code.l" 10396 { 10397 g_type = g_curClassName.copy(); 10398 g_name = codeYYtext; 10399 if (g_insideBody) 10400 { 10401 g_theVarContext.addVariable(g_type,g_name); 10402 } 10403 generateClassOrGlobalLink(*g_code,codeYYtext); 10404 } 10405 YY_BREAK 10406 case 38: 10407 YY_RULE_SETUP 10408 #line 2023 "code.l" 10409 { 10410 codifyLines(codeYYtext); 10411 g_curClassBases.clear(); 10412 BEGIN( Bases ); 10413 } 10414 YY_BREAK 10415 case 39: 10416 #line 2029 "code.l" 10417 case 40: 10418 YY_RULE_SETUP 10419 #line 2029 "code.l" 10420 { 10421 g_theVarContext.pushScope(); 10422 g_code->codify(codeYYtext); 10423 g_curlyCount++; 10424 if (YY_START==ClassVar && g_curClassName.isEmpty()) 10425 { 10426 g_curClassName = g_name.copy(); 10427 } 10428 if (g_searchingForBody) 10429 { 10430 g_searchingForBody=FALSE; 10431 g_insideBody=TRUE; 10432 } 10433 if (g_insideBody) g_bodyCurlyCount++; 10434 if (!g_curClassName.isEmpty()) // valid class name 10435 { 10436 DBG_CTX((stderr,"** scope stack push CLASSBLOCK\n")); 10437 g_scopeStack.push(CLASSBLOCK); 10438 pushScope(g_curClassName); 10439 //fprintf(stderr,"***** g_curClassName=%s\n",g_curClassName.data()); 10440 if (getResolvedClass(g_currentDefinition,g_sourceFileDef,g_curClassName)==0) 10441 { 10442 //printf("Adding new class %s\n",g_curClassName.data()); 10443 ClassDef *ncd=new ClassDef("<code>",1, 10444 g_curClassName,ClassDef::Class,0,0,FALSE); 10445 g_codeClassSDict->append(g_curClassName,ncd); 10446 // insert base classes. 10447 char *s=g_curClassBases.first(); 10448 while (s) 10449 { 10450 ClassDef *bcd; 10451 bcd=g_codeClassSDict->find(s); 10452 if (bcd==0) bcd=getResolvedClass(g_currentDefinition,g_sourceFileDef,s); 10453 if (bcd && bcd!=ncd) 10454 { 10455 ncd->insertBaseClass(bcd,s,Public,Normal); 10456 } 10457 s=g_curClassBases.next(); 10458 } 10459 } 10460 //printf("g_codeClassList.count()=%d\n",g_codeClassList.count()); 10461 } 10462 else // not a class name -> assume inner block 10463 { 10464 DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); 10465 g_scopeStack.push(INNERBLOCK); 10466 } 10467 g_curClassName.resize(0); 10468 g_curClassBases.clear(); 10469 BEGIN( Body ); 10470 } 10471 YY_BREAK 10472 case 41: 10473 YY_RULE_SETUP 10474 #line 2080 "code.l" 10475 { 10476 startFontClass("keyword"); 10477 g_code->codify(codeYYtext); 10478 endFontClass(); 10479 } 10480 YY_BREAK 10481 case 42: 10482 YY_RULE_SETUP 10483 #line 2085 "code.l" 10484 { 10485 //printf("%s:addBase(%s)\n",g_ccd.name.data(),codeYYtext); 10486 g_curClassBases.inSort(codeYYtext); 10487 generateClassOrGlobalLink(*g_code,codeYYtext); 10488 } 10489 YY_BREAK 10490 case 43: 10491 YY_RULE_SETUP 10492 #line 2090 "code.l" 10493 { 10494 g_code->codify(codeYYtext); 10495 if (!g_insideObjC) 10496 { 10497 g_sharpCount=1; 10498 BEGIN ( SkipSharp ); 10499 } 10500 else 10501 { 10502 g_insideProtocolList=TRUE; 10503 } 10504 } 10505 YY_BREAK 10506 case 44: 10507 YY_RULE_SETUP 10508 #line 2102 "code.l" 10509 { 10510 g_code->codify(codeYYtext); 10511 g_insideProtocolList=FALSE; 10512 } 10513 YY_BREAK 10514 case 45: 10515 YY_RULE_SETUP 10516 #line 2106 "code.l" 10517 { 10518 g_code->codify(codeYYtext); 10519 ++g_sharpCount; 10520 } 10521 YY_BREAK 10522 case 46: 10523 YY_RULE_SETUP 10524 #line 2110 "code.l" 10525 { 10526 g_code->codify(codeYYtext); 10527 if (--g_sharpCount<=0) 10528 BEGIN ( Bases ); 10529 } 10530 YY_BREAK 10531 case 47: 10532 YY_RULE_SETUP 10533 #line 2115 "code.l" 10534 { 10535 g_code->codify(codeYYtext); 10536 g_sharpCount=1; 10537 BEGIN ( SkipSharp ); 10538 } 10539 YY_BREAK 10540 case 48: 10541 YY_RULE_SETUP 10542 #line 2120 "code.l" 10543 { 10544 g_code->codify(codeYYtext); 10545 ++g_sharpCount; 10546 } 10547 YY_BREAK 10548 case 49: 10549 YY_RULE_SETUP 10550 #line 2124 "code.l" 10551 { 10552 g_code->codify(codeYYtext); 10553 if (--g_sharpCount<=0) 10554 BEGIN ( Bases ); 10555 } 10556 YY_BREAK 10557 case 50: 10558 YY_RULE_SETUP 10559 #line 2131 "code.l" 10560 { 10561 g_code->codify(codeYYtext); 10562 } 10563 YY_BREAK 10564 case 51: 10565 /* rule 51 can match eol */ 10566 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10567 (yy_c_buf_p) = yy_cp -= 1; 10568 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10569 YY_RULE_SETUP 10570 #line 2136 "code.l" 10571 { 10572 addType(); 10573 generateFunctionLink(*g_code,codeYYtext); 10574 g_bracketCount=0; 10575 g_args.resize(0); 10576 g_name+=codeYYtext; 10577 BEGIN( FuncCall ); 10578 } 10579 YY_BREAK 10580 case 52: 10581 /* rule 52 can match eol */ 10582 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10583 (yy_c_buf_p) = yy_cp -= 1; 10584 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10585 YY_RULE_SETUP 10586 #line 2144 "code.l" 10587 { 10588 addType(); 10589 generateFunctionLink(*g_code,codeYYtext); 10590 g_bracketCount=0; 10591 g_args.resize(0); 10592 g_name+=codeYYtext; 10593 BEGIN( FuncCall ); 10594 } 10595 YY_BREAK 10596 case 53: 10597 /* rule 53 can match eol */ 10598 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10599 (yy_c_buf_p) = yy_cp -= 1; 10600 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10601 YY_RULE_SETUP 10602 #line 2152 "code.l" 10603 { 10604 startFontClass("keyword"); 10605 codifyLines(codeYYtext); 10606 endFontClass(); 10607 g_insideTemplate=TRUE; 10608 g_sharpCount=0; 10609 } 10610 YY_BREAK 10611 case 54: 10612 /* rule 54 can match eol */ 10613 YY_RULE_SETUP 10614 #line 2159 "code.l" 10615 { 10616 startFontClass("keyword"); 10617 codifyLines(codeYYtext); 10618 endFontClass(); 10619 BEGIN(UsingName); 10620 } 10621 YY_BREAK 10622 case 55: 10623 YY_RULE_SETUP 10624 #line 2165 "code.l" 10625 { addUsingDirective(codeYYtext); 10626 generateClassOrGlobalLink(*g_code,codeYYtext); 10627 BEGIN(Body); 10628 } 10629 YY_BREAK 10630 case 56: 10631 /* rule 56 can match eol */ 10632 YY_RULE_SETUP 10633 #line 2169 "code.l" 10634 { codifyLines(codeYYtext); BEGIN(Body); } 10635 YY_BREAK 10636 case 57: 10637 YY_RULE_SETUP 10638 #line 2170 "code.l" 10639 { codifyLines(codeYYtext); BEGIN(Body); } 10640 YY_BREAK 10641 case 58: 10642 /* rule 58 can match eol */ 10643 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10644 (yy_c_buf_p) = yy_cp -= 1; 10645 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10646 YY_RULE_SETUP 10647 #line 2171 "code.l" 10648 { 10649 startFontClass("keyword"); 10650 codifyLines(codeYYtext); 10651 if (QCString(codeYYtext)=="typedef") 10652 { 10653 addType(); 10654 g_name+=codeYYtext; 10655 } 10656 endFontClass(); 10657 } 10658 YY_BREAK 10659 case 59: 10660 YY_RULE_SETUP 10661 #line 2181 "code.l" 10662 { 10663 startFontClass("keyword"); 10664 codifyLines(codeYYtext); 10665 endFontClass(); 10666 } 10667 YY_BREAK 10668 case 60: 10669 /* rule 60 can match eol */ 10670 YY_RULE_SETUP 10671 #line 2186 "code.l" 10672 { 10673 startFontClass("keyword"); 10674 codifyLines(codeYYtext); 10675 endFontClass(); 10676 g_name.resize(0);g_type.resize(0); 10677 } 10678 YY_BREAK 10679 case 61: 10680 /* rule 61 can match eol */ 10681 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10682 (yy_c_buf_p) = yy_cp = yy_bp + 2; 10683 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10684 YY_RULE_SETUP 10685 #line 2192 "code.l" 10686 { 10687 if (!g_inForEachExpression) REJECT; 10688 startFontClass("keywordflow"); 10689 codifyLines(codeYYtext); 10690 endFontClass(); 10691 g_name.resize(0);g_type.resize(0); 10692 } 10693 YY_BREAK 10694 case 62: 10695 /* rule 62 can match eol */ 10696 YY_RULE_SETUP 10697 #line 2199 "code.l" 10698 { 10699 startFontClass("keywordflow"); 10700 codifyLines(codeYYtext); 10701 endFontClass(); 10702 g_name.resize(0);g_type.resize(0); 10703 g_inForEachExpression = (strcmp(codeYYtext,"for each")==0 || strcmp(codeYYtext, "foreach")==0); 10704 BEGIN(FuncCall); 10705 } 10706 YY_BREAK 10707 case 63: 10708 /* rule 63 can match eol */ 10709 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10710 (yy_c_buf_p) = yy_cp -= 1; 10711 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10712 YY_RULE_SETUP 10713 #line 2207 "code.l" 10714 { 10715 startFontClass("keywordflow"); 10716 codifyLines(codeYYtext); 10717 endFontClass(); 10718 if (g_inFunctionTryBlock && (strcmp(codeYYtext,"catch")==0 || strcmp(codeYYtext,"finally")==0)) 10719 { 10720 g_inFunctionTryBlock=FALSE; 10721 } 10722 } 10723 YY_BREAK 10724 case 64: 10725 YY_RULE_SETUP 10726 #line 2216 "code.l" 10727 { 10728 startFontClass("keywordflow"); 10729 codifyLines(codeYYtext); 10730 endFontClass(); 10731 } 10732 YY_BREAK 10733 case 65: 10734 YY_RULE_SETUP 10735 #line 2221 "code.l" 10736 { 10737 g_code->codify(codeYYtext); 10738 g_name.resize(0);g_type.resize(0); 10739 if (*codeYYtext==')') 10740 { 10741 g_theCallContext.popScope(); 10742 g_bracketCount--; 10743 BEGIN(FuncCall); 10744 } 10745 } 10746 YY_BREAK 10747 case 66: 10748 YY_RULE_SETUP 10749 #line 2231 "code.l" 10750 { 10751 startFontClass("keywordtype"); 10752 g_code->codify(codeYYtext); 10753 endFontClass(); 10754 addType(); 10755 g_name+=codeYYtext; 10756 } 10757 YY_BREAK 10758 case 67: 10759 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10760 (yy_c_buf_p) = yy_cp = yy_bp + 7; 10761 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10762 YY_RULE_SETUP 10763 #line 2238 "code.l" 10764 { 10765 startFontClass("keyword"); 10766 g_code->codify(codeYYtext); 10767 endFontClass(); 10768 g_sharpCount=0; 10769 BEGIN(TemplDecl); 10770 } 10771 YY_BREAK 10772 case 68: 10773 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 10774 (yy_c_buf_p) = yy_cp = yy_bp + 8; 10775 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 10776 YY_RULE_SETUP 10777 #line 2245 "code.l" 10778 { // template<...> 10779 startFontClass("keyword"); 10780 g_code->codify(codeYYtext); 10781 endFontClass(); 10782 g_sharpCount=0; 10783 BEGIN(TemplDecl); 10784 } 10785 YY_BREAK 10786 case 69: 10787 YY_RULE_SETUP 10788 #line 2252 "code.l" 10789 { 10790 startFontClass("keyword"); 10791 codifyLines(codeYYtext); 10792 endFontClass(); 10793 } 10794 YY_BREAK 10795 case 70: 10796 YY_RULE_SETUP 10797 #line 2257 "code.l" 10798 { 10799 g_code->codify(codeYYtext); 10800 g_sharpCount++; 10801 } 10802 YY_BREAK 10803 case 71: 10804 YY_RULE_SETUP 10805 #line 2261 "code.l" 10806 { 10807 g_code->codify(codeYYtext); 10808 g_sharpCount--; 10809 if (g_sharpCount<=0) 10810 { 10811 BEGIN(Body); 10812 } 10813 } 10814 YY_BREAK 10815 case 72: 10816 YY_RULE_SETUP 10817 #line 2269 "code.l" 10818 { 10819 startFontClass("keyword"); 10820 codifyLines(codeYYtext); 10821 endFontClass(); 10822 BEGIN( g_lastTemplCastContext ); 10823 } 10824 YY_BREAK 10825 case 73: 10826 YY_RULE_SETUP 10827 #line 2275 "code.l" 10828 { 10829 generateClassOrGlobalLink(*g_code,codeYYtext); 10830 } 10831 YY_BREAK 10832 case 74: 10833 YY_RULE_SETUP 10834 #line 2278 "code.l" 10835 { 10836 startFontClass("keyword"); 10837 codifyLines(codeYYtext); 10838 endFontClass(); 10839 } 10840 YY_BREAK 10841 case 75: 10842 YY_RULE_SETUP 10843 #line 2283 "code.l" 10844 { 10845 codifyLines(codeYYtext); 10846 } 10847 YY_BREAK 10848 case 76: 10849 YY_RULE_SETUP 10850 #line 2286 "code.l" 10851 { // static_cast<T>( 10852 startFontClass("keyword"); 10853 codifyLines(codeYYtext); 10854 endFontClass(); 10855 g_lastTemplCastContext = YY_START; 10856 BEGIN(TemplCast); 10857 } 10858 YY_BREAK 10859 case 77: 10860 /* rule 77 can match eol */ 10861 YY_RULE_SETUP 10862 #line 2293 "code.l" 10863 { // A<T> *pt; 10864 int i=QCString(codeYYtext).find('<'); 10865 QCString kw = QCString(codeYYtext).left(i).stripWhiteSpace(); 10866 if (kw.right(5)=="_cast" && YY_START==Body) 10867 { 10868 REJECT; 10869 } 10870 addType(); 10871 generateClassOrGlobalLink(*g_code,codeYYtext); 10872 g_name+=codeYYtext; 10873 } 10874 YY_BREAK 10875 case 78: 10876 /* rule 78 can match eol */ 10877 YY_RULE_SETUP 10878 #line 2304 "code.l" 10879 { // "int var;" or "var, var2" or "debug(f) macro" 10880 addType(); 10881 generateClassOrGlobalLink(*g_code,codeYYtext/*,TRUE*/); 10882 g_name+=codeYYtext; 10883 } 10884 YY_BREAK 10885 case 79: 10886 /* rule 79 can match eol */ 10887 YY_RULE_SETUP 10888 #line 2309 "code.l" 10889 { // p->func() 10890 addType(); 10891 generateClassOrGlobalLink(*g_code,codeYYtext); 10892 g_name+=codeYYtext; 10893 } 10894 YY_BREAK 10895 case 80: 10896 /* rule 80 can match eol */ 10897 YY_RULE_SETUP 10898 #line 2314 "code.l" 10899 { // (*p)->func() but not "if (p) ..." 10900 g_code->codify(codeYYtext); 10901 int s=0;while (s<codeYYleng && !isId(codeYYtext[s])) s++; 10902 int e=codeYYleng-1;while (e>=0 && !isId(codeYYtext[e])) e--; 10903 QCString varname = ((QCString)codeYYtext).mid(s,e-s+1); 10904 addType(); 10905 g_name=varname; 10906 } 10907 YY_BREAK 10908 case 81: 10909 /* rule 81 can match eol */ 10910 YY_RULE_SETUP 10911 #line 2322 "code.l" 10912 { // a() or c::a() or t<A,B>::a() 10913 addType(); 10914 generateFunctionLink(*g_code,codeYYtext); 10915 //g_theVarContext.addVariable(g_type,codeYYtext); 10916 g_bracketCount=0; 10917 g_args.resize(0); 10918 g_name+=codeYYtext; 10919 BEGIN( FuncCall ); 10920 } 10921 YY_BREAK 10922 case 82: 10923 YY_RULE_SETUP 10924 #line 2331 "code.l" 10925 { 10926 startFontClass("stringliteral"); 10927 g_code->codify(codeYYtext); 10928 g_lastStringContext=YY_START; 10929 g_inForEachExpression = FALSE; 10930 BEGIN( SkipString ); 10931 } 10932 YY_BREAK 10933 case 83: 10934 YY_RULE_SETUP 10935 #line 2338 "code.l" 10936 { 10937 startFontClass("stringliteral"); 10938 g_code->codify(codeYYtext); 10939 g_lastStringContext=YY_START; 10940 g_inForEachExpression = FALSE; 10941 BEGIN( SkipStringS ); 10942 } 10943 YY_BREAK 10944 case 84: 10945 YY_RULE_SETUP 10946 #line 2345 "code.l" 10947 { 10948 g_code->codify(codeYYtext); 10949 } 10950 YY_BREAK 10951 case 85: 10952 YY_RULE_SETUP 10953 #line 2348 "code.l" 10954 { 10955 g_code->codify(codeYYtext); 10956 } 10957 YY_BREAK 10958 case 86: 10959 YY_RULE_SETUP 10960 #line 2351 "code.l" 10961 { 10962 g_code->codify(codeYYtext); 10963 } 10964 YY_BREAK 10965 case 87: 10966 YY_RULE_SETUP 10967 #line 2354 "code.l" 10968 { 10969 g_code->codify(codeYYtext); 10970 endFontClass(); 10971 BEGIN( g_lastStringContext ); 10972 } 10973 YY_BREAK 10974 case 88: 10975 YY_RULE_SETUP 10976 #line 2359 "code.l" 10977 { 10978 g_code->codify(codeYYtext); 10979 endFontClass(); 10980 BEGIN( g_lastStringContext ); 10981 } 10982 YY_BREAK 10983 case 89: 10984 YY_RULE_SETUP 10985 #line 2364 "code.l" 10986 { 10987 g_code->codify(codeYYtext); 10988 } 10989 YY_BREAK 10990 case 90: 10991 YY_RULE_SETUP 10992 #line 2367 "code.l" 10993 { 10994 g_code->codify(codeYYtext); 10995 } 10996 YY_BREAK 10997 case 91: 10998 YY_RULE_SETUP 10999 #line 2370 "code.l" 11000 { // escaped quote 11001 g_code->codify(codeYYtext); 11002 } 11003 YY_BREAK 11004 case 92: 11005 YY_RULE_SETUP 11006 #line 2373 "code.l" 11007 { // end of string 11008 g_code->codify(codeYYtext); 11009 endFontClass(); 11010 BEGIN( g_lastVerbStringContext ); 11011 } 11012 YY_BREAK 11013 case 93: 11014 YY_RULE_SETUP 11015 #line 2378 "code.l" 11016 { 11017 g_code->codify(codeYYtext); 11018 } 11019 YY_BREAK 11020 case 94: 11021 /* rule 94 can match eol */ 11022 YY_RULE_SETUP 11023 #line 2381 "code.l" 11024 { 11025 g_code->codify(codeYYtext); 11026 } 11027 YY_BREAK 11028 case 95: 11029 YY_RULE_SETUP 11030 #line 2384 "code.l" 11031 { 11032 g_code->codify(codeYYtext); 11033 g_name.resize(0);g_type.resize(0); 11034 } 11035 YY_BREAK 11036 case 96: 11037 YY_RULE_SETUP 11038 #line 2388 "code.l" 11039 { 11040 if (g_insideTemplate) 11041 { 11042 g_sharpCount++; 11043 } 11044 g_code->codify(codeYYtext); 11045 } 11046 YY_BREAK 11047 case 97: 11048 YY_RULE_SETUP 11049 #line 2395 "code.l" 11050 { 11051 if (g_insideTemplate) 11052 { 11053 if (--g_sharpCount<=0) 11054 { 11055 g_insideTemplate=FALSE; 11056 } 11057 } 11058 g_code->codify(codeYYtext); 11059 } 11060 YY_BREAK 11061 case 98: 11062 YY_RULE_SETUP 11063 #line 2405 "code.l" 11064 { 11065 startFontClass("charliteral"); 11066 g_code->codify(codeYYtext); 11067 endFontClass(); 11068 } 11069 YY_BREAK 11070 case 99: 11071 YY_RULE_SETUP 11072 #line 2410 "code.l" 11073 { g_code->codify(codeYYtext); } 11074 YY_BREAK 11075 case 100: 11076 YY_RULE_SETUP 11077 #line 2411 "code.l" 11078 { 11079 g_code->codify(codeYYtext); 11080 g_memCallContext = YY_START; 11081 BEGIN( MemberCall ); 11082 } 11083 YY_BREAK 11084 case 101: 11085 /* rule 101 can match eol */ 11086 YY_RULE_SETUP 11087 #line 2416 "code.l" 11088 { 11089 if (g_theCallContext.getClass()) 11090 { 11091 if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext)) 11092 { 11093 g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, 11094 g_currentMemberDef?g_currentMemberDef:g_currentDefinition); 11095 g_code->codify(codeYYtext); 11096 addToSearchIndex(codeYYtext); 11097 } 11098 g_name.resize(0); 11099 } 11100 else 11101 { 11102 g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, 11103 g_currentMemberDef?g_currentMemberDef:g_currentDefinition); 11104 g_code->codify(codeYYtext); 11105 addToSearchIndex(codeYYtext); 11106 g_name.resize(0); 11107 } 11108 g_type.resize(0); 11109 g_bracketCount=0; 11110 if (g_memCallContext==Body) 11111 { 11112 BEGIN(FuncCall); 11113 } 11114 else 11115 { 11116 BEGIN(g_memCallContext); 11117 } 11118 } 11119 YY_BREAK 11120 case 102: 11121 /* rule 102 can match eol */ 11122 YY_RULE_SETUP 11123 #line 2447 "code.l" 11124 { 11125 if (g_theCallContext.getClass()) 11126 { 11127 //fprintf(stderr,"g_theCallContext.getClass()=%p\n",g_theCallContext.getClass()); 11128 if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext)) 11129 { 11130 g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, 11131 g_currentMemberDef?g_currentMemberDef:g_currentDefinition); 11132 g_code->codify(codeYYtext); 11133 addToSearchIndex(codeYYtext); 11134 } 11135 g_name.resize(0); 11136 } 11137 else 11138 { 11139 //fprintf(stderr,"no class context!\n"); 11140 g_code->codify(codeYYtext); 11141 addToSearchIndex(codeYYtext); 11142 g_name.resize(0); 11143 } 11144 g_type.resize(0); 11145 BEGIN(g_memCallContext); 11146 } 11147 YY_BREAK 11148 case 103: 11149 YY_RULE_SETUP 11150 #line 2470 "code.l" 11151 { 11152 if (g_insideObjC && *codeYYtext=='[') 11153 { 11154 //printf("Found start of ObjC call!\n"); 11155 // start of a method call 11156 g_contextDict.setAutoDelete(TRUE); 11157 g_nameDict.setAutoDelete(TRUE); 11158 g_objectDict.setAutoDelete(TRUE); 11159 g_wordDict.setAutoDelete(TRUE); 11160 g_contextDict.clear(); 11161 g_nameDict.clear(); 11162 g_objectDict.clear(); 11163 g_wordDict.clear(); 11164 g_currentCtxId = 0; 11165 g_currentNameId = 0; 11166 g_currentObjId = 0; 11167 g_currentCtx = 0; 11168 g_braceCount = 0; 11169 unput('['); 11170 BEGIN(ObjCCall); 11171 } 11172 else 11173 { 11174 g_code->codify(codeYYtext); 11175 g_saveName = g_name.copy(); 11176 g_saveType = g_type.copy(); 11177 if (*codeYYtext!='[' && !g_type.isEmpty()) 11178 { 11179 //printf("g_scopeStack.bottom()=%p\n",g_scopeStack.bottom()); 11180 if (g_scopeStack.top()!=CLASSBLOCK) 11181 { 11182 //printf("AddVariable: '%s' '%s' context=%d\n", 11183 // g_type.data(),g_name.data(),g_theVarContext.count()); 11184 g_theVarContext.addVariable(g_type,g_name); 11185 } 11186 g_name.resize(0); 11187 } 11188 if (*codeYYtext==';' || *codeYYtext=='=') 11189 { 11190 g_type.resize(0); 11191 g_name.resize(0); 11192 } 11193 else if (*codeYYtext=='[') 11194 { 11195 g_theCallContext.pushScope(); 11196 } 11197 g_args.resize(0); 11198 g_parmType.resize(0); 11199 g_parmName.resize(0); 11200 } 11201 } 11202 YY_BREAK 11203 /* 11204 <ObjCMemberCall>{ID} { 11205 if (strcmp(codeYYtext,"self")==0 || strcmp(codeYYtext,"super")==0) 11206 { 11207 // TODO: get proper base class for "super" 11208 g_theCallContext.setClass(getClass(g_curClassName)); 11209 startFontClass("keyword"); 11210 g_code->codify(codeYYtext); 11211 endFontClass(); 11212 } 11213 else 11214 { 11215 generateClassOrGlobalLink(*g_code,codeYYtext); 11216 } 11217 g_name.resize(0); 11218 BEGIN(ObjCMemberCall2); 11219 } 11220 <ObjCMemberCall>"[" { 11221 g_code->codify(codeYYtext); 11222 g_theCallContext.pushScope(); 11223 } 11224 <ObjCMemberCall2>{ID}":"? { 11225 g_name+=codeYYtext; 11226 if (g_theCallContext.getClass()) 11227 { 11228 //printf("Calling method %s\n",g_name.data()); 11229 if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),g_name)) 11230 { 11231 g_code->codify(codeYYtext); 11232 addToSearchIndex(g_name); 11233 } 11234 } 11235 else 11236 { 11237 g_code->codify(codeYYtext); 11238 addToSearchIndex(g_name); 11239 } 11240 g_name.resize(0); 11241 BEGIN(ObjCMemberCall3); 11242 } 11243 <ObjCMemberCall2,ObjCMemberCall3>"]" { 11244 g_theCallContext.popScope(); 11245 g_code->codify(codeYYtext); 11246 BEGIN(Body); 11247 } 11248 */ 11249 case 104: 11250 YY_RULE_SETUP 11251 #line 2567 "code.l" 11252 { 11253 saveObjCContext(); 11254 g_currentCtx->format+=*codeYYtext; 11255 BEGIN(ObjCCall); 11256 //printf("open\n"); 11257 } 11258 YY_BREAK 11259 case 105: 11260 YY_RULE_SETUP 11261 #line 2573 "code.l" 11262 { 11263 g_currentCtx->format+=*codeYYtext; 11264 restoreObjCContext(); 11265 BEGIN(ObjCMName); 11266 if (g_currentCtx==0) 11267 { 11268 // end of call 11269 writeObjCMethodCall(g_contextDict.find(0)); 11270 BEGIN(Body); 11271 } 11272 //printf("close\n"); 11273 } 11274 YY_BREAK 11275 case 106: 11276 YY_RULE_SETUP 11277 #line 2585 "code.l" 11278 { 11279 g_currentCtx->format+=escapeObject(codeYYtext); 11280 if (g_braceCount==0) 11281 { 11282 g_currentCtx->objectTypeOrName=codeYYtext; 11283 //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data()); 11284 BEGIN(ObjCMName); 11285 } 11286 } 11287 YY_BREAK 11288 case 107: 11289 /* rule 107 can match eol */ 11290 YY_RULE_SETUP 11291 #line 2594 "code.l" 11292 { 11293 if (g_braceCount==0 && 11294 g_currentCtx->methodName.isEmpty()) 11295 { 11296 g_currentCtx->methodName=codeYYtext; 11297 g_currentCtx->format+=escapeName(codeYYtext); 11298 } 11299 else 11300 { 11301 g_currentCtx->format+=escapeWord(codeYYtext); 11302 } 11303 } 11304 YY_BREAK 11305 case 108: 11306 /* rule 108 can match eol */ 11307 YY_RULE_SETUP 11308 #line 2606 "code.l" 11309 { 11310 if (g_braceCount==0) 11311 { 11312 g_currentCtx->methodName+=codeYYtext; 11313 g_currentCtx->methodName+=":"; 11314 } 11315 g_currentCtx->format+=escapeName(codeYYtext); 11316 } 11317 YY_BREAK 11318 case 109: 11319 YY_RULE_SETUP 11320 #line 2614 "code.l" 11321 { g_currentCtx->format+=codeYYtext; } 11322 YY_BREAK 11323 case 110: 11324 YY_RULE_SETUP 11325 #line 2615 "code.l" 11326 { g_currentCtx->format+=codeYYtext; } 11327 YY_BREAK 11328 case 111: 11329 YY_RULE_SETUP 11330 #line 2616 "code.l" 11331 { g_currentCtx->format+=codeYYtext; 11332 BEGIN(g_lastStringContext); 11333 } 11334 YY_BREAK 11335 case 112: 11336 YY_RULE_SETUP 11337 #line 2619 "code.l" 11338 { g_currentCtx->format+=codeYYtext; } 11339 YY_BREAK 11340 case 113: 11341 YY_RULE_SETUP 11342 #line 2620 "code.l" 11343 { g_currentCtx->format+=codeYYtext; 11344 g_lastStringContext=YY_START; 11345 BEGIN(ObjCSkipStr); 11346 } 11347 YY_BREAK 11348 case 114: 11349 YY_RULE_SETUP 11350 #line 2624 "code.l" 11351 { g_currentCtx->format+="$$"; } 11352 YY_BREAK 11353 case 115: 11354 YY_RULE_SETUP 11355 #line 2625 "code.l" 11356 { g_currentCtx->format+=*codeYYtext; g_braceCount++; } 11357 YY_BREAK 11358 case 116: 11359 YY_RULE_SETUP 11360 #line 2626 "code.l" 11361 { g_currentCtx->format+=*codeYYtext; g_braceCount--; } 11362 YY_BREAK 11363 case 117: 11364 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 11365 (yy_c_buf_p) = yy_cp = yy_bp + 1; 11366 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 11367 YY_RULE_SETUP 11368 #line 2627 "code.l" 11369 { // needed to prevent matching the global rule (for C#) 11370 g_currentCtx->format+=codeYYtext; 11371 } 11372 YY_BREAK 11373 case 118: 11374 YY_RULE_SETUP 11375 #line 2630 "code.l" 11376 { g_currentCtx->format+=escapeWord(codeYYtext); } 11377 YY_BREAK 11378 case 119: 11379 YY_RULE_SETUP 11380 #line 2631 "code.l" 11381 { g_currentCtx->format+=*codeYYtext; } 11382 YY_BREAK 11383 case 120: 11384 /* rule 120 can match eol */ 11385 YY_RULE_SETUP 11386 #line 2632 "code.l" 11387 { g_currentCtx->format+=*codeYYtext; } 11388 YY_BREAK 11389 case 121: 11390 YY_RULE_SETUP 11391 #line 2634 "code.l" 11392 { 11393 g_theCallContext.popScope(); 11394 g_code->codify(codeYYtext); 11395 // TODO: nested arrays like: a[b[0]->func()]->func() 11396 g_name = g_saveName.copy(); 11397 g_type = g_saveType.copy(); 11398 } 11399 YY_BREAK 11400 case 122: 11401 YY_RULE_SETUP 11402 #line 2641 "code.l" 11403 { 11404 g_code->codify(codeYYtext); 11405 } 11406 YY_BREAK 11407 case 123: 11408 YY_RULE_SETUP 11409 #line 2644 "code.l" 11410 { 11411 g_code->codify(codeYYtext); 11412 } 11413 YY_BREAK 11414 case 124: 11415 /* rule 124 can match eol */ 11416 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 11417 (yy_c_buf_p) = yy_cp -= 1; 11418 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 11419 YY_RULE_SETUP 11420 #line 2647 "code.l" 11421 { 11422 //addParmType(); 11423 //g_parmName=codeYYtext; 11424 startFontClass("keyword"); 11425 g_code->codify(codeYYtext); 11426 endFontClass(); 11427 } 11428 YY_BREAK 11429 case 125: 11430 /* rule 125 can match eol */ 11431 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 11432 (yy_c_buf_p) = yy_cp -= 1; 11433 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 11434 YY_RULE_SETUP 11435 #line 2654 "code.l" 11436 { 11437 addParmType(); 11438 g_parmName=codeYYtext; 11439 startFontClass("keywordtype"); 11440 g_code->codify(codeYYtext); 11441 endFontClass(); 11442 } 11443 YY_BREAK 11444 case 126: 11445 /* rule 126 can match eol */ 11446 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 11447 (yy_c_buf_p) = yy_cp -= 1; 11448 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 11449 YY_RULE_SETUP 11450 #line 2661 "code.l" 11451 { 11452 addParmType(); 11453 g_parmName=codeYYtext; 11454 startFontClass("keywordflow"); 11455 g_code->codify(codeYYtext); 11456 endFontClass(); 11457 } 11458 YY_BREAK 11459 case 127: 11460 YY_RULE_SETUP 11461 #line 2668 "code.l" 11462 { 11463 addParmType(); 11464 g_parmName=codeYYtext; 11465 generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody); 11466 } 11467 YY_BREAK 11468 case 128: 11469 YY_RULE_SETUP 11470 #line 2673 "code.l" 11471 { // probably a cast, not a function call 11472 g_code->codify(codeYYtext); 11473 g_inForEachExpression = FALSE; 11474 BEGIN( Body ); 11475 } 11476 YY_BREAK 11477 case 129: 11478 YY_RULE_SETUP 11479 #line 2678 "code.l" 11480 { 11481 g_code->codify(codeYYtext); 11482 g_theVarContext.addVariable(g_parmType,g_parmName); 11483 g_parmType.resize(0);g_parmName.resize(0); 11484 } 11485 YY_BREAK 11486 case 130: 11487 YY_RULE_SETUP 11488 #line 2683 "code.l" 11489 { 11490 g_parmType.resize(0);g_parmName.resize(0); 11491 g_code->codify(codeYYtext); 11492 g_bracketCount++; 11493 g_theCallContext.pushScope(); 11494 if (YY_START==FuncCall && !g_insideBody) 11495 { 11496 g_theVarContext.pushScope(); 11497 } 11498 } 11499 YY_BREAK 11500 case 131: 11501 YY_RULE_SETUP 11502 #line 2693 "code.l" 11503 { // operator 11504 if (strcmp(codeYYtext,"*") && 11505 strcmp(codeYYtext,"&") && 11506 strcmp(codeYYtext,"^") && 11507 strcmp(codeYYtext,"%")) // typically a pointer or reference 11508 { 11509 // not a * or &, or C++/CLI's ^ or % 11510 g_parmType.resize(0);g_parmName.resize(0); 11511 } 11512 g_code->codify(codeYYtext); 11513 } 11514 YY_BREAK 11515 case 132: 11516 YY_RULE_SETUP 11517 #line 2704 "code.l" 11518 { 11519 g_theVarContext.addVariable(g_parmType,g_parmName); 11520 g_theCallContext.popScope(); 11521 g_inForEachExpression = FALSE; 11522 //g_theCallContext.setClass(0); // commented out, otherwise a()->b() does not work for b(). 11523 g_code->codify(codeYYtext); 11524 if (--g_bracketCount<=0) 11525 { 11526 if (g_name.isEmpty()) 11527 { 11528 BEGIN( Body ); 11529 } 11530 else 11531 { 11532 BEGIN( CallEnd ); 11533 } 11534 } 11535 } 11536 YY_BREAK 11537 case 133: 11538 /* rule 133 can match eol */ 11539 YY_RULE_SETUP 11540 #line 2722 "code.l" 11541 { codifyLines(codeYYtext); } 11542 YY_BREAK 11543 /* 11544 <MemberCall2,FuncCall>")"[ \t\n]*[;:] { 11545 */ 11546 case 134: 11547 YY_RULE_SETUP 11548 #line 2726 "code.l" 11549 { 11550 codifyLines(codeYYtext); 11551 g_bracketCount=0; 11552 if (*codeYYtext==';') g_searchingForBody=FALSE; 11553 if (!g_type.isEmpty()) 11554 { 11555 //fprintf(stderr,"add variable g_type=%s g_name=%s)\n",g_type.data(),g_name.data()); 11556 g_theVarContext.addVariable(g_type,g_name); 11557 } 11558 g_parmType.resize(0);g_parmName.resize(0); 11559 g_theCallContext.setClass(0); 11560 if (*codeYYtext==';' || g_insideBody) 11561 { 11562 if (!g_insideBody) 11563 { 11564 g_theVarContext.popScope(); 11565 } 11566 g_name.resize(0);g_type.resize(0); 11567 BEGIN( Body ); 11568 } 11569 else 11570 { 11571 g_bracketCount=0; 11572 BEGIN( SkipInits ); 11573 } 11574 } 11575 YY_BREAK 11576 case 135: 11577 /* rule 135 can match eol */ 11578 YY_RULE_SETUP 11579 #line 2752 "code.l" 11580 { 11581 startFontClass("keyword"); 11582 codifyLines(codeYYtext); 11583 endFontClass(); 11584 } 11585 YY_BREAK 11586 case 136: 11587 /* rule 136 can match eol */ 11588 YY_RULE_SETUP 11589 #line 2757 "code.l" 11590 { 11591 if (g_insideBody) 11592 { 11593 g_theVarContext.pushScope(); 11594 } 11595 g_theVarContext.addVariable(g_parmType,g_parmName); 11596 //g_theCallContext.popScope(); 11597 g_parmType.resize(0);g_parmName.resize(0); 11598 int index = g_name.findRev("::"); 11599 if (index!=-1) 11600 { 11601 ClassDef *cd=getResolvedClass(Doxygen::globalScope,g_sourceFileDef,g_name.left(index)); 11602 if (cd) 11603 { 11604 setClassScope(cd->name()); 11605 } 11606 else 11607 { 11608 setClassScope(g_realScope); 11609 } 11610 DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n")); 11611 g_scopeStack.push(SCOPEBLOCK); 11612 } 11613 else 11614 { 11615 DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); 11616 g_scopeStack.push(INNERBLOCK); 11617 } 11618 codeYYtext[codeYYleng-1]='\0'; 11619 QCString cv(codeYYtext); 11620 if (!cv.stripWhiteSpace().isEmpty()) 11621 { 11622 startFontClass("keyword"); 11623 codifyLines(codeYYtext); 11624 endFontClass(); 11625 } 11626 else // just whitespace 11627 { 11628 codifyLines(codeYYtext); 11629 } 11630 g_code->codify("{"); 11631 if (g_searchingForBody) 11632 { 11633 g_searchingForBody=FALSE; 11634 g_insideBody=TRUE; 11635 } 11636 if (g_insideBody) g_bodyCurlyCount++; 11637 g_curlyCount++; 11638 g_type.resize(0); g_name.resize(0); 11639 BEGIN( Body ); 11640 } 11641 YY_BREAK 11642 case 137: 11643 YY_RULE_SETUP 11644 #line 2808 "code.l" 11645 { // function-try-block 11646 startFontClass("keyword"); 11647 g_code->codify(codeYYtext); 11648 endFontClass(); 11649 g_inFunctionTryBlock=TRUE; 11650 } 11651 YY_BREAK 11652 case 138: 11653 YY_RULE_SETUP 11654 #line 2814 "code.l" 11655 { 11656 if (g_insideBody || !g_parmType.isEmpty()) 11657 { 11658 REJECT; 11659 } 11660 // could be K&R style definition 11661 addParmType(); 11662 g_parmName=codeYYtext; 11663 generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody); 11664 BEGIN(OldStyleArgs); 11665 } 11666 YY_BREAK 11667 case 139: 11668 YY_RULE_SETUP 11669 #line 2825 "code.l" 11670 { 11671 addParmType(); 11672 g_parmName=codeYYtext; 11673 generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody); 11674 } 11675 YY_BREAK 11676 case 140: 11677 YY_RULE_SETUP 11678 #line 2830 "code.l" 11679 { 11680 g_code->codify(codeYYtext); 11681 g_theVarContext.addVariable(g_parmType,g_parmName); 11682 if (*codeYYtext==';') g_parmType.resize(0); 11683 g_parmName.resize(0); 11684 } 11685 YY_BREAK 11686 case 141: 11687 YY_RULE_SETUP 11688 #line 2836 "code.l" 11689 { 11690 startFontClass("preprocessor"); 11691 g_lastSkipCppContext = Body; 11692 g_code->codify(codeYYtext); 11693 BEGIN( SkipCPP ); 11694 } 11695 YY_BREAK 11696 case 142: 11697 YY_RULE_SETUP 11698 #line 2842 "code.l" 11699 { 11700 unput(*codeYYtext); 11701 if (!g_insideBody) 11702 { 11703 g_theVarContext.popScope(); 11704 } 11705 g_name.resize(0);g_args.resize(0); 11706 g_parmType.resize(0);g_parmName.resize(0); 11707 BEGIN( Body ); 11708 } 11709 YY_BREAK 11710 case 143: 11711 YY_RULE_SETUP 11712 #line 2852 "code.l" 11713 { 11714 g_code->codify(codeYYtext); 11715 g_type.resize(0); g_name.resize(0); 11716 BEGIN( Body ); 11717 } 11718 YY_BREAK 11719 case 144: 11720 YY_RULE_SETUP 11721 #line 2857 "code.l" 11722 { 11723 g_code->codify(codeYYtext); 11724 g_curlyCount++; 11725 if (g_searchingForBody) 11726 { 11727 g_searchingForBody=FALSE; 11728 g_insideBody=TRUE; 11729 } 11730 if (g_insideBody) g_bodyCurlyCount++; 11731 if (g_name.find("::")!=-1) 11732 { 11733 DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n")); 11734 g_scopeStack.push(SCOPEBLOCK); 11735 setClassScope(g_realScope); 11736 } 11737 else 11738 { 11739 DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); 11740 g_scopeStack.push(INNERBLOCK); 11741 } 11742 g_type.resize(0); g_name.resize(0); 11743 BEGIN( Body ); 11744 } 11745 YY_BREAK 11746 case 145: 11747 YY_RULE_SETUP 11748 #line 2880 "code.l" 11749 { 11750 generateClassOrGlobalLink(*g_code,codeYYtext); 11751 } 11752 YY_BREAK 11753 case 146: 11754 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 11755 (yy_c_buf_p) = yy_cp -= 1; 11756 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 11757 YY_RULE_SETUP 11758 #line 2883 "code.l" 11759 { 11760 generateFunctionLink(*g_code,codeYYtext); 11761 } 11762 YY_BREAK 11763 case 147: 11764 YY_RULE_SETUP 11765 #line 2886 "code.l" 11766 { 11767 g_name=codeYYtext; 11768 generateClassOrGlobalLink(*g_code,codeYYtext); 11769 BEGIN( MemberCall2 ); 11770 } 11771 YY_BREAK 11772 case 148: 11773 YY_RULE_SETUP 11774 #line 2891 "code.l" 11775 { 11776 g_code->codify(codeYYtext); 11777 int s=0;while (!isId(codeYYtext[s])) s++; 11778 int e=codeYYleng-1;while (!isId(codeYYtext[e])) e--; 11779 g_name=((QCString)codeYYtext).mid(s,e-s+1); 11780 BEGIN( MemberCall2 ); 11781 } 11782 YY_BREAK 11783 case 149: 11784 /* rule 149 can match eol */ 11785 YY_RULE_SETUP 11786 #line 2898 "code.l" 11787 { 11788 if (!g_args.isEmpty()) 11789 generateMemberLink(*g_code,g_args,codeYYtext); 11790 else 11791 generateClassOrGlobalLink(*g_code,codeYYtext); 11792 g_args.resize(0); 11793 BEGIN( FuncCall ); 11794 } 11795 YY_BREAK 11796 case 150: 11797 /* rule 150 can match eol */ 11798 YY_RULE_SETUP 11799 #line 2906 "code.l" 11800 { 11801 //g_code->codify(codeYYtext); 11802 g_name=codeYYtext; 11803 generateClassOrGlobalLink(*g_code,codeYYtext); 11804 BEGIN( MemberCall2 ); 11805 } 11806 YY_BREAK 11807 case 151: 11808 YY_RULE_SETUP 11809 #line 2912 "code.l" 11810 { 11811 g_code->codify(codeYYtext); 11812 g_memCallContext = YY_START; 11813 BEGIN( MemberCall ); 11814 } 11815 YY_BREAK 11816 case 152: 11817 YY_RULE_SETUP 11818 #line 2917 "code.l" 11819 { 11820 g_code->codify(codeYYtext); 11821 endFontClass(); 11822 BEGIN( g_lastCContext ) ; 11823 } 11824 YY_BREAK 11825 case 153: 11826 YY_RULE_SETUP 11827 #line 2922 "code.l" 11828 { 11829 g_code->codify(codeYYtext); 11830 } 11831 YY_BREAK 11832 case 154: 11833 YY_RULE_SETUP 11834 #line 2925 "code.l" 11835 { 11836 g_code->codify(codeYYtext); 11837 } 11838 YY_BREAK 11839 case 155: 11840 YY_RULE_SETUP 11841 #line 2928 "code.l" 11842 { 11843 g_code->codify(codeYYtext); 11844 endFontClass(); 11845 BEGIN( g_lastCContext ) ; 11846 } 11847 YY_BREAK 11848 case 156: 11849 YY_RULE_SETUP 11850 #line 2933 "code.l" 11851 { 11852 g_code->codify(codeYYtext); 11853 } 11854 YY_BREAK 11855 case 157: 11856 YY_RULE_SETUP 11857 #line 2936 "code.l" 11858 11859 YY_BREAK 11860 case 158: 11861 /* rule 158 can match eol */ 11862 YY_RULE_SETUP 11863 #line 2937 "code.l" 11864 { 11865 unput('\n'); 11866 endFontClass(); 11867 BEGIN( g_lastCContext ) ; 11868 } 11869 YY_BREAK 11870 case 159: 11871 YY_RULE_SETUP 11872 #line 2942 "code.l" 11873 { 11874 g_code->codify(codeYYtext); 11875 } 11876 YY_BREAK 11877 case 160: 11878 /* rule 160 can match eol */ 11879 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 11880 (yy_c_buf_p) = yy_cp -= 1; 11881 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 11882 YY_RULE_SETUP 11883 #line 2945 "code.l" 11884 { 11885 g_yyLineNr+=QCString(codeYYtext).contains('\n'); 11886 } 11887 YY_BREAK 11888 case 161: 11889 /* rule 161 can match eol */ 11890 YY_RULE_SETUP 11891 #line 2948 "code.l" 11892 { 11893 g_yyLineNr+=QCString(codeYYtext).contains('\n'); 11894 endCodeLine(); 11895 if (g_yyLineNr<g_inputLines) 11896 { 11897 startCodeLine(); 11898 } 11899 if (g_lastSpecialCContext==SkipCxxComment) 11900 { // force end of C++ comment here 11901 endFontClass(); 11902 BEGIN( g_lastCContext ) ; 11903 } 11904 else 11905 { 11906 BEGIN(g_lastSpecialCContext); 11907 } 11908 } 11909 YY_BREAK 11910 case 162: 11911 YY_RULE_SETUP 11912 #line 2965 "code.l" 11913 { 11914 BEGIN(g_lastSpecialCContext); 11915 } 11916 YY_BREAK 11917 case 163: 11918 YY_RULE_SETUP 11919 #line 2968 "code.l" 11920 11921 YY_BREAK 11922 case 164: 11923 YY_RULE_SETUP 11924 #line 2969 "code.l" 11925 11926 YY_BREAK 11927 case 165: 11928 /* rule 165 can match eol */ 11929 YY_RULE_SETUP 11930 #line 2970 "code.l" 11931 { g_yyLineNr++; } 11932 YY_BREAK 11933 case 166: 11934 YY_RULE_SETUP 11935 #line 2971 "code.l" 11936 11937 YY_BREAK 11938 case 167: 11939 YY_RULE_SETUP 11940 #line 2972 "code.l" 11941 { 11942 g_code->codify(codeYYtext); 11943 g_type.resize(0); 11944 g_name.resize(0); 11945 BEGIN(g_memCallContext); 11946 } 11947 YY_BREAK 11948 case 168: 11949 /* rule 168 can match eol */ 11950 YY_RULE_SETUP 11951 #line 2978 "code.l" 11952 { // remove special one-line comment 11953 if (Config_getBool("STRIP_CODE_COMMENTS")) 11954 { 11955 g_yyLineNr+=((QCString)codeYYtext).contains('\n'); 11956 endCodeLine(); 11957 if (g_yyLineNr<g_inputLines) 11958 { 11959 startCodeLine(); 11960 } 11961 } 11962 else 11963 { 11964 startFontClass("comment"); 11965 codifyLines(codeYYtext); 11966 endFontClass(); 11967 } 11968 if (YY_START==SkipCxxComment) 11969 { 11970 endFontClass(); 11971 BEGIN( g_lastCContext ) ; 11972 } 11973 } 11974 YY_BREAK 11975 case 169: 11976 /* rule 169 can match eol */ 11977 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 11978 (yy_c_buf_p) = yy_cp = yy_bp + 1; 11979 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 11980 YY_RULE_SETUP 11981 #line 3000 "code.l" 11982 { 11983 codifyLines(codeYYtext); 11984 endFontClass(); 11985 BEGIN( g_lastSkipCppContext ) ; 11986 } 11987 YY_BREAK 11988 case 170: 11989 /* rule 170 can match eol */ 11990 YY_RULE_SETUP 11991 #line 3005 "code.l" 11992 { // remove one-line group marker 11993 if (Config_getBool("STRIP_CODE_COMMENTS")) 11994 { 11995 g_yyLineNr+=2; 11996 endCodeLine(); 11997 if (g_yyLineNr<g_inputLines) 11998 { 11999 startCodeLine(); 12000 } 12001 } 12002 else 12003 { 12004 startFontClass("comment"); 12005 codifyLines(codeYYtext); 12006 endFontClass(); 12007 } 12008 if (YY_START==SkipCxxComment) 12009 { 12010 endFontClass(); 12011 BEGIN( g_lastCContext ) ; 12012 } 12013 } 12014 YY_BREAK 12015 case 171: 12016 /* rule 171 can match eol */ 12017 YY_RULE_SETUP 12018 #line 3027 "code.l" 12019 { // remove one-line group marker 12020 if (Config_getBool("STRIP_CODE_COMMENTS")) 12021 { 12022 g_lastSpecialCContext = YY_START; 12023 g_yyLineNr++; 12024 BEGIN(RemoveSpecialCComment); 12025 } 12026 else 12027 { 12028 // check is to prevent getting stuck in skipping C++ comments 12029 if (YY_START != SkipCxxComment) 12030 { 12031 g_lastCContext = YY_START ; 12032 } 12033 startFontClass("comment"); 12034 codifyLines(codeYYtext); 12035 BEGIN(SkipComment); 12036 } 12037 } 12038 YY_BREAK 12039 case 172: 12040 /* rule 172 can match eol */ 12041 YY_RULE_SETUP 12042 #line 3046 "code.l" 12043 { // remove one-line group marker 12044 if (Config_getBool("STRIP_CODE_COMMENTS")) 12045 { 12046 g_yyLineNr++; 12047 endCodeLine(); 12048 if (g_yyLineNr<g_inputLines) 12049 { 12050 startCodeLine(); 12051 } 12052 } 12053 else 12054 { 12055 startFontClass("comment"); 12056 codifyLines(codeYYtext); 12057 endFontClass(); 12058 } 12059 } 12060 YY_BREAK 12061 case 173: 12062 YY_RULE_SETUP 12063 #line 3063 "code.l" 12064 { // remove multi-line group marker 12065 if (Config_getBool("STRIP_CODE_COMMENTS")) 12066 { 12067 g_lastSpecialCContext = YY_START; 12068 BEGIN(RemoveSpecialCComment); 12069 } 12070 else 12071 { 12072 // check is to prevent getting stuck in skipping C++ comments 12073 if (YY_START != SkipCxxComment) 12074 { 12075 g_lastCContext = YY_START ; 12076 } 12077 startFontClass("comment"); 12078 g_code->codify(codeYYtext); 12079 BEGIN(SkipComment); 12080 } 12081 } 12082 YY_BREAK 12083 case 174: 12084 /* rule 174 can match eol */ 12085 YY_RULE_SETUP 12086 #line 3081 "code.l" 12087 { // remove special one-line comment 12088 if (Config_getBool("STRIP_CODE_COMMENTS")) 12089 { 12090 g_yyLineNr++; 12091 endCodeLine(); 12092 if (g_yyLineNr<g_inputLines) 12093 { 12094 startCodeLine(); 12095 } 12096 } 12097 else 12098 { 12099 startFontClass("comment"); 12100 codifyLines(codeYYtext); 12101 endFontClass(); 12102 } 12103 } 12104 YY_BREAK 12105 case 175: 12106 /* rule 175 can match eol */ 12107 YY_RULE_SETUP 12108 #line 3098 "code.l" 12109 { // strip special one-line comment 12110 if (YY_START==SkipComment || YY_START==SkipString) REJECT; 12111 if (Config_getBool("STRIP_CODE_COMMENTS")) 12112 { 12113 char c[2]; c[0]='\n'; c[1]=0; 12114 codifyLines(c); 12115 } 12116 else 12117 { 12118 startFontClass("comment"); 12119 codifyLines(codeYYtext); 12120 endFontClass(); 12121 } 12122 } 12123 YY_BREAK 12124 case 176: 12125 /* rule 176 can match eol */ 12126 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 12127 (yy_c_buf_p) = yy_cp -= 1; 12128 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 12129 YY_RULE_SETUP 12130 #line 3112 "code.l" 12131 { 12132 if (Config_getBool("STRIP_CODE_COMMENTS")) 12133 { 12134 g_lastSpecialCContext = YY_START; 12135 g_yyLineNr++; 12136 BEGIN(RemoveSpecialCComment); 12137 } 12138 else 12139 { 12140 // check is to prevent getting stuck in skipping C++ comments 12141 if (YY_START != SkipCxxComment) 12142 { 12143 g_lastCContext = YY_START ; 12144 } 12145 startFontClass("comment"); 12146 codifyLines(codeYYtext); 12147 BEGIN(SkipComment); 12148 } 12149 } 12150 YY_BREAK 12151 case 177: 12152 /* rule 177 can match eol */ 12153 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 12154 (yy_c_buf_p) = yy_cp -= 1; 12155 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 12156 YY_RULE_SETUP 12157 #line 3131 "code.l" 12158 { // special C comment block at a new line 12159 if (Config_getBool("STRIP_CODE_COMMENTS")) 12160 { 12161 g_lastSpecialCContext = YY_START; 12162 BEGIN(RemoveSpecialCComment); 12163 } 12164 else 12165 { 12166 // check is to prevent getting stuck in skipping C++ comments 12167 if (YY_START != SkipCxxComment) 12168 { 12169 g_lastCContext = YY_START ; 12170 } 12171 startFontClass("comment"); 12172 g_code->codify(codeYYtext); 12173 BEGIN(SkipComment); 12174 } 12175 } 12176 YY_BREAK 12177 case 178: 12178 /* rule 178 can match eol */ 12179 *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ 12180 (yy_c_buf_p) = yy_cp = yy_bp + 3; 12181 YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ 12182 YY_RULE_SETUP 12183 #line 3149 "code.l" 12184 { // special C comment block half way a line 12185 if (YY_START==SkipString) REJECT; 12186 if (Config_getBool("STRIP_CODE_COMMENTS")) 12187 { 12188 g_lastSpecialCContext = YY_START; 12189 BEGIN(RemoveSpecialCComment); 12190 } 12191 else 12192 { 12193 // check is to prevent getting stuck in skipping C++ comments 12194 if (YY_START != SkipCxxComment) 12195 { 12196 g_lastCContext = YY_START ; 12197 } 12198 startFontClass("comment"); 12199 g_code->codify(codeYYtext); 12200 BEGIN(SkipComment); 12201 } 12202 } 12203 YY_BREAK 12204 case 179: 12205 YY_RULE_SETUP 12206 #line 3168 "code.l" 12207 { 12208 if (YY_START==SkipString) REJECT; 12209 if (!Config_getBool("STRIP_CODE_COMMENTS")) 12210 { 12211 startFontClass("comment"); 12212 g_code->codify(codeYYtext); 12213 endFontClass(); 12214 } 12215 } 12216 YY_BREAK 12217 case 180: 12218 YY_RULE_SETUP 12219 #line 3177 "code.l" 12220 { 12221 startFontClass("comment"); 12222 g_code->codify(codeYYtext); 12223 // check is to prevent getting stuck in skipping C++ comments 12224 if (YY_START != SkipCxxComment) 12225 { 12226 g_lastCContext = YY_START ; 12227 } 12228 BEGIN( SkipComment ) ; 12229 } 12230 YY_BREAK 12231 case 181: 12232 YY_RULE_SETUP 12233 #line 3187 "code.l" 12234 { // C# verbatim string 12235 startFontClass("stringliteral"); 12236 g_code->codify(codeYYtext); 12237 g_lastVerbStringContext=YY_START; 12238 BEGIN(SkipVerbString); 12239 } 12240 YY_BREAK 12241 case 182: 12242 YY_RULE_SETUP 12243 #line 3193 "code.l" 12244 { 12245 startFontClass("comment"); 12246 g_code->codify(codeYYtext); 12247 g_lastCContext = YY_START ; 12248 BEGIN( SkipCxxComment ) ; 12249 } 12250 YY_BREAK 12251 case 183: 12252 YY_RULE_SETUP 12253 #line 3199 "code.l" 12254 { 12255 g_code->codify(codeYYtext); 12256 g_theCallContext.pushScope(); 12257 } 12258 YY_BREAK 12259 case 184: 12260 YY_RULE_SETUP 12261 #line 3203 "code.l" 12262 { 12263 g_code->codify(codeYYtext); 12264 g_theCallContext.popScope(); 12265 } 12266 YY_BREAK 12267 case 185: 12268 /* rule 185 can match eol */ 12269 YY_RULE_SETUP 12270 #line 3207 "code.l" 12271 { 12272 codifyLines(codeYYtext); 12273 } 12274 YY_BREAK 12275 case 186: 12276 YY_RULE_SETUP 12277 #line 3210 "code.l" 12278 { 12279 g_code->codify(codeYYtext); 12280 } 12281 YY_BREAK 12282 /* 12283 <*>([ \t\n]*"\n"){2,} { // combine multiple blank lines 12284 //QCString sepLine=codeYYtext; 12285 //g_code->codify("\n\n"); 12286 //g_yyLineNr+=sepLine.contains('\n'); 12287 //char sepLine[3]="\n\n"; 12288 codifyLines(codeYYtext); 12289 } 12290 */ 12291 case 187: 12292 YY_RULE_SETUP 12293 #line 3223 "code.l" 12294 ECHO; 12295 YY_BREAK 12296 #line 12297 "<stdout>" 12297 case YY_STATE_EOF(INITIAL): 12298 case YY_STATE_EOF(SkipString): 12299 case YY_STATE_EOF(SkipStringS): 12300 case YY_STATE_EOF(SkipVerbString): 12301 case YY_STATE_EOF(SkipCPP): 12302 case YY_STATE_EOF(SkipComment): 12303 case YY_STATE_EOF(SkipCxxComment): 12304 case YY_STATE_EOF(RemoveSpecialCComment): 12305 case YY_STATE_EOF(StripSpecialCComment): 12306 case YY_STATE_EOF(Body): 12307 case YY_STATE_EOF(FuncCall): 12308 case YY_STATE_EOF(MemberCall): 12309 case YY_STATE_EOF(MemberCall2): 12310 case YY_STATE_EOF(SkipInits): 12311 case YY_STATE_EOF(ClassName): 12312 case YY_STATE_EOF(PackageName): 12313 case YY_STATE_EOF(ClassVar): 12314 case YY_STATE_EOF(CppCliTypeModifierFollowup): 12315 case YY_STATE_EOF(Bases): 12316 case YY_STATE_EOF(SkipSharp): 12317 case YY_STATE_EOF(ReadInclude): 12318 case YY_STATE_EOF(TemplDecl): 12319 case YY_STATE_EOF(TemplCast): 12320 case YY_STATE_EOF(CallEnd): 12321 case YY_STATE_EOF(ObjCMethod): 12322 case YY_STATE_EOF(ObjCParams): 12323 case YY_STATE_EOF(ObjCParamType): 12324 case YY_STATE_EOF(ObjCCall): 12325 case YY_STATE_EOF(ObjCMName): 12326 case YY_STATE_EOF(ObjCSkipStr): 12327 case YY_STATE_EOF(OldStyleArgs): 12328 case YY_STATE_EOF(UsingName): 12329 yyterminate(); 12330 12331 case YY_END_OF_BUFFER: 12332 { 12333 /* Amount of text matched not including the EOB char. */ 12334 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 12335 12336 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 12337 *yy_cp = (yy_hold_char); 12338 YY_RESTORE_YY_MORE_OFFSET 12339 12340 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 12341 { 12342 /* We're scanning a new file or input source. It's 12343 * possible that this happened because the user 12344 * just pointed codeYYin at a new source and called 12345 * codeYYlex(). If so, then we have to assure 12346 * consistency between YY_CURRENT_BUFFER and our 12347 * globals. Here is the right place to do so, because 12348 * this is the first action (other than possibly a 12349 * back-up) that will match for the new input source. 12350 */ 12351 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 12352 YY_CURRENT_BUFFER_LVALUE->yy_input_file = codeYYin; 12353 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 12354 } 12355 12356 /* Note that here we test for yy_c_buf_p "<=" to the position 12357 * of the first EOB in the buffer, since yy_c_buf_p will 12358 * already have been incremented past the NUL character 12359 * (since all states make transitions on EOB to the 12360 * end-of-buffer state). Contrast this with the test 12361 * in input(). 12362 */ 12363 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 12364 { /* This was really a NUL. */ 12365 yy_state_type yy_next_state; 12366 12367 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 12368 12369 yy_current_state = yy_get_previous_state( ); 12370 12371 /* Okay, we're now positioned to make the NUL 12372 * transition. We couldn't have 12373 * yy_get_previous_state() go ahead and do it 12374 * for us because it doesn't know how to deal 12375 * with the possibility of jamming (and we don't 12376 * want to build jamming into it because then it 12377 * will run more slowly). 12378 */ 12379 12380 yy_next_state = yy_try_NUL_trans( yy_current_state ); 12381 12382 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 12383 12384 if ( yy_next_state ) 12385 { 12386 /* Consume the NUL. */ 12387 yy_cp = ++(yy_c_buf_p); 12388 yy_current_state = yy_next_state; 12389 goto yy_match; 12390 } 12391 12392 else 12393 { 12394 yy_cp = (yy_c_buf_p); 12395 goto yy_find_action; 12396 } 12397 } 12398 12399 else switch ( yy_get_next_buffer( ) ) 12400 { 12401 case EOB_ACT_END_OF_FILE: 12402 { 12403 (yy_did_buffer_switch_on_eof) = 0; 12404 12405 if ( codeYYwrap( ) ) 12406 { 12407 /* Note: because we've taken care in 12408 * yy_get_next_buffer() to have set up 12409 * codeYYtext, we can now set up 12410 * yy_c_buf_p so that if some total 12411 * hoser (like flex itself) wants to 12412 * call the scanner after we return the 12413 * YY_NULL, it'll still work - another 12414 * YY_NULL will get returned. 12415 */ 12416 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 12417 12418 yy_act = YY_STATE_EOF(YY_START); 12419 goto do_action; 12420 } 12421 12422 else 12423 { 12424 if ( ! (yy_did_buffer_switch_on_eof) ) 12425 YY_NEW_FILE; 12426 } 12427 break; 12428 } 12429 12430 case EOB_ACT_CONTINUE_SCAN: 12431 (yy_c_buf_p) = 12432 (yytext_ptr) + yy_amount_of_matched_text; 12433 12434 yy_current_state = yy_get_previous_state( ); 12435 12436 yy_cp = (yy_c_buf_p); 12437 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 12438 goto yy_match; 12439 12440 case EOB_ACT_LAST_MATCH: 12441 (yy_c_buf_p) = 12442 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 12443 12444 yy_current_state = yy_get_previous_state( ); 12445 12446 yy_cp = (yy_c_buf_p); 12447 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 12448 goto yy_find_action; 12449 } 12450 break; 12451 } 12452 12453 default: 12454 YY_FATAL_ERROR( 12455 "fatal flex scanner internal error--no action found" ); 12456 } /* end of action switch */ 12457 } /* end of scanning one token */ 12458 } /* end of codeYYlex */ 12459 12460 /* yy_get_next_buffer - try to read in a new buffer 12461 * 12462 * Returns a code representing an action: 12463 * EOB_ACT_LAST_MATCH - 12464 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 12465 * EOB_ACT_END_OF_FILE - end of file 12466 */ 12467 static int yy_get_next_buffer (void) 12468 { 12469 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 12470 register char *source = (yytext_ptr); 12471 register int number_to_move, i; 12472 int ret_val; 12473 12474 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 12475 YY_FATAL_ERROR( 12476 "fatal flex scanner internal error--end of buffer missed" ); 12477 12478 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 12479 { /* Don't try to fill the buffer, so this is an EOF. */ 12480 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 12481 { 12482 /* We matched a single character, the EOB, so 12483 * treat this as a final EOF. 12484 */ 12485 return EOB_ACT_END_OF_FILE; 12486 } 12487 12488 else 12489 { 12490 /* We matched some text prior to the EOB, first 12491 * process it. 12492 */ 12493 return EOB_ACT_LAST_MATCH; 12494 } 12495 } 12496 12497 /* Try to read more data. */ 12498 12499 /* First move last chars to start of buffer. */ 12500 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 12501 12502 for ( i = 0; i < number_to_move; ++i ) 12503 *(dest++) = *(source++); 12504 12505 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 12506 /* don't do the read, it's not guaranteed to return an EOF, 12507 * just force an EOF 12508 */ 12509 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 12510 12511 else 12512 { 12513 int num_to_read = 12514 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 12515 12516 while ( num_to_read <= 0 ) 12517 { /* Not enough room in the buffer - grow it. */ 12518 12519 YY_FATAL_ERROR( 12520 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 12521 12522 } 12523 12524 if ( num_to_read > YY_READ_BUF_SIZE ) 12525 num_to_read = YY_READ_BUF_SIZE; 12526 12527 /* Read in more data. */ 12528 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 12529 (yy_n_chars), num_to_read ); 12530 12531 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 12532 } 12533 12534 if ( (yy_n_chars) == 0 ) 12535 { 12536 if ( number_to_move == YY_MORE_ADJ ) 12537 { 12538 ret_val = EOB_ACT_END_OF_FILE; 12539 codeYYrestart(codeYYin ); 12540 } 12541 12542 else 12543 { 12544 ret_val = EOB_ACT_LAST_MATCH; 12545 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 12546 YY_BUFFER_EOF_PENDING; 12547 } 12548 } 12549 12550 else 12551 ret_val = EOB_ACT_CONTINUE_SCAN; 12552 12553 (yy_n_chars) += number_to_move; 12554 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 12555 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 12556 12557 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 12558 12559 return ret_val; 12560 } 12561 12562 /* yy_get_previous_state - get the state just before the EOB char was reached */ 12563 12564 static yy_state_type yy_get_previous_state (void) 12565 { 12566 register yy_state_type yy_current_state; 12567 register char *yy_cp; 12568 12569 yy_current_state = (yy_start); 12570 yy_current_state += YY_AT_BOL(); 12571 12572 (yy_state_ptr) = (yy_state_buf); 12573 *(yy_state_ptr)++ = yy_current_state; 12574 12575 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 12576 { 12577 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 12578 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 12579 { 12580 yy_current_state = (int) yy_def[yy_current_state]; 12581 if ( yy_current_state >= 2975 ) 12582 yy_c = yy_meta[(unsigned int) yy_c]; 12583 } 12584 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 12585 *(yy_state_ptr)++ = yy_current_state; 12586 } 12587 12588 return yy_current_state; 12589 } 12590 12591 /* yy_try_NUL_trans - try to make a transition on the NUL character 12592 * 12593 * synopsis 12594 * next_state = yy_try_NUL_trans( current_state ); 12595 */ 12596 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 12597 { 12598 register int yy_is_jam; 12599 12600 register YY_CHAR yy_c = 1; 12601 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 12602 { 12603 yy_current_state = (int) yy_def[yy_current_state]; 12604 if ( yy_current_state >= 2975 ) 12605 yy_c = yy_meta[(unsigned int) yy_c]; 12606 } 12607 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 12608 yy_is_jam = (yy_current_state == 2974); 12609 if ( ! yy_is_jam ) 12610 *(yy_state_ptr)++ = yy_current_state; 12611 12612 return yy_is_jam ? 0 : yy_current_state; 12613 } 12614 12615 static void yyunput (int c, register char * yy_bp ) 12616 { 12617 register char *yy_cp; 12618 12619 yy_cp = (yy_c_buf_p); 12620 12621 /* undo effects of setting up codeYYtext */ 12622 *yy_cp = (yy_hold_char); 12623 12624 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 12625 { /* need to shift things up to make room */ 12626 /* +2 for EOB chars. */ 12627 register int number_to_move = (yy_n_chars) + 2; 12628 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 12629 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 12630 register char *source = 12631 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 12632 12633 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 12634 *--dest = *--source; 12635 12636 yy_cp += (int) (dest - source); 12637 yy_bp += (int) (dest - source); 12638 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 12639 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 12640 12641 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 12642 YY_FATAL_ERROR( "flex scanner push-back overflow" ); 12643 } 12644 12645 *--yy_cp = (char) c; 12646 12647 (yytext_ptr) = yy_bp; 12648 (yy_hold_char) = *yy_cp; 12649 (yy_c_buf_p) = yy_cp; 12650 } 12651 12652 #ifndef YY_NO_INPUT 12653 #ifdef __cplusplus 12654 static int yyinput (void) 12655 #else 12656 static int input (void) 12657 #endif 12658 12659 { 12660 int c; 12661 12662 *(yy_c_buf_p) = (yy_hold_char); 12663 12664 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 12665 { 12666 /* yy_c_buf_p now points to the character we want to return. 12667 * If this occurs *before* the EOB characters, then it's a 12668 * valid NUL; if not, then we've hit the end of the buffer. 12669 */ 12670 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 12671 /* This was really a NUL. */ 12672 *(yy_c_buf_p) = '\0'; 12673 12674 else 12675 { /* need more input */ 12676 int offset = (yy_c_buf_p) - (yytext_ptr); 12677 ++(yy_c_buf_p); 12678 12679 switch ( yy_get_next_buffer( ) ) 12680 { 12681 case EOB_ACT_LAST_MATCH: 12682 /* This happens because yy_g_n_b() 12683 * sees that we've accumulated a 12684 * token and flags that we need to 12685 * try matching the token before 12686 * proceeding. But for input(), 12687 * there's no matching to consider. 12688 * So convert the EOB_ACT_LAST_MATCH 12689 * to EOB_ACT_END_OF_FILE. 12690 */ 12691 12692 /* Reset buffer status. */ 12693 codeYYrestart(codeYYin ); 12694 12695 /*FALLTHROUGH*/ 12696 12697 case EOB_ACT_END_OF_FILE: 12698 { 12699 if ( codeYYwrap( ) ) 12700 return 0; 12701 12702 if ( ! (yy_did_buffer_switch_on_eof) ) 12703 YY_NEW_FILE; 12704 #ifdef __cplusplus 12705 return yyinput(); 12706 #else 12707 return input(); 12708 #endif 12709 } 12710 12711 case EOB_ACT_CONTINUE_SCAN: 12712 (yy_c_buf_p) = (yytext_ptr) + offset; 12713 break; 12714 } 12715 } 12716 } 12717 12718 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 12719 *(yy_c_buf_p) = '\0'; /* preserve codeYYtext */ 12720 (yy_hold_char) = *++(yy_c_buf_p); 12721 12722 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 12723 12724 return c; 12725 } 12726 #endif /* ifndef YY_NO_INPUT */ 12727 12733 void codeYYrestart (FILE * input_file ) 12734 { 12735 12736 if ( ! YY_CURRENT_BUFFER ){ 12737 codeYYensure_buffer_stack (); 12738 YY_CURRENT_BUFFER_LVALUE = 12739 codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); 12740 } 12741 12742 codeYY_init_buffer(YY_CURRENT_BUFFER,input_file ); 12743 codeYY_load_buffer_state( ); 12744 } 12745 12750 void codeYY_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 12751 { 12752 12753 /* TODO. We should be able to replace this entire function body 12754 * with 12755 * codeYYpop_buffer_state(); 12756 * codeYYpush_buffer_state(new_buffer); 12757 */ 12758 codeYYensure_buffer_stack (); 12759 if ( YY_CURRENT_BUFFER == new_buffer ) 12760 return; 12761 12762 if ( YY_CURRENT_BUFFER ) 12763 { 12764 /* Flush out information for old buffer. */ 12765 *(yy_c_buf_p) = (yy_hold_char); 12766 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 12767 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 12768 } 12769 12770 YY_CURRENT_BUFFER_LVALUE = new_buffer; 12771 codeYY_load_buffer_state( ); 12772 12773 /* We don't actually know whether we did this switch during 12774 * EOF (codeYYwrap()) processing, but the only time this flag 12775 * is looked at is after codeYYwrap() is called, so it's safe 12776 * to go ahead and always set it. 12777 */ 12778 (yy_did_buffer_switch_on_eof) = 1; 12779 } 12780 12781 static void codeYY_load_buffer_state (void) 12782 { 12783 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 12784 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 12785 codeYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 12786 (yy_hold_char) = *(yy_c_buf_p); 12787 } 12788 12795 YY_BUFFER_STATE codeYY_create_buffer (FILE * file, int size ) 12796 { 12797 YY_BUFFER_STATE b; 12798 12799 b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state ) ); 12800 if ( ! b ) 12801 YY_FATAL_ERROR( "out of dynamic memory in codeYY_create_buffer()" ); 12802 12803 b->yy_buf_size = size; 12804 12805 /* yy_ch_buf has to be 2 characters longer than the size given because 12806 * we need to put in 2 end-of-buffer characters. 12807 */ 12808 b->yy_ch_buf = (char *) codeYYalloc(b->yy_buf_size + 2 ); 12809 if ( ! b->yy_ch_buf ) 12810 YY_FATAL_ERROR( "out of dynamic memory in codeYY_create_buffer()" ); 12811 12812 b->yy_is_our_buffer = 1; 12813 12814 codeYY_init_buffer(b,file ); 12815 12816 return b; 12817 } 12818 12823 void codeYY_delete_buffer (YY_BUFFER_STATE b ) 12824 { 12825 12826 if ( ! b ) 12827 return; 12828 12829 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 12830 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 12831 12832 if ( b->yy_is_our_buffer ) 12833 codeYYfree((void *) b->yy_ch_buf ); 12834 12835 codeYYfree((void *) b ); 12836 } 12837 12838 #ifndef __cplusplus 12839 extern int isatty (int ); 12840 #endif /* __cplusplus */ 12841 12842 /* Initializes or reinitializes a buffer. 12843 * This function is sometimes called more than once on the same buffer, 12844 * such as during a codeYYrestart() or at EOF. 12845 */ 12846 static void codeYY_init_buffer (YY_BUFFER_STATE b, FILE * file ) 12847 12848 { 12849 int oerrno = errno; 12850 12851 codeYY_flush_buffer(b ); 12852 12853 b->yy_input_file = file; 12854 b->yy_fill_buffer = 1; 12855 12856 /* If b is the current buffer, then codeYY_init_buffer was _probably_ 12857 * called from codeYYrestart() or through yy_get_next_buffer. 12858 * In that case, we don't want to reset the lineno or column. 12859 */ 12860 if (b != YY_CURRENT_BUFFER){ 12861 b->yy_bs_lineno = 1; 12862 b->yy_bs_column = 0; 12863 } 12864 12865 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 12866 12867 errno = oerrno; 12868 } 12869 12874 void codeYY_flush_buffer (YY_BUFFER_STATE b ) 12875 { 12876 if ( ! b ) 12877 return; 12878 12879 b->yy_n_chars = 0; 12880 12881 /* We always need two end-of-buffer characters. The first causes 12882 * a transition to the end-of-buffer state. The second causes 12883 * a jam in that state. 12884 */ 12885 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 12886 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 12887 12888 b->yy_buf_pos = &b->yy_ch_buf[0]; 12889 12890 b->yy_at_bol = 1; 12891 b->yy_buffer_status = YY_BUFFER_NEW; 12892 12893 if ( b == YY_CURRENT_BUFFER ) 12894 codeYY_load_buffer_state( ); 12895 } 12896 12903 void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer ) 12904 { 12905 if (new_buffer == NULL) 12906 return; 12907 12908 codeYYensure_buffer_stack(); 12909 12910 /* This block is copied from codeYY_switch_to_buffer. */ 12911 if ( YY_CURRENT_BUFFER ) 12912 { 12913 /* Flush out information for old buffer. */ 12914 *(yy_c_buf_p) = (yy_hold_char); 12915 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 12916 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 12917 } 12918 12919 /* Only push if top exists. Otherwise, replace top. */ 12920 if (YY_CURRENT_BUFFER) 12921 (yy_buffer_stack_top)++; 12922 YY_CURRENT_BUFFER_LVALUE = new_buffer; 12923 12924 /* copied from codeYY_switch_to_buffer. */ 12925 codeYY_load_buffer_state( ); 12926 (yy_did_buffer_switch_on_eof) = 1; 12927 } 12928 12933 void codeYYpop_buffer_state (void) 12934 { 12935 if (!YY_CURRENT_BUFFER) 12936 return; 12937 12938 codeYY_delete_buffer(YY_CURRENT_BUFFER ); 12939 YY_CURRENT_BUFFER_LVALUE = NULL; 12940 if ((yy_buffer_stack_top) > 0) 12941 --(yy_buffer_stack_top); 12942 12943 if (YY_CURRENT_BUFFER) { 12944 codeYY_load_buffer_state( ); 12945 (yy_did_buffer_switch_on_eof) = 1; 12946 } 12947 } 12948 12949 /* Allocates the stack if it does not exist. 12950 * Guarantees space for at least one push. 12951 */ 12952 static void codeYYensure_buffer_stack (void) 12953 { 12954 int num_to_alloc; 12955 12956 if (!(yy_buffer_stack)) { 12957 12958 /* First allocation is just for 2 elements, since we don't know if this 12959 * scanner will even need a stack. We use 2 instead of 1 to avoid an 12960 * immediate realloc on the next call. 12961 */ 12962 num_to_alloc = 1; 12963 (yy_buffer_stack) = (struct yy_buffer_state**)codeYYalloc 12964 (num_to_alloc * sizeof(struct yy_buffer_state*) 12965 ); 12966 12967 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 12968 12969 (yy_buffer_stack_max) = num_to_alloc; 12970 (yy_buffer_stack_top) = 0; 12971 return; 12972 } 12973 12974 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 12975 12976 /* Increase the buffer to prepare for a possible push. */ 12977 int grow_size = 8 /* arbitrary grow size */; 12978 12979 num_to_alloc = (yy_buffer_stack_max) + grow_size; 12980 (yy_buffer_stack) = (struct yy_buffer_state**)codeYYrealloc 12981 ((yy_buffer_stack), 12982 num_to_alloc * sizeof(struct yy_buffer_state*) 12983 ); 12984 12985 /* zero only the new slots.*/ 12986 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 12987 (yy_buffer_stack_max) = num_to_alloc; 12988 } 12989 } 12990 12997 YY_BUFFER_STATE codeYY_scan_buffer (char * base, yy_size_t size ) 12998 { 12999 YY_BUFFER_STATE b; 13000 13001 if ( size < 2 || 13002 base[size-2] != YY_END_OF_BUFFER_CHAR || 13003 base[size-1] != YY_END_OF_BUFFER_CHAR ) 13004 /* They forgot to leave room for the EOB's. */ 13005 return 0; 13006 13007 b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state ) ); 13008 if ( ! b ) 13009 YY_FATAL_ERROR( "out of dynamic memory in codeYY_scan_buffer()" ); 13010 13011 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 13012 b->yy_buf_pos = b->yy_ch_buf = base; 13013 b->yy_is_our_buffer = 0; 13014 b->yy_input_file = 0; 13015 b->yy_n_chars = b->yy_buf_size; 13016 b->yy_is_interactive = 0; 13017 b->yy_at_bol = 1; 13018 b->yy_fill_buffer = 0; 13019 b->yy_buffer_status = YY_BUFFER_NEW; 13020 13021 codeYY_switch_to_buffer(b ); 13022 13023 return b; 13024 } 13025 13034 YY_BUFFER_STATE codeYY_scan_string (yyconst char * yystr ) 13035 { 13036 13037 return codeYY_scan_bytes(yystr,strlen(yystr) ); 13038 } 13039 13047 YY_BUFFER_STATE codeYY_scan_bytes (yyconst char * yybytes, int _yybytes_len ) 13048 { 13049 YY_BUFFER_STATE b; 13050 char *buf; 13051 yy_size_t n; 13052 int i; 13053 13054 /* Get memory for full buffer, including space for trailing EOB's. */ 13055 n = _yybytes_len + 2; 13056 buf = (char *) codeYYalloc(n ); 13057 if ( ! buf ) 13058 YY_FATAL_ERROR( "out of dynamic memory in codeYY_scan_bytes()" ); 13059 13060 for ( i = 0; i < _yybytes_len; ++i ) 13061 buf[i] = yybytes[i]; 13062 13063 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 13064 13065 b = codeYY_scan_buffer(buf,n ); 13066 if ( ! b ) 13067 YY_FATAL_ERROR( "bad buffer in codeYY_scan_bytes()" ); 13068 13069 /* It's okay to grow etc. this buffer, and we should throw it 13070 * away when we're done. 13071 */ 13072 b->yy_is_our_buffer = 1; 13073 13074 return b; 13075 } 13076 13077 #ifndef YY_EXIT_FAILURE 13078 #define YY_EXIT_FAILURE 2 13079 #endif 13080 13081 static void yy_fatal_error (yyconst char* msg ) 13082 { 13083 (void) fprintf( stderr, "%s\n", msg ); 13084 exit( YY_EXIT_FAILURE ); 13085 } 13086 13087 /* Redefine yyless() so it works in section 3 code. */ 13088 13089 #undef yyless 13090 #define yyless(n) \ 13091 do \ 13092 { \ 13093 /* Undo effects of setting up codeYYtext. */ \ 13094 int yyless_macro_arg = (n); \ 13095 YY_LESS_LINENO(yyless_macro_arg);\ 13096 codeYYtext[codeYYleng] = (yy_hold_char); \ 13097 (yy_c_buf_p) = codeYYtext + yyless_macro_arg; \ 13098 (yy_hold_char) = *(yy_c_buf_p); \ 13099 *(yy_c_buf_p) = '\0'; \ 13100 codeYYleng = yyless_macro_arg; \ 13101 } \ 13102 while ( 0 ) 13103 13104 /* Accessor methods (get/set functions) to struct members. */ 13105 13109 int codeYYget_lineno (void) 13110 { 13111 13112 return codeYYlineno; 13113 } 13114 13118 FILE *codeYYget_in (void) 13119 { 13120 return codeYYin; 13121 } 13122 13126 FILE *codeYYget_out (void) 13127 { 13128 return codeYYout; 13129 } 13130 13134 int codeYYget_leng (void) 13135 { 13136 return codeYYleng; 13137 } 13138 13143 char *codeYYget_text (void) 13144 { 13145 return codeYYtext; 13146 } 13147 13152 void codeYYset_lineno (int line_number ) 13153 { 13154 13155 codeYYlineno = line_number; 13156 } 13157 13164 void codeYYset_in (FILE * in_str ) 13165 { 13166 codeYYin = in_str ; 13167 } 13168 13169 void codeYYset_out (FILE * out_str ) 13170 { 13171 codeYYout = out_str ; 13172 } 13173 13174 int codeYYget_debug (void) 13175 { 13176 return codeYY_flex_debug; 13177 } 13178 13179 void codeYYset_debug (int bdebug ) 13180 { 13181 codeYY_flex_debug = bdebug ; 13182 } 13183 13184 static int yy_init_globals (void) 13185 { 13186 /* Initialization is the same as for the non-reentrant scanner. 13187 * This function is called from codeYYlex_destroy(), so don't allocate here. 13188 */ 13189 13190 (yy_buffer_stack) = 0; 13191 (yy_buffer_stack_top) = 0; 13192 (yy_buffer_stack_max) = 0; 13193 (yy_c_buf_p) = (char *) 0; 13194 (yy_init) = 0; 13195 (yy_start) = 0; 13196 13197 (yy_state_buf) = 0; 13198 (yy_state_ptr) = 0; 13199 (yy_full_match) = 0; 13200 (yy_lp) = 0; 13201 13202 /* Defined in main.c */ 13203 #ifdef YY_STDINIT 13204 codeYYin = stdin; 13205 codeYYout = stdout; 13206 #else 13207 codeYYin = (FILE *) 0; 13208 codeYYout = (FILE *) 0; 13209 #endif 13210 13211 /* For future reference: Set errno on error, since we are called by 13212 * codeYYlex_init() 13213 */ 13214 return 0; 13215 } 13216 13217 /* codeYYlex_destroy is for both reentrant and non-reentrant scanners. */ 13218 int codeYYlex_destroy (void) 13219 { 13220 13221 /* Pop the buffer stack, destroying each element. */ 13222 while(YY_CURRENT_BUFFER){ 13223 codeYY_delete_buffer(YY_CURRENT_BUFFER ); 13224 YY_CURRENT_BUFFER_LVALUE = NULL; 13225 codeYYpop_buffer_state(); 13226 } 13227 13228 /* Destroy the stack itself. */ 13229 codeYYfree((yy_buffer_stack) ); 13230 (yy_buffer_stack) = NULL; 13231 13232 codeYYfree ( (yy_state_buf) ); 13233 (yy_state_buf) = NULL; 13234 13235 /* Reset the globals. This is important in a non-reentrant scanner so the next time 13236 * codeYYlex() is called, initialization will occur. */ 13237 yy_init_globals( ); 13238 13239 return 0; 13240 } 13241 13242 /* 13243 * Internal utility routines. 13244 */ 13245 13246 #ifndef yytext_ptr 13247 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) 13248 { 13249 register int i; 13250 for ( i = 0; i < n; ++i ) 13251 s1[i] = s2[i]; 13252 } 13253 #endif 13254 13255 #ifdef YY_NEED_STRLEN 13256 static int yy_flex_strlen (yyconst char * s ) 13257 { 13258 register int n; 13259 for ( n = 0; s[n]; ++n ) 13260 ; 13261 13262 return n; 13263 } 13264 #endif 13265 13266 void *codeYYalloc (yy_size_t size ) 13267 { 13268 return (void *) malloc( size ); 13269 } 13270 13271 void *codeYYrealloc (void * ptr, yy_size_t size ) 13272 { 13273 /* The cast to (char *) in the following accommodates both 13274 * implementations that use char* generic pointers, and those 13275 * that use void* generic pointers. It works with the latter 13276 * because both ANSI C and C++ allow castless assignment from 13277 * any pointer type to void*, and deal with argument conversions 13278 * as though doing an assignment. 13279 */ 13280 return (void *) realloc( (char *) ptr, size ); 13281 } 13282 13283 void codeYYfree (void * ptr ) 13284 { 13285 free( (char *) ptr ); /* see codeYYrealloc() for (char *) cast */ 13286 } 13287 13288 #define YYTABLES_NAME "yytables" 13289 13290 #line 3223 "code.l" 13291 13292 13293 13294 /*@ ---------------------------------------------------------------------------- 13295 */ 13296 13297 static void saveObjCContext() 13298 { 13299 if (g_currentCtx) 13300 { 13301 g_currentCtx->format+=QCString().sprintf("$c%d",g_currentCtxId); 13302 if (g_braceCount==0 && YY_START==ObjCCall) 13303 { 13304 g_currentCtx->objectTypeOrName=g_currentCtx->format.mid(1); 13305 //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data()); 13306 } 13307 g_contextStack.push(g_currentCtx); 13308 } 13309 else 13310 { 13311 //printf("Trying to save NULL context!\n"); 13312 } 13313 ObjCCallCtx *newCtx = new ObjCCallCtx; 13314 newCtx->id = g_currentCtxId; 13315 newCtx->lexState = YY_START; 13316 newCtx->braceCount = g_braceCount; 13317 newCtx->objectType = 0; 13318 newCtx->objectVar = 0; 13319 newCtx->method = 0; 13320 //printf("save state=%d\n",YY_START); 13321 g_contextDict.insert(g_currentCtxId,newCtx); 13322 g_currentCtx = newCtx; 13323 g_braceCount = 0; 13324 g_currentCtxId++; 13325 } 13326 13327 static void restoreObjCContext() 13328 { 13329 //printf("restore state=%d->%d\n",YY_START,g_currentCtx->lexState); 13330 BEGIN(g_currentCtx->lexState); 13331 g_braceCount = g_currentCtx->braceCount; 13332 if (!g_contextStack.isEmpty()) 13333 { 13334 g_currentCtx = g_contextStack.pop(); 13335 } 13336 else 13337 { 13338 g_currentCtx = 0; 13339 //printf("Trying to pop context while g_contextStack is empty!\n"); 13340 } 13341 } 13342 13343 void resetCCodeParserState() 13344 { 13345 //printf("***initParseCodeContext()\n"); 13346 g_theVarContext.clear(); 13347 g_classScopeLengthStack.setAutoDelete(TRUE); 13348 g_classScopeLengthStack.clear(); 13349 delete g_codeClassSDict; 13350 g_codeClassSDict = new ClassSDict(17); 13351 g_codeClassSDict->setAutoDelete(TRUE); 13352 g_codeClassSDict->clear(); 13353 g_curClassBases.clear(); 13354 g_anchorCount = 0; 13355 } 13356 13357 void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s, 13358 bool exBlock, const char *exName,FileDef *fd, 13359 int startLine,int endLine,bool inlineFragment, 13360 MemberDef *memberDef) 13361 { 13362 //printf("***parseCode() exBlock=%d exName=%s fd=%p\n",exBlock,exName,fd); 13363 if (s.isEmpty()) return; 13364 if (g_codeClassSDict==0) 13365 { 13366 resetCCodeParserState(); 13367 } 13368 g_code = &od; 13369 g_inputString = s; 13370 g_inputPosition = 0; 13371 g_currentFontClass = 0; 13372 g_needsTermination = FALSE; 13373 g_inFunctionTryBlock = FALSE; 13374 if (endLine!=-1) 13375 g_inputLines = endLine+1; 13376 else 13377 g_inputLines = countLines(); 13378 13379 if (startLine!=-1) 13380 g_yyLineNr = startLine; 13381 else 13382 g_yyLineNr = 1; 13383 13384 g_curlyCount = 0; 13385 g_bodyCurlyCount = 0; 13386 g_bracketCount = 0; 13387 g_sharpCount = 0; 13388 g_insideTemplate = FALSE; 13389 g_theCallContext.clear(); 13390 g_scopeStack.clear(); 13391 g_classScope = className; 13392 g_exampleBlock = exBlock; 13393 g_exampleName = exName; 13394 g_sourceFileDef = fd; 13395 g_lineNumbers = fd!=0; 13396 if (exBlock && fd==0) 13397 { 13398 // create a dummy filedef for the example 13399 g_sourceFileDef = new FileDef("",exName); 13400 } 13401 if (g_sourceFileDef) 13402 { 13403 setCurrentDoc(g_sourceFileDef->name(),g_sourceFileDef->getSourceFileBase()); 13404 g_insideObjC = g_sourceFileDef->name().lower().right(2)==".m" || 13405 g_sourceFileDef->name().lower().right(3)==".mm"; 13406 } 13407 g_currentDefinition = 0; 13408 g_currentMemberDef = 0; 13409 g_searchingForBody = exBlock; 13410 g_insideBody = FALSE; 13411 g_bracketCount = 0; 13412 if (!g_exampleName.isEmpty()) 13413 { 13414 g_exampleFile = convertNameToFile(g_exampleName+"-example"); 13415 } 13416 g_includeCodeFragment = inlineFragment; 13417 //printf("** exBlock=%d exName=%s include=%d\n",exBlock,exName,inlineFragment); 13418 startCodeLine(); 13419 g_type.resize(0); 13420 g_name.resize(0); 13421 g_args.resize(0); 13422 g_parmName.resize(0); 13423 g_parmType.resize(0); 13424 if (memberDef) setParameterList(memberDef); 13425 codeYYrestart( codeYYin ); 13426 BEGIN( Body ); 13427 codeYYlex(); 13428 g_lexInit=TRUE; 13429 if (g_needsTermination) 13430 { 13431 endFontClass(); 13432 g_code->endCodeLine(); 13433 } 13434 if (exBlock && fd==0) 13435 { 13436 // delete the temporary file definition used for this example 13437 delete g_sourceFileDef; 13438 g_sourceFileDef=0; 13439 } 13440 return; 13441 } 13442 13443 void codeFreeScanner() 13444 { 13445 #if defined(YY_FLEX_SUBMINOR_VERSION) 13446 if (g_lexInit) 13447 { 13448 codeYYlex_destroy(); 13449 } 13450 #endif 13451 } 13452 13453 13454 13455 #if !defined(YY_FLEX_SUBMINOR_VERSION) 13456 extern "C" { // some bogus code to keep the compiler happy 13457 void codeYYdummy() { yy_flex_realloc(0,0); } 13458 } 13459 #elif YY_FLEX_SUBMINOR_VERSION<33 13460 #error "You seem to be using a version of flex newer than 2.5.4 but older than 2.5.33. These versions do NOT work with doxygen! Please use version <=2.5.4 or >=2.5.33 or expect things to be parsed wrongly!" 13461 #endif 13462 13463