|
Atrinik Server 2.5
|
00001 #line 2 "src/loaders/object.c" 00002 00003 #line 4 "src/loaders/object.c" 00004 00005 #define YY_INT_ALIGNED short int 00006 00007 /* A lexical scanner generated by flex */ 00008 00009 #define yy_create_buffer yy_object_create_buffer 00010 #define yy_delete_buffer yy_object_delete_buffer 00011 #define yy_flex_debug yy_object_flex_debug 00012 #define yy_init_buffer yy_object_init_buffer 00013 #define yy_flush_buffer yy_object_flush_buffer 00014 #define yy_load_buffer_state yy_object_load_buffer_state 00015 #define yy_switch_to_buffer yy_object_switch_to_buffer 00016 #define yyin yy_objectin 00017 #define yyleng yy_objectleng 00018 #define yylex yy_objectlex 00019 #define yylineno yy_objectlineno 00020 #define yyout yy_objectout 00021 #define yyrestart yy_objectrestart 00022 #define yytext yy_objecttext 00023 #define yywrap yy_objectwrap 00024 #define yyalloc yy_objectalloc 00025 #define yyrealloc yy_objectrealloc 00026 #define yyfree yy_objectfree 00027 00028 #define FLEX_SCANNER 00029 #define YY_FLEX_MAJOR_VERSION 2 00030 #define YY_FLEX_MINOR_VERSION 5 00031 #define YY_FLEX_SUBMINOR_VERSION 35 00032 #if YY_FLEX_SUBMINOR_VERSION > 0 00033 #define FLEX_BETA 00034 #endif 00035 00036 /* First, we deal with platform-specific or compiler-specific issues. */ 00037 00038 /* begin standard C headers. */ 00039 #include <stdio.h> 00040 #include <string.h> 00041 #include <errno.h> 00042 #include <stdlib.h> 00043 00044 /* end standard C headers. */ 00045 00046 /* flex integer type definitions */ 00047 00048 #ifndef FLEXINT_H 00049 #define FLEXINT_H 00050 00051 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 00052 00053 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 00054 00055 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 00056 * if you want the limit (max/min) macros for int types. 00057 */ 00058 #ifndef __STDC_LIMIT_MACROS 00059 #define __STDC_LIMIT_MACROS 1 00060 #endif 00061 00062 #include <inttypes.h> 00063 typedef int8_t flex_int8_t; 00064 typedef uint8_t flex_uint8_t; 00065 typedef int16_t flex_int16_t; 00066 typedef uint16_t flex_uint16_t; 00067 typedef int32_t flex_int32_t; 00068 typedef uint32_t flex_uint32_t; 00069 #else 00070 typedef signed char flex_int8_t; 00071 typedef short int flex_int16_t; 00072 typedef int flex_int32_t; 00073 typedef unsigned char flex_uint8_t; 00074 typedef unsigned short int flex_uint16_t; 00075 typedef unsigned int flex_uint32_t; 00076 00077 /* Limits of integral types. */ 00078 #ifndef INT8_MIN 00079 #define INT8_MIN (-128) 00080 #endif 00081 #ifndef INT16_MIN 00082 #define INT16_MIN (-32767-1) 00083 #endif 00084 #ifndef INT32_MIN 00085 #define INT32_MIN (-2147483647-1) 00086 #endif 00087 #ifndef INT8_MAX 00088 #define INT8_MAX (127) 00089 #endif 00090 #ifndef INT16_MAX 00091 #define INT16_MAX (32767) 00092 #endif 00093 #ifndef INT32_MAX 00094 #define INT32_MAX (2147483647) 00095 #endif 00096 #ifndef UINT8_MAX 00097 #define UINT8_MAX (255U) 00098 #endif 00099 #ifndef UINT16_MAX 00100 #define UINT16_MAX (65535U) 00101 #endif 00102 #ifndef UINT32_MAX 00103 #define UINT32_MAX (4294967295U) 00104 #endif 00105 00106 #endif /* ! C99 */ 00107 00108 #endif /* ! FLEXINT_H */ 00109 00110 #ifdef __cplusplus 00111 00112 /* The "const" storage-class-modifier is valid. */ 00113 #define YY_USE_CONST 00114 00115 #else /* ! __cplusplus */ 00116 00117 /* C99 requires __STDC__ to be defined as 1. */ 00118 #if defined (__STDC__) 00119 00120 #define YY_USE_CONST 00121 00122 #endif /* defined (__STDC__) */ 00123 #endif /* ! __cplusplus */ 00124 00125 #ifdef YY_USE_CONST 00126 #define yyconst const 00127 #else 00128 #define yyconst 00129 #endif 00130 00131 /* Returned upon end-of-file. */ 00132 #define YY_NULL 0 00133 00134 /* Promotes a possibly negative, possibly signed char to an unsigned 00135 * integer for use as an array index. If the signed char is negative, 00136 * we want to instead treat it as an 8-bit unsigned char, hence the 00137 * double cast. 00138 */ 00139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 00140 00141 /* Enter a start condition. This macro really ought to take a parameter, 00142 * but we do it the disgusting crufty way forced on us by the ()-less 00143 * definition of BEGIN. 00144 */ 00145 #define BEGIN (yy_start) = 1 + 2 * 00146 00147 /* Translate the current start state into a value that can be later handed 00148 * to BEGIN to return to the state. The YYSTATE alias is for lex 00149 * compatibility. 00150 */ 00151 #define YY_START (((yy_start) - 1) / 2) 00152 #define YYSTATE YY_START 00153 00154 /* Action number for EOF rule of a given start state. */ 00155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 00156 00157 /* Special action meaning "start processing a new file". */ 00158 #define YY_NEW_FILE yy_objectrestart(yy_objectin ) 00159 00160 #define YY_END_OF_BUFFER_CHAR 0 00161 00162 /* Size of default input buffer. */ 00163 #ifndef YY_BUF_SIZE 00164 #ifdef __ia64__ 00165 /* On IA-64, the buffer size is 16k, not 8k. 00166 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. 00167 * Ditto for the __ia64__ case accordingly. 00168 */ 00169 #define YY_BUF_SIZE 32768 00170 #else 00171 #define YY_BUF_SIZE 16384 00172 #endif /* __ia64__ */ 00173 #endif 00174 00175 /* The state buf must be large enough to hold one state per character in the main buffer. 00176 */ 00177 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 00178 00179 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 00180 #define YY_TYPEDEF_YY_BUFFER_STATE 00181 typedef struct yy_buffer_state *YY_BUFFER_STATE; 00182 #endif 00183 00184 extern int yy_objectleng; 00185 00186 extern FILE *yy_objectin, *yy_objectout; 00187 00188 #define EOB_ACT_CONTINUE_SCAN 0 00189 #define EOB_ACT_END_OF_FILE 1 00190 #define EOB_ACT_LAST_MATCH 2 00191 00192 #define YY_LESS_LINENO(n) 00193 00194 /* Return all but the first "n" matched characters back to the input stream. */ 00195 #define yyless(n) \ 00196 do \ 00197 { \ 00198 /* Undo effects of setting up yy_objecttext. */ \ 00199 int yyless_macro_arg = (n); \ 00200 YY_LESS_LINENO(yyless_macro_arg);\ 00201 *yy_cp = (yy_hold_char); \ 00202 YY_RESTORE_YY_MORE_OFFSET \ 00203 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 00204 YY_DO_BEFORE_ACTION; /* set up yy_objecttext again */ \ 00205 } \ 00206 while ( 0 ) 00207 00208 #define unput(c) yyunput( c, (yytext_ptr) ) 00209 00210 #ifndef YY_TYPEDEF_YY_SIZE_T 00211 #define YY_TYPEDEF_YY_SIZE_T 00212 typedef size_t yy_size_t; 00213 #endif 00214 00215 #ifndef YY_STRUCT_YY_BUFFER_STATE 00216 #define YY_STRUCT_YY_BUFFER_STATE 00217 struct yy_buffer_state 00218 { 00219 FILE *yy_input_file; 00220 00221 char *yy_ch_buf; /* input buffer */ 00222 char *yy_buf_pos; /* current position in input buffer */ 00223 00224 /* Size of input buffer in bytes, not including room for EOB 00225 * characters. 00226 */ 00227 yy_size_t yy_buf_size; 00228 00229 /* Number of characters read into yy_ch_buf, not including EOB 00230 * characters. 00231 */ 00232 int yy_n_chars; 00233 00234 /* Whether we "own" the buffer - i.e., we know we created it, 00235 * and can realloc() it to grow it, and should free() it to 00236 * delete it. 00237 */ 00238 int yy_is_our_buffer; 00239 00240 /* Whether this is an "interactive" input source; if so, and 00241 * if we're using stdio for input, then we want to use getc() 00242 * instead of fread(), to make sure we stop fetching input after 00243 * each newline. 00244 */ 00245 int yy_is_interactive; 00246 00247 /* Whether we're considered to be at the beginning of a line. 00248 * If so, '^' rules will be active on the next match, otherwise 00249 * not. 00250 */ 00251 int yy_at_bol; 00252 00253 int yy_bs_lineno; 00254 int yy_bs_column; 00256 /* Whether to try to fill the input buffer when we reach the 00257 * end of it. 00258 */ 00259 int yy_fill_buffer; 00260 00261 int yy_buffer_status; 00262 00263 #define YY_BUFFER_NEW 0 00264 #define YY_BUFFER_NORMAL 1 00265 /* When an EOF's been seen but there's still some text to process 00266 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 00267 * shouldn't try reading from the input source any more. We might 00268 * still have a bunch of tokens to match, though, because of 00269 * possible backing-up. 00270 * 00271 * When we actually see the EOF, we change the status to "new" 00272 * (via yy_objectrestart()), so that the user can continue scanning by 00273 * just pointing yy_objectin at a new input file. 00274 */ 00275 #define YY_BUFFER_EOF_PENDING 2 00276 00277 }; 00278 #endif /* !YY_STRUCT_YY_BUFFER_STATE */ 00279 00280 /* Stack of input buffers. */ 00281 static size_t yy_buffer_stack_top = 0; 00282 static size_t yy_buffer_stack_max = 0; 00283 static YY_BUFFER_STATE * yy_buffer_stack = 0; 00285 /* We provide macros for accessing buffer states in case in the 00286 * future we want to put the buffer states in a more general 00287 * "scanner state". 00288 * 00289 * Returns the top of the stack, or NULL. 00290 */ 00291 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 00292 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 00293 : NULL) 00294 00295 /* Same as previous macro, but useful when we know that the buffer stack is not 00296 * NULL or when we need an lvalue. For internal use only. 00297 */ 00298 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 00299 00300 /* yy_hold_char holds the character lost when yy_objecttext is formed. */ 00301 static char yy_hold_char; 00302 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 00303 int yy_objectleng; 00304 00305 /* Points to current character in buffer. */ 00306 static char *yy_c_buf_p = (char *) 0; 00307 static int yy_init = 0; /* whether we need to initialize */ 00308 static int yy_start = 0; /* start state number */ 00309 00310 /* Flag which is used to allow yy_objectwrap()'s to do buffer switches 00311 * instead of setting up a fresh yy_objectin. A bit of a hack ... 00312 */ 00313 static int yy_did_buffer_switch_on_eof; 00314 00315 void yy_objectrestart (FILE *input_file ); 00316 void yy_object_switch_to_buffer (YY_BUFFER_STATE new_buffer ); 00317 YY_BUFFER_STATE yy_object_create_buffer (FILE *file,int size ); 00318 void yy_object_delete_buffer (YY_BUFFER_STATE b ); 00319 void yy_object_flush_buffer (YY_BUFFER_STATE b ); 00320 void yy_objectpush_buffer_state (YY_BUFFER_STATE new_buffer ); 00321 void yy_objectpop_buffer_state (void ); 00322 00323 static void yy_objectensure_buffer_stack (void ); 00324 static void yy_object_load_buffer_state (void ); 00325 static void yy_object_init_buffer (YY_BUFFER_STATE b,FILE *file ); 00326 00327 #define YY_FLUSH_BUFFER yy_object_flush_buffer(YY_CURRENT_BUFFER ) 00328 00329 YY_BUFFER_STATE yy_object_scan_buffer (char *base,yy_size_t size ); 00330 YY_BUFFER_STATE yy_object_scan_string (yyconst char *yy_str ); 00331 YY_BUFFER_STATE yy_object_scan_bytes (yyconst char *bytes,int len ); 00332 00333 void *yy_objectalloc (yy_size_t ); 00334 void *yy_objectrealloc (void *,yy_size_t ); 00335 void yy_objectfree (void * ); 00336 00337 #define yy_new_buffer yy_object_create_buffer 00338 00339 #define yy_set_interactive(is_interactive) \ 00340 { \ 00341 if ( ! YY_CURRENT_BUFFER ){ \ 00342 yy_objectensure_buffer_stack (); \ 00343 YY_CURRENT_BUFFER_LVALUE = \ 00344 yy_object_create_buffer(yy_objectin,YY_BUF_SIZE ); \ 00345 } \ 00346 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 00347 } 00348 00349 #define yy_set_bol(at_bol) \ 00350 { \ 00351 if ( ! YY_CURRENT_BUFFER ){\ 00352 yy_objectensure_buffer_stack (); \ 00353 YY_CURRENT_BUFFER_LVALUE = \ 00354 yy_object_create_buffer(yy_objectin,YY_BUF_SIZE ); \ 00355 } \ 00356 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 00357 } 00358 00359 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 00360 00361 /* Begin user sect3 */ 00362 00363 #define yy_objectwrap(n) 1 00364 #define YY_SKIP_YYWRAP 00365 00366 typedef unsigned char YY_CHAR; 00367 00368 FILE *yy_objectin = (FILE *) 0, *yy_objectout = (FILE *) 0; 00369 00370 typedef int yy_state_type; 00371 00372 extern int yy_objectlineno; 00373 00374 int yy_objectlineno = 1; 00375 00376 extern char *yy_objecttext; 00377 #define yytext_ptr yy_objecttext 00378 00379 static yy_state_type yy_get_previous_state (void ); 00380 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); 00381 static int yy_get_next_buffer (void ); 00382 static void yy_fatal_error (yyconst char msg[] ); 00383 00384 /* Done after the current pattern has been matched and before the 00385 * corresponding action - sets up yy_objecttext. 00386 */ 00387 #define YY_DO_BEFORE_ACTION \ 00388 (yytext_ptr) = yy_bp; \ 00389 yy_objectleng = (size_t) (yy_cp - yy_bp); \ 00390 (yy_hold_char) = *yy_cp; \ 00391 *yy_cp = '\0'; \ 00392 (yy_c_buf_p) = yy_cp; 00393 00394 #define YY_NUM_RULES 329 00395 #define YY_END_OF_BUFFER 330 00396 /* This struct is not used in this scanner, 00397 but its presence is necessary. */ 00398 struct yy_trans_info 00399 { 00400 flex_int32_t yy_verify; 00401 flex_int32_t yy_nxt; 00402 }; 00403 static yyconst flex_int16_t yy_accept[2916] = 00404 { 0, 00405 328, 328, 0, 0, 330, 328, 326, 328, 328, 328, 00406 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00407 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00408 328, 328, 328, 328, 328, 329, 5, 329, 329, 329, 00409 328, 326, 328, 327, 328, 328, 328, 328, 328, 328, 00410 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00411 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00412 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00413 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00414 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00415 00416 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00417 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00418 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00419 328, 0, 5, 0, 5, 0, 0, 0, 328, 328, 00420 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00421 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00422 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00423 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00424 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00425 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00426 00427 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00428 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00429 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00430 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00431 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00432 328, 328, 54, 54, 328, 55, 55, 56, 56, 328, 00433 0, 52, 52, 328, 328, 328, 328, 328, 328, 328, 00434 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00435 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00436 328, 328, 328, 328, 328, 328, 328, 328, 17, 328, 00437 00438 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00439 328, 328, 38, 38, 328, 328, 328, 328, 328, 328, 00440 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00441 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00442 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00443 328, 328, 328, 3, 328, 328, 328, 328, 328, 328, 00444 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00445 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00446 328, 328, 328, 328, 328, 328, 328, 328, 40, 40, 00447 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00448 00449 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00450 328, 328, 48, 48, 328, 328, 328, 328, 328, 328, 00451 328, 328, 0, 328, 328, 328, 328, 328, 328, 328, 00452 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00453 328, 328, 328, 328, 328, 35, 35, 328, 33, 33, 00454 328, 328, 328, 328, 328, 328, 46, 46, 328, 328, 00455 32, 32, 328, 328, 328, 328, 44, 44, 328, 328, 00456 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00457 36, 36, 328, 328, 328, 328, 328, 328, 328, 328, 00458 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00459 00460 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00461 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00462 328, 328, 328, 328, 328, 328, 328, 16, 328, 328, 00463 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00464 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00465 328, 328, 328, 328, 328, 37, 37, 328, 328, 328, 00466 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00467 328, 328, 328, 328, 328, 328, 328, 31, 31, 328, 00468 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00469 328, 328, 328, 328, 328, 328, 328, 328, 34, 34, 00470 00471 139, 139, 328, 328, 0, 328, 328, 328, 328, 328, 00472 328, 328, 328, 1, 1, 328, 328, 328, 328, 328, 00473 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00474 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00475 328, 328, 328, 29, 29, 328, 328, 328, 45, 45, 00476 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00477 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00478 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00479 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00480 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00481 00482 328, 328, 328, 328, 143, 143, 328, 328, 328, 328, 00483 328, 328, 328, 328, 328, 328, 328, 6, 6, 328, 00484 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00485 328, 61, 61, 328, 328, 328, 328, 328, 328, 328, 00486 328, 328, 328, 328, 328, 328, 328, 8, 8, 328, 00487 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00488 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00489 328, 328, 64, 64, 328, 328, 328, 328, 328, 328, 00490 328, 328, 328, 328, 328, 328, 328, 57, 57, 0, 00491 328, 58, 58, 104, 104, 59, 59, 11, 11, 328, 00492 00493 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00494 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00495 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00496 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00497 328, 42, 42, 328, 328, 328, 328, 328, 328, 328, 00498 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00499 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00500 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00501 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00502 328, 74, 74, 62, 62, 328, 72, 72, 328, 328, 00503 00504 328, 328, 39, 39, 41, 41, 328, 328, 328, 328, 00505 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00506 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00507 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00508 328, 328, 328, 328, 328, 328, 328, 171, 171, 328, 00509 26, 26, 328, 328, 328, 328, 73, 73, 328, 328, 00510 328, 328, 328, 285, 285, 328, 328, 328, 328, 328, 00511 328, 66, 66, 328, 328, 328, 328, 328, 328, 328, 00512 162, 162, 0, 4, 0, 53, 53, 328, 328, 328, 00513 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00514 00515 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00516 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00517 328, 328, 328, 328, 111, 111, 328, 276, 276, 328, 00518 328, 277, 277, 328, 328, 328, 328, 328, 328, 328, 00519 118, 118, 328, 115, 115, 328, 328, 328, 328, 107, 00520 107, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00521 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00522 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00523 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00524 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00525 00526 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00527 328, 328, 328, 328, 328, 328, 328, 279, 279, 328, 00528 328, 328, 328, 2, 2, 328, 328, 328, 328, 328, 00529 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00530 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00531 328, 328, 328, 328, 328, 328, 328, 328, 60, 60, 00532 328, 131, 131, 328, 328, 328, 328, 328, 328, 328, 00533 328, 328, 328, 328, 328, 328, 328, 130, 130, 287, 00534 287, 106, 106, 328, 328, 328, 328, 49, 49, 328, 00535 328, 67, 67, 328, 328, 105, 105, 328, 328, 328, 00536 00537 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00538 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00539 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00540 328, 175, 175, 328, 328, 328, 328, 328, 328, 328, 00541 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00542 328, 328, 328, 328, 328, 328, 47, 47, 328, 328, 00543 328, 328, 328, 116, 116, 328, 328, 328, 328, 127, 00544 127, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00545 328, 299, 299, 328, 167, 167, 328, 328, 168, 168, 00546 328, 328, 328, 328, 165, 165, 328, 328, 328, 328, 00547 00548 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00549 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00550 328, 328, 22, 22, 328, 328, 328, 328, 328, 328, 00551 119, 119, 328, 328, 328, 328, 328, 328, 149, 149, 00552 328, 328, 109, 109, 108, 108, 163, 163, 328, 328, 00553 328, 328, 328, 301, 301, 328, 328, 286, 286, 328, 00554 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00555 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00556 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00557 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00558 00559 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00560 328, 328, 9, 9, 328, 328, 328, 328, 328, 274, 00561 274, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00562 113, 113, 140, 140, 328, 328, 328, 328, 328, 10, 00563 10, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00564 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00565 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00566 328, 328, 328, 328, 328, 328, 328, 328, 150, 150, 00567 328, 328, 328, 328, 99, 99, 328, 328, 328, 328, 00568 328, 328, 328, 328, 328, 68, 68, 125, 125, 273, 00569 00570 273, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00571 328, 328, 328, 328, 122, 122, 328, 328, 328, 328, 00572 328, 328, 30, 30, 328, 328, 328, 295, 295, 328, 00573 328, 328, 328, 164, 164, 290, 290, 328, 328, 328, 00574 328, 82, 82, 328, 328, 328, 328, 328, 328, 89, 00575 89, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00576 328, 328, 328, 328, 328, 328, 328, 328, 25, 25, 00577 328, 328, 170, 170, 328, 328, 65, 65, 328, 43, 00578 43, 328, 328, 322, 322, 323, 323, 328, 328, 328, 00579 137, 137, 328, 300, 300, 328, 328, 78, 78, 328, 00580 00581 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00582 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00583 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00584 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00585 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00586 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00587 328, 328, 328, 328, 328, 328, 328, 328, 144, 144, 00588 328, 328, 328, 328, 328, 328, 312, 312, 328, 328, 00589 328, 328, 90, 90, 328, 328, 114, 114, 50, 50, 00590 328, 328, 14, 14, 328, 328, 328, 328, 328, 328, 00591 00592 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00593 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00594 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00595 328, 328, 328, 328, 328, 328, 328, 86, 86, 328, 00596 328, 328, 328, 328, 328, 328, 275, 275, 328, 328, 00597 148, 148, 328, 328, 328, 328, 63, 63, 328, 328, 00598 328, 328, 85, 85, 328, 328, 328, 328, 328, 328, 00599 328, 328, 328, 328, 328, 328, 328, 328, 166, 166, 00600 328, 328, 328, 328, 328, 83, 83, 328, 328, 328, 00601 328, 87, 87, 328, 328, 328, 328, 328, 328, 328, 00602 00603 289, 289, 328, 328, 328, 328, 328, 317, 317, 328, 00604 328, 328, 328, 328, 21, 21, 328, 328, 328, 328, 00605 328, 120, 120, 138, 138, 328, 328, 328, 328, 328, 00606 328, 328, 328, 145, 145, 328, 328, 328, 328, 328, 00607 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00608 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00609 328, 328, 328, 328, 328, 328, 12, 12, 328, 328, 00610 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00611 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00612 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00613 00614 328, 328, 328, 328, 328, 328, 28, 28, 328, 126, 00615 126, 328, 328, 328, 142, 142, 328, 328, 328, 328, 00616 328, 328, 147, 147, 282, 282, 328, 328, 328, 328, 00617 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00618 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00619 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00620 88, 88, 328, 129, 129, 328, 328, 328, 328, 328, 00621 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00622 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00623 328, 328, 328, 123, 123, 328, 328, 288, 288, 328, 00624 00625 328, 328, 328, 328, 328, 328, 176, 176, 92, 92, 00626 169, 169, 328, 328, 328, 328, 79, 79, 328, 102, 00627 102, 328, 328, 328, 328, 328, 319, 319, 328, 325, 00628 325, 328, 318, 318, 328, 328, 23, 23, 328, 328, 00629 328, 328, 328, 272, 272, 328, 328, 328, 328, 328, 00630 328, 328, 13, 13, 328, 328, 328, 328, 328, 328, 00631 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00632 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00633 328, 328, 328, 328, 80, 80, 328, 328, 124, 124, 00634 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00635 00636 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00637 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00638 328, 328, 328, 328, 328, 27, 27, 328, 128, 128, 00639 84, 84, 328, 328, 328, 328, 328, 328, 188, 188, 00640 328, 328, 328, 328, 185, 185, 328, 328, 328, 328, 00641 328, 328, 328, 208, 208, 184, 184, 328, 328, 328, 00642 328, 328, 328, 328, 190, 190, 328, 328, 328, 328, 00643 328, 328, 328, 197, 197, 328, 207, 207, 328, 328, 00644 328, 328, 328, 328, 328, 328, 156, 156, 328, 328, 00645 328, 328, 328, 328, 328, 328, 328, 76, 76, 7, 00646 00647 7, 77, 77, 75, 75, 328, 94, 94, 328, 328, 00648 294, 294, 328, 328, 328, 328, 328, 328, 117, 117, 00649 91, 91, 328, 297, 297, 152, 152, 328, 328, 328, 00650 328, 328, 328, 101, 101, 328, 328, 328, 328, 328, 00651 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00652 328, 110, 110, 18, 18, 19, 19, 20, 20, 174, 00653 174, 328, 71, 71, 328, 81, 81, 328, 328, 328, 00654 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00655 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00656 328, 328, 328, 298, 298, 173, 173, 328, 328, 218, 00657 00658 218, 328, 328, 328, 328, 216, 216, 328, 328, 328, 00659 328, 328, 328, 328, 226, 226, 214, 214, 328, 328, 00660 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 00661 328, 223, 223, 328, 225, 225, 328, 328, 172, 172, 00662 328, 328, 328, 151, 151, 328, 328, 191, 191, 328, 00663 195, 195, 328, 328, 328, 206, 206, 328, 328, 196, 00664 196, 328, 193, 193, 328, 328, 328, 328, 328, 189, 00665 189, 328, 328, 328, 328, 328, 328, 180, 180, 201, 00666 201, 328, 284, 284, 328, 328, 328, 328, 328, 328, 00667 328, 159, 159, 328, 328, 328, 328, 328, 328, 328, 00668 00669 328, 328, 328, 328, 328, 328, 328, 121, 121, 328, 00670 278, 278, 328, 103, 103, 328, 328, 328, 328, 328, 00671 304, 304, 328, 328, 328, 328, 315, 315, 281, 281, 00672 328, 328, 328, 328, 328, 328, 328, 328, 69, 69, 00673 328, 253, 253, 328, 265, 265, 328, 328, 250, 250, 00674 328, 328, 328, 328, 328, 249, 249, 328, 328, 328, 00675 328, 328, 255, 255, 328, 328, 328, 328, 328, 262, 00676 262, 328, 328, 328, 328, 234, 234, 328, 230, 230, 00677 328, 328, 328, 229, 229, 328, 328, 219, 219, 328, 00678 328, 328, 328, 328, 328, 213, 213, 328, 328, 328, 00679 00680 328, 328, 328, 237, 237, 241, 241, 328, 328, 313, 00681 313, 314, 314, 132, 132, 51, 51, 324, 324, 328, 00682 181, 181, 328, 328, 328, 328, 328, 328, 328, 179, 00683 179, 328, 328, 328, 328, 182, 182, 187, 187, 328, 00684 204, 204, 328, 328, 146, 146, 328, 328, 328, 328, 00685 155, 155, 328, 283, 283, 328, 328, 328, 100, 100, 00686 112, 112, 328, 328, 311, 311, 161, 161, 328, 328, 00687 328, 15, 15, 328, 328, 328, 328, 328, 328, 328, 00688 308, 308, 328, 328, 280, 280, 328, 98, 98, 328, 00689 321, 321, 270, 270, 141, 141, 328, 70, 70, 256, 00690 00691 256, 260, 260, 328, 328, 328, 269, 269, 261, 261, 00692 328, 258, 258, 328, 328, 328, 254, 254, 328, 328, 00693 328, 328, 245, 245, 328, 328, 328, 134, 134, 328, 00694 238, 238, 328, 328, 328, 328, 328, 328, 328, 212, 00695 212, 328, 328, 240, 240, 328, 239, 239, 222, 222, 00696 328, 233, 233, 328, 96, 96, 328, 328, 328, 202, 00697 202, 328, 328, 328, 328, 328, 328, 328, 328, 200, 00698 200, 328, 153, 153, 328, 328, 328, 157, 157, 154, 00699 154, 158, 158, 328, 328, 93, 93, 328, 328, 328, 00700 328, 328, 328, 305, 305, 328, 328, 328, 328, 316, 00701 00702 316, 320, 320, 24, 24, 97, 97, 293, 293, 246, 00703 246, 328, 328, 328, 328, 244, 244, 328, 328, 247, 00704 247, 252, 252, 328, 328, 328, 328, 328, 328, 328, 00705 242, 242, 328, 328, 328, 328, 328, 328, 328, 243, 00706 243, 328, 328, 328, 328, 328, 328, 211, 211, 194, 00707 194, 199, 199, 328, 328, 192, 192, 328, 328, 328, 00708 296, 296, 177, 177, 328, 328, 160, 160, 291, 291, 00709 328, 328, 328, 328, 309, 309, 328, 306, 306, 328, 00710 328, 328, 328, 328, 328, 266, 266, 328, 328, 133, 00711 133, 328, 328, 328, 328, 328, 221, 221, 232, 232, 00712 00713 235, 235, 328, 224, 224, 328, 328, 198, 198, 328, 00714 210, 210, 328, 328, 271, 271, 328, 328, 328, 328, 00715 328, 292, 292, 328, 328, 328, 302, 302, 328, 328, 00716 328, 259, 259, 264, 264, 257, 257, 328, 328, 328, 00717 217, 217, 328, 228, 228, 328, 328, 328, 328, 328, 00718 328, 205, 205, 328, 328, 136, 136, 328, 328, 310, 00719 310, 328, 307, 307, 263, 263, 328, 328, 268, 268, 00720 328, 328, 328, 328, 236, 236, 328, 328, 328, 186, 00721 186, 183, 183, 328, 178, 178, 95, 95, 303, 303, 00722 267, 267, 328, 328, 328, 328, 215, 215, 220, 220, 00723 00724 209, 209, 203, 203, 135, 135, 251, 251, 248, 248, 00725 227, 227, 231, 231, 0 00726 } ; 00727 00728 static yyconst flex_int32_t yy_ec[256] = 00729 { 0, 00730 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 00731 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 00732 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00733 1, 2, 1, 1, 5, 1, 1, 1, 1, 1, 00734 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 00735 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00736 1, 1, 1, 1, 9, 10, 11, 12, 13, 14, 00737 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 00738 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 00739 1, 1, 1, 35, 36, 1, 37, 38, 39, 40, 00740 00741 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 00742 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 00743 61, 62, 1, 1, 1, 1, 1, 1, 1, 1, 00744 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00746 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00747 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00748 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00749 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00750 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00751 00752 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00753 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00754 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00755 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00756 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00757 1, 1, 1, 1, 1 00758 } ; 00759 00760 static yyconst flex_int32_t yy_meta[63] = 00761 { 0, 00762 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 00763 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00764 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00765 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00766 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00767 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00768 1, 1 00769 } ; 00770 00771 static yyconst flex_int16_t yy_base[3485] = 00772 { 0, 00773 0, 35, 95, 97, 5405, 0, 5406, 5401, 3, 6, 00774 128, 92, 118, 177, 103, 172, 148, 99, 179, 81, 00775 195, 218, 207, 228, 228, 80, 230, 277, 276, 138, 00776 105, 283, 119, 5401, 164, 8, 5406, 10, 13, 304, 00777 0, 5406, 15, 5406, 17, 20, 5399, 122, 287, 109, 00778 154, 159, 235, 169, 193, 327, 224, 273, 277, 309, 00779 315, 298, 304, 318, 322, 337, 331, 337, 326, 340, 00780 319, 332, 339, 335, 335, 351, 334, 354, 5399, 349, 00781 337, 5364, 362, 364, 364, 362, 382, 387, 385, 379, 00782 390, 387, 385, 5363, 384, 390, 398, 396, 386, 394, 00783 00784 407, 392, 408, 430, 441, 434, 410, 431, 445, 442, 00785 447, 465, 460, 452, 437, 468, 437, 455, 448, 495, 00786 461, 467, 483, 177, 499, 484, 5396, 486, 5395, 5394, 00787 476, 22, 5406, 24, 5406, 27, 29, 517, 5393, 500, 00788 511, 501, 497, 504, 508, 514, 516, 525, 519, 521, 00789 539, 522, 539, 5358, 525, 553, 558, 535, 536, 536, 00790 563, 5391, 553, 541, 537, 545, 579, 5390, 561, 571, 00791 572, 576, 577, 562, 586, 5355, 586, 594, 5388, 583, 00792 5387, 586, 643, 585, 578, 582, 598, 693, 694, 689, 00793 692, 697, 698, 697, 687, 702, 703, 691, 625, 705, 00794 00795 744, 705, 707, 5352, 688, 709, 711, 699, 713, 698, 00796 5385, 704, 706, 751, 750, 752, 746, 750, 760, 5350, 00797 744, 5349, 740, 761, 744, 5382, 763, 760, 784, 770, 00798 5381, 5346, 5345, 754, 759, 767, 779, 776, 794, 798, 00799 789, 809, 5344, 790, 801, 5343, 5376, 815, 797, 807, 00800 5375, 5374, 0, 5373, 790, 0, 5372, 0, 5371, 804, 00801 823, 0, 5370, 816, 807, 817, 822, 813, 826, 816, 00802 5369, 822, 832, 5334, 5333, 815, 841, 836, 873, 832, 00803 5366, 851, 5365, 838, 855, 861, 848, 863, 854, 5364, 00804 865, 870, 5363, 869, 5328, 5327, 858, 638, 5406, 5359, 00805 00806 5359, 5358, 863, 863, 5357, 865, 862, 5322, 876, 864, 00807 878, 883, 0, 5355, 873, 5354, 890, 912, 909, 904, 00808 902, 893, 907, 921, 900, 923, 920, 936, 934, 946, 00809 933, 951, 921, 926, 933, 5319, 935, 5318, 932, 958, 00810 952, 5351, 971, 5316, 961, 962, 965, 966, 963, 994, 00811 978, 964, 999, 5406, 5348, 5348, 965, 984, 983, 994, 00812 1003, 1013, 1014, 1000, 5347, 1013, 1013, 5312, 1000, 1005, 00813 5311, 5310, 1018, 5343, 1021, 1007, 1017, 5342, 1015, 1031, 00814 1018, 1018, 1038, 1035, 1032, 1038, 1036, 5307, 0, 5340, 00815 1053, 1039, 1056, 1041, 1065, 1059, 5339, 1052, 1058, 5304, 00816 00817 1073, 1071, 1058, 5337, 1071, 1078, 1060, 1073, 1077, 1079, 00818 5302, 1063, 0, 5335, 1086, 1090, 1077, 1085, 5334, 5333, 00819 1075, 5332, 1120, 1091, 5331, 5330, 5329, 5328, 1076, 1078, 00820 1098, 5327, 1107, 1102, 1116, 1125, 1118, 1110, 1110, 1129, 00821 1131, 1128, 1129, 1116, 1128, 0, 5326, 1129, 0, 5325, 00822 1121, 1139, 1135, 1141, 1143, 1135, 0, 5324, 1146, 1147, 00823 0, 5323, 1132, 1150, 1155, 1146, 0, 5322, 5321, 1162, 00824 1176, 5320, 1169, 1182, 1166, 5319, 1180, 1172, 1185, 1180, 00825 0, 5318, 1177, 1179, 1193, 1180, 1187, 1179, 1190, 1191, 00826 1181, 1184, 1196, 1196, 1193, 1192, 1193, 1197, 1216, 1232, 00827 00828 1196, 1212, 1208, 1239, 1226, 1241, 1227, 1245, 1229, 1244, 00829 1238, 1236, 1277, 5283, 1278, 5316, 5315, 1253, 5314, 5313, 00830 1251, 1250, 1261, 5312, 5311, 1258, 1304, 5406, 5309, 1259, 00831 1257, 5275, 5308, 1261, 1296, 1287, 1279, 1298, 1287, 1304, 00832 1294, 1290, 1306, 1311, 1306, 5307, 1299, 1302, 1317, 1326, 00833 5272, 1313, 1312, 1335, 1319, 0, 5305, 1338, 5270, 1323, 00834 5303, 1332, 1346, 1330, 1346, 1329, 1353, 1344, 1345, 5302, 00835 1348, 262, 1342, 5267, 1358, 5300, 1346, 0, 5299, 1343, 00836 1369, 1368, 1365, 5298, 1354, 5297, 1358, 1378, 1378, 1380, 00837 1379, 5296, 1377, 1384, 1391, 1383, 1384, 1381, 0, 5295, 00838 00839 0, 5294, 5293, 5292, 1410, 5291, 5290, 5289, 5288, 5287, 00840 1398, 1392, 1405, 0, 5286, 1410, 1394, 1399, 1402, 1404, 00841 1413, 1405, 1409, 1411, 1425, 1420, 1428, 1433, 1433, 1425, 00842 1426, 1439, 1428, 1435, 1456, 1457, 5251, 1459, 1450, 1454, 00843 1452, 1456, 5250, 0, 5283, 5282, 1463, 5281, 0, 5280, 00844 1458, 1453, 1473, 5279, 1474, 5278, 1467, 1473, 1475, 1472, 00845 1480, 1483, 1475, 1488, 1476, 1482, 1483, 1476, 1495, 1492, 00846 1504, 1495, 1508, 1501, 1510, 1510, 1511, 1516, 1506, 1521, 00847 1507, 1504, 1515, 1527, 1519, 1519, 1522, 1533, 5243, 1535, 00848 1527, 1539, 1530, 1525, 1549, 1540, 1553, 1551, 1542, 1556, 00849 00850 1552, 5276, 5275, 1547, 0, 5274, 5273, 1551, 1561, 1575, 00851 1574, 5272, 5271, 1563, 1568, 1563, 1576, 0, 5270, 1585, 00852 1569, 1575, 5235, 1583, 1574, 1584, 5268, 1593, 1588, 1600, 00853 1597, 0, 5267, 1612, 1592, 1588, 1596, 1616, 1604, 1616, 00854 1605, 1622, 1626, 5232, 1612, 1624, 1622, 0, 5265, 1628, 00855 1618, 5230, 5263, 1638, 5262, 1619, 1635, 5261, 1628, 5260, 00856 1634, 1638, 1629, 1632, 5259, 1643, 1638, 1647, 1643, 1649, 00857 5258, 1646, 0, 5257, 1663, 5256, 5255, 5254, 1648, 5253, 00858 1667, 1652, 5252, 1673, 5217, 5250, 5249, 0, 5248, 1693, 00859 5247, 0, 5246, 0, 5245, 0, 5244, 0, 5243, 1668, 00860 00861 1679, 5242, 1670, 1668, 1721, 1687, 1688, 1689, 5241, 1701, 00862 1694, 1696, 1705, 1707, 5206, 1717, 5205, 1722, 1729, 1735, 00863 1754, 1741, 5238, 1743, 5237, 1744, 1749, 5236, 1750, 5235, 00864 1755, 1756, 1755, 1754, 1770, 5234, 5233, 5232, 1753, 1764, 00865 1776, 0, 5231, 1777, 5230, 5229, 1774, 1766, 1772, 1781, 00866 1778, 1789, 1773, 1789, 1791, 1792, 5228, 1779, 5227, 1788, 00867 1784, 5226, 1780, 1791, 1796, 1813, 5225, 1810, 1818, 1808, 00868 1822, 1823, 1806, 1809, 1818, 1834, 5190, 1832, 1831, 1825, 00869 1818, 1818, 1841, 1843, 1840, 1831, 1852, 1836, 1857, 1860, 00870 5223, 0, 5222, 0, 5221, 1861, 0, 5220, 1863, 1850, 00871 00872 1863, 1873, 0, 5219, 0, 5218, 5217, 1862, 1882, 1881, 00873 1869, 1885, 1881, 5216, 1875, 1889, 5215, 5214, 5213, 5212, 00874 1881, 1883, 1880, 5211, 1888, 1882, 5210, 1881, 1884, 5209, 00875 1886, 1885, 1893, 1892, 1894, 5174, 1892, 1899, 1897, 1909, 00876 1918, 1955, 5207, 1913, 5206, 1935, 5205, 0, 5204, 1926, 00877 0, 5203, 1944, 1937, 1932, 1932, 0, 5202, 5201, 1949, 00878 1958, 1942, 5166, 0, 5199, 1965, 1954, 5198, 5197, 5196, 00879 5161, 0, 5194, 1977, 5193, 5192, 5191, 1989, 1981, 5190, 00880 0, 5189, 1703, 5406, 103, 0, 5188, 1990, 2000, 5187, 00881 5186, 1991, 2005, 1997, 2009, 2007, 2001, 2011, 2015, 2001, 00882 00883 2009, 2046, 2089, 2019, 2020, 2034, 2038, 2044, 5185, 5184, 00884 2055, 5149, 5148, 2058, 5181, 2055, 2054, 2138, 5180, 5179, 00885 5178, 2062, 2054, 2051, 0, 5177, 2056, 0, 5176, 2068, 00886 2073, 0, 5175, 2072, 5174, 2065, 2062, 2080, 2084, 2072, 00887 0, 5173, 5172, 0, 5171, 5170, 2077, 2094, 2081, 0, 00888 5169, 5168, 2111, 2116, 2118, 5167, 2115, 2101, 2103, 5166, 00889 2123, 2107, 5165, 2122, 5164, 2125, 5163, 5162, 5161, 2115, 00890 2128, 2140, 5160, 2130, 5159, 2142, 2128, 5124, 5157, 2137, 00891 2149, 2157, 2139, 2150, 2163, 2158, 2156, 2169, 2171, 2171, 00892 2172, 2166, 2175, 2169, 2165, 2179, 5156, 2188, 2181, 5155, 00893 00894 5154, 2190, 2187, 2203, 5153, 5152, 5117, 2178, 5150, 5149, 00895 2188, 2199, 5148, 2195, 5147, 5146, 5145, 0, 5144, 5143, 00896 5108, 5141, 2195, 0, 5140, 2198, 5139, 5138, 2212, 2212, 00897 5137, 2195, 2196, 2209, 2215, 2208, 2250, 2227, 2213, 2229, 00898 2221, 2223, 2255, 2236, 2230, 2291, 2271, 2235, 2281, 2280, 00899 2294, 2240, 2271, 2288, 2336, 2298, 2289, 2300, 0, 5136, 00900 5135, 0, 5134, 2292, 5133, 2307, 2309, 2312, 2313, 2315, 00901 5132, 5131, 2322, 2314, 2324, 5130, 2313, 0, 5129, 0, 00902 5128, 0, 5127, 2326, 5126, 5125, 5124, 0, 5123, 2335, 00903 2330, 0, 5122, 5121, 2344, 0, 5120, 5119, 2344, 2345, 00904 00905 2350, 2347, 2361, 2359, 2354, 2368, 2366, 2366, 2377, 2362, 00906 2368, 2373, 2387, 2377, 2378, 2394, 2394, 2388, 2382, 2387, 00907 2402, 2401, 2402, 2395, 2416, 2401, 2405, 2419, 2397, 2414, 00908 5118, 0, 5117, 2401, 2406, 2407, 2431, 5116, 2422, 5115, 00909 2419, 2425, 2448, 2455, 2437, 5114, 5113, 5112, 5111, 2429, 00910 2442, 5110, 2436, 2438, 2447, 2443, 0, 5109, 5108, 2458, 00911 2464, 2457, 2459, 0, 5107, 5106, 5105, 2452, 5070, 0, 00912 5103, 2470, 2474, 2458, 5102, 2475, 2475, 2472, 5101, 2481, 00913 2472, 0, 5100, 2489, 0, 5099, 5098, 5097, 0, 5096, 00914 5095, 2474, 2491, 2484, 0, 5094, 2493, 5093, 2488, 5092, 00915 00916 2500, 5091, 5090, 2499, 2498, 2496, 2509, 2510, 2497, 2515, 00917 5089, 2516, 2515, 2511, 2521, 5088, 2520, 2515, 2526, 5087, 00918 2531, 5086, 0, 5085, 5084, 2519, 2520, 5083, 2525, 5082, 00919 0, 5081, 2526, 2543, 5080, 5079, 5078, 5077, 0, 5076, 00920 2548, 5075, 0, 5074, 0, 5073, 0, 5072, 2543, 5071, 00921 2536, 2536, 5070, 0, 5069, 2556, 2553, 0, 5068, 5067, 00922 2552, 2563, 2557, 2558, 2569, 2563, 2571, 2583, 2569, 2576, 00923 2575, 2579, 2601, 2616, 2583, 2599, 2592, 5066, 2595, 2590, 00924 2608, 2613, 2608, 2617, 2619, 2620, 2636, 2634, 2630, 2645, 00925 2640, 2642, 2647, 2631, 2640, 2653, 2644, 2644, 2660, 2661, 00926 00927 2651, 2655, 2673, 2671, 2672, 2664, 2683, 2673, 2677, 2690, 00928 5065, 2684, 0, 5064, 5063, 2675, 5062, 2685, 2684, 0, 00929 5061, 5060, 2682, 5059, 2691, 2679, 5058, 2696, 2692, 5057, 00930 0, 5056, 0, 5055, 5054, 2710, 2708, 5053, 5052, 0, 00931 5051, 5050, 2710, 2702, 2714, 2705, 2721, 2720, 2721, 2715, 00932 2714, 2721, 2725, 2729, 2737, 2725, 2741, 2744, 2730, 2735, 00933 2752, 2749, 2751, 2749, 2755, 2755, 2760, 2745, 2748, 2754, 00934 2761, 2753, 2750, 2767, 2773, 2764, 5049, 2778, 0, 5048, 00935 5047, 2769, 2782, 2772, 0, 5046, 5011, 5044, 2780, 2771, 00936 2782, 2785, 2784, 2794, 2804, 0, 5043, 0, 5042, 0, 00937 00938 5041, 5040, 5005, 2788, 5038, 2806, 2797, 2807, 2801, 5037, 00939 2811, 2796, 2812, 2815, 0, 5036, 5035, 2804, 2830, 5034, 00940 2814, 2819, 0, 5033, 5032, 2825, 2820, 0, 5031, 2824, 00941 2825, 2829, 5030, 0, 5029, 0, 5028, 2825, 2838, 5027, 00942 5026, 0, 5025, 5024, 5023, 2840, 2854, 2850, 2843, 0, 00943 5022, 5021, 5020, 2856, 5019, 2850, 2856, 2847, 2863, 5018, 00944 2850, 2877, 5017, 2852, 5016, 5015, 2868, 2872, 0, 5014, 00945 2885, 5013, 0, 5012, 2877, 2875, 0, 5011, 2883, 0, 00946 5010, 2865, 5009, 0, 5008, 0, 5007, 5006, 5005, 2867, 00947 0, 5004, 2891, 0, 5003, 2877, 2908, 0, 5002, 2888, 00948 00949 5001, 5000, 2897, 2900, 2897, 2886, 2905, 2906, 2913, 2918, 00950 2916, 2910, 2925, 2928, 2926, 2915, 2916, 2931, 2920, 2918, 00951 2933, 2927, 2926, 2941, 2939, 2942, 2952, 2946, 2957, 4999, 00952 4998, 2941, 2960, 4997, 2951, 2966, 2969, 2961, 2974, 2963, 00953 2979, 2978, 2978, 2971, 2967, 2974, 2978, 2982, 2989, 2976, 00954 2991, 2978, 2984, 3001, 2999, 3002, 3000, 3003, 3013, 2998, 00955 3002, 3008, 3017, 3008, 3006, 3022, 3028, 3018, 0, 4996, 00956 3034, 4995, 4994, 4993, 3026, 4992, 0, 4991, 4990, 4989, 00957 3039, 3025, 0, 4988, 3021, 3026, 0, 4987, 0, 4986, 00958 3042, 3042, 0, 4985, 4984, 4983, 4982, 3044, 3045, 3033, 00959 00960 3031, 4981, 3035, 3038, 3052, 3049, 3060, 3053, 3050, 4980, 00961 4979, 3067, 3057, 3064, 3079, 3065, 4944, 3082, 4977, 4942, 00962 3075, 3086, 3075, 3078, 3074, 3088, 4975, 3094, 4974, 3084, 00963 4973, 3097, 4972, 3097, 3085, 4937, 3100, 0, 4970, 3091, 00964 4969, 3101, 3102, 3097, 3102, 3100, 0, 4968, 3103, 3118, 00965 0, 4967, 3121, 4966, 4965, 4964, 0, 4963, 4962, 3119, 00966 3139, 3130, 0, 4961, 4960, 3123, 3140, 3132, 3140, 4959, 00967 3141, 3133, 4958, 4957, 4956, 3145, 4955, 4954, 0, 4953, 00968 3149, 3148, 4952, 4951, 4950, 0, 4949, 3150, 3150, 3133, 00969 3151, 0, 4948, 4947, 4946, 4945, 3155, 3158, 3153, 3146, 00970 00971 0, 4944, 3156, 4943, 3167, 4942, 3145, 0, 4941, 4940, 00972 3168, 3174, 4939, 3176, 0, 4938, 3178, 3180, 3183, 3175, 00973 4937, 0, 4936, 0, 4935, 3189, 3190, 4934, 4933, 4932, 00974 4931, 4930, 4929, 0, 4928, 3193, 4927, 3194, 4926, 3197, 00975 3188, 3179, 3191, 3207, 3205, 3205, 3195, 3194, 3206, 3213, 00976 3212, 3215, 3204, 3220, 3219, 3217, 3224, 3230, 3215, 3216, 00977 3223, 3221, 3224, 3232, 3235, 4925, 0, 4924, 4923, 4922, 00978 4921, 3234, 3243, 4920, 3253, 3253, 3241, 3240, 4919, 3243, 00979 3245, 3259, 3255, 3265, 3257, 3252, 4918, 4917, 3253, 3259, 00980 3273, 3259, 4882, 3277, 3277, 3272, 3284, 3274, 3277, 3274, 00981 00982 3288, 4915, 3300, 4914, 3291, 3295, 0, 4913, 4912, 0, 00983 4911, 4910, 4909, 4908, 0, 4907, 3302, 3306, 3308, 4906, 00984 3310, 3312, 0, 4905, 0, 0, 32, 100, 3306, 102, 00985 3315, 109, 3302, 3318, 111, 3316, 3306, 115, 3309, 117, 00986 118, 120, 3320, 3306, 3310, 3318, 3314, 124, 126, 3316, 00987 3313, 3335, 3329, 3336, 3322, 127, 157, 162, 168, 3336, 00988 0, 170, 203, 0, 208, 3340, 3338, 3350, 3361, 3344, 00989 215, 3362, 258, 3358, 3360, 3359, 3355, 3372, 3359, 3377, 00990 260, 266, 270, 275, 3367, 278, 3382, 3366, 281, 3362, 00991 3372, 3379, 3388, 0, 301, 310, 3378, 0, 311, 313, 00992 00993 455, 456, 477, 617, 3374, 618, 0, 621, 0, 622, 00994 0, 628, 3383, 3390, 3382, 3398, 0, 629, 633, 0, 00995 634, 3392, 644, 3405, 3410, 3403, 0, 723, 3401, 0, 00996 725, 726, 0, 728, 776, 3409, 0, 780, 3419, 3413, 00997 3414, 3416, 3425, 0, 872, 3414, 3419, 942, 1258, 1261, 00998 1264, 1267, 0, 1271, 1277, 1463, 3431, 1618, 1700, 3433, 00999 1701, 3419, 3417, 1708, 3419, 3420, 3434, 3430, 3425, 1711, 01000 3443, 3435, 3449, 3437, 3454, 1719, 3447, 3459, 3449, 3457, 01001 3466, 1722, 3466, 3462, 0, 1934, 1937, 1940, 0, 1945, 01002 3470, 3469, 1947, 1949, 3470, 1953, 3479, 2025, 3467, 3483, 01003 01004 2033, 3480, 3471, 2076, 3475, 2082, 2086, 3486, 3472, 3476, 01005 3483, 3479, 2088, 3482, 3476, 3499, 3492, 3499, 3486, 2117, 01006 2118, 2134, 2135, 3499, 3510, 0, 2139, 2231, 0, 2234, 01007 0, 2235, 2264, 2277, 2284, 2315, 2579, 2831, 0, 2891, 01008 3145, 3506, 3526, 3533, 0, 3536, 3522, 3515, 3541, 3534, 01009 3529, 3546, 3533, 0, 3550, 0, 3551, 3553, 3539, 3544, 01010 3556, 3550, 3532, 3559, 0, 3560, 3530, 3530, 3563, 3564, 01011 3557, 3568, 3569, 0, 3570, 3573, 0, 3574, 3556, 3577, 01012 3560, 3579, 3565, 3559, 3560, 3563, 0, 3588, 3591, 3592, 01013 3575, 3595, 3576, 3572, 3580, 3599, 3600, 0, 3601, 0, 01014 01015 3602, 0, 3604, 0, 3605, 3587, 0, 3610, 3593, 3613, 01016 0, 3614, 3616, 3604, 3600, 3597, 3620, 3622, 0, 3623, 01017 0, 3627, 3628, 0, 3629, 0, 3630, 3616, 3632, 3622, 01018 3625, 3621, 3613, 0, 3638, 3614, 3641, 3635, 3643, 3624, 01019 3622, 3649, 3650, 3651, 3642, 3653, 3643, 3655, 3656, 3657, 01020 3632, 0, 3660, 0, 3663, 0, 3666, 0, 3667, 0, 01021 3669, 3671, 0, 3673, 3674, 0, 3675, 3677, 3678, 3679, 01022 3681, 3672, 3684, 3660, 3665, 3688, 3689, 3666, 3691, 3692, 01023 3664, 3668, 3675, 3696, 3697, 3667, 3688, 3680, 3686, 3702, 01024 3703, 3678, 3685, 0, 3706, 0, 3707, 3690, 3709, 0, 01025 01026 3710, 3712, 3696, 3716, 3717, 0, 3719, 3705, 3700, 3725, 01027 3721, 3716, 3734, 3720, 0, 3737, 0, 3738, 3724, 3729, 01028 3741, 3736, 3718, 3745, 3746, 3715, 3749, 3750, 3742, 3753, 01029 3754, 0, 3755, 3756, 0, 3757, 3741, 3761, 0, 3762, 01030 3764, 3765, 3766, 0, 3769, 3770, 3773, 0, 3774, 3769, 01031 0, 3777, 3778, 3759, 3756, 0, 3782, 3783, 3763, 0, 01032 3785, 3777, 0, 3787, 3763, 3766, 3791, 3774, 3782, 0, 01033 3794, 3773, 3785, 3797, 3798, 3799, 3800, 0, 3801, 0, 01034 3802, 3796, 0, 3805, 3806, 3807, 3785, 3800, 3796, 3815, 01035 3816, 0, 3819, 3822, 3825, 3826, 3813, 3817, 3829, 3830, 01036 01037 3832, 3804, 3834, 3835, 3825, 3819, 3819, 0, 3842, 3843, 01038 0, 3844, 3837, 0, 3846, 3827, 3848, 3840, 3839, 3844, 01039 0, 3852, 3835, 3854, 3857, 3858, 0, 3859, 0, 3860, 01040 3862, 3863, 3866, 3867, 3869, 3870, 3871, 3872, 0, 3874, 01041 3876, 0, 3880, 3882, 0, 3883, 3884, 3885, 0, 3886, 01042 3872, 3862, 3889, 3890, 3876, 0, 3892, 3893, 3883, 3895, 01043 3889, 3897, 0, 3898, 3867, 3900, 3901, 3893, 3903, 0, 01044 3904, 3878, 3887, 3896, 3908, 0, 3909, 3903, 0, 3911, 01045 3912, 3892, 3889, 0, 3917, 3918, 3899, 0, 3921, 3914, 01046 3899, 3902, 3928, 3911, 3920, 0, 3932, 3936, 3926, 3939, 01047 01048 3940, 3943, 3944, 0, 3945, 0, 3946, 3940, 3949, 0, 01049 3950, 0, 3952, 0, 3955, 0, 3956, 0, 3958, 3934, 01050 0, 3961, 3942, 3941, 3964, 3946, 3952, 3968, 3969, 0, 01051 3970, 3971, 3965, 3962, 3974, 0, 3976, 0, 3977, 3978, 01052 0, 3979, 3967, 3981, 0, 3982, 3958, 3966, 3985, 3986, 01053 0, 3987, 3989, 0, 3992, 3993, 3996, 3990, 0, 3998, 01054 0, 3999, 4002, 3996, 0, 4004, 0, 4005, 4006, 4007, 01055 3989, 0, 4010, 3995, 3988, 4015, 4009, 4017, 4000, 4019, 01056 0, 4020, 4021, 4022, 0, 4023, 4024, 0, 4026, 4027, 01057 0, 4028, 0, 4029, 0, 4030, 4032, 0, 4033, 0, 01058 01059 4034, 0, 4035, 4036, 4017, 4024, 0, 4040, 0, 4043, 01060 4036, 0, 4047, 4024, 4049, 4032, 0, 4051, 4041, 4053, 01061 4054, 4055, 0, 4056, 4050, 4051, 4059, 0, 4060, 4035, 01062 0, 4062, 4043, 4042, 4065, 4048, 4054, 4070, 4071, 0, 01063 4072, 4074, 4068, 0, 4077, 4079, 0, 4081, 0, 4082, 01064 4083, 0, 4084, 4074, 0, 4088, 4075, 4093, 4083, 0, 01065 4095, 4098, 4073, 4100, 4101, 4102, 4086, 4105, 4106, 0, 01066 4107, 4093, 0, 4109, 4095, 4093, 4112, 0, 4113, 0, 01067 4114, 0, 4116, 4117, 4094, 0, 4120, 4090, 4123, 4124, 01068 4125, 4115, 4121, 0, 4129, 4112, 4131, 4133, 4134, 0, 01069 01070 4135, 0, 4137, 0, 4140, 0, 4141, 0, 4142, 0, 01071 4143, 4124, 4124, 4131, 4148, 0, 4150, 4151, 4152, 0, 01072 4153, 0, 4155, 4157, 4141, 4147, 4161, 4147, 4163, 4153, 01073 0, 4165, 4166, 4141, 4168, 4169, 4170, 4153, 4175, 0, 01074 4176, 4162, 4157, 4179, 4162, 4181, 4151, 0, 4183, 0, 01075 4184, 0, 4185, 4186, 4189, 0, 4191, 4184, 4176, 4196, 01076 0, 4197, 0, 4198, 4189, 4176, 0, 4202, 0, 4203, 01077 4204, 4207, 4191, 4211, 0, 4212, 4213, 0, 4214, 4215, 01078 4196, 4191, 4218, 4219, 4220, 0, 4223, 4224, 4210, 0, 01079 4226, 4206, 4230, 4213, 4232, 4202, 0, 4234, 0, 4235, 01080 01081 0, 4236, 4238, 0, 4239, 4231, 4221, 0, 4242, 4225, 01082 0, 4246, 4247, 4248, 0, 4249, 4250, 4240, 4252, 4254, 01083 4256, 0, 4257, 4258, 4260, 4262, 0, 4263, 4264, 4265, 01084 4235, 0, 4267, 0, 4270, 0, 4272, 4273, 4265, 4255, 01085 0, 4276, 4259, 0, 4278, 4280, 4281, 4282, 4283, 4284, 01086 4285, 0, 4286, 4287, 4288, 0, 4289, 4290, 4291, 0, 01087 4292, 4293, 0, 4295, 0, 4296, 4297, 4298, 0, 4299, 01088 4300, 4301, 4304, 4306, 0, 4307, 4308, 4309, 4310, 0, 01089 4311, 0, 4312, 4313, 0, 4314, 0, 4315, 0, 4316, 01090 0, 4317, 4318, 4319, 4320, 4321, 0, 4322, 0, 4323, 01091 01092 0, 4324, 0, 4325, 0, 4326, 0, 4327, 0, 4328, 01093 0, 4329, 0, 4330, 5406, 4332, 4334, 4336, 4337, 4339, 01094 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 01095 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 01096 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 01097 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 01098 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 01099 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 01100 4401, 4402, 4403, 4404, 4405, 4407, 4408, 4409, 4410, 4411, 01101 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 01102 01103 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 01104 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 01105 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 01106 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 01107 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 01108 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 01109 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 01110 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 01111 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 01112 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 01113 01114 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 01115 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 01116 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 01117 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 01118 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 01119 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 01120 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 01121 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 01122 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 01123 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 01124 01125 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 01126 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 01127 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 01128 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 01129 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 01130 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 01131 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 01132 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 01133 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 01134 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 01135 01136 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 01137 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 01138 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 01139 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 01140 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 01141 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 01142 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 01143 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 01144 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 01145 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 01146 01147 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 01148 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 01149 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 01150 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 01151 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 01152 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 01153 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 01154 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 01155 4902, 4903, 4904, 4905 01156 } ; 01157 01158 static yyconst flex_int16_t yy_def[3485] = 01159 { 0, 01160 2916, 2915, 2917, 2917, 2915, 2918, 2915, 2918, 2919, 2918, 01161 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01162 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01163 2918, 2918, 2918, 2918, 2918, 2920, 2915, 2920, 2920, 2920, 01164 2918, 2915, 2919, 2915, 2919, 2918, 2918, 2918, 2918, 2918, 01165 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01166 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01167 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01168 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01169 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01170 01171 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01172 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01173 2918, 2918, 2918, 2918, 2918, 2918, 2921, 2918, 2922, 2923, 01174 2918, 2920, 2915, 2920, 2915, 2920, 2920, 2920, 2924, 2918, 01175 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01176 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01177 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01178 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2925, 2918, 01179 2918, 2918, 2915, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01180 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01181 01182 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01183 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01184 2918, 2918, 2918, 2918, 2918, 2926, 2918, 2918, 2918, 2918, 01185 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01186 2918, 2918, 2918, 2918, 2918, 2918, 2927, 2918, 2918, 2918, 01187 2918, 2918, 2921, 2921, 2918, 2922, 2922, 2923, 2923, 2918, 01188 2920, 2924, 2924, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01189 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01190 2928, 2918, 2929, 2918, 2918, 2918, 2918, 2918, 2918, 2930, 01191 2918, 2918, 2931, 2918, 2918, 2918, 2918, 2918, 2915, 2918, 01192 01193 2932, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01194 2918, 2918, 2925, 2925, 2918, 2933, 2918, 2918, 2918, 2918, 01195 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01196 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01197 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01198 2918, 2918, 2918, 2915, 2918, 2918, 2918, 2918, 2918, 2918, 01199 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01200 2918, 2918, 2918, 2934, 2918, 2918, 2918, 2918, 2918, 2918, 01201 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2926, 2926, 01202 2918, 2918, 2918, 2918, 2918, 2918, 2935, 2918, 2918, 2918, 01203 01204 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01205 2918, 2918, 2927, 2927, 2918, 2918, 2918, 2918, 2936, 2937, 01206 2918, 2918, 2920, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01207 2918, 2938, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01208 2918, 2918, 2918, 2918, 2918, 2928, 2928, 2918, 2929, 2929, 01209 2918, 2918, 2918, 2918, 2918, 2918, 2930, 2930, 2918, 2918, 01210 2931, 2931, 2918, 2918, 2918, 2918, 2932, 2932, 2939, 2918, 01211 2918, 2940, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01212 2933, 2933, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01213 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01214 01215 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01216 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2941, 2918, 01217 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2915, 2918, 2918, 01218 2918, 2918, 2942, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01219 2918, 2918, 2918, 2918, 2918, 2943, 2918, 2918, 2918, 2918, 01220 2918, 2918, 2918, 2918, 2918, 2934, 2934, 2918, 2918, 2918, 01221 2944, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01222 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2935, 2935, 2918, 01223 2918, 2918, 2918, 2918, 2918, 2945, 2918, 2918, 2918, 2918, 01224 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2936, 2936, 01225 01226 2937, 2937, 2918, 2946, 2920, 2918, 2947, 2948, 2949, 2950, 01227 2918, 2918, 2918, 2938, 2938, 2918, 2918, 2918, 2918, 2918, 01228 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01229 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01230 2918, 2918, 2918, 2939, 2939, 2918, 2918, 2918, 2940, 2940, 01231 2918, 2918, 2918, 2951, 2918, 2918, 2918, 2918, 2918, 2918, 01232 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01233 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01234 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01235 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01236 01237 2918, 2952, 2953, 2918, 2941, 2941, 2954, 2918, 2918, 2918, 01238 2918, 2955, 2956, 2918, 2918, 2918, 2918, 2942, 2942, 2918, 01239 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01240 2918, 2943, 2943, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01241 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2944, 2944, 2918, 01242 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2957, 2918, 2958, 01243 2918, 2918, 2918, 2918, 2959, 2918, 2918, 2918, 2918, 2918, 01244 2960, 2918, 2945, 2945, 2918, 2918, 2918, 2918, 2918, 2961, 01245 2918, 2918, 2918, 2918, 2918, 2918, 2962, 2946, 2946, 2920, 01246 2963, 2947, 2947, 2948, 2948, 2949, 2949, 2950, 2950, 2918, 01247 01248 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01249 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01250 2918, 2918, 2964, 2918, 2965, 2918, 2918, 2966, 2918, 2918, 01251 2918, 2918, 2918, 2918, 2918, 2967, 2918, 2968, 2918, 2918, 01252 2918, 2951, 2951, 2918, 2969, 2918, 2918, 2918, 2918, 2918, 01253 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01254 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01255 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01256 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01257 2918, 2952, 2952, 2953, 2953, 2918, 2954, 2954, 2918, 2918, 01258 01259 2918, 2918, 2955, 2955, 2956, 2956, 2918, 2918, 2918, 2918, 01260 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2970, 2918, 01261 2918, 2918, 2918, 2971, 2918, 2918, 2918, 2918, 2918, 2918, 01262 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01263 2918, 2918, 2972, 2918, 2973, 2918, 2918, 2974, 2974, 2918, 01264 2975, 2975, 2918, 2918, 2918, 2918, 2976, 2976, 2918, 2918, 01265 2918, 2918, 2918, 2977, 2977, 2918, 2918, 2978, 2979, 2980, 01266 2918, 2981, 2981, 2918, 2918, 2918, 2982, 2918, 2918, 2983, 01267 2984, 2984, 2985, 2915, 2985, 2986, 2986, 2918, 2918, 2987, 01268 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01269 01270 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2988, 01271 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01272 2918, 2918, 2918, 2918, 2989, 2989, 2918, 2990, 2990, 2918, 01273 2918, 2991, 2991, 2918, 2992, 2918, 2918, 2918, 2918, 2918, 01274 2993, 2993, 2994, 2995, 2995, 2918, 2918, 2918, 2918, 2996, 01275 2996, 2997, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01276 2918, 2918, 2998, 2918, 2999, 2918, 2918, 3000, 2918, 2918, 01277 2918, 2918, 3001, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01278 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01279 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3002, 01280 01281 2918, 2918, 2918, 2918, 2918, 3003, 2918, 2918, 2918, 2918, 01282 2918, 2918, 3004, 2918, 2918, 3005, 3006, 3007, 3007, 3008, 01283 2918, 2918, 2918, 3009, 3009, 2918, 2918, 3010, 2918, 2918, 01284 3011, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01285 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01286 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3012, 3012, 01287 2918, 3013, 3013, 2918, 3014, 2918, 2918, 2918, 2918, 2918, 01288 3015, 2918, 2918, 2918, 2918, 2918, 2918, 3016, 3016, 3017, 01289 3017, 3018, 3018, 2918, 2918, 3019, 3020, 3021, 3021, 2918, 01290 2918, 3022, 3022, 2918, 2918, 3023, 3023, 3024, 2918, 2918, 01291 01292 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01293 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01294 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01295 3025, 3026, 3026, 2918, 2918, 2918, 2918, 3027, 2918, 2918, 01296 2918, 2918, 2918, 2918, 2918, 3028, 3029, 3030, 2918, 2918, 01297 2918, 2918, 2918, 2918, 2918, 2918, 3031, 3031, 2918, 2918, 01298 2918, 2918, 2918, 3032, 3032, 3033, 2918, 2918, 2918, 3034, 01299 3034, 2918, 2918, 2918, 3035, 2918, 2918, 2918, 3036, 2918, 01300 2918, 3037, 3037, 2918, 3038, 3038, 2918, 3039, 3040, 3040, 01301 3041, 2918, 2918, 2918, 3042, 3042, 2918, 3043, 2918, 2918, 01302 01303 2918, 3044, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01304 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3045, 01305 2918, 2918, 3046, 3046, 3047, 2918, 2918, 3048, 2918, 3049, 01306 3050, 3050, 2918, 2918, 3051, 3052, 2918, 2918, 3053, 3053, 01307 2918, 3054, 3055, 3055, 3056, 3056, 3057, 3057, 2918, 3058, 01308 2918, 2918, 3059, 3060, 3060, 2918, 2918, 3061, 3061, 2918, 01309 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01310 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01311 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01312 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01313 01314 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01315 3062, 2918, 3063, 3063, 2918, 2918, 2918, 2918, 2918, 3064, 01316 3064, 3065, 2918, 2918, 2918, 2918, 3066, 2918, 2918, 3067, 01317 3068, 3068, 3069, 3069, 3070, 2918, 2918, 3071, 2918, 3072, 01318 3072, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01319 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01320 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01321 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3073, 3073, 01322 2918, 2918, 2918, 2918, 3074, 3074, 2918, 3075, 2918, 2918, 01323 2918, 2918, 2918, 2918, 2918, 3076, 3076, 3077, 3077, 3078, 01324 01325 3078, 3079, 2918, 2918, 3080, 2918, 2918, 2918, 2918, 3081, 01326 2918, 2918, 2918, 2918, 3082, 3082, 3083, 2918, 2918, 2918, 01327 2918, 2918, 3084, 3084, 2918, 2918, 2918, 3085, 3085, 2918, 01328 2918, 2918, 3086, 3087, 3087, 3088, 3088, 2918, 2918, 2918, 01329 2918, 3089, 3089, 2918, 3090, 2918, 2918, 2918, 2918, 3091, 01330 3091, 3092, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3093, 01331 2918, 2918, 2918, 2918, 3094, 2918, 2918, 2918, 3095, 3095, 01332 2918, 3096, 3097, 3097, 2918, 2918, 3098, 3098, 2918, 3099, 01333 3099, 2918, 2918, 3100, 3100, 3101, 3101, 3102, 3103, 2918, 01334 3104, 3104, 2918, 3105, 3105, 2918, 2918, 3106, 3106, 2918, 01335 01336 2918, 3107, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01337 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01338 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01339 3108, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01340 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01341 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01342 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3109, 3109, 01343 2918, 3110, 2918, 3111, 2918, 2918, 3112, 3112, 2918, 3113, 01344 2918, 2918, 3114, 3114, 2918, 2918, 3115, 3115, 3116, 3116, 01345 2918, 2918, 3117, 3117, 3118, 3119, 2918, 2918, 2918, 2918, 01346 01347 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01348 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01349 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01350 3120, 2918, 3121, 2918, 2918, 2918, 2918, 3122, 3122, 2918, 01351 2918, 2918, 2918, 2918, 2918, 2918, 3123, 3123, 2918, 2918, 01352 3124, 3124, 2918, 2918, 2918, 2918, 3125, 3125, 2918, 2918, 01353 2918, 2918, 3126, 3126, 2918, 2918, 2918, 2918, 2918, 3127, 01354 2918, 2918, 3128, 2918, 2918, 2918, 2918, 2918, 3129, 3129, 01355 2918, 2918, 3130, 3131, 3132, 3133, 3133, 2918, 2918, 2918, 01356 2918, 3134, 3134, 3135, 2918, 3136, 2918, 2918, 2918, 2918, 01357 01358 3137, 3137, 2918, 3138, 2918, 3139, 2918, 3140, 3140, 3141, 01359 2918, 2918, 3142, 2918, 3143, 3143, 2918, 2918, 2918, 2918, 01360 3144, 3145, 3145, 3146, 3146, 2918, 2918, 2918, 2918, 2918, 01361 2918, 2918, 3147, 3148, 3148, 2918, 2918, 2918, 2918, 2918, 01362 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01363 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01364 2918, 2918, 2918, 2918, 2918, 3149, 3150, 3150, 2918, 2918, 01365 3151, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01366 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01367 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01368 01369 2918, 2918, 2918, 2918, 2918, 2918, 3152, 3152, 3153, 3154, 01370 3154, 2918, 3155, 3156, 3157, 3157, 2918, 2918, 2918, 2918, 01371 2918, 2918, 3158, 3158, 3159, 3159, 3160, 2918, 2918, 2918, 01372 2918, 3161, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3162, 01373 3163, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3164, 2918, 01374 2918, 2918, 2918, 2918, 2918, 2918, 3165, 2918, 3166, 2918, 01375 3167, 3167, 2918, 3168, 3168, 2918, 2918, 2918, 2918, 2918, 01376 3169, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01377 3170, 3171, 3172, 3173, 2918, 3174, 2918, 2918, 3175, 2918, 01378 2918, 2918, 2918, 3176, 3176, 2918, 2918, 3177, 3177, 3178, 01379 01380 3179, 2918, 3180, 3181, 2918, 2918, 3182, 3182, 3183, 3183, 01381 3184, 3184, 2918, 2918, 2918, 2918, 3185, 3185, 3186, 3187, 01382 3187, 2918, 2918, 2918, 2918, 2918, 3188, 3188, 2918, 3189, 01383 3189, 2918, 3190, 3190, 2918, 2918, 3191, 3191, 2918, 2918, 01384 2918, 2918, 2918, 3192, 3192, 2918, 2918, 3193, 3194, 3195, 01385 3196, 3197, 3198, 3198, 2918, 3199, 2918, 3200, 2918, 2918, 01386 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01387 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01388 2918, 2918, 2918, 2918, 3201, 3201, 3202, 3203, 3204, 3204, 01389 2918, 2918, 3205, 2918, 2918, 2918, 2918, 3206, 2918, 2918, 01390 01391 2918, 2918, 2918, 2918, 2918, 3207, 3208, 2918, 2918, 2918, 01392 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01393 3209, 2918, 3210, 2918, 2918, 3211, 3211, 3212, 3213, 3213, 01394 3214, 3214, 2918, 2918, 2918, 3215, 2918, 2918, 3216, 3216, 01395 3217, 2918, 3218, 2918, 3219, 3219, 2918, 2918, 3220, 2918, 01396 2918, 3221, 2918, 3222, 3222, 3223, 3223, 3224, 2918, 2918, 01397 2918, 2918, 2918, 3225, 3226, 3226, 2918, 2918, 2918, 2918, 01398 2918, 2918, 3227, 3228, 3228, 3229, 3230, 3230, 2918, 3231, 01399 2918, 2918, 2918, 2918, 2918, 2918, 3232, 3232, 2918, 3233, 01400 2918, 2918, 2918, 2918, 2918, 2918, 2918, 3234, 3234, 3235, 01401 01402 3235, 3236, 3236, 3237, 3237, 2918, 3238, 3238, 2918, 2918, 01403 3239, 3239, 2918, 2918, 2918, 2918, 3240, 2918, 3241, 3241, 01404 3242, 3242, 3243, 3244, 3244, 3245, 3245, 2918, 3246, 2918, 01405 2918, 2918, 2918, 3247, 3247, 2918, 3248, 2918, 2918, 2918, 01406 2918, 3249, 3250, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 01407 2918, 3251, 3251, 3252, 3252, 3253, 3253, 3254, 3254, 3255, 01408 3255, 3256, 3257, 3257, 2918, 3258, 3258, 3259, 2918, 3260, 01409 2918, 2918, 3261, 2918, 2918, 2918, 2918, 2918, 3262, 2918, 01410 2918, 2918, 2918, 2918, 3263, 2918, 2918, 2918, 2918, 2918, 01411 3264, 2918, 2918, 3265, 3265, 3266, 3266, 2918, 2918, 3267, 01412 01413 3267, 3268, 2918, 3269, 2918, 3270, 3270, 2918, 2918, 3271, 01414 2918, 2918, 3272, 2918, 3273, 3273, 3274, 3274, 2918, 2918, 01415 2918, 2918, 2918, 3275, 2918, 2918, 2918, 2918, 2918, 2918, 01416 3276, 3277, 3277, 3278, 3279, 3279, 2918, 2918, 3280, 3280, 01417 3281, 3282, 3283, 3284, 3284, 3285, 3286, 3287, 3287, 2918, 01418 3288, 3288, 3289, 2918, 2918, 3290, 3290, 2918, 2918, 3291, 01419 3291, 2918, 3292, 3292, 2918, 2918, 3293, 2918, 2918, 3294, 01420 3294, 2918, 2918, 3295, 3296, 2918, 3297, 3298, 3298, 3299, 01421 3299, 2918, 3300, 3300, 2918, 3301, 2918, 2918, 2918, 2918, 01422 3302, 3303, 3303, 2918, 3304, 2918, 2918, 2918, 3305, 3306, 01423 01424 2918, 2918, 3307, 3308, 2918, 2918, 2918, 3309, 3309, 3310, 01425 3311, 3311, 2918, 3312, 3312, 2918, 2918, 2918, 2918, 2918, 01426 3313, 3313, 2918, 3314, 2918, 2918, 3315, 3315, 3316, 3316, 01427 3317, 2918, 3318, 2918, 3319, 3320, 3321, 2918, 3322, 3322, 01428 3323, 3324, 3324, 3325, 3326, 3326, 3327, 2918, 3328, 3328, 01429 2918, 2918, 3329, 3330, 2918, 3331, 3331, 3332, 2918, 2918, 01430 2918, 3333, 3334, 3334, 2918, 2918, 2918, 2918, 3335, 3336, 01431 3336, 2918, 2918, 2918, 3337, 3338, 3338, 2918, 3339, 3339, 01432 3340, 2918, 2918, 3341, 3341, 2918, 2918, 3342, 3342, 2918, 01433 2918, 2918, 3343, 2918, 2918, 3344, 3344, 3345, 2918, 3346, 01434 01435 3347, 2918, 3348, 3349, 3349, 3350, 3350, 2918, 3351, 3352, 01436 3352, 3353, 3353, 3354, 3354, 3355, 3355, 3356, 3356, 2918, 01437 3357, 3357, 2918, 2918, 3358, 2918, 2918, 2918, 2918, 3359, 01438 3359, 2918, 2918, 2918, 2918, 3360, 3360, 3361, 3361, 3362, 01439 3363, 3363, 2918, 3364, 3365, 3365, 2918, 2918, 2918, 3366, 01440 3367, 3367, 3368, 3369, 3369, 3370, 2918, 2918, 3371, 3371, 01441 3372, 3372, 3373, 2918, 3374, 3374, 3375, 3375, 2918, 2918, 01442 2918, 3376, 3376, 2918, 2918, 3377, 2918, 2918, 2918, 2918, 01443 3378, 3378, 3379, 3380, 3381, 3381, 3382, 3383, 3383, 3384, 01444 3385, 3385, 3386, 3386, 3387, 3387, 3388, 3389, 3389, 3390, 01445 01446 3390, 3391, 3391, 3392, 2918, 2918, 3393, 3393, 3394, 3394, 01447 2918, 3395, 3395, 2918, 3396, 2918, 3397, 3397, 2918, 3398, 01448 3399, 2918, 3400, 3400, 2918, 2918, 2918, 3401, 3401, 2918, 01449 3402, 3402, 2918, 2918, 3403, 2918, 2918, 2918, 2918, 3404, 01450 3404, 2918, 2918, 3405, 3405, 2918, 3406, 3406, 3407, 3407, 01451 3408, 3409, 3409, 2918, 3410, 3410, 2918, 2918, 2918, 3411, 01452 3411, 2918, 2918, 3412, 3413, 3414, 2918, 2918, 3415, 3416, 01453 3416, 2918, 3417, 3417, 2918, 2918, 3418, 3419, 3419, 3420, 01454 3420, 3421, 3421, 3422, 2918, 3423, 3423, 2918, 3424, 3425, 01455 2918, 2918, 2918, 3426, 3426, 2918, 3427, 2918, 3428, 3429, 01456 01457 3429, 3430, 3430, 3431, 3431, 3432, 3432, 3433, 3433, 3434, 01458 3434, 2918, 2918, 2918, 2918, 3435, 3435, 2918, 2918, 3436, 01459 3436, 3437, 3437, 3438, 2918, 2918, 3439, 2918, 2918, 2918, 01460 3440, 3440, 2918, 2918, 3441, 3442, 3443, 2918, 3444, 3445, 01461 3445, 2918, 2918, 3446, 2918, 3447, 2918, 3448, 3448, 3449, 01462 3449, 3450, 3450, 2918, 3451, 3452, 3452, 2918, 2918, 2918, 01463 3453, 3453, 3454, 3454, 2918, 2918, 3424, 3424, 3425, 3425, 01464 3455, 2918, 2918, 2918, 3427, 3427, 3456, 3457, 3457, 2918, 01465 2918, 2918, 3458, 3459, 3460, 3438, 3438, 2918, 2918, 3439, 01466 3439, 2918, 3461, 2918, 3462, 2918, 3441, 3441, 3442, 3442, 01467 01468 3443, 3443, 2918, 3444, 3444, 2918, 2918, 3446, 3446, 2918, 01469 3447, 3447, 2918, 3463, 3451, 3451, 2918, 2918, 3464, 2918, 01470 2918, 3455, 3455, 3465, 2918, 3466, 3456, 3456, 3467, 2918, 01471 2918, 3458, 3458, 3459, 3459, 3460, 3460, 3468, 2918, 2918, 01472 3461, 3461, 2918, 3462, 3462, 2918, 3469, 2918, 2918, 2918, 01473 3470, 3463, 3463, 3471, 2918, 3464, 3464, 3472, 3473, 3465, 01474 3465, 3474, 3466, 3466, 3467, 3467, 3475, 2918, 3468, 3468, 01475 2918, 2918, 2918, 3476, 3469, 3469, 3477, 3478, 3479, 3470, 01476 3470, 3471, 3471, 3480, 3472, 3472, 3473, 3473, 3474, 3474, 01477 3475, 3475, 3481, 3482, 3483, 3484, 3476, 3476, 3477, 3477, 01478 01479 3478, 3478, 3479, 3479, 3480, 3480, 3481, 3481, 3482, 3482, 01480 3483, 3483, 3484, 3484, 0, 2915, 2915, 2915, 2915, 2915, 01481 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01482 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01483 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01484 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01485 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01486 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01487 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01488 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01489 01490 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01491 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01492 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01493 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01494 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01495 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01496 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01497 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01498 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01499 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01500 01501 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01502 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01503 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01504 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01505 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01506 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01507 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01508 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01509 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01510 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01511 01512 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01513 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01514 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01515 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01516 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01517 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01518 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01519 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01520 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01521 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01522 01523 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01524 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01525 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01526 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01527 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01528 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01529 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01530 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01531 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01532 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01533 01534 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01535 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01536 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01537 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01538 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01539 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01540 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01541 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 01542 2915, 2915, 2915, 2915 01543 } ; 01544 01545 static yyconst flex_int16_t yy_nxt[5469] = 01546 { 0, 01547 2915, 1926, 7, 8, 9, 44, 45, 46, 42, 47, 01548 133, 134, 135, 134, 136, 135, 137, 44, 45, 44, 01549 45, 46, 42, 47, 133, 134, 133, 134, 136, 135, 01550 137, 135, 134, 2140, 10, 6, 6, 7, 8, 9, 01551 6, 6, 6, 11, 12, 13, 14, 15, 16, 17, 01552 18, 19, 6, 20, 21, 22, 23, 24, 25, 26, 01553 27, 28, 29, 30, 31, 32, 33, 34, 35, 10, 01554 6, 11, 12, 13, 14, 15, 16, 17, 18, 19, 01555 6, 20, 21, 22, 23, 24, 25, 26, 27, 28, 01556 29, 30, 31, 32, 33, 34, 35, 37, 38, 37, 01557 01558 38, 2141, 84, 2143, 56, 984, 134, 77, 104, 40, 01559 2146, 57, 2149, 122, 67, 78, 2152, 143, 2155, 2157, 01560 127, 2158, 79, 139, 68, 2164, 58, 2166, 2173, 39, 01561 84, 39, 56, 59, 69, 77, 104, 40, 48, 57, 01562 60, 122, 67, 78, 128, 143, 61, 49, 50, 51, 01563 79, 52, 68, 53, 58, 54, 55, 140, 2175, 120, 01564 74, 59, 69, 2176, 121, 130, 48, 75, 60, 2178, 01565 144, 1962, 128, 76, 61, 49, 50, 51, 247, 52, 01566 70, 53, 145, 54, 55, 62, 131, 120, 74, 63, 01567 80, 71, 121, 64, 72, 75, 148, 73, 144, 65, 01568 01569 81, 76, 66, 85, 2180, 82, 83, 86, 70, 1965, 01570 145, 87, 248, 62, 131, 93, 2188, 63, 80, 71, 01571 149, 64, 72, 88, 148, 73, 89, 65, 81, 94, 01572 66, 85, 95, 82, 83, 86, 100, 96, 105, 87, 01573 90, 91, 106, 93, 92, 146, 153, 101, 149, 97, 01574 102, 88, 107, 103, 89, 98, 99, 94, 108, 2190, 01575 95, 2199, 147, 760, 100, 96, 105, 2201, 90, 91, 01576 106, 2203, 92, 146, 153, 101, 2205, 97, 102, 2208, 01577 107, 103, 2212, 98, 99, 156, 108, 109, 116, 110, 01578 147, 123, 117, 124, 154, 125, 111, 761, 155, 126, 01579 01580 112, 118, 1995, 141, 113, 114, 133, 134, 119, 115, 01581 142, 2217, 1999, 156, 2220, 109, 116, 110, 161, 123, 01582 117, 124, 154, 125, 111, 138, 155, 126, 112, 118, 01583 157, 141, 113, 114, 158, 162, 119, 115, 142, 150, 01584 159, 160, 151, 163, 164, 165, 161, 166, 167, 168, 01585 169, 170, 152, 138, 171, 172, 173, 174, 157, 175, 01586 176, 180, 158, 162, 181, 177, 182, 150, 159, 160, 01587 151, 163, 164, 165, 184, 166, 167, 168, 169, 170, 01588 152, 178, 171, 172, 173, 174, 185, 175, 176, 180, 01589 186, 188, 181, 177, 182, 189, 187, 190, 198, 191, 01590 01591 195, 199, 184, 192, 196, 200, 202, 203, 197, 178, 01592 204, 206, 193, 207, 185, 210, 194, 205, 186, 188, 01593 208, 209, 211, 189, 187, 190, 198, 191, 195, 199, 01594 212, 192, 196, 200, 202, 203, 197, 219, 204, 206, 01595 193, 207, 213, 210, 194, 205, 214, 217, 208, 209, 01596 211, 215, 220, 221, 222, 223, 2222, 2223, 212, 224, 01597 218, 232, 216, 233, 236, 219, 226, 237, 229, 225, 01598 213, 238, 230, 243, 214, 217, 234, 227, 2225, 215, 01599 220, 221, 222, 223, 228, 231, 244, 224, 218, 232, 01600 216, 233, 236, 235, 255, 237, 229, 225, 260, 238, 01601 01602 230, 243, 245, 239, 234, 227, 240, 249, 264, 246, 01603 251, 241, 228, 231, 244, 250, 267, 252, 242, 133, 01604 134, 235, 255, 268, 269, 265, 260, 270, 261, 271, 01605 245, 239, 272, 273, 240, 249, 264, 246, 251, 241, 01606 266, 274, 275, 250, 267, 252, 242, 276, 277, 278, 01607 280, 268, 269, 265, 281, 270, 261, 271, 287, 283, 01608 272, 273, 288, 289, 290, 294, 295, 296, 266, 274, 01609 275, 284, 297, 302, 282, 276, 277, 278, 280, 285, 01610 298, 299, 300, 305, 291, 286, 287, 303, 306, 307, 01611 288, 289, 308, 294, 295, 296, 309, 311, 292, 284, 01612 01613 297, 302, 282, 312, 315, 336, 304, 285, 337, 338, 01614 339, 305, 291, 286, 317, 303, 306, 307, 2227, 2229, 01615 308, 318, 2008, 2010, 309, 311, 353, 354, 355, 2012, 01616 2018, 312, 315, 336, 2235, 2021, 337, 338, 339, 298, 01617 299, 300, 317, 41, 41, 2237, 41, 41, 41, 41, 01618 41, 319, 320, 321, 322, 323, 324, 325, 326, 327, 01619 41, 41, 41, 328, 329, 41, 330, 41, 331, 41, 01620 332, 333, 334, 335, 41, 41, 41, 41, 41, 319, 01621 320, 321, 322, 323, 324, 325, 326, 327, 41, 41, 01622 41, 328, 329, 41, 330, 41, 331, 41, 332, 333, 01623 01624 334, 335, 41, 41, 41, 340, 341, 342, 343, 344, 01625 345, 346, 347, 349, 350, 351, 352, 356, 365, 366, 01626 368, 369, 370, 348, 2028, 371, 2031, 2242, 372, 2034, 01627 373, 375, 376, 340, 341, 342, 343, 344, 345, 346, 01628 347, 349, 350, 351, 352, 356, 365, 366, 368, 369, 01629 370, 348, 357, 371, 358, 359, 372, 360, 373, 375, 01630 376, 377, 378, 379, 361, 380, 381, 362, 382, 384, 01631 363, 364, 386, 387, 388, 391, 392, 2243, 396, 400, 01632 357, 2038, 358, 359, 401, 360, 402, 403, 404, 377, 01633 378, 379, 361, 380, 381, 362, 382, 384, 363, 364, 01634 01635 386, 387, 388, 391, 392, 393, 396, 400, 405, 394, 01636 406, 395, 401, 407, 402, 403, 404, 408, 410, 411, 01637 417, 418, 421, 415, 422, 133, 134, 424, 425, 426, 01638 427, 428, 431, 393, 429, 433, 405, 394, 406, 395, 01639 416, 407, 434, 423, 437, 408, 410, 411, 417, 418, 01640 421, 415, 422, 438, 439, 424, 425, 426, 427, 428, 01641 431, 430, 429, 433, 445, 448, 451, 452, 416, 453, 01642 434, 423, 437, 2045, 454, 455, 456, 459, 460, 463, 01643 466, 438, 439, 440, 470, 471, 473, 474, 476, 477, 01644 478, 479, 445, 448, 451, 452, 441, 453, 442, 443, 01645 01646 480, 444, 454, 455, 456, 459, 460, 463, 466, 483, 01647 491, 440, 470, 471, 473, 474, 476, 477, 478, 479, 01648 484, 492, 497, 489, 441, 485, 442, 443, 480, 444, 01649 487, 486, 490, 495, 493, 488, 494, 483, 491, 498, 01650 496, 499, 502, 2253, 500, 506, 503, 510, 484, 492, 01651 497, 489, 501, 485, 511, 512, 514, 516, 487, 486, 01652 490, 495, 493, 488, 494, 504, 507, 498, 496, 499, 01653 502, 505, 500, 506, 503, 510, 508, 517, 518, 509, 01654 501, 520, 511, 512, 514, 516, 522, 523, 524, 525, 01655 526, 532, 534, 504, 507, 527, 528, 529, 530, 505, 01656 01657 353, 354, 355, 535, 508, 517, 518, 509, 536, 520, 01658 537, 538, 545, 531, 522, 523, 524, 525, 526, 532, 01659 534, 539, 542, 547, 548, 551, 530, 552, 549, 540, 01660 555, 535, 543, 558, 559, 560, 536, 562, 537, 538, 01661 545, 544, 541, 563, 564, 565, 566, 567, 568, 539, 01662 542, 547, 548, 551, 569, 552, 549, 540, 555, 570, 01663 543, 558, 559, 560, 572, 562, 573, 574, 575, 544, 01664 541, 563, 564, 565, 566, 567, 568, 576, 577, 580, 01665 581, 583, 569, 584, 585, 587, 588, 570, 589, 590, 01666 591, 592, 572, 594, 573, 574, 575, 595, 596, 597, 01667 01668 598, 603, 606, 611, 612, 576, 577, 580, 581, 583, 01669 613, 584, 585, 587, 588, 616, 589, 590, 591, 592, 01670 617, 594, 133, 134, 618, 595, 596, 597, 598, 603, 01671 606, 611, 612, 619, 620, 621, 622, 623, 613, 624, 01672 625, 627, 629, 616, 630, 631, 605, 632, 617, 633, 01673 626, 634, 618, 635, 636, 637, 628, 638, 639, 640, 01674 641, 619, 620, 621, 622, 623, 642, 624, 625, 627, 01675 629, 643, 630, 631, 605, 632, 646, 633, 626, 634, 01676 651, 635, 636, 637, 628, 638, 639, 640, 641, 647, 01677 652, 653, 655, 656, 642, 657, 658, 648, 659, 643, 01678 01679 660, 661, 662, 663, 646, 664, 665, 666, 651, 667, 01680 668, 669, 670, 671, 672, 673, 674, 647, 652, 653, 01681 655, 656, 679, 657, 658, 648, 659, 675, 660, 661, 01682 662, 663, 680, 664, 665, 666, 681, 667, 668, 669, 01683 670, 671, 672, 673, 674, 676, 677, 682, 683, 684, 01684 679, 678, 685, 686, 687, 675, 688, 689, 690, 2255, 01685 680, 704, 2257, 708, 681, 2259, 710, 709, 2261, 711, 01686 714, 715, 2054, 676, 677, 682, 683, 684, 2262, 678, 01687 685, 686, 687, 716, 688, 689, 690, 691, 720, 704, 01688 698, 708, 699, 700, 710, 709, 692, 711, 714, 715, 01689 01690 693, 694, 695, 696, 701, 527, 528, 529, 721, 722, 01691 723, 716, 724, 725, 726, 691, 720, 727, 698, 728, 01692 699, 700, 729, 730, 692, 731, 734, 735, 693, 694, 01693 695, 696, 701, 736, 737, 739, 721, 722, 723, 740, 01694 724, 725, 726, 741, 744, 727, 742, 728, 745, 747, 01695 729, 730, 750, 731, 734, 735, 751, 752, 753, 754, 01696 743, 736, 737, 739, 755, 756, 757, 740, 759, 762, 01697 764, 741, 744, 766, 742, 767, 745, 747, 768, 769, 01698 750, 770, 772, 775, 751, 752, 753, 754, 743, 776, 01699 777, 778, 755, 756, 757, 779, 759, 762, 764, 781, 01700 01701 782, 766, 783, 767, 784, 785, 768, 769, 786, 770, 01702 772, 775, 133, 134, 800, 801, 802, 776, 777, 778, 01703 803, 804, 806, 779, 790, 807, 808, 781, 782, 805, 01704 783, 809, 784, 785, 810, 811, 786, 812, 813, 814, 01705 815, 816, 800, 801, 802, 817, 818, 819, 803, 804, 01706 806, 820, 790, 807, 808, 821, 822, 823, 825, 809, 01707 828, 830, 810, 811, 2264, 812, 813, 814, 815, 816, 01708 831, 832, 833, 817, 818, 819, 837, 839, 834, 820, 01709 840, 841, 844, 821, 822, 846, 847, 848, 849, 830, 01710 850, 824, 826, 851, 829, 852, 853, 854, 831, 832, 01711 01712 833, 855, 856, 857, 837, 839, 834, 858, 840, 841, 01713 844, 859, 860, 846, 847, 848, 849, 861, 850, 862, 01714 863, 851, 864, 852, 853, 854, 865, 866, 867, 855, 01715 856, 857, 868, 869, 870, 858, 871, 872, 873, 859, 01716 860, 874, 875, 876, 877, 861, 879, 862, 863, 880, 01717 864, 881, 882, 883, 865, 866, 867, 884, 885, 888, 01718 868, 869, 870, 886, 871, 872, 873, 889, 890, 874, 01719 875, 876, 877, 887, 879, 891, 896, 880, 899, 881, 01720 882, 883, 900, 901, 902, 884, 885, 888, 907, 908, 01721 909, 886, 910, 912, 913, 889, 890, 911, 914, 916, 01722 01723 917, 887, 918, 891, 896, 920, 899, 921, 922, 923, 01724 900, 901, 902, 924, 926, 927, 907, 908, 909, 2267, 01725 910, 912, 913, 928, 929, 911, 914, 916, 917, 930, 01726 918, 931, 932, 920, 933, 921, 922, 923, 934, 936, 01727 937, 938, 926, 927, 939, 941, 944, 925, 946, 947, 01728 950, 928, 929, 953, 954, 955, 956, 930, 959, 931, 01729 932, 960, 933, 940, 961, 962, 934, 936, 937, 938, 01730 963, 966, 939, 941, 944, 967, 946, 947, 950, 971, 01731 974, 953, 954, 955, 956, 976, 959, 978, 975, 960, 01732 988, 989, 961, 962, 983, 984, 985, 991, 963, 966, 01733 01734 992, 2268, 2270, 967, 983, 984, 985, 971, 974, 2273, 01735 1007, 1008, 2279, 976, 1009, 978, 975, 1011, 988, 989, 01736 2285, 1012, 1013, 2291, 1014, 991, 1015, 1017, 992, 993, 01737 994, 995, 996, 997, 998, 999, 1019, 1000, 1007, 1008, 01738 1001, 1002, 1009, 1020, 1003, 1011, 1021, 1004, 1005, 1012, 01739 1013, 1006, 1014, 1024, 1015, 1017, 1027, 993, 994, 995, 01740 996, 997, 998, 999, 1019, 1000, 1022, 1030, 1001, 1002, 01741 1031, 1020, 1003, 1034, 1021, 1004, 1005, 1036, 1037, 1006, 01742 1038, 1024, 1039, 1040, 1027, 1046, 1047, 1048, 1049, 1023, 01743 1053, 1054, 1055, 1056, 1022, 1030, 1057, 1058, 1031, 1059, 01744 01745 1060, 1034, 1061, 1062, 1064, 1036, 1037, 1066, 1038, 1067, 01746 1039, 1040, 1069, 1046, 1047, 1048, 1049, 1070, 1053, 1054, 01747 1055, 1056, 1071, 1072, 1057, 1058, 1074, 1059, 1060, 1075, 01748 1061, 1062, 1064, 1076, 1077, 1066, 1078, 1067, 1079, 1080, 01749 1069, 1081, 1082, 1088, 1084, 1070, 1089, 1090, 1091, 1092, 01750 1071, 1072, 1085, 1093, 1074, 1086, 1094, 1075, 1087, 1095, 01751 1096, 1076, 1077, 1097, 1078, 1098, 1079, 1080, 1099, 1081, 01752 1082, 1088, 1084, 1101, 1089, 1090, 1091, 1092, 1102, 1103, 01753 1085, 1093, 1104, 1086, 1094, 1105, 1087, 1095, 1096, 1107, 01754 1108, 1097, 1109, 1098, 1110, 1111, 1099, 1112, 1114, 1115, 01755 01756 1121, 1101, 1122, 1123, 1126, 1127, 1102, 1103, 1129, 1130, 01757 1104, 1132, 1133, 1105, 1134, 1135, 1136, 1107, 1108, 1138, 01758 1109, 1139, 1110, 1111, 1140, 1112, 1114, 1115, 1121, 1141, 01759 1122, 1123, 1126, 1127, 1142, 2086, 1129, 1130, 2295, 1132, 01760 1133, 2297, 1134, 1135, 1136, 1161, 2090, 1138, 2301, 1139, 01761 2302, 1164, 1140, 1143, 2304, 1166, 1167, 1141, 1168, 1169, 01762 1170, 1172, 1142, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 01763 1173, 1151, 1174, 1161, 1152, 1153, 1154, 1176, 1155, 1164, 01764 1177, 1156, 1157, 1166, 1167, 1158, 1168, 1169, 1170, 1172, 01765 1185, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1173, 1151, 01766 01767 1174, 1190, 1152, 1153, 1154, 1176, 1155, 1191, 1177, 1156, 01768 1157, 1194, 1195, 1158, 1199, 1200, 1201, 1202, 1185, 1206, 01769 1208, 1214, 1215, 1209, 1203, 1216, 2307, 1210, 1204, 1190, 01770 1212, 1205, 1207, 1211, 2310, 1191, 1227, 1213, 1225, 1194, 01771 1195, 1226, 1199, 1200, 1201, 1202, 1228, 1206, 1208, 1214, 01772 1215, 1209, 1203, 1216, 1217, 1210, 1204, 1229, 1212, 1205, 01773 1207, 1211, 1218, 1230, 1227, 1213, 1225, 1234, 1219, 1226, 01774 1237, 1239, 1240, 1249, 1228, 1250, 1252, 2313, 1253, 1251, 01775 1254, 1255, 1217, 2316, 1256, 1229, 1259, 2318, 1260, 2324, 01776 1218, 1230, 1261, 1262, 1263, 1234, 1219, 1220, 1237, 1239, 01777 01778 1240, 1249, 1267, 1250, 1252, 1221, 1253, 1251, 1254, 1255, 01779 1268, 1222, 1256, 1269, 1259, 1223, 1260, 1224, 2331, 2333, 01780 1261, 1262, 1263, 1272, 1273, 1220, 1274, 1276, 1277, 1278, 01781 1267, 1280, 1281, 1221, 1284, 2334, 2336, 1287, 1268, 1222, 01782 2127, 1269, 1292, 1223, 1293, 1224, 1241, 1242, 1294, 1297, 01783 1299, 1272, 1273, 1300, 1274, 1276, 1277, 1278, 1303, 1280, 01784 1281, 1304, 1284, 1243, 1244, 1287, 1305, 1306, 1245, 1307, 01785 1292, 1308, 1293, 1309, 1241, 1242, 1294, 1297, 1299, 1310, 01786 1311, 1300, 1312, 1313, 1314, 1315, 1303, 1316, 1317, 1304, 01787 1318, 1243, 1244, 1319, 1305, 1306, 1245, 1307, 1321, 1308, 01788 01789 1322, 1309, 1326, 1327, 1328, 1334, 1337, 1310, 1311, 1338, 01790 1312, 1313, 1314, 1315, 1341, 1316, 1317, 1351, 1318, 1352, 01791 1356, 1319, 1357, 1360, 1361, 1362, 1321, 1363, 1322, 1364, 01792 1326, 1327, 2340, 1334, 1337, 2130, 2132, 1338, 1329, 1377, 01793 1378, 1379, 1341, 1380, 1381, 1351, 1384, 1352, 1356, 1385, 01794 1357, 1360, 1361, 1362, 1392, 1363, 1399, 1364, 1365, 1366, 01795 1367, 1368, 1369, 1370, 1371, 2341, 1372, 1377, 1378, 1379, 01796 1373, 1380, 1381, 1374, 1384, 1382, 1375, 1385, 2342, 1400, 01797 1376, 1383, 1392, 1390, 1399, 2343, 1365, 1366, 1367, 1368, 01798 1369, 1370, 1371, 1393, 1372, 1395, 1391, 1394, 1373, 1386, 01799 01800 1401, 1374, 1396, 1382, 1375, 1409, 1387, 1400, 1376, 1383, 01801 1388, 1390, 1410, 1389, 1397, 1398, 2345, 1407, 1412, 1415, 01802 1408, 1393, 1416, 1395, 1391, 1394, 1417, 1386, 1401, 1418, 01803 1396, 1419, 1423, 1409, 1387, 1424, 1435, 1425, 1388, 1428, 01804 1410, 1389, 1397, 1398, 1402, 1407, 1412, 1415, 1408, 1429, 01805 1416, 1426, 1403, 1437, 1417, 1439, 1442, 1418, 1404, 1419, 01806 1423, 1443, 1405, 1424, 1406, 1425, 1444, 1428, 1445, 1446, 01807 1436, 1447, 1402, 1448, 1454, 1449, 1451, 1429, 1455, 1426, 01808 1403, 1437, 1450, 1439, 1442, 1456, 1404, 1457, 1452, 1443, 01809 1405, 1453, 1406, 1458, 1444, 1459, 1445, 1446, 1460, 1447, 01810 01811 1461, 1448, 1454, 1449, 1451, 1462, 1455, 1463, 1464, 1465, 01812 1450, 1466, 1467, 1456, 1468, 1457, 1452, 1469, 1470, 1453, 01813 1471, 1458, 1474, 1459, 1472, 1475, 1460, 1476, 1461, 1477, 01814 1478, 1481, 1482, 1462, 1483, 1463, 1464, 1465, 1473, 1466, 01815 1467, 1484, 1468, 1487, 1489, 1469, 1470, 1490, 1471, 1495, 01816 1474, 1503, 1472, 1475, 1504, 1476, 1491, 1477, 1478, 1481, 01817 1482, 1506, 1483, 1507, 1492, 1493, 1473, 1508, 1509, 1484, 01818 1511, 1487, 1489, 1494, 1512, 1490, 1513, 1495, 1514, 1503, 01819 1518, 1520, 1504, 1521, 1491, 1522, 1525, 1526, 1527, 1506, 01820 1530, 1507, 1492, 1493, 1531, 1508, 1509, 1532, 1511, 1538, 01821 01822 1539, 1494, 1512, 1540, 1513, 1541, 1514, 1544, 1518, 1520, 01823 1553, 1521, 1546, 1522, 1525, 1526, 1527, 1554, 1530, 1555, 01824 1547, 1556, 1531, 1548, 1557, 1532, 1549, 1538, 1539, 1558, 01825 1559, 1540, 1561, 1541, 1562, 1544, 1563, 1564, 1553, 1566, 01826 1546, 1567, 1568, 1571, 1575, 1554, 1576, 1555, 1547, 1556, 01827 1579, 1548, 1557, 1582, 1549, 1583, 1590, 1558, 1559, 1593, 01828 1561, 1596, 1562, 1597, 1563, 1564, 1600, 1566, 1601, 1567, 01829 1568, 1571, 1575, 1603, 1576, 1604, 1605, 1606, 1579, 1607, 01830 2346, 1582, 1608, 1583, 1590, 1609, 1610, 1593, 1615, 1596, 01831 1611, 1597, 1616, 1612, 1600, 1613, 1601, 1618, 1617, 1619, 01832 01833 1620, 1603, 1627, 1604, 1605, 1606, 1628, 1607, 1614, 1621, 01834 1608, 1629, 1630, 1609, 1610, 1632, 1615, 1622, 1611, 1633, 01835 1616, 1612, 1634, 1613, 1623, 1618, 1617, 1619, 1620, 1635, 01836 1627, 1636, 1624, 1637, 1628, 1638, 1614, 1621, 1625, 1629, 01837 1630, 1639, 1626, 1632, 1640, 1622, 1641, 1633, 1648, 1642, 01838 1634, 1643, 1623, 1645, 1649, 1650, 1651, 1635, 1644, 1636, 01839 1624, 1637, 1652, 1638, 1653, 1646, 1625, 1654, 1647, 1639, 01840 1626, 1655, 1640, 1656, 1641, 1657, 1648, 1642, 1658, 1643, 01841 1659, 1645, 1649, 1650, 1651, 1660, 1644, 1661, 1662, 1663, 01842 1652, 1664, 1653, 1646, 1666, 1654, 1647, 1667, 1668, 1655, 01843 01844 1671, 1656, 1673, 1657, 1675, 1665, 1658, 1676, 1659, 1679, 01845 1681, 1682, 1685, 1660, 1686, 1661, 1662, 1663, 1691, 1664, 01846 1692, 1697, 1666, 1698, 1699, 1667, 1668, 1700, 1671, 1701, 01847 1673, 1702, 1675, 1665, 1703, 1676, 1704, 1679, 1681, 1682, 01848 1685, 1705, 1686, 1706, 1707, 1708, 1691, 1709, 1692, 1697, 01849 1710, 1698, 1699, 1711, 1712, 1700, 1713, 1701, 1714, 1702, 01850 1715, 1716, 1703, 1717, 1704, 1718, 1719, 1720, 1721, 1705, 01851 1722, 1706, 1707, 1708, 1723, 1709, 1724, 1725, 1710, 1726, 01852 1727, 1711, 1712, 1728, 1713, 1729, 1714, 1730, 1715, 1716, 01853 1732, 1717, 1734, 1718, 1719, 1720, 1721, 1735, 1722, 1736, 01854 01855 1740, 1741, 1723, 1742, 1724, 1725, 1743, 1726, 1727, 1744, 01856 1745, 1728, 1746, 1729, 1750, 1730, 1753, 1754, 1732, 1755, 01857 1734, 1756, 1759, 1760, 1761, 1735, 1762, 1736, 1740, 1741, 01858 1765, 1742, 2347, 1771, 1743, 1772, 1774, 1744, 1745, 1766, 01859 1746, 1775, 1750, 1776, 1753, 1754, 1777, 1755, 1778, 1756, 01860 1759, 1760, 1761, 1781, 1762, 1767, 1768, 1782, 1765, 1788, 01861 1769, 1771, 1789, 1772, 1774, 1790, 1791, 1766, 1795, 1775, 01862 1797, 1776, 1798, 1799, 1777, 1800, 1778, 1803, 1804, 1807, 01863 1811, 1781, 1812, 1767, 1768, 1782, 1813, 1788, 1769, 1817, 01864 1789, 1818, 2140, 1790, 1791, 1819, 1795, 1820, 1797, 1826, 01865 01866 1798, 1799, 1827, 1800, 1828, 1803, 1832, 1807, 1811, 1836, 01867 1812, 1837, 1805, 1829, 1830, 1831, 1838, 1817, 1839, 1818, 01868 1814, 1840, 1841, 1819, 1842, 1820, 1843, 1826, 1844, 1845, 01869 1827, 1846, 1828, 1848, 1832, 1847, 1849, 1836, 1850, 1837, 01870 1851, 1852, 1853, 1854, 1838, 1855, 1839, 1856, 1857, 1840, 01871 1841, 1858, 1842, 1859, 1843, 1860, 1844, 1845, 1861, 1846, 01872 1862, 1848, 1864, 1847, 1849, 1865, 1850, 1869, 1851, 1852, 01873 1853, 1854, 1870, 1855, 1863, 1856, 1857, 1872, 1873, 1858, 01874 1874, 1859, 1875, 1860, 1876, 1877, 1861, 1878, 1862, 1879, 01875 1864, 1880, 1881, 1865, 1882, 1869, 1883, 1884, 1885, 1886, 01876 01877 1870, 1887, 1863, 1888, 1889, 1872, 1873, 1890, 1874, 1891, 01878 1875, 1892, 1876, 1877, 1893, 1878, 1894, 1879, 1895, 1880, 01879 1881, 1896, 1882, 1897, 1883, 1884, 1885, 1886, 1898, 1887, 01880 1899, 1888, 1889, 1900, 1901, 1890, 1902, 1891, 1903, 1892, 01881 1904, 1905, 1893, 1906, 1894, 1912, 1895, 1917, 1918, 1896, 01882 1919, 1897, 1920, 1921, 1922, 1928, 1898, 1929, 1899, 1930, 01883 1931, 1900, 1901, 1933, 1902, 1934, 1903, 1935, 1904, 1905, 01884 1936, 1906, 1937, 1912, 1938, 1917, 1918, 1939, 1919, 1942, 01885 1920, 1921, 1922, 1928, 1943, 1929, 1944, 1930, 1931, 1945, 01886 1946, 1933, 1948, 1934, 1951, 1935, 1952, 1953, 1936, 1954, 01887 01888 1937, 1955, 1938, 1956, 1958, 1939, 1960, 1942, 1963, 1966, 01889 1967, 1969, 1943, 1970, 1944, 1972, 1973, 1945, 1946, 1974, 01890 1948, 1975, 1951, 1976, 1952, 1953, 1977, 1954, 1978, 1955, 01891 1979, 1956, 1958, 1980, 1960, 1985, 1963, 1966, 1967, 1969, 01892 1986, 1970, 1988, 1972, 1973, 1990, 2349, 1974, 1991, 1975, 01893 1992, 1976, 1993, 1996, 1977, 1997, 1978, 2002, 1979, 2005, 01894 2006, 1980, 2013, 1985, 2014, 2015, 2016, 2022, 2023, 2024, 01895 1988, 2025, 2026, 1990, 1987, 2029, 1991, 2032, 1992, 2035, 01896 1993, 1996, 2036, 1997, 2039, 2002, 2040, 2005, 2006, 2041, 01897 2013, 2042, 2014, 2015, 2016, 2022, 2023, 2024, 2043, 2025, 01898 01899 2026, 2046, 2047, 2029, 2055, 2032, 2057, 2035, 2059, 2060, 01900 2036, 2061, 2039, 2062, 2040, 2063, 2064, 2041, 2065, 2042, 01901 2066, 2067, 2068, 2069, 2070, 2071, 2043, 2072, 2073, 2046, 01902 2047, 2074, 2055, 2075, 2057, 2076, 2059, 2060, 2077, 2061, 01903 2078, 2062, 2079, 2063, 2064, 2080, 2065, 2081, 2066, 2067, 01904 2068, 2069, 2070, 2071, 2082, 2072, 2073, 2083, 2084, 2074, 01905 2091, 2075, 2092, 2076, 2094, 2095, 2077, 2096, 2078, 2097, 01906 2079, 2099, 2100, 2080, 2101, 2081, 2102, 2103, 2104, 2105, 01907 2108, 2109, 2082, 2110, 2111, 2083, 2084, 2113, 2091, 2114, 01908 2092, 2115, 2094, 2095, 2116, 2096, 2117, 2097, 2118, 2099, 01909 01910 2100, 2119, 2101, 2120, 2102, 2103, 2104, 2105, 2108, 2109, 01911 2122, 2110, 2111, 2124, 2125, 2113, 2133, 2114, 2134, 2115, 01912 2135, 2137, 2116, 2138, 2117, 2142, 2118, 2144, 2147, 2119, 01913 2148, 2120, 2150, 2151, 2153, 2159, 2160, 2161, 2122, 2162, 01914 2163, 2124, 2125, 2167, 2133, 2168, 2134, 2169, 2135, 2137, 01915 2170, 2138, 2171, 2142, 2172, 2144, 2147, 2179, 2148, 2181, 01916 2150, 2151, 2153, 2159, 2160, 2161, 2182, 2162, 2163, 2185, 01917 2183, 2167, 2186, 2168, 2189, 2169, 2184, 2191, 2170, 2192, 01918 2171, 2193, 2172, 2194, 2195, 2179, 2196, 2181, 2197, 2206, 01919 2209, 2210, 2213, 2214, 2182, 2215, 2216, 2185, 2183, 2218, 01920 01921 2186, 2228, 2189, 2230, 2184, 2191, 2231, 2192, 2232, 2193, 01922 2233, 2194, 2195, 2236, 2196, 2238, 2197, 2206, 2209, 2210, 01923 2213, 2214, 2239, 2215, 2216, 2240, 2241, 2218, 2244, 2228, 01924 2245, 2230, 2246, 2247, 2231, 2248, 2232, 2249, 2233, 2250, 01925 2251, 2236, 2265, 2238, 2269, 2271, 2272, 2274, 2275, 2276, 01926 2239, 2277, 2278, 2240, 2241, 2280, 2244, 2281, 2245, 2282, 01927 2246, 2247, 2283, 2248, 2284, 2249, 2286, 2250, 2251, 2287, 01928 2265, 2288, 2269, 2271, 2272, 2274, 2275, 2276, 2289, 2277, 01929 2278, 2290, 2292, 2280, 2293, 2281, 2298, 2282, 2299, 2303, 01930 2283, 2305, 2284, 2308, 2286, 2309, 2311, 2287, 2312, 2288, 01931 01932 2314, 2319, 2320, 2321, 2322, 2323, 2289, 2325, 2326, 2290, 01933 2292, 2327, 2293, 2328, 2298, 2329, 2299, 2303, 2330, 2305, 01934 2337, 2308, 2338, 2309, 2311, 2350, 2312, 2352, 2314, 2319, 01935 2320, 2321, 2322, 2323, 2353, 2325, 2326, 2146, 2354, 2327, 01936 2355, 2328, 2357, 2329, 2358, 2359, 2330, 2361, 2337, 2362, 01937 2338, 2155, 2157, 2350, 2364, 2365, 2366, 2367, 2368, 2369, 01938 2371, 2166, 2372, 2373, 2374, 2375, 2354, 2376, 2355, 2377, 01939 2379, 2175, 2358, 2359, 2381, 2178, 2382, 2362, 2384, 2385, 01940 2386, 2387, 2388, 2365, 2366, 2389, 2368, 2369, 2390, 2188, 01941 2372, 2373, 2391, 2393, 2394, 2376, 2395, 2396, 2397, 2398, 01942 01943 2399, 2400, 2199, 2201, 2382, 2203, 2205, 2385, 2401, 2387, 01944 2388, 2208, 2402, 2389, 2403, 2212, 2390, 2404, 2405, 2406, 01945 2407, 2409, 2394, 2410, 2220, 2396, 2397, 2398, 2222, 2412, 01946 2225, 2227, 2413, 2415, 2416, 2417, 2401, 2418, 2419, 2235, 01947 2402, 2420, 2422, 2423, 2424, 2425, 2405, 2406, 2407, 2426, 01948 2428, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 01949 2413, 2253, 2416, 2417, 2255, 2418, 2419, 2257, 2259, 2420, 01950 2261, 2423, 2440, 2425, 2264, 2441, 2267, 2426, 2443, 2444, 01951 2446, 2432, 2447, 2434, 2448, 2450, 2451, 2438, 2452, 2453, 01952 2454, 2455, 2457, 2458, 2459, 2460, 2461, 2462, 2464, 2465, 01953 01954 2466, 2467, 2468, 2469, 2471, 2472, 2473, 2295, 2297, 2474, 01955 2475, 2301, 2448, 2477, 2451, 2478, 2452, 2480, 2481, 2455, 01956 2307, 2482, 2459, 2460, 2461, 2483, 2485, 2465, 2466, 2467, 01957 2468, 2486, 2487, 2472, 2473, 2489, 2490, 2474, 2316, 2318, 01958 2491, 2492, 2493, 2478, 2494, 2495, 2497, 2498, 2499, 2482, 01959 2500, 2501, 2502, 2483, 2503, 2505, 2333, 2507, 2336, 2486, 01960 2487, 2508, 2509, 2340, 2490, 2511, 2513, 2515, 2491, 2492, 01961 2345, 2517, 2494, 2495, 2519, 2349, 2499, 2520, 2352, 2522, 01962 2502, 2523, 2524, 2357, 2525, 2526, 2361, 2527, 2364, 2508, 01963 2528, 2529, 2531, 2532, 2533, 2371, 2534, 2535, 2537, 2539, 01964 01965 2540, 2542, 2379, 2381, 2543, 2520, 2384, 2544, 2546, 2523, 01966 2524, 2547, 2548, 2526, 2549, 2527, 2550, 2552, 2528, 2529, 01967 2393, 2532, 2533, 2553, 2534, 2535, 2555, 2556, 2557, 2558, 01968 2560, 2562, 2543, 2563, 2564, 2566, 2568, 2569, 2570, 2547, 01969 2548, 2571, 2549, 2409, 2573, 2412, 2574, 2415, 2575, 2576, 01970 2577, 2578, 2579, 2422, 2580, 2582, 2557, 2558, 2583, 2584, 01971 2428, 2430, 2564, 2586, 2587, 2569, 2570, 2589, 2590, 2571, 01972 2592, 2594, 2596, 2597, 2574, 2440, 2575, 2599, 2577, 2578, 01973 2579, 2443, 2580, 2601, 2446, 2603, 2604, 2450, 2605, 2606, 01974 2608, 2610, 2611, 2457, 2613, 2614, 2615, 2616, 2618, 2464, 01975 01976 2619, 2620, 2621, 2622, 2624, 2471, 2625, 2626, 2627, 2629, 01977 2477, 2630, 2480, 2632, 2633, 2634, 2605, 2606, 2485, 2635, 01978 2611, 2636, 2489, 2614, 2637, 2616, 2638, 2639, 2619, 2641, 01979 2642, 2622, 2643, 2497, 2625, 2626, 2627, 2645, 2646, 2630, 01980 2648, 2650, 2633, 2634, 2651, 2653, 2505, 2507, 2654, 2636, 01981 2656, 2511, 2637, 2513, 2638, 2639, 2515, 2517, 2642, 2519, 01982 2643, 2657, 2522, 2658, 2659, 2661, 2646, 2662, 2663, 2664, 01983 2665, 2531, 2666, 2667, 2668, 2669, 2654, 2537, 2539, 2671, 01984 2542, 2672, 2674, 2546, 2675, 2676, 2677, 2679, 2552, 2657, 01985 2681, 2658, 2659, 2555, 2683, 2662, 2663, 2684, 2685, 2560, 01986 01987 2562, 2667, 2668, 2687, 2688, 2566, 2568, 2689, 2690, 2672, 01988 2691, 2573, 2675, 2676, 2692, 2693, 2695, 2696, 2697, 2698, 01989 2699, 2582, 2701, 2703, 2586, 2705, 2685, 2589, 2707, 2592, 01990 2594, 2596, 2688, 2709, 2599, 2601, 2603, 2711, 2691, 2712, 01991 2713, 2608, 2692, 2693, 2610, 2696, 2714, 2698, 2613, 2715, 01992 2717, 2718, 2618, 2719, 2721, 2723, 2724, 2624, 2725, 2726, 01993 2727, 2629, 2728, 2632, 2729, 2730, 2732, 2712, 2713, 2733, 01994 2734, 2735, 2736, 2641, 2714, 2737, 2738, 2715, 2645, 2718, 01995 2739, 2719, 2648, 2650, 2741, 2653, 2725, 2726, 2742, 2656, 01996 2728, 2743, 2729, 2730, 2744, 2745, 2661, 2733, 2734, 2746, 01997 01998 2747, 2749, 2751, 2753, 2738, 2754, 2755, 2757, 2671, 2758, 01999 2674, 2759, 2760, 2762, 2679, 2681, 2742, 2683, 2764, 2743, 02000 2765, 2687, 2766, 2745, 2768, 2770, 2771, 2772, 2747, 2773, 02001 2695, 2774, 2776, 2754, 2777, 2779, 2701, 2758, 2703, 2759, 02002 2760, 2705, 2707, 2709, 2711, 2780, 2781, 2782, 2765, 2783, 02003 2766, 2717, 2784, 2785, 2721, 2772, 2723, 2773, 2787, 2774, 02004 2788, 2789, 2791, 2792, 2793, 2794, 2732, 2795, 2796, 2798, 02005 2800, 2802, 2803, 2780, 2781, 2782, 2805, 2741, 2806, 2807, 02006 2809, 2810, 2812, 2813, 2749, 2751, 2753, 2814, 2788, 2789, 02007 2816, 2792, 2757, 2794, 2817, 2818, 2796, 2819, 2762, 2764, 02008 02009 2803, 2820, 2821, 2768, 2770, 2823, 2806, 2807, 2824, 2810, 02010 2825, 2813, 2826, 2776, 2828, 2779, 2829, 2830, 2831, 2833, 02011 2835, 2837, 2817, 2818, 2787, 2838, 2839, 2791, 2840, 2820, 02012 2821, 2842, 2843, 2845, 2846, 2798, 2800, 2802, 2825, 2847, 02013 2805, 2848, 2849, 2809, 2850, 2830, 2831, 2812, 2851, 2853, 02014 2816, 2854, 2855, 2857, 2839, 2858, 2840, 2859, 2823, 2861, 02015 2843, 2862, 2846, 2864, 2828, 2866, 2867, 2868, 2833, 2848, 02016 2849, 2835, 2850, 2837, 2870, 2871, 2872, 2842, 2873, 2845, 02017 2855, 2874, 2876, 2877, 2878, 2879, 2881, 2853, 2883, 2884, 02018 2857, 2886, 2888, 2861, 2890, 2868, 2864, 2866, 2892, 2893, 02019 02020 2870, 2894, 2895, 2871, 2872, 2896, 2873, 2898, 2876, 2900, 02021 2902, 2904, 2881, 2883, 2906, 2886, 2888, 2890, 2892, 2908, 02022 2910, 2912, 2914, 2898, 2900, 2902, 2904, 2906, 2908, 2910, 02023 2912, 2914, 6, 6, 36, 36, 41, 43, 43, 132, 02024 132, 253, 256, 258, 262, 313, 389, 413, 446, 449, 02025 457, 461, 467, 481, 556, 578, 599, 601, 614, 644, 02026 649, 705, 718, 732, 748, 773, 788, 792, 794, 796, 02027 798, 842, 892, 894, 897, 903, 905, 948, 951, 957, 02028 964, 972, 981, 986, 1025, 1028, 1032, 1041, 1044, 1050, 02029 1118, 1124, 1159, 1162, 948, 951, 957, 964, 1178, 1180, 02030 02031 1182, 972, 1188, 1192, 981, 132, 132, 986, 1196, 1232, 02032 1025, 1028, 1032, 1257, 1041, 1264, 1044, 1050, 1270, 1282, 02033 1285, 1289, 1295, 1323, 1331, 1339, 1343, 1345, 1118, 1347, 02034 1124, 1354, 1358, 1159, 1162, 1413, 1420, 1178, 1180, 1182, 02035 1431, 1433, 1188, 1192, 1196, 1440, 1479, 1232, 1485, 1496, 02036 1498, 1500, 1257, 1264, 1515, 1270, 1523, 1528, 1282, 1285, 02037 1534, 1289, 1536, 1295, 1542, 1550, 1569, 1323, 1573, 1577, 02038 1580, 1331, 1584, 1586, 1339, 1591, 1343, 1345, 1347, 1594, 02039 1598, 1354, 1358, 1669, 1413, 1420, 1677, 1683, 1687, 1431, 02040 1433, 1689, 1693, 1440, 1479, 1485, 1738, 1496, 1498, 1500, 02041 02042 1747, 1751, 1757, 1515, 1763, 1523, 1528, 1779, 1534, 1536, 02043 1542, 1786, 1550, 1792, 1801, 1808, 1569, 1815, 1573, 1577, 02044 1580, 1584, 1586, 1822, 1824, 1591, 1594, 1598, 1834, 1867, 02045 1669, 1907, 1910, 1677, 1915, 1683, 1687, 1689, 1693, 1923, 02046 1925, 1961, 1964, 1738, 1747, 1751, 1757, 1763, 1994, 1998, 02047 1779, 2007, 2009, 2011, 1786, 1792, 2017, 2020, 1801, 2027, 02048 2030, 1808, 2033, 2037, 1815, 2044, 1822, 1824, 2053, 1834, 02049 2085, 1867, 2089, 1907, 2126, 1910, 2129, 2131, 1915, 1923, 02050 1925, 2139, 2145, 2154, 2156, 2165, 2174, 2177, 1961, 1964, 02051 2187, 2198, 2200, 2202, 2204, 2207, 2211, 1994, 1998, 2219, 02052 02053 2221, 2224, 2226, 2007, 2009, 2011, 2017, 2234, 2020, 2027, 02054 2030, 2033, 2037, 2044, 2252, 2254, 2256, 2258, 2260, 2053, 02055 2263, 2266, 2085, 2294, 2296, 2089, 2300, 2306, 2315, 2317, 02056 2332, 2335, 2126, 2339, 2129, 2131, 2344, 2139, 2348, 2351, 02057 2145, 2356, 2360, 2154, 2156, 2363, 2370, 2165, 2378, 2174, 02058 2380, 2177, 2383, 2187, 2392, 2198, 2200, 2202, 2204, 2207, 02059 2211, 2408, 2219, 2221, 2411, 2224, 2226, 2414, 2234, 2421, 02060 2427, 2429, 2252, 2254, 2256, 2258, 2260, 2439, 2263, 2266, 02061 2442, 2445, 2449, 2456, 2463, 2470, 2294, 2296, 2300, 2476, 02062 2479, 2306, 2484, 2488, 2315, 2317, 2496, 2504, 2332, 2506, 02063 02064 2335, 2339, 2510, 2512, 2514, 2344, 2516, 2518, 2348, 2351, 02065 2521, 2356, 2360, 2363, 2530, 2370, 2536, 2538, 2541, 2378, 02066 2380, 2383, 2545, 2551, 2392, 2554, 2559, 2561, 2565, 2567, 02067 2408, 2572, 2411, 2414, 2421, 2581, 2427, 2429, 2585, 2588, 02068 2591, 2593, 2595, 2439, 2598, 2442, 2600, 2445, 2602, 2449, 02069 2607, 2609, 2456, 2612, 2617, 2463, 2623, 2470, 2628, 2476, 02070 2479, 2631, 2484, 2488, 2640, 2496, 2644, 2647, 2649, 2652, 02071 2504, 2506, 2655, 2510, 2512, 2514, 2516, 2518, 2521, 2660, 02072 2530, 2536, 2538, 2670, 2541, 2673, 2545, 2678, 2551, 2680, 02073 2554, 2682, 2559, 2561, 2686, 2565, 2567, 2572, 2694, 2581, 02074 02075 2700, 2702, 2585, 2704, 2588, 2706, 2591, 2593, 2595, 2708, 02076 2598, 2600, 2602, 2710, 2607, 2609, 2612, 2716, 2617, 2720, 02077 2722, 2623, 2628, 2631, 2731, 2640, 2644, 2647, 2649, 2740, 02078 2652, 2655, 2660, 2748, 2750, 2752, 2756, 2670, 2673, 2761, 02079 2678, 2680, 2682, 2763, 2686, 2767, 2769, 2694, 2775, 2778, 02080 2700, 2702, 2704, 2706, 2708, 2710, 2716, 2720, 2722, 2786, 02081 2790, 2731, 2797, 2799, 2801, 2804, 2740, 2808, 2811, 2748, 02082 2750, 2752, 2815, 2756, 2761, 2763, 2822, 2827, 2778, 2832, 02083 2834, 2836, 2841, 2844, 2852, 2856, 2860, 2863, 2865, 2869, 02084 2875, 2880, 2882, 2885, 2887, 2889, 2891, 2897, 2899, 2901, 02085 02086 2903, 2905, 2907, 2909, 2911, 2913, 1924, 2136, 1916, 2132, 02087 2130, 2128, 1911, 2127, 1908, 2123, 2121, 2112, 2107, 2106, 02088 2098, 2093, 2090, 2088, 2087, 1868, 2086, 2058, 2056, 1835, 02089 2054, 2052, 2051, 2050, 2049, 2048, 1825, 1823, 2045, 1816, 02090 2038, 2034, 1809, 2031, 2028, 1802, 2021, 2019, 2018, 1793, 02091 1787, 2012, 2010, 2008, 1780, 2004, 2003, 2001, 2000, 1999, 02092 1995, 1989, 1764, 1984, 1758, 1983, 1982, 1981, 1752, 1748, 02093 1971, 1739, 1968, 1965, 1962, 1959, 1957, 1950, 1949, 1947, 02094 1941, 1940, 1932, 1927, 1926, 1924, 1694, 1690, 1688, 1684, 02095 1916, 1914, 1678, 1913, 1911, 1909, 1908, 1670, 1871, 1868, 02096 02097 1866, 1835, 1833, 1599, 1595, 1592, 1825, 1823, 1587, 1585, 02098 1821, 1581, 1578, 1574, 1816, 1570, 1810, 1809, 1806, 1802, 02099 1796, 1794, 1793, 1551, 1787, 1785, 1543, 1784, 1783, 1537, 02100 1535, 1780, 1529, 1773, 1524, 1770, 1764, 1516, 1758, 1752, 02101 1749, 1748, 1501, 1499, 1497, 1739, 1737, 1486, 1733, 1480, 02102 1731, 1696, 1441, 1695, 1694, 1690, 1434, 1432, 1688, 1684, 02103 1680, 1678, 1421, 1674, 1672, 1414, 1670, 1631, 1602, 1359, 02104 1355, 1599, 1595, 1348, 1346, 1344, 1592, 1340, 1589, 1588, 02105 1587, 1585, 1332, 1581, 1578, 1574, 1324, 1572, 1570, 1565, 02106 1560, 1552, 1551, 1545, 1543, 1296, 1537, 1290, 1535, 1533, 02107 02108 1286, 1283, 1529, 1524, 1271, 1519, 1517, 1516, 1265, 1510, 02109 1258, 1505, 1502, 1501, 1499, 1497, 1488, 1486, 1233, 1480, 02110 1441, 1197, 1438, 1193, 1189, 1434, 1432, 1430, 1183, 1181, 02111 1179, 1427, 1422, 1421, 1414, 1163, 1411, 1160, 1359, 1355, 02112 1353, 1125, 1350, 1349, 1348, 1119, 1346, 1344, 1342, 1340, 02113 1336, 1335, 1333, 1332, 1330, 1325, 1324, 1320, 1302, 1301, 02114 1298, 1296, 1291, 1290, 1288, 1286, 1283, 1279, 1275, 1271, 02115 1051, 1266, 1045, 1265, 1042, 1258, 1033, 1029, 1026, 1248, 02116 1247, 1246, 1238, 1236, 1235, 1233, 1231, 1198, 1197, 987, 02117 982, 1193, 1189, 1187, 1186, 973, 1184, 1183, 1181, 1179, 02118 02119 965, 1175, 1171, 958, 952, 949, 1165, 1163, 1160, 1137, 02120 1131, 1128, 1125, 1120, 1119, 1117, 1116, 1113, 1106, 906, 02121 904, 898, 895, 893, 1100, 1083, 1073, 1068, 1065, 1063, 02122 1052, 1051, 843, 1045, 1043, 1042, 1035, 1033, 1029, 1026, 02123 1018, 1016, 1010, 990, 799, 797, 795, 793, 987, 789, 02124 982, 980, 979, 977, 973, 970, 969, 968, 774, 965, 02125 958, 952, 949, 945, 943, 942, 749, 935, 733, 919, 02126 915, 719, 906, 904, 898, 706, 895, 893, 878, 845, 02127 843, 650, 838, 836, 645, 835, 827, 615, 799, 797, 02128 795, 793, 791, 789, 787, 602, 600, 780, 774, 771, 02129 02130 579, 765, 763, 758, 749, 746, 557, 738, 733, 719, 02131 717, 528, 713, 712, 707, 706, 703, 702, 697, 482, 02132 654, 650, 645, 468, 462, 458, 450, 447, 615, 610, 02133 609, 608, 607, 604, 602, 600, 414, 593, 586, 582, 02134 579, 390, 571, 561, 557, 554, 553, 550, 546, 533, 02135 354, 521, 519, 515, 513, 482, 314, 475, 472, 469, 02136 468, 299, 465, 464, 462, 458, 450, 447, 436, 435, 02137 432, 263, 259, 257, 254, 420, 419, 414, 412, 409, 02138 399, 398, 397, 390, 385, 383, 374, 367, 316, 314, 02139 310, 301, 293, 279, 263, 259, 257, 254, 201, 183, 02140 02141 179, 42, 129, 42, 2915, 5, 2915, 2915, 2915, 2915, 02142 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02143 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02144 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02145 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02146 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02147 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915 02148 } ; 02149 02150 static yyconst flex_int16_t yy_chk[5469] = 02151 { 0, 02152 0, 1926, 1, 1, 1, 9, 9, 10, 10, 10, 02153 36, 36, 38, 38, 39, 39, 39, 43, 43, 45, 02154 45, 46, 46, 46, 132, 132, 134, 134, 136, 136, 02155 136, 137, 137, 1927, 1, 2, 2, 2, 2, 2, 02156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 02161 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 02162 02163 4, 1928, 20, 1930, 12, 985, 985, 18, 26, 4, 02164 1932, 12, 1935, 31, 15, 18, 1938, 50, 1940, 1941, 02165 33, 1942, 18, 48, 15, 1948, 13, 1949, 1956, 3, 02166 20, 4, 12, 13, 15, 18, 26, 4, 11, 12, 02167 13, 31, 15, 18, 33, 50, 13, 11, 11, 11, 02168 18, 11, 15, 11, 13, 11, 11, 48, 1957, 30, 02169 17, 13, 15, 1958, 30, 35, 11, 17, 13, 1959, 02170 51, 1962, 33, 17, 13, 11, 11, 11, 124, 11, 02171 16, 11, 52, 11, 11, 14, 35, 30, 17, 14, 02172 19, 16, 30, 14, 16, 17, 54, 16, 51, 14, 02173 02174 19, 17, 14, 21, 1963, 19, 19, 21, 16, 1965, 02175 52, 21, 124, 14, 35, 23, 1971, 14, 19, 16, 02176 55, 14, 16, 21, 54, 16, 22, 14, 19, 23, 02177 14, 21, 23, 19, 19, 21, 25, 24, 27, 21, 02178 22, 22, 27, 23, 22, 53, 57, 25, 55, 24, 02179 25, 21, 27, 25, 22, 24, 24, 23, 27, 1973, 02180 23, 1981, 53, 572, 25, 24, 27, 1982, 22, 22, 02181 27, 1983, 22, 53, 57, 25, 1984, 24, 25, 1986, 02182 27, 25, 1989, 24, 24, 59, 27, 28, 29, 28, 02183 53, 32, 29, 32, 58, 32, 28, 572, 58, 32, 02184 02185 28, 29, 1995, 49, 28, 28, 40, 40, 29, 28, 02186 49, 1996, 1999, 59, 2000, 28, 29, 28, 62, 32, 02187 29, 32, 58, 32, 28, 40, 58, 32, 28, 29, 02188 60, 49, 28, 28, 60, 63, 29, 28, 49, 56, 02189 61, 61, 56, 64, 65, 66, 62, 67, 68, 69, 02190 70, 71, 56, 40, 72, 73, 74, 75, 60, 76, 02191 77, 80, 60, 63, 81, 78, 81, 56, 61, 61, 02192 56, 64, 65, 66, 83, 67, 68, 69, 70, 71, 02193 56, 78, 72, 73, 74, 75, 84, 76, 77, 80, 02194 85, 86, 81, 78, 81, 87, 85, 88, 91, 89, 02195 02196 90, 92, 83, 89, 90, 93, 95, 96, 90, 78, 02197 97, 98, 89, 99, 84, 101, 89, 97, 85, 86, 02198 100, 100, 102, 87, 85, 88, 91, 89, 90, 92, 02199 103, 89, 90, 93, 95, 96, 90, 107, 97, 98, 02200 89, 99, 104, 101, 89, 97, 104, 106, 100, 100, 02201 102, 105, 108, 109, 110, 111, 2001, 2002, 103, 111, 02202 106, 114, 105, 115, 117, 107, 112, 118, 113, 111, 02203 104, 119, 113, 121, 104, 106, 116, 112, 2003, 105, 02204 108, 109, 110, 111, 112, 113, 122, 111, 106, 114, 02205 105, 115, 117, 116, 128, 118, 113, 111, 131, 119, 02206 02207 113, 121, 123, 120, 116, 112, 120, 125, 140, 123, 02208 126, 120, 112, 113, 122, 125, 142, 126, 120, 138, 02209 138, 116, 128, 143, 144, 141, 131, 145, 138, 146, 02210 123, 120, 147, 148, 120, 125, 140, 123, 126, 120, 02211 141, 149, 150, 125, 142, 126, 120, 151, 152, 153, 02212 155, 143, 144, 141, 156, 145, 138, 146, 158, 157, 02213 147, 148, 159, 160, 161, 163, 164, 165, 141, 149, 02214 150, 157, 166, 169, 156, 151, 152, 153, 155, 157, 02215 167, 167, 167, 171, 161, 157, 158, 170, 172, 173, 02216 159, 160, 174, 163, 164, 165, 175, 177, 161, 157, 02217 02218 166, 169, 156, 178, 180, 184, 170, 157, 185, 186, 02219 187, 171, 161, 157, 182, 170, 172, 173, 2004, 2006, 02220 174, 182, 2008, 2010, 175, 177, 199, 199, 199, 2012, 02221 2018, 178, 180, 184, 2019, 2021, 185, 186, 187, 298, 02222 298, 298, 182, 183, 183, 2023, 183, 183, 183, 183, 02223 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 02224 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 02225 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 02226 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 02227 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 02228 02229 183, 183, 183, 183, 183, 188, 189, 190, 191, 192, 02230 193, 194, 194, 195, 196, 197, 198, 200, 202, 203, 02231 205, 206, 207, 194, 2028, 208, 2031, 2032, 209, 2034, 02232 210, 212, 213, 188, 189, 190, 191, 192, 193, 194, 02233 194, 195, 196, 197, 198, 200, 202, 203, 205, 206, 02234 207, 194, 201, 208, 201, 201, 209, 201, 210, 212, 02235 213, 214, 215, 216, 201, 217, 218, 201, 219, 221, 02236 201, 201, 223, 224, 225, 227, 228, 2035, 230, 234, 02237 201, 2038, 201, 201, 235, 201, 236, 237, 238, 214, 02238 215, 216, 201, 217, 218, 201, 219, 221, 201, 201, 02239 02240 223, 224, 225, 227, 228, 229, 230, 234, 239, 229, 02241 240, 229, 235, 241, 236, 237, 238, 242, 244, 245, 02242 249, 250, 255, 248, 260, 261, 261, 264, 265, 266, 02243 267, 268, 270, 229, 269, 272, 239, 229, 240, 229, 02244 248, 241, 273, 261, 276, 242, 244, 245, 249, 250, 02245 255, 248, 260, 277, 278, 264, 265, 266, 267, 268, 02246 270, 269, 269, 272, 280, 282, 284, 285, 248, 286, 02247 273, 261, 276, 2045, 287, 288, 289, 291, 292, 294, 02248 297, 277, 278, 279, 303, 304, 306, 307, 309, 310, 02249 311, 312, 280, 282, 284, 285, 279, 286, 279, 279, 02250 02251 315, 279, 287, 288, 289, 291, 292, 294, 297, 317, 02252 321, 279, 303, 304, 306, 307, 309, 310, 311, 312, 02253 318, 322, 325, 320, 279, 318, 279, 279, 315, 279, 02254 319, 318, 320, 324, 323, 319, 323, 317, 321, 326, 02255 324, 327, 329, 2048, 328, 331, 329, 333, 318, 322, 02256 325, 320, 328, 318, 334, 335, 337, 339, 319, 318, 02257 320, 324, 323, 319, 323, 330, 332, 326, 324, 327, 02258 329, 330, 328, 331, 329, 333, 332, 340, 341, 332, 02259 328, 343, 334, 335, 337, 339, 345, 346, 347, 348, 02260 349, 352, 357, 330, 332, 350, 350, 350, 351, 330, 02261 02262 353, 353, 353, 358, 332, 340, 341, 332, 359, 343, 02263 360, 361, 364, 351, 345, 346, 347, 348, 349, 352, 02264 357, 362, 363, 366, 367, 369, 351, 370, 367, 362, 02265 373, 358, 363, 375, 376, 377, 359, 379, 360, 361, 02266 364, 363, 362, 380, 381, 382, 383, 384, 385, 362, 02267 363, 366, 367, 369, 386, 370, 367, 362, 373, 387, 02268 363, 375, 376, 377, 391, 379, 392, 393, 394, 363, 02269 362, 380, 381, 382, 383, 384, 385, 395, 396, 398, 02270 399, 401, 386, 402, 403, 405, 406, 387, 407, 408, 02271 409, 410, 391, 412, 392, 393, 394, 415, 416, 417, 02272 02273 418, 421, 424, 429, 430, 395, 396, 398, 399, 401, 02274 431, 402, 403, 405, 406, 433, 407, 408, 409, 410, 02275 434, 412, 423, 423, 435, 415, 416, 417, 418, 421, 02276 424, 429, 430, 436, 437, 438, 439, 440, 431, 441, 02277 442, 443, 444, 433, 445, 448, 423, 451, 434, 452, 02278 442, 453, 435, 454, 455, 456, 443, 459, 460, 463, 02279 464, 436, 437, 438, 439, 440, 465, 441, 442, 443, 02280 444, 466, 445, 448, 423, 451, 470, 452, 442, 453, 02281 473, 454, 455, 456, 443, 459, 460, 463, 464, 471, 02282 474, 475, 477, 478, 465, 479, 480, 471, 483, 466, 02283 02284 484, 485, 486, 487, 470, 488, 489, 490, 473, 491, 02285 492, 493, 494, 495, 496, 497, 498, 471, 474, 475, 02286 477, 478, 501, 479, 480, 471, 483, 499, 484, 485, 02287 486, 487, 502, 488, 489, 490, 503, 491, 492, 493, 02288 494, 495, 496, 497, 498, 499, 500, 504, 505, 506, 02289 501, 500, 507, 508, 509, 499, 510, 511, 512, 2049, 02290 502, 518, 2050, 521, 503, 2051, 522, 521, 2052, 523, 02291 526, 530, 2054, 499, 500, 504, 505, 506, 2055, 500, 02292 507, 508, 509, 531, 510, 511, 512, 513, 534, 518, 02293 515, 521, 515, 515, 522, 521, 513, 523, 526, 530, 02294 02295 513, 513, 513, 513, 515, 527, 527, 527, 535, 536, 02296 537, 531, 538, 539, 540, 513, 534, 541, 515, 542, 02297 515, 515, 543, 544, 513, 545, 547, 548, 513, 513, 02298 513, 513, 515, 549, 550, 552, 535, 536, 537, 553, 02299 538, 539, 540, 554, 555, 541, 554, 542, 558, 560, 02300 543, 544, 562, 545, 547, 548, 563, 564, 565, 566, 02301 554, 549, 550, 552, 567, 568, 569, 553, 571, 573, 02302 575, 554, 555, 577, 554, 580, 558, 560, 581, 582, 02303 562, 583, 585, 587, 563, 564, 565, 566, 554, 588, 02304 589, 590, 567, 568, 569, 591, 571, 573, 575, 593, 02305 02306 594, 577, 595, 580, 596, 597, 581, 582, 598, 583, 02307 585, 587, 605, 605, 611, 612, 613, 588, 589, 590, 02308 616, 617, 618, 591, 605, 619, 620, 593, 594, 617, 02309 595, 621, 596, 597, 622, 623, 598, 624, 625, 626, 02310 627, 628, 611, 612, 613, 629, 630, 631, 616, 617, 02311 618, 632, 605, 619, 620, 633, 634, 635, 636, 621, 02312 638, 639, 622, 623, 2056, 624, 625, 626, 627, 628, 02313 640, 641, 642, 629, 630, 631, 647, 651, 642, 632, 02314 652, 653, 655, 633, 634, 657, 658, 659, 660, 639, 02315 661, 635, 636, 662, 638, 663, 664, 665, 640, 641, 02316 02317 642, 666, 667, 668, 647, 651, 642, 669, 652, 653, 02318 655, 670, 671, 657, 658, 659, 660, 672, 661, 673, 02319 674, 662, 675, 663, 664, 665, 676, 677, 678, 666, 02320 667, 668, 679, 680, 681, 669, 682, 683, 684, 670, 02321 671, 685, 686, 687, 688, 672, 690, 673, 674, 691, 02322 675, 692, 693, 694, 676, 677, 678, 695, 696, 698, 02323 679, 680, 681, 697, 682, 683, 684, 699, 700, 685, 02324 686, 687, 688, 697, 690, 701, 704, 691, 708, 692, 02325 693, 694, 709, 710, 711, 695, 696, 698, 714, 715, 02326 716, 697, 717, 720, 721, 699, 700, 717, 722, 724, 02327 02328 725, 697, 726, 701, 704, 728, 708, 729, 730, 731, 02329 709, 710, 711, 734, 735, 736, 714, 715, 716, 2058, 02330 717, 720, 721, 737, 738, 717, 722, 724, 725, 739, 02331 726, 740, 741, 728, 742, 729, 730, 731, 743, 745, 02332 746, 747, 735, 736, 750, 751, 754, 734, 756, 757, 02333 759, 737, 738, 761, 762, 763, 764, 739, 766, 740, 02334 741, 767, 742, 750, 768, 769, 743, 745, 746, 747, 02335 770, 772, 750, 751, 754, 775, 756, 757, 759, 779, 02336 781, 761, 762, 763, 764, 782, 766, 784, 781, 767, 02337 800, 801, 768, 769, 790, 790, 790, 803, 770, 772, 02338 02339 804, 2059, 2061, 775, 983, 983, 983, 779, 781, 2064, 02340 806, 807, 2070, 782, 808, 784, 781, 810, 800, 801, 02341 2076, 811, 812, 2082, 813, 803, 814, 816, 804, 805, 02342 805, 805, 805, 805, 805, 805, 818, 805, 806, 807, 02343 805, 805, 808, 819, 805, 810, 820, 805, 805, 811, 02344 812, 805, 813, 822, 814, 816, 824, 805, 805, 805, 02345 805, 805, 805, 805, 818, 805, 821, 826, 805, 805, 02346 827, 819, 805, 829, 820, 805, 805, 831, 832, 805, 02347 833, 822, 834, 835, 824, 839, 840, 841, 844, 821, 02348 847, 848, 849, 850, 821, 826, 851, 852, 827, 853, 02349 02350 854, 829, 855, 856, 858, 831, 832, 860, 833, 861, 02351 834, 835, 863, 839, 840, 841, 844, 864, 847, 848, 02352 849, 850, 865, 866, 851, 852, 868, 853, 854, 869, 02353 855, 856, 858, 870, 871, 860, 872, 861, 873, 874, 02354 863, 875, 876, 879, 878, 864, 880, 881, 882, 883, 02355 865, 866, 878, 884, 868, 878, 885, 869, 878, 886, 02356 887, 870, 871, 888, 872, 889, 873, 874, 890, 875, 02357 876, 879, 878, 896, 880, 881, 882, 883, 899, 900, 02358 878, 884, 901, 878, 885, 902, 878, 886, 887, 908, 02359 909, 888, 910, 889, 911, 912, 890, 913, 915, 916, 02360 02361 921, 896, 922, 923, 925, 926, 899, 900, 928, 929, 02362 901, 931, 932, 902, 933, 934, 935, 908, 909, 937, 02363 910, 938, 911, 912, 939, 913, 915, 916, 921, 940, 02364 922, 923, 925, 926, 941, 2086, 928, 929, 2087, 931, 02365 932, 2088, 933, 934, 935, 944, 2090, 937, 2093, 938, 02366 2094, 946, 939, 941, 2096, 950, 953, 940, 954, 955, 02367 956, 960, 941, 942, 942, 942, 942, 942, 942, 942, 02368 961, 942, 962, 944, 942, 942, 942, 966, 942, 946, 02369 967, 942, 942, 950, 953, 942, 954, 955, 956, 960, 02370 974, 942, 942, 942, 942, 942, 942, 942, 961, 942, 02371 02372 962, 978, 942, 942, 942, 966, 942, 979, 967, 942, 02373 942, 988, 989, 942, 992, 993, 994, 995, 974, 996, 02374 997, 1000, 1000, 998, 995, 1001, 2098, 998, 995, 978, 02375 999, 995, 996, 998, 2101, 979, 1005, 999, 1004, 988, 02376 989, 1004, 992, 993, 994, 995, 1006, 996, 997, 1000, 02377 1000, 998, 995, 1001, 1002, 998, 995, 1007, 999, 995, 02378 996, 998, 1002, 1008, 1005, 999, 1004, 1011, 1002, 1004, 02379 1014, 1016, 1017, 1022, 1006, 1023, 1024, 2104, 1027, 1023, 02380 1030, 1031, 1002, 2106, 1034, 1007, 1036, 2107, 1037, 2113, 02381 1002, 1008, 1038, 1039, 1040, 1011, 1002, 1003, 1014, 1016, 02382 02383 1017, 1022, 1047, 1023, 1024, 1003, 1027, 1023, 1030, 1031, 02384 1048, 1003, 1034, 1049, 1036, 1003, 1037, 1003, 2120, 2121, 02385 1038, 1039, 1040, 1053, 1054, 1003, 1055, 1057, 1058, 1059, 02386 1047, 1061, 1062, 1003, 1064, 2122, 2123, 1066, 1048, 1003, 02387 2127, 1049, 1070, 1003, 1071, 1003, 1018, 1018, 1072, 1074, 02388 1076, 1053, 1054, 1077, 1055, 1057, 1058, 1059, 1080, 1061, 02389 1062, 1081, 1064, 1018, 1018, 1066, 1082, 1083, 1018, 1084, 02390 1070, 1085, 1071, 1086, 1018, 1018, 1072, 1074, 1076, 1087, 02391 1088, 1077, 1089, 1090, 1091, 1092, 1080, 1093, 1094, 1081, 02392 1095, 1018, 1018, 1096, 1082, 1083, 1018, 1084, 1098, 1085, 02393 02394 1099, 1086, 1102, 1103, 1104, 1108, 1111, 1087, 1088, 1112, 02395 1089, 1090, 1091, 1092, 1114, 1093, 1094, 1123, 1095, 1126, 02396 1129, 1096, 1130, 1132, 1133, 1134, 1098, 1135, 1099, 1136, 02397 1102, 1103, 2128, 1108, 1111, 2130, 2132, 1112, 1104, 1138, 02398 1139, 1140, 1114, 1141, 1142, 1123, 1144, 1126, 1129, 1145, 02399 1130, 1132, 1133, 1134, 1148, 1135, 1152, 1136, 1137, 1137, 02400 1137, 1137, 1137, 1137, 1137, 2133, 1137, 1138, 1139, 1140, 02401 1137, 1141, 1142, 1137, 1144, 1143, 1137, 1145, 2134, 1153, 02402 1137, 1143, 1148, 1147, 1152, 2135, 1137, 1137, 1137, 1137, 02403 1137, 1137, 1137, 1149, 1137, 1150, 1147, 1149, 1137, 1146, 02404 02405 1154, 1137, 1150, 1143, 1137, 1157, 1146, 1153, 1137, 1143, 02406 1146, 1147, 1158, 1146, 1151, 1151, 2136, 1156, 1164, 1166, 02407 1156, 1149, 1167, 1150, 1147, 1149, 1168, 1146, 1154, 1169, 02408 1150, 1170, 1173, 1157, 1146, 1174, 1190, 1175, 1146, 1177, 02409 1158, 1146, 1151, 1151, 1155, 1156, 1164, 1166, 1156, 1184, 02410 1167, 1175, 1155, 1191, 1168, 1195, 1199, 1169, 1155, 1170, 02411 1173, 1200, 1155, 1174, 1155, 1175, 1201, 1177, 1202, 1203, 02412 1190, 1204, 1155, 1205, 1207, 1205, 1206, 1184, 1208, 1175, 02413 1155, 1191, 1205, 1195, 1199, 1209, 1155, 1210, 1206, 1200, 02414 1155, 1206, 1155, 1211, 1201, 1212, 1202, 1203, 1213, 1204, 02415 02416 1214, 1205, 1207, 1205, 1206, 1215, 1208, 1216, 1217, 1218, 02417 1205, 1219, 1220, 1209, 1221, 1210, 1206, 1222, 1223, 1206, 02418 1224, 1211, 1226, 1212, 1225, 1227, 1213, 1228, 1214, 1229, 02419 1230, 1234, 1235, 1215, 1236, 1216, 1217, 1218, 1225, 1219, 02420 1220, 1237, 1221, 1239, 1241, 1222, 1223, 1242, 1224, 1245, 02421 1226, 1250, 1225, 1227, 1251, 1228, 1243, 1229, 1230, 1234, 02422 1235, 1253, 1236, 1254, 1243, 1244, 1225, 1255, 1256, 1237, 02423 1260, 1239, 1241, 1244, 1261, 1242, 1262, 1245, 1263, 1250, 02424 1268, 1272, 1251, 1273, 1243, 1274, 1276, 1277, 1278, 1253, 02425 1280, 1254, 1243, 1244, 1281, 1255, 1256, 1284, 1260, 1292, 02426 02427 1293, 1244, 1261, 1294, 1262, 1297, 1263, 1299, 1268, 1272, 02428 1304, 1273, 1301, 1274, 1276, 1277, 1278, 1305, 1280, 1306, 02429 1301, 1307, 1281, 1301, 1308, 1284, 1301, 1292, 1293, 1309, 02430 1310, 1294, 1312, 1297, 1313, 1299, 1314, 1315, 1304, 1317, 02431 1301, 1318, 1319, 1321, 1326, 1305, 1327, 1306, 1301, 1307, 02432 1329, 1301, 1308, 1333, 1301, 1334, 1341, 1309, 1310, 1349, 02433 1312, 1351, 1313, 1352, 1314, 1315, 1356, 1317, 1357, 1318, 02434 1319, 1321, 1326, 1361, 1327, 1362, 1363, 1364, 1329, 1365, 02435 2137, 1333, 1366, 1334, 1341, 1366, 1367, 1349, 1369, 1351, 02436 1367, 1352, 1370, 1367, 1356, 1368, 1357, 1371, 1370, 1372, 02437 02438 1372, 1361, 1375, 1362, 1363, 1364, 1375, 1365, 1368, 1373, 02439 1366, 1376, 1377, 1366, 1367, 1379, 1369, 1373, 1367, 1380, 02440 1370, 1367, 1381, 1368, 1374, 1371, 1370, 1372, 1372, 1382, 02441 1375, 1383, 1374, 1384, 1375, 1385, 1368, 1373, 1374, 1376, 02442 1377, 1386, 1374, 1379, 1387, 1373, 1388, 1380, 1391, 1389, 02443 1381, 1389, 1374, 1390, 1392, 1393, 1394, 1382, 1389, 1383, 02444 1374, 1384, 1395, 1385, 1396, 1390, 1374, 1397, 1390, 1386, 02445 1374, 1398, 1387, 1399, 1388, 1400, 1391, 1389, 1401, 1389, 02446 1402, 1390, 1392, 1393, 1394, 1403, 1389, 1404, 1405, 1406, 02447 1395, 1407, 1396, 1390, 1408, 1397, 1390, 1409, 1410, 1398, 02448 02449 1412, 1399, 1416, 1400, 1418, 1407, 1401, 1419, 1402, 1423, 02450 1425, 1426, 1428, 1403, 1429, 1404, 1405, 1406, 1436, 1407, 02451 1437, 1443, 1408, 1444, 1445, 1409, 1410, 1446, 1412, 1447, 02452 1416, 1448, 1418, 1407, 1449, 1419, 1450, 1423, 1425, 1426, 02453 1428, 1451, 1429, 1452, 1453, 1454, 1436, 1455, 1437, 1443, 02454 1456, 1444, 1445, 1457, 1458, 1446, 1459, 1447, 1460, 1448, 02455 1461, 1462, 1449, 1463, 1450, 1464, 1465, 1466, 1467, 1451, 02456 1468, 1452, 1453, 1454, 1469, 1455, 1470, 1471, 1456, 1472, 02457 1473, 1457, 1458, 1474, 1459, 1475, 1460, 1476, 1461, 1462, 02458 1478, 1463, 1482, 1464, 1465, 1466, 1467, 1483, 1468, 1484, 02459 02460 1489, 1490, 1469, 1491, 1470, 1471, 1492, 1472, 1473, 1493, 02461 1494, 1474, 1495, 1475, 1504, 1476, 1506, 1507, 1478, 1508, 02462 1482, 1509, 1511, 1512, 1513, 1483, 1514, 1484, 1489, 1490, 02463 1518, 1491, 2138, 1521, 1492, 1522, 1526, 1493, 1494, 1519, 02464 1495, 1527, 1504, 1530, 1506, 1507, 1531, 1508, 1532, 1509, 02465 1511, 1512, 1513, 1538, 1514, 1519, 1519, 1539, 1518, 1546, 02466 1519, 1521, 1547, 1522, 1526, 1548, 1549, 1519, 1554, 1527, 02467 1556, 1530, 1557, 1558, 1531, 1559, 1532, 1561, 1562, 1564, 02468 1567, 1538, 1568, 1519, 1519, 1539, 1571, 1546, 1519, 1575, 02469 1547, 1576, 2140, 1548, 1549, 1579, 1554, 1582, 1556, 1590, 02470 02471 1557, 1558, 1593, 1559, 1596, 1561, 1600, 1564, 1567, 1603, 02472 1568, 1604, 1562, 1597, 1597, 1597, 1605, 1575, 1606, 1576, 02473 1571, 1607, 1608, 1579, 1609, 1582, 1610, 1590, 1611, 1612, 02474 1593, 1612, 1596, 1613, 1600, 1612, 1614, 1603, 1615, 1604, 02475 1616, 1617, 1618, 1619, 1605, 1620, 1606, 1621, 1622, 1607, 02476 1608, 1623, 1609, 1624, 1610, 1625, 1611, 1612, 1626, 1612, 02477 1627, 1613, 1628, 1612, 1614, 1629, 1615, 1632, 1616, 1617, 02478 1618, 1619, 1633, 1620, 1627, 1621, 1622, 1635, 1636, 1623, 02479 1637, 1624, 1638, 1625, 1639, 1640, 1626, 1641, 1627, 1642, 02480 1628, 1643, 1644, 1629, 1645, 1632, 1646, 1647, 1648, 1649, 02481 02482 1633, 1650, 1627, 1651, 1652, 1635, 1636, 1653, 1637, 1654, 02483 1638, 1655, 1639, 1640, 1656, 1641, 1657, 1642, 1658, 1643, 02484 1644, 1659, 1645, 1660, 1646, 1647, 1648, 1649, 1661, 1650, 02485 1662, 1651, 1652, 1663, 1664, 1653, 1665, 1654, 1666, 1655, 02486 1667, 1668, 1656, 1671, 1657, 1675, 1658, 1681, 1682, 1659, 02487 1685, 1660, 1686, 1691, 1692, 1698, 1661, 1699, 1662, 1700, 02488 1701, 1663, 1664, 1703, 1665, 1704, 1666, 1705, 1667, 1668, 02489 1706, 1671, 1707, 1675, 1708, 1681, 1682, 1709, 1685, 1712, 02490 1686, 1691, 1692, 1698, 1713, 1699, 1714, 1700, 1701, 1715, 02491 1716, 1703, 1718, 1704, 1721, 1705, 1722, 1723, 1706, 1724, 02492 02493 1707, 1725, 1708, 1726, 1728, 1709, 1730, 1712, 1732, 1734, 02494 1735, 1737, 1713, 1740, 1714, 1742, 1743, 1715, 1716, 1744, 02495 1718, 1745, 1721, 1746, 1722, 1723, 1749, 1724, 1749, 1725, 02496 1750, 1726, 1728, 1753, 1730, 1760, 1732, 1734, 1735, 1737, 02497 1761, 1740, 1762, 1742, 1743, 1766, 2141, 1744, 1767, 1745, 02498 1768, 1746, 1769, 1771, 1749, 1772, 1749, 1776, 1750, 1781, 02499 1782, 1753, 1788, 1760, 1789, 1790, 1791, 1797, 1798, 1799, 02500 1762, 1800, 1803, 1766, 1761, 1805, 1767, 1807, 1768, 1811, 02501 1769, 1771, 1812, 1772, 1814, 1776, 1817, 1781, 1782, 1818, 02502 1788, 1819, 1789, 1790, 1791, 1797, 1798, 1799, 1820, 1800, 02503 02504 1803, 1826, 1827, 1805, 1836, 1807, 1838, 1811, 1840, 1841, 02505 1812, 1842, 1814, 1843, 1817, 1844, 1845, 1818, 1846, 1819, 02506 1847, 1848, 1849, 1850, 1851, 1852, 1820, 1853, 1854, 1826, 02507 1827, 1855, 1836, 1856, 1838, 1857, 1840, 1841, 1858, 1842, 02508 1859, 1843, 1860, 1844, 1845, 1861, 1846, 1862, 1847, 1848, 02509 1849, 1850, 1851, 1852, 1863, 1853, 1854, 1864, 1865, 1855, 02510 1872, 1856, 1873, 1857, 1875, 1876, 1858, 1877, 1859, 1878, 02511 1860, 1880, 1881, 1861, 1882, 1862, 1883, 1884, 1885, 1886, 02512 1889, 1890, 1863, 1891, 1892, 1864, 1865, 1894, 1872, 1895, 02513 1873, 1896, 1875, 1876, 1897, 1877, 1898, 1878, 1899, 1880, 02514 02515 1881, 1900, 1882, 1901, 1883, 1884, 1885, 1886, 1889, 1890, 02516 1903, 1891, 1892, 1905, 1906, 1894, 1917, 1895, 1918, 1896, 02517 1919, 1921, 1897, 1922, 1898, 1929, 1899, 1931, 1933, 1900, 02518 1934, 1901, 1936, 1937, 1939, 1943, 1944, 1945, 1903, 1946, 02519 1947, 1905, 1906, 1950, 1917, 1951, 1918, 1952, 1919, 1921, 02520 1953, 1922, 1954, 1929, 1955, 1931, 1933, 1960, 1934, 1966, 02521 1936, 1937, 1939, 1943, 1944, 1945, 1967, 1946, 1947, 1969, 02522 1968, 1950, 1970, 1951, 1972, 1952, 1968, 1974, 1953, 1975, 02523 1954, 1976, 1955, 1977, 1978, 1960, 1979, 1966, 1980, 1985, 02524 1987, 1988, 1990, 1991, 1967, 1992, 1993, 1969, 1968, 1997, 02525 02526 1970, 2005, 1972, 2013, 1968, 1974, 2014, 1975, 2015, 1976, 02527 2016, 1977, 1978, 2022, 1979, 2024, 1980, 1985, 1987, 1988, 02528 1990, 1991, 2025, 1992, 1993, 2026, 2029, 1997, 2036, 2005, 02529 2039, 2013, 2040, 2041, 2014, 2042, 2015, 2043, 2016, 2046, 02530 2047, 2022, 2057, 2024, 2060, 2062, 2063, 2065, 2066, 2067, 02531 2025, 2068, 2069, 2026, 2029, 2071, 2036, 2072, 2039, 2073, 02532 2040, 2041, 2074, 2042, 2075, 2043, 2077, 2046, 2047, 2078, 02533 2057, 2079, 2060, 2062, 2063, 2065, 2066, 2067, 2080, 2068, 02534 2069, 2081, 2083, 2071, 2084, 2072, 2091, 2073, 2092, 2095, 02535 2074, 2097, 2075, 2099, 2077, 2100, 2102, 2078, 2103, 2079, 02536 02537 2105, 2108, 2109, 2110, 2111, 2112, 2080, 2114, 2115, 2081, 02538 2083, 2116, 2084, 2117, 2091, 2118, 2092, 2095, 2119, 2097, 02539 2124, 2099, 2125, 2100, 2102, 2142, 2103, 2143, 2105, 2108, 02540 2109, 2110, 2111, 2112, 2144, 2114, 2115, 2146, 2147, 2116, 02541 2148, 2117, 2149, 2118, 2150, 2151, 2119, 2152, 2124, 2153, 02542 2125, 2155, 2157, 2142, 2158, 2159, 2160, 2161, 2162, 2163, 02543 2164, 2166, 2167, 2168, 2169, 2170, 2147, 2171, 2148, 2172, 02544 2173, 2175, 2150, 2151, 2176, 2178, 2179, 2153, 2180, 2181, 02545 2182, 2183, 2184, 2159, 2160, 2185, 2162, 2163, 2186, 2188, 02546 2167, 2168, 2189, 2190, 2191, 2171, 2192, 2193, 2194, 2195, 02547 02548 2196, 2197, 2199, 2201, 2179, 2203, 2205, 2181, 2206, 2183, 02549 2184, 2208, 2209, 2185, 2210, 2212, 2186, 2213, 2214, 2215, 02550 2216, 2217, 2191, 2218, 2220, 2193, 2194, 2195, 2222, 2223, 02551 2225, 2227, 2228, 2229, 2230, 2231, 2206, 2232, 2233, 2235, 02552 2209, 2236, 2237, 2238, 2239, 2240, 2214, 2215, 2216, 2241, 02553 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 02554 2228, 2253, 2230, 2231, 2255, 2232, 2233, 2257, 2259, 2236, 02555 2261, 2238, 2262, 2240, 2264, 2265, 2267, 2241, 2268, 2269, 02556 2270, 2245, 2271, 2247, 2272, 2273, 2274, 2251, 2275, 2276, 02557 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 02558 02559 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2295, 2297, 2298, 02560 2299, 2301, 2272, 2302, 2274, 2303, 2275, 2304, 2305, 2278, 02561 2307, 2308, 2281, 2282, 2283, 2309, 2310, 2286, 2287, 2288, 02562 2289, 2311, 2312, 2292, 2293, 2313, 2314, 2298, 2316, 2318, 02563 2319, 2320, 2321, 2303, 2322, 2323, 2324, 2325, 2326, 2308, 02564 2327, 2328, 2329, 2309, 2330, 2331, 2333, 2334, 2336, 2311, 02565 2312, 2337, 2338, 2340, 2314, 2341, 2342, 2343, 2319, 2320, 02566 2345, 2346, 2322, 2323, 2347, 2349, 2326, 2350, 2352, 2353, 02567 2329, 2354, 2355, 2357, 2358, 2359, 2361, 2362, 2364, 2337, 02568 2365, 2366, 2367, 2368, 2369, 2371, 2372, 2373, 2374, 2375, 02569 02570 2376, 2377, 2379, 2381, 2382, 2350, 2384, 2385, 2386, 2354, 02571 2355, 2387, 2388, 2359, 2389, 2362, 2390, 2391, 2365, 2366, 02572 2393, 2368, 2369, 2394, 2372, 2373, 2395, 2396, 2397, 2398, 02573 2399, 2400, 2382, 2401, 2402, 2403, 2404, 2405, 2406, 2387, 02574 2388, 2407, 2389, 2409, 2410, 2412, 2413, 2415, 2416, 2417, 02575 2418, 2419, 2420, 2422, 2423, 2424, 2397, 2398, 2425, 2426, 02576 2428, 2430, 2402, 2431, 2432, 2405, 2406, 2433, 2434, 2407, 02577 2435, 2436, 2437, 2438, 2413, 2440, 2416, 2441, 2418, 2419, 02578 2420, 2443, 2423, 2444, 2446, 2447, 2448, 2450, 2451, 2452, 02579 2453, 2454, 2455, 2457, 2458, 2459, 2460, 2461, 2462, 2464, 02580 02581 2465, 2466, 2467, 2468, 2469, 2471, 2472, 2473, 2474, 2475, 02582 2477, 2478, 2480, 2481, 2482, 2483, 2451, 2452, 2485, 2486, 02583 2455, 2487, 2489, 2459, 2490, 2461, 2491, 2492, 2465, 2493, 02584 2494, 2468, 2495, 2497, 2472, 2473, 2474, 2498, 2499, 2478, 02585 2500, 2501, 2482, 2483, 2502, 2503, 2505, 2507, 2508, 2487, 02586 2509, 2511, 2490, 2513, 2491, 2492, 2515, 2517, 2494, 2519, 02587 2495, 2520, 2522, 2523, 2524, 2525, 2499, 2526, 2527, 2528, 02588 2529, 2531, 2532, 2533, 2534, 2535, 2508, 2537, 2539, 2540, 02589 2542, 2543, 2544, 2546, 2547, 2548, 2549, 2550, 2552, 2520, 02590 2553, 2523, 2524, 2555, 2556, 2526, 2527, 2557, 2558, 2560, 02591 02592 2562, 2533, 2534, 2563, 2564, 2566, 2568, 2569, 2570, 2543, 02593 2571, 2573, 2547, 2548, 2574, 2575, 2576, 2577, 2578, 2579, 02594 2580, 2582, 2583, 2584, 2586, 2587, 2558, 2589, 2590, 2592, 02595 2594, 2596, 2564, 2597, 2599, 2601, 2603, 2604, 2571, 2605, 02596 2606, 2608, 2574, 2575, 2610, 2577, 2611, 2579, 2613, 2614, 02597 2615, 2616, 2618, 2619, 2620, 2621, 2622, 2624, 2625, 2626, 02598 2627, 2629, 2630, 2632, 2633, 2634, 2635, 2605, 2606, 2636, 02599 2637, 2638, 2639, 2641, 2611, 2642, 2643, 2614, 2645, 2616, 02600 2646, 2619, 2648, 2650, 2651, 2653, 2625, 2626, 2654, 2656, 02601 2630, 2657, 2633, 2634, 2658, 2659, 2661, 2636, 2637, 2662, 02602 02603 2663, 2664, 2665, 2666, 2643, 2667, 2668, 2669, 2671, 2672, 02604 2674, 2675, 2676, 2677, 2679, 2681, 2654, 2683, 2684, 2657, 02605 2685, 2687, 2688, 2659, 2689, 2690, 2691, 2692, 2663, 2693, 02606 2695, 2696, 2697, 2667, 2698, 2699, 2701, 2672, 2703, 2675, 02607 2676, 2705, 2707, 2709, 2711, 2712, 2713, 2714, 2685, 2715, 02608 2688, 2717, 2718, 2719, 2721, 2692, 2723, 2693, 2724, 2696, 02609 2725, 2726, 2727, 2728, 2729, 2730, 2732, 2733, 2734, 2735, 02610 2736, 2737, 2738, 2712, 2713, 2714, 2739, 2741, 2742, 2743, 02611 2744, 2745, 2746, 2747, 2749, 2751, 2753, 2754, 2725, 2726, 02612 2755, 2728, 2757, 2730, 2758, 2759, 2734, 2760, 2762, 2764, 02613 02614 2738, 2765, 2766, 2768, 2770, 2771, 2742, 2743, 2772, 2745, 02615 2773, 2747, 2774, 2776, 2777, 2779, 2780, 2781, 2782, 2783, 02616 2784, 2785, 2758, 2759, 2787, 2788, 2789, 2791, 2792, 2765, 02617 2766, 2793, 2794, 2795, 2796, 2798, 2800, 2802, 2773, 2803, 02618 2805, 2806, 2807, 2809, 2810, 2781, 2782, 2812, 2813, 2814, 02619 2816, 2817, 2818, 2819, 2789, 2820, 2792, 2821, 2823, 2824, 02620 2794, 2825, 2796, 2826, 2828, 2829, 2830, 2831, 2833, 2806, 02621 2807, 2835, 2810, 2837, 2838, 2839, 2840, 2842, 2843, 2845, 02622 2818, 2846, 2847, 2848, 2849, 2850, 2851, 2853, 2854, 2855, 02623 2857, 2858, 2859, 2861, 2862, 2831, 2864, 2866, 2867, 2868, 02624 02625 2870, 2871, 2872, 2839, 2840, 2873, 2843, 2874, 2876, 2877, 02626 2878, 2879, 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2893, 02627 2894, 2895, 2896, 2898, 2900, 2902, 2904, 2906, 2908, 2910, 02628 2912, 2914, 2916, 2916, 2917, 2917, 2918, 2919, 2919, 2920, 02629 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 02630 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 02631 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 02632 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 02633 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 02634 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 02635 02636 2980, 2981, 2982, 2983, 2984, 2985, 2985, 2986, 2987, 2988, 02637 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 02638 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 02639 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 02640 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 02641 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 02642 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 02643 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 02644 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 02645 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 02646 02647 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 02648 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 02649 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 02650 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 02651 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 02652 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 02653 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 02654 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 02655 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 02656 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 02657 02658 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 02659 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 02660 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 02661 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 02662 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 02663 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 02664 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 02665 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 02666 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 02667 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 02668 02669 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 02670 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 02671 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 02672 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 02673 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 02674 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 02675 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 02676 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 02677 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 02678 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 02679 02680 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 02681 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 02682 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 02683 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 02684 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 02685 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 02686 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 02687 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 02688 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 02689 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 02690 02691 3479, 3480, 3481, 3482, 3483, 3484, 1924, 1920, 1916, 1914, 02692 1913, 1912, 1911, 1909, 1908, 1904, 1902, 1893, 1888, 1887, 02693 1879, 1874, 1871, 1870, 1869, 1868, 1866, 1839, 1837, 1835, 02694 1833, 1832, 1831, 1830, 1829, 1828, 1825, 1823, 1821, 1816, 02695 1813, 1810, 1809, 1806, 1804, 1802, 1796, 1795, 1794, 1793, 02696 1787, 1785, 1784, 1783, 1780, 1778, 1777, 1775, 1774, 1773, 02697 1770, 1765, 1764, 1759, 1758, 1756, 1755, 1754, 1752, 1748, 02698 1741, 1739, 1736, 1733, 1731, 1729, 1727, 1720, 1719, 1717, 02699 1711, 1710, 1702, 1697, 1696, 1695, 1694, 1690, 1688, 1684, 02700 1680, 1679, 1678, 1676, 1674, 1673, 1672, 1670, 1634, 1631, 02701 02702 1630, 1602, 1601, 1599, 1595, 1592, 1589, 1588, 1587, 1585, 02703 1583, 1581, 1578, 1574, 1572, 1570, 1566, 1565, 1563, 1560, 02704 1555, 1553, 1552, 1551, 1545, 1544, 1543, 1541, 1540, 1537, 02705 1535, 1533, 1529, 1525, 1524, 1520, 1517, 1516, 1510, 1505, 02706 1503, 1502, 1501, 1499, 1497, 1488, 1487, 1486, 1481, 1480, 02707 1477, 1442, 1441, 1439, 1438, 1435, 1434, 1432, 1430, 1427, 02708 1424, 1422, 1421, 1417, 1415, 1414, 1411, 1378, 1360, 1359, 02709 1355, 1353, 1350, 1348, 1346, 1344, 1342, 1340, 1338, 1337, 02710 1336, 1335, 1332, 1330, 1328, 1325, 1324, 1322, 1320, 1316, 02711 1311, 1303, 1302, 1300, 1298, 1296, 1291, 1290, 1288, 1287, 02712 02713 1286, 1283, 1279, 1275, 1271, 1269, 1267, 1266, 1265, 1259, 02714 1258, 1252, 1249, 1248, 1247, 1246, 1240, 1238, 1233, 1231, 02715 1198, 1197, 1194, 1193, 1189, 1187, 1186, 1185, 1183, 1181, 02716 1179, 1176, 1172, 1171, 1165, 1163, 1161, 1160, 1131, 1128, 02717 1127, 1125, 1122, 1121, 1120, 1119, 1117, 1116, 1115, 1113, 02718 1110, 1109, 1107, 1106, 1105, 1101, 1100, 1097, 1079, 1078, 02719 1075, 1073, 1069, 1068, 1067, 1065, 1063, 1060, 1056, 1052, 02720 1051, 1046, 1045, 1043, 1042, 1035, 1033, 1029, 1026, 1021, 02721 1020, 1019, 1015, 1013, 1012, 1010, 1009, 991, 990, 987, 02722 982, 980, 977, 976, 975, 973, 971, 970, 969, 968, 02723 02724 965, 963, 959, 958, 952, 949, 947, 945, 943, 936, 02725 930, 927, 924, 920, 919, 918, 917, 914, 907, 906, 02726 904, 898, 895, 893, 891, 877, 867, 862, 859, 857, 02727 846, 845, 843, 838, 837, 836, 830, 828, 825, 823, 02728 817, 815, 809, 802, 799, 797, 795, 793, 791, 789, 02729 787, 786, 785, 783, 780, 778, 777, 776, 774, 771, 02730 765, 760, 758, 755, 753, 752, 749, 744, 733, 727, 02731 723, 719, 713, 712, 707, 706, 703, 702, 689, 656, 02732 654, 650, 648, 646, 645, 643, 637, 615, 610, 609, 02733 608, 607, 606, 604, 603, 602, 600, 592, 586, 584, 02734 02735 579, 576, 574, 570, 561, 559, 557, 551, 546, 533, 02736 532, 529, 525, 524, 520, 519, 517, 516, 514, 482, 02737 476, 472, 469, 468, 462, 458, 450, 447, 432, 428, 02738 427, 426, 425, 422, 420, 419, 414, 411, 404, 400, 02739 397, 390, 388, 378, 374, 372, 371, 368, 365, 356, 02740 355, 344, 342, 338, 336, 316, 314, 308, 305, 302, 02741 301, 300, 296, 295, 293, 290, 283, 281, 275, 274, 02742 271, 263, 259, 257, 254, 252, 251, 247, 246, 243, 02743 233, 232, 231, 226, 222, 220, 211, 204, 181, 179, 02744 176, 168, 162, 154, 139, 130, 129, 127, 94, 82, 02745 02746 79, 47, 34, 8, 5, 2915, 2915, 2915, 2915, 2915, 02747 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02748 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02749 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02750 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02751 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 02752 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915 02753 } ; 02754 02755 static yy_state_type yy_last_accepting_state; 02756 static char *yy_last_accepting_cpos; 02757 02758 extern int yy_object_flex_debug; 02759 int yy_object_flex_debug = 0; 02760 02761 /* The intent behind this definition is that it'll catch 02762 * any uses of REJECT which flex missed. 02763 */ 02764 #define REJECT reject_used_but_not_detected 02765 #define yymore() yymore_used_but_not_detected 02766 #define YY_MORE_ADJ 0 02767 #define YY_RESTORE_YY_MORE_OFFSET 02768 char *yy_objecttext; 02769 #line 1 "src/loaders/object.l" 02770 #line 2 "src/loaders/object.l" 02771 02772 /************************************************************************ 02773 * Atrinik, a Multiplayer Online Role Playing Game * 02774 * * 02775 * Copyright (C) 2009-2011 Alex Tokar and Atrinik Development Team * 02776 * * 02777 * Fork from Daimonin (Massive Multiplayer Online Role Playing Game) * 02778 * and Crossfire (Multiplayer game for X-windows). * 02779 * * 02780 * This program is free software; you can redistribute it and/or modify * 02781 * it under the terms of the GNU General Public License as published by * 02782 * the Free Software Foundation; either version 2 of the License, or * 02783 * (at your option) any later version. * 02784 * * 02785 * This program is distributed in the hope that it will be useful, * 02786 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 02787 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 02788 * GNU General Public License for more details. * 02789 * * 02790 * You should have received a copy of the GNU General Public License * 02791 * along with this program; if not, write to the Free Software * 02792 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * 02793 * * 02794 * The author can be reached at admin@atrinik.org * 02795 ************************************************************************/ 02796 02802 #include <global.h> 02803 #include <loader.h> 02804 02805 #define YY_DECL int lex_load(int *depth, object **items, int maxdepth, int map_flags, int linemode) 02806 #define MAXDEPTH 10 02807 02808 static char *yval(); 02809 02810 /* that's needed to track the used buffers for recursive calling */ 02811 static void *cur_buffer; 02812 static int object_load_flag; 02813 static int lex_error; 02814 static char msgbuf[HUGE_BUF * 4]; 02815 static size_t msgbuf_len; 02816 static artifact *art_amask; 02817 02824 #define SET_OR_CLEAR_FLAG(op, flag, val) \ 02825 { \ 02826 if (val) \ 02827 { \ 02828 SET_FLAG(op, flag); \ 02829 } \ 02830 else \ 02831 { \ 02832 CLEAR_FLAG(op, flag); \ 02833 } \ 02834 } 02835 02836 #define SET_ATTACK(op, type, val) op->attack[type] = val; 02837 #define SET_PROTECTION(op, type, val) op->protection[type] = val; 02838 02840 #define IVAL atoi(yval()) 02841 02842 #define FVAL (float) atof(yval()) 02843 02844 #define YY_NO_INPUT 02845 02853 static void add_key_value(object *op) 02854 { 02855 char *key = NULL, *value = NULL, *cp, *end; 02856 02857 /* First, skip over leading whitespace. */ 02858 for (cp = yy_objecttext; isspace(*cp); cp++) 02859 { 02860 } 02861 02862 key = cp; 02863 02864 /* Now look for the end of the key/field name. */ 02865 for (; !isspace(*cp); cp++) 02866 { 02867 if (*cp == '\0') 02868 { 02869 /* Oops, ran out of string! Set the key with an empty value. */ 02870 object_set_value(op, key, NULL, 1); 02871 return; 02872 } 02873 } 02874 02875 if (*cp == '\0') 02876 { 02877 object_set_value(op, key, NULL, 1); 02878 return; 02879 } 02880 02881 /* Chop off the key, and start at the next character. */ 02882 *cp = '\0'; 02883 cp++; 02884 02885 if (*cp == '\0') 02886 { 02887 /* Was followed by one space? */ 02888 object_set_value(op, key, NULL, 1); 02889 return; 02890 } 02891 02892 /* Now looking for the value. Skip over whitespace. */ 02893 for (; isspace(*cp); cp++) 02894 { 02895 if (*cp == '\0') 02896 { 02897 /* Guess not. */ 02898 object_set_value(op, key, NULL, 1); 02899 return; 02900 } 02901 } 02902 02903 value = cp; 02904 02905 /* Got last character before NULL and strip 02906 * off tailing whitespace */ 02907 for (end = value + (strlen(cp) - 1); isspace(*end); end--) 02908 { 02909 if (end == value) 02910 { 02911 /* Still no value? */ 02912 object_set_value(op, key, NULL, 1); 02913 return; 02914 } 02915 02916 *end = '\0'; 02917 } 02918 02919 object_set_value(op, key, value, 1); 02920 } 02921 02922 static void set_random_protection(object *op, int val) 02923 { 02924 op->protection[RANDOM() % NROFATTACKS] = val; 02925 } 02926 02927 static void set_random_attack(object *op, int val) 02928 { 02929 op->attack[RANDOM() % NROFATTACKS] = val; 02930 } 02931 02932 /* Don't have to link with -lfl with this */ 02933 /* Disable unput */ 02934 /* Disable tt_top_state */ 02935 /* need yy_push_state, yy_pop_state */ 02936 #line 2937 "src/loaders/object.c" 02937 02938 #define INITIAL 0 02939 #define MESSAGE 1 02940 02941 #ifndef YY_NO_UNISTD_H 02942 /* Special case for "unistd.h", since it is non-ANSI. We include it way 02943 * down here because we want the user's section 1 to have been scanned first. 02944 * The user has a chance to override it with an option. 02945 */ 02946 #include <unistd.h> 02947 #endif 02948 02949 #ifndef YY_EXTRA_TYPE 02950 #define YY_EXTRA_TYPE void * 02951 #endif 02952 02953 static int yy_init_globals (void ); 02954 02955 /* Accessor methods to globals. 02956 These are made visible to non-reentrant scanners for convenience. */ 02957 02958 int yy_objectlex_destroy (void ); 02959 02960 int yy_objectget_debug (void ); 02961 02962 void yy_objectset_debug (int debug_flag ); 02963 02964 YY_EXTRA_TYPE yy_objectget_extra (void ); 02965 02966 void yy_objectset_extra (YY_EXTRA_TYPE user_defined ); 02967 02968 FILE *yy_objectget_in (void ); 02969 02970 void yy_objectset_in (FILE * in_str ); 02971 02972 FILE *yy_objectget_out (void ); 02973 02974 void yy_objectset_out (FILE * out_str ); 02975 02976 int yy_objectget_leng (void ); 02977 02978 char *yy_objectget_text (void ); 02979 02980 int yy_objectget_lineno (void ); 02981 02982 void yy_objectset_lineno (int line_number ); 02983 02984 /* Macros after this point can all be overridden by user definitions in 02985 * section 1. 02986 */ 02987 02988 #ifndef YY_SKIP_YYWRAP 02989 #ifdef __cplusplus 02990 extern "C" int yy_objectwrap (void ); 02991 #else 02992 extern int yy_objectwrap (void ); 02993 #endif 02994 #endif 02995 02996 #ifndef yytext_ptr 02997 static void yy_flex_strncpy (char *,yyconst char *,int ); 02998 #endif 02999 03000 #ifdef YY_NEED_STRLEN 03001 static int yy_flex_strlen (yyconst char * ); 03002 #endif 03003 03004 #ifndef YY_NO_INPUT 03005 03006 #ifdef __cplusplus 03007 static int yyinput (void ); 03008 #else 03009 static int input (void ); 03010 #endif 03011 03012 #endif 03013 03014 static int yy_start_stack_ptr = 0; 03015 static int yy_start_stack_depth = 0; 03016 static int *yy_start_stack = NULL; 03017 03018 static void yy_push_state (int new_state ); 03019 03020 static void yy_pop_state (void ); 03021 03022 /* Amount of stuff to slurp up with each read. */ 03023 #ifndef YY_READ_BUF_SIZE 03024 #ifdef __ia64__ 03025 /* On IA-64, the buffer size is 16k, not 8k */ 03026 #define YY_READ_BUF_SIZE 16384 03027 #else 03028 #define YY_READ_BUF_SIZE 8192 03029 #endif /* __ia64__ */ 03030 #endif 03031 03032 /* Copy whatever the last rule matched to the standard output. */ 03033 #ifndef ECHO 03034 /* This used to be an fputs(), but since the string might contain NUL's, 03035 * we now use fwrite(). 03036 */ 03037 #define ECHO do { if (fwrite( yy_objecttext, yy_objectleng, 1, yy_objectout )) {} } while (0) 03038 #endif 03039 03040 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 03041 * is returned in "result". 03042 */ 03043 #ifndef YY_INPUT 03044 #define YY_INPUT(buf,result,max_size) \ 03045 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 03046 { \ 03047 int c = '*'; \ 03048 size_t n; \ 03049 for ( n = 0; n < max_size && \ 03050 (c = getc( yy_objectin )) != EOF && c != '\n'; ++n ) \ 03051 buf[n] = (char) c; \ 03052 if ( c == '\n' ) \ 03053 buf[n++] = (char) c; \ 03054 if ( c == EOF && ferror( yy_objectin ) ) \ 03055 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 03056 result = n; \ 03057 } \ 03058 else \ 03059 { \ 03060 errno=0; \ 03061 while ( (result = fread(buf, 1, max_size, yy_objectin))==0 && ferror(yy_objectin)) \ 03062 { \ 03063 if( errno != EINTR) \ 03064 { \ 03065 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 03066 break; \ 03067 } \ 03068 errno=0; \ 03069 clearerr(yy_objectin); \ 03070 } \ 03071 }\ 03072 \ 03073 03074 #endif 03075 03076 /* No semi-colon after return; correct usage is to write "yyterminate();" - 03077 * we don't want an extra ';' after the "return" because that will cause 03078 * some compilers to complain about unreachable statements. 03079 */ 03080 #ifndef yyterminate 03081 #define yyterminate() return YY_NULL 03082 #endif 03083 03084 /* Number of entries by which start-condition stack grows. */ 03085 #ifndef YY_START_STACK_INCR 03086 #define YY_START_STACK_INCR 25 03087 #endif 03088 03089 /* Report a fatal error. */ 03090 #ifndef YY_FATAL_ERROR 03091 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 03092 #endif 03093 03094 /* end tables serialization structures and prototypes */ 03095 03096 /* Default declaration of generated scanner - a define so the user can 03097 * easily add parameters. 03098 */ 03099 #ifndef YY_DECL 03100 #define YY_DECL_IS_OURS 1 03101 03102 extern int yy_objectlex (void); 03103 03104 #define YY_DECL int yy_objectlex (void) 03105 #endif /* !YY_DECL */ 03106 03107 /* Code executed at the beginning of each rule, after yy_objecttext and yy_objectleng 03108 * have been set up. 03109 */ 03110 #ifndef YY_USER_ACTION 03111 #define YY_USER_ACTION 03112 #endif 03113 03114 /* Code executed at the end of each rule. */ 03115 #ifndef YY_BREAK 03116 #define YY_BREAK break; 03117 #endif 03118 03119 #define YY_RULE_SETUP \ 03120 if ( yy_objectleng > 0 ) \ 03121 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ 03122 (yy_objecttext[yy_objectleng - 1] == '\n'); \ 03123 YY_USER_ACTION 03124 03127 YY_DECL 03128 { 03129 register yy_state_type yy_current_state; 03130 register char *yy_cp, *yy_bp; 03131 register int yy_act; 03132 03133 #line 185 "src/loaders/object.l" 03134 03135 03136 03137 int ismore = 0; 03138 object *op = items[*depth]; 03139 lex_error = 0; 03140 03141 03142 #line 3143 "src/loaders/object.c" 03143 03144 if ( !(yy_init) ) 03145 { 03146 (yy_init) = 1; 03147 03148 #ifdef YY_USER_INIT 03149 YY_USER_INIT; 03150 #endif 03151 03152 if ( ! (yy_start) ) 03153 (yy_start) = 1; /* first start state */ 03154 03155 if ( ! yy_objectin ) 03156 yy_objectin = stdin; 03157 03158 if ( ! yy_objectout ) 03159 yy_objectout = stdout; 03160 03161 if ( ! YY_CURRENT_BUFFER ) { 03162 yy_objectensure_buffer_stack (); 03163 YY_CURRENT_BUFFER_LVALUE = 03164 yy_object_create_buffer(yy_objectin,YY_BUF_SIZE ); 03165 } 03166 03167 yy_object_load_buffer_state( ); 03168 } 03169 03170 while ( 1 ) /* loops until end-of-file is reached */ 03171 { 03172 yy_cp = (yy_c_buf_p); 03173 03174 /* Support of yy_objecttext. */ 03175 *yy_cp = (yy_hold_char); 03176 03177 /* yy_bp points to the position in yy_ch_buf of the start of 03178 * the current run. 03179 */ 03180 yy_bp = yy_cp; 03181 03182 yy_current_state = (yy_start); 03183 yy_current_state += YY_AT_BOL(); 03184 yy_match: 03185 do 03186 { 03187 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 03188 if ( yy_accept[yy_current_state] ) 03189 { 03190 (yy_last_accepting_state) = yy_current_state; 03191 (yy_last_accepting_cpos) = yy_cp; 03192 } 03193 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 03194 { 03195 yy_current_state = (int) yy_def[yy_current_state]; 03196 if ( yy_current_state >= 2916 ) 03197 yy_c = yy_meta[(unsigned int) yy_c]; 03198 } 03199 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 03200 ++yy_cp; 03201 } 03202 while ( yy_base[yy_current_state] != 5406 ); 03203 03204 yy_find_action: 03205 yy_act = yy_accept[yy_current_state]; 03206 if ( yy_act == 0 ) 03207 { /* have to back up */ 03208 yy_cp = (yy_last_accepting_cpos); 03209 yy_current_state = (yy_last_accepting_state); 03210 yy_act = yy_accept[yy_current_state]; 03211 } 03212 03213 YY_DO_BEFORE_ACTION; 03214 03215 do_action: /* This label is used only to access EOF actions. */ 03216 03217 switch ( yy_act ) 03218 { /* beginning of action switch */ 03219 case 0: /* must back up */ 03220 /* undo the effects of YY_DO_BEFORE_ACTION */ 03221 *yy_cp = (yy_hold_char); 03222 yy_cp = (yy_last_accepting_cpos); 03223 yy_current_state = (yy_last_accepting_state); 03224 goto yy_find_action; 03225 03226 case 1: 03227 YY_RULE_SETUP 03228 #line 193 "src/loaders/object.l" 03229 { 03230 /* If op->arch has been set, then this new object 03231 * must be part of the inventory. So process 03232 * appropriately. */ 03233 if (op->arch) 03234 { 03235 object *tmp; 03236 artifact *art_amask_tmp; 03237 03238 tmp = get_object(); 03239 tmp->arch = find_archetype(yval()); 03240 03241 if (tmp->arch != NULL) 03242 { 03243 copy_object(&tmp->arch->clone, tmp, 1); 03244 } 03245 03246 (*depth)++; 03247 items[*depth] = tmp; 03248 03249 art_amask_tmp = art_amask; 03250 art_amask = NULL; 03251 03252 if (linemode == 0) 03253 { 03254 lex_load(depth, items, maxdepth, map_flags, linemode); 03255 (*depth)--; 03256 03257 if (tmp->arch) 03258 { 03259 /* We set here AND in load_object the material real values. 03260 * We do: if item_quality == 0 AND material defines a base 03261 * material, then use material_real to set quality and condition. 03262 * So, we don't set it for floors or or some other objects which 03263 * don't need it. */ 03264 if (tmp->material && !tmp->item_quality) 03265 { 03266 tmp->item_quality = material_real[tmp->material_real].quality; 03267 tmp->item_condition = tmp->item_quality; 03268 } 03269 03270 insert_ob_in_ob(tmp, op); 03271 } 03272 else if (!arch_init) 03273 { 03274 LOG(llevDebug, "Discarding object without arch: %s\n", STRING_SAFE(tmp->name)); 03275 } 03276 } 03277 03278 if (art_amask) 03279 { 03280 give_artifact_abilities(tmp, art_amask); 03281 } 03282 03283 art_amask = art_amask_tmp; 03284 03285 if (!(map_flags & MAP_STYLE)) 03286 { 03287 float old_sleft; 03288 03289 old_sleft = tmp->speed_left; 03290 03291 /* First adjust speed. 03292 * Only change something if we: 03293 * 1. Don't have speed_left set in the loading, or 03294 * 2. We have negative speed. */ 03295 if (old_sleft == tmp->speed_left && tmp->speed < 0.0f) 03296 { 03297 /* If we have now a negative speed - use default arch 03298 * speed left for new random set */ 03299 if (tmp->speed < 0.0f) 03300 tmp->speed_left = tmp->arch->clone.speed_left + (float) (RANDOM() % 90) / 100.0f; 03301 } 03302 03303 if (tmp->speed) 03304 { 03305 /* Put it on the active list. */ 03306 update_ob_speed(tmp); 03307 } 03308 03309 /* We must do this after the insert_ob_in_ob(). 03310 * We look if we have a treasure or something else. 03311 * If so, we transform it now to real items. 03312 * This here only handles inventory items, the "base" 03313 * items are handled in load_objects(). */ 03314 if (QUERY_FLAG(tmp, FLAG_AUTO_APPLY)) 03315 { 03316 /* auto_apply() will clear FLAG_AUTO_APPLY */ 03317 auto_apply(tmp); 03318 } 03319 /* Here we can have an interesting problem when we have kind of 03320 * creators (like spawn points) which use the inv object as a clone 03321 * kind object. Then we don't want substitute the treasure here or the 03322 * generator will clone objects with same treasures over and over. */ 03323 else if (tmp->randomitems && (map_flags & MAP_ORIGINAL) && (op->type != SPAWN_POINT)) 03324 { 03325 create_treasure(tmp->randomitems, tmp, 0, get_environment_level(tmp), T_STYLE_UNSET, ART_CHANCE_UNSET, 0, NULL); 03326 } 03327 03328 if (object_initializers[tmp->type]) 03329 { 03330 object_initializers[tmp->type](tmp); 03331 } 03332 } 03333 } 03334 /* This is the actual archetype definition */ 03335 else 03336 { 03337 op->arch = find_archetype(yval()); 03338 03339 if (op->arch != NULL) 03340 { 03341 /* Speed will handled in load_object() for this. */ 03342 copy_object(&op->arch->clone, op, 1); 03343 } 03344 } 03345 } 03346 YY_BREAK 03347 case 2: 03348 YY_RULE_SETUP 03349 #line 311 "src/loaders/object.l" 03350 { 03351 char *yv = yval(); 03352 03353 if (*yv == '\0') 03354 { 03355 LOG(llevError, "Object lacks name.\n"); 03356 return LL_IGNORED; 03357 } 03358 03359 if (op->arch != NULL) 03360 { 03361 FREE_AND_COPY_HASH(op->arch->name, yv); 03362 } 03363 03364 FREE_AND_COPY_HASH(op->name, yv); 03365 /* Ok - now we know the pre speed values are valid. */ 03366 object_load_flag = 1; 03367 } 03368 YY_BREAK 03369 case 3: 03370 /* rule 3 can match eol */ 03371 YY_RULE_SETUP 03372 #line 330 "src/loaders/object.l" 03373 { 03374 BEGIN(MESSAGE); 03375 msgbuf[0] = '\0'; 03376 msgbuf_len = 0; 03377 } 03378 YY_BREAK 03379 case 4: 03380 /* rule 4 can match eol */ 03381 YY_RULE_SETUP 03382 #line 335 "src/loaders/object.l" 03383 { 03384 BEGIN(INITIAL); 03385 03386 /* Remove last newline. */ 03387 msgbuf[msgbuf_len - 1] = '\0'; 03388 FREE_AND_COPY_HASH(op->msg, msgbuf); 03389 } 03390 YY_BREAK 03391 case 5: 03392 /* rule 5 can match eol */ 03393 YY_RULE_SETUP 03394 #line 342 "src/loaders/object.l" 03395 { 03396 strncat(msgbuf, yy_objecttext, sizeof(msgbuf) - msgbuf_len - 1); 03397 msgbuf_len += yy_objectleng; 03398 } 03399 YY_BREAK 03400 case 6: 03401 YY_RULE_SETUP 03402 #line 346 "src/loaders/object.l" 03403 { 03404 char *yv = yval(); 03405 03406 if (*yv == '\0') 03407 { 03408 LOG(llevError, "Name without val\n"); 03409 } 03410 else 03411 { 03412 FREE_AND_COPY_HASH(op->name, yv); 03413 } 03414 } 03415 YY_BREAK 03416 case 7: 03417 YY_RULE_SETUP 03418 #line 358 "src/loaders/object.l" 03419 { 03420 char *yv = yval(); 03421 03422 if (*yv == '\0') 03423 { 03424 LOG(llevBug, "Custom name without val.\n"); 03425 } 03426 else 03427 { 03428 FREE_AND_COPY_HASH(op->custom_name, yv); 03429 03430 if (op->custom_name == shstr_cons.NONE) 03431 { 03432 FREE_AND_CLEAR_HASH(op->custom_name); 03433 } 03434 } 03435 } 03436 YY_BREAK 03437 case 8: 03438 YY_RULE_SETUP 03439 #line 375 "src/loaders/object.l" 03440 FREE_AND_COPY_HASH(op->race, yval()); 03441 YY_BREAK 03442 case 9: 03443 YY_RULE_SETUP 03444 #line 376 "src/loaders/object.l" 03445 { 03446 FREE_AND_COPY_HASH(op->slaying, yval()); 03447 03448 if (op->slaying == shstr_cons.NONE) 03449 { 03450 FREE_AND_CLEAR_HASH(op->slaying); 03451 } 03452 } 03453 YY_BREAK 03454 case 10: 03455 YY_RULE_SETUP 03456 #line 384 "src/loaders/object.l" 03457 FREE_AND_COPY_HASH(op->artifact, yval()); 03458 YY_BREAK 03459 case 11: 03460 YY_RULE_SETUP 03461 #line 385 "src/loaders/object.l" 03462 { 03463 art_amask = find_artifact_type(yval(), op->arch->clone.type); 03464 03465 if (!art_amask) 03466 { 03467 LOG(llevBug, "Invalid amask '%s'.\n", yval()); 03468 } 03469 } 03470 YY_BREAK 03471 case 12: 03472 YY_RULE_SETUP 03473 #line 393 "src/loaders/object.l" 03474 op->quickslot = IVAL; 03475 YY_BREAK 03476 case 13: 03477 YY_RULE_SETUP 03478 #line 395 "src/loaders/object.l" 03479 op->other_arch = find_archetype(yval()); 03480 YY_BREAK 03481 case 14: 03482 YY_RULE_SETUP 03483 #line 396 "src/loaders/object.l" 03484 { 03485 if (strcmp(yval(), "NONE") == 0) 03486 { 03487 op->animation_id = 0; 03488 } 03489 else 03490 { 03491 op->animation_id = find_animation(yval()); 03492 } 03493 } 03494 YY_BREAK 03495 case 15: 03496 YY_RULE_SETUP 03497 #line 406 "src/loaders/object.l" 03498 { 03499 if (strcmp(yval(), "NONE") == 0) 03500 { 03501 op->inv_animation_id = 0; 03502 } 03503 else 03504 { 03505 op->inv_animation_id = find_animation(yval()); 03506 } 03507 } 03508 YY_BREAK 03509 case 16: 03510 /* rule 16 can match eol */ 03511 YY_RULE_SETUP 03512 #line 417 "src/loaders/object.l" 03513 { 03514 /* We need to record that this is a multipart object, 03515 * so the calling function can glue things back together. */ 03516 ismore = 1; 03517 } 03518 YY_BREAK 03519 case 17: 03520 /* rule 17 can match eol */ 03521 YY_RULE_SETUP 03522 #line 423 "src/loaders/object.l" 03523 { 03524 if (linemode) 03525 { 03526 /* Linemode is only set for artifact loading. */ 03527 if ((*depth) > 0) 03528 { 03529 insert_ob_in_ob(items[*depth], items[(*depth) - 1]); 03530 } 03531 03532 return LL_NORMAL; 03533 } 03534 03535 if (ismore) 03536 { 03537 return LL_MORE; 03538 } 03539 else 03540 { 03541 return LL_NORMAL; 03542 } 03543 } 03544 YY_BREAK 03545 case 18: 03546 YY_RULE_SETUP 03547 #line 444 "src/loaders/object.l" 03548 op->enemy_count = IVAL; 03549 YY_BREAK 03550 case 19: 03551 YY_RULE_SETUP 03552 #line 445 "src/loaders/object.l" 03553 op->attacked_by_count = IVAL; 03554 YY_BREAK 03555 case 20: 03556 YY_RULE_SETUP 03557 #line 446 "src/loaders/object.l" 03558 op->ownercount = IVAL; 03559 YY_BREAK 03560 case 21: 03561 YY_RULE_SETUP 03562 #line 447 "src/loaders/object.l" 03563 op->last_heal = IVAL; 03564 YY_BREAK 03565 case 22: 03566 YY_RULE_SETUP 03567 #line 448 "src/loaders/object.l" 03568 op->last_sp = IVAL; 03569 YY_BREAK 03570 case 23: 03571 YY_RULE_SETUP 03572 #line 449 "src/loaders/object.l" 03573 op->last_grace = IVAL; 03574 YY_BREAK 03575 case 24: 03576 YY_RULE_SETUP 03577 #line 450 "src/loaders/object.l" 03578 op->last_grace += IVAL; 03579 YY_BREAK 03580 case 25: 03581 YY_RULE_SETUP 03582 #line 451 "src/loaders/object.l" 03583 op->last_eat = IVAL; 03584 YY_BREAK 03585 case 26: 03586 YY_RULE_SETUP 03587 #line 452 "src/loaders/object.l" 03588 op->speed = FVAL; 03589 YY_BREAK 03590 case 27: 03591 YY_RULE_SETUP 03592 #line 454 "src/loaders/object.l" 03593 op->speed_left = FVAL; 03594 YY_BREAK 03595 case 28: 03596 YY_RULE_SETUP 03597 #line 455 "src/loaders/object.l" 03598 SET_OR_CLEAR_FLAG(op, FLAG_SLOW_MOVE, IVAL); 03599 YY_BREAK 03600 case 29: 03601 YY_RULE_SETUP 03602 #line 456 "src/loaders/object.l" 03603 { 03604 int _face_ = find_face(yval(), 0); 03605 op->face = &new_faces[_face_ ]; 03606 03607 if (!_face_) 03608 { 03609 LOG(llevBug, "Object %s - can't find face %s.\n", op->arch ? (op->arch->name ? op->arch->name : "<no arch name>") : "<no ->arch>", yval()); 03610 } 03611 } 03612 YY_BREAK 03613 case 30: 03614 YY_RULE_SETUP 03615 #line 465 "src/loaders/object.l" 03616 { 03617 int _face_ = find_face(yval(), 0); 03618 op->inv_face = &new_faces[_face_ ]; 03619 03620 if (!_face_) 03621 { 03622 LOG(llevBug, "Object %s - can't find inv_face %s.\n", op->arch ? (op->arch->name ? op->arch->name : "<no arch name>") : "<no ->arch>", yval()); 03623 } 03624 } 03625 YY_BREAK 03626 case 31: 03627 YY_RULE_SETUP 03628 #line 475 "src/loaders/object.l" 03629 op->stats.Str = IVAL; 03630 YY_BREAK 03631 case 32: 03632 YY_RULE_SETUP 03633 #line 476 "src/loaders/object.l" 03634 op->stats.Dex = IVAL; 03635 YY_BREAK 03636 case 33: 03637 YY_RULE_SETUP 03638 #line 477 "src/loaders/object.l" 03639 op->stats.Con = IVAL; 03640 YY_BREAK 03641 case 34: 03642 YY_RULE_SETUP 03643 #line 478 "src/loaders/object.l" 03644 op->stats.Wis = IVAL; 03645 YY_BREAK 03646 case 35: 03647 YY_RULE_SETUP 03648 #line 479 "src/loaders/object.l" 03649 op->stats.Cha = IVAL; 03650 YY_BREAK 03651 case 36: 03652 YY_RULE_SETUP 03653 #line 480 "src/loaders/object.l" 03654 op->stats.Int = IVAL; 03655 YY_BREAK 03656 case 37: 03657 YY_RULE_SETUP 03658 #line 481 "src/loaders/object.l" 03659 op->stats.Pow = IVAL; 03660 YY_BREAK 03661 case 38: 03662 YY_RULE_SETUP 03663 #line 482 "src/loaders/object.l" 03664 op->stats.hp = IVAL; 03665 YY_BREAK 03666 case 39: 03667 YY_RULE_SETUP 03668 #line 483 "src/loaders/object.l" 03669 op->stats.maxhp = IVAL; 03670 YY_BREAK 03671 case 40: 03672 YY_RULE_SETUP 03673 #line 484 "src/loaders/object.l" 03674 op->stats.sp = IVAL; 03675 YY_BREAK 03676 case 41: 03677 YY_RULE_SETUP 03678 #line 485 "src/loaders/object.l" 03679 op->stats.maxsp = IVAL; 03680 YY_BREAK 03681 case 42: 03682 YY_RULE_SETUP 03683 #line 486 "src/loaders/object.l" 03684 op->stats.grace = IVAL; 03685 YY_BREAK 03686 case 43: 03687 YY_RULE_SETUP 03688 #line 487 "src/loaders/object.l" 03689 op->stats.maxgrace = IVAL; 03690 YY_BREAK 03691 case 44: 03692 YY_RULE_SETUP 03693 #line 488 "src/loaders/object.l" 03694 op->stats.exp = atoll(yval()); 03695 YY_BREAK 03696 case 45: 03697 YY_RULE_SETUP 03698 #line 489 "src/loaders/object.l" 03699 op->stats.food = IVAL; 03700 YY_BREAK 03701 case 46: 03702 YY_RULE_SETUP 03703 #line 490 "src/loaders/object.l" 03704 op->stats.dam = IVAL; 03705 YY_BREAK 03706 case 47: 03707 YY_RULE_SETUP 03708 #line 491 "src/loaders/object.l" 03709 op->stats.dam += IVAL; 03710 YY_BREAK 03711 case 48: 03712 YY_RULE_SETUP 03713 #line 492 "src/loaders/object.l" 03714 op->stats.wc = IVAL; 03715 YY_BREAK 03716 case 49: 03717 YY_RULE_SETUP 03718 #line 493 "src/loaders/object.l" 03719 op->stats.wc += IVAL; 03720 YY_BREAK 03721 case 50: 03722 YY_RULE_SETUP 03723 #line 494 "src/loaders/object.l" 03724 op->stats.wc_range = IVAL; 03725 YY_BREAK 03726 case 51: 03727 YY_RULE_SETUP 03728 #line 495 "src/loaders/object.l" 03729 op->stats.wc_range += IVAL; 03730 YY_BREAK 03731 case 52: 03732 YY_RULE_SETUP 03733 #line 496 "src/loaders/object.l" 03734 op->stats.ac = IVAL; 03735 YY_BREAK 03736 case 53: 03737 YY_RULE_SETUP 03738 #line 497 "src/loaders/object.l" 03739 op->stats.ac += IVAL; 03740 YY_BREAK 03741 case 54: 03742 YY_RULE_SETUP 03743 #line 498 "src/loaders/object.l" 03744 { 03745 op->x = IVAL; 03746 #ifdef POSITION_DEBUG 03747 op->ox = op->x; 03748 #endif 03749 } 03750 YY_BREAK 03751 case 55: 03752 YY_RULE_SETUP 03753 #line 504 "src/loaders/object.l" 03754 { 03755 op->y = IVAL; 03756 #ifdef POSITION_DEBUG 03757 op->oy = op->y; 03758 #endif 03759 } 03760 YY_BREAK 03761 case 56: 03762 YY_RULE_SETUP 03763 #line 510 "src/loaders/object.l" 03764 op->z = IVAL; 03765 YY_BREAK 03766 case 57: 03767 YY_RULE_SETUP 03768 #line 511 "src/loaders/object.l" 03769 op->zoom = IVAL; 03770 YY_BREAK 03771 case 58: 03772 YY_RULE_SETUP 03773 #line 512 "src/loaders/object.l" 03774 op->align = IVAL; 03775 YY_BREAK 03776 case 59: 03777 YY_RULE_SETUP 03778 #line 513 "src/loaders/object.l" 03779 op->alpha = IVAL; 03780 YY_BREAK 03781 case 60: 03782 YY_RULE_SETUP 03783 #line 514 "src/loaders/object.l" 03784 op->rotate = IVAL; 03785 YY_BREAK 03786 case 61: 03787 YY_RULE_SETUP 03788 #line 515 "src/loaders/object.l" 03789 op->nrof = atol(yval()); 03790 YY_BREAK 03791 case 62: 03792 YY_RULE_SETUP 03793 #line 516 "src/loaders/object.l" 03794 op->level = IVAL; 03795 YY_BREAK 03796 case 63: 03797 YY_RULE_SETUP 03798 #line 517 "src/loaders/object.l" 03799 op->facing = op->anim_last_facing = op->direction = (IVAL % 9); 03800 YY_BREAK 03801 case 64: 03802 YY_RULE_SETUP 03803 #line 518 "src/loaders/object.l" 03804 op->type = IVAL; 03805 YY_BREAK 03806 case 65: 03807 YY_RULE_SETUP 03808 #line 519 "src/loaders/object.l" 03809 op->material = IVAL; 03810 YY_BREAK 03811 case 66: 03812 YY_RULE_SETUP 03813 #line 520 "src/loaders/object.l" 03814 op->value = atoll(yval()); 03815 YY_BREAK 03816 case 67: 03817 YY_RULE_SETUP 03818 #line 521 "src/loaders/object.l" 03819 op->weight = atol(yval()); 03820 YY_BREAK 03821 case 68: 03822 YY_RULE_SETUP 03823 #line 522 "src/loaders/object.l" 03824 op->carrying = atol(yval()); 03825 YY_BREAK 03826 case 69: 03827 YY_RULE_SETUP 03828 #line 523 "src/loaders/object.l" 03829 op->path_attuned = IVAL; 03830 YY_BREAK 03831 case 70: 03832 YY_RULE_SETUP 03833 #line 524 "src/loaders/object.l" 03834 op->path_repelled = IVAL; 03835 YY_BREAK 03836 case 71: 03837 YY_RULE_SETUP 03838 #line 525 "src/loaders/object.l" 03839 op->path_denied = IVAL; 03840 YY_BREAK 03841 case 72: 03842 YY_RULE_SETUP 03843 #line 526 "src/loaders/object.l" 03844 op->magic = IVAL; 03845 YY_BREAK 03846 case 73: 03847 YY_RULE_SETUP 03848 #line 527 "src/loaders/object.l" 03849 op->state = IVAL; 03850 YY_BREAK 03851 case 74: 03852 YY_RULE_SETUP 03853 #line 528 "src/loaders/object.l" 03854 op->layer = IVAL; 03855 YY_BREAK 03856 case 75: 03857 YY_RULE_SETUP 03858 #line 529 "src/loaders/object.l" 03859 SET_OR_CLEAR_FLAG(op, FLAG_DOOR_CLOSED, IVAL); 03860 YY_BREAK 03861 case 76: 03862 YY_RULE_SETUP 03863 #line 530 "src/loaders/object.l" 03864 SET_OR_CLEAR_FLAG(op, FLAG_PERM_CURSED, IVAL); 03865 YY_BREAK 03866 case 77: 03867 YY_RULE_SETUP 03868 #line 531 "src/loaders/object.l" 03869 SET_OR_CLEAR_FLAG(op, FLAG_PERM_DAMNED, IVAL); 03870 YY_BREAK 03871 case 78: 03872 YY_RULE_SETUP 03873 #line 532 "src/loaders/object.l" 03874 SET_OR_CLEAR_FLAG(op, FLAG_ONE_DROP, IVAL); 03875 YY_BREAK 03876 case 79: 03877 YY_RULE_SETUP 03878 #line 533 "src/loaders/object.l" 03879 SET_OR_CLEAR_FLAG(op, FLAG_IS_TRAPPED, IVAL); 03880 YY_BREAK 03881 case 80: 03882 YY_RULE_SETUP 03883 #line 534 "src/loaders/object.l" 03884 SET_OR_CLEAR_FLAG(op, FLAG_QUEST_ITEM, IVAL); 03885 YY_BREAK 03886 case 81: 03887 YY_RULE_SETUP 03888 #line 535 "src/loaders/object.l" 03889 SET_OR_CLEAR_FLAG(op, FLAG_PLAYER_ONLY, IVAL); 03890 YY_BREAK 03891 case 82: 03892 YY_RULE_SETUP 03893 #line 536 "src/loaders/object.l" 03894 SET_OR_CLEAR_FLAG(op, FLAG_IS_NAMED, IVAL); 03895 YY_BREAK 03896 case 83: 03897 YY_RULE_SETUP 03898 #line 537 "src/loaders/object.l" 03899 SET_OR_CLEAR_FLAG(op, FLAG_IS_PLAYER, IVAL); 03900 YY_BREAK 03901 case 84: 03902 YY_RULE_SETUP 03903 #line 538 "src/loaders/object.l" 03904 SET_OR_CLEAR_FLAG(op, FLAG_SYS_OBJECT, IVAL); 03905 YY_BREAK 03906 case 85: 03907 YY_RULE_SETUP 03908 #line 539 "src/loaders/object.l" 03909 {} 03910 YY_BREAK 03911 case 86: 03912 YY_RULE_SETUP 03913 #line 540 "src/loaders/object.l" 03914 SET_OR_CLEAR_FLAG(op, FLAG_CAN_STACK, IVAL); 03915 YY_BREAK 03916 case 87: 03917 YY_RULE_SETUP 03918 #line 541 "src/loaders/object.l" 03919 SET_OR_CLEAR_FLAG(op, FLAG_IS_THROWN, IVAL); 03920 YY_BREAK 03921 case 88: 03922 YY_RULE_SETUP 03923 #line 542 "src/loaders/object.l" 03924 SET_OR_CLEAR_FLAG(op, FLAG_AUTO_APPLY, IVAL); 03925 YY_BREAK 03926 case 89: 03927 YY_RULE_SETUP 03928 #line 543 "src/loaders/object.l" 03929 SET_OR_CLEAR_FLAG(op, FLAG_IS_READY, IVAL); 03930 YY_BREAK 03931 case 90: 03932 YY_RULE_SETUP 03933 #line 544 "src/loaders/object.l" 03934 {} 03935 YY_BREAK 03936 case 91: 03937 YY_RULE_SETUP 03938 #line 545 "src/loaders/object.l" 03939 SET_OR_CLEAR_FLAG(op, FLAG_IS_ASSASSINATION, IVAL); 03940 YY_BREAK 03941 case 92: 03942 YY_RULE_SETUP 03943 #line 546 "src/loaders/object.l" 03944 SET_OR_CLEAR_FLAG(op, FLAG_IS_MISSILE, IVAL); 03945 YY_BREAK 03946 case 93: 03947 YY_RULE_SETUP 03948 #line 547 "src/loaders/object.l" 03949 SET_OR_CLEAR_FLAG(op, FLAG_DRAW_DIRECTION, IVAL); 03950 YY_BREAK 03951 case 94: 03952 YY_RULE_SETUP 03953 #line 548 "src/loaders/object.l" 03954 SET_OR_CLEAR_FLAG(op, FLAG_DRAW_DOUBLE, IVAL); 03955 YY_BREAK 03956 case 95: 03957 YY_RULE_SETUP 03958 #line 549 "src/loaders/object.l" 03959 SET_OR_CLEAR_FLAG(op, FLAG_DRAW_DOUBLE_ALWAYS, IVAL); 03960 YY_BREAK 03961 case 96: 03962 YY_RULE_SETUP 03963 #line 550 "src/loaders/object.l" 03964 SET_OR_CLEAR_FLAG(op, FLAG_SEE_INVISIBLE, IVAL); 03965 YY_BREAK 03966 case 97: 03967 YY_RULE_SETUP 03968 #line 551 "src/loaders/object.l" 03969 SET_OR_CLEAR_FLAG(op, FLAG_MAKE_INVISIBLE, IVAL); 03970 YY_BREAK 03971 case 98: 03972 YY_RULE_SETUP 03973 #line 552 "src/loaders/object.l" 03974 SET_OR_CLEAR_FLAG(op, FLAG_MAKE_ETHEREAL, IVAL); 03975 YY_BREAK 03976 case 99: 03977 YY_RULE_SETUP 03978 #line 553 "src/loaders/object.l" 03979 SET_OR_CLEAR_FLAG(op, FLAG_CAN_ROLL, IVAL); 03980 YY_BREAK 03981 case 100: 03982 YY_RULE_SETUP 03983 #line 554 "src/loaders/object.l" 03984 SET_OR_CLEAR_FLAG(op, FLAG_CONNECT_RESET, IVAL); 03985 YY_BREAK 03986 case 101: 03987 YY_RULE_SETUP 03988 #line 555 "src/loaders/object.l" 03989 SET_OR_CLEAR_FLAG(op, FLAG_IS_TURNABLE, IVAL); 03990 YY_BREAK 03991 case 102: 03992 YY_RULE_SETUP 03993 #line 556 "src/loaders/object.l" 03994 SET_OR_CLEAR_FLAG(op, FLAG_IS_USED_UP, IVAL); 03995 YY_BREAK 03996 case 103: 03997 YY_RULE_SETUP 03998 #line 557 "src/loaders/object.l" 03999 SET_OR_CLEAR_FLAG(op, FLAG_IS_INVISIBLE, IVAL); 04000 YY_BREAK 04001 case 104: 04002 YY_RULE_SETUP 04003 #line 558 "src/loaders/object.l" 04004 SET_OR_CLEAR_FLAG(op, FLAG_ALIVE, IVAL); 04005 YY_BREAK 04006 case 105: 04007 YY_RULE_SETUP 04008 #line 559 "src/loaders/object.l" 04009 SET_OR_CLEAR_FLAG(op, FLAG_APPLIED, IVAL); 04010 YY_BREAK 04011 case 106: 04012 YY_RULE_SETUP 04013 #line 560 "src/loaders/object.l" 04014 SET_OR_CLEAR_FLAG(op, FLAG_UNPAID, IVAL); 04015 YY_BREAK 04016 case 107: 04017 YY_RULE_SETUP 04018 #line 561 "src/loaders/object.l" 04019 SET_OR_CLEAR_FLAG(op, FLAG_HIDDEN, IVAL); 04020 YY_BREAK 04021 case 108: 04022 YY_RULE_SETUP 04023 #line 562 "src/loaders/object.l" 04024 SET_OR_CLEAR_FLAG(op, FLAG_NO_PICK, IVAL); 04025 YY_BREAK 04026 case 109: 04027 YY_RULE_SETUP 04028 #line 563 "src/loaders/object.l" 04029 SET_OR_CLEAR_FLAG(op, FLAG_NO_PASS, IVAL); 04030 YY_BREAK 04031 case 110: 04032 YY_RULE_SETUP 04033 #line 564 "src/loaders/object.l" 04034 SET_OR_CLEAR_FLAG(op, FLAG_NO_TELEPORT, IVAL); 04035 YY_BREAK 04036 case 111: 04037 YY_RULE_SETUP 04038 #line 565 "src/loaders/object.l" 04039 SET_OR_CLEAR_FLAG(op, FLAG_CORPSE, IVAL); 04040 YY_BREAK 04041 case 112: 04042 YY_RULE_SETUP 04043 #line 566 "src/loaders/object.l" 04044 SET_OR_CLEAR_FLAG(op, FLAG_CORPSE_FORCED, IVAL); 04045 YY_BREAK 04046 case 113: 04047 YY_RULE_SETUP 04048 #line 568 "src/loaders/object.l" 04049 SET_OR_CLEAR_FLAG(op, FLAG_WALK_ON, IVAL); 04050 YY_BREAK 04051 case 114: 04052 YY_RULE_SETUP 04053 #line 569 "src/loaders/object.l" 04054 SET_OR_CLEAR_FLAG(op, FLAG_WALK_OFF, IVAL); 04055 YY_BREAK 04056 case 115: 04057 YY_RULE_SETUP 04058 #line 570 "src/loaders/object.l" 04059 SET_OR_CLEAR_FLAG(op, FLAG_FLY_ON, IVAL); 04060 YY_BREAK 04061 case 116: 04062 YY_RULE_SETUP 04063 #line 571 "src/loaders/object.l" 04064 SET_OR_CLEAR_FLAG(op, FLAG_FLY_OFF, IVAL); 04065 YY_BREAK 04066 case 117: 04067 YY_RULE_SETUP 04068 #line 572 "src/loaders/object.l" 04069 SET_OR_CLEAR_FLAG(op, FLAG_ANIMATE, IVAL); 04070 YY_BREAK 04071 case 118: 04072 YY_RULE_SETUP 04073 #line 573 "src/loaders/object.l" 04074 SET_OR_CLEAR_FLAG(op, FLAG_FLYING, IVAL); 04075 YY_BREAK 04076 case 119: 04077 YY_RULE_SETUP 04078 #line 574 "src/loaders/object.l" 04079 SET_OR_CLEAR_FLAG(op, FLAG_MONSTER, IVAL); 04080 YY_BREAK 04081 case 120: 04082 YY_RULE_SETUP 04083 #line 575 "src/loaders/object.l" 04084 SET_OR_CLEAR_FLAG(op, FLAG_NO_ATTACK, IVAL); 04085 YY_BREAK 04086 case 121: 04087 YY_RULE_SETUP 04088 #line 576 "src/loaders/object.l" 04089 SET_OR_CLEAR_FLAG(op, FLAG_INVULNERABLE, IVAL); 04090 YY_BREAK 04091 case 122: 04092 YY_RULE_SETUP 04093 #line 577 "src/loaders/object.l" 04094 { 04095 if (IVAL) 04096 { 04097 SET_FLAG(op, FLAG_FRIENDLY); 04098 } 04099 else 04100 { 04101 CLEAR_FLAG(op, FLAG_FRIENDLY); 04102 } 04103 } 04104 YY_BREAK 04105 case 123: 04106 YY_RULE_SETUP 04107 #line 587 "src/loaders/object.l" 04108 { 04109 if (IVAL) 04110 { 04111 SET_FLAG(op, FLAG_IDENTIFIED); 04112 } 04113 else 04114 { 04115 CLEAR_FLAG(op, FLAG_IDENTIFIED); 04116 } 04117 } 04118 YY_BREAK 04119 case 124: 04120 YY_RULE_SETUP 04121 #line 597 "src/loaders/object.l" 04122 SET_OR_CLEAR_FLAG(op, FLAG_REFLECTING, IVAL); 04123 YY_BREAK 04124 case 125: 04125 YY_RULE_SETUP 04126 #line 598 "src/loaders/object.l" 04127 SET_OR_CLEAR_FLAG(op, FLAG_CHANGING, IVAL); 04128 YY_BREAK 04129 case 126: 04130 YY_RULE_SETUP 04131 #line 599 "src/loaders/object.l" 04132 SET_OR_CLEAR_FLAG(op, FLAG_SPLITTING, IVAL); 04133 YY_BREAK 04134 case 127: 04135 YY_RULE_SETUP 04136 #line 600 "src/loaders/object.l" 04137 SET_OR_CLEAR_FLAG(op, FLAG_HITBACK, IVAL); 04138 YY_BREAK 04139 case 128: 04140 YY_RULE_SETUP 04141 #line 601 "src/loaders/object.l" 04142 SET_OR_CLEAR_FLAG(op, FLAG_STARTEQUIP, IVAL); 04143 YY_BREAK 04144 case 129: 04145 YY_RULE_SETUP 04146 #line 602 "src/loaders/object.l" 04147 SET_OR_CLEAR_FLAG(op, FLAG_BLOCKSVIEW, IVAL); 04148 YY_BREAK 04149 case 130: 04150 YY_RULE_SETUP 04151 #line 603 "src/loaders/object.l" 04152 SET_OR_CLEAR_FLAG(op, FLAG_UNDEAD, IVAL); 04153 YY_BREAK 04154 case 131: 04155 YY_RULE_SETUP 04156 #line 604 "src/loaders/object.l" 04157 SET_OR_CLEAR_FLAG(op, FLAG_SCARED, IVAL); 04158 YY_BREAK 04159 case 132: 04160 YY_RULE_SETUP 04161 #line 605 "src/loaders/object.l" 04162 SET_OR_CLEAR_FLAG(op, FLAG_UNAGGRESSIVE, IVAL); 04163 YY_BREAK 04164 case 133: 04165 YY_RULE_SETUP 04166 #line 606 "src/loaders/object.l" 04167 SET_OR_CLEAR_FLAG(op, FLAG_REFL_MISSILE, IVAL); 04168 YY_BREAK 04169 case 134: 04170 YY_RULE_SETUP 04171 #line 607 "src/loaders/object.l" 04172 SET_OR_CLEAR_FLAG(op, FLAG_REFL_SPELL, IVAL); 04173 YY_BREAK 04174 case 135: 04175 YY_RULE_SETUP 04176 #line 608 "src/loaders/object.l" 04177 SET_OR_CLEAR_FLAG(op, FLAG_REFL_MISSILE, IVAL); 04178 YY_BREAK 04179 case 136: 04180 YY_RULE_SETUP 04181 #line 609 "src/loaders/object.l" 04182 SET_OR_CLEAR_FLAG(op, FLAG_REFL_SPELL, IVAL); 04183 YY_BREAK 04184 case 137: 04185 YY_RULE_SETUP 04186 #line 610 "src/loaders/object.l" 04187 SET_OR_CLEAR_FLAG(op, FLAG_NO_MAGIC, IVAL); 04188 YY_BREAK 04189 case 138: 04190 YY_RULE_SETUP 04191 #line 611 "src/loaders/object.l" 04192 SET_OR_CLEAR_FLAG(op, FLAG_NO_CLERIC, IVAL); 04193 YY_BREAK 04194 case 139: 04195 YY_RULE_SETUP 04196 #line 612 "src/loaders/object.l" 04197 { 04198 if (IVAL) 04199 { 04200 SET_FLAG(op, FLAG_WIZ); 04201 SET_FLAG(op, FLAG_WAS_WIZ); 04202 SET_FLAG(op, FLAG_WIZPASS); 04203 } 04204 else 04205 { 04206 CLEAR_FLAG(op, FLAG_WIZ); 04207 CLEAR_FLAG(op, FLAG_WIZPASS); 04208 } 04209 } 04210 YY_BREAK 04211 case 140: 04212 YY_RULE_SETUP 04213 #line 625 "src/loaders/object.l" 04214 SET_OR_CLEAR_FLAG(op, FLAG_WAS_WIZ, IVAL); 04215 YY_BREAK 04216 case 141: 04217 YY_RULE_SETUP 04218 #line 626 "src/loaders/object.l" 04219 SET_OR_CLEAR_FLAG(op, FLAG_NO_FIX_PLAYER, IVAL); 04220 YY_BREAK 04221 case 142: 04222 YY_RULE_SETUP 04223 #line 627 "src/loaders/object.l" 04224 {} 04225 YY_BREAK 04226 case 143: 04227 YY_RULE_SETUP 04228 #line 628 "src/loaders/object.l" 04229 {} 04230 YY_BREAK 04231 case 144: 04232 YY_RULE_SETUP 04233 #line 629 "src/loaders/object.l" 04234 op->run_away = IVAL; 04235 YY_BREAK 04236 case 145: 04237 YY_RULE_SETUP 04238 #line 630 "src/loaders/object.l" 04239 SET_OR_CLEAR_FLAG(op, FLAG_PASS_THRU, IVAL); 04240 YY_BREAK 04241 case 146: 04242 YY_RULE_SETUP 04243 #line 631 "src/loaders/object.l" 04244 SET_OR_CLEAR_FLAG(op, FLAG_CAN_PASS_THRU, IVAL); 04245 YY_BREAK 04246 case 147: 04247 YY_RULE_SETUP 04248 #line 632 "src/loaders/object.l" 04249 op->anim_speed = IVAL; 04250 YY_BREAK 04251 case 148: 04252 YY_RULE_SETUP 04253 #line 633 "src/loaders/object.l" 04254 op->weight_limit = IVAL; 04255 YY_BREAK 04256 case 149: 04257 YY_RULE_SETUP 04258 #line 634 "src/loaders/object.l" 04259 SET_OR_CLEAR_FLAG(op, FLAG_NO_DROP, IVAL); 04260 YY_BREAK 04261 case 150: 04262 YY_RULE_SETUP 04263 #line 635 "src/loaders/object.l" 04264 op->behavior = IVAL; 04265 YY_BREAK 04266 case 151: 04267 YY_RULE_SETUP 04268 #line 636 "src/loaders/object.l" 04269 SET_OR_CLEAR_FLAG(op, FLAG_USE_FIX_POS, IVAL); 04270 YY_BREAK 04271 case 152: 04272 YY_RULE_SETUP 04273 #line 637 "src/loaders/object.l" 04274 SET_OR_CLEAR_FLAG(op, FLAG_IS_ETHEREAL, IVAL); 04275 YY_BREAK 04276 case 153: 04277 YY_RULE_SETUP 04278 #line 638 "src/loaders/object.l" 04279 SET_OR_CLEAR_FLAG(op, FLAG_CAST_SPELL, IVAL); 04280 YY_BREAK 04281 case 154: 04282 YY_RULE_SETUP 04283 #line 639 "src/loaders/object.l" 04284 {} 04285 YY_BREAK 04286 case 155: 04287 YY_RULE_SETUP 04288 #line 640 "src/loaders/object.l" 04289 {} 04290 YY_BREAK 04291 case 156: 04292 YY_RULE_SETUP 04293 #line 641 "src/loaders/object.l" 04294 SET_OR_CLEAR_FLAG(op, FLAG_USE_BOW, IVAL); 04295 YY_BREAK 04296 case 157: 04297 YY_RULE_SETUP 04298 #line 642 "src/loaders/object.l" 04299 SET_OR_CLEAR_FLAG(op, FLAG_USE_ARMOUR, IVAL); 04300 YY_BREAK 04301 case 158: 04302 YY_RULE_SETUP 04303 #line 643 "src/loaders/object.l" 04304 SET_OR_CLEAR_FLAG(op, FLAG_USE_WEAPON, IVAL); 04305 YY_BREAK 04306 case 159: 04307 YY_RULE_SETUP 04308 #line 644 "src/loaders/object.l" 04309 {} 04310 YY_BREAK 04311 case 160: 04312 YY_RULE_SETUP 04313 #line 645 "src/loaders/object.l" 04314 {} 04315 YY_BREAK 04316 case 161: 04317 YY_RULE_SETUP 04318 #line 646 "src/loaders/object.l" 04319 SET_OR_CLEAR_FLAG(op, FLAG_READY_BOW, IVAL); 04320 YY_BREAK 04321 case 162: 04322 YY_RULE_SETUP 04323 #line 647 "src/loaders/object.l" 04324 SET_OR_CLEAR_FLAG(op, FLAG_XRAYS, IVAL); 04325 YY_BREAK 04326 case 163: 04327 YY_RULE_SETUP 04328 #line 648 "src/loaders/object.l" 04329 SET_OR_CLEAR_FLAG(op, FLAG_NO_SAVE, IVAL); 04330 YY_BREAK 04331 case 164: 04332 YY_RULE_SETUP 04333 #line 649 "src/loaders/object.l" 04334 SET_OR_CLEAR_FLAG(op, FLAG_IS_FLOOR, IVAL); 04335 YY_BREAK 04336 case 165: 04337 YY_RULE_SETUP 04338 #line 650 "src/loaders/object.l" 04339 SET_OR_CLEAR_FLAG(op, FLAG_IS_MALE, IVAL); 04340 YY_BREAK 04341 case 166: 04342 YY_RULE_SETUP 04343 #line 651 "src/loaders/object.l" 04344 SET_OR_CLEAR_FLAG(op, FLAG_IS_FEMALE, IVAL); 04345 YY_BREAK 04346 case 167: 04347 YY_RULE_SETUP 04348 #line 652 "src/loaders/object.l" 04349 SET_OR_CLEAR_FLAG(op, FLAG_IS_EVIL, IVAL); 04350 YY_BREAK 04351 case 168: 04352 YY_RULE_SETUP 04353 #line 653 "src/loaders/object.l" 04354 SET_OR_CLEAR_FLAG(op, FLAG_IS_GOOD, IVAL); 04355 YY_BREAK 04356 case 169: 04357 YY_RULE_SETUP 04358 #line 654 "src/loaders/object.l" 04359 SET_OR_CLEAR_FLAG(op, FLAG_IS_NEUTRAL, IVAL); 04360 YY_BREAK 04361 case 170: 04362 YY_RULE_SETUP 04363 #line 655 "src/loaders/object.l" 04364 SET_OR_CLEAR_FLAG(op, FLAG_LIFESAVE, IVAL); 04365 YY_BREAK 04366 case 171: 04367 YY_RULE_SETUP 04368 #line 656 "src/loaders/object.l" 04369 { 04370 SET_OR_CLEAR_FLAG(op, FLAG_SLEEP, IVAL); 04371 /*(LOG(llevDebug," Warning: Object %s has sleep set in arch.\n",op->name);*/ 04372 } 04373 YY_BREAK 04374 case 172: 04375 YY_RULE_SETUP 04376 #line 660 "src/loaders/object.l" 04377 SET_OR_CLEAR_FLAG(op, FLAG_STAND_STILL, IVAL); 04378 YY_BREAK 04379 case 173: 04380 YY_RULE_SETUP 04381 #line 661 "src/loaders/object.l" 04382 SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL); 04383 YY_BREAK 04384 case 174: 04385 YY_RULE_SETUP 04386 #line 662 "src/loaders/object.l" 04387 SET_OR_CLEAR_FLAG(op, FLAG_ONLY_ATTACK, IVAL); 04388 YY_BREAK 04389 case 175: 04390 YY_RULE_SETUP 04391 #line 663 "src/loaders/object.l" 04392 SET_OR_CLEAR_FLAG(op, FLAG_BERSERK, IVAL); 04393 YY_BREAK 04394 case 176: 04395 YY_RULE_SETUP 04396 #line 664 "src/loaders/object.l" 04397 SET_OR_CLEAR_FLAG(op, FLAG_IS_MAGICAL, IVAL); 04398 YY_BREAK 04399 case 177: 04400 YY_RULE_SETUP 04401 #line 666 "src/loaders/object.l" 04402 SET_OR_CLEAR_FLAG(op, FLAG_CONNECT_NO_PUSH, IVAL); 04403 YY_BREAK 04404 case 178: 04405 YY_RULE_SETUP 04406 #line 667 "src/loaders/object.l" 04407 SET_OR_CLEAR_FLAG(op, FLAG_CONNECT_NO_RELEASE, IVAL); 04408 YY_BREAK 04409 /* Start of various attacktypes */ 04410 case 179: 04411 YY_RULE_SETUP 04412 #line 670 "src/loaders/object.l" 04413 SET_ATTACK(op, ATNR_IMPACT, IVAL); 04414 YY_BREAK 04415 case 180: 04416 YY_RULE_SETUP 04417 #line 671 "src/loaders/object.l" 04418 SET_ATTACK(op, ATNR_SLASH, IVAL); 04419 YY_BREAK 04420 case 181: 04421 YY_RULE_SETUP 04422 #line 672 "src/loaders/object.l" 04423 SET_ATTACK(op, ATNR_CLEAVE, IVAL); 04424 YY_BREAK 04425 case 182: 04426 YY_RULE_SETUP 04427 #line 673 "src/loaders/object.l" 04428 SET_ATTACK(op, ATNR_PIERCE, IVAL); 04429 YY_BREAK 04430 case 183: 04431 YY_RULE_SETUP 04432 #line 674 "src/loaders/object.l" 04433 SET_ATTACK(op, ATNR_WEAPON_MAGIC, IVAL); 04434 YY_BREAK 04435 case 184: 04436 YY_RULE_SETUP 04437 #line 676 "src/loaders/object.l" 04438 SET_ATTACK(op, ATNR_FIRE, IVAL); 04439 YY_BREAK 04440 case 185: 04441 YY_RULE_SETUP 04442 #line 677 "src/loaders/object.l" 04443 SET_ATTACK(op, ATNR_COLD, IVAL); 04444 YY_BREAK 04445 case 186: 04446 YY_RULE_SETUP 04447 #line 678 "src/loaders/object.l" 04448 SET_ATTACK(op, ATNR_ELECTRICITY, IVAL); 04449 YY_BREAK 04450 case 187: 04451 YY_RULE_SETUP 04452 #line 679 "src/loaders/object.l" 04453 SET_ATTACK(op, ATNR_POISON, IVAL); 04454 YY_BREAK 04455 case 188: 04456 YY_RULE_SETUP 04457 #line 680 "src/loaders/object.l" 04458 SET_ATTACK(op, ATNR_ACID, IVAL); 04459 YY_BREAK 04460 case 189: 04461 YY_RULE_SETUP 04462 #line 682 "src/loaders/object.l" 04463 SET_ATTACK(op, ATNR_MAGIC, IVAL); 04464 YY_BREAK 04465 case 190: 04466 YY_RULE_SETUP 04467 #line 683 "src/loaders/object.l" 04468 SET_ATTACK(op, ATNR_MIND, IVAL); 04469 YY_BREAK 04470 case 191: 04471 YY_RULE_SETUP 04472 #line 684 "src/loaders/object.l" 04473 SET_ATTACK(op, ATNR_BLIND, IVAL); 04474 YY_BREAK 04475 case 192: 04476 YY_RULE_SETUP 04477 #line 685 "src/loaders/object.l" 04478 SET_ATTACK(op, ATNR_PARALYZE, IVAL); 04479 YY_BREAK 04480 case 193: 04481 YY_RULE_SETUP 04482 #line 686 "src/loaders/object.l" 04483 SET_ATTACK(op, ATNR_FORCE, IVAL); 04484 YY_BREAK 04485 case 194: 04486 YY_RULE_SETUP 04487 #line 688 "src/loaders/object.l" 04488 SET_ATTACK(op, ATNR_GODPOWER, IVAL); 04489 YY_BREAK 04490 case 195: 04491 YY_RULE_SETUP 04492 #line 689 "src/loaders/object.l" 04493 SET_ATTACK(op, ATNR_CHAOS, IVAL); 04494 YY_BREAK 04495 case 196: 04496 YY_RULE_SETUP 04497 #line 690 "src/loaders/object.l" 04498 SET_ATTACK(op, ATNR_DRAIN, IVAL); 04499 YY_BREAK 04500 case 197: 04501 YY_RULE_SETUP 04502 #line 691 "src/loaders/object.l" 04503 SET_ATTACK(op, ATNR_SLOW, IVAL); 04504 YY_BREAK 04505 case 198: 04506 YY_RULE_SETUP 04507 #line 692 "src/loaders/object.l" 04508 SET_ATTACK(op, ATNR_CONFUSION, IVAL); 04509 YY_BREAK 04510 case 199: 04511 YY_RULE_SETUP 04512 #line 694 "src/loaders/object.l" 04513 SET_ATTACK(op, ATNR_INTERNAL, IVAL); 04514 YY_BREAK 04515 /* The following attack types are deprecated and are here 04516 * for backwards compatibility. */ 04517 case 200: 04518 YY_RULE_SETUP 04519 #line 698 "src/loaders/object.l" 04520 set_random_attack(op, IVAL); 04521 YY_BREAK 04522 case 201: 04523 YY_RULE_SETUP 04524 #line 699 "src/loaders/object.l" 04525 set_random_attack(op, IVAL); 04526 YY_BREAK 04527 case 202: 04528 YY_RULE_SETUP 04529 #line 700 "src/loaders/object.l" 04530 set_random_attack(op, IVAL); 04531 YY_BREAK 04532 case 203: 04533 YY_RULE_SETUP 04534 #line 701 "src/loaders/object.l" 04535 set_random_attack(op, IVAL); 04536 YY_BREAK 04537 case 204: 04538 YY_RULE_SETUP 04539 #line 702 "src/loaders/object.l" 04540 set_random_attack(op, IVAL); 04541 YY_BREAK 04542 case 205: 04543 YY_RULE_SETUP 04544 #line 703 "src/loaders/object.l" 04545 set_random_attack(op, IVAL); 04546 YY_BREAK 04547 case 206: 04548 YY_RULE_SETUP 04549 #line 704 "src/loaders/object.l" 04550 set_random_attack(op, IVAL); 04551 YY_BREAK 04552 case 207: 04553 YY_RULE_SETUP 04554 #line 705 "src/loaders/object.l" 04555 set_random_attack(op, IVAL); 04556 YY_BREAK 04557 case 208: 04558 YY_RULE_SETUP 04559 #line 706 "src/loaders/object.l" 04560 set_random_attack(op, IVAL); 04561 YY_BREAK 04562 case 209: 04563 YY_RULE_SETUP 04564 #line 707 "src/loaders/object.l" 04565 set_random_attack(op, IVAL); 04566 YY_BREAK 04567 case 210: 04568 YY_RULE_SETUP 04569 #line 708 "src/loaders/object.l" 04570 set_random_attack(op, IVAL); 04571 YY_BREAK 04572 case 211: 04573 YY_RULE_SETUP 04574 #line 709 "src/loaders/object.l" 04575 set_random_attack(op, IVAL); 04576 YY_BREAK 04577 /* All these resists are deprecated and are here for 04578 * backwards compatibility. */ 04579 case 212: 04580 YY_RULE_SETUP 04581 #line 713 "src/loaders/object.l" 04582 SET_PROTECTION(op, ATNR_IMPACT, IVAL); 04583 YY_BREAK 04584 case 213: 04585 YY_RULE_SETUP 04586 #line 714 "src/loaders/object.l" 04587 SET_PROTECTION(op, ATNR_MAGIC, IVAL); 04588 YY_BREAK 04589 case 214: 04590 YY_RULE_SETUP 04591 #line 715 "src/loaders/object.l" 04592 SET_PROTECTION(op, ATNR_FIRE, IVAL); 04593 YY_BREAK 04594 case 215: 04595 YY_RULE_SETUP 04596 #line 716 "src/loaders/object.l" 04597 SET_PROTECTION(op, ATNR_ELECTRICITY, IVAL); 04598 YY_BREAK 04599 case 216: 04600 YY_RULE_SETUP 04601 #line 717 "src/loaders/object.l" 04602 SET_PROTECTION(op, ATNR_COLD, IVAL); 04603 YY_BREAK 04604 case 217: 04605 YY_RULE_SETUP 04606 #line 718 "src/loaders/object.l" 04607 SET_PROTECTION(op, ATNR_CONFUSION, IVAL); 04608 YY_BREAK 04609 case 218: 04610 YY_RULE_SETUP 04611 #line 719 "src/loaders/object.l" 04612 SET_PROTECTION(op, ATNR_ACID, IVAL); 04613 YY_BREAK 04614 case 219: 04615 YY_RULE_SETUP 04616 #line 720 "src/loaders/object.l" 04617 SET_PROTECTION(op, ATNR_DRAIN, IVAL); 04618 YY_BREAK 04619 case 220: 04620 YY_RULE_SETUP 04621 #line 721 "src/loaders/object.l" 04622 SET_PROTECTION(op, ATNR_WEAPON_MAGIC, IVAL); 04623 YY_BREAK 04624 case 221: 04625 YY_RULE_SETUP 04626 #line 722 "src/loaders/object.l" 04627 set_random_protection(op, IVAL); 04628 YY_BREAK 04629 case 222: 04630 YY_RULE_SETUP 04631 #line 723 "src/loaders/object.l" 04632 SET_PROTECTION(op, ATNR_POISON, IVAL); 04633 YY_BREAK 04634 case 223: 04635 YY_RULE_SETUP 04636 #line 724 "src/loaders/object.l" 04637 set_random_protection(op, IVAL); 04638 YY_BREAK 04639 case 224: 04640 YY_RULE_SETUP 04641 #line 725 "src/loaders/object.l" 04642 SET_PROTECTION(op, ATNR_PARALYZE, IVAL); 04643 YY_BREAK 04644 case 225: 04645 YY_RULE_SETUP 04646 #line 726 "src/loaders/object.l" 04647 set_random_protection(op, IVAL); 04648 YY_BREAK 04649 case 226: 04650 YY_RULE_SETUP 04651 #line 727 "src/loaders/object.l" 04652 set_random_protection(op, IVAL); 04653 YY_BREAK 04654 case 227: 04655 YY_RULE_SETUP 04656 #line 728 "src/loaders/object.l" 04657 set_random_protection(op, IVAL); 04658 YY_BREAK 04659 case 228: 04660 YY_RULE_SETUP 04661 #line 729 "src/loaders/object.l" 04662 set_random_protection(op, IVAL); 04663 YY_BREAK 04664 case 229: 04665 YY_RULE_SETUP 04666 #line 730 "src/loaders/object.l" 04667 set_random_protection(op, IVAL); 04668 YY_BREAK 04669 case 230: 04670 YY_RULE_SETUP 04671 #line 731 "src/loaders/object.l" 04672 SET_PROTECTION(op, ATNR_CHAOS, IVAL); 04673 YY_BREAK 04674 case 231: 04675 YY_RULE_SETUP 04676 #line 732 "src/loaders/object.l" 04677 set_random_protection(op, IVAL); 04678 YY_BREAK 04679 case 232: 04680 YY_RULE_SETUP 04681 #line 733 "src/loaders/object.l" 04682 SET_PROTECTION(op, ATNR_GODPOWER, IVAL); 04683 YY_BREAK 04684 case 233: 04685 YY_RULE_SETUP 04686 #line 734 "src/loaders/object.l" 04687 set_random_protection(op, IVAL); 04688 YY_BREAK 04689 case 234: 04690 YY_RULE_SETUP 04691 #line 735 "src/loaders/object.l" 04692 SET_PROTECTION(op, ATNR_BLIND, IVAL); 04693 YY_BREAK 04694 case 235: 04695 YY_RULE_SETUP 04696 #line 736 "src/loaders/object.l" 04697 set_random_protection(op, IVAL); 04698 YY_BREAK 04699 case 236: 04700 YY_RULE_SETUP 04701 #line 737 "src/loaders/object.l" 04702 set_random_protection(op, IVAL); 04703 YY_BREAK 04704 case 237: 04705 YY_RULE_SETUP 04706 #line 738 "src/loaders/object.l" 04707 SET_PROTECTION(op, ATNR_SLASH, IVAL); 04708 YY_BREAK 04709 case 238: 04710 YY_RULE_SETUP 04711 #line 739 "src/loaders/object.l" 04712 SET_PROTECTION(op, ATNR_CLEAVE, IVAL); 04713 YY_BREAK 04714 case 239: 04715 YY_RULE_SETUP 04716 #line 740 "src/loaders/object.l" 04717 SET_PROTECTION(op, ATNR_PIERCE, IVAL); 04718 YY_BREAK 04719 case 240: 04720 YY_RULE_SETUP 04721 #line 741 "src/loaders/object.l" 04722 set_random_protection(op, IVAL); 04723 YY_BREAK 04724 case 241: 04725 YY_RULE_SETUP 04726 #line 742 "src/loaders/object.l" 04727 set_random_protection(op, IVAL); 04728 YY_BREAK 04729 case 242: 04730 YY_RULE_SETUP 04731 #line 743 "src/loaders/object.l" 04732 set_random_protection(op, IVAL); 04733 YY_BREAK 04734 case 243: 04735 YY_RULE_SETUP 04736 #line 744 "src/loaders/object.l" 04737 set_random_protection(op, IVAL); 04738 YY_BREAK 04739 /* Start of various protections */ 04740 case 244: 04741 YY_RULE_SETUP 04742 #line 747 "src/loaders/object.l" 04743 SET_PROTECTION(op, ATNR_IMPACT, IVAL); 04744 YY_BREAK 04745 case 245: 04746 YY_RULE_SETUP 04747 #line 748 "src/loaders/object.l" 04748 SET_PROTECTION(op, ATNR_SLASH, IVAL); 04749 YY_BREAK 04750 case 246: 04751 YY_RULE_SETUP 04752 #line 749 "src/loaders/object.l" 04753 SET_PROTECTION(op, ATNR_CLEAVE, IVAL); 04754 YY_BREAK 04755 case 247: 04756 YY_RULE_SETUP 04757 #line 750 "src/loaders/object.l" 04758 SET_PROTECTION(op, ATNR_PIERCE, IVAL); 04759 YY_BREAK 04760 case 248: 04761 YY_RULE_SETUP 04762 #line 751 "src/loaders/object.l" 04763 SET_PROTECTION(op, ATNR_WEAPON_MAGIC, IVAL); 04764 YY_BREAK 04765 case 249: 04766 YY_RULE_SETUP 04767 #line 753 "src/loaders/object.l" 04768 SET_PROTECTION(op, ATNR_FIRE, IVAL); 04769 YY_BREAK 04770 case 250: 04771 YY_RULE_SETUP 04772 #line 754 "src/loaders/object.l" 04773 SET_PROTECTION(op, ATNR_COLD, IVAL); 04774 YY_BREAK 04775 case 251: 04776 YY_RULE_SETUP 04777 #line 755 "src/loaders/object.l" 04778 SET_PROTECTION(op, ATNR_ELECTRICITY, IVAL); 04779 YY_BREAK 04780 case 252: 04781 YY_RULE_SETUP 04782 #line 756 "src/loaders/object.l" 04783 SET_PROTECTION(op, ATNR_POISON, IVAL); 04784 YY_BREAK 04785 case 253: 04786 YY_RULE_SETUP 04787 #line 757 "src/loaders/object.l" 04788 SET_PROTECTION(op, ATNR_ACID, IVAL); 04789 YY_BREAK 04790 case 254: 04791 YY_RULE_SETUP 04792 #line 759 "src/loaders/object.l" 04793 SET_PROTECTION(op, ATNR_MAGIC, IVAL); 04794 YY_BREAK 04795 case 255: 04796 YY_RULE_SETUP 04797 #line 760 "src/loaders/object.l" 04798 SET_PROTECTION(op, ATNR_MIND, IVAL); 04799 YY_BREAK 04800 case 256: 04801 YY_RULE_SETUP 04802 #line 761 "src/loaders/object.l" 04803 SET_PROTECTION(op, ATNR_BLIND, IVAL); 04804 YY_BREAK 04805 case 257: 04806 YY_RULE_SETUP 04807 #line 762 "src/loaders/object.l" 04808 SET_PROTECTION(op, ATNR_PARALYZE, IVAL); 04809 YY_BREAK 04810 case 258: 04811 YY_RULE_SETUP 04812 #line 763 "src/loaders/object.l" 04813 SET_PROTECTION(op, ATNR_FORCE, IVAL); 04814 YY_BREAK 04815 case 259: 04816 YY_RULE_SETUP 04817 #line 765 "src/loaders/object.l" 04818 SET_PROTECTION(op, ATNR_GODPOWER, IVAL); 04819 YY_BREAK 04820 case 260: 04821 YY_RULE_SETUP 04822 #line 766 "src/loaders/object.l" 04823 SET_PROTECTION(op, ATNR_CHAOS, IVAL); 04824 YY_BREAK 04825 case 261: 04826 YY_RULE_SETUP 04827 #line 767 "src/loaders/object.l" 04828 SET_PROTECTION(op, ATNR_DRAIN, IVAL); 04829 YY_BREAK 04830 case 262: 04831 YY_RULE_SETUP 04832 #line 768 "src/loaders/object.l" 04833 SET_PROTECTION(op, ATNR_SLOW, IVAL); 04834 YY_BREAK 04835 case 263: 04836 YY_RULE_SETUP 04837 #line 769 "src/loaders/object.l" 04838 SET_PROTECTION(op, ATNR_CONFUSION, IVAL); 04839 YY_BREAK 04840 case 264: 04841 YY_RULE_SETUP 04842 #line 771 "src/loaders/object.l" 04843 SET_PROTECTION(op, ATNR_INTERNAL, IVAL); 04844 YY_BREAK 04845 /* The following protections are deprecated, and are here only 04846 * for backwards compatibility. */ 04847 case 265: 04848 YY_RULE_SETUP 04849 #line 775 "src/loaders/object.l" 04850 SET_PROTECTION(op, ATNR_BLIND, IVAL); 04851 YY_BREAK 04852 case 266: 04853 YY_RULE_SETUP 04854 #line 776 "src/loaders/object.l" 04855 SET_PROTECTION(op, ATNR_PARALYZE, IVAL); 04856 YY_BREAK 04857 case 267: 04858 YY_RULE_SETUP 04859 #line 777 "src/loaders/object.l" 04860 SET_PROTECTION(op, ATNR_CONFUSION, IVAL); 04861 YY_BREAK 04862 case 268: 04863 YY_RULE_SETUP 04864 #line 778 "src/loaders/object.l" 04865 SET_PROTECTION(op, ATNR_PARALYZE, IVAL); 04866 YY_BREAK 04867 case 269: 04868 YY_RULE_SETUP 04869 #line 779 "src/loaders/object.l" 04870 SET_PROTECTION(op, ATNR_DRAIN, IVAL); 04871 YY_BREAK 04872 case 270: 04873 YY_RULE_SETUP 04874 #line 781 "src/loaders/object.l" 04875 op->move_type = IVAL; 04876 YY_BREAK 04877 case 271: 04878 YY_RULE_SETUP 04879 #line 782 "src/loaders/object.l" 04880 op->attack_move_type = IVAL; 04881 YY_BREAK 04882 case 272: 04883 YY_RULE_SETUP 04884 #line 784 "src/loaders/object.l" 04885 op->move_status = IVAL; 04886 YY_BREAK 04887 case 273: 04888 YY_RULE_SETUP 04889 #line 785 "src/loaders/object.l" 04890 SET_OR_CLEAR_FLAG(op, FLAG_CONFUSED, IVAL); 04891 YY_BREAK 04892 case 274: 04893 YY_RULE_SETUP 04894 #line 786 "src/loaders/object.l" 04895 SET_OR_CLEAR_FLAG(op, FLAG_STEALTH, IVAL); 04896 YY_BREAK 04897 case 275: 04898 YY_RULE_SETUP 04899 #line 787 "src/loaders/object.l" 04900 add_button_link(op, op->map, IVAL); 04901 YY_BREAK 04902 case 276: 04903 YY_RULE_SETUP 04904 #line 788 "src/loaders/object.l" 04905 SET_OR_CLEAR_FLAG(op, FLAG_CURSED, IVAL); 04906 YY_BREAK 04907 case 277: 04908 YY_RULE_SETUP 04909 #line 789 "src/loaders/object.l" 04910 SET_OR_CLEAR_FLAG(op, FLAG_DAMNED, IVAL); 04911 YY_BREAK 04912 case 278: 04913 YY_RULE_SETUP 04914 #line 790 "src/loaders/object.l" 04915 SET_OR_CLEAR_FLAG(op, FLAG_IS_BUILDABLE, IVAL); 04916 YY_BREAK 04917 case 279: 04918 YY_RULE_SETUP 04919 #line 791 "src/loaders/object.l" 04920 SET_OR_CLEAR_FLAG(op, FLAG_NO_PVP, IVAL); 04921 YY_BREAK 04922 case 280: 04923 YY_RULE_SETUP 04924 #line 792 "src/loaders/object.l" 04925 {/* Deprecated. */} 04926 YY_BREAK 04927 case 281: 04928 YY_RULE_SETUP 04929 #line 793 "src/loaders/object.l" 04930 {/* Deprecated. */} 04931 YY_BREAK 04932 case 282: 04933 YY_RULE_SETUP 04934 #line 794 "src/loaders/object.l" 04935 {/* Deprecated. */} 04936 YY_BREAK 04937 case 283: 04938 YY_RULE_SETUP 04939 #line 795 "src/loaders/object.l" 04940 {} 04941 YY_BREAK 04942 case 284: 04943 YY_RULE_SETUP 04944 #line 796 "src/loaders/object.l" 04945 SET_OR_CLEAR_FLAG(op, FLAG_BEEN_APPLIED, IVAL); 04946 YY_BREAK 04947 case 285: 04948 YY_RULE_SETUP 04949 #line 797 "src/loaders/object.l" 04950 { 04951 char *y = yval(); 04952 04953 if (*y == '\0') 04954 { 04955 LOG(llevBug, "loader(): Title without value.\n"); 04956 } 04957 else 04958 { 04959 FREE_AND_COPY_HASH(op->title, y); 04960 04961 if (op->title == shstr_cons.NONE) 04962 { 04963 FREE_AND_CLEAR_HASH(op->title); 04964 } 04965 } 04966 } 04967 YY_BREAK 04968 case 286: 04969 YY_RULE_SETUP 04970 #line 814 "src/loaders/object.l" 04971 SET_OR_CLEAR_FLAG(op, FLAG_OUTDOOR, IVAL); 04972 YY_BREAK 04973 case 287: 04974 YY_RULE_SETUP 04975 #line 815 "src/loaders/object.l" 04976 SET_OR_CLEAR_FLAG(op, FLAG_UNIQUE, IVAL); 04977 YY_BREAK 04978 case 288: 04979 YY_RULE_SETUP 04980 #line 816 "src/loaders/object.l" 04981 SET_OR_CLEAR_FLAG(op, FLAG_INV_LOCKED, IVAL); 04982 YY_BREAK 04983 case 289: 04984 YY_RULE_SETUP 04985 #line 817 "src/loaders/object.l" 04986 {} 04987 YY_BREAK 04988 case 290: 04989 YY_RULE_SETUP 04990 #line 818 "src/loaders/object.l" 04991 {} 04992 YY_BREAK 04993 case 291: 04994 YY_RULE_SETUP 04995 #line 819 "src/loaders/object.l" 04996 {} 04997 YY_BREAK 04998 case 292: 04999 YY_RULE_SETUP 05000 #line 820 "src/loaders/object.l" 05001 SET_OR_CLEAR_FLAG(op, FLAG_READY_WEAPON, IVAL); 05002 YY_BREAK 05003 case 293: 05004 YY_RULE_SETUP 05005 #line 821 "src/loaders/object.l" 05006 SET_OR_CLEAR_FLAG(op, FLAG_NO_SKILL_IDENT, IVAL); 05007 YY_BREAK 05008 case 294: 05009 YY_RULE_SETUP 05010 #line 822 "src/loaders/object.l" 05011 op->glow_radius = IVAL; 05012 YY_BREAK 05013 case 295: 05014 YY_RULE_SETUP 05015 #line 823 "src/loaders/object.l" 05016 SET_OR_CLEAR_FLAG(op, FLAG_BLIND, IVAL); 05017 YY_BREAK 05018 case 296: 05019 YY_RULE_SETUP 05020 #line 824 "src/loaders/object.l" 05021 SET_OR_CLEAR_FLAG(op, FLAG_SEE_IN_DARK, IVAL); 05022 YY_BREAK 05023 case 297: 05024 YY_RULE_SETUP 05025 #line 825 "src/loaders/object.l" 05026 SET_OR_CLEAR_FLAG(op, FLAG_IS_CAULDRON, IVAL); 05027 YY_BREAK 05028 case 298: 05029 YY_RULE_SETUP 05030 #line 826 "src/loaders/object.l" 05031 op->randomitems = find_treasurelist(yval()); 05032 YY_BREAK 05033 case 299: 05034 YY_RULE_SETUP 05035 #line 827 "src/loaders/object.l" 05036 SET_OR_CLEAR_FLAG(op, FLAG_DUST, IVAL); 05037 YY_BREAK 05038 case 300: 05039 YY_RULE_SETUP 05040 #line 828 "src/loaders/object.l" 05041 {} 05042 YY_BREAK 05043 case 301: 05044 YY_RULE_SETUP 05045 #line 829 "src/loaders/object.l" 05046 SET_OR_CLEAR_FLAG(op, FLAG_ONE_HIT, IVAL); 05047 YY_BREAK 05048 case 302: 05049 YY_RULE_SETUP 05050 #line 831 "src/loaders/object.l" 05051 {} 05052 YY_BREAK 05053 case 303: 05054 YY_RULE_SETUP 05055 #line 832 "src/loaders/object.l" 05056 {} 05057 YY_BREAK 05058 case 304: 05059 YY_RULE_SETUP 05060 #line 833 "src/loaders/object.l" 05061 {} 05062 YY_BREAK 05063 case 305: 05064 YY_RULE_SETUP 05065 #line 834 "src/loaders/object.l" 05066 {} 05067 YY_BREAK 05068 case 306: 05069 YY_RULE_SETUP 05070 #line 835 "src/loaders/object.l" 05071 {} 05072 YY_BREAK 05073 case 307: 05074 YY_RULE_SETUP 05075 #line 836 "src/loaders/object.l" 05076 {} 05077 YY_BREAK 05078 case 308: 05079 YY_RULE_SETUP 05080 #line 837 "src/loaders/object.l" 05081 {} 05082 YY_BREAK 05083 case 309: 05084 YY_RULE_SETUP 05085 #line 838 "src/loaders/object.l" 05086 {} 05087 YY_BREAK 05088 case 310: 05089 YY_RULE_SETUP 05090 #line 839 "src/loaders/object.l" 05091 SET_OR_CLEAR_FLAG(op, FLAG_INDESTRUCTIBLE, IVAL); 05092 YY_BREAK 05093 /* Ignore editor_folder values. */ 05094 case 311: 05095 YY_RULE_SETUP 05096 #line 842 "src/loaders/object.l" 05097 {} 05098 YY_BREAK 05099 case 312: 05100 YY_RULE_SETUP 05101 #line 843 "src/loaders/object.l" 05102 op->sub_type = IVAL; 05103 YY_BREAK 05104 case 313: 05105 YY_RULE_SETUP 05106 #line 844 "src/loaders/object.l" 05107 op->terrain_flag = IVAL; 05108 YY_BREAK 05109 case 314: 05110 YY_RULE_SETUP 05111 #line 845 "src/loaders/object.l" 05112 op->terrain_type = IVAL; 05113 YY_BREAK 05114 case 315: 05115 YY_RULE_SETUP 05116 #line 846 "src/loaders/object.l" 05117 op->item_quality = IVAL; 05118 YY_BREAK 05119 case 316: 05120 YY_RULE_SETUP 05121 #line 847 "src/loaders/object.l" 05122 op->item_condition = IVAL; 05123 YY_BREAK 05124 case 317: 05125 YY_RULE_SETUP 05126 #line 848 "src/loaders/object.l" 05127 op->item_race = IVAL; 05128 YY_BREAK 05129 case 318: 05130 YY_RULE_SETUP 05131 #line 849 "src/loaders/object.l" 05132 op->item_skill = IVAL; 05133 YY_BREAK 05134 case 319: 05135 YY_RULE_SETUP 05136 #line 850 "src/loaders/object.l" 05137 op->item_level = IVAL; 05138 YY_BREAK 05139 case 320: 05140 YY_RULE_SETUP 05141 #line 851 "src/loaders/object.l" 05142 { 05143 /* Artifact list token - Never use in real arches or maps. */ 05144 int ival_tmp = IVAL; 05145 05146 /* When we have an artifact which has a minimum use level of 10 05147 * but we give it a mithril armour of default use level 50, 05148 * we will create artifact mithril armour usable for level 10! 05149 * This code prevents such things from happening. */ 05150 if (ival_tmp <= 0) 05151 { 05152 op->item_level = -ival_tmp; 05153 } 05154 else if (ival_tmp > op->item_level) 05155 { 05156 op->item_level = ival_tmp; 05157 } 05158 } 05159 YY_BREAK 05160 case 321: 05161 YY_RULE_SETUP 05162 #line 868 "src/loaders/object.l" 05163 op->material_real = IVAL; 05164 YY_BREAK 05165 case 322: 05166 YY_RULE_SETUP 05167 #line 869 "src/loaders/object.l" 05168 op->quick_pos |= (((char) IVAL) << 4); 05169 YY_BREAK 05170 case 323: 05171 YY_RULE_SETUP 05172 #line 870 "src/loaders/object.l" 05173 op->quick_pos |= (char) IVAL; 05174 YY_BREAK 05175 case 324: 05176 YY_RULE_SETUP 05177 #line 871 "src/loaders/object.l" 05178 { 05179 op->weapon_speed = FVAL; 05180 op->weapon_speed_left = 0; 05181 op->weapon_speed_add = op->weapon_speed; 05182 } 05183 YY_BREAK 05184 case 325: 05185 YY_RULE_SETUP 05186 #line 876 "src/loaders/object.l" 05187 op->item_power = IVAL; 05188 YY_BREAK 05189 /* Ignore empty lines, newlines we don't do above */ 05190 case 326: 05191 /* rule 326 can match eol */ 05192 YY_RULE_SETUP 05193 #line 879 "src/loaders/object.l" 05194 {} 05195 YY_BREAK 05196 case 327: 05197 /* rule 327 can match eol */ 05198 YY_RULE_SETUP 05199 #line 880 "src/loaders/object.l" 05200 {} 05201 YY_BREAK 05202 case YY_STATE_EOF(INITIAL): 05203 case YY_STATE_EOF(MESSAGE): 05204 #line 882 "src/loaders/object.l" 05205 { 05206 /* If we got an error, return the error. Otherwise, return that we got EOF */ 05207 if (lex_error != 0) 05208 { 05209 return lex_error; 05210 } 05211 else 05212 { 05213 return LL_EOF; 05214 } 05215 } 05216 YY_BREAK 05217 case 328: 05218 YY_RULE_SETUP 05219 #line 893 "src/loaders/object.l" 05220 { 05221 add_key_value(op); 05222 } 05223 YY_BREAK 05224 case 329: 05225 YY_RULE_SETUP 05226 #line 896 "src/loaders/object.l" 05227 ECHO; 05228 YY_BREAK 05229 #line 5230 "src/loaders/object.c" 05230 05231 case YY_END_OF_BUFFER: 05232 { 05233 /* Amount of text matched not including the EOB char. */ 05234 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 05235 05236 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 05237 *yy_cp = (yy_hold_char); 05238 YY_RESTORE_YY_MORE_OFFSET 05239 05240 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 05241 { 05242 /* We're scanning a new file or input source. It's 05243 * possible that this happened because the user 05244 * just pointed yy_objectin at a new source and called 05245 * yy_objectlex(). If so, then we have to assure 05246 * consistency between YY_CURRENT_BUFFER and our 05247 * globals. Here is the right place to do so, because 05248 * this is the first action (other than possibly a 05249 * back-up) that will match for the new input source. 05250 */ 05251 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 05252 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yy_objectin; 05253 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 05254 } 05255 05256 /* Note that here we test for yy_c_buf_p "<=" to the position 05257 * of the first EOB in the buffer, since yy_c_buf_p will 05258 * already have been incremented past the NUL character 05259 * (since all states make transitions on EOB to the 05260 * end-of-buffer state). Contrast this with the test 05261 * in input(). 05262 */ 05263 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 05264 { /* This was really a NUL. */ 05265 yy_state_type yy_next_state; 05266 05267 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 05268 05269 yy_current_state = yy_get_previous_state( ); 05270 05271 /* Okay, we're now positioned to make the NUL 05272 * transition. We couldn't have 05273 * yy_get_previous_state() go ahead and do it 05274 * for us because it doesn't know how to deal 05275 * with the possibility of jamming (and we don't 05276 * want to build jamming into it because then it 05277 * will run more slowly). 05278 */ 05279 05280 yy_next_state = yy_try_NUL_trans( yy_current_state ); 05281 05282 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 05283 05284 if ( yy_next_state ) 05285 { 05286 /* Consume the NUL. */ 05287 yy_cp = ++(yy_c_buf_p); 05288 yy_current_state = yy_next_state; 05289 goto yy_match; 05290 } 05291 05292 else 05293 { 05294 yy_cp = (yy_c_buf_p); 05295 goto yy_find_action; 05296 } 05297 } 05298 05299 else switch ( yy_get_next_buffer( ) ) 05300 { 05301 case EOB_ACT_END_OF_FILE: 05302 { 05303 (yy_did_buffer_switch_on_eof) = 0; 05304 05305 if ( yy_objectwrap( ) ) 05306 { 05307 /* Note: because we've taken care in 05308 * yy_get_next_buffer() to have set up 05309 * yy_objecttext, we can now set up 05310 * yy_c_buf_p so that if some total 05311 * hoser (like flex itself) wants to 05312 * call the scanner after we return the 05313 * YY_NULL, it'll still work - another 05314 * YY_NULL will get returned. 05315 */ 05316 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 05317 05318 yy_act = YY_STATE_EOF(YY_START); 05319 goto do_action; 05320 } 05321 05322 else 05323 { 05324 if ( ! (yy_did_buffer_switch_on_eof) ) 05325 YY_NEW_FILE; 05326 } 05327 break; 05328 } 05329 05330 case EOB_ACT_CONTINUE_SCAN: 05331 (yy_c_buf_p) = 05332 (yytext_ptr) + yy_amount_of_matched_text; 05333 05334 yy_current_state = yy_get_previous_state( ); 05335 05336 yy_cp = (yy_c_buf_p); 05337 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 05338 goto yy_match; 05339 05340 case EOB_ACT_LAST_MATCH: 05341 (yy_c_buf_p) = 05342 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 05343 05344 yy_current_state = yy_get_previous_state( ); 05345 05346 yy_cp = (yy_c_buf_p); 05347 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 05348 goto yy_find_action; 05349 } 05350 break; 05351 } 05352 05353 default: 05354 YY_FATAL_ERROR( 05355 "fatal flex scanner internal error--no action found" ); 05356 } /* end of action switch */ 05357 } /* end of scanning one token */ 05358 } /* end of yy_objectlex */ 05359 05360 /* yy_get_next_buffer - try to read in a new buffer 05361 * 05362 * Returns a code representing an action: 05363 * EOB_ACT_LAST_MATCH - 05364 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 05365 * EOB_ACT_END_OF_FILE - end of file 05366 */ 05367 static int yy_get_next_buffer (void) 05368 { 05369 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 05370 register char *source = (yytext_ptr); 05371 register int number_to_move, i; 05372 int ret_val; 05373 05374 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 05375 YY_FATAL_ERROR( 05376 "fatal flex scanner internal error--end of buffer missed" ); 05377 05378 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 05379 { /* Don't try to fill the buffer, so this is an EOF. */ 05380 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 05381 { 05382 /* We matched a single character, the EOB, so 05383 * treat this as a final EOF. 05384 */ 05385 return EOB_ACT_END_OF_FILE; 05386 } 05387 05388 else 05389 { 05390 /* We matched some text prior to the EOB, first 05391 * process it. 05392 */ 05393 return EOB_ACT_LAST_MATCH; 05394 } 05395 } 05396 05397 /* Try to read more data. */ 05398 05399 /* First move last chars to start of buffer. */ 05400 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 05401 05402 for ( i = 0; i < number_to_move; ++i ) 05403 *(dest++) = *(source++); 05404 05405 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 05406 /* don't do the read, it's not guaranteed to return an EOF, 05407 * just force an EOF 05408 */ 05409 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 05410 05411 else 05412 { 05413 int num_to_read = 05414 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 05415 05416 while ( num_to_read <= 0 ) 05417 { /* Not enough room in the buffer - grow it. */ 05418 05419 /* just a shorter name for the current buffer */ 05420 YY_BUFFER_STATE b = YY_CURRENT_BUFFER; 05421 05422 int yy_c_buf_p_offset = 05423 (int) ((yy_c_buf_p) - b->yy_ch_buf); 05424 05425 if ( b->yy_is_our_buffer ) 05426 { 05427 int new_size = b->yy_buf_size * 2; 05428 05429 if ( new_size <= 0 ) 05430 b->yy_buf_size += b->yy_buf_size / 8; 05431 else 05432 b->yy_buf_size *= 2; 05433 05434 b->yy_ch_buf = (char *) 05435 /* Include room in for 2 EOB chars. */ 05436 yy_objectrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); 05437 } 05438 else 05439 /* Can't grow it, we don't own it. */ 05440 b->yy_ch_buf = 0; 05441 05442 if ( ! b->yy_ch_buf ) 05443 YY_FATAL_ERROR( 05444 "fatal error - scanner input buffer overflow" ); 05445 05446 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 05447 05448 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 05449 number_to_move - 1; 05450 05451 } 05452 05453 if ( num_to_read > YY_READ_BUF_SIZE ) 05454 num_to_read = YY_READ_BUF_SIZE; 05455 05456 /* Read in more data. */ 05457 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 05458 (yy_n_chars), (size_t) num_to_read ); 05459 05460 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 05461 } 05462 05463 if ( (yy_n_chars) == 0 ) 05464 { 05465 if ( number_to_move == YY_MORE_ADJ ) 05466 { 05467 ret_val = EOB_ACT_END_OF_FILE; 05468 yy_objectrestart(yy_objectin ); 05469 } 05470 05471 else 05472 { 05473 ret_val = EOB_ACT_LAST_MATCH; 05474 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 05475 YY_BUFFER_EOF_PENDING; 05476 } 05477 } 05478 05479 else 05480 ret_val = EOB_ACT_CONTINUE_SCAN; 05481 05482 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 05483 /* Extend the array by 50%, plus the number we really need. */ 05484 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 05485 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yy_objectrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); 05486 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 05487 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 05488 } 05489 05490 (yy_n_chars) += number_to_move; 05491 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 05492 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 05493 05494 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 05495 05496 return ret_val; 05497 } 05498 05499 /* yy_get_previous_state - get the state just before the EOB char was reached */ 05500 05501 static yy_state_type yy_get_previous_state (void) 05502 { 05503 register yy_state_type yy_current_state; 05504 register char *yy_cp; 05505 05506 yy_current_state = (yy_start); 05507 yy_current_state += YY_AT_BOL(); 05508 05509 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 05510 { 05511 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 05512 if ( yy_accept[yy_current_state] ) 05513 { 05514 (yy_last_accepting_state) = yy_current_state; 05515 (yy_last_accepting_cpos) = yy_cp; 05516 } 05517 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 05518 { 05519 yy_current_state = (int) yy_def[yy_current_state]; 05520 if ( yy_current_state >= 2916 ) 05521 yy_c = yy_meta[(unsigned int) yy_c]; 05522 } 05523 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 05524 } 05525 05526 return yy_current_state; 05527 } 05528 05529 /* yy_try_NUL_trans - try to make a transition on the NUL character 05530 * 05531 * synopsis 05532 * next_state = yy_try_NUL_trans( current_state ); 05533 */ 05534 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 05535 { 05536 register int yy_is_jam; 05537 register char *yy_cp = (yy_c_buf_p); 05538 05539 register YY_CHAR yy_c = 1; 05540 if ( yy_accept[yy_current_state] ) 05541 { 05542 (yy_last_accepting_state) = yy_current_state; 05543 (yy_last_accepting_cpos) = yy_cp; 05544 } 05545 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 05546 { 05547 yy_current_state = (int) yy_def[yy_current_state]; 05548 if ( yy_current_state >= 2916 ) 05549 yy_c = yy_meta[(unsigned int) yy_c]; 05550 } 05551 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 05552 yy_is_jam = (yy_current_state == 2915); 05553 05554 return yy_is_jam ? 0 : yy_current_state; 05555 } 05556 05557 #ifndef YY_NO_INPUT 05558 #ifdef __cplusplus 05559 static int yyinput (void) 05560 #else 05561 static int input (void) 05562 #endif 05563 05564 { 05565 int c; 05566 05567 *(yy_c_buf_p) = (yy_hold_char); 05568 05569 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 05570 { 05571 /* yy_c_buf_p now points to the character we want to return. 05572 * If this occurs *before* the EOB characters, then it's a 05573 * valid NUL; if not, then we've hit the end of the buffer. 05574 */ 05575 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 05576 /* This was really a NUL. */ 05577 *(yy_c_buf_p) = '\0'; 05578 05579 else 05580 { /* need more input */ 05581 int offset = (yy_c_buf_p) - (yytext_ptr); 05582 ++(yy_c_buf_p); 05583 05584 switch ( yy_get_next_buffer( ) ) 05585 { 05586 case EOB_ACT_LAST_MATCH: 05587 /* This happens because yy_g_n_b() 05588 * sees that we've accumulated a 05589 * token and flags that we need to 05590 * try matching the token before 05591 * proceeding. But for input(), 05592 * there's no matching to consider. 05593 * So convert the EOB_ACT_LAST_MATCH 05594 * to EOB_ACT_END_OF_FILE. 05595 */ 05596 05597 /* Reset buffer status. */ 05598 yy_objectrestart(yy_objectin ); 05599 05600 /*FALLTHROUGH*/ 05601 05602 case EOB_ACT_END_OF_FILE: 05603 { 05604 if ( yy_objectwrap( ) ) 05605 return EOF; 05606 05607 if ( ! (yy_did_buffer_switch_on_eof) ) 05608 YY_NEW_FILE; 05609 #ifdef __cplusplus 05610 return yyinput(); 05611 #else 05612 return input(); 05613 #endif 05614 } 05615 05616 case EOB_ACT_CONTINUE_SCAN: 05617 (yy_c_buf_p) = (yytext_ptr) + offset; 05618 break; 05619 } 05620 } 05621 } 05622 05623 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 05624 *(yy_c_buf_p) = '\0'; /* preserve yy_objecttext */ 05625 (yy_hold_char) = *++(yy_c_buf_p); 05626 05627 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 05628 05629 return c; 05630 } 05631 #endif /* ifndef YY_NO_INPUT */ 05632 05638 void yy_objectrestart (FILE * input_file ) 05639 { 05640 05641 if ( ! YY_CURRENT_BUFFER ){ 05642 yy_objectensure_buffer_stack (); 05643 YY_CURRENT_BUFFER_LVALUE = 05644 yy_object_create_buffer(yy_objectin,YY_BUF_SIZE ); 05645 } 05646 05647 yy_object_init_buffer(YY_CURRENT_BUFFER,input_file ); 05648 yy_object_load_buffer_state( ); 05649 } 05650 05655 void yy_object_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 05656 { 05657 05658 /* TODO. We should be able to replace this entire function body 05659 * with 05660 * yy_objectpop_buffer_state(); 05661 * yy_objectpush_buffer_state(new_buffer); 05662 */ 05663 yy_objectensure_buffer_stack (); 05664 if ( YY_CURRENT_BUFFER == new_buffer ) 05665 return; 05666 05667 if ( YY_CURRENT_BUFFER ) 05668 { 05669 /* Flush out information for old buffer. */ 05670 *(yy_c_buf_p) = (yy_hold_char); 05671 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 05672 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 05673 } 05674 05675 YY_CURRENT_BUFFER_LVALUE = new_buffer; 05676 yy_object_load_buffer_state( ); 05677 05678 /* We don't actually know whether we did this switch during 05679 * EOF (yy_objectwrap()) processing, but the only time this flag 05680 * is looked at is after yy_objectwrap() is called, so it's safe 05681 * to go ahead and always set it. 05682 */ 05683 (yy_did_buffer_switch_on_eof) = 1; 05684 } 05685 05686 static void yy_object_load_buffer_state (void) 05687 { 05688 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 05689 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 05690 yy_objectin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 05691 (yy_hold_char) = *(yy_c_buf_p); 05692 } 05693 05700 YY_BUFFER_STATE yy_object_create_buffer (FILE * file, int size ) 05701 { 05702 YY_BUFFER_STATE b; 05703 05704 b = (YY_BUFFER_STATE) yy_objectalloc(sizeof( struct yy_buffer_state ) ); 05705 if ( ! b ) 05706 YY_FATAL_ERROR( "out of dynamic memory in yy_object_create_buffer()" ); 05707 05708 b->yy_buf_size = size; 05709 05710 /* yy_ch_buf has to be 2 characters longer than the size given because 05711 * we need to put in 2 end-of-buffer characters. 05712 */ 05713 b->yy_ch_buf = (char *) yy_objectalloc(b->yy_buf_size + 2 ); 05714 if ( ! b->yy_ch_buf ) 05715 YY_FATAL_ERROR( "out of dynamic memory in yy_object_create_buffer()" ); 05716 05717 b->yy_is_our_buffer = 1; 05718 05719 yy_object_init_buffer(b,file ); 05720 05721 return b; 05722 } 05723 05728 void yy_object_delete_buffer (YY_BUFFER_STATE b ) 05729 { 05730 05731 if ( ! b ) 05732 return; 05733 05734 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 05735 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 05736 05737 if ( b->yy_is_our_buffer ) 05738 yy_objectfree((void *) b->yy_ch_buf ); 05739 05740 yy_objectfree((void *) b ); 05741 } 05742 05743 #ifndef __cplusplus 05744 extern int isatty (int ); 05745 #endif /* __cplusplus */ 05746 05747 /* Initializes or reinitializes a buffer. 05748 * This function is sometimes called more than once on the same buffer, 05749 * such as during a yy_objectrestart() or at EOF. 05750 */ 05751 static void yy_object_init_buffer (YY_BUFFER_STATE b, FILE * file ) 05752 05753 { 05754 int oerrno = errno; 05755 05756 yy_object_flush_buffer(b ); 05757 05758 b->yy_input_file = file; 05759 b->yy_fill_buffer = 1; 05760 05761 /* If b is the current buffer, then yy_object_init_buffer was _probably_ 05762 * called from yy_objectrestart() or through yy_get_next_buffer. 05763 * In that case, we don't want to reset the lineno or column. 05764 */ 05765 if (b != YY_CURRENT_BUFFER){ 05766 b->yy_bs_lineno = 1; 05767 b->yy_bs_column = 0; 05768 } 05769 05770 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 05771 05772 errno = oerrno; 05773 } 05774 05779 void yy_object_flush_buffer (YY_BUFFER_STATE b ) 05780 { 05781 if ( ! b ) 05782 return; 05783 05784 b->yy_n_chars = 0; 05785 05786 /* We always need two end-of-buffer characters. The first causes 05787 * a transition to the end-of-buffer state. The second causes 05788 * a jam in that state. 05789 */ 05790 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 05791 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 05792 05793 b->yy_buf_pos = &b->yy_ch_buf[0]; 05794 05795 b->yy_at_bol = 1; 05796 b->yy_buffer_status = YY_BUFFER_NEW; 05797 05798 if ( b == YY_CURRENT_BUFFER ) 05799 yy_object_load_buffer_state( ); 05800 } 05801 05808 void yy_objectpush_buffer_state (YY_BUFFER_STATE new_buffer ) 05809 { 05810 if (new_buffer == NULL) 05811 return; 05812 05813 yy_objectensure_buffer_stack(); 05814 05815 /* This block is copied from yy_object_switch_to_buffer. */ 05816 if ( YY_CURRENT_BUFFER ) 05817 { 05818 /* Flush out information for old buffer. */ 05819 *(yy_c_buf_p) = (yy_hold_char); 05820 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 05821 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 05822 } 05823 05824 /* Only push if top exists. Otherwise, replace top. */ 05825 if (YY_CURRENT_BUFFER) 05826 (yy_buffer_stack_top)++; 05827 YY_CURRENT_BUFFER_LVALUE = new_buffer; 05828 05829 /* copied from yy_object_switch_to_buffer. */ 05830 yy_object_load_buffer_state( ); 05831 (yy_did_buffer_switch_on_eof) = 1; 05832 } 05833 05838 void yy_objectpop_buffer_state (void) 05839 { 05840 if (!YY_CURRENT_BUFFER) 05841 return; 05842 05843 yy_object_delete_buffer(YY_CURRENT_BUFFER ); 05844 YY_CURRENT_BUFFER_LVALUE = NULL; 05845 if ((yy_buffer_stack_top) > 0) 05846 --(yy_buffer_stack_top); 05847 05848 if (YY_CURRENT_BUFFER) { 05849 yy_object_load_buffer_state( ); 05850 (yy_did_buffer_switch_on_eof) = 1; 05851 } 05852 } 05853 05854 /* Allocates the stack if it does not exist. 05855 * Guarantees space for at least one push. 05856 */ 05857 static void yy_objectensure_buffer_stack (void) 05858 { 05859 int num_to_alloc; 05860 05861 if (!(yy_buffer_stack)) { 05862 05863 /* First allocation is just for 2 elements, since we don't know if this 05864 * scanner will even need a stack. We use 2 instead of 1 to avoid an 05865 * immediate realloc on the next call. 05866 */ 05867 num_to_alloc = 1; 05868 (yy_buffer_stack) = (struct yy_buffer_state**)yy_objectalloc 05869 (num_to_alloc * sizeof(struct yy_buffer_state*) 05870 ); 05871 if ( ! (yy_buffer_stack) ) 05872 YY_FATAL_ERROR( "out of dynamic memory in yy_objectensure_buffer_stack()" ); 05873 05874 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 05875 05876 (yy_buffer_stack_max) = num_to_alloc; 05877 (yy_buffer_stack_top) = 0; 05878 return; 05879 } 05880 05881 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 05882 05883 /* Increase the buffer to prepare for a possible push. */ 05884 int grow_size = 8 /* arbitrary grow size */; 05885 05886 num_to_alloc = (yy_buffer_stack_max) + grow_size; 05887 (yy_buffer_stack) = (struct yy_buffer_state**)yy_objectrealloc 05888 ((yy_buffer_stack), 05889 num_to_alloc * sizeof(struct yy_buffer_state*) 05890 ); 05891 if ( ! (yy_buffer_stack) ) 05892 YY_FATAL_ERROR( "out of dynamic memory in yy_objectensure_buffer_stack()" ); 05893 05894 /* zero only the new slots.*/ 05895 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 05896 (yy_buffer_stack_max) = num_to_alloc; 05897 } 05898 } 05899 05906 YY_BUFFER_STATE yy_object_scan_buffer (char * base, yy_size_t size ) 05907 { 05908 YY_BUFFER_STATE b; 05909 05910 if ( size < 2 || 05911 base[size-2] != YY_END_OF_BUFFER_CHAR || 05912 base[size-1] != YY_END_OF_BUFFER_CHAR ) 05913 /* They forgot to leave room for the EOB's. */ 05914 return 0; 05915 05916 b = (YY_BUFFER_STATE) yy_objectalloc(sizeof( struct yy_buffer_state ) ); 05917 if ( ! b ) 05918 YY_FATAL_ERROR( "out of dynamic memory in yy_object_scan_buffer()" ); 05919 05920 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 05921 b->yy_buf_pos = b->yy_ch_buf = base; 05922 b->yy_is_our_buffer = 0; 05923 b->yy_input_file = 0; 05924 b->yy_n_chars = b->yy_buf_size; 05925 b->yy_is_interactive = 0; 05926 b->yy_at_bol = 1; 05927 b->yy_fill_buffer = 0; 05928 b->yy_buffer_status = YY_BUFFER_NEW; 05929 05930 yy_object_switch_to_buffer(b ); 05931 05932 return b; 05933 } 05934 05943 YY_BUFFER_STATE yy_object_scan_string (yyconst char * yystr ) 05944 { 05945 05946 return yy_object_scan_bytes(yystr,strlen(yystr) ); 05947 } 05948 05956 YY_BUFFER_STATE yy_object_scan_bytes (yyconst char * yybytes, int _yybytes_len ) 05957 { 05958 YY_BUFFER_STATE b; 05959 char *buf; 05960 yy_size_t n; 05961 int i; 05962 05963 /* Get memory for full buffer, including space for trailing EOB's. */ 05964 n = _yybytes_len + 2; 05965 buf = (char *) yy_objectalloc(n ); 05966 if ( ! buf ) 05967 YY_FATAL_ERROR( "out of dynamic memory in yy_object_scan_bytes()" ); 05968 05969 for ( i = 0; i < _yybytes_len; ++i ) 05970 buf[i] = yybytes[i]; 05971 05972 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 05973 05974 b = yy_object_scan_buffer(buf,n ); 05975 if ( ! b ) 05976 YY_FATAL_ERROR( "bad buffer in yy_object_scan_bytes()" ); 05977 05978 /* It's okay to grow etc. this buffer, and we should throw it 05979 * away when we're done. 05980 */ 05981 b->yy_is_our_buffer = 1; 05982 05983 return b; 05984 } 05985 05986 static void yy_push_state (int new_state ) 05987 { 05988 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) 05989 { 05990 yy_size_t new_size; 05991 05992 (yy_start_stack_depth) += YY_START_STACK_INCR; 05993 new_size = (yy_start_stack_depth) * sizeof( int ); 05994 05995 if ( ! (yy_start_stack) ) 05996 (yy_start_stack) = (int *) yy_objectalloc(new_size ); 05997 05998 else 05999 (yy_start_stack) = (int *) yy_objectrealloc((void *) (yy_start_stack),new_size ); 06000 06001 if ( ! (yy_start_stack) ) 06002 YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); 06003 } 06004 06005 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; 06006 06007 BEGIN(new_state); 06008 } 06009 06010 static void yy_pop_state (void) 06011 { 06012 if ( --(yy_start_stack_ptr) < 0 ) 06013 YY_FATAL_ERROR( "start-condition stack underflow" ); 06014 06015 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); 06016 } 06017 06018 #ifndef YY_EXIT_FAILURE 06019 #define YY_EXIT_FAILURE 2 06020 #endif 06021 06022 static void yy_fatal_error (yyconst char* msg ) 06023 { 06024 (void) fprintf( stderr, "%s\n", msg ); 06025 exit( YY_EXIT_FAILURE ); 06026 } 06027 06028 /* Redefine yyless() so it works in section 3 code. */ 06029 06030 #undef yyless 06031 #define yyless(n) \ 06032 do \ 06033 { \ 06034 /* Undo effects of setting up yy_objecttext. */ \ 06035 int yyless_macro_arg = (n); \ 06036 YY_LESS_LINENO(yyless_macro_arg);\ 06037 yy_objecttext[yy_objectleng] = (yy_hold_char); \ 06038 (yy_c_buf_p) = yy_objecttext + yyless_macro_arg; \ 06039 (yy_hold_char) = *(yy_c_buf_p); \ 06040 *(yy_c_buf_p) = '\0'; \ 06041 yy_objectleng = yyless_macro_arg; \ 06042 } \ 06043 while ( 0 ) 06044 06045 /* Accessor methods (get/set functions) to struct members. */ 06046 06050 int yy_objectget_lineno (void) 06051 { 06052 06053 return yy_objectlineno; 06054 } 06055 06059 FILE *yy_objectget_in (void) 06060 { 06061 return yy_objectin; 06062 } 06063 06067 FILE *yy_objectget_out (void) 06068 { 06069 return yy_objectout; 06070 } 06071 06075 int yy_objectget_leng (void) 06076 { 06077 return yy_objectleng; 06078 } 06079 06084 char *yy_objectget_text (void) 06085 { 06086 return yy_objecttext; 06087 } 06088 06093 void yy_objectset_lineno (int line_number ) 06094 { 06095 06096 yy_objectlineno = line_number; 06097 } 06098 06105 void yy_objectset_in (FILE * in_str ) 06106 { 06107 yy_objectin = in_str ; 06108 } 06109 06110 void yy_objectset_out (FILE * out_str ) 06111 { 06112 yy_objectout = out_str ; 06113 } 06114 06115 int yy_objectget_debug (void) 06116 { 06117 return yy_object_flex_debug; 06118 } 06119 06120 void yy_objectset_debug (int bdebug ) 06121 { 06122 yy_object_flex_debug = bdebug ; 06123 } 06124 06125 static int yy_init_globals (void) 06126 { 06127 /* Initialization is the same as for the non-reentrant scanner. 06128 * This function is called from yy_objectlex_destroy(), so don't allocate here. 06129 */ 06130 06131 (yy_buffer_stack) = 0; 06132 (yy_buffer_stack_top) = 0; 06133 (yy_buffer_stack_max) = 0; 06134 (yy_c_buf_p) = (char *) 0; 06135 (yy_init) = 0; 06136 (yy_start) = 0; 06137 06138 (yy_start_stack_ptr) = 0; 06139 (yy_start_stack_depth) = 0; 06140 (yy_start_stack) = NULL; 06141 06142 /* Defined in main.c */ 06143 #ifdef YY_STDINIT 06144 yy_objectin = stdin; 06145 yy_objectout = stdout; 06146 #else 06147 yy_objectin = (FILE *) 0; 06148 yy_objectout = (FILE *) 0; 06149 #endif 06150 06151 /* For future reference: Set errno on error, since we are called by 06152 * yy_objectlex_init() 06153 */ 06154 return 0; 06155 } 06156 06157 /* yy_objectlex_destroy is for both reentrant and non-reentrant scanners. */ 06158 int yy_objectlex_destroy (void) 06159 { 06160 06161 /* Pop the buffer stack, destroying each element. */ 06162 while(YY_CURRENT_BUFFER){ 06163 yy_object_delete_buffer(YY_CURRENT_BUFFER ); 06164 YY_CURRENT_BUFFER_LVALUE = NULL; 06165 yy_objectpop_buffer_state(); 06166 } 06167 06168 /* Destroy the stack itself. */ 06169 yy_objectfree((yy_buffer_stack) ); 06170 (yy_buffer_stack) = NULL; 06171 06172 /* Destroy the start condition stack. */ 06173 yy_objectfree((yy_start_stack) ); 06174 (yy_start_stack) = NULL; 06175 06176 /* Reset the globals. This is important in a non-reentrant scanner so the next time 06177 * yy_objectlex() is called, initialization will occur. */ 06178 yy_init_globals( ); 06179 06180 return 0; 06181 } 06182 06183 /* 06184 * Internal utility routines. 06185 */ 06186 06187 #ifndef yytext_ptr 06188 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) 06189 { 06190 register int i; 06191 for ( i = 0; i < n; ++i ) 06192 s1[i] = s2[i]; 06193 } 06194 #endif 06195 06196 #ifdef YY_NEED_STRLEN 06197 static int yy_flex_strlen (yyconst char * s ) 06198 { 06199 register int n; 06200 for ( n = 0; s[n]; ++n ) 06201 ; 06202 06203 return n; 06204 } 06205 #endif 06206 06207 void *yy_objectalloc (yy_size_t size ) 06208 { 06209 return (void *) malloc( size ); 06210 } 06211 06212 void *yy_objectrealloc (void * ptr, yy_size_t size ) 06213 { 06214 /* The cast to (char *) in the following accommodates both 06215 * implementations that use char* generic pointers, and those 06216 * that use void* generic pointers. It works with the latter 06217 * because both ANSI C and C++ allow castless assignment from 06218 * any pointer type to void*, and deal with argument conversions 06219 * as though doing an assignment. 06220 */ 06221 return (void *) realloc( (char *) ptr, size ); 06222 } 06223 06224 void yy_objectfree (void * ptr ) 06225 { 06226 free( (char *) ptr ); /* see yy_objectrealloc() for (char *) cast */ 06227 } 06228 06229 #define YYTABLES_NAME "yytables" 06230 06231 #line 896 "src/loaders/object.l" 06232 06233 06234 06239 int yyerror(char *s) 06240 { 06241 LOG(llevBug, "%s: %s\n", s, yy_objecttext); 06242 return -1; 06243 } 06244 06253 static char *yval() 06254 { 06255 static char *em = ""; 06256 char *cp, *end; 06257 06258 /* First skip over start of line, like animation or name */ 06259 for (cp = yy_objecttext; *cp != ' '; cp++) 06260 { 06261 if (*cp == '\0') 06262 { 06263 return em; 06264 } 06265 } 06266 06267 /* Skip over whitespace */ 06268 for (; *cp == ' '; cp++) 06269 { 06270 if (*cp == '\0') 06271 { 06272 return em; 06273 } 06274 } 06275 06276 /* Get last character before null and strip 06277 * off trailing whitespace. */ 06278 for (end = cp + strlen(cp) - 1; *end == ' ' || *end == 0x0A || *end == 0x0D; end--) 06279 { 06280 if (end == cp) 06281 { 06282 return em; 06283 } 06284 06285 *end = '\0'; 06286 } 06287 06288 return cp; 06289 } 06290 06291 /* Buffer functions - needed to make load_object() recursive save. */ 06292 void delete_loader_buffer(void *buffer) 06293 { 06294 if (buffer) 06295 { 06296 yy_object_delete_buffer(buffer); 06297 } 06298 else 06299 { 06300 yy_object_delete_buffer(YY_CURRENT_BUFFER); 06301 } 06302 06303 cur_buffer = NULL; 06304 } 06305 06306 void *create_loader_buffer(void *fp) 06307 { 06308 cur_buffer = yy_object_create_buffer(fp,YY_BUF_SIZE); 06309 yy_object_switch_to_buffer(cur_buffer); 06310 06311 return cur_buffer; 06312 } 06313 06329 int load_object(void *fp, object *op, void *mybuffer, int bufstate, int map_flags) 06330 { 06331 int retval = 0; 06332 float old_sleft; 06333 char inbuf[HUGE_BUF]; 06334 object *items[MAXDEPTH]; 06335 int depth = 0; 06336 06337 /* At this point we perhaps have an "arch" parse or an "object" parse 06338 * - we don't know. "arch" parse means, arches are loaded - we hit an 06339 * arch command and pre-load our object data - then we go on and 06340 * parse the difference in. 06341 * 06342 * If we hit an "object" command, we had outside this function 06343 * pre-loaded the arch. 06344 * 06345 * In the first case, the next two values are undefined - in the last 06346 * case, these values are the arch pre sets. We need to track this 06347 * down to adjust for the "real in-game" object the right speed and 06348 * speed_left. */ 06349 old_sleft = op->speed_left; 06350 /* We assume an "arch" load as default */ 06351 object_load_flag = 0; 06352 06353 items[0] = op; 06354 art_amask = NULL; 06355 06356 if (bufstate == LO_REPEAT) 06357 { 06358 /* be sure we work on the right buffer */ 06359 if (cur_buffer != mybuffer) 06360 { 06361 cur_buffer = mybuffer; 06362 yy_object_switch_to_buffer(mybuffer); 06363 } 06364 06365 retval = lex_load(&depth, items, MAXDEPTH, map_flags, 0); 06366 } 06367 else if (bufstate == LO_MEMORYMODE) 06368 { 06369 char *strptr = (char *) fp; 06370 YY_BUFFER_STATE yybufstate; 06371 int lcount = 0; 06372 06373 /* We are object load but object is not called */ 06374 object_load_flag = 1; 06375 06376 /* We can be sure this will work - InitArtifact has tested this 06377 * before. */ 06378 while (1) 06379 { 06380 strptr += lcount; 06381 /* We can even put this value at string start to save the 06382 * strlen */ 06383 lcount = strlen(strptr) + 1; 06384 yybufstate = yy_object_scan_string(strptr); 06385 /* Hopefully we have here an "end" - or we stay in this while 06386 * for a bit. */ 06387 retval = lex_load(&depth, items, MAXDEPTH, map_flags, 0); 06388 yy_object_delete_buffer(yybufstate); 06389 06390 if (retval == LL_NORMAL) 06391 { 06392 break; 06393 } 06394 } 06395 06396 /* Be sure we work on the right buffer */ 06397 if (cur_buffer) 06398 { 06399 yy_object_switch_to_buffer(cur_buffer); 06400 } 06401 } 06402 else 06403 { 06404 YY_BUFFER_STATE yybufstate; 06405 06406 while (fgets(inbuf, sizeof(inbuf) - 3, (FILE *) fp)) 06407 { 06408 yybufstate = yy_object_scan_string(inbuf); 06409 retval = lex_load(&depth, items, MAXDEPTH, map_flags, 1); 06410 yy_object_delete_buffer(yybufstate); 06411 06412 if (retval == LL_NORMAL) 06413 { 06414 /* Be sure we work on the right buffer */ 06415 if (cur_buffer) 06416 { 06417 yy_object_switch_to_buffer(cur_buffer); 06418 } 06419 06420 if (depth == 0) 06421 { 06422 return retval; 06423 } 06424 else 06425 { 06426 depth--; 06427 } 06428 } 06429 } 06430 06431 LOG(llevDebug, "Got EOF while scanning strings (%d)\n", retval); 06432 06433 /* Be sure we work on the right buffer */ 06434 if (cur_buffer) 06435 { 06436 yy_object_switch_to_buffer(cur_buffer); 06437 } 06438 06439 return LL_EOF; 06440 } 06441 06442 /* We set here the material real values. 06443 * We do: if item_quality == 0 AND material defines a base 06444 * material, then use material_real to set quality and condition. 06445 * So, we don't set it for floors or or some other objects which 06446 * don't need it. */ 06447 if (op->material && !op->item_quality) 06448 { 06449 op->item_quality = material_real[op->material_real].quality; 06450 op->item_condition = op->item_quality; 06451 } 06452 06453 /* OK, now we have our old speed values and our new ones. */ 06454 if (!(map_flags & MAP_STYLE)) 06455 { 06456 /* If set, our old speed values comes from a valid source 06457 * (arches?) outside. */ 06458 if (object_load_flag) 06459 { 06460 /* Only change something if we: 06461 * 1. Don't have speed_left set in the loading, or 06462 * 2. We have negative speed. */ 06463 if (old_sleft == op->speed_left && op->speed < 0.0f) 06464 { 06465 /* If we now have a negative speed, use default arch 06466 * speed left for new random set */ 06467 if (op->speed < 0.0f) 06468 { 06469 op->speed_left = op->speed_left + (float) (RANDOM() % 90) / 100.0f; 06470 } 06471 } 06472 } 06473 /* arch load... perhaps a map */ 06474 else 06475 { 06476 /* Only do this when we have not loaded a fix speed_left and 06477 * speed is lower than zero. */ 06478 if (op->speed < 0.0f && op->speed_left == op->arch->clone.speed_left) 06479 { 06480 op->speed_left = op->speed_left + (float)(RANDOM() % 90) / 100.0f; 06481 } 06482 } 06483 06484 if (art_amask) 06485 { 06486 give_artifact_abilities(op, art_amask); 06487 } 06488 06489 update_ob_speed(op); 06490 06491 if (object_initializers[op->type]) 06492 { 06493 object_initializers[op->type](op); 06494 } 06495 } 06496 06497 /*LOG(llevDebug," load completed, object=%s %s (%d - %d)\n", op->name, op->title, op->item_quality, op->item_condition);*/ 06498 return retval; 06499 } 06500 06509 int set_variable(object *op, char *buf) 06510 { 06511 YY_BUFFER_STATE yybufstate, yycurbuf = YY_CURRENT_BUFFER; 06512 int retval, depth; 06513 object *items[MAXDEPTH]; 06514 06515 yy_push_state(INITIAL); 06516 yybufstate = yy_object_scan_string(buf); 06517 06518 items[0] = op; 06519 depth = 0; 06520 retval = lex_load(&depth, items, MAXDEPTH, 0, 0); 06521 06522 if (yycurbuf) 06523 { 06524 yy_object_switch_to_buffer(yycurbuf); 06525 } 06526 06527 yy_object_delete_buffer(yybufstate); 06528 yy_pop_state(); 06529 06530 return retval; 06531 } 06532 06534 #define ADD_STRINGLINE_ENTRY(sb__, entryname__, entryvalue__) do {\ 06535 stringbuffer_append_string(sb__, entryname__);\ 06536 stringbuffer_append_string(sb__, entryvalue__);\ 06537 stringbuffer_append_string(sb__, "\n");\ 06538 } while (0) 06539 06540 #define FAST_SAVE_LONG(sb__, entryname__, entryvalue__) \ 06541 stringbuffer_append_printf(sb__, "%s%ld\n", entryname__, (long int) entryvalue__) 06542 06543 #define FAST_SAVE_DOUBLE(sb__, entryname__, entryvalue__) \ 06544 stringbuffer_append_printf(sb__, "%s%f\n", entryname__, entryvalue__) 06545 06554 void get_ob_diff(StringBuffer *sb, object *op, object *op2) 06555 { 06556 key_value *my_field, *arch_field; 06557 int tmp; 06558 06559 /* This saves the key/value lists. We do it first so that any 06560 * keys that match field names will be overwritten by the loader. */ 06561 for (my_field = op->key_values; my_field; my_field = my_field->next) 06562 { 06563 /* Find the field in the opposing member. */ 06564 arch_field = object_get_key_link(op2, my_field->key); 06565 06566 /* If there's no partnering field, or it's got a different value, 06567 * save our field. */ 06568 if (arch_field == NULL || my_field->value != arch_field->value) 06569 { 06570 stringbuffer_append_string(sb, my_field->key); 06571 stringbuffer_append_string(sb, " "); 06572 06573 if (my_field->value) 06574 { 06575 stringbuffer_append_string(sb, my_field->value); 06576 } 06577 06578 stringbuffer_append_string(sb, "\n"); 06579 } 06580 } 06581 06582 if (op->name && op->name != op2->name) 06583 { 06584 ADD_STRINGLINE_ENTRY(sb, "name ", op->name); 06585 } 06586 06587 if (op->custom_name && op->custom_name != op2->custom_name) 06588 { 06589 ADD_STRINGLINE_ENTRY(sb, "custom_name ", op->custom_name); 06590 } 06591 06592 if (op->title && op->title != op2->title) 06593 { 06594 ADD_STRINGLINE_ENTRY(sb, "title ", op->title); 06595 } 06596 06597 if (op->race && op->race != op2->race) 06598 { 06599 ADD_STRINGLINE_ENTRY(sb, "race ", op->race); 06600 } 06601 06602 if (op->slaying && op->slaying != op2->slaying) 06603 { 06604 ADD_STRINGLINE_ENTRY(sb, "slaying ", op->slaying); 06605 } 06606 06607 if (op->msg && op->msg != op2->msg) 06608 { 06609 stringbuffer_append_string(sb, "msg\n"); 06610 stringbuffer_append_string(sb, op->msg); 06611 stringbuffer_append_string(sb, "\nendmsg\n"); 06612 } 06613 06614 if (op->artifact && op->artifact != op2->artifact) 06615 { 06616 ADD_STRINGLINE_ENTRY(sb, "artifact ", op->artifact); 06617 } 06618 06619 if (op->other_arch != op2->other_arch && op->other_arch != NULL && op->other_arch->name) 06620 { 06621 ADD_STRINGLINE_ENTRY(sb, "other_arch ", op->other_arch->name); 06622 } 06623 06624 if (op->face != op2->face) 06625 { 06626 ADD_STRINGLINE_ENTRY(sb, "face ", op->face->name); 06627 } 06628 06629 if (op->inv_face != op2->inv_face) 06630 { 06631 ADD_STRINGLINE_ENTRY(sb, "inv_face ", op->inv_face->name); 06632 } 06633 06634 if (op->animation_id != op2->animation_id) 06635 { 06636 if (op->animation_id) 06637 { 06638 ADD_STRINGLINE_ENTRY(sb, "animation ", animations[GET_ANIM_ID(op)].name); 06639 } 06640 else 06641 { 06642 stringbuffer_append_string(sb, "animation NONE\n"); 06643 } 06644 } 06645 06646 if (op->inv_animation_id != op2->inv_animation_id) 06647 { 06648 if (op->inv_animation_id) 06649 { 06650 ADD_STRINGLINE_ENTRY(sb, "inv_animation ", animations[GET_INV_ANIM_ID(op)].name); 06651 } 06652 else 06653 { 06654 stringbuffer_append_string(sb, "inv_animation NONE\n"); 06655 } 06656 } 06657 06658 if (op->anim_speed != op2->anim_speed) 06659 { 06660 FAST_SAVE_LONG(sb, "anim_speed ", op->anim_speed); 06661 } 06662 06663 if (op->stats.wc_range != op2->stats.wc_range) 06664 { 06665 FAST_SAVE_LONG(sb, "wc_range ", op->stats.wc_range); 06666 } 06667 06668 if (op->stats.Str != op2->stats.Str) 06669 { 06670 FAST_SAVE_LONG(sb, "Str ", op->stats.Str); 06671 } 06672 06673 if (op->stats.Dex != op2->stats.Dex) 06674 { 06675 FAST_SAVE_LONG(sb, "Dex ", op->stats.Dex); 06676 } 06677 06678 if (op->stats.Con != op2->stats.Con) 06679 { 06680 FAST_SAVE_LONG(sb, "Con ", op->stats.Con); 06681 } 06682 06683 if (op->stats.Wis != op2->stats.Wis) 06684 { 06685 FAST_SAVE_LONG(sb, "Wis ", op->stats.Wis); 06686 } 06687 06688 if (op->stats.Pow != op2->stats.Pow) 06689 { 06690 FAST_SAVE_LONG(sb, "Pow ", op->stats.Pow); 06691 } 06692 06693 if (op->stats.Cha != op2->stats.Cha) 06694 { 06695 FAST_SAVE_LONG(sb, "Cha ", op->stats.Cha); 06696 } 06697 06698 if (op->stats.Int != op2->stats.Int) 06699 { 06700 FAST_SAVE_LONG(sb, "Int ", op->stats.Int); 06701 } 06702 06703 if (op->stats.hp != op2->stats.hp) 06704 { 06705 FAST_SAVE_LONG(sb, "hp ", op->stats.hp); 06706 } 06707 06708 if (op->stats.maxhp != op2->stats.maxhp) 06709 { 06710 FAST_SAVE_LONG(sb, "maxhp ", op->stats.maxhp); 06711 } 06712 06713 if (op->stats.sp != op2->stats.sp) 06714 { 06715 FAST_SAVE_LONG(sb, "sp ", op->stats.sp); 06716 } 06717 06718 if (op->stats.maxsp != op2->stats.maxsp) 06719 { 06720 FAST_SAVE_LONG(sb, "maxsp ", op->stats.maxsp); 06721 } 06722 06723 if (op->stats.grace != op2->stats.grace) 06724 { 06725 FAST_SAVE_LONG(sb, "grace ", op->stats.grace); 06726 } 06727 06728 if (op->stats.maxgrace != op2->stats.maxgrace) 06729 { 06730 FAST_SAVE_LONG(sb, "maxgrace ", op->stats.maxgrace); 06731 } 06732 06733 if (op->stats.exp != op2->stats.exp) 06734 { 06735 stringbuffer_append_printf(sb, "exp %"FMT64"\n", op->stats.exp); 06736 } 06737 06738 if (op->stats.food != op2->stats.food) 06739 { 06740 FAST_SAVE_LONG(sb, "food ", op->stats.food); 06741 } 06742 06743 if (op->stats.dam != op2->stats.dam) 06744 { 06745 FAST_SAVE_LONG(sb, "dam ", op->stats.dam); 06746 } 06747 06748 if (op->stats.wc != op2->stats.wc) 06749 { 06750 FAST_SAVE_LONG(sb, "wc ", op->stats.wc); 06751 } 06752 06753 if (op->stats.ac != op2->stats.ac) 06754 { 06755 FAST_SAVE_LONG(sb, "ac ", op->stats.ac); 06756 } 06757 06758 if (op->x != op2->x) 06759 { 06760 FAST_SAVE_LONG(sb, "x ", op->x); 06761 } 06762 06763 if (op->z != op2->z) 06764 { 06765 FAST_SAVE_LONG(sb, "z ", op->z); 06766 } 06767 06768 if (op->y != op2->y) 06769 { 06770 FAST_SAVE_LONG(sb, "y ", op->y); 06771 } 06772 06773 if (op->zoom != op2->zoom) 06774 { 06775 FAST_SAVE_LONG(sb, "zoom ", op->zoom); 06776 } 06777 06778 if (op->align != op2->align) 06779 { 06780 FAST_SAVE_LONG(sb, "align ", op->align); 06781 } 06782 06783 if (op->alpha != op2->alpha) 06784 { 06785 FAST_SAVE_LONG(sb, "alpha ", op->alpha); 06786 } 06787 06788 if (op->rotate != op2->rotate) 06789 { 06790 FAST_SAVE_LONG(sb, "rotate ", op->rotate); 06791 } 06792 06793 if (op->speed != op2->speed) 06794 { 06795 FAST_SAVE_DOUBLE(sb, "speed ", op->speed); 06796 } 06797 06798 if (op->speed_left != op2->speed_left || op->speed_left) 06799 { 06800 FAST_SAVE_DOUBLE(sb, "speed_left ", op->speed_left); 06801 } 06802 06803 if (op->material_real != op2->material_real) 06804 { 06805 FAST_SAVE_LONG(sb, "material_real ", op->material_real); 06806 } 06807 06808 if (op->sub_type != op2->sub_type) 06809 { 06810 FAST_SAVE_LONG(sb, "sub_type ", op->sub_type); 06811 } 06812 06813 if (op->terrain_flag != op2->terrain_flag) 06814 { 06815 FAST_SAVE_LONG(sb, "terrain_flag ", op->terrain_flag); 06816 } 06817 06818 if (op->terrain_type != op2->terrain_type) 06819 { 06820 FAST_SAVE_LONG(sb, "terrain_type ", op->terrain_type); 06821 } 06822 06823 if (op->item_quality != op2->item_quality) 06824 { 06825 FAST_SAVE_LONG(sb, "item_quality ", op->item_quality); 06826 } 06827 06828 if (op->item_condition != op2->item_condition) 06829 { 06830 FAST_SAVE_LONG(sb, "item_condition ", op->item_condition); 06831 } 06832 06833 if (op->item_race != op2->item_race) 06834 { 06835 FAST_SAVE_LONG(sb, "item_race ", op->item_race); 06836 } 06837 06838 if (op->item_skill != op2->item_skill) 06839 { 06840 FAST_SAVE_LONG(sb, "item_skill ", op->item_skill); 06841 } 06842 06843 if (op->item_level != op2->item_level) 06844 { 06845 FAST_SAVE_LONG(sb, "item_level ", op->item_level); 06846 } 06847 06848 if (op->weapon_speed != op2->weapon_speed) 06849 { 06850 FAST_SAVE_DOUBLE(sb, "weapon_speed ", op->weapon_speed); 06851 } 06852 06853 if (op->enemy_count != op2->enemy_count) 06854 { 06855 FAST_SAVE_LONG(sb, "object_int1 ", op->enemy_count); 06856 } 06857 06858 if (op->attacked_by_count != op2->attacked_by_count) 06859 { 06860 FAST_SAVE_LONG(sb, "object_int2 ", op->attacked_by_count); 06861 } 06862 06863 if (op->ownercount != op2->ownercount) 06864 { 06865 FAST_SAVE_LONG(sb, "object_int3 ", op->ownercount); 06866 } 06867 06868 if (op->move_status != op2->move_status) 06869 { 06870 FAST_SAVE_LONG(sb, "move_state ", op->move_status); 06871 } 06872 06873 if (op->move_type != op2->move_type) 06874 { 06875 FAST_SAVE_LONG(sb, "movement_type ", op->move_type); 06876 } 06877 06878 if (op->attack_move_type != op2->attack_move_type) 06879 { 06880 FAST_SAVE_LONG(sb, "attack_move_type ", op->attack_move_type); 06881 } 06882 06883 if (op->nrof != op2->nrof) 06884 { 06885 FAST_SAVE_LONG(sb, "nrof ", op->nrof); 06886 } 06887 06888 if (op->level != op2->level) 06889 { 06890 FAST_SAVE_LONG(sb, "level ", op->level); 06891 } 06892 06893 if (op->direction != op2->direction) 06894 { 06895 FAST_SAVE_LONG(sb, "direction ", op->direction); 06896 } 06897 06898 if (op->type != op2->type) 06899 { 06900 FAST_SAVE_LONG(sb, "type ", op->type); 06901 } 06902 06903 /* attack_save[] holds the attack form also for attack_xx */ 06904 for (tmp = 0; tmp < NROFATTACKS; tmp++) 06905 { 06906 if (op->attack[tmp] != op2->attack[tmp]) 06907 { 06908 stringbuffer_append_printf(sb, "attack_%s %d\n", attack_save[tmp], op->attack[tmp]); 06909 } 06910 } 06911 06912 for (tmp = 0; tmp < NROFATTACKS; tmp++) 06913 { 06914 if (op->protection[tmp] != op2->protection[tmp]) 06915 { 06916 stringbuffer_append_printf(sb, "protect_%s %d\n", attack_save[tmp], op->protection[tmp]); 06917 } 06918 } 06919 06920 if (op->layer != op2->layer) 06921 { 06922 FAST_SAVE_LONG(sb, "layer ", op->layer); 06923 } 06924 06925 if (op->path_attuned != op2->path_attuned) 06926 { 06927 FAST_SAVE_LONG(sb, "path_attuned ", op->path_attuned); 06928 } 06929 06930 if (op->path_repelled != op2->path_repelled) 06931 { 06932 FAST_SAVE_LONG(sb, "path_repelled ", op->path_repelled); 06933 } 06934 06935 if (op->path_denied != op2->path_denied) 06936 { 06937 FAST_SAVE_LONG(sb, "path_denied ", op->path_denied); 06938 } 06939 06940 if (op->material != op2->material) 06941 { 06942 FAST_SAVE_LONG(sb, "material ", op->material); 06943 } 06944 06945 if (op->value != op2->value) 06946 { 06947 stringbuffer_append_printf(sb, "value %"FMT64"\n", op->value); 06948 } 06949 06950 if (op->carrying != op2->carrying) 06951 { 06952 FAST_SAVE_LONG(sb, "carrying ", op->carrying); 06953 } 06954 06955 if (op->weight != op2->weight) 06956 { 06957 FAST_SAVE_LONG(sb, "weight ", op->weight); 06958 } 06959 06960 if (op->state != op2->state) 06961 { 06962 FAST_SAVE_LONG(sb, "state ", op->state); 06963 } 06964 06965 if (op->magic != op2->magic) 06966 { 06967 FAST_SAVE_LONG(sb, "magic ", op->magic); 06968 } 06969 06970 if (op->last_heal != op2->last_heal) 06971 { 06972 FAST_SAVE_LONG(sb, "last_heal ", op->last_heal); 06973 } 06974 06975 if (op->last_sp != op2->last_sp) 06976 { 06977 FAST_SAVE_LONG(sb, "last_sp ", op->last_sp); 06978 } 06979 06980 if (op->last_grace != op2->last_grace) 06981 { 06982 FAST_SAVE_LONG(sb, "last_grace ", op->last_grace); 06983 } 06984 06985 if (op->last_eat != op2->last_eat) 06986 { 06987 FAST_SAVE_LONG(sb, "last_eat ", op->last_eat); 06988 } 06989 06990 if (QUERY_FLAG(op, FLAG_IS_LINKED) && (tmp = get_button_value(op))) 06991 { 06992 FAST_SAVE_LONG(sb, "connected ", tmp); 06993 } 06994 06995 if (op->glow_radius != op2->glow_radius) 06996 { 06997 FAST_SAVE_LONG(sb, "glow_radius ", op->glow_radius); 06998 } 06999 07000 if (op->randomitems != op2->randomitems) 07001 { 07002 ADD_STRINGLINE_ENTRY(sb, "randomitems ", (op->randomitems ? op->randomitems->name : "none")); 07003 } 07004 07005 if (op->run_away != op2->run_away) 07006 { 07007 FAST_SAVE_LONG(sb, "run_away ", op->run_away); 07008 } 07009 07010 if (op->weight_limit != op2->weight_limit) 07011 { 07012 FAST_SAVE_LONG(sb, "container ", op->weight_limit); 07013 } 07014 07015 if (op->behavior != op2->behavior) 07016 { 07017 FAST_SAVE_LONG(sb, "behavior ", op->behavior); 07018 } 07019 07020 if (op->quickslot != op2->quickslot) 07021 { 07022 FAST_SAVE_LONG(sb, "quickslot ", op->quickslot); 07023 } 07024 07025 if (op->item_power != op2->item_power) 07026 { 07027 FAST_SAVE_LONG(sb, "item_power ", op->item_power); 07028 } 07029 07030 for (tmp = 0; tmp <= NUM_FLAGS; tmp++) 07031 { 07032 if (object_flag_names[tmp] && (QUERY_FLAG(op, tmp) != QUERY_FLAG(op2, tmp))) 07033 { 07034 ADD_STRINGLINE_ENTRY(sb, object_flag_names[tmp], QUERY_FLAG(op, tmp) ? " 1" : " 0"); 07035 } 07036 } 07037 } 07038 07047 void save_object(FILE *fp, object *op, int flag) 07048 { 07049 archetype *at; 07050 object *tmp, *old; 07051 StringBuffer *sb; 07052 char *cp; 07053 07054 /* Even if the object does have an owner, it would seem that we should 07055 * still save it. */ 07056 if (fp == NULL) 07057 { 07058 return; 07059 } 07060 07061 /* If it is unpaid and we don't want to save those, just return. */ 07062 if (!(flag & 1) && (QUERY_FLAG(op, FLAG_UNPAID))) 07063 { 07064 return; 07065 } 07066 07067 if ((at = op->arch) == NULL) 07068 { 07069 at = empty_archetype; 07070 } 07071 07072 fprintf(fp, "arch %s\n", at->name); 07073 07074 sb = stringbuffer_new(); 07075 get_ob_diff(sb, op, &at->clone); 07076 cp = stringbuffer_finish(sb); 07077 07078 fputs(cp, fp); 07079 free(cp); 07080 07081 /* Eneq(@csd.uu.se): Added this to allow containers being saved with contents */ 07082 old = NULL; 07083 07084 if (flag & 2) 07085 { 07086 for (tmp = op->inv; tmp; tmp = tmp->below) 07087 { 07088 save_object(fp, tmp, flag); 07089 } 07090 } 07091 /* Slightly different logic because tmp/op will be removed by 07092 * the save_object we call. So we just keep looking at op->inv 07093 * until there is nothing left. In theory, the variable old 07094 * should not be needed, as recursive loops shouldn't happen. */ 07095 else 07096 { 07097 while ((tmp = op->inv) != NULL) 07098 { 07099 if (old == tmp) 07100 { 07101 LOG(llevError, "Recursive loop in inventory\n"); 07102 break; 07103 } 07104 07105 save_object(fp, tmp, flag); 07106 old = tmp; 07107 } 07108 } 07109 07110 if (!(flag & 2)) 07111 { 07112 remove_ob(op); 07113 } 07114 07115 fprintf(fp, "end\n"); 07116 } 07117
1.7.4