Atrinik Server 2.5
loaders/object.c
Go to the documentation of this file.
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