Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix the DTD wrt trace:connect. I like it better this way ;)
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 33
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with  platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  * if you want the limit (max/min) macros for int types. 
37  */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t; 
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56 #endif /* ! C99 */
57
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN               (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN              (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN              (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX               (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX              (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX              (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX              (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX             (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX             (4294967295U)
85 #endif
86
87 #endif /* ! FLEXINT_H */
88
89 #ifdef __cplusplus
90
91 /* The "const" storage-class-modifier is valid. */
92 #define YY_USE_CONST
93
94 #else   /* ! __cplusplus */
95
96 #if __STDC__
97
98 #define YY_USE_CONST
99
100 #endif  /* __STDC__ */
101 #endif  /* ! __cplusplus */
102
103 #ifdef YY_USE_CONST
104 #define yyconst const
105 #else
106 #define yyconst
107 #endif
108
109 /* Returned upon end-of-file. */
110 #define YY_NULL 0
111
112 /* Promotes a possibly negative, possibly signed char to an unsigned
113  * integer for use as an array index.  If the signed char is negative,
114  * we want to instead treat it as an 8-bit unsigned char, hence the
115  * double cast.
116  */
117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
118
119 /* Enter a start condition.  This macro really ought to take a parameter,
120  * but we do it the disgusting crufty way forced on us by the ()-less
121  * definition of BEGIN.
122  */
123 #define BEGIN (yy_start) = 1 + 2 *
124
125 /* Translate the current start state into a value that can be later handed
126  * to BEGIN to return to the state.  The YYSTATE alias is for lex
127  * compatibility.
128  */
129 #define YY_START (((yy_start) - 1) / 2)
130 #define YYSTATE YY_START
131
132 /* Action number for EOF rule of a given start state. */
133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
134
135 /* Special action meaning "start processing a new file". */
136 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
137
138 #define YY_END_OF_BUFFER_CHAR 0
139
140 /* Size of default input buffer. */
141 #ifndef YY_BUF_SIZE
142 #define YY_BUF_SIZE 16384
143 #endif
144
145 /* The state buf must be large enough to hold one state per character in the main buffer.
146  */
147 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
148
149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150 #define YY_TYPEDEF_YY_BUFFER_STATE
151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
152 #endif
153
154 extern int surf_parse_leng;
155
156 extern FILE *surf_parse_in, *surf_parse_out;
157
158 #define EOB_ACT_CONTINUE_SCAN 0
159 #define EOB_ACT_END_OF_FILE 1
160 #define EOB_ACT_LAST_MATCH 2
161
162     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
163      *       access to the local variable yy_act. Since yyless() is a macro, it would break
164      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
165      *       One obvious solution it to make yy_act a global. I tried that, and saw
166      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
167      *       normally declared as a register variable-- so it is not worth it.
168      */
169     #define  YY_LESS_LINENO(n) \
170             do { \
171                 int yyl;\
172                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
173                     if ( surf_parse_text[yyl] == '\n' )\
174                         --surf_parse_lineno;\
175             }while(0)
176     
177 /* Return all but the first "n" matched characters back to the input stream. */
178 #define yyless(n) \
179         do \
180                 { \
181                 /* Undo effects of setting up surf_parse_text. */ \
182         int yyless_macro_arg = (n); \
183         YY_LESS_LINENO(yyless_macro_arg);\
184                 *yy_cp = (yy_hold_char); \
185                 YY_RESTORE_YY_MORE_OFFSET \
186                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
187                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
188                 } \
189         while ( 0 )
190
191 #define unput(c) yyunput( c, (yytext_ptr)  )
192
193 /* The following is because we cannot portably get our hands on size_t
194  * (without autoconf's help, which isn't available because we want
195  * flex-generated scanners to compile on their own).
196  */
197
198 #ifndef YY_TYPEDEF_YY_SIZE_T
199 #define YY_TYPEDEF_YY_SIZE_T
200 typedef unsigned int yy_size_t;
201 #endif
202
203 #ifndef YY_STRUCT_YY_BUFFER_STATE
204 #define YY_STRUCT_YY_BUFFER_STATE
205 struct yy_buffer_state
206         {
207         FILE *yy_input_file;
208
209         char *yy_ch_buf;                /* input buffer */
210         char *yy_buf_pos;               /* current position in input buffer */
211
212         /* Size of input buffer in bytes, not including room for EOB
213          * characters.
214          */
215         yy_size_t yy_buf_size;
216
217         /* Number of characters read into yy_ch_buf, not including EOB
218          * characters.
219          */
220         int yy_n_chars;
221
222         /* Whether we "own" the buffer - i.e., we know we created it,
223          * and can realloc() it to grow it, and should free() it to
224          * delete it.
225          */
226         int yy_is_our_buffer;
227
228         /* Whether this is an "interactive" input source; if so, and
229          * if we're using stdio for input, then we want to use getc()
230          * instead of fread(), to make sure we stop fetching input after
231          * each newline.
232          */
233         int yy_is_interactive;
234
235         /* Whether we're considered to be at the beginning of a line.
236          * If so, '^' rules will be active on the next match, otherwise
237          * not.
238          */
239         int yy_at_bol;
240
241     int yy_bs_lineno; /**< The line count. */
242     int yy_bs_column; /**< The column count. */
243     
244         /* Whether to try to fill the input buffer when we reach the
245          * end of it.
246          */
247         int yy_fill_buffer;
248
249         int yy_buffer_status;
250
251 #define YY_BUFFER_NEW 0
252 #define YY_BUFFER_NORMAL 1
253         /* When an EOF's been seen but there's still some text to process
254          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
255          * shouldn't try reading from the input source any more.  We might
256          * still have a bunch of tokens to match, though, because of
257          * possible backing-up.
258          *
259          * When we actually see the EOF, we change the status to "new"
260          * (via surf_parse_restart()), so that the user can continue scanning by
261          * just pointing surf_parse_in at a new input file.
262          */
263 #define YY_BUFFER_EOF_PENDING 2
264
265         };
266 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
267
268 /* Stack of input buffers. */
269 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
270 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
271 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
272
273 /* We provide macros for accessing buffer states in case in the
274  * future we want to put the buffer states in a more general
275  * "scanner state".
276  *
277  * Returns the top of the stack, or NULL.
278  */
279 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
280                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
281                           : NULL)
282
283 /* Same as previous macro, but useful when we know that the buffer stack is not
284  * NULL or when we need an lvalue. For internal use only.
285  */
286 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
287
288 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
289 static char yy_hold_char;
290 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
291 int surf_parse_leng;
292
293 /* Points to current character in buffer. */
294 static char *yy_c_buf_p = (char *) 0;
295 static int yy_init = 0;         /* whether we need to initialize */
296 static int yy_start = 0;        /* start state number */
297
298 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
299  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
300  */
301 static int yy_did_buffer_switch_on_eof;
302
303 void surf_parse_restart (FILE *input_file  );
304 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
305 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
306 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
307 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
308 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
309 void surf_parse_pop_buffer_state (void );
310
311 static void surf_parse_ensure_buffer_stack (void );
312 static void surf_parse__load_buffer_state (void );
313 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
314
315 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
316
317 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
318 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
319 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
320
321 void *surf_parse_alloc (yy_size_t  );
322 void *surf_parse_realloc (void *,yy_size_t  );
323 void surf_parse_free (void *  );
324
325 #define yy_new_buffer surf_parse__create_buffer
326
327 #define yy_set_interactive(is_interactive) \
328         { \
329         if ( ! YY_CURRENT_BUFFER ){ \
330         surf_parse_ensure_buffer_stack (); \
331                 YY_CURRENT_BUFFER_LVALUE =    \
332             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
333         } \
334         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
335         }
336
337 #define yy_set_bol(at_bol) \
338         { \
339         if ( ! YY_CURRENT_BUFFER ){\
340         surf_parse_ensure_buffer_stack (); \
341                 YY_CURRENT_BUFFER_LVALUE =    \
342             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
343         } \
344         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
345         }
346
347 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
348
349 /* Begin user sect3 */
350
351 #define surf_parse_wrap() 1
352 #define YY_SKIP_YYWRAP
353
354 typedef unsigned char YY_CHAR;
355
356 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
357
358 typedef int yy_state_type;
359
360 extern int surf_parse_lineno;
361
362 int surf_parse_lineno = 1;
363
364 extern char *surf_parse_text;
365 #define yytext_ptr surf_parse_text
366
367 static yy_state_type yy_get_previous_state (void );
368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
369 static int yy_get_next_buffer (void );
370 static void yy_fatal_error (yyconst char msg[]  );
371
372 /* Done after the current pattern has been matched and before the
373  * corresponding action - sets up surf_parse_text.
374  */
375 #define YY_DO_BEFORE_ACTION \
376         (yytext_ptr) = yy_bp; \
377         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
378         (yy_hold_char) = *yy_cp; \
379         *yy_cp = '\0'; \
380         (yy_c_buf_p) = yy_cp;
381
382 #define YY_NUM_RULES 351
383 #define YY_END_OF_BUFFER 352
384 /* This struct is not used in this scanner,
385    but its presence is necessary. */
386 struct yy_trans_info
387         {
388         flex_int32_t yy_verify;
389         flex_int32_t yy_nxt;
390         };
391 static yyconst flex_int16_t yy_accept[2023] =
392     {   0,
393         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
394         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
395         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
396         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
397         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
399         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
400         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
401         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
403
404         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
405         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
406         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
407         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
408         0,    0,  352,  350,   15,   10,   10,   15,   15,  330,
409        10,  330,    5,    6,    5,    8,    9,    8,  346,  338,
410       339,  347,  344,  347,  345,  349,  338,  339,  349,  350,
411        26,   10,   26,   26,   26,   24,   26,   26,   30,   10,
412        30,   30,  350,  350,   30,   37,   10,   37,   37,   37,
413        35,   37,   41,   10,   41,   52,   10,   52,   52,   52,
414
415        50,   52,   52,   52,  347,  346,   74,   10,   74,   74,
416        74,   72,   74,   74,   74,   74,   78,   10,   78,  350,
417        78,   97,   10,   97,   97,   97,   95,   97,   97,   97,
418       101,   10,  101,  114,   10,  114,  114,  114,  112,  114,
419       114,  114,  114,  118,   10,  118,  125,   10,  125,  125,
420       125,  123,  125,  350,  350,  129,   10,  129,  156,   10,
421       156,  156,  156,  154,  156,  156,  156,  156,  156,  160,
422        10,  160,  160,  169,   10,  169,  169,  169,  167,  169,
423       169,  173,   10,  173,  196,   10,  196,  196,  196,  194,
424       196,  196,  196,  196,  196,  196,  200,   10,  200,  207,
425
426        10,  207,  207,  207,  205,  207,  211,   10,  211,  236,
427        10,  236,  236,  236,  234,  236,  236,  236,  236,  240,
428        10,  240,  240,  259,   10,  259,  259,  259,  257,  259,
429       259,  259,  350,  263,   10,  263,  263,  286,   10,  286,
430       286,  286,  284,  286,  286,  286,  286,  290,   10,  290,
431       290,  297,   10,  297,  297,  297,  295,  297,  301,   10,
432       301,  314,   10,  314,  314,  314,  312,  314,  314,  314,
433       314,  318,   10,  318,  350,  318,  325,   10,  325,  325,
434       325,  323,  325,  329,   10,  329,   10,    0,    2,    2,
435         0,    4,    7,  341,  340,    0,    0,    0,    0,    0,
436
437         0,    0,   25,   27,   27,   27,    0,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
440        38,   38,    0,   51,   53,   53,   53,   53,    0,    0,
441         0,   73,   75,   75,   75,   75,   75,   75,   75,    0,
442         0,   96,   98,   98,   98,   98,    0,  113,  115,  115,
443       115,  115,  115,    0,  124,  126,  126,    0,  155,  157,
444       157,  157,  157,  157,  157,  157,    0,  168,  170,  170,
445       170,    0,  195,  197,  197,  197,  197,  197,  197,  197,
446       197,  197,    0,  206,  208,  208,    0,  235,  237,  237,
447
448       237,  237,  237,  237,    0,  258,  260,  260,  260,  260,
449       260,    0,    0,  285,  287,  287,  287,  287,  287,    0,
450       296,  298,  298,    0,  313,  315,  315,  315,  315,  315,
451         0,    0,  324,  326,  326,    0,    0,    0,    0,    0,
452         3,    0,    0,    0,    0,    0,    0,    0,  348,    0,
453        27,   27,    0,    0,    0,    0,    0,    0,    0,    0,
454         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
455         0,    0,    0,    0,    0,    0,    0,    0,    0,   38,
456         0,    0,   53,    0,    0,   53,    0,    0,    0,  343,
457        75,    0,    0,   75,   75,   75,   75,    0,    0,    0,
458
459        98,   98,   98,    0,    0,    0,    0,  115,  115,  115,
460         0,    0,  126,    0,    0,  157,    0,    0,  157,  157,
461       157,  157,    0,    0,    0,    0,  170,    0,    0,  197,
462         0,    0,    0,    0,  197,  197,  197,  197,  197,    0,
463         0,    0,    0,    0,    0,  237,    0,    0,  237,  237,
464       237,    0,    0,  260,  260,  260,  260,    0,    0,    0,
465       287,  287,  287,  287,    0,    0,    0,    0,    0,    0,
466       315,  315,  315,  315,    0,    0,    0,  326,    0,    0,
467         0,   14,    1,    0,    0,  336,    0,    0,    0,  333,
468       332,    0,    0,   27,   27,    0,    0,   29,    0,    0,
469
470         0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
471         0,    0,    0,    0,    0,    0,    0,  102,    0,    0,
472         0,    0,    0,    0,   38,    0,    0,   40,    0,   53,
473         0,   45,   44,   53,    0,    0,    0,   55,    0,   75,
474         0,   59,   58,    0,    0,   75,    0,    0,   75,    0,
475         0,   77,    0,    0,   98,   98,   98,    0,    0,  100,
476         0,    0,  105,  104,  115,  115,  115,    0,    0,  117,
477         0,  126,    0,    0,  128,    0,  157,    0,  133,  132,
478       157,  157,  157,  157,    0,    0,  159,    0,    0,  164,
479       163,  170,    0,    0,  172,    0,  197,  197,    0,  187,
480
481       186,    0,  177,  176,    0,    0,  197,  197,  197,  197,
482         0,    0,  199,    0,    0,  204,  203,    0,    0,  210,
483         0,  237,    0,  215,  214,  237,  237,  237,    0,    0,
484       239,    0,  260,    0,    0,    0,    0,  260,    0,    0,
485         0,  262,    0,  287,    0,    0,  287,    0,    0,    0,
486         0,  289,    0,    0,  294,  293,    0,    0,  300,    0,
487       315,  315,  315,  315,    0,    0,  317,    0,    0,  326,
488         0,    0,  328,    0,    0,    0,  337,  331,    0,    0,
489         0,   27,   27,    0,    0,    0,    0,  131,    0,  213,
490         0,    0,  161,    0,    0,  103,    0,    0,    0,  130,
491
492       212,    0,    0,  102,    0,    0,    0,    0,    0,    0,
493         0,    0,    0,    0,    0,   53,    0,    0,   75,    0,
494        63,   62,    0,    0,    0,   61,   60,   75,    0,  162,
495        98,    0,    0,   98,    0,  115,  115,  115,    0,  126,
496         0,  157,  157,  157,  157,  157,    0,  170,    0,  197,
497       197,    0,  189,  188,  197,  197,  197,  197,    0,    0,
498       237,  237,  237,  237,    0,  260,    0,  246,  245,    0,
499       244,  243,  260,  212,    0,  287,    0,  269,  268,  287,
500         0,  267,  266,    0,    0,  315,    0,    0,  315,  315,
501         0,    0,  326,    0,    0,    0,    0,   12,    0,  334,
502
503       335,    0,   27,   27,    0,    0,    0,    0,  131,    0,
504       213,    0,    0,    0,  161,    0,  265,   43,    0,    0,
505       130,  212,    0,  265,   42,    0,  264,    0,  264,   42,
506         0,   34,   33,    0,    0,   47,   46,   53,    0,    0,
507        75,    0,   65,   64,   75,    0,  162,   98,    0,    0,
508         0,    0,    0,    0,  115,  115,  115,    0,  116,  126,
509         0,  157,  157,  157,    0,    0,    0,    0,  157,    0,
510         0,    0,    0,    0,    0,  197,    0,    0,  197,  197,
511       197,    0,    0,  237,  237,  237,    0,    0,  237,    0,
512       260,  260,    0,    0,  287,  287,    0,    0,  315,    0,
513
514       305,  304,  315,  315,    0,    0,    0,    0,    0,    0,
515         0,    0,   11,    0,   27,   27,   27,    0,    0,    0,
516         0,    0,    0,    0,    0,   57,  265,    0,  202,   43,
517         0,    0,    0,   56,  201,   42,    0,  264,    0,    0,
518         0,    0,   53,    0,    0,   75,   75,    0,   98,    0,
519         0,    0,    0,    0,    0,    0,    0,    0,   92,   91,
520         0,    0,    0,  115,    0,    0,    0,    0,    0,  157,
521       157,  157,    0,  135,  134,    0,    0,    0,  157,    0,
522       158,    0,  166,  165,    0,  171,    0,  191,  190,    0,
523         0,    0,  185,  184,    0,    0,  197,    0,    0,    0,
524
525         0,  237,  237,  237,    0,    0,    0,  237,    0,  238,
526         0,    0,  260,    0,    0,    0,    0,  287,    0,    0,
527       315,  315,  315,    0,    0,    0,  322,  321,    0,    0,
528         0,    0,    0,    0,    0,   27,   27,    0,    0,  175,
529       120,   32,    0,    0,  303,   57,    0,  202,    0,  174,
530       119,   56,  201,  302,    0,   31,    0,    0,   53,    0,
531         0,   54,   75,   75,    0,    0,    0,    0,    0,    0,
532         0,    0,    0,    0,    0,    0,    0,    0,    0,  107,
533       106,    0,    0,    0,  109,  108,    0,  122,  121,    0,
534       157,  157,  157,    0,    0,  157,    0,  193,  192,    0,
535
536       179,  178,    0,    0,    0,  181,  180,    0,    0,  237,
537         0,    0,  237,  237,    0,    0,  237,    0,    0,    0,
538       260,    0,    0,    0,    0,    0,  287,    0,  288,    0,
539       315,  315,  315,    0,    0,    0,    0,    0,    0,   17,
540         0,   19,   18,   27,   27,    0,  319,  175,  120,   32,
541       291,   16,  303,    0,    0,  174,  119,  302,    0,   31,
542         0,    0,   53,  342,   75,   75,    0,   76,    0,   94,
543        93,    0,    0,    0,    0,    0,    0,    0,    0,    0,
544         0,    0,    0,  111,  110,    0,  157,  157,  157,    0,
545         0,    0,    0,  157,    0,  183,  182,    0,    0,  209,
546
547       237,    0,  221,  220,  237,  237,    0,    0,    0,    0,
548       237,    0,    0,    0,    0,  260,  292,    0,    0,    0,
549         0,    0,  287,    0,    0,    0,  315,  315,    0,  320,
550         0,    0,    0,    0,   17,   27,   27,    0,  319,  291,
551        16,    0,    0,    0,    0,    0,   39,   53,    0,    0,
552        75,    0,    0,    0,    0,    0,    0,    0,    0,    0,
553         0,    0,    0,  127,  157,  157,  157,    0,  141,    0,
554       140,  157,    0,  198,    0,    0,  237,  237,  237,    0,
555       225,    0,  224,  237,    0,    0,    0,    0,    0,    0,
556         0,    0,  292,    0,    0,    0,    0,    0,    0,    0,
557
558       287,    0,    0,  307,  306,    0,    0,  315,    0,  316,
559       320,    0,    0,    0,    0,    0,    0,   27,    0,   28,
560         0,    0,    0,    0,   53,    0,    0,    0,   75,    0,
561         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
562       157,  157,  157,  143,  142,    0,    0,    0,  217,  216,
563       237,  237,  237,  227,  226,    0,    0,    0,    0,    0,
564         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
565         0,    0,    0,  287,  287,    0,  299,    0,  311,  310,
566         0,    0,    0,  327,    0,    0,    0,    0,   21,   20,
567         0,    0,  242,    0,  241,    0,    0,    0,    0,    0,
568
569         0,    0,   75,    0,    0,    0,    0,   84,    0,    0,
570         0,    0,   83,    0,  157,  157,  157,    0,  145,  144,
571       237,  237,  237,    0,  229,  228,    0,    0,    0,    0,
572         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
573         0,    0,    0,  287,  287,    0,  309,  308,    0,    0,
574         0,    0,   23,   22,  242,    0,  241,    0,    0,   49,
575        48,    0,    0,    0,    0,   75,    0,    0,    0,    0,
576         0,    0,    0,    0,    0,    0,    0,  157,  157,  157,
577       237,    0,    0,  237,    0,    0,    0,    0,    0,    0,
578         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
579
580         0,  287,  287,    0,    0,    0,    0,   80,   79,    0,
581         0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
582         0,   89,    0,    0,    0,  137,  136,  157,  157,  157,
583       157,  237,    0,  223,  222,  237,    0,    0,    0,    0,
584         0,    0,  256,    0,  255,    0,    0,  261,    0,    0,
585         0,    0,    0,    0,    0,    0,  287,    0,    0,  287,
586         0,    0,    0,    0,    0,    0,   80,   79,    0,    0,
587         0,    0,    0,   67,   66,    0,    0,    0,    0,    0,
588         0,    0,  157,  157,  157,  157,    0,    0,    0,    0,
589         0,    0,    0,    0,    0,    0,  254,  253,    0,    0,
590
591         0,    0,    0,    0,    0,  273,  272,  287,    0,  271,
592       270,  287,    0,    0,    0,    0,    0,    0,    0,   71,
593         0,   70,   88,    0,    0,   87,    0,    0,    0,   99,
594       157,  157,  157,  157,    0,  219,  218,    0,    0,    0,
595         0,    0,  250,    0,    0,  249,    0,    0,  281,    0,
596         0,  280,  287,  287,    0,    0,    0,   12,    0,   12,
597         0,    0,    0,   82,   86,   81,   85,  157,  157,  157,
598       157,    0,    0,    0,    0,  252,  248,  251,  247,  283,
599       279,  282,  278,  287,  287,    0,    0,    0,    0,    0,
600         0,    0,    0,    0,    0,    0,    0,    0,  157,    0,
601
602         0,    0,    0,    0,    0,  287,  287,    0,    0,   69,
603        68,    0,  139,  138,    0,  149,  148,    0,  147,  146,
604       157,    0,  153,  152,    0,    0,    0,    0,  287,  287,
605         0,   11,  157,    0,    0,    0,    0,  287,  287,    0,
606       157,    0,    0,    0,    0,  287,  287,    0,  157,    0,
607         0,    0,    0,  287,  287,    0,    0,    0,    0,  231,
608         0,  230,  287,  287,    0,    0,  151,  150,  233,  232,
609       287,  287,    0,  287,  287,    0,  287,  287,    0,    0,
610       287,  287,    0,    0,  287,  287,    0,    0,  287,  287,
611         0,    0,    0,    0,    0,    0,    0,    0,    0,  277,
612
613       276,    0,  275,  274,    0,    0,    0,    0,    0,    0,
614         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
615        13,    0
616     } ;
617
618 static yyconst flex_int32_t yy_ec[256] =
619     {   0,
620         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
621         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
622         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
623         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
624         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
625        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
626        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
627        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
628        28,   37,   38,   39,   28,   40,   41,   28,   42,   28,
629        43,    1,   44,    1,   45,    1,   46,   47,   48,   49,
630
631        50,   51,   52,   53,   54,   28,   55,   56,   57,   58,
632        59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
633        69,   28,    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         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
641
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,    1,    1,    1,    1,    1,
647         1,    1,    1,    1,    1
648     } ;
649
650 static yyconst flex_int32_t yy_meta[70] =
651     {   0,
652         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
653         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
654         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
655         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
656         5,    5,    1,    1,    5,    9,    9,    9,    9,    9,
657         9,    5,    5,    5,    5,    5,    5,    5,    5,    5,
658         5,    5,    5,    5,    5,    5,    5,    5,    5
659     } ;
660
661 static yyconst flex_int16_t yy_base[2256] =
662     {   0,
663         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
664        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
665       105,  173,   75,   78,   83,  125,  128,  132,  135,  138,
666       193,  196,  200,  203,  206,  224,  242,  293,  262,  265,
667       344,  404,  271,  273,  464,  527,  269,  316,  320,  323,
668       364,  367,  371,  374,  590,  654,  424,  427,  718,  781,
669       431,  434,  844,  907,  484,  487,  491,  494,  497,  547,
670       970, 1033,  550,  554,  557,  560,  610,  613,  617,  620,
671      1096, 1162,  623,  674, 1228,    0,  677,  681, 1297, 1351,
672       684,  687, 1405, 1468,  738,  741,  745,  748,  751,  801,
673
674       804,  808, 1531, 1594,  811,  814,  864,  867,  871,  874,
675       877,  927, 1657, 1720,  930,  934,  937,  940,  990,  993,
676       997, 1000, 1783, 1837, 1003, 1053, 1891, 1954, 1056, 1060,
677      1063, 1066, 1116, 1119, 1123, 1126, 2017, 2083, 1129, 1182,
678         0,    0, 5066, 7094, 7094,   95,  100,   29,   41, 7094,
679       155,   51, 7094, 7094, 5055, 7094, 7094, 5043, 7094, 5058,
680      5042, 1141, 7094, 7094, 7094, 7094, 5036, 5032, 4990,  210,
681      7094,  158, 5012,    0,  142, 7094, 4977, 4969, 7094,  162,
682      2145, 2205,  160, 5007,  176, 7094,  165, 4998,    0,  149,
683      7094, 4961, 7094,  230,  378, 7094,  326, 4994,    0,  208,
684
685      7094, 4958, 4949, 4947,  379, 4950, 7094,  329, 4972,    0,
686       214, 7094, 4938, 4937,  238, 4915, 7094,  377,   11,   31,
687      4965, 7094,  399, 4948,    0,  435, 7094, 4907, 4905, 4888,
688      7094,  457,  441, 7094,  520, 4922,    0,  436, 7094, 4892,
689      4870, 4871, 4851, 7094,  583,  498, 7094,  640, 4894,    0,
690       499, 7094, 4862,  513, 4840, 7094,  644, 4879, 7094,  647,
691      4870,    0,  562, 7094, 4802,   34, 4821, 4797, 4788, 7094,
692       704,  177, 4838, 7094,  708, 4827,    0,  568, 7094, 4793,
693      4783, 7094,  711,  752, 7094,  772, 4808,    0,  631, 7094,
694       211, 4777, 4775,   93, 4773, 4753, 7094,  834,  818, 7094,
695
696       894, 4796,    0,  632, 7094, 4753, 7094,  897,  881, 7094,
697       901, 4781,    0,  695, 7094, 4739, 4735, 4736,   80, 7094,
698       957,  360, 4765, 7094,  960, 4755,    0,  696, 7094, 4726,
699      4709,   26,  304, 7094,  963,  330, 4746, 7094, 1149, 4726,
700         0,  885, 7094, 4694, 4675, 4679, 4673, 7094, 1152,  499,
701      4721, 7094, 1155, 4705,    0,  948, 7094, 4672, 7094, 1186,
702      1005, 7094, 1192, 4696,    0, 1004, 7094, 4650, 4654, 4655,
703      4643, 7094, 1205, 1100, 4694, 4691, 7094, 1208, 4678,    0,
704      1007, 7094, 4650, 7094, 1211, 1068, 1215,  429, 4627, 7094,
705      4683, 4665, 7094, 7094, 7094, 1306,  283, 4614, 4612, 4607,
706
707      4647, 4609, 7094,    0, 4598, 4601, 4586, 4583, 4584, 4580,
708      4574, 4570, 4573,    4,  166, 4567, 4554, 4558, 4546, 4545,
709      4541,  404, 4544, 4530,   38,  467, 4530,  712, 4523, 7094,
710         0, 4526, 4527, 7094,    0, 4523, 1320, 4516,  533, 4512,
711      4555, 7094,    0, 4514, 1323, 4486, 4507, 4493, 4497, 4477,
712        89, 7094,    0, 4488, 4462, 4473, 4453, 7094,    0, 1326,
713      4459, 4459, 4455, 4435, 7094,    0, 4429, 4441, 7094,    0,
714      4444, 1329, 4422, 4400, 4400, 4419, 4407, 7094,    0, 1373,
715      4398, 4393, 7094,    0, 4406, 1377, 1380, 4375, 4371, 4386,
716      4372, 4366, 4367, 7094,    0, 1383, 4348, 7094,    0, 4351,
717
718      1425, 4340, 4357, 4355, 4340, 7094,    0, 4327, 4326, 4340,
719      4326, 4323, 4308, 7094,    0, 4305, 4289, 4291, 4298, 4283,
720      7094,    0, 1428, 4287, 7094,    0, 4277, 4271, 4272, 4280,
721      4264, 4261, 7094,    0, 4265, 4267, 4286, 4295,  807, 4246,
722      7094, 1207,    0, 4229, 4229, 4269, 4268, 4224, 7094, 4231,
723      4213, 4213, 1431, 1434, 4218, 4203, 4205, 4201, 4215, 4194,
724      4202, 4187, 4187, 4178, 4170, 4186, 4165, 4167, 4164, 4155,
725      4154, 4145, 4145, 4157, 4143, 4135, 4141, 4122, 4139, 4128,
726      1437, 1489, 4127, 1494, 1497, 4108, 4137, 1551, 1556, 7094,
727      4106, 1559, 1514, 1562, 4097, 1565, 4108, 1619, 1627, 4090,
728
729      4091, 4097, 4083, 1622, 1630, 1677, 1583, 4079, 4065, 4067,
730      1682, 1695, 4068, 1685, 1740, 4058, 1691, 1642, 4059, 4062,
731      4056, 4037, 1745, 1748, 1751, 1710, 4035, 1755, 1808,  583,
732      1811, 1814, 1857, 1860, 1869, 4032, 4030, 4025, 4021, 1911,
733      1920, 1914, 1880, 1917, 1923, 4022, 1926, 1975, 4014, 3994,
734      3987, 1983, 1986, 3996, 1989, 1992, 3981, 3977, 2039, 2046,
735      3979, 1997, 3983, 2043, 2049, 2052, 2061, 2072, 2104, 2110,
736      3976, 3952, 3959, 3943, 2113, 2116, 3952, 3927, 2119, 2138,
737      3970, 7094, 7094,  315, 3922, 7094, 3934, 3933, 3878, 7094,
738      7094, 3872, 3870, 3879, 3868, 2141, 2149, 7094, 2168, 3865,
739
740      3859, 3871, 3849, 3854, 3849, 3830,  261, 3839, 3819, 1223,
741      3834, 3802, 3814, 3798, 3796, 3801, 3784, 1332, 3795,  384,
742      3777, 3784, 3774, 3788, 2144, 2172, 2177, 7094, 2182, 2209,
743      2216, 7094, 7094, 2229, 3810, 2232, 2235, 7094, 2240, 3756,
744      2268, 7094, 7094, 2243, 2276, 2287, 2290, 2293, 3767, 2301,
745      2308, 7094, 2311,  432, 3761, 2314, 3760, 2320, 2323, 7094,
746      2332, 2335, 7094, 7094, 3754, 3751, 3743, 2343, 2346, 7094,
747      2351, 3739, 2354, 2357, 7094, 2377, 3735, 2380, 7094, 7094,
748      3728, 3721, 3717, 3727, 2388, 2391, 7094, 2396, 2400, 7094,
749      7094, 3722, 2410, 2415, 7094, 2418, 3702, 3717, 2422, 7094,
750
751      7094, 2438, 7094, 7094, 2430, 2448, 3700, 3698, 3703, 3695,
752      2458, 2461, 7094, 2464, 2467, 7094, 7094, 2483, 2486, 7094,
753      2489, 3673, 2492, 7094, 7094, 3679, 3672, 3662, 2508, 2511,
754      7094, 2514, 3611, 2517, 2521, 2536, 2539, 3618, 3612, 2547,
755      2554, 7094, 2557, 3602, 2560, 2567, 3607, 2578, 2581, 2589,
756      2592, 7094, 2596, 2599, 7094, 7094, 2611, 2615, 7094, 2621,
757      3590, 2624, 3607, 3576, 2630, 2634, 7094, 2642, 3573, 3586,
758      2645, 2649, 7094, 2653,  726, 2656, 7094, 7094, 3618, 3616,
759      3569, 3560, 3587, 2664, 3545, 3528, 3544, 1386, 3520, 2152,
760      3533, 3532, 1460, 3512, 3519, 1463, 3518, 3502, 3518, 1523,
761
762      2678, 3504, 3511, 1526, 3497, 3496, 3494, 3478, 3491, 3490,
763      2668, 2686, 2694, 2700, 2704, 3489, 3504, 2713, 3479, 2718,
764      7094, 7094, 2727, 2732, 2745, 7094, 7094, 3473, 2740, 1650,
765      3457, 2753, 2760, 2771, 2774, 3446, 3466, 3439, 2777, 3457,
766      2780, 3458, 3452, 3436, 2783, 2789, 2801, 2807, 2811, 2814,
767      2821, 2833, 7094, 7094, 2825, 2843, 2847, 2850, 2853, 2856,
768      3442, 3447, 3431, 2876, 2879, 3430, 2885, 7094, 7094, 2894,
769      7094, 7094, 3418, 2903, 2906, 3419, 2921, 7094, 7094, 3412,
770      2929, 7094, 7094, 2937, 2940, 3420, 2910, 2943, 3401, 3418,
771      2951, 3402, 2959, 2962,  181, 3437, 2965, 7094, 3436, 7094,
772
773      7094, 3395, 3388,  518, 2970, 3395, 3393, 3394, 1705, 3391,
774      1769, 3387, 3375, 3365, 1774, 3370, 2973, 2977, 3375, 3365,
775      1777, 1829, 3354, 2984, 2994, 3347, 3000, 3358, 3003, 3009,
776      3020, 7094, 7094, 3030, 3034, 7094, 7094, 3351, 3362, 3049,
777      3328, 3052, 7094, 7094, 3325, 3064, 1832, 3325, 3068, 1059,
778      1113, 3045, 3076, 3084, 3087, 3090, 3094, 3098, 7094, 3108,
779      3112, 3337, 3333, 3317, 3117, 3122, 3135, 3138, 3328, 3146,
780      3149, 3153, 3161, 3167, 3170, 3180, 3185, 3188, 3198, 3203,
781      3206, 3209, 3212, 3328, 3307, 3321, 3216, 3224, 3321, 3234,
782      3237, 3241, 3322, 3244, 3247, 3265, 3268, 3273, 3310, 3276,
783
784      7094, 7094, 3313, 3302, 3288, 3306, 3293, 3296, 3311, 1422,
785       612,  568, 7094, 3279, 3317, 3320, 3323, 3326, 3282, 3275,
786      3282, 3267, 3252, 3249, 3246, 1875, 1945, 3250, 1948, 2010,
787      3258, 3242, 3248, 3330, 3341, 3345, 3224, 3348, 3229, 3233,
788      3233, 3351, 3226, 3243, 3355, 3204, 3207, 3358, 3361, 3236,
789      3222,  260, 3220, 3231, 3217,  421, 3207, 3384, 7094, 7094,
790      3392, 3395, 3400, 3414, 3417, 3420, 3428, 3435, 3446, 3180,
791      3169, 3172, 3449, 7094, 7094, 3458, 3188, 3186, 3149, 3466,
792      7094, 3469, 7094, 7094, 3477, 7094, 3481, 7094, 7094, 3489,
793      3496, 3507, 7094, 7094, 3515, 3518, 3526, 3529, 3533, 3547,
794
795      3550, 3134, 3553, 3151, 3556, 3160, 3158, 3131, 3571, 7094,
796      3574, 3577, 3585, 3116, 3597, 3592, 3612, 3603, 3606, 3621,
797      3120, 3120, 3121, 3625, 3109, 3628, 7094, 7094, 3640,  808,
798      1330,  747, 3104, 3644, 3647, 3655, 3662, 3669, 3096, 3673,
799      3676, 3680, 3087, 3086, 3683, 3689, 3070, 3692, 3074, 3695,
800      3698, 3701, 3704, 3707, 3065, 3712, 3070, 3715, 3068, 3074,
801      3718, 7094, 3046, 3061, 3721, 3726, 3730, 3071, 3065, 3044,
802      3047, 3035, 3041, 3035, 3024, 3026, 3018, 3740, 3744, 7094,
803      7094, 3752, 3755, 3764, 7094, 7094, 3772, 7094, 7094, 3780,
804      3001, 2995, 2985,  669,  743, 2986, 3783, 7094, 7094, 3792,
805
806      7094, 7094, 3800, 3803, 3811, 7094, 7094, 3819, 3822, 2988,
807      3825, 3828, 2988, 2970,  806,  857, 2972, 3843,  358,  361,
808      3851, 2962, 3854, 3857,  658,  785, 3865, 3869, 7094, 3873,
809      3876, 2968, 2960, 3883, 2950, 3894, 3888,  927, 1009, 3898,
810      3903, 7094, 7094, 3913, 3916, 3922, 3925, 3936, 3941, 3945,
811      3951, 3954, 3957, 2953, 2950, 3960, 3963, 3967, 2938, 3970,
812      2934, 3973, 2927, 7094, 3979, 2920, 3982, 7094, 3985, 7094,
813      7094, 2958, 2920, 2932, 2925, 2925, 2925, 2909, 2911, 2905,
814      2902, 3993, 3997, 7094, 7094, 4005, 2868, 2859, 2848, 2865,
815      2878, 2850, 2865, 2818, 4008, 7094, 7094, 4016, 4019, 7094,
816
817      4024, 4028, 7094, 7094, 2810, 2784, 2761, 2746, 2713, 2723,
818      2624,   81,  919,  466,  985, 4038, 4042, 4045,  474, 1048,
819       477, 1057, 4051, 4056, 4059, 4071, 4064,  527, 4082, 4085,
820      4088, 4091,  748,  840, 4095, 4101, 4113, 4119, 4122, 4125,
821      4131,  518,  548,  565,  624, 4134, 7094,  665, 4138, 4141,
822       706,  738,  786,  838,  838,  886,  894,  901,  915,  912,
823       931, 4156, 4162, 7094,  934,  971,  965, 1025, 7094, 1023,
824      7094, 4165, 4168, 7094, 4171, 4177,  998, 1005, 1019, 1080,
825      7094, 1115, 7094, 4189, 1109, 1100, 1117, 1135, 1140, 1165,
826      4192, 4195, 4203, 4213, 1166, 1160, 1173, 1175, 1165, 1178,
827
828      4216, 4219, 4222, 7094, 7094, 4234, 4238, 4247, 4252, 7094,
829      4255, 4258, 1293, 1347, 1384, 4271, 4278, 4289, 4292, 7094,
830      1169, 1287, 1284, 1293, 4295, 4298, 1366, 1470, 1285, 1316,
831      1325, 1349, 1371, 1391, 1368, 1378, 1397, 1423, 1437, 4307,
832      1381, 1403, 1403, 7094, 7094, 4313, 4316, 4327, 7094, 7094,
833      1402, 1410, 1430, 7094, 7094, 4335, 4338, 1457, 1463, 1468,
834      1468, 1469, 1474, 4346, 1548, 1549, 4354, 1477, 1480, 1485,
835      1519, 1518, 1534, 4357, 4360, 4364, 7094, 4369, 7094, 7094,
836      4378, 4383, 4391, 7094, 1573, 1552, 1559, 4396, 7094, 7094,
837      4404, 4410, 4422, 1525, 4425, 1540, 4428, 4431, 1579, 1598,
838
839      1590, 1606, 1577, 1611, 1601, 1607, 1615, 7094, 1631, 1642,
840      1641, 1650, 7094, 4439, 4442, 1646, 1659, 4446, 7094, 7094,
841      1661, 4454, 1670, 4460, 7094, 7094, 1699, 1710, 1730, 1724,
842      1726, 1741, 1747, 1779, 1771, 1782, 4468, 1772, 1783, 1795,
843      1785, 1788, 1799, 4472, 4475, 4493, 7094, 7094, 1916, 1833,
844      4481, 4501, 7094, 7094, 4478, 1765, 4509, 1801, 4512, 7094,
845      7094, 1845, 1834, 1852, 1841, 4522, 1848, 1868, 1901, 1910,
846      1899, 1917, 1932, 1931, 4525, 4528, 4531, 1919, 1995, 1921,
847      1952, 4540, 4546, 1935, 1980, 1989, 1999, 2009, 2018, 2033,
848      2062, 2032, 2062, 2035, 4554, 2047, 2053, 2048, 2069, 2083,
849
850      2076, 4558, 4561, 2108, 4564, 4567, 4587, 4595, 4598, 2091,
851      2104, 2097, 2107, 4606, 4609, 2105, 2105, 7094, 2107, 2109,
852      2130, 7094, 2132, 4617, 4620, 7094, 7094, 2111, 2117, 2123,
853      2131, 4628, 4632, 7094, 7094, 4640, 2157, 2149, 2162, 2164,
854      2156, 2169, 7094, 2189, 7094, 2194, 4646, 7094, 2179, 2172,
855      2190, 2191, 2187, 2198, 4649, 4652, 4660, 4667, 4671, 4680,
856      2204, 4685, 4688, 4708, 4747, 4791, 4698, 4716, 2202, 2223,
857      2215, 2232, 4720, 7094, 7094, 2243, 2218, 2222, 2248, 2232,
858      2234, 4737, 2217, 2227, 2218, 2217, 4741, 4728, 4759, 4767,
859      2257, 2259, 2281, 2272, 2275, 2292, 7094, 7094, 2281, 2283,
860
861      2313, 2294, 2304, 2321, 4777, 7094, 7094, 4785, 4811, 7094,
862      7094, 4803, 2345, 4821, 2356, 2355, 4857, 4901, 2318, 7094,
863      2328, 7094, 7094, 2345, 2361, 7094, 2359, 2361, 4829, 7094,
864      2322, 2307, 2336, 2337, 4834, 7094, 7094, 4842, 2410, 2418,
865      2382, 2390, 7094, 2392, 2396, 7094, 2404, 2417, 7094, 2418,
866      2420, 7094, 4851, 4869, 2423, 2452, 2454, 2430, 2488, 2437,
867      4877, 2438, 2440, 7094, 7094, 7094, 7094, 4880, 4892, 4921,
868      4924, 2457, 2453, 2461, 2470, 7094, 7094, 7094, 7094, 7094,
869      7094, 7094, 7094, 4927, 4932, 4935, 2494, 2481, 2495, 4945,
870      2499, 2498, 4950, 4883, 4954, 4958, 4968, 4972, 2460, 4980,
871
872      4987, 2487, 2510, 2494, 2513, 4998, 5001, 5004, 2517, 7094,
873      7094, 5007, 7094, 7094, 5019, 7094, 7094, 5027, 7094, 7094,
874      2494, 5035, 7094, 7094, 2510, 2510, 2516, 2516, 5045, 5048,
875      2546, 7094, 2517, 2538, 2549, 2548, 2560, 5051, 5054, 2569,
876      2538, 2570, 2585, 2575, 2595, 5057, 5075, 2601, 5078, 2603,
877      2624, 2613, 2633, 5081, 5084, 2665, 5087, 5110, 2657, 7094,
878      2655, 7094, 5118, 5121, 2666, 5139, 7094, 7094, 7094, 7094,
879      5147, 5150, 5153, 5156, 5159, 5168, 5182, 5187, 2655, 2663,
880      5194, 5201, 2658, 2691, 5205, 5208, 2680, 2738, 5212, 5226,
881      2673, 2719, 5231, 5237, 5253, 5256, 2703, 2739, 5264, 7094,
882
883      7094, 5273, 7094, 7094, 2778, 2787, 2747, 2750, 2850, 2852,
884      2799, 2818, 2689, 2748, 2855, 2866, 2800, 2881, 5281, 5284,
885      7094, 7094, 5304, 5313, 5322, 5331, 5340, 5349, 5358, 5367,
886      5376, 5385, 5394, 5403, 5412, 5421, 5430, 5439, 5448, 5457,
887      5466, 5475, 5484, 5493, 5502, 5511, 5520, 5529, 5538, 5547,
888      5556, 5565, 5574, 5583, 5592, 5601, 5610, 5619, 5628, 5637,
889      5646, 5653, 5660, 5667, 5674, 5681, 5688, 5695, 5702, 5709,
890      5716, 5723, 5730, 5737, 5744, 5751, 5758, 5765, 5774, 5779,
891      5784, 5789, 5794, 5799, 5804, 5809, 5814, 5819, 5826, 5831,
892      5838, 5843, 5850, 5855, 5862, 5867, 5874, 5879, 5886, 5891,
893
894      5898, 5903, 5910, 5915, 5924, 5930, 5937, 5945, 5952, 5960,
895      5967, 5975, 5982, 5990, 5997, 6005, 6012, 6020, 6027, 6035,
896      6042, 6050, 6057, 6065, 6072, 6080, 6088, 6095, 6103, 6110,
897      6118, 6125, 6133, 6141, 6148, 6156, 6163, 6171, 6180, 6186,
898      6193, 6201, 6209, 6217, 6225, 6233, 6240, 6248, 6255, 6263,
899      6270, 6278, 6285, 6293, 6300, 6308, 6315, 6323, 6330, 6338,
900      6346, 6353, 6361, 6368, 6376, 6383, 6391, 6399, 6406, 6414,
901      6421, 6429, 6438, 6447, 6454, 6462, 6470, 6477, 6485, 6492,
902      6500, 6507, 6515, 6522, 6530, 6537, 6545, 6552, 6560, 6568,
903      6576, 6584, 6592, 6600, 6607, 6615, 6622, 6630, 6637, 6645,
904
905      6653, 6660, 6668, 6676, 6684, 6693, 6702, 6709, 6717, 6725,
906      6732, 6740, 6747, 6755, 6762, 6770, 6778, 6786, 6794, 6801,
907      6809, 6817, 6825, 6833, 6841, 6848, 6856, 6864, 6872, 6880,
908      6888, 6896, 6903, 6911, 6919, 6928, 6937, 6945, 6953, 6961,
909      6968, 6976, 6983, 6991, 6999, 7007, 7015, 7023, 7030, 7039,
910      7048, 7057, 7066, 7075, 7084
911     } ;
912
913 static yyconst flex_int16_t yy_def[2256] =
914     {   0,
915      2023, 2023, 2024, 2024, 2024, 2024, 2025, 2025, 2026, 2026,
916      2027, 2027, 2028, 2028, 2028, 2028, 2029, 2029, 2023, 2023,
917      2030, 2030, 2031, 2031, 2031, 2031, 2023, 2023, 2031, 2031,
918      2023, 2023, 2031, 2031, 2031, 2031, 2032, 2032, 2033, 2033,
919      2034, 2034, 2028, 2028, 2035, 2035, 2036, 2036, 2023, 2023,
920      2036, 2036, 2036, 2036, 2037, 2037, 2038, 2038, 2039, 2039,
921      2040, 2040, 2041, 2041, 2023, 2023, 2023, 2023, 2042, 2042,
922      2043, 2043, 2044, 2044, 2023, 2023, 2044, 2044, 2044, 2044,
923      2045, 2045, 2046, 2046, 2022,   85, 2047, 2047, 2048, 2048,
924      2049, 2049, 2050, 2050, 2051, 2051, 2023, 2023, 2051, 2051,
925
926      2051, 2051, 2052, 2052, 2023, 2023, 2023, 2023, 2053, 2053,
927      2053, 2053, 2054, 2054, 2055, 2055, 2023, 2023, 2055, 2055,
928      2055, 2055, 2056, 2056, 2057, 2057, 2058, 2058, 2059, 2059,
929      2023, 2023, 2059, 2059, 2059, 2059, 2060, 2060, 2061, 2061,
930      2023, 2023, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
931      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
932      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
933      2022, 2022, 2022, 2062, 2022, 2022, 2062, 2062, 2022, 2022,
934      2022, 2022,  181,  182,  182, 2022, 2022, 2022, 2063, 2022,
935      2022, 2063, 2022, 2022, 2022, 2022, 2022, 2022, 2064, 2022,
936
937      2022, 2064, 2064, 2064, 2022, 2022, 2022, 2022, 2022, 2065,
938      2022, 2022, 2065, 2065, 2065, 2065, 2022, 2022,  185,  185,
939       185, 2022, 2022, 2022, 2066, 2022, 2022, 2066, 2066, 2066,
940      2022, 2022, 2022, 2022, 2022, 2022, 2067, 2022, 2022, 2067,
941      2067, 2067, 2067, 2022, 2022, 2022, 2022, 2022, 2022, 2068,
942      2022, 2022, 2068,  185,  254, 2022, 2022,  185, 2022, 2022,
943      2022, 2069, 2022, 2022, 2069, 2069, 2069, 2069, 2069, 2022,
944      2022,  185,  185, 2022, 2022, 2022, 2070, 2022, 2022, 2070,
945      2070, 2022, 2022, 2022, 2022, 2022, 2022, 2071, 2022, 2022,
946      2071, 2071, 2071, 2071, 2071, 2071, 2022, 2022, 2022, 2022,
947
948      2022, 2022, 2072, 2022, 2022, 2072, 2022, 2022, 2022, 2022,
949      2022, 2022, 2073, 2022, 2022, 2073, 2073, 2073, 2073, 2022,
950      2022,  185,  185, 2022, 2022, 2022, 2074, 2022, 2022, 2074,
951      2074, 2074,  185, 2022, 2022,  185,  185, 2022, 2022, 2022,
952      2075, 2022, 2022, 2075, 2075, 2075, 2075, 2022, 2022,  185,
953       185, 2022, 2022, 2022, 2076, 2022, 2022, 2076, 2022, 2022,
954      2022, 2022, 2022, 2022, 2077, 2022, 2022, 2077, 2077, 2077,
955      2077, 2022, 2022,  185,  374,  185, 2022, 2022, 2022, 2078,
956      2022, 2022, 2078, 2022, 2022, 2022, 2022, 2079, 2022, 2022,
957      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
958
959      2022, 2022, 2022, 2062, 2062, 2062, 2080, 2022, 2022, 2022,
960      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
961      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
962      2063, 2063, 2081, 2022, 2064, 2064, 2064, 2064, 2022, 2082,
963      2022, 2022, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2083,
964      2022, 2022, 2066, 2066, 2066, 2066, 2084, 2022, 2067, 2067,
965      2067, 2067, 2067, 2085, 2022, 2068, 2068, 2086, 2022, 2069,
966      2069, 2069, 2069, 2069, 2069, 2069, 2087, 2022, 2070, 2070,
967      2070, 2088, 2022, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
968      2089, 2089, 2090, 2022, 2091, 2091, 2092, 2022, 2093, 2093,
969
970      2093, 2093, 2093, 2093, 2094, 2022, 2095, 2095, 2095, 2095,
971      2095, 2022, 2096, 2022, 2097, 2097, 2097, 2097, 2097, 2098,
972      2022, 2099, 2099, 2100, 2022, 2101, 2101, 2101, 2101, 2101,
973      2102, 2022, 2022, 2103, 2103, 2104, 2105, 2022, 2105, 2022,
974      2022, 2022, 2106, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
975      2107, 2107, 2108, 2108, 2022, 2022, 2022, 2022, 2022, 2022,
976      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
977      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2109,
978      2110, 2110, 2111, 2022, 2022, 2111, 2022, 2112, 2112, 2022,
979      2113, 2022, 2022, 2113, 2113, 2113, 2113, 2114, 2114, 2022,
980
981      2115, 2115, 2115, 2116, 2116, 2022, 2022, 2117, 2117, 2117,
982      2118, 2118, 2119, 2120, 2120, 2121, 2022, 2022, 2121, 2121,
983      2121, 2121, 2122, 2122, 2022, 2022, 2123, 2124, 2124, 2125,
984      2022, 2022, 2022, 2022, 2125, 2125, 2125, 2125, 2125, 2126,
985      2126, 2022, 2022, 2127, 2127, 2128, 2022, 2022, 2128, 2128,
986      2128, 2129, 2129, 2130, 2130, 2130, 2130, 2022, 2131, 2131,
987      2132, 2132, 2132, 2132, 2133, 2133, 2022, 2022, 2134, 2134,
988      2135, 2135, 2135, 2135, 2136, 2136, 2022, 2137, 2138, 2138,
989      2139, 2022, 2022, 2139, 2022, 2022, 2140, 2022, 2022, 2022,
990      2022, 2022, 2022, 2141, 2141, 2022, 2142, 2022, 2142, 2022,
991
992      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
993      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
994      2022, 2022, 2022, 2022, 2143, 2022, 2144, 2022, 2144, 2145,
995      2022, 2022, 2022, 2145, 2022, 2022, 2146, 2022, 2146, 2147,
996      2022, 2022, 2022, 2022, 2022, 2147, 2022, 2022, 2147, 2022,
997      2148, 2022, 2148, 2022, 2149, 2149, 2149, 2022, 2150, 2022,
998      2150, 2022, 2022, 2022, 2151, 2151, 2151, 2022, 2152, 2022,
999      2152, 2153, 2022, 2154, 2022, 2154, 2155, 2022, 2022, 2022,
1000      2155, 2155, 2155, 2155, 2022, 2156, 2022, 2156, 2022, 2022,
1001      2022, 2157, 2022, 2158, 2022, 2158, 2159, 2159, 2022, 2022,
1002
1003      2022, 2022, 2022, 2022, 2022, 2022, 2159, 2159, 2159, 2159,
1004      2022, 2160, 2022, 2160, 2022, 2022, 2022, 2022, 2161, 2022,
1005      2161, 2162, 2022, 2022, 2022, 2162, 2162, 2162, 2022, 2163,
1006      2022, 2163, 2164, 2022, 2022, 2022, 2022, 2164, 2022, 2022,
1007      2165, 2022, 2165, 2166, 2022, 2022, 2166, 2022, 2022, 2022,
1008      2167, 2022, 2167, 2022, 2022, 2022, 2022, 2168, 2022, 2168,
1009      2169, 2169, 2169, 2169, 2022, 2170, 2022, 2170, 2022, 2171,
1010      2022, 2172, 2022, 2172, 2173, 2174, 2022, 2022, 2022, 2022,
1011      2022, 2175, 2175, 2176, 2022, 2022, 2022, 2022, 2022, 2022,
1012      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1013
1014      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1015      2022, 2022, 2177, 2022, 2022, 2178, 2022, 2179, 2180, 2022,
1016      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2180, 2181, 2022,
1017      2182, 2022, 2022, 2182, 2183, 2184, 2184, 2184, 2185, 2186,
1018      2187, 2188, 2188, 2188, 2188, 2188, 2189, 2190, 2191, 2192,
1019      2192, 2022, 2022, 2022, 2192, 2192, 2192, 2192, 2193, 2194,
1020      2195, 2195, 2195, 2195, 2196, 2197, 2022, 2022, 2022, 2022,
1021      2022, 2022, 2197, 2022, 2198, 2199, 2022, 2022, 2022, 2199,
1022      2022, 2022, 2022, 2200, 2201, 2202, 2022, 2022, 2202, 2202,
1023      2203, 2022, 2204, 2205, 2206, 2207, 2207, 2022, 2207, 2022,
1024
1025      2022, 2022, 2208, 2208, 2209, 2022, 2022, 2022, 2022, 2022,
1026      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1027      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1028      2022, 2022, 2022, 2210, 2022, 2022, 2022, 2211, 2022, 2212,
1029      2213, 2022, 2022, 2022, 2213, 2214, 2022, 2215, 2022, 2022,
1030      2022, 2022, 2022, 2216, 2217, 2217, 2217, 2022, 2022, 2218,
1031      2219, 2220, 2220, 2220, 2022, 2022, 2022, 2022, 2220, 2221,
1032      2022, 2022, 2222, 2022, 2022, 2223, 2022, 2022, 2223, 2223,
1033      2223, 2224, 2225, 2226, 2226, 2226, 2022, 2022, 2226, 2227,
1034      2228, 2228, 2022, 2229, 2230, 2230, 2231, 2232, 2233, 2022,
1035
1036      2022, 2022, 2233, 2233, 2234, 2022, 2022, 2022, 2235, 2236,
1037      2237, 2237, 2022, 2022, 2238, 2238, 2238, 2239, 2022, 2022,
1038      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1039      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1040      2022, 2240, 2241, 2022, 2242, 2243, 2243, 2244, 2245, 2022,
1041      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1042      2246, 2022, 2022, 2247, 2022, 2022, 2022, 2022, 2248, 2249,
1043      2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1044      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1045      2022, 2022, 2022, 2022, 2022, 2022, 2223, 2022, 2022, 2224,
1046
1047      2225, 2226, 2226, 2226, 2022, 2022, 2022, 2226, 2022, 2022,
1048      2022, 2022, 2228, 2022, 2229, 2022, 2022, 2230, 2231, 2232,
1049      2233, 2233, 2233, 2234, 2022, 2022, 2022, 2022, 2235, 2236,
1050      2237, 2237, 2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022,
1051      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1052      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2240, 2241, 2022,
1053      2022, 2022, 2243, 2243, 2244, 2022, 2022, 2022, 2022, 2022,
1054      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246, 2022, 2022,
1055      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2248,
1056      2249, 2249, 2249, 2022, 2022, 2249, 2022, 2022, 2022, 2022,
1057
1058      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2224, 2225, 2226,
1059      2022, 2022, 2226, 2226, 2022, 2022, 2226, 2022, 2022, 2022,
1060      2228, 2022, 2229, 2022, 2022, 2022, 2230, 2022, 2022, 2232,
1061      2233, 2233, 2233, 2234, 2022, 2235, 2236, 2237, 2237, 2022,
1062      2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022, 2022, 2022,
1063      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1064      2022, 2240, 2241, 2022, 2243, 2243, 2022, 2022, 2022, 2022,
1065      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1066      2022, 2246, 2022, 2022, 2022, 2248, 2249, 2249, 2249, 2022,
1067      2022, 2022, 2022, 2249, 2022, 2022, 2022, 2224, 2022, 2022,
1068
1069      2226, 2022, 2022, 2022, 2226, 2226, 2022, 2022, 2022, 2022,
1070      2226, 2022, 2022, 2022, 2022, 2228, 2022, 2229, 2022, 2022,
1071      2022, 2022, 2230, 2232, 2022, 2022, 2233, 2233, 2234, 2022,
1072      2235, 2236, 2237, 2237, 2022, 2238, 2238, 2239, 2022, 2022,
1073      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2241, 2022, 2022,
1074      2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1075      2022, 2246, 2022, 2022, 2249, 2249, 2249, 2022, 2022, 2022,
1076      2022, 2249, 2022, 2022, 2022, 2022, 2226, 2226, 2226, 2022,
1077      2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1078      2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022, 2022,
1079
1080      2230, 2232, 2022, 2022, 2022, 2022, 2022, 2233, 2022, 2022,
1081      2022, 2235, 2236, 2237, 2237, 2022, 2022, 2238, 2022, 2022,
1082      2022, 2022, 2022, 2022, 2241, 2022, 2022, 2022, 2243, 2022,
1083      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246,
1084      2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1085      2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1086      2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1087      2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2022, 2022,
1088      2022, 2022, 2022, 2022, 2236, 2237, 2237, 2022, 2022, 2022,
1089      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1090
1091      2022, 2022, 2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1092      2022, 2022, 2022, 2246, 2249, 2249, 2249, 2022, 2022, 2022,
1093      2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1094      2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1095      2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2236, 2237,
1096      2237, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1097      2022, 2022, 2022, 2022, 2022, 2243, 2022, 2022, 2022, 2022,
1098      2022, 2022, 2022, 2022, 2246, 2022, 2022, 2249, 2249, 2249,
1099      2226, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1100      2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022,
1101
1102      2022, 2230, 2230, 2236, 2237, 2237, 2237, 2022, 2022, 2022,
1103      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1104      2022, 2022, 2022, 2246, 2022, 2022, 2022, 2249, 2249, 2249,
1105      2249, 2226, 2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022,
1106      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1107      2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022, 2230,
1108      2236, 2237, 2237, 2237, 2250, 2251, 2022, 2022, 2022, 2022,
1109      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1110      2022, 2246, 2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022,
1111      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1112
1113      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022,
1114      2022, 2230, 2236, 2237, 2252, 2253, 2250, 2251, 2022, 2022,
1115      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1116      2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022,
1117      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1118      2022, 2022, 2230, 2230, 2236, 2252, 2237, 2254, 2253, 2255,
1119      2237, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2249, 2249,
1120      2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1121      2022, 2022, 2022, 2230, 2230, 2236, 2254, 2022, 2255, 2237,
1122      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1123
1124      2022, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022,
1125      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1126      2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2230,
1127      2236, 2022, 2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236,
1128      2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2249, 2022,
1129      2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022,
1130      2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022, 2022,
1131      2230, 2230, 2236, 2230, 2230, 2236, 2230, 2230, 2236, 2236,
1132      2230, 2230, 2236, 2236, 2230, 2230, 2236, 2236, 2230, 2230,
1133      2236, 2236, 2022, 2022, 2022, 2022, 2236, 2236, 2022, 2022,
1134
1135      2022, 2022, 2022, 2022, 2236, 2236, 2236, 2236, 2236, 2236,
1136      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236,
1137      2022,    0, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1138      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1139      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1140      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1141      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1142      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1143      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1144      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1145
1146      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1147      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1148      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1149      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1150      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1151      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1152      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1153      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1154      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1155      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1156
1157      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1158      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1159      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1160      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1161      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1162      2022, 2022, 2022, 2022, 2022
1163     } ;
1164
1165 static yyconst flex_int16_t yy_nxt[7164] =
1166     {   0,
1167      2022,  146,  147,  146,  146,  147,  146,  146,  147,  146,
1168       146,  147,  146,  151,  147,  151,  157,  148,  154,  157,
1169       148,  154,  450,  149, 2022,  155,  149, 2022,  155,  152,
1170       151,  147,  151,  388,  158,  160,  161,  158,  160,  161,
1171       162,  163, 2022,  162,  163,  388,  152,  167,  168,  389,
1172       164,  160,  161,  164,  165,  391,  162,  160,  161,  561,
1173       165,  390,  162,  167,  168,  562,  164,  147,  147,  147,
1174       451,  390,  164,  147,  147,  147,  180,  147,  180,  180,
1175       147,  180,  472,  170,  180,  147,  180,  510,  169,  170,
1176       451,  473,  181,  561,  511,  181,  387,  387,  387,  575,
1177
1178       182,  387,  387,  387,  169,  171,  172,  147,  172,  171,
1179       171,  171,  171,  171,  171,  171,  173,  171,  171,  171,
1180      1485,  171,  175,  171,  176,  171,  180,  147,  180,  147,
1181       147,  147,  503,  147,  147,  147,  180,  147,  180,  180,
1182       147,  180,  182,  504,  561,  183,  391,  171,  171,  183,
1183       600,  489,  181,  391,  490,  181,  387,  387,  387,  387,
1184       387,  387,  390,  387,  387,  387,  387,  387,  387,  390,
1185       177, 2022,  178,  171,  172,  147,  172,  171,  171,  171,
1186       171,  171,  171,  171,  173,  171,  171,  171,  477,  171,
1187       175,  171,  176,  171,  147,  147,  147,  147,  147,  147,
1188
1189       682,  180,  147,  180,  180,  147,  180,  180,  147,  180,
1190       184,  563,  391,  184,  391,  171,  171,  182,  391,  425,
1191       182,  426, 1110,  185,  564,  180,  147,  180,  390,  427,
1192       390,  387,  387,  387,  390,  425,  451,  428,  177,  429,
1193       178,  185,  186,  187,  147,  187,  186,  186,  186,  186,
1194       186,  186,  186,  188,  186,  186,  186,  485,  186,  190,
1195       186,  191,  186,  194,  147,  194,  194,  147,  194,  402,
1196       218,  147,  218,  160,  161,  160,  161,  486,  162,  195,
1197       162, 1270,  195,  446,  186,  186,  219,  447,  205, 1271,
1198       205,  448,  192,  186,  187,  147,  187,  186,  186,  186,
1199
1200       186,  186,  186,  186,  188,  186,  186,  186,  892,  186,
1201       190,  186,  191,  186,  206, 2022,  206,  218,  147,  218,
1202       893,  147,  147,  147,  147,  147,  147,  387,  387,  387,
1203       387,  387,  387,  219,  682,  186,  186,  220,  875,  544,
1204       220,  513,  545,  192,  196,  197,  147,  197,  196,  196,
1205       196,  196,  196,  196,  196,  198,  196,  196,  196,  512,
1206       196,  200,  196,  201,  196,  218,  147,  218,  218,  147,
1207       218,  505,  218,  147,  218,  218,  147,  218,  387,  387,
1208       387,  219,  391,  439,  219,  512,  196,  196,  221,  433,
1209       440,  221, 1412, 1413,  202, 1414, 1415,  203,  390,  390,
1210
1211       387,  387,  387,  204,  196,  197,  147,  197,  196,  196,
1212       196,  196,  196,  196,  196,  198,  196,  196,  196,  451,
1213       196,  200,  196,  201,  196,  232,  147,  232,  232,  147,
1214       232,  906,  245,  147,  245,  245,  147,  245,  538,  391,
1215       391,  233, 1275,  893,  233,  391,  196,  196,  246,  571,
1216      1276,  246,  457,  539,  202,  390,  390,  203,  387,  387,
1217       387,  390,  572,  204,  207,  208,  147,  208,  207,  207,
1218       207,  207,  207,  207,  207,  209,  207,  207,  207,  906,
1219       207,  211,  207,  212,  207,  147,  147,  147,  147,  147,
1220       147,  930,  147,  147,  147,  147,  147,  147,  257,  147,
1221
1222       257,  254,  391,  391,  254, 1488,  207,  207,  255,  464,
1223       520,  255,  563, 1495,  258,  213, 1498,  214,  390,  390,
1224       215,  387,  387,  387, 2022,  576,  216,  207,  208,  147,
1225       208,  207,  207,  207,  207,  207,  207,  207,  209,  207,
1226       207,  207,  538,  207,  211,  207,  212,  207,  257,  147,
1227       257,  271,  147,  271,  512,  271,  147,  271,  147,  147,
1228       147,  147,  147,  147,  258,  411,  391,  272,  413,  207,
1229       207,  272,  391, 1116,  220,  587, 1508,  220,  213, 1117,
1230       214, 1521,  390,  215,  387,  387,  387,  998,  390,  216,
1231       222,  223,  147,  223,  222,  222,  222,  222,  222,  222,
1232
1233       222,  224,  222,  222,  222, 1522,  222,  226,  222,  227,
1234       222,  271,  147,  271,  271,  147,  271, 1232,  271,  147,
1235       271,  271,  147,  271,  283,  147,  283,  272, 1523,  797,
1236       272,  998,  222,  222,  273,  391,  391,  273,  798,  228,
1237       284,  387,  387,  387,  229,  387,  387,  387,  387,  387,
1238       387,  390,  390,  230,  222,  223,  147,  223,  222,  222,
1239       222,  222,  222,  222,  222,  224,  222,  222,  222, 1231,
1240       222,  226,  222,  227,  222,  283,  147,  283,  298,  147,
1241       298, 1524,  298,  147,  298,  308,  147,  308,  308,  147,
1242       308,  284, 1419, 1420,  299, 1390,  222,  222,  299,  391,
1243
1244       391,  309, 1391,  228,  309,  387,  387,  387,  229,  387,
1245       387,  387,  387,  387,  387,  390,  390,  230,  234,  235,
1246       147,  235,  234,  234,  234,  234,  234,  234,  234,  236,
1247       234,  234,  234, 1525,  234,  238,  234,  239,  234,  321,
1248       147,  321,  321,  147,  321,  682,  147,  147,  147,  147,
1249       147,  147,  321,  147,  321,  322,  391,  571,  322, 1529,
1250       234,  234,  220,  482,  995,  220,  998,  998,  322, 1392,
1251       578,  240,  390,  387,  387,  387, 1393,  241, 1530,  242,
1252       243,  234,  235,  147,  235,  234,  234,  234,  234,  234,
1253       234,  234,  236,  234,  234,  234, 1514,  234,  238,  234,
1254
1255       239,  234,  321,  147,  321,  321,  147,  321, 1339,  321,
1256       147,  321,  147,  147,  147,  147,  147,  147,  322, 1421,
1257      1422,  323,  391,  234,  234,  323,  682,  682,  333,  493,
1258      1531,  333, 1407, 1337,  240,  387,  387,  387,  390, 1408,
1259       241,  684,  242,  243,  247,  248,  147,  248,  247,  247,
1260       247,  247,  247,  247,  247,  249,  247,  247,  247,  998,
1261       247,  251,  247,  252,  247,  147,  147,  147,  147,  147,
1262       147, 1532,  335,  147,  335,  335,  147,  335,  335,  147,
1263       335,  333, 1533, 1409,  333,  391,  247,  247,  336,  391,
1264      1410,  336,  497, 1515,  337,  387,  387,  387,  387,  387,
1265
1266       387,  390,  387,  387,  387,  390,  253,  247,  248,  147,
1267       248,  247,  247,  247,  247,  247,  247,  247,  249,  247,
1268       247,  247, 1534,  247,  251,  247,  252,  247,  335,  147,
1269       335,  349,  147,  349, 1535,  349,  147,  349,  147,  147,
1270       147,  147,  147,  147,  337, 1536,  998,  350, 1537,  247,
1271       247,  350,  391, 1486,  333, 1487, 1538,  333,  387,  387,
1272       387,  387,  387,  387,  387,  387,  387, 1539,  390,  253,
1273       259,  260,  147,  260,  259,  259,  259,  259,  259,  259,
1274       259,  261,  259,  259,  259, 1433,  259,  263,  259,  264,
1275       259,  349,  147,  349,  349,  147,  349, 1541,  349,  147,
1276
1277       349,  349,  147,  349,  360,  147,  360,  350,  391,  391,
1278       350,  391,  259,  259,  351,  265,  524,  351, 1542, 1489,
1279       361, 1490, 1543,  266,  390,  390,  267,  390,  998,  268,
1280      1544, 1545,  269,  259,  260,  147,  260,  259,  259,  259,
1281       259,  259,  259,  259,  261,  259,  259,  259, 1551,  259,
1282       263,  259,  264,  259,  360,  147,  360,  373,  147,  373,
1283      1552,  373,  147,  373,  147,  147,  147,  147,  147,  147,
1284       361, 1434,  391,  374, 1553,  259,  259,  374,  265,  536,
1285       375, 1150, 1496,  375, 1497, 1554,  266, 1151,  390,  267,
1286      1152, 1499,  268, 1500, 1153,  269,  274,  275,  147,  275,
1287
1288       274,  274,  274,  274,  274,  274,  274,  276,  274,  274,
1289       274,  531,  274,  278,  274,  279,  274,  373,  147,  373,
1290       373,  147,  373, 1555,  373,  147,  373,  373,  147,  373,
1291       385,  147,  385,  374, 1558, 1154,  374, 1559,  274,  274,
1292       376, 1155, 1560,  376, 1156,  532,  386,  396, 1157,  280,
1293       387,  387,  387,  387,  387,  387,  387,  387,  387,  451,
1294      1561,  281,  274,  275,  147,  275,  274,  274,  274,  274,
1295       274,  274,  274,  276,  274,  274,  274, 1562,  274,  278,
1296       274,  279,  274,  385,  147,  385,  397,  387,  387,  387,
1297      1563, 1568,  398,  387,  387,  387,  399, 1569, 1570,  386,
1298
1299      1571,  400, 1572, 1573,  274,  274,  387,  387,  387,  387,
1300       387,  387,  387,  387,  387,  280,  387,  387,  387,  542,
1301       542,  542, 1593,  686,  896,  896,  896,  281,  285,  286,
1302       147,  286,  285,  285,  285,  285,  285,  285,  285,  287,
1303       285,  285,  285,  288,  285,  289,  285,  290,  285,  288,
1304       288,  288,  288,  288,  288,  288,  288,  288,  288,  288,
1305       288,  288,  288,  288,  288,  288,  288,  288,  288,  288,
1306       285,  285,  288,  288,  291,  288,  288,  288,  288,  288,
1307       288,  292,  288,  293,  288,  288,  288,  294,  288,  295,
1308       296,  288,  288,  288,  288,  288,  288,  300,  301,  147,
1309
1310       301,  300,  300,  300,  300,  300,  300,  300,  302,  300,
1311       300,  300,  682,  300,  304,  300,  305,  300,  542,  542,
1312       542,  584,  584,  584,  592,  592,  592,  606,  606,  606,
1313       617,  617,  617,  904,  904,  904, 1594, 1595,  585,  300,
1314       300,  593, 1596, 1603,  607, 1604, 1605,  618, 1585,  998,
1315       306,  300,  301,  147,  301,  300,  300,  300,  300,  300,
1316       300,  300,  302,  300,  300,  300,  998,  300,  304,  300,
1317       305,  300, 1606,  543,  625,  625,  625, 1338,  631,  631,
1318       631,  633,  633,  633,  642,  642,  642, 1009, 1009, 1009,
1319      1599,  626, 1607,  300,  300,  632, 1608, 1609,  634, 1610,
1320
1321      1586,  643, 1600,  998,  306,  310,  311,  147,  311,  310,
1322       310,  310,  310,  310,  310,  310,  312,  310,  310,  310,
1323      1611,  310,  314,  310,  315,  310,  647,  647,  647,  667,
1324       667,  667,  696,  696,  696,  696,  696,  696,  726,  726,
1325       726,  682, 1587,  648, 1612, 1613,  668,  310,  310, 1615,
1326       698,  316, 1616,  698, 1617, 1621,  728, 1230,  317, 1622,
1327       318, 1015, 1015, 1015,  896,  896,  896,  319,  310,  311,
1328       147,  311,  310,  310,  310,  310,  310,  310,  310,  312,
1329       310,  310,  310, 1623,  310,  314,  310,  315,  310,  699,
1330       726,  726,  726, 1627, 1601,  584,  584,  584,  731,  731,
1331
1332       731, 1628,  732, 1629, 1630,  733, 1602, 1631,  728, 1632,
1333       310,  310,  585, 1638,  316,  741,  741,  741, 1639,  742,
1334      1640,  317,  743,  318, 1021, 1021, 1021,  904,  904,  904,
1335       319,  324,  325,  147,  325,  324,  324,  324,  324,  324,
1336       324,  324,  326,  324,  324,  324,  729,  324,  328,  324,
1337       329,  324,  736,  736,  736, 1641, 1642,  736,  736,  736,
1338       592,  592,  592,  744,  744,  744,  747,  747,  747, 1643,
1339       738,  998, 1656,  324,  324,  738,  330,  593,  998,  331,
1340       745, 1633, 1635,  748,  762,  762,  762, 1658,  763, 1634,
1341      1636,  764,  682,  332,  324,  325,  147,  325,  324,  324,
1342
1343       324,  324,  324,  324,  324,  326,  324,  324,  324, 1650,
1344       324,  328,  324,  329,  324, 1662, 1651,  739, 1649, 1663,
1345       750,  750,  750,  758,  758,  758, 1664, 1665,  750,  750,
1346       750,  758,  758,  758, 1666, 1667,  324,  324,  752,  330,
1347      1668,  760,  331,  778,  778,  778,  752,  779, 1669,  760,
1348       780, 1047, 1047, 1047, 1670, 1671,  332,  338,  339,  147,
1349       339,  338,  338,  338,  338,  338,  338,  338,  340,  338,
1350       338,  338,  753,  338,  342,  338,  343,  338,  606,  606,
1351       606, 1672, 1673,  768,  768,  768,  773,  773,  773, 1674,
1352      1679,  761,  617,  617,  617,  607,  768,  768,  768,  338,
1353
1354       338,  770,  344, 1680,  775,  345, 1009, 1009, 1009,  618,
1355       346,  789,  789,  789,  770,  790, 1681, 1684,  791,  347,
1356       338,  339,  147,  339,  338,  338,  338,  338,  338,  338,
1357       338,  340,  338,  338,  338, 1685,  338,  342,  338,  343,
1358       338,  773,  773,  773,  771, 1686,  785,  785,  785,  785,
1359       785,  785,  625,  625,  625, 1687,  793,  793,  793,  775,
1360      1688, 1689,  338,  338,  787,  344, 1690,  787,  345,  626,
1361      1011, 1011, 1011,  346,  795, 1015, 1015, 1015, 1021, 1021,
1362      1021, 1691,  347,  352,  353,  147,  353,  352,  352,  352,
1363       352,  352,  352,  352,  354,  352,  352,  352,  776,  352,
1364
1365       356,  352,  357,  352, 1692, 1693,  788, 1694, 1696,  793,
1366       793,  793,  631,  631,  631,  799,  799,  799, 1697,  800,
1367      1698, 1699,  801, 1700, 1701,  352,  352,  795, 1708,  632,
1368      1022, 1022, 1022, 1047, 1047, 1047,  358,  352,  353,  147,
1369       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
1370       352,  352,  998,  352,  356,  352,  357,  352,  633,  633,
1371       633,  802,  802,  802, 1709,  803, 1710, 1711,  804,  796,
1372       805,  805,  805, 1712, 1713,  634, 1246, 1246, 1246,  352,
1373       352,  815,  815,  815, 1705,  816, 1716,  806,  817, 1717,
1374       358,  362,  363,  147,  363,  362,  362,  362,  362,  362,
1375
1376       362,  362,  364,  362,  362,  362, 1718,  362,  366,  362,
1377       367,  362,  811,  811,  811,  642,  642,  642,  818,  818,
1378       818,  811,  811,  811,  818,  818,  818,  647,  647,  647,
1379       813, 1719,  643,  362,  362,  682,  820, 1720, 1721,  813,
1380      1722,  368,  820,  369,  648,  370, 1127, 1127, 1127, 1248,
1381      1248, 1248, 1723,  371,  362,  363,  147,  363,  362,  362,
1382       362,  362,  362,  362,  362,  364,  362,  362,  362, 1728,
1383       362,  366,  362,  367,  362,  814,  823,  823,  823, 1704,
1384       824,  821, 1731,  825,  829,  829,  829,  829,  829,  829,
1385       834,  834,  834,  836,  836,  836,  362,  362,  845,  845,
1386
1387       845, 1732,  831, 1736,  368,  831,  369,  835,  370, 1737,
1388       837, 1130, 1130, 1130, 1738,  846,  371,  377,  378,  147,
1389       378,  377,  377,  377,  377,  377,  377,  377,  379,  377,
1390       377,  377, 1739,  377,  381,  377,  382,  377, 1740,  832,
1391       840,  840,  840, 1741,  848,  848,  848,  840,  840,  840,
1392       850,  850,  850,  850,  850,  850, 1729, 1730,  842,  377,
1393       377,  849,  667,  667,  667,  842, 1742, 1743,  852, 1744,
1394      1745,  852, 1746,  854,  854,  854, 1749,  855, 1750,  668,
1395       856, 1751,  383,  377,  378,  147,  378,  377,  377,  377,
1396       377,  377,  377,  377,  379,  377,  377,  377, 1752,  377,
1397
1398       381,  377,  382,  377,  843,  857,  857,  857, 1753, 1754,
1399       853,  857,  857,  857,  865,  865,  865,  865,  865,  865,
1400       871,  871,  871,  859, 1769,  377,  377,  682, 1770,  859,
1401      1771, 1772,  867, 1776, 1777,  867, 1778, 1779,  873,  871,
1402       871,  871,  696,  696,  696,  911,  911,  911,  383,  391,
1403       696,  696,  696, 1011, 1011, 1011,  407,  873, 1761, 1780,
1404       698, 1781,  912,  860, 1783,  390, 1784, 1012,  698,  696,
1405       696,  696, 1785,  726,  726,  726, 1786,  868,  726,  726,
1406       726, 1791, 1792,  726,  726,  726, 1793,  698, 1794, 1795,
1407       408,  728,  409, 1796, 1797,  410,  728,  411,  412,  874,
1408
1409       413,  728, 1798, 1799,  414, 1800,  415,  416,  417,  391,
1410       914,  914,  914,  884, 1801, 1802,  407,  731,  731,  731,
1411      1803,  732, 1804,  682,  733,  390, 1819,  915, 1820,  913,
1412      2022, 2022, 2022,  736,  736,  736,  736,  736,  736, 1821,
1413      1822,  736,  736,  736,  744,  744,  744, 2022, 1823, 1824,
1414       408,  738,  418, 1825,  738,  419, 1826,  420,  412,  738,
1415       421,  745, 1813, 1827,  414, 1828,  422,  423,  424,  741,
1416       741,  741, 1831,  742, 1832, 1833,  743,  920,  920,  920,
1417      1834,  921, 1841, 1842,  922,  918, 1843,  916,  923,  923,
1418       923,  747,  747,  747,  925,  925,  925, 1844,  926, 1845,
1419
1420      1846,  927,  750,  750,  750,  924, 1847, 1848,  748,  750,
1421       750,  750,  750,  750,  750,  932,  932,  932, 1849, 1850,
1422       752,  758,  758,  758,  758,  758,  758,  752, 1851, 1852,
1423       752, 1862,  933,  758,  758,  758,  762,  762,  762,  760,
1424       763, 1863,  760,  764,  768,  768,  768,  768,  768,  768,
1425      1864,  760,  768,  768,  768,  773,  773,  773,  773,  773,
1426       773, 1857,  770, 1857,  682,  770, 1865, 1866,  929, 1867,
1427       770, 1868, 1869,  775, 1860, 1858,  775,  935,  773,  773,
1428       773,  778,  778,  778, 1870,  779, 1871, 1876,  780,  785,
1429       785,  785,  785,  785,  785, 1877,  775,  785,  785,  785,
1430
1431      1878,  789,  789,  789, 1879,  790, 1855,  787,  791, 1880,
1432       787,  793,  793,  793,  939,  787,  793,  793,  793,  793,
1433       793,  793, 1881,  799,  799,  799, 1882,  800, 1883,  795,
1434       801,  805,  805,  805,  795, 1888, 1872,  795,  941,  802,
1435       802,  802,  682,  803, 1874, 1888,  804, 1873,  806,  952,
1436       952,  952, 1891,  953, 1892, 1875,  954, 1857,  947,  811,
1437       811,  811,  811,  811,  811,  811,  811,  811,  815,  815,
1438       815, 1858,  816,  998,  999,  817,  949,  813, 1902, 1886,
1439       813, 1903, 1904,  813,  818,  818,  818,  818,  818,  818,
1440       818,  818,  818,  823,  823,  823, 1857,  824, 1905, 1888,
1441
1442       825, 1909,  820, 1888, 1910,  820, 1911, 1860,  820,  829,
1443       829,  829,  829,  829,  829,  829,  829,  829,  834,  834,
1444       834, 1921,  967,  967,  967, 1925,  968,  831,  959,  969,
1445       831, 1926, 1927,  831, 1928,  835, 1932,  836,  836,  836,
1446       970,  970,  970, 1933,  971, 1934, 1935,  972,  840,  840,
1447       840, 1936, 1937,  960,  837,  840,  840,  840,  840,  840,
1448       840,  845,  845,  845, 1941,  682,  842, 1942,  977,  977,
1449       977,  965,  978,  842, 1943,  979,  842, 1944,  846,  848,
1450       848,  848,  981,  981,  981, 1945,  982, 1940,  682,  983,
1451       850,  850,  850,  850,  850,  850,  849,  850,  850,  850,
1452
1453       854,  854,  854, 1949,  855, 1950, 1948,  856,  852, 1951,
1454      1952,  852,  857,  857,  857,  852,  857,  857,  857, 1953,
1455       682,  975,  857,  857,  857,  987,  987,  987, 1959, 1960,
1456       859,  865,  865,  865,  859,  865,  865,  865, 1961, 1956,
1457       859, 1962,  988,  865,  865,  865,  871,  871,  871,  867,
1458       871,  871,  871,  867,  871,  871,  871,  997,  997,  997,
1459       984,  867, 1969, 1970,  873,  696,  696,  696,  873,  911,
1460       911,  911,  873, 1484,  682,  998,  999,  682,  985, 1022,
1461      1022, 1022,  682,  698,  682,  682,  912, 1031, 1031, 1031,
1462      1965, 1032,  682, 1012, 1033,  726,  726,  726, 1973,  682,
1463
1464       991,  914,  914,  914,  994, 1035, 1035, 1035,  682, 1036,
1465       682, 1987, 1037,  728,  736,  736,  736, 1983,  915,  920,
1466       920,  920,  682,  921, 1997, 1984,  922, 1005,  923,  923,
1467       923, 1483,  738, 1042, 1042, 1042, 1991, 1043,  682, 1482,
1468      1044,  750,  750,  750, 1988,  924,  925,  925,  925, 1034,
1469       926, 1481, 2015,  927,  932,  932,  932,  682,  682,  752,
1470      1040, 1049, 1049, 1049, 2005, 1050,  682,  682, 1051,  682,
1471      1998,  933, 1052, 1052, 1052,  758,  758,  758, 1058, 1058,
1472      1058,  773,  773,  773, 1065, 1065, 1065, 1480, 1046, 1053,
1473      1067, 1067, 1067,  760, 1992, 2009, 1059,  682, 2010,  775,
1474
1475      2006, 1066,  785,  785,  785, 2019,  682, 1068, 1071, 1071,
1476      1071, 2016,  793,  793,  793, 1074, 1074, 1074,  682,  682,
1477       787, 1054, 2022, 2022, 2022, 1072, 1077, 1077, 1077, 1061,
1478       795, 2007, 1075, 1069,  952,  952,  952,  682,  953, 2022,
1479      2008,  954, 1479, 1078, 2022, 2022, 2022, 2013, 2022, 2022,
1480      2022, 2022, 2022, 2022,  811,  811,  811,  818,  818,  818,
1481      2011, 2022, 2012, 1478, 1070, 2022, 2014, 1472, 2022,  682,
1482      1073,  682,  813, 1471,  682,  820, 1470, 1087, 1087, 1087,
1483       829,  829,  829, 1469, 1076,  682,  967,  967,  967, 2019,
1484       968, 1468, 1080,  969, 1088,  970,  970,  970,  831,  971,
1485
1486       682, 1467,  972, 2017, 1022, 1022, 1022,  840,  840,  840,
1487      1079,  987,  987,  987, 2018, 1082, 1466, 1081, 1093, 1083,
1488      1089, 1465,  977,  977,  977,  842,  978, 1461,  988,  979,
1489       981,  981,  981, 1090,  982, 1460, 1459,  983,  850,  850,
1490       850,  857,  857,  857, 1100, 1100, 1100, 1458, 1101, 1457,
1491      1456, 1102,  865,  865,  865, 1455,  852, 1454, 1453,  859,
1492      1107, 1107, 1107,  871,  871,  871,  997,  997,  997, 1094,
1493       867,  696,  696,  696, 1127, 1127, 1127, 1108, 1130, 1130,
1494      1130,  873, 1452, 1451,  998, 1127, 1127, 1127, 1128,  698,
1495      1448, 1445, 1131, 1444, 1098, 1136, 1136, 1136, 1105, 1128,
1496
1497      1097, 1138, 1138, 1138, 1138, 1138, 1138, 1443, 1442, 1131,
1498      1136, 1136, 1136, 1430, 1111, 1139, 1428, 1427, 1139, 1417,
1499      1118, 1031, 1031, 1031, 1141, 1032, 1109, 1411, 1033, 1406,
1500      1112,  726,  726,  726, 1129, 1035, 1035, 1035, 1405, 1036,
1501      1401, 1394, 1037, 1389, 1388, 1135, 1052, 1052, 1052,  728,
1502       736,  736,  736, 1042, 1042, 1042, 1387, 1043, 1381, 1380,
1503      1044, 1129, 1379, 1053, 1135,  750,  750,  750,  738, 1049,
1504      1049, 1049, 1378, 1050, 1377, 1376, 1051, 1158, 1158, 1158,
1505      1375, 1159, 1374,  752, 1160,  758,  758,  758, 1162, 1162,
1506      1162, 2022, 2022, 2022, 1142, 1165, 1165, 1165, 1145, 1058,
1507
1508      1058, 1058, 1373,  760, 1372, 1163, 1366, 1365, 2022, 1167,
1509      1167, 1167, 1166,  773,  773,  773, 1364, 1059, 1065, 1065,
1510      1065, 1363, 1148, 1173, 1173, 1173, 1168, 1174, 1361, 1359,
1511      1175,  775, 1355, 1161, 1354, 1066, 1067, 1067, 1067, 1176,
1512      1176, 1176, 1352, 1177, 1351, 1164, 1178, 1180, 1180, 1180,
1513      1071, 1071, 1071, 1068, 1182, 1182, 1182, 1169, 1183, 1347,
1514      1340, 1184, 1185, 1185, 1185, 1181, 1335, 1072, 1074, 1074,
1515      1074, 1187, 1187, 1187, 1333, 1188, 1332, 1331, 1189, 1322,
1516      1186, 1190, 1190, 1190, 1317, 1075, 1077, 1077, 1077, 1192,
1517      1192, 1192, 1316, 1193, 1315, 1314, 1194, 1310, 1191, 1195,
1518
1519      1195, 1195, 1296, 1078, 2022, 2022, 2022, 1198, 1198, 1198,
1520       811,  811,  811,  818,  818,  818, 1196, 1087, 1087, 1087,
1521      1295, 2022, 1294, 1293, 1199, 1205, 1205, 1205,  813, 1206,
1522      1292,  820, 1207, 1291, 1088, 1209, 1209, 1209, 1211, 1211,
1523      1211, 1277, 2022, 2022, 2022,  840,  840,  840, 1216, 1216,
1524      1216, 1274, 1273, 1210, 1272, 1212, 1269, 1268, 1197, 2022,
1525      1264, 1201, 1263,  842, 1260, 1217, 2022, 2022, 2022,  850,
1526       850,  850, 1200, 1259,  857,  857,  857, 1100, 1100, 1100,
1527      1257, 1101, 1256, 2022, 1102, 1255, 1254,  852, 1220,  865,
1528       865,  865,  859, 1215, 1107, 1107, 1107, 1226, 1226, 1226,
1529
1530      1251, 1227, 1213, 1250, 1228, 1249, 1247,  867, 1245, 1218,
1531      1244, 1108,  871,  871,  871, 1243, 1242, 1219, 1234, 1234,
1532      1234, 2022, 2022, 2022, 2022, 2022, 2022,  696,  696,  696,
1533       873, 1252, 1252, 1252, 1241, 1235, 1240, 1224, 2022, 1239,
1534      1233, 2022, 1253, 1253, 1253,  698, 1136, 1136, 1136, 1138,
1535      1138, 1138,  726,  726,  726, 1225, 1261, 1261, 1261,  750,
1536       750,  750, 1266, 1266, 1266, 1223, 1222, 1229, 1221, 1214,
1537       728, 1208, 1204, 1236, 1262, 1203, 1202,  752, 1179, 1267,
1538      1172, 1237, 1171, 1170, 1238, 1158, 1158, 1158, 1149, 1159,
1539      1147, 1146, 1160,  758,  758,  758, 1162, 1162, 1162, 1258,
1540
1541      1144, 1279, 1279, 1279, 1143, 1280, 1140, 1278, 1281, 1137,
1542      1134,  760, 1133, 1163, 1265, 1282, 1282, 1282, 1165, 1165,
1543      1165, 1284, 1284, 1284, 1132, 1285, 1126, 1125, 1286, 1167,
1544      1167, 1167, 1283, 1124, 1123, 1166, 1287, 1287, 1287, 1122,
1545      1288, 1121, 1120, 1289, 1119, 1115, 1168,  773,  773,  773,
1546      1173, 1173, 1173, 1114, 1174, 1113,  998, 1175, 1106, 1176,
1547      1176, 1176, 1104, 1177, 1103,  775, 1178, 1180, 1180, 1180,
1548      1182, 1182, 1182, 1099, 1183, 1096, 1095, 1184, 1185, 1185,
1549      1185, 1092, 1187, 1187, 1187, 1181, 1188, 1091, 1086, 1189,
1550      1190, 1190, 1190, 1290, 1085, 1084, 1186, 1297, 1297, 1297,
1551
1552      1064, 1298, 1063, 1062, 1299, 1060, 1057, 1191, 1192, 1192,
1553      1192, 1056, 1193, 1055, 1048, 1194, 1195, 1195, 1195, 1300,
1554      1300, 1300, 1045, 1301, 1041, 1039, 1302, 1303, 1303, 1303,
1555      1198, 1198, 1198, 1196, 1305, 1305, 1305, 1038, 1306, 1030,
1556      1029, 1307, 1028, 1027, 1304, 1026, 1025, 1199,  811,  811,
1557       811,  818,  818,  818, 1311, 1311, 1311, 1205, 1205, 1205,
1558      1024, 1206, 1023, 1020, 1207, 1019,  813, 1018, 1017,  820,
1559      1016, 1312, 1209, 1209, 1209, 1211, 1211, 1211, 1318, 1318,
1560      1318, 1014, 1319, 1013, 1010, 1320, 2022, 2022, 2022, 1008,
1561      1210, 1007, 1212, 1216, 1216, 1216, 1308, 1313,  840,  840,
1562
1563       840, 1006, 1004, 2022, 2022, 2022, 2022, 1328, 1328, 1328,
1564      1217, 1309, 1323, 1324, 1324, 1324,  842, 1325, 1003, 1002,
1565      1326, 2022,  857,  857,  857, 1329,  865,  865,  865, 1226,
1566      1226, 1226, 1001, 1227, 1000,  993, 1228,  992, 1321,  990,
1567       859,  871,  871,  871,  867, 1234, 1234, 1234, 1341, 1341,
1568      1341,  989, 1342,  986,  980, 1343, 2022, 2022, 2022,  873,
1569       976, 1327, 1235, 2022, 2022, 2022,  974,  973, 1330,  966,
1570       696,  696,  696, 2022, 1348, 1348, 1348, 1349, 1349, 1349,
1571      2022, 1350, 1350, 1350, 1353, 1353, 1353, 1334,  698, 1336,
1572      1246, 1246, 1246, 1248, 1248, 1248, 1356, 1356, 1356, 1357,
1573
1574      1357, 1357, 1252, 1252, 1252, 1253, 1253, 1253, 1358, 1358,
1575      1358,  964, 1344, 1360, 1360, 1360,  726,  726,  726, 1261,
1576      1261, 1261, 1367, 1367, 1367,  963, 1345, 1266, 1266, 1266,
1577      1346, 1369, 1369, 1369,  728, 1370,  962, 1262, 1371,  961,
1578      1368,  758,  758,  758, 1267, 1279, 1279, 1279,  958, 1280,
1579       957,  956, 1281, 1282, 1282, 1282, 1383, 1383, 1383,  760,
1580      1384,  955,  951, 1385, 1362, 1284, 1284, 1284,  950, 1285,
1581      1283,  948, 1286, 1287, 1287, 1287,  946, 1288,  945,  944,
1582      1289,  773,  773,  773, 1297, 1297, 1297, 1382, 1298,  943,
1583       942, 1299,  940, 1300, 1300, 1300,  938, 1301,  937,  775,
1584
1585      1302, 1303, 1303, 1303, 1395, 1395, 1395,  936, 1396,  934,
1586       931, 1397, 1305, 1305, 1305,  928, 1306,  919, 1304, 1307,
1587       811,  811,  811, 1399, 1399, 1399, 1311, 1311, 1311, 1402,
1588      1402, 1402, 1386, 1403,  917,  910, 1404,  909,  813,  908,
1589       907, 1400,  905, 1312, 1318, 1318, 1318,  903, 1319,  902,
1590       901, 1320, 2022, 2022, 2022,  840,  840,  840, 1324, 1324,
1591      1324,  900, 1325,  899,  898, 1326, 2022, 2022, 2022, 2022,
1592      1328, 1328, 1328,  842,  857,  857,  857, 1425, 1425, 1425,
1593      1398,  897,  895, 2022,  865,  865,  865,  894, 1329, 1432,
1594      1432, 1432,  859,  891, 1426,  871,  871,  871, 1416, 1435,
1595
1596      1435, 1435,  867,  890, 1341, 1341, 1341,  682, 1342,  889,
1597      1418, 1343,  888,  873, 2022, 2022, 2022, 2022, 2022, 2022,
1598       887,  886, 1423,  696,  696,  696, 1439, 1439, 1439,  885,
1599       883, 2022,  882,  881, 2022,  880, 1424, 1348, 1348, 1348,
1600       879,  698, 1349, 1349, 1349, 1429, 1350, 1350, 1350,  878,
1601       877, 1431, 1440, 1440, 1440, 1441, 1441, 1441, 1353, 1353,
1602      1353, 1356, 1356, 1356, 1357, 1357, 1357, 1436, 1358, 1358,
1603      1358, 1360, 1360, 1360, 1446, 1446, 1446,  876, 1438, 1437,
1604      1449, 1449, 1449, 1367, 1367, 1367, 1369, 1369, 1369,  682,
1605      1370,  870, 1447, 1371,  758,  758,  758, 1450, 1383, 1383,
1606
1607      1383, 1368, 1384,  869,  864, 1385, 1463, 1463, 1463, 1395,
1608      1395, 1395,  760, 1396,  863,  862, 1397, 1473, 1473, 1473,
1609      1399, 1399, 1399,  861, 1464, 1475, 1475, 1475,  847, 1402,
1610      1402, 1402,  844, 1403,  839, 1474, 1404,  838, 1400, 1491,
1611      1491, 1491, 1476, 1493, 1493, 1493,  840,  840,  840,  833,
1612       828, 1462, 2022, 2022, 2022,  827, 1492,  857,  857,  857,
1613      1425, 1425, 1425,  826,  842, 1506, 1506, 1506, 1477, 2022,
1614       822,  810, 1503, 1503, 1503,  859, 1504, 1426,  809, 1505,
1615       808,  807, 1507, 1509, 1509, 1509, 1511, 1511, 1511,  871,
1616       871,  871, 1432, 1432, 1432, 1501, 1435, 1435, 1435,  792,
1617
1618       784, 1510, 1516, 1516, 1516,  783,  782,  873,  781, 1494,
1619       682,  777,  772, 1502, 2022, 2022, 2022,  767,  766, 1517,
1620      1519, 1519, 1519, 1439, 1439, 1439, 1440, 1440, 1440,  765,
1621       757, 2022, 1441, 1441, 1441, 1446, 1446, 1446, 1520, 1449,
1622      1449, 1449, 1526, 1526, 1526,  756, 1527,  755,  754, 1528,
1623      1513, 1512,  749, 1447,  746,  740, 1450,  758,  758,  758,
1624       735,  734, 1518, 1463, 1463, 1463, 1546, 1546, 1546, 1473,
1625      1473, 1473, 1475, 1475, 1475,  760,  730,  725, 1548, 1548,
1626      1548, 1464, 1549, 1547,  724, 1550,  723, 1474,  722, 1476,
1627      1556, 1556, 1556, 1491, 1491, 1491, 1564, 1564, 1564,  721,
1628
1629      1565,  720,  719, 1566, 1493, 1493, 1493, 1557,  718,  717,
1630      1492,  716,  715, 1540,  840,  840,  840, 2022, 2022, 2022,
1631      1576, 1576, 1576, 1503, 1503, 1503,  714, 1504,  713,  712,
1632      1505,  711,  842,  710, 2022, 1506, 1506, 1506, 1577, 1578,
1633      1578, 1578,  709, 1579,  708,  707, 1580,  706, 1581, 1581,
1634      1581,  705, 1507, 1509, 1509, 1509, 1511, 1511, 1511, 1583,
1635      1583, 1583,  704,  703, 1574, 1582,  702,  701, 1567,  700,
1636       695, 1510, 1516, 1516, 1516,  694,  693, 1584, 1575, 1588,
1637      1588, 1588,  692, 1589,  691,  690, 1590,  689,  688, 1517,
1638      1591, 1591, 1591, 1519, 1519, 1519, 1597, 1597, 1597, 1526,
1639
1640      1526, 1526,  685, 1527,  683,  682, 1528, 1592,  758,  758,
1641       758, 1520,  680, 1598, 1546, 1546, 1546, 1618, 1618, 1618,
1642       678, 1619,  677,  676, 1620,  674,  760,  673, 1548, 1548,
1643      1548, 1547, 1549,  672,  671, 1550, 1556, 1556, 1556, 1624,
1644      1624, 1624,  670, 1625,  666,  664, 1626, 1564, 1564, 1564,
1645       663, 1565,  662, 1557, 1566,  840,  840,  840, 2022, 2022,
1646      2022, 2022, 2022, 2022, 1614, 1576, 1576, 1576,  661,  660,
1647      1578, 1578, 1578,  842, 1579, 2022,  658, 1580, 2022, 1581,
1648      1581, 1581,  657, 1577, 1646, 1646, 1646,  656, 1647,  655,
1649       654, 1648, 1583, 1583, 1583,  653, 1582, 1588, 1588, 1588,
1650
1651       651, 1589,  650,  649, 1590, 1591, 1591, 1591,  646,  645,
1652      1584, 1652, 1652, 1652,  641, 1653,  639, 1637, 1654, 1644,
1653       638, 1645, 1592, 1655, 1655, 1655, 1657, 1657, 1657, 1597,
1654      1597, 1597, 1659, 1659, 1659,  637, 1660,  636,  635, 1661,
1655       758,  758,  758, 1676, 1676, 1676, 1598, 1618, 1618, 1618,
1656       630, 1619,  629,  627, 1620, 1682, 1682, 1682,  760,  624,
1657      1677, 1624, 1624, 1624,  622, 1625,  621,  620, 1626,  840,
1658       840,  840, 1683, 2022, 2022, 2022, 2022, 2022, 2022, 1655,
1659      1655, 1655, 1706, 1706, 1706,  619, 1678,  842, 1675,  616,
1660      2022,  615,  613, 2022, 1646, 1646, 1646,  612, 1647, 1707,
1661
1662       998, 1648, 1652, 1652, 1652,  610, 1653,  609,  608, 1654,
1663      1657, 1657, 1657, 1659, 1659, 1659,  605, 1660,  603,  602,
1664      1661, 1695, 1703, 1714, 1714, 1714,  758,  758,  758, 1676,
1665      1676, 1676, 1725, 1725, 1725, 1702, 1726,  601,  599, 1727,
1666      1715, 1682, 1682, 1682,  760,  597, 1677, 1733, 1733, 1733,
1667       596, 1734,  595,  594, 1735, 1747, 1747, 1747, 1683, 1755,
1668      1755, 1755, 1758, 1758, 1758, 1762, 1762, 1762, 1706, 1706,
1669      1706,  591, 1724, 1748,  590,  589, 1756,  586,  583, 1759,
1670       582,  580, 1763,  998,  579, 1707,  998,  577, 1764, 1764,
1671      1764,  574, 1765,  573,  570, 1766, 1767, 1767, 1767, 1768,
1672
1673      1768, 1768, 1757,  569,  568, 1760,  998, 1714, 1714, 1714,
1674      1773, 1773, 1773,  567, 1774,  566,  565, 1775,  758,  758,
1675       758, 1725, 1725, 1725, 1715, 1726,  560,  559, 1727, 1787,
1676      1787, 1787,  558, 1733, 1733, 1733,  760, 1734,  557,  556,
1677      1735, 1789, 1789, 1789,  555,  554, 1788, 1747, 1747, 1747,
1678      1755, 1755, 1755, 1805, 1805, 1805,  552, 1806, 1790,  551,
1679      1807, 2022, 2022, 2022,  550, 1748,  549, 1756, 1758, 1758,
1680      1758,  548, 1809, 1809, 1809,  547, 1810,  546, 2022, 1811,
1681      1782, 2022, 2022, 2022,  541, 1759, 1762, 1762, 1762, 1814,
1682      1814, 1814,  538, 1815,  540,  535, 1816,  533, 2022, 1767,
1683
1684      1767, 1767,  531, 1763,  998, 2022,  530,  998,  529, 1764,
1685      1764, 1764,  528, 1765,  527,  525, 1766, 1768, 1768, 1768,
1686       523, 1773, 1773, 1773,  521, 1774, 1808,  998, 1775, 1835,
1687      1835, 1835,  520, 1836,  519,  518, 1837,  517, 1829, 1829,
1688      1829,  516, 1787, 1787, 1787,  514, 1812,  996,  996,  996,
1689       996,  996,  996,  996,  996,  996, 1830,  513,  996, 1788,
1690      1789, 1789, 1789,  996,  996,  996,  998,  996, 1838, 1838,
1691      1838,  509, 1839,  508,  506, 1840,  505, 1790, 1805, 1805,
1692      1805,  502, 1806,  501,  500, 1807, 2022, 2022, 2022,  996,
1693       996,  996,  996,  996,  996,  996,  996,  996,  996,  996,
1694
1695       498,  496,  996, 2022, 2022, 2022, 2022,  996,  996,  996,
1696       998,  996, 1809, 1809, 1809,  494, 1810,  492,  491, 1811,
1697       488, 2022, 1814, 1814, 1814,  487, 1815,  483,  481, 1816,
1698      1829, 1829, 1829,  996,  996, 1835, 1835, 1835, 1853, 1836,
1699       998,  480, 1837, 1838, 1838, 1838,  478, 1839, 1830,  477,
1700      1840,  476, 2022, 2022, 2022,  475, 1854,  996,  996,  996,
1701       996,  996, 1861,  996,  996,  996,  474,  471,  996, 2022,
1702      2022, 2022, 2022,  996,  996,  996,  998,  996, 1890, 1890,
1703      1890, 1893, 1893, 1893, 1912, 1912, 1912, 2022, 1913,  469,
1704       468, 1914,  420, 1895, 1895, 1895,  998,  999, 1894,  996,
1705
1706       996,  996,  996,  996,  996,  996,  996,  996,  996, 1861,
1707      1896,  467,  996,  465, 1884,  463,  462,  996,  996,  996,
1708       998,  996, 1897, 1897, 1897, 1900, 1900, 1900, 2022, 2022,
1709      2022,  461, 1885, 2022, 2022, 2022, 1908, 1908, 1908, 1898,
1710       460,  458, 1901,  996,  996, 2022, 1890, 1890, 1890,  456,
1711      2022, 1893, 1893, 1893,  682, 1895, 1895, 1895,  455, 1915,
1712      1915, 1915,  454, 1916,  998, 1899, 1917,  452, 1894, 1897,
1713      1897, 1897, 1896, 1918, 1918, 1918,  450, 1919,  449, 1906,
1714      1920, 1900, 1900, 1900, 1907,  445, 1898,  444, 1922, 1922,
1715      1922,  442, 1923,  441, 1111, 1924,  438,  437, 1901, 2022,
1716
1717      2022, 2022, 2022, 2022, 2022, 1908, 1908, 1908, 1912, 1912,
1718      1912,  436, 1913,  434,  432, 1914, 2022,  430, 2022, 2022,
1719      1915, 1915, 1915,  682, 1916,  406,  405, 1917, 1918, 1918,
1720      1918,  403, 1919,  401,  395, 1920, 1922, 1922, 1922,  394,
1721      1923, 1931, 1929, 1924,  395, 1930, 2022, 2022, 2022, 2022,
1722      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1723      2022,  394,  393, 2022,  392, 2022, 2022, 2022, 2022, 2022,
1724      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1957,
1725      1957, 1957, 2022, 2022, 2022, 2022, 2022, 2022, 1957, 1957,
1726      1957, 2022, 2022, 2022, 2022, 2022, 1958, 2022, 2022, 2022,
1727
1728      2022, 2022, 2022, 1938, 2022, 1958, 1939, 2022, 2022, 1954,
1729      2022, 1966, 1966, 1966, 1946, 1967, 2022, 1947, 1968, 2022,
1730      2022, 2022, 2022, 2022, 2022, 2022, 2022, 1955, 2022, 2022,
1731      1963, 2022, 2022, 1964, 2022, 2022, 2022, 2022, 2022, 2022,
1732      1966, 1966, 1966, 2022, 1967, 2022, 2022, 1968, 2022, 2022,
1733      2022, 2022, 2022, 2022, 1976, 1976, 1976, 2022, 2022, 2022,
1734      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1976,
1735      1976, 1976,  682, 1979, 2022, 2022, 1980, 2022, 2022, 1971,
1736      2022, 2022, 1972, 2022, 2022, 2022, 2022,  682, 2022, 2022,
1737      2022, 1974, 2022, 2022, 1975, 2022, 2022, 2022, 2022, 2022,
1738
1739      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1740      2022, 2022, 2022, 1993, 1993, 1993, 2022, 2022, 1977, 2022,
1741      1978, 2022, 2022, 2022, 2022, 2022, 2022, 1995, 1995, 1995,
1742      1994, 1981, 1993, 1993, 1993, 2022, 1982, 2022, 1999, 1999,
1743      1999, 2022, 2000, 2022, 1996, 2001, 2022, 2022, 1986, 1994,
1744      2022, 1985, 2022, 1989, 1995, 1995, 1995, 2002, 2002, 2002,
1745      2022, 2003, 2022, 2022, 2004, 1999, 1999, 1999, 2022, 2000,
1746      2022, 1996, 2001, 1990, 2002, 2002, 2002, 2022, 2003, 2022,
1747      2022, 2004, 2020, 2020, 2020, 2020, 2020, 2020, 2022, 2022,
1748      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1749
1750      2021, 2022, 2022, 2021,  144,  144,  144,  144,  144,  144,
1751       144,  144,  144,  145,  145,  145,  145,  145,  145,  145,
1752       145,  145,  150,  150,  150,  150,  150,  150,  150,  150,
1753       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
1754       156,  156,  156,  156,  156,  156,  156,  156,  156,  159,
1755       159,  159,  159,  159,  159,  159,  159,  159,  166,  166,
1756       166,  166,  166,  166,  166,  166,  166,  174,  174,  174,
1757       174,  174,  174,  174,  174,  174,  179,  179,  179,  179,
1758       179,  179,  179,  179,  179,  189,  189,  189,  189,  189,
1759       189,  189,  189,  189,  193,  193,  193,  193,  193,  193,
1760
1761       193,  193,  193,  199,  199,  199,  199,  199,  199,  199,
1762       199,  199,  210,  210,  210,  210,  210,  210,  210,  210,
1763       210,  217,  217,  217,  217,  217,  217,  217,  217,  217,
1764       225,  225,  225,  225,  225,  225,  225,  225,  225,  231,
1765       231,  231,  231,  231,  231,  231,  231,  231,  237,  237,
1766       237,  237,  237,  237,  237,  237,  237,  244,  244,  244,
1767       244,  244,  244,  244,  244,  244,  250,  250,  250,  250,
1768       250,  250,  250,  250,  250,  256,  256,  256,  256,  256,
1769       256,  256,  256,  256,  262,  262,  262,  262,  262,  262,
1770       262,  262,  262,  270,  270,  270,  270,  270,  270,  270,
1771
1772       270,  270,  277,  277,  277,  277,  277,  277,  277,  277,
1773       277,  282,  282,  282,  282,  282,  282,  282,  282,  282,
1774       297,  297,  297,  297,  297,  297,  297,  297,  297,  303,
1775       303,  303,  303,  303,  303,  303,  303,  303,  307,  307,
1776       307,  307,  307,  307,  307,  307,  307,  313,  313,  313,
1777       313,  313,  313,  313,  313,  313,  320,  320,  320,  320,
1778       320,  320,  320,  320,  320,  327,  327,  327,  327,  327,
1779       327,  327,  327,  327,  334,  334,  334,  334,  334,  334,
1780       334,  334,  334,  341,  341,  341,  341,  341,  341,  341,
1781       341,  341,  348,  348,  348,  348,  348,  348,  348,  348,
1782
1783       348,  355,  355,  355,  355,  355,  355,  355,  355,  355,
1784       359,  359,  359,  359,  359,  359,  359,  359,  359,  365,
1785       365,  365,  365,  365,  365,  365,  365,  365,  372,  372,
1786       372,  372,  372,  372,  372,  372,  372,  380,  380,  380,
1787       380,  380,  380,  380,  380,  380,  384,  384,  384,  384,
1788       384,  384,  384,  384,  384,  404,  404,  404, 2022, 2022,
1789      2022,  404,  431,  431,  431, 2022, 2022, 2022,  431,  435,
1790       435,  435, 2022, 2022, 2022,  435,  443,  443,  443, 2022,
1791      2022, 2022,  443,  453,  453,  453, 2022, 2022, 2022,  453,
1792       459,  459,  459, 2022, 2022, 2022,  459,  466,  466,  466,
1793
1794      2022, 2022, 2022,  466,  470,  470,  470, 2022, 2022, 2022,
1795       470,  479,  479,  479, 2022, 2022, 2022,  479,  484,  484,
1796       484, 2022, 2022, 2022,  484,  495,  495,  495, 2022, 2022,
1797      2022,  495,  499,  499,  499, 2022, 2022, 2022,  499,  507,
1798       507,  507, 2022, 2022, 2022,  507,  515,  515,  515, 2022,
1799      2022, 2022,  515,  522,  522,  522, 2022, 2022, 2022,  522,
1800       526,  526,  526, 2022, 2022, 2022,  526,  534,  534,  534,
1801      2022, 2022, 2022,  534,  537,  537,  537,  537,  537,  537,
1802       537, 2022,  537,  553, 2022, 2022, 2022,  553,  581, 2022,
1803      2022, 2022,  581,  588, 2022, 2022, 2022,  588,  598, 2022,
1804
1805      2022, 2022,  598,  604, 2022, 2022, 2022,  604,  611, 2022,
1806      2022, 2022,  611,  614, 2022, 2022, 2022,  614,  623, 2022,
1807      2022, 2022,  623,  628, 2022, 2022, 2022,  628,  484,  484,
1808       484, 2022, 2022, 2022,  484,  640, 2022, 2022, 2022,  640,
1809       495,  495,  495, 2022, 2022, 2022,  495,  644, 2022, 2022,
1810      2022,  644,  499,  499,  499, 2022, 2022, 2022,  499,  652,
1811      2022, 2022, 2022,  652,  507,  507,  507, 2022, 2022, 2022,
1812       507,  659, 2022, 2022, 2022,  659,  515,  515,  515, 2022,
1813      2022, 2022,  515,  665, 2022, 2022, 2022,  665,  522,  522,
1814       522, 2022, 2022, 2022,  522,  669, 2022, 2022, 2022,  669,
1815
1816       526,  526,  526, 2022, 2022, 2022,  526,  675, 2022, 2022,
1817      2022,  675,  534,  534,  534, 2022, 2022, 2022,  534,  679,
1818      2022, 2022, 2022,  679,  681,  681,  681,  681,  681,  681,
1819       681,  681,  681,  687, 2022, 2022, 2022, 2022,  687,  404,
1820       404,  404, 2022, 2022, 2022,  404,  697,  697,  697,  697,
1821      2022, 2022,  697,  697,  431,  431,  431, 2022, 2022, 2022,
1822       431,  727,  727,  727,  727, 2022, 2022,  727,  727,  435,
1823       435,  435, 2022, 2022, 2022,  435,  737,  737,  737,  737,
1824      2022, 2022,  737,  737,  443,  443,  443, 2022, 2022, 2022,
1825       443,  751,  751,  751,  751, 2022, 2022,  751,  751,  453,
1826
1827       453,  453, 2022, 2022, 2022,  453,  759,  759,  759,  759,
1828      2022, 2022,  759,  759,  459,  459,  459, 2022, 2022, 2022,
1829       459,  769,  769,  769,  769, 2022, 2022,  769,  769,  466,
1830       466,  466, 2022, 2022, 2022,  466,  774,  774,  774,  774,
1831      2022, 2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,
1832       470,  786,  786,  786,  786, 2022, 2022,  786,  786,  479,
1833       479,  479, 2022, 2022, 2022,  479,  794,  794,  794,  794,
1834      2022, 2022,  794,  794,  484,  484,  484, 2022, 2022, 2022,
1835       484,  812,  812,  812,  812, 2022, 2022,  812,  812,  819,
1836       819,  819,  819, 2022, 2022,  819,  819,  499,  499,  499,
1837
1838      2022, 2022, 2022,  499,  830,  830,  830,  830, 2022, 2022,
1839       830,  830,  507,  507,  507, 2022, 2022, 2022,  507,  841,
1840       841,  841,  841, 2022, 2022,  841,  841,  515,  515,  515,
1841      2022, 2022, 2022,  515,  851,  851,  851,  851, 2022, 2022,
1842       851,  851,  858,  858,  858,  858, 2022, 2022,  858,  858,
1843       526,  526,  526, 2022, 2022, 2022,  526,  866,  866,  866,
1844       866, 2022, 2022,  866,  866,  534,  534,  534, 2022, 2022,
1845      2022,  534,  872,  872,  872,  872, 2022, 2022,  872,  872,
1846       681,  681,  681,  681,  681,  681,  681,  681,  681,  687,
1847      2022,  687, 2022, 2022,  687,  404,  404,  404, 2022, 2022,
1848
1849      2022,  404,  697,  697,  697,  697, 2022, 2022,  697,  697,
1850       431,  431,  431,  431, 2022,  431, 2022,  431,  727,  727,
1851       727,  727, 2022, 2022,  727,  727,  435,  435,  435,  435,
1852      2022,  435, 2022,  435,  737,  737,  737,  737, 2022, 2022,
1853       737,  737,  443,  443,  443, 2022, 2022, 2022,  443,  751,
1854       751,  751,  751, 2022, 2022,  751,  751,  453,  453,  453,
1855      2022, 2022, 2022,  453,  759,  759,  759,  759, 2022, 2022,
1856       759,  759,  459,  459,  459, 2022, 2022, 2022,  459,  769,
1857       769,  769,  769, 2022, 2022,  769,  769,  466,  466,  466,
1858      2022, 2022, 2022,  466,  774,  774,  774,  774, 2022, 2022,
1859
1860       774,  774,  470,  470,  470, 2022, 2022, 2022,  470,  786,
1861       786,  786,  786, 2022, 2022,  786,  786,  479,  479,  479,
1862      2022, 2022, 2022,  479,  794,  794,  794,  794, 2022, 2022,
1863       794,  794,  484,  484,  484, 2022, 2022, 2022,  484,  812,
1864       812,  812,  812, 2022, 2022,  812,  812,  819,  819,  819,
1865       819, 2022, 2022,  819,  819,  499,  499,  499, 2022, 2022,
1866      2022,  499,  830,  830,  830,  830, 2022, 2022,  830,  830,
1867       507,  507,  507, 2022, 2022, 2022,  507,  841,  841,  841,
1868       841, 2022, 2022,  841,  841,  515,  515,  515, 2022, 2022,
1869      2022,  515,  851,  851,  851,  851, 2022, 2022,  851,  851,
1870
1871       858,  858,  858,  858, 2022, 2022,  858,  858,  526,  526,
1872       526, 2022, 2022, 2022,  526,  866,  866,  866,  866, 2022,
1873      2022,  866,  866,  534,  534,  534, 2022, 2022, 2022,  534,
1874       872,  872,  872,  872, 2022, 2022,  872,  872,  681,  681,
1875       681,  681,  681,  681,  681,  681,  681,  996,  996,  996,
1876       996,  996,  996,  996,  996,  996,  404,  404,  404, 2022,
1877      2022, 2022,  404,  697,  697,  697,  697, 2022, 2022,  697,
1878       697,  727,  727,  727,  727, 2022, 2022,  727,  727,  435,
1879       435,  435, 2022, 2022, 2022,  435,  737,  737,  737,  737,
1880      2022, 2022,  737,  737,  443,  443,  443, 2022, 2022, 2022,
1881
1882       443,  751,  751,  751,  751, 2022, 2022,  751,  751,  453,
1883       453,  453, 2022, 2022, 2022,  453,  759,  759,  759,  759,
1884      2022, 2022,  759,  759,  459,  459,  459, 2022, 2022, 2022,
1885       459,  769,  769,  769,  769, 2022, 2022,  769,  769,  466,
1886       466,  466, 2022, 2022, 2022,  466,  774,  774,  774,  774,
1887      2022, 2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,
1888       470,  786,  786,  786,  786, 2022, 2022,  786,  786,  479,
1889       479,  479,  479, 2022,  479, 2022,  479,  794,  794,  794,
1890       794, 2022, 2022,  794,  794,  484,  484,  484,  484, 2022,
1891       484, 2022,  484,  812,  812,  812,  812, 2022, 2022,  812,
1892
1893       812,  819,  819,  819,  819, 2022, 2022,  819,  819,  499,
1894       499,  499, 2022, 2022, 2022,  499,  830,  830,  830,  830,
1895      2022, 2022,  830,  830,  507,  507,  507, 2022, 2022, 2022,
1896       507,  841,  841,  841,  841, 2022, 2022,  841,  841,  515,
1897       515,  515, 2022, 2022, 2022,  515,  851,  851,  851,  851,
1898      2022, 2022,  851,  851,  858,  858,  858,  858, 2022, 2022,
1899       858,  858,  526,  526,  526, 2022, 2022, 2022,  526,  866,
1900       866,  866,  866, 2022, 2022,  866,  866,  534,  534,  534,
1901       534, 2022,  534, 2022,  534,  872,  872,  872,  872, 2022,
1902      2022,  872,  872,  681,  681,  681,  681,  681,  681,  681,
1903
1904       681,  681,  996,  996,  996,  996,  996,  996,  996,  996,
1905       996,  404,  404,  404, 2022, 2022, 2022,  404,  697,  697,
1906       697,  697, 2022, 2022,  697,  697,  727,  727,  727,  727,
1907      2022, 2022,  727,  727,  435,  435,  435, 2022, 2022, 2022,
1908       435,  737,  737,  737,  737, 2022, 2022,  737,  737,  443,
1909       443,  443, 2022, 2022, 2022,  443,  751,  751,  751,  751,
1910      2022, 2022,  751,  751,  453,  453,  453, 2022, 2022, 2022,
1911       453,  759,  759,  759,  759, 2022, 2022,  759,  759,  459,
1912       459,  459,  459, 2022,  459, 2022,  459,  466,  466,  466,
1913       466, 2022,  466, 2022,  466,  774,  774,  774,  774, 2022,
1914
1915      2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,  470,
1916       786,  786,  786,  786, 2022, 2022,  786,  786,  794,  794,
1917       794,  794, 2022, 2022,  794,  794,  484,  484,  484,  484,
1918      2022,  484, 2022,  484,  812,  812,  812,  812, 2022, 2022,
1919       812,  812,  819,  819,  819,  819, 2022, 2022,  819,  819,
1920       499,  499,  499, 2022, 2022, 2022,  499,  830,  830,  830,
1921       830, 2022, 2022,  830,  830,  507,  507,  507,  507, 2022,
1922       507, 2022,  507,  841,  841,  841,  841, 2022, 2022,  841,
1923       841,  515,  515,  515,  515, 2022,  515, 2022,  515,  851,
1924       851,  851,  851, 2022, 2022,  851,  851,  858,  858,  858,
1925
1926       858, 2022, 2022,  858,  858,  526,  526,  526, 2022, 2022,
1927      2022,  526,  866,  866,  866,  866, 2022, 2022,  866,  866,
1928       872,  872,  872,  872, 2022, 2022,  872,  872,  681,  681,
1929       681,  681,  681,  681,  681,  681,  681,  996,  996,  996,
1930       996,  996,  996,  996,  996,  996,  404,  404,  404,  404,
1931      2022,  404, 2022,  404,  697,  697,  697,  697, 2022, 2022,
1932       697,  697,  727,  727,  727,  727, 2022, 2022,  727,  727,
1933       435,  435,  435, 2022, 2022, 2022,  435,  737,  737,  737,
1934       737, 2022, 2022,  737,  737,  443,  443,  443, 2022, 2022,
1935      2022,  443,  751,  751,  751,  751, 2022, 2022,  751,  751,
1936
1937       453,  453,  453,  453, 2022,  453, 2022,  453,  759,  759,
1938       759,  759, 2022, 2022,  759,  759,  459,  459,  459,  459,
1939      2022,  459, 2022,  459,  774,  774,  774,  774, 2022, 2022,
1940       774,  774,  470,  470,  470, 2022, 2022, 2022,  470, 1817,
1941      1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1818, 1818,
1942      1818, 1818, 1818, 1818, 1818, 1818, 1818, 1856, 1856, 1856,
1943      1856, 1856, 1856, 1856, 1856, 1856, 1859, 1859, 1859, 1859,
1944      1859, 1859, 1859, 1859, 1859, 1887, 1887, 1887, 1887, 1887,
1945      1887, 1887, 1887, 1887, 1889, 1889, 1889, 1889, 1889, 1889,
1946      1889, 1889, 1889,  143, 2022, 2022, 2022, 2022, 2022, 2022,
1947
1948      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1949      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1950      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1951      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1952      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1953      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1954      2022, 2022, 2022
1955     } ;
1956
1957 static yyconst flex_int16_t yy_chk[7164] =
1958     {   0,
1959         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1960         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1961         4,   10,  219,    5,    0,    9,    6,    0,   10,    7,
1962         8,    8,    8,  148,   11,   13,   13,   12,   14,   14,
1963        13,   13,  220,   14,   14,  149,    8,   17,   17,  148,
1964        13,   15,   15,   14,   15,  152,   15,   16,   16,  414,
1965        16,  149,   16,   18,   18,  414,   15,   19,   19,   19,
1966       219,  152,   16,   20,   20,   20,   23,   23,   23,   24,
1967        24,   24,  266,   19,   25,   25,   25,  332,   17,   20,
1968       220,  266,   23,  425,  332,   24,  146,  146,  146,  425,
1969
1970        25,  147,  147,  147,   18,   21,   21,   21,   21,   21,
1971        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1972      1412,   21,   21,   21,   21,   21,   26,   26,   26,   27,
1973        27,   27,  319,   28,   28,   28,   29,   29,   29,   30,
1974        30,   30,   26,  319,  451,   27,  175,   21,   21,   28,
1975       451,  294,   29,  190,  294,   30,  151,  151,  151,  172,
1976       172,  172,  175,  180,  180,  180,  187,  187,  187,  190,
1977        21,  183,   21,   22,   22,   22,   22,   22,   22,   22,
1978        22,   22,   22,   22,   22,   22,   22,   22,  272,   22,
1979        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
1980
1981       995,   33,   33,   33,   34,   34,   34,   35,   35,   35,
1982        31,  415,  200,   32,  170,   22,   22,   33,  211,  183,
1983        34,  183,  995,   35,  415,   36,   36,   36,  200,  185,
1984       170,  194,  194,  194,  211,  185,  272,  185,   22,  185,
1985        22,   36,   37,   37,   37,   37,   37,   37,   37,   37,
1986        37,   37,   37,   37,   37,   37,   37,  291,   37,   37,
1987        37,   37,   37,   39,   39,   39,   40,   40,   40,  170,
1988        47,   47,   47,   43,   43,   44,   44,  291,   43,   39,
1989        44, 1152,   40,  215,   37,   37,   47,  215,   43, 1152,
1990        44,  215,   37,   38,   38,   38,   38,   38,   38,   38,
1991
1992        38,   38,   38,   38,   38,   38,   38,   38,  707,   38,
1993        38,   38,   38,   38,   43,  333,   44,   48,   48,   48,
1994       707,   49,   49,   49,   50,   50,   50,  197,  197,  197,
1995       208,  208,  208,   48,  684,   38,   38,   49,  684,  397,
1996        50,  336,  397,   38,   41,   41,   41,   41,   41,   41,
1997        41,   41,   41,   41,   41,   41,   41,   41,   41,  333,
1998        41,   41,   41,   41,   41,   51,   51,   51,   52,   52,
1999        52,  322,   53,   53,   53,   54,   54,   54,  218,  218,
2000       218,   51,  195,  205,   52,  336,   41,   41,   53,  195,
2001       205,   54, 1319, 1319,   41, 1320, 1320,   41,  195,  205,
2002
2003       223,  223,  223,   41,   42,   42,   42,   42,   42,   42,
2004        42,   42,   42,   42,   42,   42,   42,   42,   42,  322,
2005        42,   42,   42,   42,   42,   57,   57,   57,   58,   58,
2006        58,  720,   61,   61,   61,   62,   62,   62,  388,  226,
2007       238,   57, 1156,  720,   58,  233,   42,   42,   61,  422,
2008      1156,   62,  233,  388,   42,  226,  238,   42,  232,  232,
2009       232,  233,  422,   42,   45,   45,   45,   45,   45,   45,
2010        45,   45,   45,   45,   45,   45,   45,   45,   45,  754,
2011        45,   45,   45,   45,   45,   65,   65,   65,   66,   66,
2012        66,  754,   67,   67,   67,   68,   68,   68,   69,   69,
2013
2014        69,   65,  246,  251,   66, 1414,   45,   45,   67,  246,
2015       350,   68,  426, 1419,   69,   45, 1421,   45,  246,  251,
2016        45,  235,  235,  235,  254,  426,   45,   46,   46,   46,
2017        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
2018        46,   46,  439,   46,   46,   46,   46,   46,   70,   70,
2019        70,   73,   73,   73,  350,   74,   74,   74,   75,   75,
2020        75,   76,   76,   76,   70,  254,  263,   73,  254,   46,
2021        46,   74,  278, 1004,   75,  439, 1428,   76,   46, 1004,
2022        46, 1442,  263,   46,  245,  245,  245, 1112,  278,   46,
2023        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
2024
2025        55,   55,   55,   55,   55, 1443,   55,   55,   55,   55,
2026        55,   77,   77,   77,   78,   78,   78, 1112,   79,   79,
2027        79,   80,   80,   80,   83,   83,   83,   77, 1444,  630,
2028        78, 1111,   55,   55,   79,  289,  304,   80,  630,   55,
2029        83,  248,  248,  248,   55,  257,  257,  257,  260,  260,
2030       260,  289,  304,   55,   56,   56,   56,   56,   56,   56,
2031        56,   56,   56,   56,   56,   56,   56,   56,   56, 1111,
2032        56,   56,   56,   56,   56,   84,   84,   84,   87,   87,
2033        87, 1445,   88,   88,   88,   91,   91,   91,   92,   92,
2034        92,   84, 1325, 1325,   87, 1294,   56,   56,   88,  314,
2035
2036       328,   91, 1294,   56,   92,  271,  271,  271,   56,  275,
2037       275,  275,  283,  283,  283,  314,  328,   56,   59,   59,
2038        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
2039        59,   59,   59, 1448,   59,   59,   59,   59,   59,   95,
2040        95,   95,   96,   96,   96,  875,   97,   97,   97,   98,
2041        98,   98,   99,   99,   99,   95,  284,  428,   96, 1451,
2042        59,   59,   97,  284,  875,   98, 1232, 1433,   99, 1295,
2043       428,   59,  284,  286,  286,  286, 1295,   59, 1452,   59,
2044        59,   60,   60,   60,   60,   60,   60,   60,   60,   60,
2045        60,   60,   60,   60,   60,   60, 1433,   60,   60,   60,
2046
2047        60,   60,  100,  100,  100,  101,  101,  101, 1232,  102,
2048       102,  102,  105,  105,  105,  106,  106,  106,  100, 1326,
2049      1326,  101,  299,   60,   60,  102,  539, 1230,  105,  299,
2050      1453,  106, 1315, 1230,   60,  298,  298,  298,  299, 1315,
2051        60,  539,   60,   60,   63,   63,   63,   63,   63,   63,
2052        63,   63,   63,   63,   63,   63,   63,   63,   63, 1434,
2053        63,   63,   63,   63,   63,  107,  107,  107,  108,  108,
2054       108, 1454,  109,  109,  109,  110,  110,  110,  111,  111,
2055       111,  107, 1455, 1316,  108,  309,   63,   63,  109,  342,
2056      1316,  110,  309, 1434,  111,  301,  301,  301,  308,  308,
2057
2058       308,  309,  311,  311,  311,  342,   63,   64,   64,   64,
2059        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
2060        64,   64, 1456,   64,   64,   64,   64,   64,  112,  112,
2061       112,  115,  115,  115, 1457,  116,  116,  116,  117,  117,
2062       117,  118,  118,  118,  112, 1458, 1338,  115, 1459,   64,
2063        64,  116,  356, 1413,  117, 1413, 1460,  118,  321,  321,
2064       321,  325,  325,  325,  335,  335,  335, 1461,  356,   64,
2065        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2066        71,   71,   71,   71,   71, 1338,   71,   71,   71,   71,
2067        71,  119,  119,  119,  120,  120,  120, 1465,  121,  121,
2068
2069       121,  122,  122,  122,  125,  125,  125,  119,  366,  361,
2070       120,  381,   71,   71,  121,   71,  361,  122, 1466, 1415,
2071       125, 1415, 1467,   71,  366,  361,   71,  381, 1339,   71,
2072      1468, 1470,   71,   72,   72,   72,   72,   72,   72,   72,
2073        72,   72,   72,   72,   72,   72,   72,   72, 1477,   72,
2074        72,   72,   72,   72,  126,  126,  126,  129,  129,  129,
2075      1478,  130,  130,  130,  131,  131,  131,  132,  132,  132,
2076       126, 1339,  386,  129, 1479,   72,   72,  130,   72,  386,
2077       131, 1050, 1420,  132, 1420, 1480,   72, 1050,  386,   72,
2078      1050, 1422,   72, 1422, 1050,   72,   81,   81,   81,   81,
2079
2080        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
2081        81,  374,   81,   81,   81,   81,   81,  133,  133,  133,
2082       134,  134,  134, 1482,  135,  135,  135,  136,  136,  136,
2083       139,  139,  139,  133, 1485, 1051,  134, 1486,   81,   81,
2084       135, 1051, 1487,  136, 1051,  374,  139,  162, 1051,   81,
2085       339,  339,  339,  349,  349,  349,  353,  353,  353,  374,
2086      1488,   81,   82,   82,   82,   82,   82,   82,   82,   82,
2087        82,   82,   82,   82,   82,   82,   82, 1489,   82,   82,
2088        82,   82,   82,  140,  140,  140,  162,  360,  360,  360,
2089      1490, 1495,  162,  363,  363,  363,  162, 1496, 1497,  140,
2090
2091      1498,  162, 1499, 1500,   82,   82,  373,  373,  373,  378,
2092       378,  378,  385,  385,  385,   82,  387,  387,  387,  542,
2093       542,  542, 1521,  542,  710,  710,  710,   82,   85,   85,
2094        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2095        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2096        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2097        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2098        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2099        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2100        85,   85,   85,   85,   85,   85,   85,   89,   89,   89,
2101
2102        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2103        89,   89, 1513,   89,   89,   89,   89,   89,  396,  396,
2104       396,  437,  437,  437,  445,  445,  445,  460,  460,  460,
2105       472,  472,  472,  718,  718,  718, 1522, 1523,  437,   89,
2106        89,  445, 1524, 1529,  460, 1530, 1531,  472, 1513, 1231,
2107        89,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2108        90,   90,   90,   90,   90,   90, 1514,   90,   90,   90,
2109        90,   90, 1532,  396,  480,  480,  480, 1231,  486,  486,
2110       486,  487,  487,  487,  496,  496,  496,  888,  888,  888,
2111      1527,  480, 1533,   90,   90,  486, 1534, 1535,  487, 1536,
2112
2113      1514,  496, 1527, 1515,   90,   93,   93,   93,   93,   93,
2114        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
2115      1537,   93,   93,   93,   93,   93,  501,  501,  501,  523,
2116       523,  523,  553,  553,  553,  554,  554,  554,  581,  581,
2117       581, 1110, 1515,  501, 1538, 1539,  523,   93,   93, 1541,
2118       553,   93, 1542,  554, 1543, 1551,  581, 1110,   93, 1552,
2119        93,  893,  893,  893,  896,  896,  896,   93,   94,   94,
2120        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2121        94,   94,   94, 1553,   94,   94,   94,   94,   94,  554,
2122       582,  582,  582, 1558, 1528,  584,  584,  584,  585,  585,
2123
2124       585, 1559,  585, 1560, 1561,  585, 1528, 1562,  582, 1563,
2125        94,   94,  584, 1568,   94,  593,  593,  593, 1569,  593,
2126      1570,   94,  593,   94,  900,  900,  900,  904,  904,  904,
2127        94,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2128       103,  103,  103,  103,  103,  103,  582,  103,  103,  103,
2129       103,  103,  588,  588,  588, 1571, 1572,  589,  589,  589,
2130       592,  592,  592,  594,  594,  594,  596,  596,  596, 1573,
2131       588, 1586, 1594,  103,  103,  589,  103,  592, 1587,  103,
2132       594, 1565, 1566,  596,  607,  607,  607, 1596,  607, 1565,
2133      1566,  607, 1585,  103,  104,  104,  104,  104,  104,  104,
2134
2135       104,  104,  104,  104,  104,  104,  104,  104,  104, 1586,
2136       104,  104,  104,  104,  104, 1599, 1587,  589, 1585, 1600,
2137       598,  598,  598,  604,  604,  604, 1601, 1602,  599,  599,
2138       599,  605,  605,  605, 1603, 1604,  104,  104,  598,  104,
2139      1605,  604,  104,  618,  618,  618,  599,  618, 1606,  605,
2140       618,  930,  930,  930, 1607, 1609,  104,  113,  113,  113,
2141       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2142       113,  113,  599,  113,  113,  113,  113,  113,  606,  606,
2143       606, 1610, 1611,  611,  611,  611,  614,  614,  614, 1612,
2144      1616,  605,  617,  617,  617,  606,  612,  612,  612,  113,
2145
2146       113,  611,  113, 1617,  614,  113, 1009, 1009, 1009,  617,
2147       113,  626,  626,  626,  612,  626, 1621, 1623,  626,  113,
2148       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2149       114,  114,  114,  114,  114, 1627,  114,  114,  114,  114,
2150       114,  615,  615,  615,  612, 1628,  623,  623,  623,  624,
2151       624,  624,  625,  625,  625, 1629,  628,  628,  628,  615,
2152      1630, 1631,  114,  114,  623,  114, 1632,  624,  114,  625,
2153      1011, 1011, 1011,  114,  628, 1015, 1015, 1015, 1021, 1021,
2154      1021, 1633,  114,  123,  123,  123,  123,  123,  123,  123,
2155       123,  123,  123,  123,  123,  123,  123,  123,  615,  123,
2156
2157       123,  123,  123,  123, 1634, 1635,  624, 1636, 1638,  629,
2158       629,  629,  631,  631,  631,  632,  632,  632, 1639,  632,
2159      1640, 1641,  632, 1642, 1643,  123,  123,  629, 1656,  631,
2160      1022, 1022, 1022, 1047, 1047, 1047,  123,  124,  124,  124,
2161       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2162       124,  124, 1650,  124,  124,  124,  124,  124,  633,  633,
2163       633,  634,  634,  634, 1658,  634, 1662, 1663,  634,  629,
2164       635,  635,  635, 1664, 1665,  633, 1126, 1126, 1126,  124,
2165       124,  643,  643,  643, 1650,  643, 1667,  635,  643, 1668,
2166       124,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2167
2168       127,  127,  127,  127,  127,  127, 1669,  127,  127,  127,
2169       127,  127,  640,  640,  640,  642,  642,  642,  644,  644,
2170       644,  641,  641,  641,  645,  645,  645,  647,  647,  647,
2171       640, 1670,  642,  127,  127, 1649,  644, 1671, 1672,  641,
2172      1673,  127,  645,  127,  647,  127, 1127, 1127, 1127, 1129,
2173      1129, 1129, 1674,  127,  128,  128,  128,  128,  128,  128,
2174       128,  128,  128,  128,  128,  128,  128,  128,  128, 1678,
2175       128,  128,  128,  128,  128,  641,  648,  648,  648, 1649,
2176       648,  645, 1680,  648,  652,  652,  652,  653,  653,  653,
2177       655,  655,  655,  656,  656,  656,  128,  128,  662,  662,
2178
2179       662, 1681,  652, 1684,  128,  653,  128,  655,  128, 1685,
2180       656, 1130, 1130, 1130, 1686,  662,  128,  137,  137,  137,
2181       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2182       137,  137, 1687,  137,  137,  137,  137,  137, 1688,  653,
2183       659,  659,  659, 1689,  664,  664,  664,  660,  660,  660,
2184       665,  665,  665,  666,  666,  666, 1679, 1679,  659,  137,
2185       137,  664,  667,  667,  667,  660, 1690, 1691,  665, 1692,
2186      1693,  666, 1694,  668,  668,  668, 1696,  668, 1697,  667,
2187       668, 1698,  137,  138,  138,  138,  138,  138,  138,  138,
2188       138,  138,  138,  138,  138,  138,  138,  138, 1699,  138,
2189
2190       138,  138,  138,  138,  660,  669,  669,  669, 1700, 1701,
2191       666,  670,  670,  670,  675,  675,  675,  676,  676,  676,
2192       679,  679,  679,  669, 1710,  138,  138, 1704, 1711,  670,
2193      1712, 1713,  675, 1716, 1717,  676, 1719, 1720,  679,  680,
2194       680,  680,  696,  696,  696,  725,  725,  725,  138,  181,
2195       697,  697,  697,  890,  890,  890,  181,  680, 1704, 1721,
2196       696, 1723,  725,  670, 1728,  181, 1729,  890,  697,  699,
2197       699,  699, 1730,  726,  726,  726, 1731,  676,  727,  727,
2198       727, 1737, 1738,  729,  729,  729, 1739,  699, 1740, 1741,
2199       181,  726,  181, 1742, 1744,  181,  727,  181,  181,  680,
2200
2201       181,  729, 1746, 1749,  181, 1750,  181,  181,  181,  182,
2202       730,  730,  730,  699, 1751, 1752,  182,  731,  731,  731,
2203      1753,  731, 1754, 1761,  731,  182, 1769,  730, 1770,  729,
2204       734,  734,  734,  736,  736,  736,  737,  737,  737, 1771,
2205      1772,  739,  739,  739,  744,  744,  744,  734, 1776, 1777,
2206       182,  736,  182, 1778,  737,  182, 1779,  182,  182,  739,
2207       182,  744, 1761, 1780,  182, 1781,  182,  182,  182,  741,
2208       741,  741, 1783,  741, 1784, 1785,  741,  745,  745,  745,
2209      1786,  745, 1791, 1792,  745,  739, 1793,  734,  746,  746,
2210       746,  747,  747,  747,  748,  748,  748, 1794,  748, 1795,
2211
2212      1796,  748,  750,  750,  750,  746, 1799, 1800,  747,  751,
2213       751,  751,  753,  753,  753,  756,  756,  756, 1801, 1802,
2214       750,  758,  758,  758,  759,  759,  759,  751, 1803, 1804,
2215       753, 1819,  756,  761,  761,  761,  762,  762,  762,  758,
2216       762, 1821,  759,  762,  768,  768,  768,  769,  769,  769,
2217      1824,  761,  771,  771,  771,  773,  773,  773,  774,  774,
2218       774, 1815,  768, 1816, 1813,  769, 1825, 1827,  753, 1828,
2219       771, 1831, 1832,  773, 1816, 1815,  774,  761,  776,  776,
2220       776,  778,  778,  778, 1833,  778, 1834, 1841,  778,  785,
2221       785,  785,  786,  786,  786, 1842,  776,  788,  788,  788,
2222
2223      1844,  789,  789,  789, 1845,  789, 1813,  785,  789, 1847,
2224       786,  793,  793,  793,  771,  788,  794,  794,  794,  796,
2225       796,  796, 1848,  799,  799,  799, 1850,  799, 1851,  793,
2226       799,  805,  805,  805,  794, 1858, 1839,  796,  776,  802,
2227       802,  802, 1855,  802, 1840, 1860,  802, 1839,  805,  806,
2228       806,  806, 1862,  806, 1863, 1840,  806, 1856,  788,  811,
2229       811,  811,  812,  812,  812,  814,  814,  814,  815,  815,
2230       815, 1856,  815, 1857, 1857,  815,  796,  811, 1872, 1855,
2231       812, 1873, 1874,  814,  818,  818,  818,  819,  819,  819,
2232       821,  821,  821,  823,  823,  823, 1859,  823, 1875, 1887,
2233
2234       823, 1888,  818, 1889, 1891,  819, 1892, 1859,  821,  829,
2235       829,  829,  830,  830,  830,  832,  832,  832,  834,  834,
2236       834, 1899,  835,  835,  835, 1902,  835,  829,  814,  835,
2237       830, 1903, 1904,  832, 1905,  834, 1909,  836,  836,  836,
2238       837,  837,  837, 1921,  837, 1925, 1926,  837,  840,  840,
2239       840, 1927, 1928,  821,  836,  841,  841,  841,  843,  843,
2240       843,  845,  845,  845, 1933, 1931,  840, 1934,  846,  846,
2241       846,  832,  846,  841, 1935,  846,  843, 1936,  845,  848,
2242       848,  848,  849,  849,  849, 1937,  849, 1931, 1940,  849,
2243       850,  850,  850,  851,  851,  851,  848,  853,  853,  853,
2244
2245       854,  854,  854, 1941,  854, 1942, 1940,  854,  850, 1943,
2246      1944,  851,  857,  857,  857,  853,  858,  858,  858, 1945,
2247      1948,  843,  860,  860,  860,  862,  862,  862, 1950, 1951,
2248       857,  865,  865,  865,  858,  866,  866,  866, 1952, 1948,
2249       860, 1953,  862,  868,  868,  868,  871,  871,  871,  865,
2250       872,  872,  872,  866,  874,  874,  874,  876,  876,  876,
2251       853,  868, 1959, 1961,  871,  884,  884,  884,  872,  911,
2252       911,  911,  874, 1411, 1979,  876,  876, 1983,  860,  901,
2253       901,  901, 1980,  884, 1956, 1965,  911,  912,  912,  912,
2254      1956,  912, 1991,  901,  912,  913,  913,  913, 1965, 1987,
2255
2256       868,  914,  914,  914,  874,  915,  915,  915, 2013,  915,
2257      1984, 1983,  915,  913,  918,  918,  918, 1979,  914,  920,
2258       920,  920, 1997,  920, 1991, 1980,  920,  884,  923,  923,
2259       923, 1410,  918,  924,  924,  924, 1987,  924, 1992, 1409,
2260       924,  929,  929,  929, 1984,  923,  925,  925,  925,  913,
2261       925, 1408, 2013,  925,  932,  932,  932, 1988, 1998,  929,
2262       918,  933,  933,  933, 1997,  933, 2007, 2014,  933, 2008,
2263      1992,  932,  934,  934,  934,  935,  935,  935,  939,  939,
2264       939,  941,  941,  941,  945,  945,  945, 1407,  929,  934,
2265       946,  946,  946,  935, 1988, 2007,  939, 2005, 2008,  941,
2266
2267      1998,  945,  947,  947,  947, 2017, 2006,  946,  948,  948,
2268       948, 2014,  949,  949,  949,  950,  950,  950, 2011, 2017,
2269       947,  935,  951,  951,  951,  948,  955,  955,  955,  941,
2270       949, 2005,  950,  946,  952,  952,  952, 2012,  952,  951,
2271      2006,  952, 1406,  955,  956,  956,  956, 2011,  957,  957,
2272       957,  958,  958,  958,  959,  959,  959,  960,  960,  960,
2273      2009,  956, 2010, 1405,  947,  957, 2012, 1394,  958, 2009,
2274       949, 2010,  959, 1393, 2015,  960, 1392,  964,  964,  964,
2275       965,  965,  965, 1391,  951, 2016,  967,  967,  967, 2018,
2276       967, 1390,  957,  967,  964,  970,  970,  970,  965,  970,
2277
2278      2018, 1389,  970, 2015,  974,  974,  974,  975,  975,  975,
2279       956,  987,  987,  987, 2016,  959, 1388,  958,  974,  960,
2280       964, 1387,  977,  977,  977,  975,  977, 1381,  987,  977,
2281       981,  981,  981,  965,  981, 1380, 1379,  981,  984,  984,
2282       984,  985,  985,  985,  988,  988,  988, 1378,  988, 1377,
2283      1376,  988,  991,  991,  991, 1375,  984, 1374, 1373,  985,
2284       993,  993,  993,  994,  994,  994,  997,  997,  997,  975,
2285       991, 1005, 1005, 1005, 1017, 1017, 1017,  993, 1018, 1018,
2286      1018,  994, 1372, 1366,  997, 1024, 1024, 1024, 1017, 1005,
2287      1363, 1361, 1018, 1359,  985, 1025, 1025, 1025,  991, 1024,
2288
2289       984, 1027, 1027, 1027, 1029, 1029, 1029, 1355, 1354, 1025,
2290      1030, 1030, 1030, 1335,  997, 1027, 1333, 1332, 1029, 1322,
2291      1005, 1031, 1031, 1031, 1030, 1031,  994, 1317, 1031, 1314,
2292       997, 1034, 1034, 1034, 1017, 1035, 1035, 1035, 1313, 1035,
2293      1310, 1296, 1035, 1293, 1292, 1024, 1052, 1052, 1052, 1034,
2294      1040, 1040, 1040, 1042, 1042, 1042, 1291, 1042, 1277, 1276,
2295      1042, 1027, 1275, 1052, 1029, 1046, 1046, 1046, 1040, 1049,
2296      1049, 1049, 1274, 1049, 1273, 1272, 1049, 1053, 1053, 1053,
2297      1271, 1053, 1270, 1046, 1053, 1054, 1054, 1054, 1055, 1055,
2298      1055, 1056, 1056, 1056, 1034, 1057, 1057, 1057, 1040, 1058,
2299
2300      1058, 1058, 1269, 1054, 1268, 1055, 1264, 1263, 1056, 1060,
2301      1060, 1060, 1057, 1061, 1061, 1061, 1260, 1058, 1065, 1065,
2302      1065, 1259, 1046, 1066, 1066, 1066, 1060, 1066, 1257, 1255,
2303      1066, 1061, 1249, 1054, 1247, 1065, 1067, 1067, 1067, 1068,
2304      1068, 1068, 1244, 1068, 1243, 1056, 1068, 1070, 1070, 1070,
2305      1071, 1071, 1071, 1067, 1072, 1072, 1072, 1061, 1072, 1239,
2306      1233, 1072, 1073, 1073, 1073, 1070, 1225, 1071, 1074, 1074,
2307      1074, 1075, 1075, 1075, 1223, 1075, 1222, 1221, 1075, 1214,
2308      1073, 1076, 1076, 1076, 1208, 1074, 1077, 1077, 1077, 1078,
2309      1078, 1078, 1207, 1078, 1206, 1204, 1078, 1202, 1076, 1079,
2310
2311      1079, 1079, 1179, 1077, 1080, 1080, 1080, 1081, 1081, 1081,
2312      1082, 1082, 1082, 1083, 1083, 1083, 1079, 1087, 1087, 1087,
2313      1178, 1080, 1177, 1172, 1081, 1088, 1088, 1088, 1082, 1088,
2314      1171, 1083, 1088, 1170, 1087, 1090, 1090, 1090, 1091, 1091,
2315      1091, 1157, 1092, 1092, 1092, 1094, 1094, 1094, 1095, 1095,
2316      1095, 1155, 1154, 1090, 1153, 1091, 1151, 1150, 1080, 1092,
2317      1147, 1083, 1146, 1094, 1144, 1095, 1096, 1096, 1096, 1097,
2318      1097, 1097, 1082, 1143, 1098, 1098, 1098, 1100, 1100, 1100,
2319      1141, 1100, 1140, 1096, 1100, 1139, 1137, 1097, 1098, 1105,
2320      1105, 1105, 1098, 1094, 1107, 1107, 1107, 1108, 1108, 1108,
2321
2322      1133, 1108, 1092, 1132, 1108, 1131, 1128, 1105, 1125, 1096,
2323      1124, 1107, 1109, 1109, 1109, 1123, 1122, 1097, 1115, 1115,
2324      1115, 1116, 1116, 1116, 1117, 1117, 1117, 1118, 1118, 1118,
2325      1109, 1134, 1134, 1134, 1121, 1115, 1120, 1105, 1116, 1119,
2326      1114, 1117, 1135, 1135, 1135, 1118, 1136, 1136, 1136, 1138,
2327      1138, 1138, 1142, 1142, 1142, 1106, 1145, 1145, 1145, 1148,
2328      1148, 1148, 1149, 1149, 1149, 1104, 1103, 1109, 1099, 1093,
2329      1142, 1089, 1086, 1116, 1145, 1085, 1084, 1148, 1069, 1149,
2330      1064, 1117, 1063, 1062, 1118, 1158, 1158, 1158, 1048, 1158,
2331      1045, 1041, 1158, 1161, 1161, 1161, 1162, 1162, 1162, 1142,
2332
2333      1039, 1163, 1163, 1163, 1038, 1163, 1028, 1161, 1163, 1026,
2334      1023, 1161, 1020, 1162, 1148, 1164, 1164, 1164, 1165, 1165,
2335      1165, 1166, 1166, 1166, 1019, 1166, 1016, 1014, 1166, 1167,
2336      1167, 1167, 1164, 1013, 1012, 1165, 1168, 1168, 1168, 1010,
2337      1168, 1008, 1007, 1168, 1006, 1003, 1167, 1169, 1169, 1169,
2338      1173, 1173, 1173, 1002, 1173,  999,  996, 1173,  992, 1176,
2339      1176, 1176,  990, 1176,  989, 1169, 1176, 1180, 1180, 1180,
2340      1182, 1182, 1182,  986, 1182,  980,  976, 1182, 1185, 1185,
2341      1185,  973, 1187, 1187, 1187, 1180, 1187,  966,  963, 1187,
2342      1190, 1190, 1190, 1169,  962,  961, 1185, 1191, 1191, 1191,
2343
2344       944, 1191,  943,  942, 1191,  940,  938, 1190, 1192, 1192,
2345      1192,  937, 1192,  936,  931, 1192, 1195, 1195, 1195, 1196,
2346      1196, 1196,  928, 1196,  919,  917, 1196, 1197, 1197, 1197,
2347      1198, 1198, 1198, 1195, 1199, 1199, 1199,  916, 1199,  910,
2348       909, 1199,  908,  907, 1197,  906,  905, 1198, 1200, 1200,
2349      1200, 1201, 1201, 1201, 1203, 1203, 1203, 1205, 1205, 1205,
2350       903, 1205,  902,  899, 1205,  898, 1200,  897,  895, 1201,
2351       894, 1203, 1209, 1209, 1209, 1211, 1211, 1211, 1212, 1212,
2352      1212,  892, 1212,  891,  889, 1212, 1213, 1213, 1213,  887,
2353      1209,  886, 1211, 1216, 1216, 1216, 1200, 1203, 1215, 1215,
2354
2355      1215,  885,  883, 1213, 1218, 1218, 1218, 1219, 1219, 1219,
2356      1216, 1201, 1215, 1217, 1217, 1217, 1215, 1217,  882,  881,
2357      1217, 1218, 1220, 1220, 1220, 1219, 1224, 1224, 1224, 1226,
2358      1226, 1226,  880, 1226,  879,  870, 1226,  869, 1213,  864,
2359      1220, 1229, 1229, 1229, 1224, 1234, 1234, 1234, 1235, 1235,
2360      1235,  863, 1235,  861,  847, 1235, 1236, 1236, 1236, 1229,
2361       844, 1218, 1234, 1237, 1237, 1237,  839,  838, 1220,  833,
2362      1238, 1238, 1238, 1236, 1240, 1240, 1240, 1241, 1241, 1241,
2363      1237, 1242, 1242, 1242, 1245, 1245, 1245, 1224, 1238, 1229,
2364      1246, 1246, 1246, 1248, 1248, 1248, 1250, 1250, 1250, 1251,
2365
2366      1251, 1251, 1252, 1252, 1252, 1253, 1253, 1253, 1254, 1254,
2367      1254,  828, 1236, 1256, 1256, 1256, 1258, 1258, 1258, 1261,
2368      1261, 1261, 1265, 1265, 1265,  827, 1237, 1266, 1266, 1266,
2369      1238, 1267, 1267, 1267, 1258, 1267,  826, 1261, 1267,  822,
2370      1265, 1278, 1278, 1278, 1266, 1279, 1279, 1279,  810, 1279,
2371       809,  808, 1279, 1282, 1282, 1282, 1283, 1283, 1283, 1278,
2372      1283,  807,  798, 1283, 1258, 1284, 1284, 1284,  797, 1284,
2373      1282,  792, 1284, 1287, 1287, 1287,  784, 1287,  783,  782,
2374      1287, 1290, 1290, 1290, 1297, 1297, 1297, 1278, 1297,  781,
2375       777, 1297,  772, 1300, 1300, 1300,  767, 1300,  766, 1290,
2376
2377      1300, 1303, 1303, 1303, 1304, 1304, 1304,  765, 1304,  757,
2378       755, 1304, 1305, 1305, 1305,  749, 1305,  740, 1303, 1305,
2379      1308, 1308, 1308, 1309, 1309, 1309, 1311, 1311, 1311, 1312,
2380      1312, 1312, 1290, 1312,  735,  724, 1312,  723, 1308,  722,
2381       721, 1309,  719, 1311, 1318, 1318, 1318,  717, 1318,  716,
2382       715, 1318, 1321, 1321, 1321, 1323, 1323, 1323, 1324, 1324,
2383      1324,  714, 1324,  713,  712, 1324, 1327, 1327, 1327, 1321,
2384      1328, 1328, 1328, 1323, 1330, 1330, 1330, 1331, 1331, 1331,
2385      1308,  711,  709, 1327, 1334, 1334, 1334,  708, 1328, 1337,
2386      1337, 1337, 1330,  706, 1331, 1336, 1336, 1336, 1321, 1340,
2387
2388      1340, 1340, 1334,  705, 1341, 1341, 1341, 1337, 1341,  704,
2389      1323, 1341,  703, 1336, 1344, 1344, 1344, 1345, 1345, 1345,
2390       702,  701, 1327, 1346, 1346, 1346, 1347, 1347, 1347,  700,
2391       695, 1344,  694,  693, 1345,  692, 1330, 1348, 1348, 1348,
2392       689, 1346, 1349, 1349, 1349, 1334, 1350, 1350, 1350,  688,
2393       687, 1336, 1351, 1351, 1351, 1352, 1352, 1352, 1353, 1353,
2394      1353, 1356, 1356, 1356, 1357, 1357, 1357, 1344, 1358, 1358,
2395      1358, 1360, 1360, 1360, 1362, 1362, 1362,  685, 1346, 1345,
2396      1365, 1365, 1365, 1367, 1367, 1367, 1369, 1369, 1369,  681,
2397      1369,  678, 1362, 1369, 1382, 1382, 1382, 1365, 1383, 1383,
2398
2399      1383, 1367, 1383,  677,  674, 1383, 1386, 1386, 1386, 1395,
2400      1395, 1395, 1382, 1395,  673,  672, 1395, 1398, 1398, 1398,
2401      1399, 1399, 1399,  671, 1386, 1401, 1401, 1401,  663, 1402,
2402      1402, 1402,  661, 1402,  658, 1398, 1402,  657, 1399, 1416,
2403      1416, 1416, 1401, 1417, 1417, 1417, 1418, 1418, 1418,  654,
2404       651, 1382, 1423, 1423, 1423,  650, 1416, 1424, 1424, 1424,
2405      1425, 1425, 1425,  649, 1418, 1427, 1427, 1427, 1401, 1423,
2406       646,  639, 1426, 1426, 1426, 1424, 1426, 1425,  638, 1426,
2407       637,  636, 1427, 1429, 1429, 1429, 1430, 1430, 1430, 1431,
2408      1431, 1431, 1432, 1432, 1432, 1423, 1435, 1435, 1435,  627,
2409
2410       622, 1429, 1436, 1436, 1436,  621,  620, 1431,  619, 1418,
2411      1432,  616,  613, 1424, 1437, 1437, 1437,  610,  609, 1436,
2412      1438, 1438, 1438, 1439, 1439, 1439, 1440, 1440, 1440,  608,
2413       603, 1437, 1441, 1441, 1441, 1446, 1446, 1446, 1438, 1449,
2414      1449, 1449, 1450, 1450, 1450,  602, 1450,  601,  600, 1450,
2415      1432, 1431,  597, 1446,  595,  591, 1449, 1462, 1462, 1462,
2416       587,  586, 1437, 1463, 1463, 1463, 1472, 1472, 1472, 1473,
2417      1473, 1473, 1475, 1475, 1475, 1462,  583,  580, 1476, 1476,
2418      1476, 1463, 1476, 1472,  579, 1476,  578, 1473,  577, 1475,
2419      1484, 1484, 1484, 1491, 1491, 1491, 1492, 1492, 1492,  576,
2420
2421      1492,  575,  574, 1492, 1493, 1493, 1493, 1484,  573,  572,
2422      1491,  571,  570, 1462, 1494, 1494, 1494, 1501, 1501, 1501,
2423      1502, 1502, 1502, 1503, 1503, 1503,  569, 1503,  568,  567,
2424      1503,  566, 1494,  565, 1501, 1506, 1506, 1506, 1502, 1507,
2425      1507, 1507,  564, 1507,  563,  562, 1507,  561, 1508, 1508,
2426      1508,  560, 1506, 1509, 1509, 1509, 1511, 1511, 1511, 1512,
2427      1512, 1512,  559,  558, 1501, 1508,  557,  556, 1494,  555,
2428       552, 1509, 1516, 1516, 1516,  551,  550, 1512, 1501, 1517,
2429      1517, 1517,  548, 1517,  547,  546, 1517,  545,  544, 1516,
2430      1518, 1518, 1518, 1519, 1519, 1519, 1525, 1525, 1525, 1526,
2431
2432      1526, 1526,  540, 1526,  538,  537, 1526, 1518, 1540, 1540,
2433      1540, 1519,  536, 1525, 1546, 1546, 1546, 1547, 1547, 1547,
2434       535, 1547,  532,  531, 1547,  530, 1540,  529, 1548, 1548,
2435      1548, 1546, 1548,  528,  527, 1548, 1556, 1556, 1556, 1557,
2436      1557, 1557,  524, 1557,  520,  519, 1557, 1564, 1564, 1564,
2437       518, 1564,  517, 1556, 1564, 1567, 1567, 1567, 1574, 1574,
2438      1574, 1575, 1575, 1575, 1540, 1576, 1576, 1576,  516,  513,
2439      1578, 1578, 1578, 1567, 1578, 1574,  512, 1578, 1575, 1581,
2440      1581, 1581,  511, 1576, 1582, 1582, 1582,  510, 1582,  509,
2441       508, 1582, 1583, 1583, 1583,  505, 1581, 1588, 1588, 1588,
2442
2443       504, 1588,  503,  502, 1588, 1591, 1591, 1591,  500,  497,
2444      1583, 1592, 1592, 1592,  493, 1592,  492, 1567, 1592, 1574,
2445       491, 1575, 1591, 1593, 1593, 1593, 1595, 1595, 1595, 1597,
2446      1597, 1597, 1598, 1598, 1598,  490, 1598,  489,  488, 1598,
2447      1614, 1614, 1614, 1615, 1615, 1615, 1597, 1618, 1618, 1618,
2448       485, 1618,  482,  481, 1618, 1622, 1622, 1622, 1614,  477,
2449      1615, 1624, 1624, 1624,  476, 1624,  475,  474, 1624, 1637,
2450      1637, 1637, 1622, 1644, 1644, 1644, 1645, 1645, 1645, 1655,
2451      1655, 1655, 1651, 1651, 1651,  473, 1615, 1637, 1614,  471,
2452      1644,  468,  467, 1645, 1646, 1646, 1646,  464, 1646, 1651,
2453
2454      1651, 1646, 1652, 1652, 1652,  463, 1652,  462,  461, 1652,
2455      1657, 1657, 1657, 1659, 1659, 1659,  457, 1659,  456,  455,
2456      1659, 1637, 1645, 1666, 1666, 1666, 1675, 1675, 1675, 1676,
2457      1676, 1676, 1677, 1677, 1677, 1644, 1677,  454,  450, 1677,
2458      1666, 1682, 1682, 1682, 1675,  449, 1676, 1683, 1683, 1683,
2459       448, 1683,  447,  446, 1683, 1695, 1695, 1695, 1682, 1702,
2460      1702, 1702, 1703, 1703, 1703, 1705, 1705, 1705, 1706, 1706,
2461      1706,  444, 1675, 1695,  441,  440, 1702,  438,  436, 1703,
2462       433,  432, 1705, 1705,  429, 1706, 1706,  427, 1707, 1707,
2463      1707,  424, 1707,  423,  421, 1707, 1708, 1708, 1708, 1709,
2464
2465      1709, 1709, 1702,  420,  419, 1703, 1707, 1714, 1714, 1714,
2466      1715, 1715, 1715,  418, 1715,  417,  416, 1715, 1724, 1724,
2467      1724, 1725, 1725, 1725, 1714, 1725,  413,  412, 1725, 1732,
2468      1732, 1732,  411, 1733, 1733, 1733, 1724, 1733,  410,  409,
2469      1733, 1736, 1736, 1736,  408,  407, 1732, 1747, 1747, 1747,
2470      1755, 1755, 1755, 1756, 1756, 1756,  406, 1756, 1736,  405,
2471      1756, 1757, 1757, 1757,  402, 1747,  401, 1755, 1758, 1758,
2472      1758,  400, 1759, 1759, 1759,  399, 1759,  398, 1757, 1759,
2473      1724, 1760, 1760, 1760,  392, 1758, 1762, 1762, 1762, 1763,
2474      1763, 1763,  391, 1763,  389,  383, 1763,  379, 1760, 1767,
2475
2476      1767, 1767,  376, 1762, 1762,  375,  371, 1763,  370, 1764,
2477      1764, 1764,  369, 1764,  368,  364, 1764, 1768, 1768, 1768,
2478       358, 1773, 1773, 1773,  354, 1773, 1757, 1764, 1773, 1788,
2479      1788, 1788,  351, 1788,  347,  346, 1788,  345, 1782, 1782,
2480      1782,  344, 1787, 1787, 1787,  340, 1760, 1765, 1765, 1765,
2481      1765, 1765, 1765, 1765, 1765, 1765, 1782,  337, 1765, 1787,
2482      1789, 1789, 1789, 1765, 1765, 1765, 1765, 1765, 1790, 1790,
2483      1790,  331, 1790,  330,  326, 1790,  323, 1789, 1805, 1805,
2484      1805,  318, 1805,  317,  316, 1805, 1808, 1808, 1808, 1765,
2485      1765, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
2486
2487       312,  306, 1766, 1808, 1812, 1812, 1812, 1766, 1766, 1766,
2488      1766, 1766, 1809, 1809, 1809,  302, 1809,  296,  295, 1809,
2489       293, 1812, 1814, 1814, 1814,  292, 1814,  287,  281, 1814,
2490      1829, 1829, 1829, 1766, 1766, 1835, 1835, 1835, 1808, 1835,
2491      1814,  280, 1835, 1838, 1838, 1838,  276, 1838, 1829,  273,
2492      1838,  269, 1853, 1853, 1853,  268, 1812, 1817, 1817, 1817,
2493      1817, 1817, 1817, 1817, 1817, 1817,  267,  265, 1817, 1853,
2494      1854, 1854, 1854, 1817, 1817, 1817, 1817, 1817, 1861, 1861,
2495      1861, 1868, 1868, 1868, 1894, 1894, 1894, 1854, 1894,  261,
2496       258, 1894,  255, 1869, 1869, 1869, 1861, 1861, 1868, 1817,
2497
2498      1817, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
2499      1869,  253, 1818,  249, 1853,  243,  242, 1818, 1818, 1818,
2500      1818, 1818, 1870, 1870, 1870, 1871, 1871, 1871, 1884, 1884,
2501      1884,  241, 1854, 1885, 1885, 1885, 1886, 1886, 1886, 1870,
2502       240,  236, 1871, 1818, 1818, 1884, 1890, 1890, 1890,  230,
2503      1885, 1893, 1893, 1893, 1886, 1895, 1895, 1895,  229, 1896,
2504      1896, 1896,  228, 1896, 1890, 1870, 1896,  224, 1893, 1897,
2505      1897, 1897, 1895, 1898, 1898, 1898,  221, 1898,  216, 1884,
2506      1898, 1900, 1900, 1900, 1885,  214, 1897,  213, 1901, 1901,
2507      1901,  209, 1901,  206, 1890, 1901,  204,  203, 1900, 1906,
2508
2509      1906, 1906, 1907, 1907, 1907, 1908, 1908, 1908, 1912, 1912,
2510      1912,  202, 1912,  198,  192, 1912, 1906,  188,  184, 1907,
2511      1915, 1915, 1915, 1908, 1915,  178,  177, 1915, 1918, 1918,
2512      1918,  173, 1918,  169,  168, 1918, 1922, 1922, 1922,  167,
2513      1922, 1908, 1906, 1922,  161, 1907, 1929, 1929, 1929, 1930,
2514      1930, 1930, 1938, 1938, 1938, 1939, 1939, 1939, 1946, 1946,
2515      1946,  160,  158, 1929,  155,  143, 1930,    0,    0, 1938,
2516         0,    0, 1939,    0,    0, 1946, 1947, 1947, 1947, 1949,
2517      1949, 1949, 1954, 1954, 1954, 1955, 1955, 1955, 1957, 1957,
2518      1957,    0,    0, 1947,    0,    0, 1949,    0,    0, 1954,
2519
2520         0,    0, 1955, 1929,    0, 1957, 1930,    0,    0, 1946,
2521         0, 1958, 1958, 1958, 1938, 1958,    0, 1939, 1958, 1963,
2522      1963, 1963, 1964, 1964, 1964,    0,    0, 1947,    0,    0,
2523      1954,    0,    0, 1955,    0,    0, 1963,    0,    0, 1964,
2524      1966, 1966, 1966,    0, 1966,    0,    0, 1966, 1971, 1971,
2525      1971, 1972, 1972, 1972, 1973, 1973, 1973, 1974, 1974, 1974,
2526      1975, 1975, 1975,    0,    0, 1971,    0,    0, 1972, 1976,
2527      1976, 1976, 1973, 1976, 1974,    0, 1976, 1975,    0, 1963,
2528         0,    0, 1964, 1977, 1977, 1977,    0, 1976, 1978, 1978,
2529      1978, 1971,    0,    0, 1972, 1981, 1981, 1981,    0,    0,
2530
2531      1977,    0, 1982, 1982, 1982, 1978, 1985, 1985, 1985, 1986,
2532      1986, 1986, 1981, 1989, 1989, 1989,    0,    0, 1974, 1982,
2533      1975,    0,    0, 1985,    0,    0, 1986, 1990, 1990, 1990,
2534      1989, 1977, 1993, 1993, 1993,    0, 1978,    0, 1994, 1994,
2535      1994,    0, 1994,    0, 1990, 1994,    0,    0, 1982, 1993,
2536         0, 1981,    0, 1985, 1995, 1995, 1995, 1996, 1996, 1996,
2537         0, 1996,    0,    0, 1996, 1999, 1999, 1999,    0, 1999,
2538         0, 1995, 1999, 1986, 2002, 2002, 2002,    0, 2002,    0,
2539         0, 2002, 2019, 2019, 2019, 2020, 2020, 2020,    0,    0,
2540         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2541
2542      2019,    0,    0, 2020, 2023, 2023, 2023, 2023, 2023, 2023,
2543      2023, 2023, 2023, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2544      2024, 2024, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025,
2545      2025, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
2546      2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2028,
2547      2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2029, 2029,
2548      2029, 2029, 2029, 2029, 2029, 2029, 2029, 2030, 2030, 2030,
2549      2030, 2030, 2030, 2030, 2030, 2030, 2031, 2031, 2031, 2031,
2550      2031, 2031, 2031, 2031, 2031, 2032, 2032, 2032, 2032, 2032,
2551      2032, 2032, 2032, 2032, 2033, 2033, 2033, 2033, 2033, 2033,
2552
2553      2033, 2033, 2033, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2554      2034, 2034, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2555      2035, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
2556      2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2038,
2557      2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2039, 2039,
2558      2039, 2039, 2039, 2039, 2039, 2039, 2039, 2040, 2040, 2040,
2559      2040, 2040, 2040, 2040, 2040, 2040, 2041, 2041, 2041, 2041,
2560      2041, 2041, 2041, 2041, 2041, 2042, 2042, 2042, 2042, 2042,
2561      2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2043, 2043,
2562      2043, 2043, 2043, 2044, 2044, 2044, 2044, 2044, 2044, 2044,
2563
2564      2044, 2044, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
2565      2045, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2566      2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2048,
2567      2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2049, 2049,
2568      2049, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050, 2050,
2569      2050, 2050, 2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051,
2570      2051, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052, 2052,
2571      2052, 2052, 2052, 2052, 2053, 2053, 2053, 2053, 2053, 2053,
2572      2053, 2053, 2053, 2054, 2054, 2054, 2054, 2054, 2054, 2054,
2573      2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
2574
2575      2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
2576      2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2058,
2577      2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059, 2059,
2578      2059, 2059, 2059, 2059, 2059, 2059, 2059, 2060, 2060, 2060,
2579      2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061, 2061,
2580      2061, 2061, 2061, 2061, 2061, 2062, 2062, 2062,    0,    0,
2581         0, 2062, 2063, 2063, 2063,    0,    0,    0, 2063, 2064,
2582      2064, 2064,    0,    0,    0, 2064, 2065, 2065, 2065,    0,
2583         0,    0, 2065, 2066, 2066, 2066,    0,    0,    0, 2066,
2584      2067, 2067, 2067,    0,    0,    0, 2067, 2068, 2068, 2068,
2585
2586         0,    0,    0, 2068, 2069, 2069, 2069,    0,    0,    0,
2587      2069, 2070, 2070, 2070,    0,    0,    0, 2070, 2071, 2071,
2588      2071,    0,    0,    0, 2071, 2072, 2072, 2072,    0,    0,
2589         0, 2072, 2073, 2073, 2073,    0,    0,    0, 2073, 2074,
2590      2074, 2074,    0,    0,    0, 2074, 2075, 2075, 2075,    0,
2591         0,    0, 2075, 2076, 2076, 2076,    0,    0,    0, 2076,
2592      2077, 2077, 2077,    0,    0,    0, 2077, 2078, 2078, 2078,
2593         0,    0,    0, 2078, 2079, 2079, 2079, 2079, 2079, 2079,
2594      2079,    0, 2079, 2080,    0,    0,    0, 2080, 2081,    0,
2595         0,    0, 2081, 2082,    0,    0,    0, 2082, 2083,    0,
2596
2597         0,    0, 2083, 2084,    0,    0,    0, 2084, 2085,    0,
2598         0,    0, 2085, 2086,    0,    0,    0, 2086, 2087,    0,
2599         0,    0, 2087, 2088,    0,    0,    0, 2088, 2089, 2089,
2600      2089,    0,    0,    0, 2089, 2090,    0,    0,    0, 2090,
2601      2091, 2091, 2091,    0,    0,    0, 2091, 2092,    0,    0,
2602         0, 2092, 2093, 2093, 2093,    0,    0,    0, 2093, 2094,
2603         0,    0,    0, 2094, 2095, 2095, 2095,    0,    0,    0,
2604      2095, 2096,    0,    0,    0, 2096, 2097, 2097, 2097,    0,
2605         0,    0, 2097, 2098,    0,    0,    0, 2098, 2099, 2099,
2606      2099,    0,    0,    0, 2099, 2100,    0,    0,    0, 2100,
2607
2608      2101, 2101, 2101,    0,    0,    0, 2101, 2102,    0,    0,
2609         0, 2102, 2103, 2103, 2103,    0,    0,    0, 2103, 2104,
2610         0,    0,    0, 2104, 2105, 2105, 2105, 2105, 2105, 2105,
2611      2105, 2105, 2105, 2106,    0,    0,    0,    0, 2106, 2107,
2612      2107, 2107,    0,    0,    0, 2107, 2108, 2108, 2108, 2108,
2613         0,    0, 2108, 2108, 2109, 2109, 2109,    0,    0,    0,
2614      2109, 2110, 2110, 2110, 2110,    0,    0, 2110, 2110, 2111,
2615      2111, 2111,    0,    0,    0, 2111, 2112, 2112, 2112, 2112,
2616         0,    0, 2112, 2112, 2113, 2113, 2113,    0,    0,    0,
2617      2113, 2114, 2114, 2114, 2114,    0,    0, 2114, 2114, 2115,
2618
2619      2115, 2115,    0,    0,    0, 2115, 2116, 2116, 2116, 2116,
2620         0,    0, 2116, 2116, 2117, 2117, 2117,    0,    0,    0,
2621      2117, 2118, 2118, 2118, 2118,    0,    0, 2118, 2118, 2119,
2622      2119, 2119,    0,    0,    0, 2119, 2120, 2120, 2120, 2120,
2623         0,    0, 2120, 2120, 2121, 2121, 2121,    0,    0,    0,
2624      2121, 2122, 2122, 2122, 2122,    0,    0, 2122, 2122, 2123,
2625      2123, 2123,    0,    0,    0, 2123, 2124, 2124, 2124, 2124,
2626         0,    0, 2124, 2124, 2125, 2125, 2125,    0,    0,    0,
2627      2125, 2126, 2126, 2126, 2126,    0,    0, 2126, 2126, 2127,
2628      2127, 2127, 2127,    0,    0, 2127, 2127, 2128, 2128, 2128,
2629
2630         0,    0,    0, 2128, 2129, 2129, 2129, 2129,    0,    0,
2631      2129, 2129, 2130, 2130, 2130,    0,    0,    0, 2130, 2131,
2632      2131, 2131, 2131,    0,    0, 2131, 2131, 2132, 2132, 2132,
2633         0,    0,    0, 2132, 2133, 2133, 2133, 2133,    0,    0,
2634      2133, 2133, 2134, 2134, 2134, 2134,    0,    0, 2134, 2134,
2635      2135, 2135, 2135,    0,    0,    0, 2135, 2136, 2136, 2136,
2636      2136,    0,    0, 2136, 2136, 2137, 2137, 2137,    0,    0,
2637         0, 2137, 2138, 2138, 2138, 2138,    0,    0, 2138, 2138,
2638      2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2140,
2639         0, 2140,    0,    0, 2140, 2141, 2141, 2141,    0,    0,
2640
2641         0, 2141, 2142, 2142, 2142, 2142,    0,    0, 2142, 2142,
2642      2143, 2143, 2143, 2143,    0, 2143,    0, 2143, 2144, 2144,
2643      2144, 2144,    0,    0, 2144, 2144, 2145, 2145, 2145, 2145,
2644         0, 2145,    0, 2145, 2146, 2146, 2146, 2146,    0,    0,
2645      2146, 2146, 2147, 2147, 2147,    0,    0,    0, 2147, 2148,
2646      2148, 2148, 2148,    0,    0, 2148, 2148, 2149, 2149, 2149,
2647         0,    0,    0, 2149, 2150, 2150, 2150, 2150,    0,    0,
2648      2150, 2150, 2151, 2151, 2151,    0,    0,    0, 2151, 2152,
2649      2152, 2152, 2152,    0,    0, 2152, 2152, 2153, 2153, 2153,
2650         0,    0,    0, 2153, 2154, 2154, 2154, 2154,    0,    0,
2651
2652      2154, 2154, 2155, 2155, 2155,    0,    0,    0, 2155, 2156,
2653      2156, 2156, 2156,    0,    0, 2156, 2156, 2157, 2157, 2157,
2654         0,    0,    0, 2157, 2158, 2158, 2158, 2158,    0,    0,
2655      2158, 2158, 2159, 2159, 2159,    0,    0,    0, 2159, 2160,
2656      2160, 2160, 2160,    0,    0, 2160, 2160, 2161, 2161, 2161,
2657      2161,    0,    0, 2161, 2161, 2162, 2162, 2162,    0,    0,
2658         0, 2162, 2163, 2163, 2163, 2163,    0,    0, 2163, 2163,
2659      2164, 2164, 2164,    0,    0,    0, 2164, 2165, 2165, 2165,
2660      2165,    0,    0, 2165, 2165, 2166, 2166, 2166,    0,    0,
2661         0, 2166, 2167, 2167, 2167, 2167,    0,    0, 2167, 2167,
2662
2663      2168, 2168, 2168, 2168,    0,    0, 2168, 2168, 2169, 2169,
2664      2169,    0,    0,    0, 2169, 2170, 2170, 2170, 2170,    0,
2665         0, 2170, 2170, 2171, 2171, 2171,    0,    0,    0, 2171,
2666      2172, 2172, 2172, 2172,    0,    0, 2172, 2172, 2173, 2173,
2667      2173, 2173, 2173, 2173, 2173, 2173, 2173, 2174, 2174, 2174,
2668      2174, 2174, 2174, 2174, 2174, 2174, 2175, 2175, 2175,    0,
2669         0,    0, 2175, 2176, 2176, 2176, 2176,    0,    0, 2176,
2670      2176, 2177, 2177, 2177, 2177,    0,    0, 2177, 2177, 2178,
2671      2178, 2178,    0,    0,    0, 2178, 2179, 2179, 2179, 2179,
2672         0,    0, 2179, 2179, 2180, 2180, 2180,    0,    0,    0,
2673
2674      2180, 2181, 2181, 2181, 2181,    0,    0, 2181, 2181, 2182,
2675      2182, 2182,    0,    0,    0, 2182, 2183, 2183, 2183, 2183,
2676         0,    0, 2183, 2183, 2184, 2184, 2184,    0,    0,    0,
2677      2184, 2185, 2185, 2185, 2185,    0,    0, 2185, 2185, 2186,
2678      2186, 2186,    0,    0,    0, 2186, 2187, 2187, 2187, 2187,
2679         0,    0, 2187, 2187, 2188, 2188, 2188,    0,    0,    0,
2680      2188, 2189, 2189, 2189, 2189,    0,    0, 2189, 2189, 2190,
2681      2190, 2190, 2190,    0, 2190,    0, 2190, 2191, 2191, 2191,
2682      2191,    0,    0, 2191, 2191, 2192, 2192, 2192, 2192,    0,
2683      2192,    0, 2192, 2193, 2193, 2193, 2193,    0,    0, 2193,
2684
2685      2193, 2194, 2194, 2194, 2194,    0,    0, 2194, 2194, 2195,
2686      2195, 2195,    0,    0,    0, 2195, 2196, 2196, 2196, 2196,
2687         0,    0, 2196, 2196, 2197, 2197, 2197,    0,    0,    0,
2688      2197, 2198, 2198, 2198, 2198,    0,    0, 2198, 2198, 2199,
2689      2199, 2199,    0,    0,    0, 2199, 2200, 2200, 2200, 2200,
2690         0,    0, 2200, 2200, 2201, 2201, 2201, 2201,    0,    0,
2691      2201, 2201, 2202, 2202, 2202,    0,    0,    0, 2202, 2203,
2692      2203, 2203, 2203,    0,    0, 2203, 2203, 2204, 2204, 2204,
2693      2204,    0, 2204,    0, 2204, 2205, 2205, 2205, 2205,    0,
2694         0, 2205, 2205, 2206, 2206, 2206, 2206, 2206, 2206, 2206,
2695
2696      2206, 2206, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
2697      2207, 2208, 2208, 2208,    0,    0,    0, 2208, 2209, 2209,
2698      2209, 2209,    0,    0, 2209, 2209, 2210, 2210, 2210, 2210,
2699         0,    0, 2210, 2210, 2211, 2211, 2211,    0,    0,    0,
2700      2211, 2212, 2212, 2212, 2212,    0,    0, 2212, 2212, 2213,
2701      2213, 2213,    0,    0,    0, 2213, 2214, 2214, 2214, 2214,
2702         0,    0, 2214, 2214, 2215, 2215, 2215,    0,    0,    0,
2703      2215, 2216, 2216, 2216, 2216,    0,    0, 2216, 2216, 2217,
2704      2217, 2217, 2217,    0, 2217,    0, 2217, 2218, 2218, 2218,
2705      2218,    0, 2218,    0, 2218, 2219, 2219, 2219, 2219,    0,
2706
2707         0, 2219, 2219, 2220, 2220, 2220,    0,    0,    0, 2220,
2708      2221, 2221, 2221, 2221,    0,    0, 2221, 2221, 2222, 2222,
2709      2222, 2222,    0,    0, 2222, 2222, 2223, 2223, 2223, 2223,
2710         0, 2223,    0, 2223, 2224, 2224, 2224, 2224,    0,    0,
2711      2224, 2224, 2225, 2225, 2225, 2225,    0,    0, 2225, 2225,
2712      2226, 2226, 2226,    0,    0,    0, 2226, 2227, 2227, 2227,
2713      2227,    0,    0, 2227, 2227, 2228, 2228, 2228, 2228,    0,
2714      2228,    0, 2228, 2229, 2229, 2229, 2229,    0,    0, 2229,
2715      2229, 2230, 2230, 2230, 2230,    0, 2230,    0, 2230, 2231,
2716      2231, 2231, 2231,    0,    0, 2231, 2231, 2232, 2232, 2232,
2717
2718      2232,    0,    0, 2232, 2232, 2233, 2233, 2233,    0,    0,
2719         0, 2233, 2234, 2234, 2234, 2234,    0,    0, 2234, 2234,
2720      2235, 2235, 2235, 2235,    0,    0, 2235, 2235, 2236, 2236,
2721      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2237, 2237, 2237,
2722      2237, 2237, 2237, 2237, 2237, 2237, 2238, 2238, 2238, 2238,
2723         0, 2238,    0, 2238, 2239, 2239, 2239, 2239,    0,    0,
2724      2239, 2239, 2240, 2240, 2240, 2240,    0,    0, 2240, 2240,
2725      2241, 2241, 2241,    0,    0,    0, 2241, 2242, 2242, 2242,
2726      2242,    0,    0, 2242, 2242, 2243, 2243, 2243,    0,    0,
2727         0, 2243, 2244, 2244, 2244, 2244,    0,    0, 2244, 2244,
2728
2729      2245, 2245, 2245, 2245,    0, 2245,    0, 2245, 2246, 2246,
2730      2246, 2246,    0,    0, 2246, 2246, 2247, 2247, 2247, 2247,
2731         0, 2247,    0, 2247, 2248, 2248, 2248, 2248,    0,    0,
2732      2248, 2248, 2249, 2249, 2249,    0,    0,    0, 2249, 2250,
2733      2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2251, 2251,
2734      2251, 2251, 2251, 2251, 2251, 2251, 2251, 2252, 2252, 2252,
2735      2252, 2252, 2252, 2252, 2252, 2252, 2253, 2253, 2253, 2253,
2736      2253, 2253, 2253, 2253, 2253, 2254, 2254, 2254, 2254, 2254,
2737      2254, 2254, 2254, 2254, 2255, 2255, 2255, 2255, 2255, 2255,
2738      2255, 2255, 2255, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2739
2740      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2741      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2742      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2743      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2744      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2745      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2746      2022, 2022, 2022
2747     } ;
2748
2749 /* Table of booleans, true if rule could match eol. */
2750 static yyconst flex_int32_t yy_rule_can_match_eol[352] =
2751     {   0,
2752 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2753     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2754     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 
2755     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2756     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2757     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2758     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2759     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2760     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
2761     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2762     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
2763     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2764     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2765     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2766     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2767     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2768     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
2769     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2770
2771 static yy_state_type yy_last_accepting_state;
2772 static char *yy_last_accepting_cpos;
2773
2774 extern int surf_parse__flex_debug;
2775 int surf_parse__flex_debug = 0;
2776
2777 /* The intent behind this definition is that it'll catch
2778  * any uses of REJECT which flex missed.
2779  */
2780 #define REJECT reject_used_but_not_detected
2781 #define yymore() yymore_used_but_not_detected
2782 #define YY_MORE_ADJ 0
2783 #define YY_RESTORE_YY_MORE_OFFSET
2784 char *surf_parse_text;
2785 /* Validating XML processor for surf/simgrid.dtd.
2786  * Generated 2008/02/03 11:50:45.
2787  *
2788  * This program was generated with the FleXML XML processor generator.
2789  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2790  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2791  * (Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp).
2792  * 
2793  * There are two, intertwined parts to this program, part A and part B.
2794  *
2795  * Part A
2796  * ------
2797  * 
2798  * Some parts, here collectively called "Part A", are found in the 
2799  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2800  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2801  *
2802  * You can redistribute, use, perform, display and/or modify "Part A"
2803  * provided the following two conditions hold:
2804  *
2805  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2806  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2807  *    FITNESS FOR A PARTICULAR PURPOSE.
2808  *
2809  * 2. The program distribution conditions do not in any way affect the
2810  *    distribution conditions of the FleXML system used to generate this
2811  *    file or any version of FleXML derived from that system.
2812  *
2813  * Notice that these are explicit rights granted to you for files
2814  * generated by the FleXML system.  For your rights in connection with
2815  * the FleXML system itself please consult the GNU General Public License.
2816  * 
2817  * Part B
2818  * ------
2819  * 
2820  * The other parts, here collectively called "Part B", and which came 
2821  * from the DTD used by FleXML to generate this program, can be 
2822  * distributed (or not, as the case may be) under the terms of whoever
2823  * wrote them, provided these terms respect and obey the two conditions 
2824  * above under the heading "Part A".
2825  *
2826  * The author of and contributors to FleXML specifically disclaim
2827  * any copyright interest in "Part B", unless "Part B" was written 
2828  * by the author of or contributors to FleXML.
2829  * 
2830  */
2831
2832 /* Version strings. */
2833 const char rcs_surfxml_flexml_skeleton[] =
2834  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2835 const char rcs_surfxml_flexml[] =
2836  "$" "Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp $";
2837
2838 /* ANSI headers. */
2839 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2840 #include <stdio.h>
2841 #include <string.h>
2842 #include <assert.h>
2843 #include <stdarg.h>
2844 #include <ctype.h>
2845      
2846 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2847 # ifndef __STRICT_ANSI__
2848 #  include <io.h>
2849 #  include <process.h>
2850 # endif
2851 #else
2852 # include <unistd.h>
2853 #endif
2854      
2855 #ifndef FLEXML_INDEXSTACKSIZE
2856 #define FLEXML_INDEXSTACKSIZE 1000
2857 #endif
2858
2859 /* Generated definitions. */
2860 #define FLEXML_yylineno
2861 #ifndef FLEXML_BUFFERSTACKSIZE
2862 #define FLEXML_BUFFERSTACKSIZE 1000000
2863 #endif
2864 #define FLEXML_NEED_BUFFERLIT
2865
2866 /* XML processor api. */
2867 /* FleXML-provided data. */
2868 int surfxml_pcdata_ix;
2869 extern char *surfxml_bufferstack;
2870 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2871 AT_surfxml_random_generator AX_surfxml_random_generator;
2872 #define A_surfxml_random_generator AX_surfxml_random_generator
2873 AT_surfxml_prop_id AX_surfxml_prop_id;
2874 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2875 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2876 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2877 AT_surfxml_host_id AX_surfxml_host_id;
2878 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2879 AT_surfxml_set_id AX_surfxml_set_id;
2880 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2881 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2882 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2883 AT_surfxml_host_state AX_surfxml_host_state;
2884 #define A_surfxml_host_state AX_surfxml_host_state
2885 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2886 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2887 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2888 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2889 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2890 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2891 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2892 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2893 AT_surfxml_host_power AX_surfxml_host_power;
2894 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2895 AT_surfxml_router_id AX_surfxml_router_id;
2896 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2897 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2898 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2899 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2900 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2901 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2902 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2903 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2904 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2905 AT_surfxml_trace_file AX_surfxml_trace_file;
2906 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2907 AT_surfxml_route_action AX_surfxml_route_action;
2908 #define A_surfxml_route_action AX_surfxml_route_action
2909 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2910 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2911 AT_surfxml_random_min AX_surfxml_random_min;
2912 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2913 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2914 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2915 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2916 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2917 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2918 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2919 AT_surfxml_argument_value AX_surfxml_argument_value;
2920 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2921 AT_surfxml_link_state AX_surfxml_link_state;
2922 #define A_surfxml_link_state AX_surfxml_link_state
2923 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2924 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2925 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2926 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2927 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2928 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2929 AT_surfxml_random_mean AX_surfxml_random_mean;
2930 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2931 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2932 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2933 AT_surfxml_link_latency AX_surfxml_link_latency;
2934 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2935 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2936 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2937 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2938 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2939 AT_surfxml_random_id AX_surfxml_random_id;
2940 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2941 AT_surfxml_set_radical AX_surfxml_set_radical;
2942 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2943 AT_surfxml_random_max AX_surfxml_random_max;
2944 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2945 AT_surfxml_link_id AX_surfxml_link_id;
2946 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2947 AT_surfxml_process_host AX_surfxml_process_host;
2948 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2949 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2950 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2951 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2952 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2953 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2954 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2955 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2956 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2957 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2958 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2959 AT_surfxml_prop_value AX_surfxml_prop_value;
2960 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2961 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2962 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2963 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2964 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2965 AT_surfxml_set_prefix AX_surfxml_set_prefix;
2966 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
2967 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2968 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2969 AT_surfxml_process_function AX_surfxml_process_function;
2970 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2971 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2972 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2973 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2974 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2975 AT_surfxml_host_availability AX_surfxml_host_availability;
2976 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2977 AT_surfxml_route_src AX_surfxml_route_src;
2978 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2979 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
2980 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
2981 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
2982 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
2983 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
2984 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
2985 AT_surfxml_trace_id AX_surfxml_trace_id;
2986 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
2987 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
2988 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
2989 AT_surfxml_include_file AX_surfxml_include_file;
2990 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
2991 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
2992 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
2993 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
2994 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
2995 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
2996 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
2997 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2998 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2999 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3000 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3001 AT_surfxml_route_dst AX_surfxml_route_dst;
3002 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3003 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3004 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3005 AT_surfxml_platform_version AX_surfxml_platform_version;
3006 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3007
3008 /* XML state. */
3009 #ifdef FLEX_DEBUG
3010 # define ENTER(state)   debug_enter(state,#state)
3011 # define LEAVE          debug_leave()
3012 # define SET(state)     debug_set(state,#state)
3013   static void debug_enter(int, const char*);
3014   static void debug_leave(void);
3015   static void debug_set(int, const char*);
3016 #else
3017 # define ENTER(state)   (yy_push_state(state))
3018 # define LEAVE          (yy_pop_state())
3019 # define SET(state)     BEGIN(state)
3020 #endif
3021
3022 /* Generic actions. */
3023 #define SKIP    /*skip*/
3024 #define SUCCEED        CLEANUP; return 0
3025
3026 #define FAIL    return fail
3027 static int fail(const char*, ...);
3028
3029 enum {flexml_max_err_msg_size = 512};
3030 static char flexml_err_msg[flexml_max_err_msg_size];
3031 const char * surfxml_parse_err_msg()
3032 {
3033     return flexml_err_msg;
3034 }
3035 static void reset_surfxml_parse_err_msg()
3036 {
3037     flexml_err_msg[0] = '\0';
3038 }
3039
3040 /* Cleanup */
3041 static void cleanup(void);
3042 #define CLEANUP  cleanup()
3043
3044 /* Text buffer stack handling. */
3045 char *surfxml_bufferstack = NULL;
3046 static int blimit = FLEXML_BUFFERSTACKSIZE;
3047 static int bnext = 1;
3048
3049 static int *indexstack = NULL;
3050 static int ilimit = FLEXML_INDEXSTACKSIZE;
3051 static int inext = 1;
3052
3053 #define BUFFERSET(P)  (P = bnext)
3054 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3055 #define BUFFERDONE    (BUFFERPUTC('\0'))
3056
3057 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3058
3059 /* after this is called, there are at least 2 slots left in the stack */
3060 static int ck_blimit()
3061 {
3062      if (bnext >= blimit) {
3063          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3064          {
3065              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3066              assert(temp);
3067              surfxml_bufferstack = temp;
3068          }
3069      }
3070      return 0;
3071 }
3072
3073 /* after this is called, there are at least 2 slots left in the stack */
3074 static int ck_ilimit()
3075 {
3076      if (inext >= ilimit) {
3077          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3078          {
3079              int *temp = (int *) realloc(indexstack, ilimit);
3080              assert(temp);
3081              indexstack = temp;
3082          }
3083      }
3084      return 0;
3085 }
3086
3087 #ifdef FLEXML_NEED_BUFFERLIT
3088 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3089 {
3090   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3091   assert(s <= e); BUFFERSET(*pp);
3092   while (++s<e) {
3093     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3094     else BUFFERPUTC(*s);
3095   }
3096   BUFFERDONE;
3097 }
3098 #endif
3099
3100 static void pushbuffer(int p)
3101 {
3102     ck_ilimit();
3103     indexstack[inext++] = p;
3104     indexstack[inext++] = bnext;    
3105 }
3106
3107 static int popbuffer(void)
3108 {
3109     assert(inext >= 2);
3110     bnext = indexstack[--inext];
3111     return indexstack[--inext];
3112 }
3113
3114 /* General internal entities are `unput' back onto the input stream... */
3115 #define ENTITYTEXT(T) \
3116   { char *s = (T), *e = s+strlen(s);\
3117     while (--e >= s) { unput(*e); }}
3118
3119 /* Flex standard options. */
3120 #define YY_NO_INPUT 1
3121 /* Flex user-requested options. */
3122 /* XML character classes (currently restricted to ASCII). */
3123 /* "Common syntactic structures." */
3124 /* "Names and Tokens." */
3125 /* Miscellaneous. */
3126 /* Parser states (flex `exclusive start conditions'):
3127  *
3128  * PROLOG       the XML prolog of the document before <?xml...>
3129  * DOCTYPE      the XML prolog of the document after <?xml...>
3130  * EPILOG       after the root element
3131  * INCOMMENT    inside an XML comment <!--....-->
3132  * INPI         inside an XML PI <?...?>
3133  * VALUE1       inside a '...'-delimited literal
3134  * VALUE2       inside a "..."-delimited literal
3135  * CDATA        inside a <![CDATA[...] ]> section.
3136  * ROOT_<tag>   expect root element <tag>
3137  * AL_<tag>     inside the attribute list for <tag>
3138  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3139  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3140  */
3141
3142 /* State names. */
3143 const char* *surfxml_statenames=NULL;
3144
3145 #define INITIAL 0
3146 #define PROLOG 1
3147 #define DOCTYPE 2
3148 #define EPILOG 3
3149 #define INCOMMENT 4
3150 #define INPI 5
3151 #define VALUE1 6
3152 #define VALUE2 7
3153 #define CDATA 8
3154 #define ROOT_surfxml_platform 9
3155 #define AL_surfxml_platform 10
3156 #define S_surfxml_platform 11
3157 #define S_surfxml_platform_1 12
3158 #define S_surfxml_platform_2 13
3159 #define S_surfxml_platform_3 14
3160 #define S_surfxml_platform_4 15
3161 #define S_surfxml_platform_5 16
3162 #define E_surfxml_platform 17
3163 #define AL_surfxml_include 18
3164 #define E_surfxml_include 19
3165 #define AL_surfxml_trace 20
3166 #define IN_trace 21
3167 #define AL_surfxml_random 22
3168 #define S_surfxml_random 23
3169 #define S_surfxml_random_1 24
3170 #define S_surfxml_random_2 25
3171 #define E_surfxml_random 26
3172 #define AL_surfxml_trace_c_connect 27
3173 #define E_surfxml_trace_c_connect 28
3174 #define AL_surfxml_set 29
3175 #define E_surfxml_set 30
3176 #define AL_surfxml_foreach 31
3177 #define S_surfxml_foreach 32
3178 #define S_surfxml_foreach_1 33
3179 #define E_surfxml_foreach 34
3180 #define AL_surfxml_host 35
3181 #define S_surfxml_host 36
3182 #define S_surfxml_host_1 37
3183 #define S_surfxml_host_2 38
3184 #define E_surfxml_host 39
3185 #define AL_surfxml_prop 40
3186 #define E_surfxml_prop 41
3187 #define AL_surfxml_cluster 42
3188 #define E_surfxml_cluster 43
3189 #define AL_surfxml_router 44
3190 #define E_surfxml_router 45
3191 #define AL_surfxml_link 46
3192 #define S_surfxml_link 47
3193 #define S_surfxml_link_1 48
3194 #define S_surfxml_link_2 49
3195 #define E_surfxml_link 50
3196 #define AL_surfxml_route_c_multi 51
3197 #define S_surfxml_route_c_multi 52
3198 #define S_surfxml_route_c_multi_1 53
3199 #define S_surfxml_route_c_multi_2 54
3200 #define E_surfxml_route_c_multi 55
3201 #define AL_surfxml_route 56
3202 #define S_surfxml_route 57
3203 #define S_surfxml_route_1 58
3204 #define S_surfxml_route_2 59
3205 #define E_surfxml_route 60
3206 #define AL_surfxml_link_c_ctn 61
3207 #define E_surfxml_link_c_ctn 62
3208 #define AL_surfxml_process 63
3209 #define S_surfxml_process 64
3210 #define S_surfxml_process_1 65
3211 #define S_surfxml_process_2 66
3212 #define E_surfxml_process 67
3213 #define AL_surfxml_argument 68
3214 #define E_surfxml_argument 69
3215 #define IMPOSSIBLE 70
3216
3217 #ifndef YY_NO_UNISTD_H
3218 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3219  * down here because we want the user's section 1 to have been scanned first.
3220  * The user has a chance to override it with an option.
3221  */
3222 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3223 #  ifndef __STRICT_ANSI__
3224 #    include <io.h>
3225 #    include <process.h>
3226 #  endif
3227 #else
3228 #  include <unistd.h>
3229 #endif
3230 #endif
3231
3232 #ifndef YY_EXTRA_TYPE
3233 #define YY_EXTRA_TYPE void *
3234 #endif
3235
3236 static int yy_init_globals (void );
3237
3238 /* Macros after this point can all be overridden by user definitions in
3239  * section 1.
3240  */
3241
3242 #ifndef YY_SKIP_YYWRAP
3243 #ifdef __cplusplus
3244 extern "C" int surf_parse_wrap (void );
3245 #else
3246 extern int surf_parse_wrap (void );
3247 #endif
3248 #endif
3249
3250 #ifndef yytext_ptr
3251 static void yy_flex_strncpy (char *,yyconst char *,int );
3252 #endif
3253
3254 #ifdef YY_NEED_STRLEN
3255 static int yy_flex_strlen (yyconst char * );
3256 #endif
3257
3258 #ifndef YY_NO_INPUT
3259
3260 #ifdef __cplusplus
3261 static int yyinput (void );
3262 #else
3263 static int input (void );
3264 #endif
3265
3266 #endif
3267
3268         static int yy_start_stack_ptr = 0;
3269         static int yy_start_stack_depth = 0;
3270         static int *yy_start_stack = NULL;
3271     
3272     static void yy_push_state (int new_state );
3273     
3274     static void yy_pop_state (void );
3275     
3276 /* Amount of stuff to slurp up with each read. */
3277 #ifndef YY_READ_BUF_SIZE
3278 #define YY_READ_BUF_SIZE 8192
3279 #endif
3280
3281 /* Copy whatever the last rule matched to the standard output. */
3282 #ifndef ECHO
3283 /* This used to be an fputs(), but since the string might contain NUL's,
3284  * we now use fwrite().
3285  */
3286 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
3287 #endif
3288
3289 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3290  * is returned in "result".
3291  */
3292 #ifndef YY_INPUT
3293 #define YY_INPUT(buf,result,max_size) \
3294         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3295                 { \
3296                 int c = '*'; \
3297                 size_t n; \
3298                 for ( n = 0; n < max_size && \
3299                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3300                         buf[n] = (char) c; \
3301                 if ( c == '\n' ) \
3302                         buf[n++] = (char) c; \
3303                 if ( c == EOF && ferror( surf_parse_in ) ) \
3304                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3305                 result = n; \
3306                 } \
3307         else \
3308                 { \
3309                 errno=0; \
3310                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3311                         { \
3312                         if( errno != EINTR) \
3313                                 { \
3314                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3315                                 break; \
3316                                 } \
3317                         errno=0; \
3318                         clearerr(surf_parse_in); \
3319                         } \
3320                 }\
3321 \
3322
3323 #endif
3324
3325 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3326  * we don't want an extra ';' after the "return" because that will cause
3327  * some compilers to complain about unreachable statements.
3328  */
3329 #ifndef yyterminate
3330 #define yyterminate() return YY_NULL
3331 #endif
3332
3333 /* Number of entries by which start-condition stack grows. */
3334 #ifndef YY_START_STACK_INCR
3335 #define YY_START_STACK_INCR 25
3336 #endif
3337
3338 /* Report a fatal error. */
3339 #ifndef YY_FATAL_ERROR
3340 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3341 #endif
3342
3343 /* end tables serialization structures and prototypes */
3344
3345 /* Default declaration of generated scanner - a define so the user can
3346  * easily add parameters.
3347  */
3348 #ifndef YY_DECL
3349 #define YY_DECL_IS_OURS 1
3350
3351 extern int surf_parse_lex (void);
3352
3353 #define YY_DECL int surf_parse_lex (void)
3354 #endif /* !YY_DECL */
3355
3356 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3357  * have been set up.
3358  */
3359 #ifndef YY_USER_ACTION
3360 #define YY_USER_ACTION
3361 #endif
3362
3363 /* Code executed at the end of each rule. */
3364 #ifndef YY_BREAK
3365 #define YY_BREAK break;
3366 #endif
3367
3368 #define YY_RULE_SETUP \
3369         YY_USER_ACTION
3370
3371 /** The main scanner function which does all the work.
3372  */
3373 YY_DECL
3374 {
3375         register yy_state_type yy_current_state;
3376         register char *yy_cp, *yy_bp;
3377         register int yy_act;
3378     
3379  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3380  SET(PROLOG);
3381  reset_surfxml_parse_err_msg();
3382  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3383  assert(surfxml_bufferstack);
3384  #ifdef FLEX_DEBUG
3385  {
3386      int i;
3387      for (i = 0; i < blimit; i++) {
3388          surfxml_bufferstack[i] = '\377';
3389      }
3390  }
3391  #endif
3392  surfxml_bufferstack[0] = '\0';
3393  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3394  assert(indexstack);
3395  indexstack[0] = 0;
3396
3397   /* FleXML_init */
3398   bnext = inext = 1;
3399   surfxml_bufferliteral('\0', &bnext, "0.0");
3400   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3401   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3402   surfxml_bufferliteral('\0', &bnext, "1.0");
3403   surfxml_bufferliteral('\0', &bnext, "1.0");
3404   surfxml_bufferliteral('\0', &bnext, "1.0");
3405   surfxml_bufferliteral('\0', &bnext, "1.0");
3406   surfxml_bufferliteral('\0', &bnext, "-1.0");
3407   surfxml_bufferliteral('\0', &bnext, "0.0");
3408   surfxml_bufferliteral('\0', &bnext, "0.0");
3409   surfxml_bufferliteral('\0', &bnext, "0.0");
3410   surfxml_bufferliteral('\0', &bnext, "0.0");
3411   surfxml_bufferliteral('\0', &bnext, "0.0");
3412   surfxml_bufferliteral('\0', &bnext, "-1.0");
3413   surfxml_bufferliteral('\0', &bnext, "-1.0");
3414   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3415   surfxml_statenames[PROLOG] = NULL;
3416   surfxml_statenames[DOCTYPE] = NULL;
3417   surfxml_statenames[EPILOG] = NULL;
3418   surfxml_statenames[INCOMMENT] = NULL;
3419   surfxml_statenames[INPI] = NULL;
3420   surfxml_statenames[VALUE1] = NULL;
3421   surfxml_statenames[VALUE2] = NULL;
3422   surfxml_statenames[CDATA] = NULL;
3423   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3424   surfxml_statenames[AL_surfxml_platform] = NULL;
3425   surfxml_statenames[S_surfxml_platform] = "platform";
3426   surfxml_statenames[S_surfxml_platform_1] = "platform";
3427   surfxml_statenames[S_surfxml_platform_2] = "platform";
3428   surfxml_statenames[S_surfxml_platform_3] = "platform";
3429   surfxml_statenames[S_surfxml_platform_4] = "platform";
3430   surfxml_statenames[S_surfxml_platform_5] = "platform";
3431   surfxml_statenames[E_surfxml_platform] = "platform";
3432   surfxml_statenames[AL_surfxml_include] = NULL;
3433   surfxml_statenames[E_surfxml_include] = "include";
3434   surfxml_statenames[AL_surfxml_trace] = NULL;
3435   surfxml_statenames[IN_trace] = "trace";
3436   surfxml_statenames[AL_surfxml_random] = NULL;
3437   surfxml_statenames[S_surfxml_random] = "random";
3438   surfxml_statenames[S_surfxml_random_1] = "random";
3439   surfxml_statenames[S_surfxml_random_2] = "random";
3440   surfxml_statenames[E_surfxml_random] = "random";
3441   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3442   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3443   surfxml_statenames[AL_surfxml_set] = NULL;
3444   surfxml_statenames[E_surfxml_set] = "set";
3445   surfxml_statenames[AL_surfxml_foreach] = NULL;
3446   surfxml_statenames[S_surfxml_foreach] = "foreach";
3447   surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3448   surfxml_statenames[E_surfxml_foreach] = "foreach";
3449   surfxml_statenames[AL_surfxml_host] = NULL;
3450   surfxml_statenames[S_surfxml_host] = "host";
3451   surfxml_statenames[S_surfxml_host_1] = "host";
3452   surfxml_statenames[S_surfxml_host_2] = "host";
3453   surfxml_statenames[E_surfxml_host] = "host";
3454   surfxml_statenames[AL_surfxml_prop] = NULL;
3455   surfxml_statenames[E_surfxml_prop] = "prop";
3456   surfxml_statenames[AL_surfxml_cluster] = NULL;
3457   surfxml_statenames[E_surfxml_cluster] = "cluster";
3458   surfxml_statenames[AL_surfxml_router] = NULL;
3459   surfxml_statenames[E_surfxml_router] = "router";
3460   surfxml_statenames[AL_surfxml_link] = NULL;
3461   surfxml_statenames[S_surfxml_link] = "link";
3462   surfxml_statenames[S_surfxml_link_1] = "link";
3463   surfxml_statenames[S_surfxml_link_2] = "link";
3464   surfxml_statenames[E_surfxml_link] = "link";
3465   surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3466   surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3467   surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3468   surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3469   surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3470   surfxml_statenames[AL_surfxml_route] = NULL;
3471   surfxml_statenames[S_surfxml_route] = "route";
3472   surfxml_statenames[S_surfxml_route_1] = "route";
3473   surfxml_statenames[S_surfxml_route_2] = "route";
3474   surfxml_statenames[E_surfxml_route] = "route";
3475   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3476   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3477   surfxml_statenames[AL_surfxml_process] = NULL;
3478   surfxml_statenames[S_surfxml_process] = "process";
3479   surfxml_statenames[S_surfxml_process_1] = "process";
3480   surfxml_statenames[S_surfxml_process_2] = "process";
3481   surfxml_statenames[E_surfxml_process] = "process";
3482   surfxml_statenames[AL_surfxml_argument] = NULL;
3483   surfxml_statenames[E_surfxml_argument] = "argument";
3484   }
3485
3486  /* COMMENTS and PIs: handled uniformly for efficiency. */
3487
3488         if ( !(yy_init) )
3489                 {
3490                 (yy_init) = 1;
3491
3492 #ifdef YY_USER_INIT
3493                 YY_USER_INIT;
3494 #endif
3495
3496                 if ( ! (yy_start) )
3497                         (yy_start) = 1; /* first start state */
3498
3499                 if ( ! surf_parse_in )
3500                         surf_parse_in = stdin;
3501
3502                 if ( ! surf_parse_out )
3503                         surf_parse_out = stdout;
3504
3505                 if ( ! YY_CURRENT_BUFFER ) {
3506                         surf_parse_ensure_buffer_stack ();
3507                         YY_CURRENT_BUFFER_LVALUE =
3508                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3509                 }
3510
3511                 surf_parse__load_buffer_state( );
3512                 }
3513
3514         while ( 1 )             /* loops until end-of-file is reached */
3515                 {
3516                 yy_cp = (yy_c_buf_p);
3517
3518                 /* Support of surf_parse_text. */
3519                 *yy_cp = (yy_hold_char);
3520
3521                 /* yy_bp points to the position in yy_ch_buf of the start of
3522                  * the current run.
3523                  */
3524                 yy_bp = yy_cp;
3525
3526                 yy_current_state = (yy_start);
3527 yy_match:
3528                 do
3529                         {
3530                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3531                         if ( yy_accept[yy_current_state] )
3532                                 {
3533                                 (yy_last_accepting_state) = yy_current_state;
3534                                 (yy_last_accepting_cpos) = yy_cp;
3535                                 }
3536                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3537                                 {
3538                                 yy_current_state = (int) yy_def[yy_current_state];
3539                                 if ( yy_current_state >= 2023 )
3540                                         yy_c = yy_meta[(unsigned int) yy_c];
3541                                 }
3542                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3543                         ++yy_cp;
3544                         }
3545                 while ( yy_base[yy_current_state] != 7094 );
3546
3547 yy_find_action:
3548                 yy_act = yy_accept[yy_current_state];
3549                 if ( yy_act == 0 )
3550                         { /* have to back up */
3551                         yy_cp = (yy_last_accepting_cpos);
3552                         yy_current_state = (yy_last_accepting_state);
3553                         yy_act = yy_accept[yy_current_state];
3554                         }
3555
3556                 YY_DO_BEFORE_ACTION;
3557
3558                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3559                         {
3560                         int yyl;
3561                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3562