Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
a8d92f6c55fbb218348211e60ac5f99589692c79
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 323
407 #define YY_END_OF_BUFFER 324
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[1800] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436       324,  322,   15,   10,   10,   15,   15,  302,   10,  302,
437         5,    6,    5,    8,    9,    8,  318,  310,  311,  319,
438
439       316,  319,  317,  321,  310,  311,  321,  322,   22,   10,
440        22,   22,   22,   20,   22,   26,   10,   26,   26,   26,
441       322,  322,   26,   37,   10,   37,   37,   37,   35,   37,
442        37,   37,  319,  318,   59,   10,   59,   59,   59,   57,
443        59,   59,   59,   59,   63,   10,   63,  322,   63,   82,
444        10,   82,   82,   82,   80,   82,   82,   82,   86,   10,
445        86,   95,   10,   95,   95,   95,   93,   95,   95,   99,
446        10,   99,   99,  322,   99,   99,  322,  322,   99,  322,
447        99,  322,   99,  120,   10,  120,  120,  120,  118,  120,
448       120,  120,  120,  120,  124,   10,  124,  124,  147,   10,
449
450       147,  147,  147,  145,  147,  147,  147,  147,  147,  147,
451       151,   10,  151,  158,   10,  158,  158,  158,  156,  158,
452       162,   10,  162,  187,   10,  187,  187,  187,  185,  187,
453       187,  187,  187,  191,   10,  191,  191,  200,   10,  200,
454       200,  200,  198,  200,  200,  204,   10,  204,  322,  204,
455       217,   10,  217,  217,  217,  215,  217,  217,  217,  221,
456        10,  221,  221,  228,   10,  228,  228,  228,  226,  228,
457       232,   10,  232,  245,   10,  245,  245,  245,  243,  245,
458       245,  245,  249,   10,  249,  249,  262,   10,  262,  262,
459       262,  260,  262,  262,  262,  262,  266,   10,  266,  322,
460
461       266,  273,   10,  273,  273,  273,  271,  273,  277,   10,
462       277,  284,   10,  284,  284,  284,  282,  284,  288,   10,
463       288,  288,  288,  297,   10,  297,  297,  297,  295,  297,
464       297,  301,   10,  301,   10,    0,    2,    2,    0,    4,
465         7,  313,  312,    0,    0,    0,    0,    0,    0,    0,
466        21,   23,   23,    0,    0,    0,    0,    0,    0,    0,
467         0,    0,    0,    0,    0,    0,    0,    0,   36,   38,
468        38,   38,   38,    0,    0,    0,   58,   60,   60,   60,
469        60,   60,   60,   60,    0,    0,   81,   83,   83,   83,
470        83,    0,   94,   96,   96,   96,    0,    0,    0,    0,
471
472         0,    0,    0,    0,    0,  119,  121,  121,  121,  121,
473       121,  121,    0,  146,  148,  148,  148,  148,  148,  148,
474       148,  148,  148,    0,  157,  159,  159,    0,  186,  188,
475       188,  188,  188,  188,  188,    0,  199,  201,  201,  201,
476         0,    0,  216,  218,  218,  218,  218,    0,  227,  229,
477       229,    0,  244,  246,  246,  246,  246,    0,  261,  263,
478       263,  263,  263,  263,    0,    0,  272,  274,  274,    0,
479       283,  285,  285,    0,    0,  296,  298,  298,  298,    0,
480         0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
481         0,    0,  320,    0,   23,    0,    0,   88,    0,    0,
482
483         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
484        87,    0,    0,    0,   38,    0,    0,   38,    0,    0,
485         0,  315,   60,    0,    0,   60,   60,   60,   60,    0,
486         0,    0,   83,   83,   83,    0,    0,    0,    0,   96,
487         0,    0,   88,    0,    0,    0,    0,   87,    0,    0,
488       121,    0,    0,  121,  121,  121,    0,    0,  148,    0,
489         0,    0,    0,  148,  148,  148,  148,  148,    0,    0,
490         0,    0,    0,    0,  188,    0,    0,  188,  188,  188,
491         0,    0,  201,  201,    0,    0,    0,  218,  218,  218,
492         0,    0,    0,    0,    0,    0,  246,  246,  246,    0,
493
494         0,  263,  263,  263,  263,    0,    0,    0,  274,    0,
495         0,    0,    0,    0,    0,    0,    0,    0,  298,    0,
496         0,    0,   14,    1,    0,    0,  308,    0,    0,    0,
497       305,  304,    0,    0,   23,    0,    0,   25,    0,   88,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,   87,    0,    0,    0,   38,    0,   30,
500        29,   38,    0,    0,    0,   40,    0,   60,    0,   44,
501        43,    0,    0,   60,    0,    0,   60,    0,    0,   62,
502         0,    0,   83,   83,   83,    0,    0,   85,    0,    0,
503        90,   89,   96,    0,    0,   98,    0,    0,    0,    0,
504
505         0,    0,    0,    0,  121,    0,  103,  102,  121,  121,
506       121,    0,    0,  123,    0,  148,  148,    0,  138,  137,
507         0,  128,  127,    0,    0,  148,  148,  148,  148,    0,
508         0,  150,    0,    0,  155,  154,    0,    0,  161,    0,
509       188,    0,  166,  165,  188,  188,  188,    0,    0,  190,
510         0,    0,    0,    0,    0,    0,    0,  203,    0,    0,
511         0,    0,  218,  218,    0,    0,    0,    0,  220,    0,
512         0,  225,  224,    0,    0,  231,    0,    0,    0,  246,
513       246,    0,    0,    0,    0,  248,    0,  263,  263,  263,
514       263,    0,    0,  265,    0,    0,  274,    0,    0,  276,
515
516         0,    0,  281,  280,    0,    0,  287,    0,    0,    0,
517       292,  291,  298,    0,    0,  300,    0,    0,    0,  309,
518       303,    0,    0,    0,   23,    0,    0,    0,    0,    0,
519         0,  100,  163,    0,    0,  289,    0,    0,    0,    0,
520         0,    0,    0,    0,    0,   38,    0,    0,   60,    0,
521        48,   47,    0,    0,    0,   46,   45,   60,    0,  290,
522        83,    0,    0,   83,    0,   96,    0,   97,    0,    0,
523       101,  164,    0,    0,    0,  121,  121,  121,  121,    0,
524       148,  148,    0,  140,  139,  148,  148,  148,  148,    0,
525         0,  188,  188,  188,  188,    0,    0,  197,  196,    0,
526
527       195,  194,    0,  163,    0,  210,  209,  218,  218,    0,
528       208,  207,    0,    0,    0,  238,  237,  246,  246,    0,
529       236,  235,    0,  263,    0,    0,  263,  263,    0,    0,
530       274,    0,    0,    0,  298,    0,    0,    0,    0,   12,
531         0,  306,  307,    0,   23,    0,    0,    0,    0,    0,
532         0,  100,  163,    0,    0,    0,  289,    0,  192,   28,
533         0,    0,   27,    0,    0,   32,   31,   38,    0,    0,
534        60,    0,   50,   49,   60,    0,  290,   83,    0,    0,
535         0,    0,    0,    0,   96,    0,    0,  101,  164,  193,
536       193,  192,  121,    0,    0,    0,    0,  121,  121,    0,
537
538         0,    0,  148,    0,    0,  148,  148,  148,    0,    0,
539       188,  188,  188,    0,    0,  188,    0,    0,    0,  218,
540       218,    0,    0,  246,  246,    0,  263,    0,  253,  252,
541       263,  263,    0,    0,    0,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,   11,    0,   23,    0,    0,
543         0,    0,    0,  279,    0,    0,    0,   41,  192,  152,
544        28,    0,  278,    0,   27,    0,    0,   38,    0,    0,
545        60,   60,    0,   83,    0,    0,    0,    0,    0,    0,
546         0,    0,    0,   77,   76,    0,   96,    0,    0,  193,
547       153,  121,    0,  105,  104,    0,    0,    0,  121,  121,
548
549         0,  122,    0,  142,  141,    0,    0,    0,  136,  135,
550         0,    0,  148,    0,    0,    0,    0,  188,  188,  188,
551         0,    0,    0,  188,    0,  189,    0,    0,    0,    0,
552         0,    0,    0,    0,    0,    0,    0,    0,    0,  263,
553       263,  263,    0,    0,    0,  270,  269,    0,    0,   42,
554         0,  294,  293,    0,  299,    0,    0,    0,    0,    0,
555         0,    0,  205,    0,    0,  126,  279,    0,    0,  251,
556        41,  152,    0,  278,  125,    0,  250,   38,    0,    0,
557        39,   60,   60,    0,    0,    0,    0,    0,    0,    0,
558         0,    0,    0,    0,    0,    0,    0,    0,    0,  206,
559
560         0,  153,  121,    0,    0,  121,    0,    0,    0,  144,
561       143,    0,  130,  129,    0,    0,    0,  132,  131,    0,
562         0,  188,    0,    0,  188,  188,    0,    0,  188,    0,
563       202,    0,    0,  214,  213,    0,  212,  211,    0,    0,
564         0,  242,  241,    0,  240,  239,    0,  263,  263,  263,
565         0,    0,    0,    0,   42,    0,    0,    0,   17,    0,
566        19,   18,    0,  205,  267,    0,  126,  222,   16,  251,
567         0,  125,    0,  250,   38,  314,   60,   60,    0,   61,
568         0,   79,   78,    0,    0,    0,    0,    0,    0,    0,
569         0,    0,    0,    0,    0,   92,   91,  206,    0,  121,
570
571         0,    0,    0,    0,  121,    0,  117,  116,    0,  134,
572       133,    0,    0,  160,  188,    0,  172,  171,  188,  188,
573         0,    0,    0,    0,  188,  223,    0,    0,    0,    0,
574         0,  263,  263,    0,  268,    0,    0,  286,    0,    0,
575         0,   17,    0,  267,    0,  222,   16,    0,    0,   38,
576         0,    0,   60,    0,    0,    0,    0,    0,    0,    0,
577         0,    0,    0,    0,    0,  121,    0,  111,    0,  110,
578       121,    0,  149,    0,    0,  188,  188,  188,    0,  176,
579         0,  175,  188,  223,    0,  219,    0,    0,    0,  255,
580       254,    0,    0,  263,    0,  264,  268,    0,    0,    0,
581
582         0,    0,   24,    0,    0,    0,   38,    0,    0,    0,
583        60,    0,    0,    0,    0,    0,    0,    0,    0,    0,
584         0,    0,    0,  121,  113,  112,    0,    0,    0,  168,
585       167,  188,  188,  188,  178,  177,    0,    0,    0,  230,
586         0,    0,  259,  258,    0,    0,    0,  275,    0,    0,
587         0,  233,    0,    0,    0,    0,    0,    0,    0,    0,
588        60,    0,    0,    0,    0,   69,    0,    0,    0,    0,
589        68,    0,  234,  121,    0,  115,  114,  188,  188,  188,
590         0,  180,  179,    0,    0,  257,  256,    0,    0,    0,
591       233,    0,    0,    0,   34,   33,    0,    0,    0,    0,
592
593        60,    0,    0,    0,    0,    0,    0,    0,    0,    0,
594       234,    0,    0,  121,  188,    0,    0,  188,    0,    0,
595         0,    0,    0,   65,   64,    0,    0,    0,    0,    0,
596         0,    0,    0,   75,    0,    0,    0,   74,    0,    0,
597         0,  107,  106,  121,  188,    0,  174,  173,  188,    0,
598       247,    0,    0,    0,    0,    0,    0,   65,   64,    0,
599         0,    0,    0,    0,   52,   51,    0,    0,    0,    0,
600         0,    0,    0,  121,    0,    0,    0,    0,    0,    0,
601         0,    0,    0,    0,    0,   56,    0,   55,   73,    0,
602         0,   72,    0,    0,    0,   84,  121,    0,  170,  169,
603
604         0,    0,    0,    0,    0,    0,   12,    0,   12,    0,
605         0,    0,   67,   71,   66,   70,  121,    0,    0,    0,
606         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
607         0,    0,    0,    0,    0,    0,   54,   53,    0,  109,
608       108,    0,    0,    0,    0,    0,   11,    0,    0,    0,
609         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
610         0,    0,    0,  182,    0,  181,    0,  184,  183,    0,
611         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
612         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
613         0,    0,    0,    0,    0,    0,    0,   13,    0
614
615     } ;
616
617 static yyconst flex_int32_t yy_ec[256] =
618     {   0,
619         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
620         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
621         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
622         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
623         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
624        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
625        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
626        16,   28,   29,   16,   30,   31,   32,   33,   34,   35,
627        16,   36,   37,   38,   16,   39,   40,   16,   41,   16,
628        42,    1,   43,    1,   44,    1,   45,   46,   47,   48,
629
630        49,   50,   51,   52,   53,   16,   54,   55,   56,   57,
631        58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
632        68,   16,    1,    1,    1,    1,    1,    1,    1,    1,
633         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
634         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
635         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
636         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
637         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
638         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
639         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
640
641         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
642         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
643         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
644         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
645         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
646         1,    1,    1,    1,    1
647     } ;
648
649 static yyconst flex_int32_t yy_meta[69] =
650     {   0,
651         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
652         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
653         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
654         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
655         5,    1,    1,    5,    9,    9,    9,    9,    9,    9,
656         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
657         5,    5,    5,    5,    5,    5,    5,    5
658     } ;
659
660 static yyconst flex_int16_t yy_base[2015] =
661     {   0,
662         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
663        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
664       104,  169,   75,   78,   83,  124,  127,  130,  133,  136,
665       189,  192,  195,  198,  201,  218,  221,  224,  242,  301,
666       320,  322,  365,  427,  262,  265,  268,  271,  275,  329,
667       332,  385,  489,  552,  388,  391,  615,  676,  394,  397,
668       447,  450,  453,  456,  459,  509,  512,  515,  518,  521,
669       572,  575,  578,  581,  584,  635,  638,  641,  644,  647,
670       696,  699,  702,  705,  708,  728,  731,  736,  754,  819,
671       774,  777,  780,  783,  786,  839,  842,  845,  884,    0,
672
673       848,  851,  952, 1005,  972,  975, 1058, 1120,  978,  981,
674       984, 1025, 1028, 1031, 1034, 1037, 1182, 1244, 1078, 1081,
675      1084, 1087, 1090, 1140, 1143, 1146, 1306, 1368, 1149, 1152,
676      1202, 1205, 1208, 1211, 1214, 1264, 1430, 1483, 1267, 1270,
677      1536, 1598, 1273, 1276, 1326, 1329, 1332, 1335, 1338, 1388,
678      1660, 1722, 1391, 1394, 1397, 1400, 1450, 1453, 1456, 1459,
679      1784, 1849, 1462, 1503, 1914, 1967, 1506, 1509, 1512, 1515,
680      1556, 1559, 1562, 1565, 2020, 2085, 1568, 1618,    0,    0,
681      4396, 6589, 6589,   95,  153,   29,   41, 6589,  156,   51,
682      6589, 6589, 4383, 6589, 6589, 4371, 6589, 4378, 4361, 1578,
683
684      6589, 6589, 6589, 6589, 4359, 4358, 4310,  147, 6589,  159,
685      4332,    0,  144, 6589, 4301, 6589,  227, 2146, 4302,  295,
686       229, 4333, 4285, 6589,  294, 4322,    0,  145, 6589, 4276,
687      4279, 4277,  334, 4277, 6589,  420, 4289,    0,  212, 6589,
688      4258, 4247,  292, 4227, 6589,  482,   82,  108,  173, 6589,
689       538, 4269,    0,  343, 6589, 4232, 4229, 4201, 6589,  542,
690       399, 6589,  545, 4241,    0,  405, 6589, 4211, 4200, 6589,
691       601, 1630, 1612, 4194,   31, 4226,   54,  131,  421,  600,
692        83, 4219,   28, 6589,  605, 4209,    0,  467, 6589, 4163,
693      4176, 4163, 4145, 4147, 6589,  667,  223,  228, 6589,  670,
694
695      4178,    0,  529, 6589,  172, 4149, 4148,  233, 4147, 4126,
696      6589,  739,  788, 6589,  748, 4157,    0,  530, 6589, 4127,
697      6589,  808,  853, 6589,  873, 4154,    0,  592, 6589, 4127,
698      4119, 4121,    8, 6589, 1112,  405,  407, 6589, 1115, 4144,
699         0,  593, 6589, 4094, 4094, 6589, 1174, 1576, 4141, 4097,
700      6589, 1177, 4130,    0,  723, 6589, 4082, 4077, 4076, 6589,
701      1231, 4124,  203, 6589, 1234, 4114,    0,  797, 6589, 4059,
702      6589, 1237, 1278, 6589, 1293, 4085,    0,  862, 6589, 4032,
703      4023, 4027, 6589, 1298, 4074,  347, 6589, 1301, 4054,    0,
704      1222, 6589, 4009, 4013, 4017, 4005, 6589, 1356,  758, 4055,
705
706       428, 6589, 1359, 4041,    0, 1346, 6589, 4014, 6589, 1362,
707      1402, 6589, 1418, 4037,    0, 1403, 6589, 3993, 6589, 1423,
708      1569, 3978,  268, 6589, 1587, 4018,    0, 1408, 6589, 3988,
709      3986, 6589, 1590, 1627, 1593,   18, 3963, 6589, 4018, 4007,
710      6589, 6589, 6589, 1630,  293, 3962, 3960, 3958, 4000, 3953,
711      6589,    0, 3945, 3943, 3963, 3938, 3929,  298, 3931, 3934,
712       153,  609, 3925,  421, 3947,  471, 3921,  420, 6589,    0,
713      3926, 1685, 3918,  371, 3901, 3942, 6589,    0, 3900, 1690,
714      3889, 3909, 3889, 3897, 3882,  605, 6589,    0, 3889, 3880,
715      3889, 3869, 6589,    0, 1696, 3863, 3904, 3887, 3845, 3853,
716
717      3853,  946, 3868,  999, 1052, 6589,    0, 3858, 1742, 3826,
718      3845, 3824, 3833, 6589,    0, 3839, 1747, 1750, 3816, 3778,
719      3794, 3793, 3790, 3788, 6589,    0, 1754, 3771, 6589,    0,
720      3768, 1804, 3761, 3777, 3767, 3755, 6589,    0, 3746, 3759,
721      3743, 3743, 6589,    0, 3724, 3741, 3736, 3760, 6589,    0,
722      1809, 3725, 6589,    0, 3705, 3723, 3718, 3714, 6589,    0,
723      3696, 3689, 3692, 3694, 3675, 3671, 6589,    0, 3676, 3684,
724      6589,    0, 1812, 3672, 1114, 6589,    0, 1815, 3662, 3655,
725      3692, 3698,  693, 3648, 6589, 1640,    0, 3644, 3637, 3676,
726      3675, 3632, 6589, 3643, 3625, 1818, 1875, 1623, 3634, 3612,
727
728      3606, 3611, 3605, 3608, 3619, 3604, 3593, 3585, 3602, 3582,
729      1714, 3572, 3586, 3572, 3579, 1869, 1833, 3566, 3594, 1878,
730      1881, 6589, 3567, 1934, 1900, 1941, 3558, 1944, 3565, 1987,
731      1991, 3543, 3544, 3550, 3550, 1994, 1997, 1947, 2040, 3532,
732      2048, 2105, 1717, 3529, 3524, 3512, 3503, 1779, 3501, 3500,
733      3509, 2000, 2051, 3511, 3496, 3512, 2062, 2111,  235, 2114,
734      2068, 2117, 2120, 2137, 3487, 3477, 3450, 3452, 2141, 2144,
735      2151, 2169, 2177, 2180, 3451, 2183, 2208, 3449, 3435, 3423,
736      2186, 2216, 2220, 2223, 2226, 2229, 3424, 2241, 2248, 2251,
737      2254, 2260, 2269, 2273, 2281, 2287, 2290, 2296, 2300, 2309,
738
739      2314, 3432, 3415, 3421, 3414, 2318, 2322, 3422, 3408, 2328,
740      2333, 2343, 2348, 2357, 2361, 3413, 2365, 2369, 3393, 2383,
741      2386, 3435, 6589, 6589,  337, 3398, 6589, 3433, 3416, 3368,
742      6589, 6589, 3364, 3346, 3355, 2389, 2393, 6589, 2396, 1703,
743      3344, 3327, 3345, 3326, 3319, 3296, 3302, 3287,  616, 3300,
744      3281, 3293, 3288, 1841, 3275, 3284,  677, 2408, 2419, 6589,
745      6589, 2427, 3305, 2430, 2433, 6589, 2436, 3259, 2455, 6589,
746      6589, 2441, 2463, 2471, 2474, 2480, 3271, 2492, 2495, 6589,
747      2498,  747, 3268, 2501, 3256, 2504, 2507, 6589, 2519, 2526,
748      6589, 6589, 3251, 2534, 2538, 6589, 2541, 3229, 3241, 3220,
749
750      3227, 3214, 3212, 3211, 3214, 2544, 6589, 6589, 3199, 3210,
751      3199, 2563, 2566, 6589, 2569, 3182, 3201, 2572, 6589, 6589,
752      2588, 6589, 6589, 2596, 2599, 3182, 3181, 3185, 3175, 2607,
753      2610, 6589, 2614, 2617, 6589, 6589, 2633, 2636, 6589, 2639,
754      3149, 2642, 6589, 6589, 3152, 3155, 3147, 2659, 2662, 6589,
755      2665, 2668, 2671, 2686, 2689, 2697, 2704, 6589, 2707, 3141,
756      2710, 2717, 3128, 3124, 2728, 2731, 2739, 2742, 6589, 2746,
757      2749, 6589, 6589, 2761, 2765, 6589, 2770, 2773, 2780, 3121,
758      3121, 2776, 2794, 2802, 2806, 6589, 2809, 3101, 2812, 3119,
759      3098, 2815, 2821, 6589, 2830, 3088, 3102, 2834, 2840, 6589,
760
761      2843, 2849, 6589, 6589, 2862, 2867, 6589, 2870, 3101, 2874,
762      6589, 6589, 3099, 2882, 2889, 6589, 2893,  572, 2896, 6589,
763      6589, 3129, 3124, 3090, 3075, 2901, 3068, 3074, 3055, 3052,
764      3057, 1844, 1908, 3059, 3051, 1872, 3033, 3041, 3039, 3030,
765      3019, 3024, 3023, 2904, 2916, 3022, 3047, 2908, 3011, 2927,
766      6589, 6589, 2935, 2938, 2954, 6589, 6589, 3006, 2946, 1937,
767      2996, 2965, 2968, 2976, 2979, 2995, 2983, 6589, 2986, 2984,
768      2076, 2108, 2995, 2991, 2983, 2986, 2986, 2989, 2976, 2994,
769      2998, 3008, 3016, 6589, 6589, 3026, 3032, 3035, 3039, 3045,
770      3057, 2970, 2974, 2959, 3060, 3064, 3072, 6589, 6589, 3083,
771
772      6589, 6589, 3091, 3094, 3099, 6589, 6589, 2952, 2966, 3110,
773      6589, 6589, 3119, 3122, 3125, 6589, 6589, 2946, 2960, 3141,
774      6589, 6589, 3133, 2953, 3153, 3156, 2941, 2932, 3164, 2919,
775      3167, 3171, 3177, 2915, 3185, 3190,  548, 2945, 3196, 6589,
776      2942, 6589, 6589, 2903, 2902, 3203, 2890, 2903, 2884, 2896,
777      2892, 2192, 3199, 2888, 2876, 2870, 3210, 2870, 3215, 3218,
778      2873, 2866, 3222, 2852, 3227, 6589, 6589, 2848, 2851, 3235,
779      2818, 3238, 6589, 6589, 2814, 3248, 3254, 2812, 3261, 1447,
780      1500, 3269, 3276, 3287, 2816, 2799, 2799, 3290, 3293, 3296,
781      3299, 3306, 2813, 3309, 3312, 3320, 3323, 2807, 2803, 3331,
782
783      3339, 3343, 3351, 3359, 3362, 3370, 3373, 3377, 3380, 3383,
784      2801, 2780, 2789, 3391, 3395, 2789, 3403, 3409, 2783, 3412,
785      3415, 3418, 3422, 3433, 3437, 3442, 2770, 3445, 6589, 6589,
786      2768, 2757, 3457, 2753, 3461, 3465, 3481, 3485, 2745, 3488,
787      3491, 3506,  836,  696,  672, 6589, 2738, 3509, 3512, 2745,
788      2736, 2755, 2727, 3515, 2724, 2709, 2699, 3518, 3521, 3527,
789      3531, 2713, 3537, 2696, 3540, 2709, 2692, 2692, 2716, 3543,
790      2678, 2675, 3546, 3549, 2703, 2684,  693, 2682, 2693, 2670,
791       786, 2668, 3552, 6589, 6589, 3569, 3572, 2648, 2660, 3575,
792      3578, 2641, 3581, 6589, 6589, 3590, 2652, 2650, 2630, 3601,
793
794      3604, 6589, 3608, 6589, 6589, 3619, 3623, 3631, 6589, 6589,
795      3639, 3642, 3650, 3653, 3657, 3671, 3674, 2618, 3677, 2632,
796      3680, 2626, 2624, 2604, 3695, 6589, 3698, 2592, 3703, 3707,
797      3721, 3724, 3734, 3739, 3742, 3746, 3754, 3760, 3768, 2597,
798      2596, 2597, 3772, 2592, 3775, 6589, 6589, 3787, 3791, 3796,
799      3799, 6589, 6589, 3811, 6589,  853, 1089,  981, 2591, 3814,
800      3817, 3825, 3835, 2570, 2574, 3844, 3847, 2572, 2572, 3850,
801      3853, 3856, 2567, 3859, 3862, 2566, 3865, 2569, 2565, 3868,
802      6589, 2545, 2559, 3871, 3874, 3878, 2563, 2558, 2555, 2555,
803      2547, 2552, 2547, 2544, 2547, 2539, 3892, 3895, 3898, 3906,
804
805      2519, 3913, 2508,  965,  970, 2507, 3916, 3919, 3927, 6589,
806      6589, 3938, 6589, 6589, 3946, 3949, 3957, 6589, 6589, 3965,
807      3968, 2508, 3971, 3974, 2509, 2498, 1018, 1023, 2501, 3989,
808      6589, 2495, 3992, 6589, 6589, 4001, 6589, 6589, 4009, 4012,
809      4015, 6589, 6589, 4031, 6589, 6589, 4040, 4043, 2502, 2493,
810      4046, 2471, 4049, 4052, 4061, 4075, 1054, 1033, 4078, 4081,
811      6589, 6589, 4089, 4094, 4097, 2469, 4100, 4108, 4111, 4114,
812      2474, 4117, 2469, 4120, 2462, 6589, 4123, 2456, 4126, 6589,
813      4129, 6589, 6589, 2492, 2478, 2488, 2483, 2466, 2466, 2450,
814      2461, 2450, 2453, 4137, 4145, 6589, 6589, 4156, 2407, 2417,
815
816      2441, 2457, 2435, 2446, 2405, 4159, 6589, 6589, 4167, 6589,
817      6589, 4176, 4179, 6589, 4182, 4185, 6589, 6589, 2399, 2393,
818      2422, 2442, 2415, 2417, 2375, 4200, 4203, 4207, 4210, 4213,
819      4216, 4231, 2371, 4234, 4237, 4240, 4243, 6589, 4249,  189,
820       611, 4253, 4263, 4268, 2355, 4271, 4274, 2360, 2358, 2346,
821      4277, 4282, 2355, 2367, 2361, 2371, 2357, 2344, 2339, 2332,
822      2337, 2322, 2313, 4290, 2280, 2278, 2333, 6589, 2314, 6589,
823      4295, 4298, 6589, 4302, 4313, 2264, 2251, 2226, 2260, 6589,
824      2252, 6589, 4309, 4321, 4328, 6589, 4331, 4334, 4337, 6589,
825      6589, 4353, 4356, 4364, 4367, 6589, 4371, 4374,  815, 1001,
826
827      1140, 4377, 6589, 2198, 2185, 2167, 4382, 4386,  389,  575,
828      2101, 2128, 2053, 2043, 2023, 2007, 1979,    1,    1,   80,
829        94, 4400,  115,  231, 6589, 6589, 4403, 4406, 4415, 6589,
830      6589,  247,  313,  352, 6589, 6589, 4423, 4426, 4434, 6589,
831      4441, 4444, 6589, 6589, 4437, 4456, 4464, 6589, 1663, 1681,
832      1691, 4467,  458,  481, 4470, 4473,  501,  569,  689,  723,
833       690,  723,  752,  764,  775, 6589,  834,  829,  839,  843,
834      6589, 4483, 4488, 4491, 4496, 6589, 6589,  913, 4504,  942,
835      4509, 6589, 6589, 4517, 4522, 6589, 6589, 1459, 1759, 4536,
836      4539,  937, 1035, 4542, 6589, 6589, 1081, 1073, 1085, 1124,
837
838      4550, 1127, 1146, 1163, 1149, 1136, 1197, 1212, 1200, 4555,
839      4558, 4561, 4568, 1178, 1182, 4579, 4582, 1174, 4590, 1302,
840      4593, 4597, 4602, 4616, 4621, 1227, 1256, 1251, 1264, 4624,
841      4627, 1265, 1269, 6589, 1314, 1317, 1317, 6589, 1326, 4635,
842      4638, 6589, 6589, 1331, 4646, 4650, 6589, 6589, 4658, 4664,
843      6589, 1742, 4667, 4670, 4679, 4699, 4742, 4689, 4692, 1380,
844      1411, 1403, 1437, 4719, 6589, 6589, 1461, 1438, 1445, 1472,
845      1468, 1489, 4710, 1474, 4733, 4762, 4736, 4770, 1512, 4784,
846      1631, 1750, 4804, 4847, 1520, 6589, 1538, 6589, 6589, 1569,
847      1570, 6589, 1573, 1619, 4778, 6589, 1598, 4793, 6589, 6589,
848
849      4824, 1659, 1740, 1809, 1880, 1804, 1644, 1751, 1647, 4815,
850      1675, 1680, 6589, 6589, 6589, 6589, 4838, 1691, 1719, 1733,
851      1735, 4841, 1762, 1759, 1800, 4867, 1824, 1823, 4872, 4875,
852      1795, 1819, 1849, 1867, 4890, 1870, 6589, 6589, 4893, 6589,
853      6589, 1858, 1858, 1861, 1861, 1942, 6589, 1870, 1879, 1878,
854      1882, 2039, 1878, 1929, 1920, 1933, 2063, 1933, 1955, 1938,
855      1956, 1986, 1986, 6589, 1996, 6589, 2049, 6589, 6589, 4901,
856      4905, 2112, 2114, 1995, 2110, 2157, 2184, 1996, 2115, 2142,
857      2217, 2188, 2195, 2036, 2117, 2248, 2275, 2285, 2307, 1998,
858      2245, 2308, 2354, 2215, 2140, 4915, 4920, 6589, 6589, 4940,
859
860      4949, 4958, 4967, 4976, 4985, 4994, 5003, 5012, 5021, 5030,
861      5039, 5048, 5057, 5066, 5075, 5084, 5093, 5102, 5111, 5120,
862      5129, 5138, 5147, 5156, 5165, 5174, 5183, 5192, 5201, 5210,
863      5219, 5228, 5237, 5246, 5255, 5264, 5273, 5282, 5289, 5296,
864      5303, 5310, 5317, 5324, 5331, 5338, 5345, 5352, 5359, 5366,
865      5373, 5380, 5387, 5394, 5401, 5410, 5415, 5420, 5425, 5432,
866      5437, 5444, 5449, 5454, 5459, 5464, 5471, 5476, 5483, 5488,
867      5495, 5500, 5507, 5512, 5519, 5524, 5531, 5536, 5543, 5548,
868      5555, 5560, 5567, 5572, 5581, 5587, 5594, 5602, 5609, 5617,
869      5624, 5632, 5639, 5647, 5654, 5662, 5669, 5677, 5684, 5692,
870
871      5700, 5707, 5715, 5723, 5731, 5739, 5747, 5755, 5763, 5771,
872      5778, 5786, 5793, 5801, 5809, 5816, 5824, 5833, 5839, 5846,
873      5854, 5862, 5870, 5877, 5885, 5892, 5900, 5907, 5915, 5922,
874      5930, 5937, 5945, 5953, 5960, 5968, 5976, 5983, 5991, 5999,
875      6006, 6014, 6021, 6029, 6036, 6044, 6052, 6059, 6067, 6076,
876      6085, 6092, 6100, 6107, 6115, 6122, 6130, 6137, 6145, 6152,
877      6159, 6167, 6175, 6183, 6191, 6198, 6206, 6214, 6221, 6229,
878      6237, 6244, 6252, 6259, 6267, 6275, 6283, 6291, 6299, 6307,
879      6316, 6325, 6332, 6340, 6347, 6355, 6362, 6370, 6377, 6385,
880      6392, 6399, 6407, 6415, 6423, 6431, 6438, 6446, 6454, 6462,
881
882      6470, 6478, 6486, 6494, 6501, 6509, 6517, 6525, 6534, 6543,
883      6552, 6561, 6570, 6579
884     } ;
885
886 static yyconst flex_int16_t yy_def[2015] =
887     {   0,
888      1800, 1800, 1801, 1801, 1801, 1801, 1802, 1802, 1803, 1803,
889      1804, 1804, 1805, 1805, 1805, 1805, 1806, 1806, 1800, 1800,
890      1807, 1807, 1808, 1808, 1808, 1808, 1808, 1808, 1800, 1800,
891      1808, 1808, 1800, 1800, 1808, 1808, 1808, 1808, 1809, 1809,
892      1805, 1805, 1810, 1810, 1811, 1811, 1800, 1800, 1811, 1811,
893      1811, 1811, 1812, 1812, 1813, 1813, 1814, 1814, 1815, 1815,
894      1815, 1815, 1800, 1800, 1815, 1815, 1815, 1815, 1800, 1800,
895      1815, 1815, 1800, 1800, 1815, 1815, 1815, 1815, 1800, 1800,
896      1815, 1815, 1800, 1800, 1815, 1815, 1815, 1815, 1816, 1816,
897      1817, 1817, 1800, 1800, 1817, 1817, 1817, 1817, 1799,   99,
898
899      1818, 1818, 1819, 1819, 1820, 1820, 1821, 1821, 1822, 1822,
900      1800, 1800, 1822, 1822, 1822, 1822, 1823, 1823, 1824, 1824,
901      1800, 1800, 1824, 1824, 1824, 1824, 1825, 1825, 1826, 1826,
902      1800, 1800, 1826, 1826, 1826, 1826, 1827, 1827, 1828, 1828,
903      1829, 1829, 1830, 1830, 1800, 1800, 1830, 1830, 1830, 1830,
904      1831, 1831, 1832, 1832, 1800, 1800, 1832, 1832, 1832, 1832,
905      1833, 1833, 1834, 1834, 1835, 1835, 1836, 1836, 1800, 1800,
906      1836, 1836, 1836, 1836, 1837, 1837, 1838, 1838, 1800, 1800,
907      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
908      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
909
910      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
911      1799, 1839, 1799, 1799, 1839, 1799, 1799, 1799,  218,  218,
912       218,  220,  220, 1799, 1799, 1799, 1840, 1799, 1799, 1840,
913      1840, 1840, 1799, 1799, 1799, 1799, 1799, 1841, 1799, 1799,
914      1841, 1841, 1841, 1841, 1799, 1799,  220,  220,  220, 1799,
915      1799, 1799, 1842, 1799, 1799, 1842, 1842, 1842, 1799, 1799,
916      1799, 1799, 1799, 1799, 1843, 1799, 1799, 1843, 1843, 1799,
917      1799,  221,  221,  221,  272,  273,  273,  273,  273,  279,
918       280,  279,  279, 1799, 1799, 1799, 1844, 1799, 1799, 1844,
919      1844, 1844, 1844, 1844, 1799, 1799,  220,  220, 1799, 1799,
920
921      1799, 1845, 1799, 1799, 1845, 1845, 1845, 1845, 1845, 1845,
922      1799, 1799, 1799, 1799, 1799, 1799, 1846, 1799, 1799, 1846,
923      1799, 1799, 1799, 1799, 1799, 1799, 1847, 1799, 1799, 1847,
924      1847, 1847, 1847, 1799, 1799,  220,  220, 1799, 1799, 1799,
925      1848, 1799, 1799, 1848, 1848, 1799, 1799,  220,  348,  348,
926      1799, 1799, 1799, 1849, 1799, 1799, 1849, 1849, 1849, 1799,
927      1799,  348,  348, 1799, 1799, 1799, 1850, 1799, 1799, 1850,
928      1799, 1799, 1799, 1799, 1799, 1799, 1851, 1799, 1799, 1851,
929      1851, 1851, 1799, 1799,  348,  348, 1799, 1799, 1799, 1852,
930      1799, 1799, 1852, 1852, 1852, 1852, 1799, 1799,  220,  399,
931
932       399, 1799, 1799, 1799, 1853, 1799, 1799, 1853, 1799, 1799,
933      1799, 1799, 1799, 1799, 1854, 1799, 1799, 1854, 1799, 1799,
934       399,  421,  421, 1799, 1799, 1799, 1855, 1799, 1799, 1855,
935      1855, 1799, 1799, 1799, 1799, 1856, 1799, 1799, 1799, 1799,
936      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
937      1799, 1839, 1839, 1857, 1799, 1799, 1799, 1799, 1799, 1799,
938      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1840,
939      1840, 1840, 1840, 1799, 1858, 1799, 1799, 1841, 1841, 1841,
940      1841, 1841, 1841, 1841, 1859, 1799, 1799, 1860, 1860, 1860,
941      1860, 1861, 1799, 1862, 1862, 1862, 1863, 1799, 1799, 1799,
942
943      1799, 1799, 1799, 1799, 1799, 1799, 1844, 1844, 1844, 1844,
944      1844, 1844, 1864, 1799, 1845, 1845, 1845, 1845, 1845, 1845,
945      1845, 1845, 1845, 1865, 1799, 1846, 1846, 1866, 1799, 1867,
946      1867, 1867, 1867, 1867, 1867, 1868, 1799, 1869, 1869, 1869,
947      1870, 1799, 1799, 1871, 1871, 1871, 1871, 1872, 1799, 1873,
948      1873, 1874, 1799, 1875, 1875, 1875, 1875, 1876, 1799, 1877,
949      1877, 1877, 1877, 1877, 1878, 1799, 1799, 1879, 1879, 1880,
950      1799, 1881, 1881, 1882, 1799, 1799, 1883, 1883, 1883, 1884,
951      1885, 1799, 1885, 1799, 1799, 1799, 1886, 1799, 1799, 1799,
952      1799, 1799, 1799, 1799, 1887, 1888, 1888, 1799, 1799, 1799,
953
954      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
955      1799, 1799, 1799, 1799, 1889, 1799, 1799, 1889, 1799, 1890,
956      1890, 1799, 1891, 1799, 1799, 1891, 1891, 1891, 1891, 1892,
957      1892, 1799, 1893, 1893, 1893, 1894, 1894, 1799, 1799, 1895,
958      1896, 1896, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
959      1897, 1799, 1799, 1897, 1897, 1897, 1898, 1898, 1899, 1799,
960      1799, 1799, 1799, 1899, 1899, 1899, 1899, 1899, 1900, 1900,
961      1799, 1799, 1901, 1901, 1902, 1799, 1799, 1902, 1902, 1902,
962      1903, 1903, 1904, 1904, 1905, 1905, 1799, 1906, 1906, 1906,
963      1907, 1907, 1799, 1799, 1908, 1908, 1909, 1909, 1909, 1910,
964
965      1910, 1911, 1911, 1911, 1911, 1912, 1912, 1799, 1913, 1914,
966      1914, 1799, 1799, 1915, 1915, 1799, 1799, 1799, 1916, 1917,
967      1917, 1918, 1799, 1799, 1918, 1799, 1799, 1919, 1799, 1799,
968      1799, 1799, 1799, 1799, 1920, 1799, 1921, 1799, 1921, 1799,
969      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
970      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1922, 1799, 1799,
971      1799, 1922, 1799, 1799, 1923, 1799, 1923, 1924, 1799, 1799,
972      1799, 1799, 1799, 1924, 1799, 1799, 1924, 1799, 1925, 1799,
973      1925, 1799, 1926, 1926, 1926, 1799, 1927, 1799, 1927, 1799,
974      1799, 1799, 1928, 1799, 1929, 1799, 1929, 1799, 1799, 1799,
975
976      1799, 1799, 1799, 1799, 1930, 1799, 1799, 1799, 1930, 1930,
977      1930, 1799, 1931, 1799, 1931, 1932, 1932, 1799, 1799, 1799,
978      1799, 1799, 1799, 1799, 1799, 1932, 1932, 1932, 1932, 1799,
979      1933, 1799, 1933, 1799, 1799, 1799, 1799, 1934, 1799, 1934,
980      1935, 1799, 1799, 1799, 1935, 1935, 1935, 1799, 1936, 1799,
981      1936, 1799, 1799, 1799, 1799, 1799, 1937, 1799, 1937, 1799,
982      1799, 1799, 1938, 1938, 1799, 1799, 1799, 1939, 1799, 1939,
983      1799, 1799, 1799, 1799, 1940, 1799, 1940, 1799, 1799, 1941,
984      1941, 1799, 1799, 1799, 1942, 1799, 1942, 1943, 1943, 1943,
985      1943, 1799, 1944, 1799, 1944, 1799, 1945, 1799, 1946, 1799,
986
987      1946, 1799, 1799, 1799, 1799, 1947, 1799, 1947, 1799, 1799,
988      1799, 1799, 1948, 1799, 1949, 1799, 1949, 1950, 1951, 1799,
989      1799, 1799, 1799, 1799, 1952, 1953, 1799, 1799, 1799, 1799,
990      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
991      1799, 1799, 1799, 1799, 1799, 1954, 1799, 1955, 1956, 1799,
992      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1956, 1957, 1799,
993      1958, 1799, 1799, 1958, 1959, 1960, 1799, 1799, 1799, 1799,
994      1799, 1799, 1799, 1799, 1799, 1961, 1961, 1961, 1961, 1962,
995      1963, 1963, 1799, 1799, 1799, 1963, 1963, 1963, 1963, 1964,
996      1965, 1966, 1966, 1966, 1966, 1967, 1799, 1799, 1799, 1799,
997
998      1799, 1799, 1968, 1799, 1799, 1799, 1799, 1969, 1969, 1799,
999      1799, 1799, 1970, 1971, 1799, 1799, 1799, 1972, 1972, 1799,
1000      1799, 1799, 1973, 1974, 1799, 1799, 1974, 1974, 1975, 1799,
1001      1976, 1977, 1978, 1799, 1979, 1980, 1981, 1982, 1982, 1799,
1002      1982, 1799, 1799, 1799, 1983, 1984, 1799, 1799, 1799, 1799,
1003      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1004      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1985, 1799, 1986,
1005      1987, 1799, 1799, 1799, 1987, 1988, 1799, 1989, 1799, 1799,
1006      1799, 1799, 1799, 1990, 1991, 1799, 1799, 1799, 1799, 1799,
1007      1799, 1799, 1992, 1799, 1799, 1799, 1799, 1992, 1992, 1993,
1008
1009      1799, 1799, 1994, 1799, 1799, 1994, 1994, 1994, 1995, 1996,
1010      1997, 1997, 1997, 1799, 1799, 1997, 1998, 1999, 1799, 2000,
1011      2000, 2001, 2002, 2003, 2003, 2004, 2005, 1799, 1799, 1799,
1012      2005, 2005, 2006, 1799, 1799, 1799, 2007, 2008, 1799, 1799,
1013      1799, 1980, 1981, 1982, 1982, 1799, 1799, 1983, 1984, 1799,
1014      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1015      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1985, 1799, 1986,
1016      1987, 1987, 1988, 1989, 1799, 1799, 1799, 1799, 1799, 1799,
1017      1799, 1799, 1799, 1799, 1799, 1990, 1991, 1799, 1799, 1799,
1018      1799, 1992, 1799, 1799, 1799, 1799, 1799, 1799, 1992, 1992,
1019
1020      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1021      1799, 1799, 1994, 1799, 1799, 1995, 1996, 1997, 1997, 1997,
1022      1799, 1799, 1799, 1997, 1799, 1799, 1999, 1799, 1799, 1799,
1023      1799, 1799, 2001, 2002, 1799, 1799, 1799, 1799, 2004, 2005,
1024      2005, 2005, 2006, 1799, 1799, 1799, 1799, 2007, 2008, 1799,
1025      1799, 1799, 1799, 1799, 1799, 1981, 1982, 1982, 1799, 1799,
1026      1799, 1984, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1027      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1985, 1799, 1799,
1028      1799, 1987, 1987, 1988, 1799, 1799, 1799, 1799, 1799, 1799,
1029      1799, 1799, 1799, 1799, 1799, 1799, 1990, 1799, 1799, 1799,
1030
1031      1799, 1799, 1992, 1799, 1799, 1992, 1799, 1799, 1799, 1799,
1032      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1995,
1033      1996, 1997, 1799, 1799, 1997, 1997, 1799, 1799, 1997, 1799,
1034      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 2001, 2002,
1035      1799, 1799, 1799, 1799, 1799, 1799, 2004, 2005, 2005, 2005,
1036      2006, 1799, 2007, 2008, 1799, 1981, 1982, 1982, 1799, 1799,
1037      1799, 1799, 1984, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1038      1799, 1799, 1799, 1799, 1985, 1799, 1987, 1987, 1799, 1799,
1039      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1040      1799, 1799, 1799, 1990, 1799, 1799, 1799, 1799, 1799, 1992,
1041
1042      1799, 1799, 1799, 1799, 1992, 1799, 1799, 1799, 1799, 1799,
1043      1799, 1995, 1799, 1799, 1997, 1799, 1799, 1799, 1997, 1997,
1044      1799, 1799, 1799, 1799, 1997, 1799, 2001, 2002, 2004, 1799,
1045      1799, 2005, 2005, 2006, 1799, 2007, 1799, 1799, 1981, 1982,
1046      1982, 1799, 1984, 1799, 1799, 1799, 1799, 1799, 1799, 1985,
1047      1799, 1799, 1987, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1048      1799, 1799, 1799, 1990, 1799, 1992, 1799, 1799, 1799, 1799,
1049      1992, 1799, 1799, 1799, 1799, 1997, 1997, 1997, 1799, 1799,
1050      1799, 1799, 1997, 1799, 1799, 1799, 2002, 2004, 1799, 1799,
1051      1799, 1799, 1799, 2005, 1799, 1799, 1799, 2007, 1981, 1982,
1052
1053      1982, 1799, 1799, 1799, 1799, 1799, 1985, 1799, 1799, 1799,
1054      1987, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1055      1799, 1990, 1799, 1992, 1799, 1799, 1799, 1799, 1799, 1799,
1056      1799, 1997, 1997, 1997, 1799, 1799, 1799, 1799, 1799, 1799,
1057      2004, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1981, 1982,
1058      1982, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1059      1987, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1060      1799, 1990, 1799, 1992, 1799, 1799, 1799, 1997, 1997, 1997,
1061      1799, 1799, 1799, 2004, 1799, 1799, 1799, 1981, 1982, 1982,
1062      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1063
1064      1987, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1990,
1065      1799, 1799, 1799, 1992, 1997, 1799, 1799, 1997, 2004, 1981,
1066      1982, 1982, 1982, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1067      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1990,
1068      1799, 1799, 1799, 1992, 1997, 1799, 1799, 1799, 1997, 1799,
1069      1799, 1981, 1982, 1982, 1982, 2009, 2010, 1799, 1799, 1799,
1070      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1071      1799, 1799, 1990, 1992, 1799, 1799, 1799, 1799, 1981, 1982,
1072      2011, 2012, 2009, 2010, 1799, 1799, 1799, 1799, 1799, 1799,
1073      1799, 1799, 1799, 1799, 1799, 1799, 1992, 1799, 1799, 1799,
1074
1075      1799, 1799, 1799, 1981, 2011, 1982, 2013, 2012, 2014, 1982,
1076      1799, 1799, 1799, 1799, 1799, 1799, 1992, 1799, 1799, 1799,
1077      1799, 1981, 2013, 1799, 2014, 1982, 1799, 1799, 1799, 1799,
1078      1799, 1799, 1799, 1799, 1981, 1799, 1799, 1799, 1799, 1799,
1079      1799, 1799, 1799, 1799, 1799, 1981, 1799, 1799, 1799, 1799,
1080      1799, 1981, 1799, 1799, 1799, 1799, 1981, 1799, 1799, 1799,
1081      1799, 1981, 1799, 1799, 1799, 1799, 1981, 1799, 1799, 1981,
1082      1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981,
1083      1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981, 1981,
1084      1981, 1981, 1981, 1981, 1981, 1981, 1981, 1799,    0, 1799,
1085
1086      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1087      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1088      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1089      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1090      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1091      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1092      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1093      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1094      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1095      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1096
1097      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1098      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1099      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1100      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1101      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1102      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1103      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1104      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1105      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1106      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1107
1108      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1109      1799, 1799, 1799, 1799
1110     } ;
1111
1112 static yyconst flex_int16_t yy_nxt[6658] =
1113     {   0,
1114      1799,  184,  185,  184,  184,  185,  184,  184,  185,  184,
1115       184,  185,  184,  189,  185,  189,  195,  186,  192,  195,
1116       186,  192, 1568,  187, 1569,  193,  187,  582,  193,  190,
1117       189,  185,  189,  436,  196,  198,  199,  196,  198,  199,
1118       200,  201,  583,  200,  201,  436,  190,  205,  206,  437,
1119       202,  198,  199,  202,  203,  439,  200,  198,  199,  534,
1120       203,  438,  200,  205,  206, 1799,  202,  185,  185,  185,
1121       535,  438,  202,  185,  185,  185,  217,  185,  217,  217,
1122       185,  217,  459,  208,  217,  185,  217,  207,  462,  208,
1123       467,  462,  218,  485,  497,  218,  435,  435,  435,  457,
1124
1125       219, 1570, 1571,  207,  209,  210,  185,  210,  209,  209,
1126       209,  209,  209,  209,  209,  211,  209,  209,  209, 1799,
1127       209,  213,  209,  214,  209,  217,  185,  217,  217,  185,
1128       217,  217,  185,  217,  185,  185,  185,  185,  185,  185,
1129       486,  219, 1799,  502,  220,  209,  209,  220,  439,  439,
1130       221,  439,  465,  221,  435,  435,  435,  435,  435,  435,
1131       435,  435,  435, 1573,  438,  438,  486,  438,  215,  209,
1132       210,  185,  210,  209,  209,  209,  209,  209,  209,  209,
1133       211,  209,  209,  209,  485,  209,  213,  209,  214,  209,
1134       217,  185,  217,  217,  185,  217,  185,  185,  185,  185,
1135
1136       185,  185,  217,  185,  217,  450,  219,  605, 1040,  219,
1137       209,  209,  222,  606,  548,  222,  439,  516,  220,  217,
1138       185,  217,  217,  185,  217,  217,  185,  217,  435,  435,
1139       435,  468,  438,  215,  513,  220, 1500,  517,  223,  513,
1140      1799,  223,  224,  225,  185,  225,  224,  224,  224,  224,
1141       224,  224,  224,  226,  224,  224,  224,  460,  224,  228,
1142       224,  229,  224,  246,  185,  246,  246,  185,  246,  185,
1143       185,  185,  185,  185,  185,  464,  246,  185,  246,  247,
1144       816,  486,  247,  224,  224,  248,  468,  468,  248,  817,
1145       520,  230,  247,  521,  231,  435,  435,  435, 1574, 1578,
1146
1147       232,  224,  225,  185,  225,  224,  224,  224,  224,  224,
1148       224,  224,  226,  224,  224,  224,  465,  224,  228,  224,
1149       229,  224,  198,  199,  198,  199,  468,  200,  462,  200,
1150       246,  185,  246,  246,  185,  246,  481,  233,  474,  233,
1151       482,  466,  224,  224,  483,  475,  247,  439,  588,  249,
1152       230,  589,  601,  231,  438,  602,  723,  467,  558,  232,
1153       918, 1579,  234,  438,  234,  235,  236,  185,  236,  235,
1154       235,  235,  235,  235,  235,  235,  237,  235,  235,  235,
1155       582,  235,  239,  235,  240,  235,  246,  185,  246,  260,
1156       185,  260,  260,  185,  260,  271,  185,  271,  271,  185,
1157
1158       271,  460,  249,  439, 1580,  261,  235,  235,  261,  439,
1159       492,  272,  619, 1557,  272,  241,  536,  242,  536,  438,
1160       243,  435,  435,  435, 1558,  438,  244,  235,  236,  185,
1161       236,  235,  235,  235,  235,  235,  235,  235,  237,  235,
1162       235,  235,  465,  235,  239,  235,  240,  235,  271,  185,
1163       271,  271,  185,  271,  185,  185,  185,  185,  185,  185,
1164       271,  185,  271,  486,  273,  468,  457,  273,  235,  235,
1165       274,  439,  456,  274,  605,  601,  275,  241,  610,  242,
1166       614,  504,  243,  435,  435,  435,  468,  438,  244,  250,
1167       251,  185,  251,  250,  250,  250,  250,  250,  250,  250,
1168
1169       252,  250,  250,  250, 1592,  250,  254,  250,  255,  250,
1170       271,  185,  271,  271,  185,  271,  271,  185,  271,  185,
1171       185,  185,  185,  185,  185,  612,  275, 1593,  610,  276,
1172       250,  250,  276,  439,  439,  277, 1597,  256,  277,  435,
1173       435,  435,  257,  435,  435,  435,  435,  435,  435,  438,
1174       438,  258,  250,  251,  185,  251,  250,  250,  250,  250,
1175       250,  250,  250,  252,  250,  250,  250,  723,  250,  254,
1176       250,  255,  250,  271,  185,  271,  271,  185,  271,  185,
1177       185,  185,  185,  185,  185,  271,  185,  271, 1143,  273,
1178      1598,  723,  273,  250,  250,  278,  439,  439,  278, 1559,
1179
1180       256,  276,  435,  435,  435,  257,  435,  435,  435, 1037,
1181      1560, 1799,  438,  438,  258,  262,  263,  185,  263,  262,
1182       262,  262,  262,  262,  262,  262,  264,  262,  262,  262,
1183      1040,  262,  266,  262,  267,  262,  271,  185,  271,  271,
1184       185,  271,  271,  185,  271,  185,  185,  185,  185,  185,
1185       185,  500,  276,  607,  501,  279,  262,  262,  279,  605,
1186       505,  280,  935, 1501,  280,  632,  608,  268,  435,  435,
1187       435,  435,  435,  435,  936,  269,  262,  263,  185,  263,
1188       262,  262,  262,  262,  262,  262,  262,  264,  262,  262,
1189       262, 1040,  262,  266,  262,  267,  262,  271,  185,  271,
1190
1191       271,  185,  271,  185,  185,  185,  185,  185,  185,  271,
1192       185,  271,  723,  281, 1289, 1040,  281,  262,  262,  282,
1193      1258, 1290,  282,  943, 1599,  279,  725,  439,  268,  271,
1194       185,  271,  271,  185,  271,  936,  269,  271,  185,  271,
1195       435,  435,  435,  438, 1600,  279, 1601, 1602,  283,  435,
1196       435,  435, 1257,  283,  284,  285,  185,  285,  284,  284,
1197       284,  284,  284,  284,  284,  286,  284,  284,  284,  565,
1198       284,  288,  284,  289,  284,  296,  185,  296,  296,  185,
1199       296,  185,  185,  185,  185,  185,  185,  296,  185,  296,
1200      1603,  297,  439,  943,  297,  284,  284,  248,  290,  524,
1201
1202       248,  439,  566,  297, 1604,  960,  291, 1294,  438,  435,
1203       435,  435,  292, 1605, 1295,  293,  486,  438,  294,  284,
1204       285,  185,  285,  284,  284,  284,  284,  284,  284,  284,
1205       286,  284,  284,  284,  723,  284,  288,  284,  289,  284,
1206       296,  185,  296,  296,  185,  296,  296,  185,  296,  312,
1207       185,  312,  312,  185,  312,  723,  297,  439, 1606,  298,
1208       284,  284,  298,  290,  528,  313,  439, 1607,  313, 1549,
1209      1256,  291,  723,  438,  435,  435,  435,  292, 1356, 1608,
1210       293, 1609,  438,  294,  299,  300,  185,  300,  299,  299,
1211       299,  299,  299,  299,  299,  301,  299,  299,  299,  302,
1212
1213       299,  303,  299,  304,  299,  302,  302,  302,  302,  302,
1214       302,  302,  302,  302,  302,  302,  302,  302,  302,  302,
1215       302,  302,  302,  302,  302,  299,  299,  302,  302,  305,
1216       302,  302,  302,  302,  302,  302,  306,  302,  307,  302,
1217       302,  302,  308,  302,  309,  310,  302,  302,  302,  302,
1218       302,  302,  314,  315,  185,  315,  314,  314,  314,  314,
1219       314,  314,  314,  316,  314,  314,  314, 1615,  314,  318,
1220       314,  319,  314,  322,  185,  322,  322,  185,  322,  335,
1221       185,  335,  335,  185,  335,  185,  185,  185, 1618,  323,
1222       607, 1401,  323,  314,  314,  336, 1403, 1402,  336, 1624,
1223
1224      1040,  248, 1404,  647,  320,  314,  315,  185,  315,  314,
1225       314,  314,  314,  314,  314,  314,  316,  314,  314,  314,
1226      1040,  314,  318,  314,  319,  314,  185,  185,  185,  335,
1227       185,  335,  335,  185,  335,  335,  185,  335,  335,  185,
1228       335, 1358,  248,  607, 1421,  336,  314,  314,  336, 1423,
1229      1422,  337, 1040, 1550,  337, 1424,  649,  320,  324,  325,
1230       185,  325,  324,  324,  324,  324,  324,  324,  324,  326,
1231       324,  324,  324, 1040,  324,  328,  324,  329,  324,  347,
1232       185,  347,  347,  185,  347,  185,  185,  185,  185,  185,
1233       185,  347,  185,  347, 1441,  348,  607, 1625,  348,  324,
1234
1235       324,  349, 1626,  330,  349, 1627, 1628,  348, 1040,  650,
1236       331, 1440,  332,  435,  435,  435,  435,  435,  435,  333,
1237       324,  325,  185,  325,  324,  324,  324,  324,  324,  324,
1238       324,  326,  324,  324,  324, 1357,  324,  328,  324,  329,
1239       324,  347,  185,  347,  347,  185,  347,  347,  185,  347,
1240       361,  185,  361,  361,  185,  361, 1629,  348,  716, 1040,
1241       350,  324,  324,  350, 1632,  330,  362, 1633, 1634,  362,
1242      1635,  608,  331, 1636,  332,  435,  435,  435,  435,  435,
1243       435,  333,  338,  339,  185,  339,  338,  338,  338,  338,
1244       338,  338,  338,  340,  338,  338,  338, 1551,  338,  342,
1245
1246       338,  343,  338,  185,  185,  185,  185,  185,  185,  361,
1247       185,  361,  361,  185,  361,  361,  185,  361, 1637,  349,
1248      1638, 1639,  349,  338,  338,  362,  439, 1644,  362,  344,
1249      1645,  363,  435,  435,  435,  435,  435,  435,  435,  435,
1250       435, 1649,  438,  345,  338,  339,  185,  339,  338,  338,
1251       338,  338,  338,  338,  338,  340,  338,  338,  338, 1660,
1252       338,  342,  338,  343,  338,  361,  185,  361,  372,  185,
1253       372,  372,  185,  372,  384,  185,  384,  384,  185,  384,
1254      1661,  363,  439, 1662,  373,  338,  338,  373, 1663,  552,
1255       385,  344, 1667,  385,  435,  435,  435, 1668,  438,  435,
1256
1257       435,  435,  435,  435,  435,  345,  351,  352,  185,  352,
1258       351,  351,  351,  351,  351,  351,  351,  353,  351,  351,
1259       351,  723,  351,  355,  351,  356,  351,  185,  185,  185,
1260       185,  185,  185,  384,  185,  384,  384,  185,  384,  384,
1261       185,  384, 1669,  349, 1670, 1671,  349,  351,  351,  385,
1262       439, 1652,  385,  357, 1672,  386,  358,  435,  435,  435,
1263       435,  435,  435,  435,  435,  435,  438,  359,  351,  352,
1264       185,  352,  351,  351,  351,  351,  351,  351,  351,  353,
1265       351,  351,  351, 1674,  351,  355,  351,  356,  351,  384,
1266       185,  384,  398,  185,  398,  398,  185,  398,  185,  185,
1267
1268       185,  185,  185,  185, 1685,  386,  439,  439,  399,  351,
1269       351,  399,  439,  570,  400,  357, 1686,  400,  358,  435,
1270       435,  435,  438,  438,  435,  435,  435, 1687,  438,  359,
1271       364,  365,  185,  365,  364,  364,  364,  364,  364,  364,
1272       364,  366,  364,  364,  364, 1688,  364,  368,  364,  369,
1273       364,  398,  185,  398,  398,  185,  398,  398,  185,  398,
1274       398,  185,  398,  410,  185,  410, 1689,  399, 1690, 1175,
1275       399,  364,  364,  401, 1176, 1691,  401, 1177,  723,  411,
1276      1692, 1178,  370,  364,  365,  185,  365,  364,  364,  364,
1277       364,  364,  364,  364,  366,  364,  364,  364, 1693,  364,
1278
1279       368,  364,  369,  364,  410,  185,  410,  420,  185,  420,
1280       420,  185,  420,  185,  185,  185,  185,  185,  185, 1694,
1281       411, 1620, 1179,  421,  364,  364,  421, 1180, 1697,  248,
1282      1181,  723,  248, 1711, 1182,  370,  374,  375,  185,  375,
1283       374,  374,  374,  374,  374,  374,  374,  376,  374,  374,
1284       374, 1712,  374,  378,  374,  379,  374,  420,  185,  420,
1285       420,  185,  420,  420,  185,  420,  420,  185,  420,  433,
1286       185,  433, 1704,  422, 1713, 1714,  422,  374,  374,  423,
1287       574, 1715,  423,  380,  444,  434,  381,  541,  435,  435,
1288       435,  435,  435,  435,  435,  435,  435,  382,  374,  375,
1289
1290       185,  375,  374,  374,  374,  374,  374,  374,  374,  376,
1291       374,  374,  374,  456,  374,  378,  374,  379,  374,  433,
1292       185,  433,  445,  497,  740,  740,  740, 1716,  446,  575,
1293       542,  439,  447,  503,  468,  434, 1706,  448,  580,  374,
1294       374,  497,  586,  586,  586,  380, 1717,  438,  381, 1724,
1295      1707,  498,  586,  586,  586, 1724,  727,  499,  466,  382,
1296       387,  388,  185,  388,  387,  387,  387,  387,  387,  387,
1297       387,  389,  387,  387,  387,  499,  387,  391,  387,  392,
1298       387,  500,  723,  741,  501, 1718,  616,  616,  616, 1727,
1299       502,  624,  624,  624, 1728, 1719,  587,  638,  638,  638,
1300
1301      1040,  387,  387,  617,  740,  740,  740, 1588,  625,  393,
1302      1040,  394, 1731,  395,  639,  754,  754,  754,  740,  740,
1303       740,  396,  387,  388,  185,  388,  387,  387,  387,  387,
1304       387,  387,  387,  389,  387,  387,  387, 1589,  387,  391,
1305       387,  392,  387,  652,  652,  652, 1732, 1590,  660,  660,
1306       660,  662,  662,  662, 1733,  671,  671,  671, 1706, 1706,
1307       653,  723, 1734,  387,  387,  661, 1720, 1724,  663, 1709,
1308      1709,  393,  672,  394,  741,  395, 1721,  798, 1040, 1736,
1309       754,  754,  754,  396,  402,  403,  185,  403,  402,  402,
1310       402,  402,  402,  402,  402,  404,  402,  402,  402, 1679,
1311
1312       402,  406,  402,  407,  402,  676,  676,  676, 1724, 1621,
1313       693,  693,  693,  712,  712,  712,  717,  717,  717,  736,
1314       736,  736,  677, 1040, 1041,  402,  402,  694,  723, 1737,
1315       713, 1738, 1742,  718,  759,  759,  759,  738,  760,  798,
1316      1743,  761,  754,  754,  754, 1052, 1052, 1052,  408,  402,
1317       403,  185,  403,  402,  402,  402,  402,  402,  402,  402,
1318       404,  402,  402,  402, 1722,  402,  406,  402,  407,  402,
1319       616,  616,  616, 1057, 1057, 1057,  736,  736,  736,  764,
1320       764,  764,  764,  764,  764, 1706, 1744,  617, 1745, 1747,
1321       402,  402, 1748, 1749,  738, 1750, 1751,  766, 1753, 1707,
1322
1323       766,  769,  769,  769, 1754,  770, 1755, 1756,  771, 1053,
1324      1053, 1053, 1758,  408,  412,  413,  185,  413,  412,  412,
1325       412,  412,  412,  412,  412,  414,  412,  412,  412,  739,
1326       412,  416,  412,  417,  412,  624,  624,  624, 1077, 1077,
1327      1077,  767,  772,  772,  772,  775,  775,  775,  638,  638,
1328       638, 1054,  625, 1759, 1760,  412,  412, 1761, 1763,  773,
1329      1764,  723,  776, 1765, 1766,  639,  418,  412,  413,  185,
1330       413,  412,  412,  412,  412,  412,  412,  412,  414,  412,
1331       412,  412, 1752,  412,  416,  412,  417,  412,  778,  778,
1332       778, 1768,  778,  778,  778,  786,  786,  786,  786,  786,
1333
1334       786,  652,  652,  652, 1769,  723,  780, 1567,  412,  412,
1335       780, 1767, 1566,  788,  723,  723,  788,  723,  653,  418,
1336       424,  425,  185,  425,  424,  424,  424,  424,  424,  424,
1337       424,  426,  424,  424,  424,  781,  424,  428,  424,  429,
1338       424,  790,  790,  790, 1565,  791, 1780, 1776,  792,  794,
1339       794,  794,  806,  806,  806,  723,  807,  789,  723,  808,
1340      1792,  424,  424,  812,  812,  812, 1564,  796,  723,  818,
1341       818,  818,  430,  819, 1563, 1757,  820, 1088, 1088, 1088,
1342      1770,  814,  723, 1786,  431,  424,  425,  185,  425,  424,
1343       424,  424,  424,  424,  424,  424,  426,  424,  424,  424,
1344
1345      1762,  424,  428,  424,  429,  424,  794,  794,  794, 1089,
1346      1089, 1089,  812,  812,  812,  660,  660,  660,  662,  662,
1347       662,  821,  821,  821,  796,  822,  424,  424,  823,  723,
1348       814,  723,  661,  723,  723,  663,  723,  430,  824,  824,
1349       824,  797,  830,  830,  830,  830,  830,  830, 1796,  431,
1350       439, 1054,  671,  671,  671,  825, 1562,  454, 1561,  723,
1351       832,  723, 1777,  832, 1787, 1781,  438,  455,  815,  672,
1352       834,  834,  834, 1774,  835, 1775,  723,  836,  837,  837,
1353       837,  837,  837,  837,  676,  676,  676,  848,  848,  848,
1354       456,  457,  458, 1052, 1052, 1052,  839,  459,  833,  839,
1355
1356       460,  677, 1782,  723,  461,  850,  462,  723,  463,  842,
1357       842,  842, 1778,  843,  723, 1554,  844,  848,  848,  848,
1358      1796,  852,  852,  852,  854,  854,  854,  856,  856,  856,
1359       856,  856,  856, 1553,  723,  850,  723,  840,  853, 1779,
1360      1784,  855,  861,  861,  861,  858, 1552, 1785,  858, 1799,
1361      1799, 1799,  865,  865,  865,  867,  867,  867, 1788,  862,
1362      1536,  867,  867,  867,  723, 1535, 1799,  723,  851,  866,
1363       693,  693,  693,  869,  871,  871,  871, 1783,  872,  869,
1364      1534,  873,  874,  874,  874, 1789,  859,  694,  874,  874,
1365       874,  878,  878,  878,  723,  863,  870, 1799, 1799, 1799,
1366
1367       876,  882,  882,  882,  723, 1533,  876, 1793,  879,  864,
1368       884,  884,  884, 1532, 1799,  884,  884,  884,  883,  892,
1369       892,  892, 1526,  892,  892,  892,  723,  723,  886,  898,
1370       898,  898, 1790,  886,  898,  898,  898,  894, 1525,  877,
1371      1524,  894, 1523,  880,  712,  712,  712,  900, 1521,  902,
1372       902,  902,  900,  903, 1791, 1794,  904,  881,  905,  905,
1373       905,  713,  905,  905,  905, 1520,  717,  717,  717, 1519,
1374       910,  910,  910,  723,  911, 1518,  907,  912, 1517, 1516,
1375       907,  887,  895,  718,  914,  914,  914,  914,  914,  914,
1376       736,  736,  736,  901,  736,  736,  736,  736,  736,  736,
1377
1378      1515, 1795,  916, 1514, 1513,  916, 1512, 1511,  738,  944,
1379       944,  944,  738, 1507, 1506,  738, 1505, 1504,  908, 1494,
1380       759,  759,  759, 1483,  760, 1482,  945,  761, 1799, 1799,
1381      1799,  764,  764,  764,  764,  764,  764,  764,  764,  764,
1382       926, 1481,  772,  772,  772, 1799,  917, 1480, 1479,  766,
1383      1478, 1477,  766, 1471, 1470,  766,  769,  769,  769,  773,
1384       770, 1469, 1468,  771,  950,  950,  950, 1467,  951, 1466,
1385      1465,  952,  953,  953,  953,  775,  775,  775, 1463, 1462,
1386       948,  955,  955,  955,  946,  956, 1461, 1460,  957,  954,
1387      1459, 1458,  776,  778,  778,  778,  778,  778,  778,  778,
1388
1389       778,  778,  962,  962,  962,  786,  786,  786,  786,  786,
1390       786,  780, 1457, 1456,  780, 1455, 1454,  780, 1453,  963,
1391       786,  786,  786,  788, 1450, 1449,  788,  790,  790,  790,
1392      1448,  791, 1445, 1435,  792,  794,  794,  794,  788,  794,
1393       794,  794,  967,  967,  967,  806,  806,  806, 1433,  807,
1394      1432, 1426,  808,  796,  959, 1425, 1420,  796, 1419, 1415,
1395       968, 1405, 1400,  965,  812,  812,  812,  812,  812,  812,
1396       812,  812,  812,  818,  818,  818, 1399,  819, 1393, 1392,
1397       820, 1391,  814, 1390, 1389,  814, 1388, 1387,  814,  821,
1398       821,  821, 1386,  822, 1385, 1384,  823,  824,  824,  824,
1399
1400       983,  983,  983, 1378,  984, 1377, 1376,  985,  830,  830,
1401       830,  830,  830,  830,  825,  830,  830,  830,  834,  834,
1402       834, 1375,  835, 1373, 1371,  836,  832, 1369, 1368,  832,
1403       980, 1366, 1365,  832,  837,  837,  837,  837,  837,  837,
1404       837,  837,  837,  842,  842,  842, 1359,  843, 1352, 1350,
1405       844, 1349,  839, 1348, 1332,  839, 1329, 1328,  839, 1327,
1406       848,  848,  848,  848,  848,  848,  848,  848,  848,  852,
1407       852,  852,  997,  997,  997, 1326,  998,  990,  850,  999,
1408      1322,  850, 1306, 1305,  850, 1304,  853,  854,  854,  854,
1409      1000, 1000, 1000, 1303, 1001, 1301, 1300, 1002,  856,  856,
1410
1411       856, 1296,  991, 1293,  855,  856,  856,  856,  856,  856,
1412       856,  861,  861,  861, 1292, 1291,  858, 1288, 1005, 1005,
1413      1005,  996, 1006,  858, 1287, 1007,  858, 1283,  862,  865,
1414       865,  865, 1010, 1010, 1010, 1282, 1011, 1279, 1278, 1012,
1415       867,  867,  867,  867,  867,  867,  866,  867,  867,  867,
1416       871,  871,  871, 1277,  872, 1276, 1275,  873,  869, 1273,
1417      1270,  869,  874,  874,  874,  869,  874,  874,  874, 1269,
1418      1003,  874,  874,  874,  878,  878,  878,  882,  882,  882,
1419       876, 1015, 1015, 1015,  876, 1016, 1268, 1266, 1017,  876,
1420      1265,  879, 1264, 1263,  883, 1020, 1020, 1020, 1259, 1021,
1421
1422      1250, 1244, 1022,  884,  884,  884, 1013,  884,  884,  884,
1423       884,  884,  884, 1025, 1025, 1025,  892,  892,  892, 1242,
1424      1241,  886,  892,  892,  892,  886, 1014, 1240,  886, 1228,
1425      1026,  892,  892,  892,  894,  898,  898,  898, 1224, 1220,
1426       894,  898,  898,  898,  898,  898,  898, 1219, 1218,  894,
1427       902,  902,  902,  900,  903, 1200, 1199,  904, 1192,  900,
1428      1189, 1188,  900,  905,  905,  905, 1187, 1023,  905,  905,
1429       905,  905,  905,  905, 1174,  910,  910,  910, 1172,  911,
1430      1171,  907,  912,  914,  914,  914,  907, 1029, 1169,  907,
1431       914,  914,  914, 1032,  914,  914,  914, 1039, 1039, 1039,
1432
1433      1168,  916,  736,  736,  736,  944,  944,  944,  916,  764,
1434       764,  764,  916, 1167, 1164, 1040, 1041, 1065, 1065, 1065,
1435       738, 1066,  945, 1163, 1067, 1158, 1033,  766,  950,  950,
1436       950, 1157,  951, 1156, 1155,  952,  953,  953,  953, 1072,
1437      1072, 1072, 1154, 1073, 1153, 1152, 1074,  778,  778,  778,
1438      1036, 1151, 1150,  954, 1070,  955,  955,  955, 1148,  956,
1439      1147, 1146,  957, 1046, 1040,  780,  962,  962,  962, 1079,
1440      1079, 1079, 1139, 1080, 1134, 1132, 1081, 1082, 1082, 1082,
1441       786,  786,  786,  963,  967,  967,  967, 1094, 1094, 1094,
1442      1096, 1096, 1096, 1076, 1083,  812,  812,  812,  788, 1101,
1443
1444      1101, 1101,  968, 1131, 1095, 1127, 1125, 1097, 1124, 1799,
1445      1799, 1799, 1121,  814, 1120, 1113, 1102,  983,  983,  983,
1446      1112,  984, 1111, 1099,  985, 1084, 1799, 1104, 1104, 1104,
1447      1093, 1092, 1098, 1799, 1799, 1799, 1799, 1799, 1799, 1091,
1448      1799, 1799, 1799, 1090, 1105, 1087,  830,  830,  830, 1086,
1449      1799, 1085, 1078, 1799, 1075, 1071, 1100, 1799,  837,  837,
1450       837, 1114, 1114, 1114,  832,  848,  848,  848, 1069, 1068,
1451      1103, 1064, 1063,  997,  997,  997,  839,  998, 1115, 1107,
1452       999, 1062, 1061,  850, 1000, 1000, 1000, 1060, 1001, 1059,
1453      1058, 1002,  856,  856,  856, 1053, 1053, 1053, 1106, 1056,
1454
1455      1005, 1005, 1005, 1116, 1006, 1108, 1109, 1007, 1055, 1051,
1456       858, 1010, 1010, 1010, 1050, 1011, 1049, 1117, 1012, 1110,
1457       867,  867,  867,  874,  874,  874, 1015, 1015, 1015, 1048,
1458      1016, 1047, 1045, 1017,  884,  884,  884, 1119,  869, 1044,
1459      1043,  876, 1020, 1020, 1020, 1042, 1021, 1035, 1034, 1022,
1460      1031, 1030,  886, 1118, 1025, 1025, 1025, 1128, 1128, 1128,
1461      1028, 1129, 1027, 1024, 1130,  892,  892,  892, 1135, 1135,
1462      1135, 1026,  898,  898,  898, 1123, 1122, 1126,  905,  905,
1463       905, 1019, 1018,  894, 1009, 1136, 1140, 1140, 1140, 1008,
1464       900,  914,  914,  914, 1004,  995,  907, 1039, 1039, 1039,
1465
1466      1053, 1053, 1053, 1141,  736,  736,  736,  994,  993,  916,
1467      1133, 1057, 1057, 1057,  992, 1040, 1159, 1159, 1159, 1161,
1468      1161, 1161,  738, 1165, 1165, 1165, 1138,  989, 1065, 1065,
1469      1065,  988, 1066,  987, 1137, 1067,  764,  764,  764, 1072,
1470      1072, 1072,  986, 1073, 1144,  982, 1074,  981, 1142,  778,
1471       778,  778, 1149,  979,  766, 1077, 1077, 1077,  978,  977,
1472      1145, 1162, 1079, 1079, 1079, 1166, 1080,  780,  976, 1081,
1473      1082, 1082, 1082,  975,  974, 1160,  973, 1183, 1183, 1183,
1474       972, 1184,  971, 1170, 1185,  970,  969, 1083,  786,  786,
1475       786, 1088, 1088, 1088, 1089, 1089, 1089, 1190, 1190, 1190,
1476
1477      1190, 1190, 1190,  966,  964, 1173,  788, 1159, 1159, 1159,
1478      1094, 1094, 1094, 1193, 1193, 1193,  961, 1194,  958,  949,
1479      1195, 1096, 1096, 1096, 1196, 1196, 1196, 1095, 1197,  947,
1480       942, 1198, 1201, 1201, 1201, 1186,  941,  940, 1097,  939,
1481      1101, 1101, 1101,  938, 1203, 1203, 1203,  937, 1204,  934,
1482      1202, 1205, 1206, 1206, 1206,  933, 1191, 1102,  932, 1160,
1483      1104, 1104, 1104, 1208, 1208, 1208, 1191, 1209,  931, 1207,
1484      1210, 1211, 1211, 1211, 1799, 1799, 1799, 1105, 1214, 1214,
1485      1214,  830,  830,  830,  837,  837,  837,  930, 1212,  929,
1486       928, 1799, 1114, 1114, 1114, 1215, 1221, 1221, 1221,  832,
1487
1488      1222,  927,  839, 1223, 1225, 1225, 1225,  925,  924, 1115,
1489       856,  856,  856, 1229, 1229, 1229, 1231, 1231, 1231,  867,
1490       867,  867, 1226,  874,  874,  874,  923, 1213,  858,  922,
1491      1230, 1217,  921, 1232, 1235, 1235, 1235,  869, 1237, 1237,
1492      1237,  876, 1216,  884,  884,  884, 1128, 1128, 1128,  920,
1493      1129, 1236,  919, 1130,  723, 1238,  913, 1227,  892,  892,
1494       892,  886, 1135, 1135, 1135, 1234, 1245, 1245, 1245,  909,
1495      1246,  897,  896, 1247,  891,  890,  894,  889,  888, 1136,
1496       860, 1233,  898,  898,  898,  847,  905,  905,  905, 1140,
1497      1140, 1140, 1251, 1251, 1251,  846, 1252,  845,  841, 1253,
1498
1499       900,  829,  828, 1239,  907, 1243, 1141, 1254, 1254, 1254,
1500      1260, 1260, 1260,  736,  736,  736, 1267, 1267, 1267, 1271,
1501      1271, 1271, 1159, 1159, 1159, 1255,  827, 1261, 1272, 1272,
1502      1272,  738, 1161, 1161, 1161,  826, 1248, 1249, 1274, 1274,
1503      1274, 1165, 1165, 1165, 1280, 1280, 1280,  778,  778,  778,
1504      1285, 1285, 1285, 1183, 1183, 1183,  811, 1184,  810,  809,
1505      1185,  805, 1281,  804,  803,  780,  802, 1286,  801, 1262,
1506       786,  786,  786, 1298, 1298, 1298, 1190, 1190, 1190, 1302,
1507      1302, 1302, 1193, 1193, 1193,  800, 1194,  799,  788, 1195,
1508      1299, 1196, 1196, 1196,  793, 1197,  785,  784, 1198,  783,
1509
1510       782, 1284, 1307, 1307, 1307, 1201, 1201, 1201,  777, 1203,
1511      1203, 1203, 1297, 1204,  774,  768, 1205,  763,  762, 1308,
1512      1206, 1206, 1206, 1202, 1309, 1309, 1309,  758, 1310,  757,
1513       756, 1311, 1208, 1208, 1208,  755, 1209, 1207,  753, 1210,
1514      1211, 1211, 1211, 1312, 1312, 1312,  752, 1313,  751,  750,
1515      1314, 1315, 1315, 1315, 1214, 1214, 1214, 1212, 1317, 1317,
1516      1317,  749, 1318,  748,  747, 1319,  746,  745, 1316,  744,
1517       743, 1215,  830,  830,  830,  837,  837,  837, 1323, 1323,
1518      1323, 1221, 1221, 1221,  742, 1222,  735,  734, 1223,  733,
1519       832,  732,  731,  839,  730, 1324, 1225, 1225, 1225, 1330,
1520
1521      1330, 1330,  729,  726, 1229, 1229, 1229,  724, 1333, 1333,
1522      1333,  723, 1334,  721, 1226, 1335,  719, 1331,  715, 1320,
1523      1325, 1230, 1231, 1231, 1231, 1336, 1336, 1336,  711, 1337,
1524       709,  708, 1338,  707, 1321,  867,  867,  867,  705, 1232,
1525       874,  874,  874, 1235, 1235, 1235,  704, 1341, 1341, 1341,
1526       703, 1342,  702,  869, 1343, 1237, 1237, 1237,  876,  701,
1527      1236, 1344, 1344, 1344,  699, 1345,  698,  697, 1346,  884,
1528       884,  884, 1238,  892,  892,  892, 1245, 1245, 1245,  696,
1529      1246,  692,  690, 1247,  689, 1340,  688,  886,  898,  898,
1530       898,  894,  905,  905,  905,  687, 1339, 1355, 1355, 1355,
1531
1532      1251, 1251, 1251,  686, 1252,  684,  900, 1253,  683,  682,
1533       907,  680, 1254, 1254, 1254, 1260, 1260, 1260, 1360, 1360,
1534      1360,  679, 1361,  678,  675, 1362,  736,  736,  736, 1347,
1535      1255,  674, 1261, 1351,  670, 1353, 1364, 1364, 1364,  668,
1536       667, 1354,  666,  665,  738, 1367, 1367, 1367, 1267, 1267,
1537      1267, 1370, 1370, 1370, 1271, 1271, 1271, 1272, 1272, 1272,
1538      1274, 1274, 1274, 1372, 1372, 1372, 1374, 1374, 1374, 1280,
1539      1280, 1280, 1379, 1379, 1379, 1285, 1285, 1285,  664, 1381,
1540      1381, 1381,  659, 1382,  658, 1363, 1383, 1281,  656,  655,
1541      1380,  654, 1286,  786,  786,  786, 1298, 1298, 1298, 1395,
1542
1543      1395, 1395,  651, 1396,  648,  646, 1397, 1398, 1398, 1398,
1544       645,  788,  644, 1299, 1302, 1302, 1302, 1307, 1307, 1307,
1545      1406, 1406, 1406,  643, 1407,  642,  640, 1408, 1309, 1309,
1546      1309,  637, 1310,  635, 1308, 1311,  634,  633, 1394, 1312,
1547      1312, 1312,  631, 1313,  629,  628, 1314, 1315, 1315, 1315,
1548      1409, 1409, 1409,  627, 1410,  626,  623, 1411, 1317, 1317,
1549      1317,  622, 1318,  621, 1316, 1319,  830,  830,  830, 1413,
1550      1413, 1413, 1323, 1323, 1323, 1416, 1416, 1416,  618, 1417,
1551       615,  613, 1418,  611,  832,  609,  604, 1414,  603, 1324,
1552      1330, 1330, 1330, 1333, 1333, 1333,  600, 1334,  599,  598,
1553
1554      1335,  597, 1336, 1336, 1336,  595, 1337,  594, 1331, 1338,
1555       867,  867,  867,  874,  874,  874, 1341, 1341, 1341,  593,
1556      1342,  592,  591, 1343,  590, 1412,  585,  582,  869,  584,
1557       579,  876, 1344, 1344, 1344,  578, 1345,  576,  462, 1346,
1558       573,  884,  884,  884, 1430, 1430, 1430,  892,  892,  892,
1559       898,  898,  898, 1437, 1437, 1437,  571, 1427,  569,  886,
1560       567, 1431, 1355, 1355, 1355,  894, 1799,  564,  900,  563,
1561       562, 1438,  561,  559, 1428, 1429, 1439, 1439, 1439, 1442,
1562      1442, 1442, 1360, 1360, 1360,  558, 1361,  557,  556, 1362,
1563       736,  736,  736,  555,  723, 1364, 1364, 1364, 1444, 1444,
1564
1565      1444, 1367, 1367, 1367,  553, 1436,  551, 1434,  738, 1446,
1566      1446, 1446, 1447, 1447, 1447, 1370, 1370, 1370, 1372, 1372,
1567      1372, 1374, 1374, 1374, 1451, 1451, 1451, 1379, 1379, 1379,
1568      1381, 1381, 1381,  549, 1382,  548,  547, 1383,  786,  786,
1569       786, 1452,  546,  545, 1443, 1380, 1395, 1395, 1395,  543,
1570      1396,  460, 1799, 1397,  540,  539,  788, 1398, 1398, 1398,
1571      1406, 1406, 1406,  537, 1407,  533,  532, 1408, 1409, 1409,
1572      1409,  531, 1410,  529,  527, 1411,  525, 1472, 1472, 1472,
1573      1413, 1413, 1413, 1474, 1474, 1474, 1416, 1416, 1416,  523,
1574      1417,  522,  519, 1418, 1464, 1473,  518,  514, 1414,  512,
1575
1576      1475, 1484, 1484, 1484, 1485, 1485, 1485,  511,  874,  874,
1577       874,  884,  884,  884, 1430, 1430, 1430, 1489, 1489, 1489,
1578       510, 1490, 1486,  509, 1491, 1476,  876,  508,  506,  886,
1579      1799, 1431, 1492, 1492, 1492, 1495, 1495, 1495, 1497, 1497,
1580      1497,  898,  898,  898, 1437, 1437, 1437,  465,  501, 1493,
1581      1439, 1439, 1439, 1496, 1442, 1442, 1442,  496,  495,  900,
1582       493,  491, 1438, 1487, 1502, 1502, 1502, 1488,  723, 1444,
1583      1444, 1444, 1446, 1446, 1446, 1447, 1447, 1447, 1451, 1451,
1584      1451,  490, 1503, 1508, 1508, 1508,  489, 1509,  487,  484,
1585      1510,  786,  786,  786,  480, 1452, 1527, 1527, 1527, 1472,
1586
1587      1472, 1472, 1498, 1474, 1474, 1474,  479, 1499,  477,  788,
1588      1537, 1537, 1537, 1528, 1529, 1529, 1529, 1473, 1530,  476,
1589      1475, 1531, 1484, 1484, 1484,  473,  472, 1538,  471, 1485,
1590      1485, 1485, 1539, 1539, 1539,  884,  884,  884, 1489, 1489,
1591      1489,  469, 1490,  468, 1799, 1491, 1522, 1486,  464,  453,
1592      1540,  451,  449,  886, 1492, 1492, 1492, 1542, 1542, 1542,
1593       443, 1543,  442,  443, 1544, 1545, 1545, 1545, 1495, 1495,
1594      1495, 1493, 1497, 1497, 1497, 1547, 1547, 1547, 1502, 1502,
1595      1502,  442, 1546, 1555, 1555, 1555, 1496, 1508, 1508, 1508,
1596       441, 1509,  440, 1548, 1510, 1799, 1503, 1541, 1799, 1799,
1597
1598      1556,  786,  786,  786, 1527, 1527, 1527, 1575, 1575, 1575,
1599      1799, 1576, 1799, 1799, 1577, 1799, 1529, 1529, 1529,  788,
1600      1530, 1528, 1799, 1531, 1537, 1537, 1537, 1581, 1581, 1581,
1601      1799, 1582, 1799, 1799, 1583, 1539, 1539, 1539, 1545, 1545,
1602      1545, 1538,  884,  884,  884, 1542, 1542, 1542, 1799, 1543,
1603      1799, 1799, 1544, 1540, 1799, 1546, 1572, 1585, 1585, 1585,
1604       886, 1586, 1799, 1799, 1587, 1547, 1547, 1547, 1591, 1591,
1605      1591, 1555, 1555, 1555, 1594, 1594, 1594, 1799, 1595, 1799,
1606      1799, 1596, 1799, 1548,  786,  786,  786, 1799, 1556, 1611,
1607      1611, 1611, 1612, 1612, 1612, 1799, 1799, 1575, 1575, 1575,
1608
1609      1799, 1576,  788, 1584, 1577, 1616, 1616, 1616, 1799, 1613,
1610      1581, 1581, 1581, 1799, 1582, 1799, 1799, 1583,  884,  884,
1611       884, 1799, 1617, 1585, 1585, 1585, 1799, 1586, 1799, 1799,
1612      1587, 1610, 1799, 1799, 1614, 1799,  886, 1622, 1622, 1622,
1613      1591, 1591, 1591, 1594, 1594, 1594, 1799, 1595, 1799, 1799,
1614      1596, 1630, 1630, 1630, 1623, 1040,  786,  786,  786, 1611,
1615      1611, 1611, 1612, 1612, 1612, 1619, 1799, 1799, 1631, 1641,
1616      1641, 1641, 1799, 1642,  788, 1799, 1643, 1799, 1799, 1613,
1617      1616, 1616, 1616, 1646, 1646, 1646, 1799, 1647, 1799, 1799,
1618      1648, 1650, 1650, 1650, 1653, 1653, 1653, 1617, 1622, 1622,
1619
1620      1622, 1640, 1799, 1655, 1655, 1655, 1799, 1656, 1799, 1651,
1621      1657, 1654, 1040, 1799, 1799, 1623, 1040, 1658, 1658, 1658,
1622      1799, 1040, 1659, 1659, 1659, 1630, 1630, 1630, 1664, 1664,
1623      1664, 1799, 1665, 1799, 1799, 1666,  786,  786,  786, 1641,
1624      1641, 1641, 1631, 1642, 1799, 1799, 1643, 1675, 1675, 1675,
1625      1799, 1646, 1646, 1646,  788, 1647, 1799, 1799, 1648, 1677,
1626      1677, 1677, 1799, 1799, 1676, 1650, 1650, 1650, 1653, 1653,
1627      1653, 1680, 1680, 1680, 1799, 1681, 1678, 1799, 1682, 1799,
1628      1655, 1655, 1655, 1651, 1656, 1654, 1040, 1657, 1799, 1040,
1629      1658, 1658, 1658, 1659, 1659, 1659, 1799, 1673, 1040, 1038,
1630
1631      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1799, 1799,
1632      1038, 1695, 1695, 1695, 1799, 1038, 1038, 1038, 1040, 1038,
1633      1664, 1664, 1664, 1799, 1665, 1799, 1799, 1666, 1799, 1696,
1634      1799, 1799, 1799, 1799, 1675, 1675, 1675, 1677, 1677, 1677,
1635      1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
1636      1038, 1676, 1799, 1038, 1678, 1799, 1799, 1799, 1038, 1038,
1637      1038, 1040, 1038, 1698, 1698, 1698, 1799, 1699, 1799, 1799,
1638      1700, 1701, 1701, 1701, 1799, 1702, 1799, 1799, 1703, 1695,
1639      1695, 1695, 1799, 1038, 1038, 1680, 1680, 1680, 1799, 1681,
1640      1799, 1799, 1682, 1799, 1698, 1698, 1698, 1696, 1699, 1799,
1641
1642      1799, 1700, 1799, 1040, 1038, 1038, 1038, 1038, 1038, 1710,
1643      1038, 1038, 1038, 1799, 1799, 1038, 1726, 1726, 1726, 1799,
1644      1038, 1038, 1038, 1040, 1038, 1701, 1701, 1701, 1799, 1702,
1645      1799, 1799, 1703, 1799, 1040, 1041, 1799, 1799, 1799, 1729,
1646      1729, 1729, 1735, 1735, 1735, 1038, 1038, 1038, 1038, 1038,
1647      1038, 1038, 1038, 1038, 1038, 1710, 1730, 1799, 1038, 1799,
1648       723, 1799, 1799, 1038, 1038, 1038, 1040, 1038, 1726, 1726,
1649      1726, 1799, 1799, 1729, 1729, 1729, 1739, 1739, 1739, 1799,
1650      1740, 1799, 1799, 1741, 1799, 1799, 1040, 1799, 1038, 1038,
1651      1730, 1735, 1735, 1735, 1739, 1739, 1739, 1799, 1740, 1799,
1652
1653      1799, 1741, 1771, 1771, 1771, 1799, 1771, 1771, 1771,  723,
1654      1772, 1799, 1799, 1773, 1799, 1144, 1797, 1797, 1797, 1799,
1655       723, 1797, 1797, 1797,  723, 1799, 1746, 1799, 1799, 1799,
1656      1799, 1799, 1799, 1799, 1798, 1799, 1799, 1799, 1799, 1798,
1657       182,  182,  182,  182,  182,  182,  182,  182,  182,  183,
1658       183,  183,  183,  183,  183,  183,  183,  183,  188,  188,
1659       188,  188,  188,  188,  188,  188,  188,  191,  191,  191,
1660       191,  191,  191,  191,  191,  191,  194,  194,  194,  194,
1661       194,  194,  194,  194,  194,  197,  197,  197,  197,  197,
1662       197,  197,  197,  197,  204,  204,  204,  204,  204,  204,
1663
1664       204,  204,  204,  212,  212,  212,  212,  212,  212,  212,
1665       212,  212,  216,  216,  216,  216,  216,  216,  216,  216,
1666       216,  227,  227,  227,  227,  227,  227,  227,  227,  227,
1667       238,  238,  238,  238,  238,  238,  238,  238,  238,  245,
1668       245,  245,  245,  245,  245,  245,  245,  245,  253,  253,
1669       253,  253,  253,  253,  253,  253,  253,  259,  259,  259,
1670       259,  259,  259,  259,  259,  259,  265,  265,  265,  265,
1671       265,  265,  265,  265,  265,  270,  270,  270,  270,  270,
1672       270,  270,  270,  270,  287,  287,  287,  287,  287,  287,
1673       287,  287,  287,  295,  295,  295,  295,  295,  295,  295,
1674
1675       295,  295,  311,  311,  311,  311,  311,  311,  311,  311,
1676       311,  317,  317,  317,  317,  317,  317,  317,  317,  317,
1677       321,  321,  321,  321,  321,  321,  321,  321,  321,  327,
1678       327,  327,  327,  327,  327,  327,  327,  327,  334,  334,
1679       334,  334,  334,  334,  334,  334,  334,  341,  341,  341,
1680       341,  341,  341,  341,  341,  341,  346,  346,  346,  346,
1681       346,  346,  346,  346,  346,  354,  354,  354,  354,  354,
1682       354,  354,  354,  354,  360,  360,  360,  360,  360,  360,
1683       360,  360,  360,  367,  367,  367,  367,  367,  367,  367,
1684       367,  367,  371,  371,  371,  371,  371,  371,  371,  371,
1685
1686       371,  377,  377,  377,  377,  377,  377,  377,  377,  377,
1687       383,  383,  383,  383,  383,  383,  383,  383,  383,  390,
1688       390,  390,  390,  390,  390,  390,  390,  390,  397,  397,
1689       397,  397,  397,  397,  397,  397,  397,  405,  405,  405,
1690       405,  405,  405,  405,  405,  405,  409,  409,  409,  409,
1691       409,  409,  409,  409,  409,  415,  415,  415,  415,  415,
1692       415,  415,  415,  415,  419,  419,  419,  419,  419,  419,
1693       419,  419,  419,  427,  427,  427,  427,  427,  427,  427,
1694       427,  427,  432,  432,  432,  432,  432,  432,  432,  432,
1695       432,  452,  452,  452, 1799, 1799, 1799,  452,  470,  470,
1696
1697       470, 1799, 1799, 1799,  470,  478,  478,  478, 1799, 1799,
1698      1799,  478,  488,  488,  488, 1799, 1799, 1799,  488,  494,
1699       494,  494, 1799, 1799, 1799,  494,  507,  507,  507, 1799,
1700      1799, 1799,  507,  515,  515,  515, 1799, 1799, 1799,  515,
1701       526,  526,  526, 1799, 1799, 1799,  526,  530,  530,  530,
1702      1799, 1799, 1799,  530,  538,  538,  538, 1799, 1799, 1799,
1703       538,  544,  544,  544, 1799, 1799, 1799,  544,  550,  550,
1704       550, 1799, 1799, 1799,  550,  554,  554,  554, 1799, 1799,
1705      1799,  554,  560,  560,  560, 1799, 1799, 1799,  560,  568,
1706       568,  568, 1799, 1799, 1799,  568,  572,  572,  572, 1799,
1707
1708      1799, 1799,  572,  577,  577,  577, 1799, 1799, 1799,  577,
1709       581,  581,  581,  581,  581,  581,  581, 1799,  581,  596,
1710      1799, 1799, 1799,  596,  620, 1799, 1799, 1799,  620,  630,
1711      1799, 1799, 1799,  630,  488,  488,  488, 1799, 1799, 1799,
1712       488,  636, 1799, 1799, 1799,  636,  494,  494,  494, 1799,
1713      1799, 1799,  494,  641, 1799, 1799, 1799,  641,  657, 1799,
1714      1799, 1799,  657,  669, 1799, 1799, 1799,  669,  673, 1799,
1715      1799, 1799,  673,  530,  530,  530, 1799, 1799, 1799,  530,
1716       681, 1799, 1799, 1799,  681,  538,  538,  538, 1799, 1799,
1717      1799,  538,  685, 1799, 1799, 1799,  685,  544,  544,  544,
1718
1719      1799, 1799, 1799,  544,  691, 1799, 1799, 1799,  691,  550,
1720       550,  550, 1799, 1799, 1799,  550,  695, 1799, 1799, 1799,
1721       695,  554,  554,  554, 1799, 1799, 1799,  554,  700, 1799,
1722      1799, 1799,  700,  560,  560,  560, 1799, 1799, 1799,  560,
1723       706, 1799, 1799, 1799,  706,  568,  568,  568, 1799, 1799,
1724      1799,  568,  710, 1799, 1799, 1799,  710,  572,  572,  572,
1725      1799, 1799, 1799,  572,  714, 1799, 1799, 1799,  714,  577,
1726       577,  577, 1799, 1799, 1799,  577,  720, 1799, 1799, 1799,
1727       720,  722,  722,  722,  722,  722,  722,  722,  722,  722,
1728       728, 1799, 1799, 1799, 1799,  728,  452,  452,  452, 1799,
1729
1730      1799, 1799,  452,  737,  737,  737,  737, 1799, 1799,  737,
1731       737,  470,  470,  470, 1799, 1799, 1799,  470,  765,  765,
1732       765,  765, 1799, 1799,  765,  765,  478,  478,  478, 1799,
1733      1799, 1799,  478,  779,  779,  779,  779, 1799, 1799,  779,
1734       779,  488,  488,  488, 1799, 1799, 1799,  488,  787,  787,
1735       787,  787, 1799, 1799,  787,  787,  494,  494,  494, 1799,
1736      1799, 1799,  494,  795,  795,  795,  795, 1799, 1799,  795,
1737       795,  507,  507,  507, 1799, 1799, 1799,  507,  813,  813,
1738       813,  813, 1799, 1799,  813,  813,  515,  515,  515, 1799,
1739      1799, 1799,  515,  831,  831,  831,  831, 1799, 1799,  831,
1740
1741       831,  838,  838,  838,  838, 1799, 1799,  838,  838,  530,
1742       530,  530, 1799, 1799, 1799,  530,  849,  849,  849,  849,
1743      1799, 1799,  849,  849,  538,  538,  538,  538, 1799,  538,
1744      1799,  538,  857,  857,  857,  857, 1799, 1799,  857,  857,
1745       544,  544,  544,  544, 1799,  544, 1799,  544,  868,  868,
1746       868,  868, 1799, 1799,  868,  868,  875,  875,  875,  875,
1747      1799, 1799,  875,  875,  554,  554,  554,  554, 1799,  554,
1748      1799,  554,  885,  885,  885,  885, 1799, 1799,  885,  885,
1749       560,  560,  560, 1799, 1799, 1799,  560,  893,  893,  893,
1750       893, 1799, 1799,  893,  893,  568,  568,  568, 1799, 1799,
1751
1752      1799,  568,  899,  899,  899,  899, 1799, 1799,  899,  899,
1753       906,  906,  906,  906, 1799, 1799,  906,  906,  577,  577,
1754       577, 1799, 1799, 1799,  577,  915,  915,  915,  915, 1799,
1755      1799,  915,  915,  722,  722,  722,  722,  722,  722,  722,
1756       722,  722,  728, 1799,  728, 1799, 1799,  728,  452,  452,
1757       452, 1799, 1799, 1799,  452,  737,  737,  737,  737, 1799,
1758      1799,  737,  737,  470,  470,  470,  470, 1799,  470, 1799,
1759       470,  765,  765,  765,  765, 1799, 1799,  765,  765,  478,
1760       478,  478, 1799, 1799, 1799,  478,  779,  779,  779,  779,
1761      1799, 1799,  779,  779,  488,  488,  488, 1799, 1799, 1799,
1762
1763       488,  787,  787,  787,  787, 1799, 1799,  787,  787,  494,
1764       494,  494, 1799, 1799, 1799,  494,  795,  795,  795,  795,
1765      1799, 1799,  795,  795,  507,  507,  507, 1799, 1799, 1799,
1766       507,  813,  813,  813,  813, 1799, 1799,  813,  813,  515,
1767       515,  515, 1799, 1799, 1799,  515,  831,  831,  831,  831,
1768      1799, 1799,  831,  831,  838,  838,  838,  838, 1799, 1799,
1769       838,  838,  530,  530,  530, 1799, 1799, 1799,  530,  849,
1770       849,  849,  849, 1799, 1799,  849,  849,  857,  857,  857,
1771       857, 1799, 1799,  857,  857,  544,  544,  544, 1799, 1799,
1772      1799,  544,  868,  868,  868,  868, 1799, 1799,  868,  868,
1773
1774       875,  875,  875,  875, 1799, 1799,  875,  875,  554,  554,
1775       554, 1799, 1799, 1799,  554,  885,  885,  885,  885, 1799,
1776      1799,  885,  885,  560,  560,  560, 1799, 1799, 1799,  560,
1777       893,  893,  893,  893, 1799, 1799,  893,  893,  568,  568,
1778       568, 1799, 1799, 1799,  568,  899,  899,  899,  899, 1799,
1779      1799,  899,  899,  906,  906,  906,  906, 1799, 1799,  906,
1780       906,  577,  577,  577, 1799, 1799, 1799,  577,  915,  915,
1781       915,  915, 1799, 1799,  915,  915,  722,  722,  722,  722,
1782       722,  722,  722,  722,  722, 1038, 1038, 1038, 1038, 1038,
1783      1038, 1038, 1038, 1038,  452,  452,  452, 1799, 1799, 1799,
1784
1785       452,  737,  737,  737,  737, 1799, 1799,  737,  737,  470,
1786       470,  470, 1799, 1799, 1799,  470,  765,  765,  765,  765,
1787      1799, 1799,  765,  765,  478,  478,  478, 1799, 1799, 1799,
1788       478,  779,  779,  779,  779, 1799, 1799,  779,  779,  488,
1789       488,  488, 1799, 1799, 1799,  488,  787,  787,  787,  787,
1790      1799, 1799,  787,  787,  494,  494,  494, 1799, 1799, 1799,
1791       494,  507,  507,  507, 1799, 1799, 1799,  507,  813,  813,
1792       813,  813, 1799, 1799,  813,  813,  515,  515,  515,  515,
1793      1799,  515, 1799,  515,  831,  831,  831,  831, 1799, 1799,
1794       831,  831,  838,  838,  838,  838, 1799, 1799,  838,  838,
1795
1796       530,  530,  530, 1799, 1799, 1799,  530,  849,  849,  849,
1797       849, 1799, 1799,  849,  849,  857,  857,  857,  857, 1799,
1798      1799,  857,  857,  544,  544,  544, 1799, 1799, 1799,  544,
1799       868,  868,  868,  868, 1799, 1799,  868,  868,  875,  875,
1800       875,  875, 1799, 1799,  875,  875,  554,  554,  554, 1799,
1801      1799, 1799,  554,  885,  885,  885,  885, 1799, 1799,  885,
1802       885,  560,  560,  560, 1799, 1799, 1799,  560,  893,  893,
1803       893,  893, 1799, 1799,  893,  893,  568,  568,  568,  568,
1804      1799,  568, 1799,  568,  899,  899,  899,  899, 1799, 1799,
1805       899,  899,  906,  906,  906,  906, 1799, 1799,  906,  906,
1806
1807       577,  577,  577,  577, 1799,  577, 1799,  577,  915,  915,
1808       915,  915, 1799, 1799,  915,  915,  722,  722,  722,  722,
1809       722,  722,  722,  722,  722, 1038, 1038, 1038, 1038, 1038,
1810      1038, 1038, 1038, 1038,  452,  452,  452, 1799, 1799, 1799,
1811       452,  737,  737,  737,  737, 1799, 1799,  737,  737,  470,
1812       470,  470, 1799, 1799, 1799,  470,  765,  765,  765,  765,
1813      1799, 1799,  765,  765,  478,  478,  478, 1799, 1799, 1799,
1814       478,  779,  779,  779,  779, 1799, 1799,  779,  779,  488,
1815       488,  488, 1799, 1799, 1799,  488,  787,  787,  787,  787,
1816      1799, 1799,  787,  787,  494,  494,  494, 1799, 1799, 1799,
1817
1818       494,  507,  507,  507, 1799, 1799, 1799,  507,  813,  813,
1819       813,  813, 1799, 1799,  813,  813,  515,  515,  515,  515,
1820      1799,  515, 1799,  515,  831,  831,  831,  831, 1799, 1799,
1821       831,  831,  838,  838,  838,  838, 1799, 1799,  838,  838,
1822       530,  530,  530, 1799, 1799, 1799,  530,  849,  849,  849,
1823       849, 1799, 1799,  849,  849,  857,  857,  857,  857, 1799,
1824      1799,  857,  857,  544,  544,  544,  544, 1799,  544, 1799,
1825       544,  868,  868,  868,  868, 1799, 1799,  868,  868,  875,
1826       875,  875,  875, 1799, 1799,  875,  875,  554,  554,  554,
1827       554, 1799,  554, 1799,  554,  885,  885,  885,  885, 1799,
1828
1829      1799,  885,  885,  560,  560,  560, 1799, 1799, 1799,  560,
1830       893,  893,  893,  893, 1799, 1799,  893,  893,  899,  899,
1831       899,  899, 1799, 1799,  899,  899,  906,  906,  906,  906,
1832      1799, 1799,  906,  906, 1683, 1683, 1683, 1683, 1683, 1683,
1833      1683, 1683, 1683, 1684, 1684, 1684, 1684, 1684, 1684, 1684,
1834      1684, 1684, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
1835      1705, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
1836      1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1725,
1837      1725, 1725, 1725, 1725, 1725, 1725, 1725, 1725,  181, 1799,
1838      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1839
1840      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1841      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1842      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1843      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1844      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
1845      1799, 1799, 1799, 1799, 1799, 1799, 1799
1846     } ;
1847
1848 static yyconst flex_int16_t yy_chk[6658] =
1849     {   0,
1850         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1851         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1852         4,   10, 1518,    5, 1519,    9,    6,  436,   10,    7,
1853         8,    8,    8,  186,   11,   13,   13,   12,   14,   14,
1854        13,   13,  436,   14,   14,  187,    8,   17,   17,  186,
1855        13,   15,   15,   14,   15,  190,   15,   16,   16,  333,
1856        16,  187,   16,   18,   18,  277,   15,   19,   19,   19,
1857       333,  190,   16,   20,   20,   20,   23,   23,   23,   24,
1858        24,   24,  275,   19,   25,   25,   25,   17,  283,   20,
1859       283,  275,   23,  247,  281,   24,  184,  184,  184,  277,
1860
1861        25, 1520, 1521,   18,   21,   21,   21,   21,   21,   21,
1862        21,   21,   21,   21,   21,   21,   21,   21,   21,  248,
1863        21,   21,   21,   21,   21,   26,   26,   26,   27,   27,
1864        27,   28,   28,   28,   29,   29,   29,   30,   30,   30,
1865       247,   26,  278,  281,   27,   21,   21,   28,  213,  228,
1866        29,  208,  278,   30,  185,  185,  185,  189,  189,  189,
1867       210,  210,  210, 1523,  213,  228,  248,  208,   21,   22,
1868        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
1869        22,   22,   22,   22,  249,   22,   22,   22,   22,   22,
1870        31,   31,   31,   32,   32,   32,   33,   33,   33,   34,
1871
1872        34,   34,   35,   35,   35,  208,   31,  461, 1440,   32,
1873        22,   22,   33,  461,  363,   34,  239,  305,   35,   36,
1874        36,   36,   37,   37,   37,   38,   38,   38,  217,  217,
1875       217,  249,  239,   22,  297,   36, 1440,  305,   37,  298,
1876       221,   38,   39,   39,   39,   39,   39,   39,   39,   39,
1877        39,   39,   39,   39,   39,   39,   39,  363,   39,   39,
1878        39,   39,   39,   45,   45,   45,   46,   46,   46,   47,
1879        47,   47,   48,   48,   48,  221,   49,   49,   49,   45,
1880       659,  297,   46,   39,   39,   47,  298,  221,   48,  659,
1881       308,   39,   49,  308,   39,  225,  225,  225, 1524, 1532,
1882
1883        39,   40,   40,   40,   40,   40,   40,   40,   40,   40,
1884        40,   40,   40,   40,   40,   40,  220,   40,   40,   40,
1885        40,   40,   41,   41,   42,   42,  423,   41,  423,   42,
1886        50,   50,   50,   51,   51,   51,  243,   41,  233,   42,
1887       243,  220,   40,   40,  243,  233,   50,  254,  445,   51,
1888        40,  445,  458,   40,  233,  458,  725,  220,  386,   40,
1889       725, 1533,   41,  254,   42,   43,   43,   43,   43,   43,
1890        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
1891       474,   43,   43,   43,   43,   43,   52,   52,   52,   55,
1892        55,   55,   56,   56,   56,   59,   59,   59,   60,   60,
1893
1894        60,  386,   52,  261, 1534,   55,   43,   43,   56,  266,
1895       261,   59,  474, 1509,   60,   43,  336,   43,  337,  261,
1896        43,  236,  236,  236, 1509,  266,   43,   44,   44,   44,
1897        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
1898        44,   44,  279,   44,   44,   44,   44,   44,   61,   61,
1899        61,   62,   62,   62,   63,   63,   63,   64,   64,   64,
1900        65,   65,   65,  336,   61,  337,  279,   62,   44,   44,
1901        63,  288,  401,   64,  468,  464,   65,   44,  464,   44,
1902       468,  279,   44,  246,  246,  246,  401,  288,   44,   53,
1903        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
1904
1905        53,   53,   53,   53, 1553,   53,   53,   53,   53,   53,
1906        66,   66,   66,   67,   67,   67,   68,   68,   68,   69,
1907        69,   69,   70,   70,   70,  466,   66, 1554,  466,   67,
1908        53,   53,   68,  303,  318,   69, 1557,   53,   70,  251,
1909       251,  251,   53,  260,  260,  260,  263,  263,  263,  303,
1910       318,   53,   54,   54,   54,   54,   54,   54,   54,   54,
1911        54,   54,   54,   54,   54,   54,   54, 1037,   54,   54,
1912        54,   54,   54,   71,   71,   71,   72,   72,   72,   73,
1913        73,   73,   74,   74,   74,   75,   75,   75, 1037,   71,
1914      1558,  918,   72,   54,   54,   73,  328,  342,   74, 1510,
1915
1916        54,   75,  271,  271,  271,   54,  285,  285,  285,  918,
1917      1510,  280,  328,  342,   54,   57,   57,   57,   57,   57,
1918        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
1919      1441,   57,   57,   57,   57,   57,   76,   76,   76,   77,
1920        77,   77,   78,   78,   78,   79,   79,   79,   80,   80,
1921        80,  280,   76,  462,  280,   77,   57,   57,   78,  486,
1922       280,   79,  749, 1441,   80,  486,  462,   57,  296,  296,
1923       296,  300,  300,  300,  749,   57,   58,   58,   58,   58,
1924        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
1925        58, 1145,   58,   58,   58,   58,   58,   81,   81,   81,
1926
1927        82,   82,   82,   83,   83,   83,   84,   84,   84,   85,
1928        85,   85,  583,   81, 1177, 1144,   82,   58,   58,   83,
1929      1145, 1177,   84,  757, 1559,   85,  583,  355,   58,   86,
1930        86,   86,   87,   87,   87,  757,   58,   88,   88,   88,
1931       312,  312,  312,  355, 1560,   86, 1561, 1562,   87,  315,
1932       315,  315, 1144,   88,   89,   89,   89,   89,   89,   89,
1933        89,   89,   89,   89,   89,   89,   89,   89,   89,  399,
1934        89,   89,   89,   89,   89,   91,   91,   91,   92,   92,
1935        92,   93,   93,   93,   94,   94,   94,   95,   95,   95,
1936      1563,   91,  313,  782,   92,   89,   89,   93,   89,  313,
1937
1938        94,  368,  399,   95, 1564,  782,   89, 1181,  313,  322,
1939       322,  322,   89, 1565, 1181,   89,  399,  368,   89,   90,
1940        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1941        90,   90,   90,   90, 1499,   90,   90,   90,   90,   90,
1942        96,   96,   96,   97,   97,   97,   98,   98,   98,  101,
1943       101,  101,  102,  102,  102, 1143,   96,  323, 1567,   97,
1944        90,   90,   98,   90,  323,  101,  378, 1568,  102, 1499,
1945      1143,   90, 1256,  323,  325,  325,  325,   90, 1256, 1569,
1946        90, 1570,  378,   90,   99,   99,   99,   99,   99,   99,
1947        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1948
1949        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1950        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1951        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1952        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1953        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1954        99,   99,  103,  103,  103,  103,  103,  103,  103,  103,
1955       103,  103,  103,  103,  103,  103,  103, 1578,  103,  103,
1956       103,  103,  103,  105,  105,  105,  106,  106,  106,  109,
1957       109,  109,  110,  110,  110,  111,  111,  111, 1580,  105,
1958       502, 1304,  106,  103,  103,  109, 1305, 1304,  110, 1592,
1959
1960      1258,  111, 1305,  502,  103,  104,  104,  104,  104,  104,
1961       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
1962      1500,  104,  104,  104,  104,  104,  112,  112,  112,  113,
1963       113,  113,  114,  114,  114,  115,  115,  115,  116,  116,
1964       116, 1258,  112,  504, 1327,  113,  104,  104,  114, 1328,
1965      1327,  115, 1358, 1500,  116, 1328,  504,  104,  107,  107,
1966       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
1967       107,  107,  107, 1357,  107,  107,  107,  107,  107,  119,
1968       119,  119,  120,  120,  120,  121,  121,  121,  122,  122,
1969       122,  123,  123,  123, 1358,  119,  505, 1593,  120,  107,
1970
1971       107,  121, 1597,  107,  122, 1598, 1599,  123, 1257,  505,
1972       107, 1357,  107,  335,  335,  335,  339,  339,  339,  107,
1973       108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
1974       108,  108,  108,  108,  108, 1257,  108,  108,  108,  108,
1975       108,  124,  124,  124,  125,  125,  125,  126,  126,  126,
1976       129,  129,  129,  130,  130,  130, 1600,  124,  575, 1501,
1977       125,  108,  108,  126, 1602,  108,  129, 1603, 1604,  130,
1978      1605,  575,  108, 1606,  108,  347,  347,  347,  352,  352,
1979       352,  108,  117,  117,  117,  117,  117,  117,  117,  117,
1980       117,  117,  117,  117,  117,  117,  117, 1501,  117,  117,
1981
1982       117,  117,  117,  131,  131,  131,  132,  132,  132,  133,
1983       133,  133,  134,  134,  134,  135,  135,  135, 1607,  131,
1984      1608, 1609,  132,  117,  117,  133,  391, 1614,  134,  117,
1985      1615,  135,  361,  361,  361,  365,  365,  365,  372,  372,
1986       372, 1618,  391,  117,  118,  118,  118,  118,  118,  118,
1987       118,  118,  118,  118,  118,  118,  118,  118,  118, 1626,
1988       118,  118,  118,  118,  118,  136,  136,  136,  139,  139,
1989       139,  140,  140,  140,  143,  143,  143,  144,  144,  144,
1990      1627,  136,  373, 1628,  139,  118,  118,  140, 1629,  373,
1991       143,  118, 1632,  144,  375,  375,  375, 1633,  373,  384,
1992
1993       384,  384,  388,  388,  388,  118,  127,  127,  127,  127,
1994       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
1995       127, 1620,  127,  127,  127,  127,  127,  145,  145,  145,
1996       146,  146,  146,  147,  147,  147,  148,  148,  148,  149,
1997       149,  149, 1635,  145, 1636, 1637,  146,  127,  127,  147,
1998       406, 1620,  148,  127, 1639,  149,  127,  398,  398,  398,
1999       403,  403,  403,  410,  410,  410,  406,  127,  128,  128,
2000       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
2001       128,  128,  128, 1644,  128,  128,  128,  128,  128,  150,
2002       150,  150,  153,  153,  153,  154,  154,  154,  155,  155,
2003
2004       155,  156,  156,  156, 1660,  150,  411,  416,  153,  128,
2005       128,  154,  428,  411,  155,  128, 1661,  156,  128,  413,
2006       413,  413,  411,  416,  420,  420,  420, 1662,  428,  128,
2007       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2008       137,  137,  137,  137,  137, 1663,  137,  137,  137,  137,
2009       137,  157,  157,  157,  158,  158,  158,  159,  159,  159,
2010       160,  160,  160,  163,  163,  163, 1667,  157, 1668, 1080,
2011       158,  137,  137,  159, 1080, 1669,  160, 1080, 1588,  163,
2012      1670, 1080,  137,  138,  138,  138,  138,  138,  138,  138,
2013       138,  138,  138,  138,  138,  138,  138,  138, 1671,  138,
2014
2015       138,  138,  138,  138,  164,  164,  164,  167,  167,  167,
2016       168,  168,  168,  169,  169,  169,  170,  170,  170, 1672,
2017       164, 1588, 1081,  167,  138,  138,  168, 1081, 1674,  169,
2018      1081, 1679,  170, 1685, 1081,  138,  141,  141,  141,  141,
2019       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2020       141, 1687,  141,  141,  141,  141,  141,  171,  171,  171,
2021       172,  172,  172,  173,  173,  173,  174,  174,  174,  177,
2022       177,  177, 1679,  171, 1690, 1691,  172,  141,  141,  173,
2023       421, 1693,  174,  141,  200,  177,  141,  348,  425,  425,
2024       425,  433,  433,  433,  435,  435,  435,  141,  142,  142,
2025
2026       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
2027       142,  142,  142,  421,  142,  142,  142,  142,  142,  178,
2028       178,  178,  200,  273,  598,  598,  598, 1694,  200,  421,
2029       348,  434,  200,  273,  348,  178, 1681,  200,  434,  142,
2030       142,  272,  444,  444,  444,  142, 1697,  434,  142, 1707,
2031      1681,  272,  586,  586,  586, 1709,  586,  273,  273,  142,
2032       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
2033       151,  151,  151,  151,  151,  272,  151,  151,  151,  151,
2034       151,  272, 1549,  598,  272, 1702,  472,  472,  472, 1711,
2035       272,  480,  480,  480, 1712, 1702,  444,  495,  495,  495,
2036
2037      1550,  151,  151,  472,  740,  740,  740, 1549,  480,  151,
2038      1551,  151, 1718,  151,  495,  611,  611,  611,  643,  643,
2039       643,  151,  152,  152,  152,  152,  152,  152,  152,  152,
2040       152,  152,  152,  152,  152,  152,  152, 1550,  152,  152,
2041       152,  152,  152,  509,  509,  509, 1719, 1551,  517,  517,
2042       517,  518,  518,  518, 1720,  527,  527,  527, 1682, 1708,
2043       509, 1652, 1721,  152,  152,  517, 1703, 1723,  518, 1682,
2044      1708,  152,  527,  152,  611,  152, 1703,  643, 1589, 1724,
2045       648,  648,  648,  152,  161,  161,  161,  161,  161,  161,
2046       161,  161,  161,  161,  161,  161,  161,  161,  161, 1652,
2047
2048       161,  161,  161,  161,  161,  532,  532,  532, 1725, 1589,
2049       551,  551,  551,  573,  573,  573,  578,  578,  578,  596,
2050       596,  596,  532, 1706, 1706,  161,  161,  551, 1704, 1727,
2051       573, 1728, 1731,  578,  617,  617,  617,  596,  617,  648,
2052      1732,  617,  754,  754,  754,  932,  932,  932,  161,  162,
2053       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
2054       162,  162,  162,  162, 1704,  162,  162,  162,  162,  162,
2055       616,  616,  616,  936,  936,  936,  597,  597,  597,  620,
2056       620,  620,  621,  621,  621, 1705, 1733,  616, 1734, 1736,
2057       162,  162, 1742, 1743,  597, 1744, 1745,  620, 1748, 1705,
2058
2059       621,  625,  625,  625, 1749,  625, 1750, 1751,  625,  933,
2060       933,  933, 1753,  162,  165,  165,  165,  165,  165,  165,
2061       165,  165,  165,  165,  165,  165,  165,  165,  165,  597,
2062       165,  165,  165,  165,  165,  624,  624,  624,  960,  960,
2063       960,  621,  626,  626,  626,  628,  628,  628,  638,  638,
2064       638,  933,  624, 1754, 1755,  165,  165, 1756, 1758,  626,
2065      1759, 1746,  628, 1760, 1761,  638,  165,  166,  166,  166,
2066       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
2067       166,  166, 1746,  166,  166,  166,  166,  166,  630,  630,
2068       630, 1763,  631,  631,  631,  636,  636,  636,  637,  637,
2069
2070       637,  652,  652,  652, 1765, 1762,  630, 1517,  166,  166,
2071       631, 1762, 1516,  636, 1774, 1778,  637, 1790,  652,  166,
2072       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
2073       175,  175,  175,  175,  175,  631,  175,  175,  175,  175,
2074       175,  639,  639,  639, 1515,  639, 1778, 1774,  639,  641,
2075       641,  641,  653,  653,  653, 1784,  653,  637, 1752,  653,
2076      1790,  175,  175,  657,  657,  657, 1514,  641, 1767,  661,
2077       661,  661,  175,  661, 1513, 1752,  661,  971,  971,  971,
2078      1767,  657, 1757, 1784,  175,  176,  176,  176,  176,  176,
2079       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
2080
2081      1757,  176,  176,  176,  176,  176,  642,  642,  642,  972,
2082       972,  972,  658,  658,  658,  660,  660,  660,  662,  662,
2083       662,  663,  663,  663,  642,  663,  176,  176,  663, 1775,
2084       658, 1772,  660, 1773, 1779,  662, 1785,  176,  664,  664,
2085       664,  642,  669,  669,  669,  670,  670,  670, 1795,  176,
2086       218,  972,  671,  671,  671,  664, 1512,  218, 1511, 1795,
2087       669, 1780, 1775,  670, 1785, 1779,  218,  218,  658,  671,
2088       672,  672,  672, 1772,  672, 1773, 1776,  672,  673,  673,
2089       673,  674,  674,  674,  676,  676,  676,  681,  681,  681,
2090       218,  218,  218, 1052, 1052, 1052,  673,  218,  670,  674,
2091
2092       218,  676, 1780, 1777,  218,  681,  218, 1782,  218,  677,
2093       677,  677, 1776,  677, 1783, 1506,  677,  682,  682,  682,
2094      1794,  683,  683,  683,  684,  684,  684,  685,  685,  685,
2095       686,  686,  686, 1505, 1794,  682, 1781,  674,  683, 1777,
2096      1782,  684,  688,  688,  688,  685, 1504, 1783,  686,  689,
2097       689,  689,  690,  690,  690,  691,  691,  691, 1786,  688,
2098      1481,  692,  692,  692, 1791, 1479,  689, 1786,  682,  690,
2099       693,  693,  693,  691,  694,  694,  694, 1781,  694,  692,
2100      1478,  694,  695,  695,  695, 1787,  686,  693,  696,  696,
2101       696,  697,  697,  697, 1787,  689,  692,  698,  698,  698,
2102
2103       695,  699,  699,  699, 1788, 1477,  696, 1791,  697,  689,
2104       700,  700,  700, 1476,  698,  701,  701,  701,  699,  706,
2105       706,  706, 1469,  707,  707,  707, 1789, 1792,  700,  710,
2106       710,  710, 1788,  701,  711,  711,  711,  706, 1467,  696,
2107      1466,  707, 1465,  698,  712,  712,  712,  710, 1463,  713,
2108       713,  713,  711,  713, 1789, 1792,  713,  698,  714,  714,
2109       714,  712,  715,  715,  715, 1462,  717,  717,  717, 1461,
2110       718,  718,  718, 1793,  718, 1460,  714,  718, 1459, 1458,
2111       715,  701,  707,  717,  720,  720,  720,  721,  721,  721,
2112       736,  736,  736,  711,  737,  737,  737,  739,  739,  739,
2113
2114      1457, 1793,  720, 1456, 1455,  721, 1454, 1453,  736,  758,
2115       758,  758,  737, 1450, 1449,  739, 1448, 1445,  715, 1433,
2116       759,  759,  759, 1425,  759, 1424,  758,  759,  762,  762,
2117       762,  764,  764,  764,  765,  765,  765,  767,  767,  767,
2118       739, 1423,  772,  772,  772,  762,  721, 1422, 1421,  764,
2119      1420, 1419,  765, 1405, 1404,  767,  769,  769,  769,  772,
2120       769, 1403, 1402,  769,  773,  773,  773, 1401,  773, 1400,
2121      1399,  773,  774,  774,  774,  775,  775,  775, 1393, 1392,
2122       767,  776,  776,  776,  762,  776, 1391, 1390,  776,  774,
2123      1389, 1388,  775,  778,  778,  778,  779,  779,  779,  781,
2124
2125       781,  781,  784,  784,  784,  786,  786,  786,  787,  787,
2126       787,  778, 1387, 1386,  779, 1385, 1384,  781, 1378,  784,
2127       789,  789,  789,  786, 1375, 1373,  787,  790,  790,  790,
2128      1371,  790, 1366, 1352,  790,  794,  794,  794,  789,  795,
2129       795,  795,  797,  797,  797,  806,  806,  806, 1350,  806,
2130      1349, 1332,  806,  794,  781, 1329, 1326,  795, 1325, 1322,
2131       797, 1306, 1303,  789,  812,  812,  812,  813,  813,  813,
2132       815,  815,  815,  818,  818,  818, 1301,  818, 1296, 1295,
2133       818, 1294,  812, 1293, 1292,  813, 1291, 1290,  815,  821,
2134       821,  821, 1289,  821, 1288, 1287,  821,  824,  824,  824,
2135
2136       825,  825,  825, 1283,  825, 1282, 1279,  825,  830,  830,
2137       830,  831,  831,  831,  824,  833,  833,  833,  834,  834,
2138       834, 1278,  834, 1276, 1273,  834,  830, 1269, 1268,  831,
2139       815, 1265, 1264,  833,  837,  837,  837,  838,  838,  838,
2140       840,  840,  840,  842,  842,  842, 1259,  842, 1244, 1242,
2141       842, 1241,  837, 1240, 1228,  838, 1224, 1223,  840, 1222,
2142       848,  848,  848,  849,  849,  849,  851,  851,  851,  852,
2143       852,  852,  853,  853,  853, 1220,  853,  833,  848,  853,
2144      1218,  849, 1199, 1198,  851, 1197,  852,  854,  854,  854,
2145       855,  855,  855, 1192,  855, 1189, 1188,  855,  856,  856,
2146
2147       856, 1182,  840, 1180,  854,  857,  857,  857,  859,  859,
2148       859,  861,  861,  861, 1179, 1178,  856, 1176,  862,  862,
2149       862,  851,  862,  857, 1175,  862,  859, 1172,  861,  865,
2150       865,  865,  866,  866,  866, 1171,  866, 1169, 1168,  866,
2151       867,  867,  867,  868,  868,  868,  865,  870,  870,  870,
2152       871,  871,  871, 1167,  871, 1166, 1164,  871,  867, 1162,
2153      1157,  868,  874,  874,  874,  870,  875,  875,  875, 1156,
2154       859,  877,  877,  877,  878,  878,  878,  882,  882,  882,
2155       874,  879,  879,  879,  875,  879, 1155, 1153,  879,  877,
2156      1152,  878, 1151, 1150,  882,  883,  883,  883, 1147,  883,
2157
2158      1139, 1134,  883,  884,  884,  884,  870,  885,  885,  885,
2159       887,  887,  887,  889,  889,  889,  892,  892,  892, 1132,
2160      1131,  884,  893,  893,  893,  885,  877, 1127,  887, 1119,
2161       889,  895,  895,  895,  892,  898,  898,  898, 1116, 1113,
2162       893,  899,  899,  899,  901,  901,  901, 1112, 1111,  895,
2163       902,  902,  902,  898,  902, 1099, 1098,  902, 1093,  899,
2164      1087, 1086,  901,  905,  905,  905, 1085,  887,  906,  906,
2165       906,  908,  908,  908, 1078,  910,  910,  910, 1075,  910,
2166      1071,  905,  910,  914,  914,  914,  906,  895, 1069,  908,
2167       915,  915,  915,  901,  917,  917,  917,  919,  919,  919,
2168
2169      1068,  914,  926,  926,  926,  944,  944,  944,  915,  948,
2170       948,  948,  917, 1064, 1062,  919,  919,  945,  945,  945,
2171       926,  945,  944, 1061,  945, 1058,  908,  948,  950,  950,
2172       950, 1056,  950, 1055, 1054,  950,  953,  953,  953,  954,
2173       954,  954, 1051,  954, 1050, 1049,  954,  959,  959,  959,
2174       917, 1048, 1047,  953,  948,  955,  955,  955, 1045,  955,
2175      1044, 1041,  955,  926, 1038,  959,  962,  962,  962,  963,
2176       963,  963, 1034,  963, 1030, 1028,  963,  964,  964,  964,
2177       965,  965,  965,  962,  967,  967,  967,  977,  977,  977,
2178       978,  978,  978,  959,  964,  980,  980,  980,  965,  981,
2179
2180       981,  981,  967, 1027,  977, 1024, 1019,  978, 1018,  982,
2181       982,  982, 1009,  980, 1008,  994,  981,  983,  983,  983,
2182       993,  983,  992,  979,  983,  965,  982,  986,  986,  986,
2183       976,  975,  978,  987,  987,  987,  988,  988,  988,  974,
2184       989,  989,  989,  973,  986,  970,  990,  990,  990,  969,
2185       987,  966,  961,  988,  958,  949,  980,  989,  991,  991,
2186       991,  995,  995,  995,  990,  996,  996,  996,  947,  946,
2187       982,  943,  942,  997,  997,  997,  991,  997,  995,  988,
2188       997,  941,  940,  996, 1000, 1000, 1000,  939, 1000,  938,
2189       937, 1000, 1003, 1003, 1003, 1004, 1004, 1004,  987,  935,
2190
2191      1005, 1005, 1005,  995, 1005,  989,  990, 1005,  934,  931,
2192      1003, 1010, 1010, 1010,  930, 1010,  929,  996, 1010,  991,
2193      1013, 1013, 1013, 1014, 1014, 1014, 1015, 1015, 1015,  928,
2194      1015,  927,  925, 1015, 1023, 1023, 1023, 1004, 1013,  924,
2195       923, 1014, 1020, 1020, 1020,  922, 1020,  913,  909, 1020,
2196       897,  896, 1023, 1003, 1025, 1025, 1025, 1026, 1026, 1026,
2197       891, 1026,  890,  888, 1026, 1029, 1029, 1029, 1031, 1031,
2198      1031, 1025, 1032, 1032, 1032, 1014, 1013, 1023, 1033, 1033,
2199      1033,  881,  880, 1029,  864, 1031, 1035, 1035, 1035,  863,
2200      1032, 1036, 1036, 1036,  860,  847, 1033, 1039, 1039, 1039,
2201
2202      1053, 1053, 1053, 1035, 1046, 1046, 1046,  846,  845, 1036,
2203      1029, 1057, 1057, 1057,  841, 1039, 1059, 1059, 1059, 1060,
2204      1060, 1060, 1046, 1063, 1063, 1063, 1033,  829, 1065, 1065,
2205      1065,  828, 1065,  827, 1032, 1065, 1070, 1070, 1070, 1072,
2206      1072, 1072,  826, 1072, 1039,  817, 1072,  816, 1036, 1076,
2207      1076, 1076, 1046,  811, 1070, 1077, 1077, 1077,  810,  809,
2208      1039, 1060, 1079, 1079, 1079, 1063, 1079, 1076,  805, 1079,
2209      1082, 1082, 1082,  804,  803, 1059,  802, 1083, 1083, 1083,
2210       801, 1083,  800, 1070, 1083,  799,  798, 1082, 1084, 1084,
2211      1084, 1088, 1088, 1088, 1089, 1089, 1089, 1090, 1090, 1090,
2212
2213      1091, 1091, 1091,  793,  785, 1076, 1084, 1092, 1092, 1092,
2214      1094, 1094, 1094, 1095, 1095, 1095,  783, 1095,  777,  768,
2215      1095, 1096, 1096, 1096, 1097, 1097, 1097, 1094, 1097,  763,
2216       756, 1097, 1100, 1100, 1100, 1084,  755,  753, 1096,  752,
2217      1101, 1101, 1101,  751, 1102, 1102, 1102,  750, 1102,  748,
2218      1100, 1102, 1103, 1103, 1103,  747, 1090, 1101,  746, 1091,
2219      1104, 1104, 1104, 1105, 1105, 1105, 1092, 1105,  745, 1103,
2220      1105, 1106, 1106, 1106, 1107, 1107, 1107, 1104, 1108, 1108,
2221      1108, 1109, 1109, 1109, 1110, 1110, 1110,  744, 1106,  743,
2222       742, 1107, 1114, 1114, 1114, 1108, 1115, 1115, 1115, 1109,
2223
2224      1115,  741, 1110, 1115, 1117, 1117, 1117,  735,  734, 1114,
2225      1118, 1118, 1118, 1120, 1120, 1120, 1121, 1121, 1121, 1122,
2226      1122, 1122, 1117, 1123, 1123, 1123,  733, 1107, 1118,  730,
2227      1120, 1110,  729, 1121, 1124, 1124, 1124, 1122, 1125, 1125,
2228      1125, 1123, 1109, 1126, 1126, 1126, 1128, 1128, 1128,  728,
2229      1128, 1124,  726, 1128,  722, 1125,  719, 1118, 1133, 1133,
2230      1133, 1126, 1135, 1135, 1135, 1123, 1136, 1136, 1136,  716,
2231      1136,  709,  708, 1136,  705,  704, 1133,  703,  702, 1135,
2232       687, 1122, 1137, 1137, 1137,  680, 1138, 1138, 1138, 1140,
2233      1140, 1140, 1141, 1141, 1141,  679, 1141,  678,  675, 1141,
2234
2235      1137,  668,  667, 1126, 1138, 1133, 1140, 1142, 1142, 1142,
2236      1148, 1148, 1148, 1149, 1149, 1149, 1154, 1154, 1154, 1158,
2237      1158, 1158, 1159, 1159, 1159, 1142,  666, 1148, 1160, 1160,
2238      1160, 1149, 1161, 1161, 1161,  665, 1137, 1138, 1163, 1163,
2239      1163, 1165, 1165, 1165, 1170, 1170, 1170, 1173, 1173, 1173,
2240      1174, 1174, 1174, 1183, 1183, 1183,  656, 1183,  655,  654,
2241      1183,  651, 1170,  650,  649, 1173,  647, 1174,  646, 1149,
2242      1186, 1186, 1186, 1187, 1187, 1187, 1190, 1190, 1190, 1191,
2243      1191, 1191, 1193, 1193, 1193,  645, 1193,  644, 1186, 1193,
2244      1187, 1196, 1196, 1196,  640, 1196,  635,  634, 1196,  633,
2245
2246       632, 1173, 1200, 1200, 1200, 1201, 1201, 1201,  629, 1203,
2247      1203, 1203, 1186, 1203,  627,  623, 1203,  619,  618, 1200,
2248      1206, 1206, 1206, 1201, 1207, 1207, 1207,  615, 1207,  614,
2249       613, 1207, 1208, 1208, 1208,  612, 1208, 1206,  610, 1208,
2250      1211, 1211, 1211, 1212, 1212, 1212,  609, 1212,  608,  607,
2251      1212, 1213, 1213, 1213, 1214, 1214, 1214, 1211, 1215, 1215,
2252      1215,  606, 1215,  605,  604, 1215,  603,  602, 1213,  601,
2253       600, 1214, 1216, 1216, 1216, 1217, 1217, 1217, 1219, 1219,
2254      1219, 1221, 1221, 1221,  599, 1221,  595,  594, 1221,  592,
2255      1216,  591,  590, 1217,  589, 1219, 1225, 1225, 1225, 1227,
2256
2257      1227, 1227,  588,  584, 1229, 1229, 1229,  582, 1230, 1230,
2258      1230,  581, 1230,  580, 1225, 1230,  579, 1227,  574, 1216,
2259      1219, 1229, 1231, 1231, 1231, 1232, 1232, 1232,  570, 1232,
2260       569,  566, 1232,  565, 1217, 1233, 1233, 1233,  564, 1231,
2261      1234, 1234, 1234, 1235, 1235, 1235,  563, 1236, 1236, 1236,
2262       562, 1236,  561, 1233, 1236, 1237, 1237, 1237, 1234,  558,
2263      1235, 1238, 1238, 1238,  557, 1238,  556,  555, 1238, 1239,
2264      1239, 1239, 1237, 1243, 1243, 1243, 1245, 1245, 1245,  552,
2265      1245,  548,  547, 1245,  546, 1234,  545, 1239, 1248, 1248,
2266      1248, 1243, 1249, 1249, 1249,  542, 1233, 1250, 1250, 1250,
2267
2268      1251, 1251, 1251,  541, 1251,  540, 1248, 1251,  539,  536,
2269      1249,  535, 1254, 1254, 1254, 1260, 1260, 1260, 1261, 1261,
2270      1261,  534, 1261,  533,  531, 1261, 1262, 1262, 1262, 1239,
2271      1254,  528, 1260, 1243,  524, 1248, 1263, 1263, 1263,  523,
2272       522, 1249,  521,  520, 1262, 1266, 1266, 1266, 1267, 1267,
2273      1267, 1270, 1270, 1270, 1271, 1271, 1271, 1272, 1272, 1272,
2274      1274, 1274, 1274, 1275, 1275, 1275, 1277, 1277, 1277, 1280,
2275      1280, 1280, 1284, 1284, 1284, 1285, 1285, 1285,  519, 1286,
2276      1286, 1286,  516, 1286,  513, 1262, 1286, 1280,  512,  511,
2277      1284,  510, 1285, 1297, 1297, 1297, 1298, 1298, 1298, 1299,
2278
2279      1299, 1299,  508, 1299,  503,  501, 1299, 1300, 1300, 1300,
2280       500, 1297,  499, 1298, 1302, 1302, 1302, 1307, 1307, 1307,
2281      1308, 1308, 1308,  498, 1308,  497,  496, 1308, 1309, 1309,
2282      1309,  492, 1309,  491, 1307, 1309,  490,  489, 1297, 1312,
2283      1312, 1312,  485, 1312,  484,  483, 1312, 1315, 1315, 1315,
2284      1316, 1316, 1316,  482, 1316,  481,  479, 1316, 1317, 1317,
2285      1317,  476, 1317,  475, 1315, 1317, 1320, 1320, 1320, 1321,
2286      1321, 1321, 1323, 1323, 1323, 1324, 1324, 1324,  473, 1324,
2287       471,  467, 1324,  465, 1320,  463,  460, 1321,  459, 1323,
2288      1330, 1330, 1330, 1333, 1333, 1333,  457, 1333,  456,  455,
2289
2290      1333,  454, 1336, 1336, 1336,  453, 1336,  450, 1330, 1336,
2291      1339, 1339, 1339, 1340, 1340, 1340, 1341, 1341, 1341,  449,
2292      1341,  448,  447, 1341,  446, 1320,  440,  439, 1339,  437,
2293       431, 1340, 1344, 1344, 1344,  430, 1344,  426,  422, 1344,
2294       418, 1347, 1347, 1347, 1348, 1348, 1348, 1351, 1351, 1351,
2295      1353, 1353, 1353, 1354, 1354, 1354,  414, 1339,  408, 1347,
2296       404, 1348, 1355, 1355, 1355, 1351,  400,  396, 1353,  395,
2297       394, 1354,  393,  389, 1340, 1347, 1356, 1356, 1356, 1359,
2298      1359, 1359, 1360, 1360, 1360,  385, 1360,  382,  381, 1360,
2299      1363, 1363, 1363,  380, 1356, 1364, 1364, 1364, 1365, 1365,
2300
2301      1365, 1367, 1367, 1367,  376, 1353,  370, 1351, 1363, 1368,
2302      1368, 1368, 1369, 1369, 1369, 1370, 1370, 1370, 1372, 1372,
2303      1372, 1374, 1374, 1374, 1377, 1377, 1377, 1379, 1379, 1379,
2304      1381, 1381, 1381,  366, 1381,  362,  359, 1381, 1394, 1394,
2305      1394, 1377,  358,  357, 1363, 1379, 1395, 1395, 1395,  353,
2306      1395,  350,  349, 1395,  345,  344, 1394, 1398, 1398, 1398,
2307      1406, 1406, 1406,  340, 1406,  332,  331, 1406, 1409, 1409,
2308      1409,  330, 1409,  326,  320, 1409,  316, 1412, 1412, 1412,
2309      1413, 1413, 1413, 1415, 1415, 1415, 1416, 1416, 1416,  310,
2310      1416,  309,  307, 1416, 1394, 1412,  306,  301, 1413,  294,
2311
2312      1415, 1426, 1426, 1426, 1427, 1427, 1427,  293, 1428, 1428,
2313      1428, 1429, 1429, 1429, 1430, 1430, 1430, 1431, 1431, 1431,
2314       292, 1431, 1427,  291, 1431, 1415, 1428,  290,  286, 1429,
2315       282, 1430, 1432, 1432, 1432, 1434, 1434, 1434, 1435, 1435,
2316      1435, 1436, 1436, 1436, 1437, 1437, 1437,  276,  274, 1432,
2317      1439, 1439, 1439, 1434, 1442, 1442, 1442,  269,  268, 1436,
2318       264,  258, 1437, 1428, 1443, 1443, 1443, 1429, 1439, 1444,
2319      1444, 1444, 1446, 1446, 1446, 1447, 1447, 1447, 1451, 1451,
2320      1451,  257, 1443, 1452, 1452, 1452,  256, 1452,  252,  244,
2321      1452, 1464, 1464, 1464,  242, 1451, 1471, 1471, 1471, 1472,
2322
2323      1472, 1472, 1436, 1474, 1474, 1474,  241, 1439,  237, 1464,
2324      1483, 1483, 1483, 1471, 1475, 1475, 1475, 1472, 1475,  234,
2325      1474, 1475, 1484, 1484, 1484,  232,  231, 1483,  230, 1485,
2326      1485, 1485, 1487, 1487, 1487, 1488, 1488, 1488, 1489, 1489,
2327      1489,  226, 1489,  223,  222, 1489, 1464, 1485,  219,  215,
2328      1487,  211,  207, 1488, 1492, 1492, 1492, 1493, 1493, 1493,
2329       206, 1493,  205,  199, 1493, 1494, 1494, 1494, 1495, 1495,
2330      1495, 1492, 1497, 1497, 1497, 1498, 1498, 1498, 1502, 1502,
2331      1502,  198, 1494, 1507, 1507, 1507, 1495, 1508, 1508, 1508,
2332       196, 1508,  193, 1498, 1508,  181, 1502, 1488,    0,    0,
2333
2334      1507, 1522, 1522, 1522, 1527, 1527, 1527, 1528, 1528, 1528,
2335         0, 1528,    0,    0, 1528,    0, 1529, 1529, 1529, 1522,
2336      1529, 1527,    0, 1529, 1537, 1537, 1537, 1538, 1538, 1538,
2337         0, 1538,    0,    0, 1538, 1539, 1539, 1539, 1545, 1545,
2338      1545, 1537, 1541, 1541, 1541, 1542, 1542, 1542,    0, 1542,
2339         0,    0, 1542, 1539,    0, 1545, 1522, 1546, 1546, 1546,
2340      1541, 1546,    0,    0, 1546, 1547, 1547, 1547, 1552, 1552,
2341      1552, 1555, 1555, 1555, 1556, 1556, 1556,    0, 1556,    0,
2342         0, 1556,    0, 1547, 1572, 1572, 1572,    0, 1555, 1573,
2343      1573, 1573, 1574, 1574, 1574,    0,    0, 1575, 1575, 1575,
2344
2345         0, 1575, 1572, 1541, 1575, 1579, 1579, 1579,    0, 1574,
2346      1581, 1581, 1581,    0, 1581,    0,    0, 1581, 1584, 1584,
2347      1584,    0, 1579, 1585, 1585, 1585,    0, 1585,    0,    0,
2348      1585, 1572,    0,    0, 1574,    0, 1584, 1590, 1590, 1590,
2349      1591, 1591, 1591, 1594, 1594, 1594,    0, 1594,    0,    0,
2350      1594, 1601, 1601, 1601, 1590, 1590, 1610, 1610, 1610, 1611,
2351      1611, 1611, 1612, 1612, 1612, 1584,    0,    0, 1601, 1613,
2352      1613, 1613,    0, 1613, 1610,    0, 1613,    0,    0, 1612,
2353      1616, 1616, 1616, 1617, 1617, 1617,    0, 1617,    0,    0,
2354      1617, 1619, 1619, 1619, 1621, 1621, 1621, 1616, 1622, 1622,
2355
2356      1622, 1610,    0, 1623, 1623, 1623,    0, 1623,    0, 1619,
2357      1623, 1621, 1621,    0,    0, 1622, 1622, 1624, 1624, 1624,
2358         0, 1623, 1625, 1625, 1625, 1630, 1630, 1630, 1631, 1631,
2359      1631,    0, 1631,    0,    0, 1631, 1640, 1640, 1640, 1641,
2360      1641, 1641, 1630, 1641,    0,    0, 1641, 1645, 1645, 1645,
2361         0, 1646, 1646, 1646, 1640, 1646,    0,    0, 1646, 1649,
2362      1649, 1649,    0,    0, 1645, 1650, 1650, 1650, 1653, 1653,
2363      1653, 1654, 1654, 1654,    0, 1654, 1649,    0, 1654,    0,
2364      1655, 1655, 1655, 1650, 1655, 1653, 1653, 1655,    0, 1654,
2365      1658, 1658, 1658, 1659, 1659, 1659,    0, 1640, 1655, 1656,
2366
2367      1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656,    0,    0,
2368      1656, 1673, 1673, 1673,    0, 1656, 1656, 1656, 1656, 1656,
2369      1664, 1664, 1664,    0, 1664,    0,    0, 1664,    0, 1673,
2370         0,    0,    0,    0, 1675, 1675, 1675, 1677, 1677, 1677,
2371      1656, 1656, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
2372      1657, 1675,    0, 1657, 1677,    0,    0,    0, 1657, 1657,
2373      1657, 1657, 1657, 1676, 1676, 1676,    0, 1676,    0,    0,
2374      1676, 1678, 1678, 1678,    0, 1678,    0,    0, 1678, 1695,
2375      1695, 1695,    0, 1657, 1657, 1680, 1680, 1680,    0, 1680,
2376         0,    0, 1680,    0, 1698, 1698, 1698, 1695, 1698,    0,
2377
2378         0, 1698,    0, 1680, 1683, 1683, 1683, 1683, 1683, 1683,
2379      1683, 1683, 1683,    0,    0, 1683, 1710, 1710, 1710,    0,
2380      1683, 1683, 1683, 1683, 1683, 1701, 1701, 1701,    0, 1701,
2381         0,    0, 1701,    0, 1710, 1710,    0,    0,    0, 1717,
2382      1717, 1717, 1722, 1722, 1722, 1683, 1683, 1684, 1684, 1684,
2383      1684, 1684, 1684, 1684, 1684, 1684, 1717,    0, 1684,    0,
2384      1722,    0,    0, 1684, 1684, 1684, 1684, 1684, 1726, 1726,
2385      1726,    0,    0, 1729, 1729, 1729, 1730, 1730, 1730,    0,
2386      1730,    0,    0, 1730,    0,    0, 1726,    0, 1684, 1684,
2387      1729, 1735, 1735, 1735, 1739, 1739, 1739,    0, 1739,    0,
2388
2389         0, 1739, 1770, 1770, 1770,    0, 1771, 1771, 1771, 1735,
2390      1771,    0,    0, 1771,    0, 1726, 1796, 1796, 1796,    0,
2391      1770, 1797, 1797, 1797, 1771,    0, 1735,    0,    0,    0,
2392         0,    0,    0,    0, 1796,    0,    0,    0,    0, 1797,
2393      1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1801,
2394      1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1802, 1802,
2395      1802, 1802, 1802, 1802, 1802, 1802, 1802, 1803, 1803, 1803,
2396      1803, 1803, 1803, 1803, 1803, 1803, 1804, 1804, 1804, 1804,
2397      1804, 1804, 1804, 1804, 1804, 1805, 1805, 1805, 1805, 1805,
2398      1805, 1805, 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806,
2399
2400      1806, 1806, 1806, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
2401      1807, 1807, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
2402      1808, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809, 1809,
2403      1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1811,
2404      1811, 1811, 1811, 1811, 1811, 1811, 1811, 1811, 1812, 1812,
2405      1812, 1812, 1812, 1812, 1812, 1812, 1812, 1813, 1813, 1813,
2406      1813, 1813, 1813, 1813, 1813, 1813, 1814, 1814, 1814, 1814,
2407      1814, 1814, 1814, 1814, 1814, 1815, 1815, 1815, 1815, 1815,
2408      1815, 1815, 1815, 1815, 1816, 1816, 1816, 1816, 1816, 1816,
2409      1816, 1816, 1816, 1817, 1817, 1817, 1817, 1817, 1817, 1817,
2410
2411      1817, 1817, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
2412      1818, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819, 1819,
2413      1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1821,
2414      1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1822, 1822,
2415      1822, 1822, 1822, 1822, 1822, 1822, 1822, 1823, 1823, 1823,
2416      1823, 1823, 1823, 1823, 1823, 1823, 1824, 1824, 1824, 1824,
2417      1824, 1824, 1824, 1824, 1824, 1825, 1825, 1825, 1825, 1825,
2418      1825, 1825, 1825, 1825, 1826, 1826, 1826, 1826, 1826, 1826,
2419      1826, 1826, 1826, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
2420      1827, 1827, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
2421
2422      1828, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
2423      1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1831,
2424      1831, 1831, 1831, 1831, 1831, 1831, 1831, 1831, 1832, 1832,
2425      1832, 1832, 1832, 1832, 1832, 1832, 1832, 1833, 1833, 1833,
2426      1833, 1833, 1833, 1833, 1833, 1833, 1834, 1834, 1834, 1834,
2427      1834, 1834, 1834, 1834, 1834, 1835, 1835, 1835, 1835, 1835,
2428      1835, 1835, 1835, 1835, 1836, 1836, 1836, 1836, 1836, 1836,
2429      1836, 1836, 1836, 1837, 1837, 1837, 1837, 1837, 1837, 1837,
2430      1837, 1837, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838,
2431      1838, 1839, 1839, 1839,    0,    0,    0, 1839, 1840, 1840,
2432
2433      1840,    0,    0,    0, 1840, 1841, 1841, 1841,    0,    0,
2434         0, 1841, 1842, 1842, 1842,    0,    0,    0, 1842, 1843,
2435      1843, 1843,    0,    0,    0, 1843, 1844, 1844, 1844,    0,
2436         0,    0, 1844, 1845, 1845, 1845,    0,    0,    0, 1845,
2437      1846, 1846, 1846,    0,    0,    0, 1846, 1847, 1847, 1847,
2438         0,    0,    0, 1847, 1848, 1848, 1848,    0,    0,    0,
2439      1848, 1849, 1849, 1849,    0,    0,    0, 1849, 1850, 1850,
2440      1850,    0,    0,    0, 1850, 1851, 1851, 1851,    0,    0,
2441         0, 1851, 1852, 1852, 1852,    0,    0,    0, 1852, 1853,
2442      1853, 1853,    0,    0,    0, 1853, 1854, 1854, 1854,    0,
2443
2444         0,    0, 1854, 1855, 1855, 1855,    0,    0,    0, 1855,
2445      1856, 1856, 1856, 1856, 1856, 1856, 1856,    0, 1856, 1857,
2446         0,    0,    0, 1857, 1858,    0,    0,    0, 1858, 1859,
2447         0,    0,    0, 1859, 1860, 1860, 1860,    0,    0,    0,
2448      1860, 1861,    0,    0,    0, 1861, 1862, 1862, 1862,    0,
2449         0,    0, 1862, 1863,    0,    0,    0, 1863, 1864,    0,
2450         0,    0, 1864, 1865,    0,    0,    0, 1865, 1866,    0,
2451         0,    0, 1866, 1867, 1867, 1867,    0,    0,    0, 1867,
2452      1868,    0,    0,    0, 1868, 1869, 1869, 1869,    0,    0,
2453         0, 1869, 1870,    0,    0,    0, 1870, 1871, 1871, 1871,
2454
2455         0,    0,    0, 1871, 1872,    0,    0,    0, 1872, 1873,
2456      1873, 1873,    0,    0,    0, 1873, 1874,    0,    0,    0,
2457      1874, 1875, 1875, 1875,    0,    0,    0, 1875, 1876,    0,
2458         0,    0, 1876, 1877, 1877, 1877,    0,    0,    0, 1877,
2459      1878,    0,    0,    0, 1878, 1879, 1879, 1879,    0,    0,
2460         0, 1879, 1880,    0,    0,    0, 1880, 1881, 1881, 1881,
2461         0,    0,    0, 1881, 1882,    0,    0,    0, 1882, 1883,
2462      1883, 1883,    0,    0,    0, 1883, 1884,    0,    0,    0,
2463      1884, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885, 1885,
2464      1886,    0,    0,    0,    0, 1886, 1887, 1887, 1887,    0,
2465
2466         0,    0, 1887, 1888, 1888, 1888, 1888,    0,    0, 1888,
2467      1888, 1889, 1889, 1889,    0,    0,    0, 1889, 1890, 1890,
2468      1890, 1890,    0,    0, 1890, 1890, 1891, 1891, 1891,    0,
2469         0,    0, 1891, 1892, 1892, 1892, 1892,    0,    0, 1892,
2470      1892, 1893, 1893, 1893,    0,    0,    0, 1893, 1894, 1894,
2471      1894, 1894,    0,    0, 1894, 1894, 1895, 1895, 1895,    0,
2472         0,    0, 1895, 1896, 1896, 1896, 1896,    0,    0, 1896,
2473      1896, 1897, 1897, 1897,    0,    0,    0, 1897, 1898, 1898,
2474      1898, 1898,    0,    0, 1898, 1898, 1899, 1899, 1899,    0,
2475         0,    0, 1899, 1900, 1900, 1900, 1900,    0,    0, 1900,
2476
2477      1900, 1901, 1901, 1901, 1901,    0,    0, 1901, 1901, 1902,
2478      1902, 1902,    0,    0,    0, 1902, 1903, 1903, 1903, 1903,
2479         0,    0, 1903, 1903, 1904, 1904, 1904, 1904,    0, 1904,
2480         0, 1904, 1905, 1905, 1905, 1905,    0,    0, 1905, 1905,
2481      1906, 1906, 1906, 1906,    0, 1906,    0, 1906, 1907, 1907,
2482      1907, 1907,    0,    0, 1907, 1907, 1908, 1908, 1908, 1908,
2483         0,    0, 1908, 1908, 1909, 1909, 1909, 1909,    0, 1909,
2484         0, 1909, 1910, 1910, 1910, 1910,    0,    0, 1910, 1910,
2485      1911, 1911, 1911,    0,    0,    0, 1911, 1912, 1912, 1912,
2486      1912,    0,    0, 1912, 1912, 1913, 1913, 1913,    0,    0,
2487
2488         0, 1913, 1914, 1914, 1914, 1914,    0,    0, 1914, 1914,
2489      1915, 1915, 1915, 1915,    0,    0, 1915, 1915, 1916, 1916,
2490      1916,    0,    0,    0, 1916, 1917, 1917, 1917, 1917,    0,
2491         0, 1917, 1917, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
2492      1918, 1918, 1919,    0, 1919,    0,    0, 1919, 1920, 1920,
2493      1920,    0,    0,    0, 1920, 1921, 1921, 1921, 1921,    0,
2494         0, 1921, 1921, 1922, 1922, 1922, 1922,    0, 1922,    0,
2495      1922, 1923, 1923, 1923, 1923,    0,    0, 1923, 1923, 1924,
2496      1924, 1924,    0,    0,    0, 1924, 1925, 1925, 1925, 1925,
2497         0,    0, 1925, 1925, 1926, 1926, 1926,    0,    0,    0,
2498
2499      1926, 1927, 1927, 1927, 1927,    0,    0, 1927, 1927, 1928,
2500      1928, 1928,    0,    0,    0, 1928, 1929, 1929, 1929, 1929,
2501         0,    0, 1929, 1929, 1930, 1930, 1930,    0,    0,    0,
2502      1930, 1931, 1931, 1931, 1931,    0,    0, 1931, 1931, 1932,
2503      1932, 1932,    0,    0,    0, 1932, 1933, 1933, 1933, 1933,
2504         0,    0, 1933, 1933, 1934, 1934, 1934, 1934,    0,    0,
2505      1934, 1934, 1935, 1935, 1935,    0,    0,    0, 1935, 1936,
2506      1936, 1936, 1936,    0,    0, 1936, 1936, 1937, 1937, 1937,
2507      1937,    0,    0, 1937, 1937, 1938, 1938, 1938,    0,    0,
2508         0, 1938, 1939, 1939, 1939, 1939,    0,    0, 1939, 1939,
2509
2510      1940, 1940, 1940, 1940,    0,    0, 1940, 1940, 1941, 1941,
2511      1941,    0,    0,    0, 1941, 1942, 1942, 1942, 1942,    0,
2512         0, 1942, 1942, 1943, 1943, 1943,    0,    0,    0, 1943,
2513      1944, 1944, 1944, 1944,    0,    0, 1944, 1944, 1945, 1945,
2514      1945,    0,    0,    0, 1945, 1946, 1946, 1946, 1946,    0,
2515         0, 1946, 1946, 1947, 1947, 1947, 1947,    0,    0, 1947,
2516      1947, 1948, 1948, 1948,    0,    0,    0, 1948, 1949, 1949,
2517      1949, 1949,    0,    0, 1949, 1949, 1950, 1950, 1950, 1950,
2518      1950, 1950, 1950, 1950, 1950, 1951, 1951, 1951, 1951, 1951,
2519      1951, 1951, 1951, 1951, 1952, 1952, 1952,    0,    0,    0,
2520
2521      1952, 1953, 1953, 1953, 1953,    0,    0, 1953, 1953, 1954,
2522      1954, 1954,    0,    0,    0, 1954, 1955, 1955, 1955, 1955,
2523         0,    0, 1955, 1955, 1956, 1956, 1956,    0,    0,    0,
2524      1956, 1957, 1957, 1957, 1957,    0,    0, 1957, 1957, 1958,
2525      1958, 1958,    0,    0,    0, 1958, 1959, 1959, 1959, 1959,
2526         0,    0, 1959, 1959, 1960, 1960, 1960,    0,    0,    0,
2527      1960, 1961, 1961, 1961,    0,    0,    0, 1961, 1962, 1962,
2528      1962, 1962,    0,    0, 1962, 1962, 1963, 1963, 1963, 1963,
2529         0, 1963,    0, 1963, 1964, 1964, 1964, 1964,    0,    0,
2530      1964, 1964, 1965, 1965, 1965, 1965,    0,    0, 1965, 1965,
2531
2532      1966, 1966, 1966,    0,    0,    0, 1966, 1967, 1967, 1967,
2533      1967,    0,    0, 1967, 1967, 1968, 1968, 1968, 1968,    0,
2534         0, 1968, 1968, 1969, 1969, 1969,    0,    0,    0, 1969,
2535      1970, 1970, 1970, 1970,    0,    0, 1970, 1970, 1971, 1971,
2536      1971, 1971,    0,    0, 1971, 1971, 1972, 1972, 1972,    0,
2537         0,    0, 1972, 1973, 1973, 1973, 1973,    0,    0, 1973,
2538      1973, 1974, 1974, 1974,    0,    0,    0, 1974, 1975, 1975,
2539      1975, 1975,    0,    0, 1975, 1975, 1976, 1976, 1976, 1976,
2540         0, 1976,    0, 1976, 1977, 1977, 1977, 1977,    0,    0,
2541      1977, 1977, 1978, 1978, 1978, 1978,    0,    0, 1978, 1978,
2542
2543      1979, 1979, 1979, 1979,    0, 1979,    0, 1979, 1980, 1980,
2544      1980, 1980,    0,    0, 1980, 1980, 1981, 1981, 1981, 1981,
2545      1981, 1981, 1981, 1981, 1981, 1982, 1982, 1982, 1982, 1982,
2546      1982, 1982, 1982, 1982, 1983, 1983, 1983,    0,    0,    0,
2547      1983, 1984, 1984, 1984, 1984,    0,    0, 1984, 1984, 1985,
2548      1985, 1985,    0,    0,    0, 1985, 1986, 1986, 1986, 1986,
2549         0,    0, 1986, 1986, 1987, 1987, 1987,    0,    0,    0,
2550      1987, 1988, 1988, 1988, 1988,    0,    0, 1988, 1988, 1989,
2551      1989, 1989,    0,    0,    0, 1989, 1990, 1990, 1990, 1990,
2552         0,    0, 1990, 1990, 1991, 1991, 1991,    0,    0,    0,
2553
2554      1991, 1992, 1992, 1992,    0,    0,    0, 1992, 1993, 1993,
2555      1993, 1993,    0,    0, 1993, 1993, 1994, 1994, 1994, 1994,
2556         0, 1994,    0, 1994, 1995, 1995, 1995, 1995,    0,    0,
2557      1995, 1995, 1996, 1996, 1996, 1996,    0,    0, 1996, 1996,
2558      1997, 1997, 1997,    0,    0,    0, 1997, 1998, 1998, 1998,
2559      1998,    0,    0, 1998, 1998, 1999, 1999, 1999, 1999,    0,
2560         0, 1999, 1999, 2000, 2000, 2000, 2000,    0, 2000,    0,
2561      2000, 2001, 2001, 2001, 2001,    0,    0, 2001, 2001, 2002,
2562      2002, 2002, 2002,    0,    0, 2002, 2002, 2003, 2003, 2003,
2563      2003,    0, 2003,    0, 2003, 2004, 2004, 2004, 2004,    0,
2564
2565         0, 2004, 2004, 2005, 2005, 2005,    0,    0,    0, 2005,
2566      2006, 2006, 2006, 2006,    0,    0, 2006, 2006, 2007, 2007,
2567      2007, 2007,    0,    0, 2007, 2007, 2008, 2008, 2008, 2008,
2568         0,    0, 2008, 2008, 2009, 2009, 2009, 2009, 2009, 2009,
2569      2009, 2009, 2009, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
2570      2010, 2010, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011,
2571      2011, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012,
2572      2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2014,
2573      2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 1799, 1799,
2574      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
2575
2576      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
2577      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
2578      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
2579      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
2580      1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
2581      1799, 1799, 1799, 1799, 1799, 1799, 1799
2582     } ;
2583
2584 /* Table of booleans, true if rule could match eol. */
2585 static yyconst flex_int32_t yy_rule_can_match_eol[324] =
2586     {   0,
2587 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2588     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2589     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2590     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2591     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
2592     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
2593     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2594     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 
2595     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2596     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
2597     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2598     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
2599     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2600     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
2601     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2602     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
2603     0, 0, 1, 0,     };
2604
2605 static yy_state_type yy_last_accepting_state;
2606 static char *yy_last_accepting_cpos;
2607
2608 extern int surf_parse__flex_debug;
2609 int surf_parse__flex_debug = 0;
2610
2611 /* The intent behind this definition is that it'll catch
2612  * any uses of REJECT which flex missed.
2613  */
2614 #define REJECT reject_used_but_not_detected
2615 #define yymore() yymore_used_but_not_detected
2616 #define YY_MORE_ADJ 0
2617 #define YY_RESTORE_YY_MORE_OFFSET
2618 char *surf_parse_text;
2619 /* Validating XML processor for src/surf/simgrid.dtd.
2620  * Generated 2010/10/11 11:35:07.
2621  *
2622  * This program was generated with the FleXML XML processor generator.
2623  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2624  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2625  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
2626  * 
2627  * There are two, intertwined parts to this program, part A and part B.
2628  *
2629  * Part A
2630  * ------
2631  * 
2632  * Some parts, here collectively called "Part A", are found in the 
2633  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2634  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2635  *
2636  * You can redistribute, use, perform, display and/or modify "Part A"
2637  * provided the following two conditions hold:
2638  *
2639  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2640  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2641  *    FITNESS FOR A PARTICULAR PURPOSE.
2642  *
2643  * 2. The program distribution conditions do not in any way affect the
2644  *    distribution conditions of the FleXML system used to generate this
2645  *    file or any version of FleXML derived from that system.
2646  *
2647  * Notice that these are explicit rights granted to you for files
2648  * generated by the FleXML system.  For your rights in connection with
2649  * the FleXML system itself please consult the GNU General Public License.
2650  * 
2651  * Part B
2652  * ------
2653  * 
2654  * The other parts, here collectively called "Part B", and which came 
2655  * from the DTD used by FleXML to generate this program, can be 
2656  * distributed (or not, as the case may be) under the terms of whoever
2657  * wrote them, provided these terms respect and obey the two conditions 
2658  * above under the heading "Part A".
2659  *
2660  * The author of and contributors to FleXML specifically disclaim
2661  * any copyright interest in "Part B", unless "Part B" was written 
2662  * by the author of or contributors to FleXML.
2663  * 
2664  */
2665
2666 /* Version strings. */
2667 const char rcs_surfxml_flexml_skeleton[] =
2668  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2669 const char rcs_surfxml_flexml[] =
2670  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
2671
2672 /* ANSI headers. */
2673 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2674 #include <stdio.h>
2675 #include <string.h>
2676 #include <assert.h>
2677 #include <stdarg.h>
2678 #include <ctype.h>
2679      
2680 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2681 # ifndef __STRICT_ANSI__
2682 #  include <io.h>
2683 #  include <process.h>
2684 # endif
2685 #else
2686 # include <unistd.h>
2687 #endif
2688      
2689 #ifndef FLEXML_INDEXSTACKSIZE
2690 #define FLEXML_INDEXSTACKSIZE 1000
2691 #endif
2692
2693 /* Generated definitions. */
2694 #define FLEXML_yylineno
2695 #ifndef FLEXML_BUFFERSTACKSIZE
2696 #define FLEXML_BUFFERSTACKSIZE 1000000
2697 #endif
2698 #define FLEXML_NEED_BUFFERLIT
2699
2700 /* XML processor api. */
2701 /* FleXML-provided data. */
2702 int surfxml_pcdata_ix;
2703 extern char *surfxml_bufferstack;
2704 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2705 AT_surfxml_random_generator AX_surfxml_random_generator;
2706 #define A_surfxml_random_generator AX_surfxml_random_generator
2707 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
2708 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
2709 AT_surfxml_link_id AX_surfxml_link_id;
2710 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2711 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
2712 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
2713 AT_surfxml_prop_id AX_surfxml_prop_id;
2714 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2715 AT_surfxml_host_id AX_surfxml_host_id;
2716 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2717 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2718 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2719 AT_surfxml_process_host AX_surfxml_process_host;
2720 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2721 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2722 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2723 AT_surfxml_host_state AX_surfxml_host_state;
2724 #define A_surfxml_host_state AX_surfxml_host_state
2725 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2726 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2727 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2728 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2729 AT_surfxml_prop_value AX_surfxml_prop_value;
2730 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2731 AT_surfxml_AS_id AX_surfxml_AS_id;
2732 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
2733 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
2734 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
2735 AT_surfxml_host_power AX_surfxml_host_power;
2736 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2737 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2738 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2739 AT_surfxml_router_id AX_surfxml_router_id;
2740 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2741 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
2742 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
2743 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2744 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2745 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2746 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2747 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2748 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2749 AT_surfxml_process_function AX_surfxml_process_function;
2750 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2751 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
2752 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
2753 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2754 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2755 AT_surfxml_trace_file AX_surfxml_trace_file;
2756 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2757 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2758 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2759 AT_surfxml_random_min AX_surfxml_random_min;
2760 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2761 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
2762 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
2763 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
2764 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
2765 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2766 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2767 AT_surfxml_host_availability AX_surfxml_host_availability;
2768 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2769 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2770 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2771 AT_surfxml_argument_value AX_surfxml_argument_value;
2772 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2773 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
2774 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
2775 AT_surfxml_link_state AX_surfxml_link_state;
2776 #define A_surfxml_link_state AX_surfxml_link_state
2777 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
2778 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
2779 AT_surfxml_route_src AX_surfxml_route_src;
2780 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2781 AT_surfxml_AS_routing AX_surfxml_AS_routing;
2782 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
2783 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2784 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2785 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
2786 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
2787 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2788 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2789 AT_surfxml_random_mean AX_surfxml_random_mean;
2790 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2791 AT_surfxml_trace_id AX_surfxml_trace_id;
2792 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
2793 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2794 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2795 AT_surfxml_link_latency AX_surfxml_link_latency;
2796 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2797 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
2798 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
2799 AT_surfxml_config_id AX_surfxml_config_id;
2800 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
2801 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
2802 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
2803 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
2804 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
2805 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
2806 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
2807 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2808 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2809 AT_surfxml_host_vivaldi AX_surfxml_host_vivaldi;
2810 #define A_surfxml_host_vivaldi (surfxml_bufferstack + AX_surfxml_host_vivaldi)
2811 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2812 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2813 AT_surfxml_random_id AX_surfxml_random_id;
2814 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2815 AT_surfxml_route_dst AX_surfxml_route_dst;
2816 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
2817 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
2818 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
2819 AT_surfxml_random_max AX_surfxml_random_max;
2820 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2821 AT_surfxml_platform_version AX_surfxml_platform_version;
2822 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
2823
2824 /* XML state. */
2825 #ifdef FLEX_DEBUG
2826 # define ENTER(state)   debug_enter(state,#state)
2827 # define LEAVE          debug_leave()
2828 # define SET(state)     debug_set(state,#state)
2829   static void debug_enter(int, const char*);
2830   static void debug_leave(void);
2831   static void debug_set(int, const char*);
2832 #else
2833 # define ENTER(state)   (yy_push_state(state))
2834 # define LEAVE          (yy_pop_state())
2835 # define SET(state)     BEGIN(state)
2836 #endif
2837
2838 /* Generic actions. */
2839 #define SKIP    /*skip*/
2840 #define SUCCEED        CLEANUP; return 0
2841
2842 #define FAIL    return fail
2843 static int fail(const char*, ...);
2844
2845 enum {flexml_max_err_msg_size = 512};
2846 static char flexml_err_msg[flexml_max_err_msg_size];
2847 const char * surfxml_parse_err_msg()
2848 {
2849     return flexml_err_msg;
2850 }
2851 static void reset_surfxml_parse_err_msg()
2852 {
2853     flexml_err_msg[0] = '\0';
2854 }
2855
2856 /* Cleanup */
2857 static void cleanup(void);
2858 #define CLEANUP  cleanup()
2859
2860 /* Text buffer stack handling. */
2861 char *surfxml_bufferstack = NULL;
2862 static int blimit = FLEXML_BUFFERSTACKSIZE;
2863 static int bnext = 1;
2864
2865 static int *indexstack = NULL;
2866 static int ilimit = FLEXML_INDEXSTACKSIZE;
2867 static int inext = 1;
2868
2869 #define BUFFERSET(P)  (P = bnext)
2870 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
2871 #define BUFFERDONE    (BUFFERPUTC('\0'))
2872
2873 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
2874
2875 /* after this is called, there are at least 2 slots left in the stack */
2876 static int ck_blimit()
2877 {
2878      if (bnext >= blimit) {
2879          blimit += FLEXML_BUFFERSTACKSIZE + 2;
2880          {
2881              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
2882              assert(temp);
2883              surfxml_bufferstack = temp;
2884          }
2885      }
2886      return 0;
2887 }
2888
2889 /* after this is called, there are at least 2 slots left in the stack */
2890 static int ck_ilimit()
2891 {
2892      if (inext >= ilimit) {
2893          ilimit += FLEXML_INDEXSTACKSIZE + 2;
2894          {
2895              int *temp = (int *) realloc(indexstack, ilimit);
2896              assert(temp);
2897              indexstack = temp;
2898          }
2899      }
2900      return 0;
2901 }
2902
2903 #ifdef FLEXML_NEED_BUFFERLIT
2904 static void surfxml_bufferliteral(char c, int* pp, const char* text)
2905 {
2906   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
2907   assert(s <= e); BUFFERSET(*pp);
2908   while (++s<e) {
2909     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
2910     else BUFFERPUTC(*s);
2911   }
2912   BUFFERDONE;
2913 }
2914 #endif
2915
2916 static void pushbuffer(int p)
2917 {
2918     ck_ilimit();
2919     indexstack[inext++] = p;
2920     indexstack[inext++] = bnext;    
2921 }
2922
2923 static int popbuffer(void)
2924 {
2925     assert(inext >= 2);
2926     bnext = indexstack[--inext];
2927     return indexstack[--inext];
2928 }
2929
2930 /* General internal entities are `unput' back onto the input stream... */
2931 #define ENTITYTEXT(T) \
2932   { char *s = (T), *e = s+strlen(s);\
2933     while (--e >= s) { unput(*e); }}
2934
2935 /* Flex standard options. */
2936 #define YY_NO_INPUT 1
2937 /* Flex user-requested options. */
2938 /* XML character classes (currently restricted to ASCII). */
2939 /* "Common syntactic structures." */
2940 /* "Names and Tokens." */
2941 /* Miscellaneous. */
2942 /* Parser states (flex `exclusive start conditions'):
2943  *
2944  * PROLOG       the XML prolog of the document before <?xml...>
2945  * DOCTYPE      the XML prolog of the document after <?xml...>
2946  * EPILOG       after the root element
2947  * INCOMMENT    inside an XML comment <!--....-->
2948  * INPI         inside an XML PI <?...?>
2949  * VALUE1       inside a '...'-delimited literal
2950  * VALUE2       inside a "..."-delimited literal
2951  * CDATA        inside a <![CDATA[...] ]> section.
2952  * ROOT_<tag>   expect root element <tag>
2953  * AL_<tag>     inside the attribute list for <tag>
2954  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
2955  * IMPOSSIBLE   dummy to permit disabling rules; must be last
2956  */
2957
2958 /* State names. */
2959 const char* *surfxml_statenames=NULL;
2960
2961 #define INITIAL 0
2962 #define PROLOG 1
2963 #define DOCTYPE 2
2964 #define EPILOG 3
2965 #define INCOMMENT 4
2966 #define INPI 5
2967 #define VALUE1 6
2968 #define VALUE2 7
2969 #define CDATA 8
2970 #define ROOT_surfxml_platform 9
2971 #define AL_surfxml_platform 10
2972 #define S_surfxml_platform 11
2973 #define S_surfxml_platform_1 12
2974 #define S_surfxml_platform_2 13
2975 #define S_surfxml_platform_3 14
2976 #define S_surfxml_platform_4 15
2977 #define S_surfxml_platform_5 16
2978 #define S_surfxml_platform_6 17
2979 #define E_surfxml_platform 18
2980 #define AL_surfxml_trace 19
2981 #define IN_trace 20
2982 #define AL_surfxml_random 21
2983 #define S_surfxml_random 22
2984 #define S_surfxml_random_1 23
2985 #define S_surfxml_random_2 24
2986 #define E_surfxml_random 25
2987 #define AL_surfxml_trace_connect 26
2988 #define E_surfxml_trace_connect 27
2989 #define AL_surfxml_AS 28
2990 #define S_surfxml_AS 29
2991 #define S_surfxml_AS_1 30
2992 #define S_surfxml_AS_2 31
2993 #define S_surfxml_AS_3 32
2994 #define S_surfxml_AS_4 33
2995 #define S_surfxml_AS_5 34
2996 #define S_surfxml_AS_6 35
2997 #define S_surfxml_AS_7 36
2998 #define S_surfxml_AS_8 37
2999 #define S_surfxml_AS_9 38
3000 #define S_surfxml_AS_10 39
3001 #define S_surfxml_AS_11 40
3002 #define S_surfxml_AS_12 41
3003 #define S_surfxml_AS_13 42
3004 #define E_surfxml_AS 43
3005 #define AL_surfxml_host 44
3006 #define S_surfxml_host 45
3007 #define S_surfxml_host_1 46
3008 #define S_surfxml_host_2 47
3009 #define E_surfxml_host 48
3010 #define AL_surfxml_cluster 49
3011 #define E_surfxml_cluster 50
3012 #define AL_surfxml_router 51
3013 #define E_surfxml_router 52
3014 #define AL_surfxml_link 53
3015 #define S_surfxml_link 54
3016 #define S_surfxml_link_1 55
3017 #define S_surfxml_link_2 56
3018 #define E_surfxml_link 57
3019 #define AL_surfxml_route 58
3020 #define S_surfxml_route 59
3021 #define S_surfxml_route_1 60
3022 #define S_surfxml_route_2 61
3023 #define E_surfxml_route 62
3024 #define AL_surfxml_ASroute 63
3025 #define S_surfxml_ASroute 64
3026 #define S_surfxml_ASroute_1 65
3027 #define S_surfxml_ASroute_2 66
3028 #define E_surfxml_ASroute 67
3029 #define AL_surfxml_link_ctn 68
3030 #define E_surfxml_link_ctn 69
3031 #define AL_surfxml_bypassRoute 70
3032 #define S_surfxml_bypassRoute 71
3033 #define S_surfxml_bypassRoute_1 72
3034 #define S_surfxml_bypassRoute_2 73
3035 #define E_surfxml_bypassRoute 74
3036 #define AL_surfxml_process 75
3037 #define S_surfxml_process 76
3038 #define S_surfxml_process_1 77
3039 #define S_surfxml_process_2 78
3040 #define E_surfxml_process 79
3041 #define AL_surfxml_argument 80
3042 #define E_surfxml_argument 81
3043 #define AL_surfxml_config 82
3044 #define S_surfxml_config 83
3045 #define S_surfxml_config_1 84
3046 #define S_surfxml_config_2 85
3047 #define E_surfxml_config 86
3048 #define AL_surfxml_prop 87
3049 #define E_surfxml_prop 88
3050 #define IMPOSSIBLE 89
3051
3052 #ifndef YY_NO_UNISTD_H
3053 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3054  * down here because we want the user's section 1 to have been scanned first.
3055  * The user has a chance to override it with an option.
3056  */
3057 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3058 #  ifndef __STRICT_ANSI__
3059 #    include <io.h>
3060 #    include <process.h>
3061 #  endif
3062 #else
3063 #  include <unistd.h>
3064 #endif
3065 #endif
3066
3067 #ifndef YY_EXTRA_TYPE
3068 #define YY_EXTRA_TYPE void *
3069 #endif
3070
3071 static int yy_init_globals (void );
3072
3073 /* Accessor methods to globals.
3074    These are made visible to non-reentrant scanners for convenience. */
3075
3076 int surf_parse_lex_destroy (void );
3077
3078 int surf_parse_get_debug (void );
3079
3080 void surf_parse_set_debug (int debug_flag  );
3081
3082 YY_EXTRA_TYPE surf_parse_get_extra (void );
3083
3084 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
3085
3086 FILE *surf_parse_get_in (void );
3087
3088 void surf_parse_set_in  (FILE * in_str  );
3089
3090 FILE *surf_parse_get_out (void );
3091
3092 void surf_parse_set_out  (FILE * out_str  );
3093
3094 int surf_parse_get_leng (void );
3095
3096 char *surf_parse_get_text (void );
3097
3098 int surf_parse_get_lineno (void );
3099
3100 void surf_parse_set_lineno (int line_number  );
3101
3102 /* Macros after this point can all be overridden by user definitions in
3103  * section 1.
3104  */
3105
3106 #ifndef YY_SKIP_YYWRAP
3107 #ifdef __cplusplus
3108 extern "C" int surf_parse_wrap (void );
3109 #else
3110 extern int surf_parse_wrap (void );
3111 #endif
3112 #endif
3113
3114 #ifndef yytext_ptr
3115 static void yy_flex_strncpy (char *,yyconst char *,int );
3116 #endif
3117
3118 #ifdef YY_NEED_STRLEN
3119 static int yy_flex_strlen (yyconst char * );
3120 #endif
3121
3122 #ifndef YY_NO_INPUT
3123
3124 #ifdef __cplusplus
3125 static int yyinput (void );
3126 #else
3127 static int input (void );
3128 #endif
3129
3130 #endif
3131
3132         static int yy_start_stack_ptr = 0;
3133         static int yy_start_stack_depth = 0;
3134         static int *yy_start_stack = NULL;
3135     
3136     static void yy_push_state (int new_state );
3137     
3138     static void yy_pop_state (void );
3139     
3140 /* Amount of stuff to slurp up with each read. */
3141 #ifndef YY_READ_BUF_SIZE
3142 #ifdef __ia64__
3143 /* On IA-64, the buffer size is 16k, not 8k */
3144 #define YY_READ_BUF_SIZE 16384
3145 #else
3146 #define YY_READ_BUF_SIZE 8192
3147 #endif /* __ia64__ */
3148 #endif
3149
3150 /* Copy whatever the last rule matched to the standard output. */
3151 #ifndef ECHO
3152 /* This used to be an fputs(), but since the string might contain NUL's,
3153  * we now use fwrite().
3154  */
3155 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
3156 #endif
3157
3158 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3159  * is returned in "result".
3160  */
3161 #ifndef YY_INPUT
3162 #define YY_INPUT(buf,result,max_size) \
3163         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3164                 { \
3165                 int c = '*'; \
3166                 size_t n; \
3167                 for ( n = 0; n < max_size && \
3168                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3169                         buf[n] = (char) c; \
3170                 if ( c == '\n' ) \
3171                         buf[n++] = (char) c; \
3172                 if ( c == EOF && ferror( surf_parse_in ) ) \
3173                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3174                 result = n; \
3175                 } \
3176         else \
3177                 { \
3178                 errno=0; \
3179                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3180                         { \
3181                         if( errno != EINTR) \
3182                                 { \
3183                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3184                                 break; \
3185                                 } \
3186                         errno=0; \
3187                         clearerr(surf_parse_in); \
3188                         } \
3189                 }\
3190 \
3191
3192 #endif
3193
3194 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3195  * we don't want an extra ';' after the "return" because that will cause
3196  * some compilers to complain about unreachable statements.
3197  */
3198 #ifndef yyterminate
3199 #define yyterminate() return YY_NULL
3200 #endif
3201
3202 /* Number of entries by which start-condition stack grows. */
3203 #ifndef YY_START_STACK_INCR
3204 #define YY_START_STACK_INCR 25
3205 #endif
3206
3207 /* Report a fatal error. */
3208 #ifndef YY_FATAL_ERROR
3209 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3210 #endif
3211
3212 /* end tables serialization structures and prototypes */
3213
3214 /* Default declaration of generated scanner - a define so the user can
3215  * easily add parameters.
3216  */
3217 #ifndef YY_DECL
3218 #define YY_DECL_IS_OURS 1
3219
3220 extern int surf_parse_lex (void);
3221
3222 #define YY_DECL int surf_parse_lex (void)
3223 #endif /* !YY_DECL */
3224
3225 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3226  * have been set up.
3227  */
3228 #ifndef YY_USER_ACTION
3229 #define YY_USER_ACTION
3230 #endif
3231
3232 /* Code executed at the end of each rule. */
3233 #ifndef YY_BREAK
3234 #define YY_BREAK break;
3235 #endif
3236
3237 #define YY_RULE_SETUP \
3238         YY_USER_ACTION
3239
3240 /** The main scanner function which does all the work.
3241  */
3242 YY_DECL
3243 {
3244         register yy_state_type yy_current_state;
3245         register char *yy_cp, *yy_bp;
3246         register int yy_act;
3247     
3248  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3249  SET(PROLOG);
3250  reset_surfxml_parse_err_msg();
3251  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3252  assert(surfxml_bufferstack);
3253  #ifdef FLEX_DEBUG
3254  {
3255      int i;
3256      for (i = 0; i < blimit; i++) {
3257          surfxml_bufferstack[i] = '\377';
3258      }
3259  }
3260  #endif
3261  surfxml_bufferstack[0] = '\0';
3262  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3263  assert(indexstack);
3264  indexstack[0] = 0;
3265
3266   /* FleXML_init */
3267   bnext = inext = 1;
3268   surfxml_bufferliteral('\0', &bnext, "0.0");
3269   surfxml_bufferliteral('\0', &bnext, "1.0");
3270   surfxml_bufferliteral('\0', &bnext, "0 0 0");
3271   surfxml_bufferliteral('\0', &bnext, "0.0");
3272   surfxml_bufferliteral('\0', &bnext, "-1.0");
3273   surfxml_bufferliteral('\0', &bnext, "-1.0");
3274   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3275   surfxml_statenames[PROLOG] = NULL;
3276   surfxml_statenames[DOCTYPE] = NULL;
3277   surfxml_statenames[EPILOG] = NULL;
3278   surfxml_statenames[INCOMMENT] = NULL;
3279   surfxml_statenames[INPI] = NULL;
3280   surfxml_statenames[VALUE1] = NULL;
3281   surfxml_statenames[VALUE2] = NULL;
3282   surfxml_statenames[CDATA] = NULL;
3283   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3284   surfxml_statenames[AL_surfxml_platform] = NULL;
3285   surfxml_statenames[S_surfxml_platform] = "platform";
3286   surfxml_statenames[S_surfxml_platform_1] = "platform";
3287   surfxml_statenames[S_surfxml_platform_2] = "platform";
3288   surfxml_statenames[S_surfxml_platform_3] = "platform";
3289   surfxml_statenames[S_surfxml_platform_4] = "platform";
3290   surfxml_statenames[S_surfxml_platform_5] = "platform";
3291   surfxml_statenames[S_surfxml_platform_6] = "platform";
3292   surfxml_statenames[E_surfxml_platform] = "platform";
3293   surfxml_statenames[AL_surfxml_trace] = NULL;
3294   surfxml_statenames[IN_trace] = "trace";
3295   surfxml_statenames[AL_surfxml_random] = NULL;
3296   surfxml_statenames[S_surfxml_random] = "random";
3297   surfxml_statenames[S_surfxml_random_1] = "random";
3298   surfxml_statenames[S_surfxml_random_2] = "random";
3299   surfxml_statenames[E_surfxml_random] = "random";
3300   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
3301   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
3302   surfxml_statenames[AL_surfxml_AS] = NULL;
3303   surfxml_statenames[S_surfxml_AS] = "AS";
3304   surfxml_statenames[S_surfxml_AS_1] = "AS";
3305   surfxml_statenames[S_surfxml_AS_2] = "AS";
3306   surfxml_statenames[S_surfxml_AS_3] = "AS";
3307   surfxml_statenames[S_surfxml_AS_4] = "AS";
3308   surfxml_statenames[S_surfxml_AS_5] = "AS";
3309   surfxml_statenames[S_surfxml_AS_6] = "AS";
3310   surfxml_statenames[S_surfxml_AS_7] = "AS";
3311   surfxml_statenames[S_surfxml_AS_8] = "AS";
3312   surfxml_statenames[S_surfxml_AS_9] = "AS";
3313   surfxml_statenames[S_surfxml_AS_10] = "AS";
3314   surfxml_statenames[S_surfxml_AS_11] = "AS";
3315   surfxml_statenames[S_surfxml_AS_12] = "AS";
3316   surfxml_statenames[S_surfxml_AS_13] = "AS";
3317   surfxml_statenames[E_surfxml_AS] = "AS";
3318   surfxml_statenames[AL_surfxml_host] = NULL;
3319   surfxml_statenames[S_surfxml_host] = "host";
3320   surfxml_statenames[S_surfxml_host_1] = "host";
3321   surfxml_statenames[S_surfxml_host_2] = "host";
3322   surfxml_statenames[E_surfxml_host] = "host";
3323   surfxml_statenames[AL_surfxml_cluster] = NULL;
3324   surfxml_statenames[E_surfxml_cluster] = "cluster";
3325   surfxml_statenames[AL_surfxml_router] = NULL;
3326   surfxml_statenames[E_surfxml_router] = "router";
3327   surfxml_statenames[AL_surfxml_link] = NULL;
3328   surfxml_statenames[S_surfxml_link] = "link";
3329   surfxml_statenames[S_surfxml_link_1] = "link";
3330   surfxml_statenames[S_surfxml_link_2] = "link";
3331   surfxml_statenames[E_surfxml_link] = "link";
3332   surfxml_statenames[AL_surfxml_route] = NULL;
3333   surfxml_statenames[S_surfxml_route] = "route";
3334   surfxml_statenames[S_surfxml_route_1] = "route";
3335   surfxml_statenames[S_surfxml_route_2] = "route";
3336   surfxml_statenames[E_surfxml_route] = "route";
3337   surfxml_statenames[AL_surfxml_ASroute] = NULL;
3338   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
3339   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
3340   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
3341   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
3342   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
3343   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
3344   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
3345   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
3346   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
3347   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
3348   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
3349   surfxml_statenames[AL_surfxml_process] = NULL;
3350   surfxml_statenames[S_surfxml_process] = "process";
3351   surfxml_statenames[S_surfxml_process_1] = "process";
3352   surfxml_statenames[S_surfxml_process_2] = "process";
3353   surfxml_statenames[E_surfxml_process] = "process";
3354   surfxml_statenames[AL_surfxml_argument] = NULL;
3355   surfxml_statenames[E_surfxml_argument] = "argument";
3356   surfxml_statenames[AL_surfxml_config] = NULL;
3357   surfxml_statenames[S_surfxml_config] = "config";
3358   surfxml_statenames[S_surfxml_config_1] = "config";
3359   surfxml_statenames[S_surfxml_config_2] = "config";
3360   surfxml_statenames[E_surfxml_config] = "config";
3361   surfxml_statenames[AL_surfxml_prop] = NULL;
3362   surfxml_statenames[E_surfxml_prop] = "prop";
3363   }
3364
3365  /* COMMENTS and PIs: handled uniformly for efficiency. */
3366
3367         if ( !(yy_init) )
3368                 {
3369                 (yy_init) = 1;
3370
3371 #ifdef YY_USER_INIT
3372                 YY_USER_INIT;
3373 #endif
3374
3375                 if ( ! (yy_start) )
3376                         (yy_start) = 1; /* first start state */
3377
3378                 if ( ! surf_parse_in )
3379                         surf_parse_in = stdin;
3380
3381                 if ( ! surf_parse_out )
3382                         surf_parse_out = stdout;
3383
3384                 if ( ! YY_CURRENT_BUFFER ) {
3385                         surf_parse_ensure_buffer_stack ();
3386                         YY_CURRENT_BUFFER_LVALUE =
3387                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3388                 }
3389
3390                 surf_parse__load_buffer_state( );
3391                 }
3392
3393         while ( 1 )             /* loops until end-of-file is reached */
3394                 {
3395                 yy_cp = (yy_c_buf_p);
3396
3397                 /* Support of surf_parse_text. */
3398                 *yy_cp = (yy_hold_char);
3399
3400                 /* yy_bp points to the position in yy_ch_buf of the start of
3401                  * the current run.
3402                  */
3403                 yy_bp = yy_cp;
3404
3405                 yy_current_state = (yy_start);
3406 yy_match:
3407                 do
3408                         {
3409                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3410                         if ( yy_accept[yy_current_state] )
3411                                 {
3412                                 (yy_last_accepting_state) = yy_current_state;
3413                                 (yy_last_accepting_cpos) = yy_cp;
3414                                 }
3415                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3416                                 {
3417                                 yy_current_state = (int) yy_def[yy_current_state];
3418                                 if ( yy_current_state >= 1800 )
3419                                         yy_c = yy_meta[(unsigned int) yy_c];
3420                                 }
3421                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3422                         ++yy_cp;
3423                         }
3424                 while ( yy_base[yy_current_state] != 6589 );
3425
3426 yy_find_action:
3427                 yy_act = yy_accept[yy_current_state];
3428                 if ( yy_act == 0 )
3429                         { /* have to back up */
3430                         yy_cp = (yy_last_accepting_cpos);
3431                         yy_current_state = (yy_last_accepting_state);
3432                         yy_act = yy_accept[yy_current_state];
3433                         }
3434
3435                 YY_DO_BEFORE_ACTION;
3436
3437                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3438                         {
3439                         int yyl;
3440                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3441                                 if ( surf_parse_text[yyl] == '\n' )
3442                                            
3443     surf_parse_lineno++;
3444 ;
3445                         }
3446
3447 do_action:      /* This label is used only to access EOF actions. */
3448
3449                 switch ( yy_act )
3450         { /* beginning of action switch */
3451                         case 0: /* must back up */
3452                         /* undo the effects of YY_DO_BEFORE_ACTION */
3453                         *yy_cp = (yy_hold_char);
3454                         yy_cp = (yy_last_accepting_cpos);
3455                         yy_current_state = (yy_last_accepting_state);
3456                         goto yy_find_action;
3457
3458 case 1:
3459 YY_RULE_SETUP
3460 ENTER(INCOMMENT);
3461         YY_BREAK
3462 case 2:
3463 YY_RULE_SETUP
3464 ENTER(INPI);
3465         YY_BREAK
3466
3467 case 3:
3468 YY_RULE_SETUP
3469 LEAVE;
3470         YY_BREAK
3471 case 4:
3472 case 5:
3473 case 6:
3474 /* rule 6 can match eol */
3475 YY_RULE_SETUP
3476 SKIP;
3477         YY_BREAK
3478 case YY_STATE_EOF(INCOMMENT):
3479 FAIL("EOF in comment.");
3480         YY_BREAK
3481
3482 case 7:
3483 YY_RULE_SETUP
3484 LEAVE;
3485         YY_BREAK
3486 case 8:
3487 case 9:
3488 /* rule 9 can match eol */
3489 YY_RULE_SETUP
3490 SKIP;
3491         YY_BREAK
3492 case YY_STATE_EOF(INPI):
3493 FAIL("EOF in PI (processing instruction).");
3494         YY_BREAK
3495
3496 /* SPACES: skipped uniformly */
3497 case 10:
3498 /* rule 10 can match eol */
3499 YY_RULE_SETUP
3500 SKIP;
3501         YY_BREAK
3502 /* PROLOG: determine root element and process it. */
3503
3504 case 11:
3505 /* rule 11 can match eol */
3506 YY_RULE_SETUP
3507 SET(DOCTYPE); 
3508         YY_BREAK
3509 case 12:
3510 /* rule 12 can match eol */
3511 YY_RULE_SETUP
3512 FAIL("Bad declaration %s.",surf_parse_text);
3513         YY_BREAK
3514
3515 case 13:
3516 /* rule 13 can match eol */
3517 YY_RULE_SETUP
3518 SET(ROOT_surfxml_platform);
3519         YY_BREAK
3520 case 14:
3521 /* rule 14 can match eol */
3522 YY_RULE_SETUP
3523 FAIL("Bad declaration %s.",surf_parse_text);
3524         YY_BREAK
3525 case 15:
3526 YY_RULE_SETUP
3527 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
3528         YY_BREAK
3529 case YY_STATE_EOF(PROLOG):
3530 case YY_STATE_EOF(DOCTYPE):
3531 FAIL("EOF in prolog.");
3532         YY_BREAK
3533
3534 /* RULES DERIVED FROM DTD. */
3535 /* <!-- Small DTD for SURF based tools. -->  */
3536 case 16:
3537 /* rule 16 can match eol */
3538 YY_RULE_SETUP
3539 FAIL("Starting tag <platform> is not allowed here.");
3540         YY_BREAK
3541 case 17:
3542 /* rule 17 can match eol */
3543 YY_RULE_SETUP
3544 {
3545   AX_surfxml_platform_version = 1;
3546   ENTER(AL_surfxml_platform); pushbuffer(0);
3547   }
3548         YY_BREAK
3549
3550 case 18:
3551 /* rule 18 can match eol */
3552 YY_RULE_SETUP
3553 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
3554         YY_BREAK
3555 case 19:
3556 /* rule 19 can match eol */
3557 YY_RULE_SETUP
3558 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
3559         YY_BREAK
3560 case 20:
3561 YY_RULE_SETUP
3562 {
3563   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
3564  }
3565         YY_BREAK
3566 case 21:
3567 YY_RULE_SETUP
3568 {
3569   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
3570   switch (YY_START) {
3571    case ROOT_surfxml_platform: SET(EPILOG); break;
3572   }
3573  }
3574         YY_BREAK
3575 case 22:
3576 YY_RULE_SETUP
3577 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
3578         YY_BREAK
3579 case 23:
3580 YY_RULE_SETUP
3581 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
3582         YY_BREAK
3583 case YY_STATE_EOF(AL_surfxml_platform):
3584 FAIL("EOF in attribute list of `platform' element.");
3585         YY_BREAK
3586
3587 case 24:
3588 /* rule 24 can match eol */
3589 YY_RULE_SETUP
3590 {
3591   LEAVE;
3592   ETag_surfxml_platform();
3593   popbuffer(); /* attribute */
3594   switch (YY_START) {
3595    case ROOT_surfxml_platform: SET(EPILOG); break;
3596   }
3597  }
3598         YY_BREAK
3599 case 25:
3600 /* rule 25 can match eol */
3601 YY_RULE_SETUP
3602 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
3603         YY_BREAK
3604 case 26:
3605 YY_RULE_SETUP
3606 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
3607         YY_BREAK
3608 case YY_STATE_EOF(S_surfxml_platform_2):
3609 case YY_STATE_EOF(S_surfxml_platform_1):
3610 case YY_STATE_EOF(S_surfxml_platform):
3611 case YY_STATE_EOF(S_surfxml_platform_4):
3612 case YY_STATE_EOF(S_surfxml_platform_6):
3613 case YY_STATE_EOF(E_surfxml_platform):
3614 FAIL("Premature EOF: `</platform>' expected.");
3615         YY_BREAK
3616
3617 case 27:
3618 /* rule 27 can match eol */
3619 YY_RULE_SETUP
3620 FAIL("Starting tag <trace> is not allowed here.");
3621         YY_BREAK
3622 case 28:
3623 /* rule 28 can match eol */
3624 YY_RULE_SETUP
3625 {
3626   AX_surfxml_trace_id = 0;
3627   AX_surfxml_trace_file = 0;
3628   AX_surfxml_trace_periodicity = 0;
3629   ENTER(AL_surfxml_trace); pushbuffer(0);
3630   }
3631         YY_BREAK
3632
3633 case 29:
3634 /* rule 29 can match eol */
3635 YY_RULE_SETUP
3636 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
3637         YY_BREAK
3638 case 30:
3639 /* rule 30 can match eol */
3640 YY_RUL