Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
95bd4eda21b8a14b5696c373bd088c8f7969a4da
[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 353
383 #define YY_END_OF_BUFFER 354
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[2047] =
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,  354,  352,   15,   10,   10,   15,   15,  332,
409        10,  332,    5,    6,    5,    8,    9,    8,  348,  340,
410       341,  349,  346,  349,  347,  351,  340,  341,  351,  352,
411        26,   10,   26,   26,   26,   24,   26,   26,   30,   10,
412        30,   30,  352,  352,   30,   37,   10,   37,   37,   37,
413        35,   37,   41,   10,   41,   52,   10,   52,   52,   52,
414
415        50,   52,   52,   52,  349,  348,   74,   10,   74,   74,
416        74,   72,   74,   74,   74,   74,   78,   10,   78,  352,
417        78,   99,   10,   99,   99,   99,   97,   99,   99,   99,
418        99,  103,   10,  103,  116,   10,  116,  116,  116,  114,
419       116,  116,  116,  116,  120,   10,  120,  127,   10,  127,
420       127,  127,  125,  127,  352,  352,  131,   10,  131,  158,
421        10,  158,  158,  158,  156,  158,  158,  158,  158,  158,
422       162,   10,  162,  162,  171,   10,  171,  171,  171,  169,
423       171,  171,  175,   10,  175,  198,   10,  198,  198,  198,
424       196,  198,  198,  198,  198,  198,  198,  202,   10,  202,
425
426       209,   10,  209,  209,  209,  207,  209,  213,   10,  213,
427       238,   10,  238,  238,  238,  236,  238,  238,  238,  238,
428       242,   10,  242,  242,  261,   10,  261,  261,  261,  259,
429       261,  261,  261,  352,  265,   10,  265,  265,  288,   10,
430       288,  288,  288,  286,  288,  288,  288,  288,  292,   10,
431       292,  292,  299,   10,  299,  299,  299,  297,  299,  303,
432        10,  303,  316,   10,  316,  316,  316,  314,  316,  316,
433       316,  316,  320,   10,  320,  352,  320,  327,   10,  327,
434       327,  327,  325,  327,  331,   10,  331,   10,    0,    2,
435         2,    0,    4,    7,  343,  342,    0,    0,    0,    0,
436
437         0,    0,    0,   25,   27,   27,   27,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440        36,   38,   38,    0,   51,   53,   53,   53,   53,    0,
441         0,    0,   73,   75,   75,   75,   75,   75,   75,   75,
442         0,    0,   98,  100,  100,  100,  100,  100,    0,  115,
443       117,  117,  117,  117,  117,    0,  126,  128,  128,    0,
444       157,  159,  159,  159,  159,  159,  159,  159,    0,  170,
445       172,  172,  172,    0,  197,  199,  199,  199,  199,  199,
446       199,  199,  199,  199,    0,  208,  210,  210,    0,  237,
447
448       239,  239,  239,  239,  239,  239,    0,  260,  262,  262,
449       262,  262,  262,    0,    0,  287,  289,  289,  289,  289,
450       289,    0,  298,  300,  300,    0,  315,  317,  317,  317,
451       317,  317,    0,    0,  326,  328,  328,    0,    0,    0,
452         0,    0,    3,    0,    0,    0,    0,    0,    0,    0,
453       350,    0,   27,   27,    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,    0,
456         0,   38,    0,    0,   53,    0,    0,   53,    0,    0,
457         0,  345,   75,    0,    0,   75,   75,   75,   75,    0,
458
459         0,    0,  100,  100,  100,  100,    0,    0,    0,    0,
460       117,  117,  117,    0,    0,  128,    0,    0,  159,    0,
461         0,  159,  159,  159,  159,    0,    0,    0,    0,  172,
462         0,    0,  199,    0,    0,    0,    0,  199,  199,  199,
463       199,  199,    0,    0,    0,    0,    0,    0,  239,    0,
464         0,  239,  239,  239,    0,    0,  262,  262,  262,  262,
465         0,    0,    0,  289,  289,  289,  289,    0,    0,    0,
466         0,    0,    0,  317,  317,  317,  317,    0,    0,    0,
467       328,    0,    0,    0,   14,    1,    0,    0,  338,    0,
468         0,    0,  335,  334,    0,    0,   27,   27,    0,    0,
469
470        29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
471         0,    0,  105,    0,    0,    0,    0,    0,    0,    0,
472       104,    0,    0,    0,    0,    0,    0,   38,    0,    0,
473        40,    0,   53,    0,   45,   44,   53,    0,    0,    0,
474        55,    0,   75,    0,   59,   58,    0,    0,   75,    0,
475         0,   75,    0,    0,   77,    0,    0,  100,  100,  100,
476       100,    0,    0,  102,    0,    0,  107,  106,  117,  117,
477       117,    0,    0,  119,    0,  128,    0,    0,  130,    0,
478       159,    0,  135,  134,  159,  159,  159,  159,    0,    0,
479       161,    0,    0,  166,  165,  172,    0,    0,  174,    0,
480
481       199,  199,    0,  189,  188,    0,  179,  178,    0,    0,
482       199,  199,  199,  199,    0,    0,  201,    0,    0,  206,
483       205,    0,    0,  212,    0,  239,    0,  217,  216,  239,
484       239,  239,    0,    0,  241,    0,  262,    0,    0,    0,
485         0,  262,    0,    0,    0,  264,    0,  289,    0,    0,
486       289,    0,    0,    0,    0,  291,    0,    0,  296,  295,
487         0,    0,  302,    0,  317,  317,  317,  317,    0,    0,
488       319,    0,    0,  328,    0,    0,  330,    0,    0,    0,
489       339,  333,    0,    0,    0,   27,   27,    0,    0,    0,
490         0,  133,    0,  215,    0,    0,  163,    0,    0,  105,
491
492         0,    0,    0,  132,  214,    0,    0,  104,    0,    0,
493         0,    0,    0,    0,    0,    0,    0,    0,    0,   53,
494         0,    0,   75,    0,   63,   62,    0,    0,    0,   61,
495        60,   75,    0,  164,  100,  100,    0,    0,  100,    0,
496       117,  117,  117,    0,  128,    0,  159,  159,  159,  159,
497       159,    0,  172,    0,  199,  199,    0,  191,  190,  199,
498       199,  199,  199,    0,    0,  239,  239,  239,  239,    0,
499       262,    0,  248,  247,    0,  246,  245,  262,  214,    0,
500       289,    0,  271,  270,  289,    0,  269,  268,    0,    0,
501       317,    0,    0,  317,  317,    0,    0,  328,    0,    0,
502
503         0,    0,   12,    0,  336,  337,    0,   27,   27,    0,
504         0,    0,    0,  133,    0,  215,    0,    0,    0,  163,
505         0,  267,   43,    0,    0,  132,  214,    0,  267,   42,
506         0,  266,    0,  266,   42,    0,   34,   33,    0,    0,
507        47,   46,   53,    0,    0,   75,    0,   65,   64,   75,
508         0,  164,  100,  100,    0,    0,    0,  100,    0,  117,
509       117,  117,    0,  118,  128,    0,  159,  159,  159,    0,
510         0,    0,    0,  159,    0,    0,    0,    0,    0,    0,
511       199,    0,    0,  199,  199,  199,    0,    0,  239,  239,
512       239,    0,    0,  239,    0,  262,  262,    0,    0,  289,
513
514       289,    0,    0,  317,    0,  307,  306,  317,  317,    0,
515         0,    0,    0,    0,    0,    0,    0,   11,    0,   27,
516        27,   27,    0,    0,    0,    0,    0,    0,    0,    0,
517        57,  267,    0,  204,   43,    0,    0,    0,   56,  203,
518        42,    0,  266,    0,    0,    0,    0,   53,    0,    0,
519        75,   75,    0,  100,  100,    0,    0,    0,    0,    0,
520         0,    0,    0,  100,    0,    0,    0,  117,    0,    0,
521         0,    0,    0,  159,  159,  159,    0,  137,  136,    0,
522         0,    0,  159,    0,  160,    0,  168,  167,    0,  173,
523         0,  193,  192,    0,    0,    0,  187,  186,    0,    0,
524
525       199,    0,    0,    0,    0,  239,  239,  239,    0,    0,
526         0,  239,    0,  240,    0,    0,  262,    0,    0,    0,
527         0,  289,    0,    0,  317,  317,  317,    0,    0,    0,
528       324,  323,    0,    0,    0,    0,    0,    0,    0,   27,
529        27,    0,    0,  177,  122,   32,    0,    0,  305,   57,
530         0,  204,    0,  176,  121,   56,  203,  304,    0,   31,
531         0,    0,   53,    0,    0,   54,   75,   75,    0,  100,
532         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
533       100,    0,    0,  109,  108,    0,    0,    0,  111,  110,
534         0,  124,  123,    0,  159,  159,  159,    0,    0,  159,
535
536         0,  195,  194,    0,  181,  180,    0,    0,    0,  183,
537       182,    0,    0,  239,    0,    0,  239,  239,    0,    0,
538       239,    0,    0,    0,  262,    0,    0,    0,    0,    0,
539       289,    0,  290,    0,  317,  317,  317,    0,    0,    0,
540         0,    0,    0,   17,    0,   19,   18,   27,   27,    0,
541       321,  177,  122,   32,  293,   16,  305,    0,    0,  176,
542       121,  304,    0,   31,    0,    0,   53,  344,   75,   75,
543         0,   76,  100,    0,    0,    0,    0,    0,    0,    0,
544         0,    0,    0,    0,    0,    0,    0,    0,  113,  112,
545         0,  159,  159,  159,    0,    0,    0,    0,  159,    0,
546
547       185,  184,    0,    0,  211,  239,    0,  223,  222,  239,
548       239,    0,    0,    0,    0,  239,    0,    0,    0,    0,
549       262,  294,    0,    0,    0,    0,    0,  289,    0,    0,
550         0,  317,  317,    0,  322,    0,    0,    0,    0,   17,
551        27,   27,    0,  321,  293,   16,    0,    0,    0,    0,
552         0,   39,   53,    0,    0,   75,  100,    0,    0,    0,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554        90,   89,    0,    0,  129,  159,  159,  159,    0,  143,
555         0,  142,  159,    0,  200,    0,    0,  239,  239,  239,
556         0,  227,    0,  226,  239,    0,    0,    0,    0,    0,
557
558         0,    0,    0,  294,    0,    0,    0,    0,    0,    0,
559         0,  289,    0,    0,  309,  308,    0,    0,  317,    0,
560       318,  322,    0,    0,    0,    0,    0,    0,   27,    0,
561        28,    0,    0,    0,    0,   53,    0,    0,    0,   75,
562       100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
563         0,    0,    0,    0,  159,  159,  159,  145,  144,    0,
564         0,    0,  219,  218,  239,  239,  239,  229,  228,    0,
565         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
566         0,    0,    0,    0,    0,    0,    0,  289,  289,    0,
567       301,    0,  313,  312,    0,    0,    0,  329,    0,    0,
568
569         0,    0,   21,   20,    0,    0,  244,    0,  243,    0,
570         0,    0,    0,    0,    0,    0,   75,  100,    0,    0,
571         0,    0,    0,    0,    0,   88,    0,    0,    0,   87,
572         0,  159,  159,  159,    0,  147,  146,  239,  239,  239,
573         0,  231,  230,    0,    0,    0,    0,    0,    0,    0,
574         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
575       289,  289,    0,  311,  310,    0,    0,    0,    0,   23,
576        22,  244,    0,  243,    0,    0,   49,   48,    0,    0,
577         0,    0,   75,    0,    0,    0,    0,    0,    0,    0,
578         0,    0,    0,    0,    0,    0,    0,    0,  159,  159,
579
580       159,  239,    0,    0,  239,    0,    0,    0,    0,    0,
581         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
582         0,    0,  289,  289,    0,    0,    0,    0,   80,   79,
583         0,    0,    0,    0,    0,    0,    0,   96,   95,   92,
584        94,   91,   93,    0,    0,   86,    0,    0,   85,    0,
585         0,  139,  138,  159,  159,  159,  159,  239,    0,  225,
586       224,  239,    0,    0,    0,    0,    0,    0,  258,    0,
587       257,    0,    0,  263,    0,    0,    0,    0,    0,    0,
588         0,    0,  289,    0,    0,  289,    0,    0,    0,    0,
589         0,    0,   80,   79,    0,    0,    0,    0,    0,   67,
590
591        66,    0,    0,    0,    0,    0,  159,  159,  159,  159,
592         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
593       256,  255,    0,    0,    0,    0,    0,    0,    0,  275,
594       274,  289,    0,  273,  272,  289,    0,    0,    0,    0,
595         0,    0,    0,   71,    0,   70,    0,   84,    0,   83,
596         0,  101,  159,  159,  159,  159,    0,  221,  220,    0,
597         0,    0,    0,    0,  252,    0,    0,  251,    0,    0,
598       283,    0,    0,  282,  289,  289,    0,    0,    0,   12,
599         0,   12,    0,    0,    0,    0,    0,  159,  159,  159,
600       159,    0,    0,    0,    0,  254,  250,  253,  249,  285,
601
602       281,  284,  280,  289,  289,    0,    0,    0,    0,    0,
603         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
604       159,    0,    0,    0,    0,    0,    0,  289,  289,    0,
605         0,   69,   68,   82,   81,    0,  141,  140,    0,  151,
606       150,    0,  149,  148,  159,    0,  155,  154,    0,    0,
607         0,    0,  289,  289,    0,   11,  159,    0,    0,    0,
608         0,  289,  289,    0,  159,    0,    0,    0,    0,  289,
609       289,    0,  159,    0,    0,    0,    0,  289,  289,    0,
610         0,    0,    0,  233,    0,  232,  289,  289,    0,    0,
611       153,  152,  235,  234,  289,  289,    0,  289,  289,    0,
612
613       289,  289,    0,    0,  289,  289,    0,    0,  289,  289,
614         0,    0,  289,  289,    0,    0,    0,    0,    0,    0,
615         0,    0,    0,  279,  278,    0,  277,  276,    0,    0,
616         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
617         0,    0,    0,    0,   13,    0
618     } ;
619
620 static yyconst flex_int32_t yy_ec[256] =
621     {   0,
622         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
623         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
624         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
625         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
626         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
627        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
628        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
629        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
630        28,   37,   38,   39,   28,   40,   41,   28,   42,   28,
631        43,    1,   44,    1,   45,    1,   46,   47,   48,   49,
632
633        50,   51,   52,   53,   54,   28,   55,   56,   57,   58,
634        59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
635        69,   28,    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         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
642         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
643
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,    1,    1,    1,    1,    1,
648         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
649         1,    1,    1,    1,    1
650     } ;
651
652 static yyconst flex_int32_t yy_meta[70] =
653     {   0,
654         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
655         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
656         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
657         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
658         5,    5,    1,    1,    5,    9,    9,    9,    9,    9,
659         9,    5,    5,    5,    5,    5,    5,    5,    5,    5,
660         5,    5,    5,    5,    5,    5,    5,    5,    5
661     } ;
662
663 static yyconst flex_int16_t yy_base[2280] =
664     {   0,
665         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
666        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
667       105,  173,   75,   78,   83,  125,  128,  132,  135,  138,
668       193,  196,  200,  203,  206,  224,  242,  293,  262,  265,
669       344,  404,  271,  273,  464,  527,  269,  316,  320,  323,
670       364,  367,  371,  374,  590,  654,  424,  427,  718,  781,
671       431,  434,  844,  907,  484,  487,  491,  494,  497,  547,
672       970, 1033,  550,  554,  557,  560,  610,  613,  617,  621,
673      1096, 1162,  674,  677, 1228,    0,  681,  685, 1297, 1351,
674       738,  741, 1405, 1468,  745,  748,  751,  801,  804,  808,
675
676       811,  814, 1531, 1594,  864,  867,  871,  874,  877,  927,
677       930,  934, 1657, 1720,  937,  940,  990,  993,  997, 1000,
678      1003, 1053, 1783, 1837, 1056, 1060, 1891, 1954, 1063, 1066,
679      1116, 1119, 1123, 1126, 1129, 1182, 2017, 2083, 1185, 1189,
680         0,    0, 5073, 7140, 7140,   95,  100,   29,   41, 7140,
681       155,   51, 7140, 7140, 5056, 7140, 7140, 5045, 7140, 5058,
682      5058,  580, 7140, 7140, 7140, 7140, 5055, 5042, 5000,  210,
683      7140,  158, 5021,    0,  142, 7140, 4989, 4978, 7140,  162,
684      2145, 2205,  160, 5021,  176, 7140,  165, 5006,    0,  149,
685      7140, 4970, 7140,  230,  378, 7140,  326, 4995,    0,  208,
686
687      7140, 4956, 4957, 4947,  379, 4945, 7140,  329, 4968,    0,
688       214, 7140, 4929, 4915,  238, 4899, 7140,  377,   11,   31,
689      4949, 7140,  399, 4939,    0,  435, 7140, 4881, 4882, 4883,
690      4853, 7140,  457,  441, 7140,  520, 4894,    0,  436, 7140,
691      4854, 4837, 4851, 4829, 7140,  640,  498, 7140,  644, 4869,
692         0,  499, 7140, 4826,  513, 4822, 7140,  647, 4861, 7140,
693       703, 4848,    0,  562, 7140, 4800,   34, 4819, 4804, 4785,
694      7140,  708,  177, 4836, 7140,  711, 4812,    0,  568, 7140,
695      4782, 4783, 7140,  771,  696, 7140,  834, 4804,    0,  601,
696      7140,  211, 4773, 4775,   93, 4773, 4740, 7140,  894,  755,
697
698      7140,  897, 4773,    0,  632, 7140, 4740, 7140,  900,  818,
699      7140,  957, 4765,    0,  665, 7140, 4737, 4733, 4734,   80,
700      7140,  960,  360, 4760, 7140,  963, 4748,    0,  695, 7140,
701      4715, 4699,   26,  304, 7140, 1149,  330, 4748, 7140, 1152,
702      4736,    0,  885, 7140, 4706, 4690, 4693, 4683, 7140, 1155,
703       499, 4731, 7140, 1192, 4722,    0,  948, 7140, 4691, 7140,
704      1195, 1005, 7140, 1206, 4712,    0, 1004, 7140, 4660, 4664,
705      4665, 4650, 7140, 1209, 1100, 4700, 4695, 7140, 1215, 4684,
706         0, 1007, 7140, 4647, 7140, 1218, 1068, 1221,  429, 4624,
707      7140, 4677, 4666, 7140, 7140, 7140, 1306,  283, 4616, 4611,
708
709      4609, 4652, 4608, 7140,    0, 4599, 4599, 4589, 4579, 4584,
710      4573, 4570, 4561, 4554,    4,  166, 4556, 4543, 4544, 4540,
711      4538, 4534,  404, 4537, 4523,   38,  467, 4522,  711, 4517,
712      7140,    0, 4518, 4519, 7140,    0, 4515, 1320, 4498,  533,
713      4494, 4529, 7140,    0, 4481, 1323, 4470, 4490, 4470, 4478,
714      4458,   89, 7140,    0, 4460, 4467, 4456, 4453, 4434, 7140,
715         0, 1326, 4446, 4439, 4436, 4422, 7140,    0, 4420, 4430,
716      7140,    0, 4433, 1329, 4411, 4395, 4395, 4414, 4392, 7140,
717         0, 1373, 4387, 4381, 7140,    0, 4394, 1377, 1380, 4374,
718      4361, 4377, 4376, 4365, 4367, 7140,    0, 1383, 4351, 7140,
719
720         0, 4350, 1425, 4343, 4355, 4348, 4333, 7140,    0, 4313,
721      4311, 4322, 4312, 4313, 4297, 7140,    0, 4292, 4286, 4289,
722      4299, 4277, 7140,    0, 1428, 4281, 7140,    0, 4274, 4268,
723      4273, 4271, 4256, 4252, 7140,    0, 4253, 4261, 4285, 4291,
724       744, 4241, 7140, 1321,    0, 4237, 4235, 4259, 4258, 4204,
725      7140, 4215, 4190, 4194, 1431, 1434, 4192, 4178, 4175, 4173,
726      4186, 4168, 4172, 4137, 4137, 4123, 4122, 4139, 4116, 4117,
727      4112, 4109, 4108, 4096, 4096, 4097, 4083, 4072, 4088, 4065,
728      4083, 4074, 1437, 1489, 4073, 1494, 1497, 4058, 4075, 1551,
729      1556, 7140, 4042, 1559, 1514, 1562, 4021, 1565, 4032, 1619,
730
731      1627, 4012, 4011, 4001, 4008, 4004, 1622, 1630, 1677, 1583,
732      4000, 3995, 3993, 1682, 1695, 3994, 1685, 1740, 3984, 1691,
733      1642, 3986, 3986, 3980, 3961, 1745, 1748, 1751, 1710, 3959,
734      1755, 1808,  530, 1811, 1814, 1857, 1860, 1869, 3962, 3959,
735      3944, 3920, 1911, 1920, 1914, 1880, 1917, 1923, 3921, 1926,
736      1975, 3911, 3894, 3890, 1983, 1986, 3899, 1989, 1992, 3894,
737      3892, 2039, 2046, 3888, 1997, 3895, 2043, 2049, 2052, 2061,
738      2072, 2104, 2110, 3885, 3866, 3868, 3852, 2113, 2116, 3856,
739      3838, 2119, 2138, 3882, 7140, 7140,  315, 3829, 7140, 3867,
740      3865, 3808, 7140, 7140, 3806, 3804, 3809, 3798, 2141, 2149,
741
742      7140, 2168, 3795, 3795, 3806, 3791, 3782, 3781, 3767,  261,
743      3781, 3764, 1386, 3771, 3754, 3763, 3747, 3755, 3759, 3736,
744      1460, 3751,  384, 3733, 3736, 3727, 3737, 2144, 2172, 2177,
745      7140, 2182, 2209, 2216, 7140, 7140, 2229, 3757, 2232, 2235,
746      7140, 2240, 3718, 2268, 7140, 7140, 2243, 2276, 2287, 2290,
747      2293, 3727, 2301, 2308, 7140, 2311,  432, 3720, 3719, 2314,
748      3717, 2320, 2323, 7140, 2332, 2335, 7140, 7140, 3712, 3716,
749      3702, 2343, 2346, 7140, 2351, 3699, 2354, 2357, 7140, 2377,
750      3692, 2380, 7140, 7140, 3684, 3686, 3681, 3692, 2388, 2391,
751      7140, 2396, 2400, 7140, 7140, 3685, 2410, 2415, 7140, 2418,
752
753      3654, 3633, 2422, 7140, 7140, 2438, 7140, 7140, 2430, 2448,
754      3615, 3622, 3622, 3610, 2458, 2461, 7140, 2464, 2467, 7140,
755      7140, 2483, 2486, 7140, 2489, 3596, 2492, 7140, 7140, 3603,
756      3595, 3597, 2508, 2511, 7140, 2514, 3586, 2517, 2521, 2536,
757      2539, 3594, 3587, 2547, 2554, 7140, 2557, 3570, 2560, 2567,
758      3580, 2578, 2581, 2589, 2592, 7140, 2596, 2599, 7140, 7140,
759      2611, 2615, 7140, 2621, 3548, 2624, 3566, 3537, 2630, 2634,
760      7140, 2642, 3534, 3544, 2645, 2649, 7140, 2653,  726, 2656,
761      7140, 7140, 3576, 3574, 3529, 3519, 3561, 2664, 3518, 3509,
762      3526, 1463, 3505, 2152, 3505, 3505, 1523, 3494, 3502, 1526,
763
764      3500, 3485, 3501, 1650, 2678, 3476, 3484, 1705, 3482, 3474,
765      3473, 3451, 3465, 3463, 2668, 2686, 2694, 2700, 2704, 3459,
766      3485, 2713, 3455, 2718, 7140, 7140, 2727, 2732, 2745, 7140,
767      7140, 3450, 2740, 1769, 3446, 3431, 2753, 2760, 3443, 2771,
768      3418, 3432, 3409, 2774, 3422, 2777, 3423, 3417, 3401, 2780,
769      2783, 2801, 2804, 2809, 2812, 2822, 2830, 7140, 7140, 2840,
770      2843, 2847, 2851, 2854, 2869, 3407, 3412, 3397, 2873, 2876,
771      3396, 2879, 7140, 7140, 2895, 7140, 7140, 3388, 2904, 2910,
772      3385, 2919, 7140, 7140, 3378, 2932, 7140, 7140, 2940, 2943,
773      3385, 2946, 2949, 3373, 3380, 2964, 3367, 2967, 2973,  181,
774
775      3402, 2976, 7140, 3401, 7140, 7140, 3360, 3348,  518, 2979,
776      3354, 3351, 3351, 1774, 3349, 1777, 3340, 3301, 3296, 1829,
777      3300, 2985, 3003, 3306, 3306, 1832, 1875, 3296, 3006, 3011,
778      3288, 3021, 3295, 3029, 3032, 2988, 7140, 7140, 3037, 3047,
779      7140, 7140, 3278, 3291, 3056, 3264, 3060, 7140, 7140, 3260,
780      3068, 1945, 3261, 3259, 3071, 1113, 1472, 3257, 3083, 3090,
781      3093, 3096, 3114, 7140, 3117, 3120, 3262, 3256, 3241, 3126,
782      3135, 3144, 3148, 3251, 3156, 3165, 3168, 3176, 3179, 3183,
783      3191, 3197, 3200, 3209, 3215, 3218, 3221, 3227, 3251, 3224,
784      3240, 3236, 3240, 3233, 3248, 3254, 3257, 3235, 3260, 3263,
785
786      3284, 3287, 3292, 3222, 3295, 7140, 7140, 3225, 3214, 3311,
787      3225, 3314, 3318, 3332, 1052,  632,  568, 7140, 3212, 3336,
788      3339, 3343, 3346, 3214, 3208, 3216, 3204, 3189, 3186, 3182,
789      1948, 2010, 3179, 3014, 3361, 3187, 3171, 3179, 3365, 3368,
790      3371, 3164, 3374, 3169, 3165, 3166, 3377, 3160, 3185, 3380,
791      3146, 3143, 3383, 3132, 3388, 3150, 3166, 3153, 3138, 3125,
792      3142, 3140, 3126, 3107, 3392, 3411, 3414, 3425, 3429, 3432,
793      3443, 3447, 3455, 3101, 3091, 3091, 3461, 7140, 7140, 3470,
794      3107, 3100, 3078, 3478, 7140, 3481, 7140, 7140, 3489, 7140,
795      3493, 7140, 7140, 3502, 3508, 3516, 7140, 7140, 3524, 3527,
796
797      3535, 3538, 3542, 3556, 3559, 3067, 3562, 3081, 3565, 3090,
798      3079, 3059, 3580, 7140, 3583, 3586, 3594, 3047, 3606, 3601,
799      3621, 3612, 3615, 3630, 3052, 3051, 3053, 3634, 3047, 3637,
800      7140, 7140, 3649,  751, 1330,  565, 3047, 3653, 3656, 3664,
801      3671, 3678, 3037, 3407, 3682, 3685, 3032, 3032, 3689, 3692,
802      3019, 3698, 3023, 3701, 3704, 3707, 3710, 3713, 3016, 3716,
803      3020, 3721, 3024, 3024, 3724, 7140, 3003, 3015, 3727, 2993,
804      3730, 3748, 3032, 3018, 3007, 3003, 3021, 2995, 2989, 2980,
805      3756, 3735, 3759, 7140, 7140, 3770, 3775, 3784, 7140, 7140,
806      3792, 7140, 7140, 3800, 2964, 2961, 2944,  793,  794, 2946,
807
808      3803, 7140, 7140, 3812, 7140, 7140, 3820, 3823, 3831, 7140,
809      7140, 3839, 3842, 2947, 3845, 3848, 2944, 2925,  806,  857,
810      2917, 3863,  358,  361, 3871, 2914, 3874, 3877,  594,  658,
811      3885, 3889, 7140, 3893, 3896, 2914, 2905, 3903, 2897, 3914,
812      3908,  738,  671, 3918, 3923, 7140, 7140, 3933, 3936, 3942,
813      3945, 3956, 3961, 3965, 3971, 3974, 3977, 2903, 2899, 3980,
814      3983, 3987, 2900, 3990, 2896, 3993, 2876, 7140, 3999, 2873,
815      4002, 7140, 2887, 4005,  485,  802, 2897, 2901, 2883, 2879,
816      2872, 2843, 2837, 2834, 4013, 4017, 4025, 4031, 7140, 7140,
817      4039, 2763, 2752, 2716, 2713, 2733,    1,  112,  232, 4044,
818
819      7140, 7140, 4052, 4058, 7140, 4061, 4064, 7140, 7140,  236,
820       384,  424,  500,  555,  673,  646,  728,  912,  769,  919,
821      4072, 4079, 4083,  802,  985,  820,  994, 4086, 4091, 4094,
822      4098, 4106,  822, 4112, 4115, 4118, 4124,  874,  978, 4131,
823      4137, 4143, 4148, 4151, 4155, 4161,  819,  828,  829,  847,
824      4167, 7140,  866, 4170, 4174,  892,  903,  933,  956,  984,
825       993, 1017, 1020, 1041, 1045, 1051, 1044, 1052, 1054, 4188,
826      7140, 7140, 4196, 4199, 7140, 1028, 1046, 1037, 1118, 7140,
827      1129, 7140, 4202, 4205, 7140, 4208, 4211, 1091, 1087, 1092,
828      1155, 7140, 1169, 7140, 4220, 1164, 1163, 1176, 1178, 1176,
829
830      1189, 4226, 4229, 4238, 4244, 1200, 1189, 1287, 1311, 1305,
831      1318, 4247, 4253, 4256, 7140, 7140, 4265, 4268, 4276, 4279,
832      7140, 4283, 4286, 1347, 1401, 1384, 4289, 4309, 4300, 4318,
833      7140, 1292, 1297, 1295, 1323, 4321, 4324, 1421, 1477, 1332,
834      1344, 1359, 1364, 1362, 1367, 1420, 1415, 1426, 1447, 1434,
835      1430, 1460, 1496, 4332, 1438, 1460, 1467, 7140, 7140, 4339,
836      4342, 4351, 7140, 7140, 1467, 1506, 1503, 7140, 7140, 4359,
837      4362, 1533, 1533, 1537, 1542, 1543, 1547, 4370, 1585, 1586,
838      4378, 1551, 1551, 1555, 1556, 1571, 1580, 4381, 4384, 4389,
839      7140, 4393, 7140, 7140, 4402, 4408, 4416, 7140, 1636, 1597,
840
841      1698, 4420, 7140, 7140, 4428, 4431, 4446, 1587, 4449, 1588,
842      4452, 4455, 1604, 1627, 1646, 1668, 1633, 4463, 1665, 1686,
843      1697, 1715, 1738, 1737, 1725, 7140, 1759, 1780, 1764, 7140,
844      4466, 4470, 1763, 1764, 4474, 7140, 7140, 1763, 4488, 1773,
845      4491, 7140, 7140, 1785, 1788, 1799, 1792, 1817, 1839, 1832,
846      1842, 1839, 1849, 4499, 1848, 1851, 1864, 1870, 1896, 1910,
847      4502, 4506, 4520, 7140, 7140, 1919, 1918, 4528, 4531, 7140,
848      7140, 4509, 1877, 4539, 1889, 4553, 7140, 7140, 1958, 1968,
849      1982, 1976, 4542, 4548, 4566, 2009, 2027, 2030, 2035, 2027,
850      2019, 2061, 2038, 2031, 2062, 4561, 4574, 4580, 2022, 2047,
851
852      2015, 2029, 4588, 4592, 2013, 2069, 2099, 2094, 2099, 2105,
853      2098, 2128, 2097, 2128, 2100, 4600, 2129, 2134, 2128, 2135,
854      2141, 2139, 4608, 4611, 2170, 4614, 4619, 4622, 4633, 4641,
855      2143, 2157, 2149, 2162, 4644, 4648, 4656, 7140, 7140, 7140,
856      7140, 7140, 7140, 2157, 2165, 7140, 2163, 2174, 7140, 4664,
857      4667, 7140, 7140, 2150, 2156, 2165, 2170, 4675, 4679, 7140,
858      7140, 4687, 2198, 2190, 2202, 2204, 2206, 2216, 7140, 2243,
859      7140, 2241, 4693, 7140, 2229, 2223, 2238, 2239, 2232, 2248,
860      4696, 4699, 4707, 4714, 4718, 4727, 2261, 4732, 4735, 4755,
861      4794, 4838, 4745, 4763, 2250, 2270, 2258, 2275, 4767, 7140,
862
863      7140, 2257, 2292, 2270, 2292, 4784, 2251, 2260, 2261, 2265,
864      4788, 4775, 4806, 4814, 2304, 2307, 2336, 2325, 2337, 2355,
865      7140, 7140, 2339, 2342, 2362, 2344, 2347, 2364, 4824, 7140,
866      7140, 4832, 4858, 7140, 7140, 4850, 2365, 4868, 2381, 2387,
867      4904, 4948, 2361, 7140, 2362, 7140, 2349, 7140, 2366, 7140,
868      4876, 7140, 2360, 2357, 2380, 2386, 4881, 7140, 7140, 4889,
869      2410, 2418, 2437, 2440, 7140, 2444, 2446, 7140, 2452, 2466,
870      7140, 2465, 2466, 7140, 4898, 4916, 2480, 2477, 2459, 2476,
871      2513, 2490, 4924, 2487, 2489, 2463, 2465, 4927, 4939, 4968,
872      4971, 2486, 2497, 2510, 2506, 7140, 7140, 7140, 7140, 7140,
873
874      7140, 7140, 7140, 4974, 4979, 4982, 2538, 2525, 2538, 4992,
875      2546, 2544, 2559, 2557, 4997, 4930, 5001, 5005, 5015, 5019,
876      2506, 5027, 5034, 2536, 2556, 2547, 2566, 5045, 5048, 5051,
877      2569, 7140, 7140, 7140, 7140, 5054, 7140, 7140, 5066, 7140,
878      7140, 5074, 7140, 7140, 2554, 5082, 7140, 7140, 2570, 2570,
879      2574, 2574, 5092, 5095, 2600, 7140, 2573, 2599, 2604, 2609,
880      2614, 5098, 5101, 2655, 2597, 2628, 2649, 2642, 2658, 5104,
881      5122, 2679, 5125, 2659, 2680, 2665, 2691, 5128, 5131, 2706,
882      5134, 5157, 2703, 7140, 2702, 7140, 5165, 5168, 2692, 5186,
883      7140, 7140, 7140, 7140, 5194, 5197, 5200, 5203, 5206, 5215,
884
885      5229, 5234, 2725, 2732, 5241, 5248, 2717, 2738, 5252, 5255,
886      2733, 2739, 5259, 5273, 2748, 2778, 5278, 5284, 5300, 5303,
887      2703, 2747, 5311, 7140, 7140, 5320, 7140, 7140, 2781, 2798,
888      2773, 2818, 2880, 2883, 2841, 2867, 2800, 2820, 2875, 2890,
889      2909, 2828, 5328, 5331, 7140, 7140, 5351, 5360, 5369, 5378,
890      5387, 5396, 5405, 5414, 5423, 5432, 5441, 5450, 5459, 5468,
891      5477, 5486, 5495, 5504, 5513, 5522, 5531, 5540, 5549, 5558,
892      5567, 5576, 5585, 5594, 5603, 5612, 5621, 5630, 5639, 5648,
893      5657, 5666, 5675, 5684, 5693, 5700, 5707, 5714, 5721, 5728,
894      5735, 5742, 5749, 5756, 5763, 5770, 5777, 5784, 5791, 5798,
895
896      5805, 5812, 5821, 5826, 5831, 5836, 5841, 5846, 5851, 5856,
897      5861, 5866, 5873, 5878, 5885, 5890, 5897, 5902, 5909, 5914,
898      5921, 5926, 5933, 5938, 5945, 5950, 5957, 5962, 5971, 5977,
899      5984, 5992, 5999, 6007, 6014, 6022, 6029, 6037, 6044, 6052,
900      6059, 6067, 6074, 6082, 6089, 6097, 6104, 6112, 6119, 6127,
901      6135, 6142, 6150, 6157, 6165, 6172, 6180, 6188, 6195, 6203,
902      6210, 6218, 6227, 6233, 6240, 6248, 6256, 6264, 6272, 6280,
903      6287, 6295, 6302, 6310, 6317, 6325, 6332, 6340, 6347, 6355,
904      6362, 6370, 6377, 6385, 6393, 6400, 6408, 6415, 6423, 6430,
905      6438, 6446, 6453, 6461, 6468, 6476, 6485, 6494, 6501, 6509,
906
907      6517, 6524, 6532, 6539, 6547, 6554, 6562, 6569, 6577, 6584,
908      6592, 6599, 6607, 6615, 6623, 6631, 6639, 6647, 6654, 6662,
909      6669, 6677, 6684, 6692, 6700, 6707, 6715, 6723, 6731, 6740,
910      6749, 6756, 6764, 6772, 6779, 6787, 6794, 6802, 6809, 6817,
911      6825, 6833, 6841, 6848, 6856, 6864, 6872, 6880, 6888, 6895,
912      6903, 6911, 6919, 6927, 6935, 6943, 6950, 6958, 6966, 6975,
913      6984, 6992, 7000, 7008, 7015, 7023, 7030, 7038, 7045, 7053,
914      7061, 7069, 7076, 7085, 7094, 7103, 7112, 7121, 7130
915     } ;
916
917 static yyconst flex_int16_t yy_def[2280] =
918     {   0,
919      2047, 2047, 2048, 2048, 2048, 2048, 2049, 2049, 2050, 2050,
920      2051, 2051, 2052, 2052, 2052, 2052, 2053, 2053, 2047, 2047,
921      2054, 2054, 2055, 2055, 2055, 2055, 2047, 2047, 2055, 2055,
922      2047, 2047, 2055, 2055, 2055, 2055, 2056, 2056, 2057, 2057,
923      2058, 2058, 2052, 2052, 2059, 2059, 2060, 2060, 2047, 2047,
924      2060, 2060, 2060, 2060, 2061, 2061, 2062, 2062, 2063, 2063,
925      2064, 2064, 2065, 2065, 2047, 2047, 2047, 2047, 2066, 2066,
926      2067, 2067, 2068, 2068, 2047, 2047, 2068, 2068, 2068, 2068,
927      2069, 2069, 2070, 2070, 2046,   85, 2071, 2071, 2072, 2072,
928      2073, 2073, 2074, 2074, 2075, 2075, 2047, 2047, 2075, 2075,
929
930      2075, 2075, 2076, 2076, 2047, 2047, 2047, 2047, 2077, 2077,
931      2077, 2077, 2078, 2078, 2079, 2079, 2047, 2047, 2079, 2079,
932      2079, 2079, 2080, 2080, 2081, 2081, 2082, 2082, 2083, 2083,
933      2047, 2047, 2083, 2083, 2083, 2083, 2084, 2084, 2085, 2085,
934      2047, 2047, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
935      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
936      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
937      2046, 2046, 2046, 2086, 2046, 2046, 2086, 2086, 2046, 2046,
938      2046, 2046,  181,  182,  182, 2046, 2046, 2046, 2087, 2046,
939      2046, 2087, 2046, 2046, 2046, 2046, 2046, 2046, 2088, 2046,
940
941      2046, 2088, 2088, 2088, 2046, 2046, 2046, 2046, 2046, 2089,
942      2046, 2046, 2089, 2089, 2089, 2089, 2046, 2046,  185,  185,
943       185, 2046, 2046, 2046, 2090, 2046, 2046, 2090, 2090, 2090,
944      2090, 2046, 2046, 2046, 2046, 2046, 2046, 2091, 2046, 2046,
945      2091, 2091, 2091, 2091, 2046, 2046, 2046, 2046, 2046, 2046,
946      2092, 2046, 2046, 2092,  185,  255, 2046, 2046,  185, 2046,
947      2046, 2046, 2093, 2046, 2046, 2093, 2093, 2093, 2093, 2093,
948      2046, 2046,  185,  185, 2046, 2046, 2046, 2094, 2046, 2046,
949      2094, 2094, 2046, 2046, 2046, 2046, 2046, 2046, 2095, 2046,
950      2046, 2095, 2095, 2095, 2095, 2095, 2095, 2046, 2046, 2046,
951
952      2046, 2046, 2046, 2096, 2046, 2046, 2096, 2046, 2046, 2046,
953      2046, 2046, 2046, 2097, 2046, 2046, 2097, 2097, 2097, 2097,
954      2046, 2046,  185,  185, 2046, 2046, 2046, 2098, 2046, 2046,
955      2098, 2098, 2098,  185, 2046, 2046,  185,  185, 2046, 2046,
956      2046, 2099, 2046, 2046, 2099, 2099, 2099, 2099, 2046, 2046,
957       185,  185, 2046, 2046, 2046, 2100, 2046, 2046, 2100, 2046,
958      2046, 2046, 2046, 2046, 2046, 2101, 2046, 2046, 2101, 2101,
959      2101, 2101, 2046, 2046,  185,  375,  185, 2046, 2046, 2046,
960      2102, 2046, 2046, 2102, 2046, 2046, 2046, 2046, 2103, 2046,
961      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
962
963      2046, 2046, 2046, 2046, 2086, 2086, 2086, 2104, 2046, 2046,
964      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
965      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
966      2046, 2087, 2087, 2105, 2046, 2088, 2088, 2088, 2088, 2046,
967      2106, 2046, 2046, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
968      2107, 2046, 2046, 2090, 2090, 2090, 2090, 2090, 2108, 2046,
969      2091, 2091, 2091, 2091, 2091, 2109, 2046, 2092, 2092, 2110,
970      2046, 2093, 2093, 2093, 2093, 2093, 2093, 2093, 2111, 2046,
971      2094, 2094, 2094, 2112, 2046, 2113, 2113, 2113, 2113, 2113,
972      2113, 2113, 2113, 2113, 2114, 2046, 2115, 2115, 2116, 2046,
973
974      2117, 2117, 2117, 2117, 2117, 2117, 2118, 2046, 2119, 2119,
975      2119, 2119, 2119, 2046, 2120, 2046, 2121, 2121, 2121, 2121,
976      2121, 2122, 2046, 2123, 2123, 2124, 2046, 2125, 2125, 2125,
977      2125, 2125, 2126, 2046, 2046, 2127, 2127, 2128, 2129, 2046,
978      2129, 2046, 2046, 2046, 2130, 2046, 2046, 2046, 2046, 2046,
979      2046, 2046, 2131, 2131, 2132, 2132, 2046, 2046, 2046, 2046,
980      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
981      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
982      2046, 2133, 2134, 2134, 2135, 2046, 2046, 2135, 2046, 2136,
983      2136, 2046, 2137, 2046, 2046, 2137, 2137, 2137, 2137, 2138,
984
985      2138, 2046, 2139, 2139, 2139, 2139, 2140, 2140, 2046, 2046,
986      2141, 2141, 2141, 2142, 2142, 2143, 2144, 2144, 2145, 2046,
987      2046, 2145, 2145, 2145, 2145, 2146, 2146, 2046, 2046, 2147,
988      2148, 2148, 2149, 2046, 2046, 2046, 2046, 2149, 2149, 2149,
989      2149, 2149, 2150, 2150, 2046, 2046, 2151, 2151, 2152, 2046,
990      2046, 2152, 2152, 2152, 2153, 2153, 2154, 2154, 2154, 2154,
991      2046, 2155, 2155, 2156, 2156, 2156, 2156, 2157, 2157, 2046,
992      2046, 2158, 2158, 2159, 2159, 2159, 2159, 2160, 2160, 2046,
993      2161, 2162, 2162, 2163, 2046, 2046, 2163, 2046, 2046, 2164,
994      2046, 2046, 2046, 2046, 2046, 2046, 2165, 2165, 2046, 2166,
995
996      2046, 2166, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
997      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
998      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2167, 2046, 2168,
999      2046, 2168, 2169, 2046, 2046, 2046, 2169, 2046, 2046, 2170,
1000      2046, 2170, 2171, 2046, 2046, 2046, 2046, 2046, 2171, 2046,
1001      2046, 2171, 2046, 2172, 2046, 2172, 2046, 2173, 2173, 2173,
1002      2173, 2046, 2174, 2046, 2174, 2046, 2046, 2046, 2175, 2175,
1003      2175, 2046, 2176, 2046, 2176, 2177, 2046, 2178, 2046, 2178,
1004      2179, 2046, 2046, 2046, 2179, 2179, 2179, 2179, 2046, 2180,
1005      2046, 2180, 2046, 2046, 2046, 2181, 2046, 2182, 2046, 2182,
1006
1007      2183, 2183, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1008      2183, 2183, 2183, 2183, 2046, 2184, 2046, 2184, 2046, 2046,
1009      2046, 2046, 2185, 2046, 2185, 2186, 2046, 2046, 2046, 2186,
1010      2186, 2186, 2046, 2187, 2046, 2187, 2188, 2046, 2046, 2046,
1011      2046, 2188, 2046, 2046, 2189, 2046, 2189, 2190, 2046, 2046,
1012      2190, 2046, 2046, 2046, 2191, 2046, 2191, 2046, 2046, 2046,
1013      2046, 2192, 2046, 2192, 2193, 2193, 2193, 2193, 2046, 2194,
1014      2046, 2194, 2046, 2195, 2046, 2196, 2046, 2196, 2197, 2198,
1015      2046, 2046, 2046, 2046, 2046, 2199, 2199, 2200, 2046, 2046,
1016      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1017
1018      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1019      2046, 2046, 2046, 2046, 2046, 2046, 2201, 2046, 2046, 2202,
1020      2046, 2203, 2204, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1021      2046, 2204, 2205, 2046, 2206, 2206, 2046, 2046, 2206, 2207,
1022      2208, 2208, 2208, 2209, 2210, 2211, 2212, 2212, 2212, 2212,
1023      2212, 2213, 2214, 2215, 2216, 2216, 2046, 2046, 2046, 2216,
1024      2216, 2216, 2216, 2217, 2218, 2219, 2219, 2219, 2219, 2220,
1025      2221, 2046, 2046, 2046, 2046, 2046, 2046, 2221, 2046, 2222,
1026      2223, 2046, 2046, 2046, 2223, 2046, 2046, 2046, 2224, 2225,
1027      2226, 2046, 2046, 2226, 2226, 2227, 2046, 2228, 2229, 2230,
1028
1029      2231, 2231, 2046, 2231, 2046, 2046, 2046, 2232, 2232, 2233,
1030      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1031      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1032      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2234, 2046,
1033      2046, 2046, 2235, 2046, 2236, 2237, 2046, 2046, 2046, 2237,
1034      2238, 2046, 2239, 2239, 2046, 2046, 2046, 2239, 2240, 2241,
1035      2241, 2241, 2046, 2046, 2242, 2243, 2244, 2244, 2244, 2046,
1036      2046, 2046, 2046, 2244, 2245, 2046, 2046, 2246, 2046, 2046,
1037      2247, 2046, 2046, 2247, 2247, 2247, 2248, 2249, 2250, 2250,
1038      2250, 2046, 2046, 2250, 2251, 2252, 2252, 2046, 2253, 2254,
1039
1040      2254, 2255, 2256, 2257, 2046, 2046, 2046, 2257, 2257, 2258,
1041      2046, 2046, 2046, 2259, 2260, 2261, 2261, 2046, 2046, 2262,
1042      2262, 2262, 2263, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1043      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1044      2046, 2046, 2046, 2046, 2046, 2046, 2264, 2265, 2046, 2266,
1045      2267, 2267, 2268, 2269, 2269, 2046, 2046, 2046, 2046, 2046,
1046      2046, 2046, 2046, 2269, 2270, 2046, 2046, 2271, 2046, 2046,
1047      2046, 2046, 2272, 2273, 2273, 2273, 2046, 2046, 2046, 2046,
1048      2046, 2046, 2273, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1049      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1050
1051      2247, 2046, 2046, 2248, 2249, 2250, 2250, 2250, 2046, 2046,
1052      2046, 2250, 2046, 2046, 2046, 2046, 2252, 2046, 2253, 2046,
1053      2046, 2254, 2255, 2256, 2257, 2257, 2257, 2258, 2046, 2046,
1054      2046, 2046, 2259, 2260, 2261, 2261, 2046, 2046, 2046, 2262,
1055      2262, 2263, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1056      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1057      2046, 2264, 2265, 2046, 2046, 2046, 2267, 2267, 2268, 2269,
1058      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1059      2269, 2270, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1060      2046, 2046, 2046, 2272, 2273, 2273, 2273, 2046, 2046, 2273,
1061
1062      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1063      2046, 2248, 2249, 2250, 2046, 2046, 2250, 2250, 2046, 2046,
1064      2250, 2046, 2046, 2046, 2252, 2046, 2253, 2046, 2046, 2046,
1065      2254, 2046, 2046, 2256, 2257, 2257, 2257, 2258, 2046, 2259,
1066      2260, 2261, 2261, 2046, 2046, 2046, 2046, 2262, 2262, 2263,
1067      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1068      2046, 2046, 2046, 2046, 2046, 2264, 2265, 2046, 2267, 2267,
1069      2046, 2046, 2269, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1070      2046, 2046, 2046, 2046, 2046, 2046, 2270, 2046, 2046, 2046,
1071      2272, 2273, 2273, 2273, 2046, 2046, 2046, 2046, 2273, 2046,
1072
1073      2046, 2046, 2248, 2046, 2046, 2250, 2046, 2046, 2046, 2250,
1074      2250, 2046, 2046, 2046, 2046, 2250, 2046, 2046, 2046, 2046,
1075      2252, 2046, 2253, 2046, 2046, 2046, 2046, 2254, 2256, 2046,
1076      2046, 2257, 2257, 2258, 2046, 2259, 2260, 2261, 2261, 2046,
1077      2262, 2262, 2263, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1078      2046, 2046, 2265, 2046, 2046, 2267, 2269, 2046, 2046, 2046,
1079      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1080      2046, 2046, 2270, 2046, 2046, 2273, 2273, 2273, 2046, 2046,
1081      2046, 2046, 2273, 2046, 2046, 2046, 2046, 2250, 2250, 2250,
1082      2046, 2046, 2046, 2046, 2250, 2046, 2046, 2046, 2046, 2046,
1083
1084      2046, 2046, 2046, 2046, 2253, 2046, 2046, 2046, 2046, 2046,
1085      2046, 2254, 2256, 2046, 2046, 2046, 2046, 2046, 2257, 2046,
1086      2046, 2046, 2259, 2260, 2261, 2261, 2046, 2046, 2262, 2046,
1087      2046, 2046, 2046, 2046, 2046, 2265, 2046, 2046, 2046, 2267,
1088      2269, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1089      2046, 2046, 2046, 2270, 2273, 2273, 2273, 2046, 2046, 2046,
1090      2046, 2046, 2046, 2046, 2250, 2250, 2250, 2046, 2046, 2046,
1091      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1092      2253, 2046, 2046, 2046, 2046, 2046, 2046, 2254, 2254, 2046,
1093      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2260, 2261,
1094
1095      2261, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1096      2046, 2046, 2046, 2046, 2046, 2046, 2267, 2269, 2046, 2046,
1097      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1098      2270, 2273, 2273, 2273, 2046, 2046, 2046, 2250, 2250, 2250,
1099      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1100      2046, 2046, 2046, 2253, 2046, 2046, 2046, 2046, 2046, 2046,
1101      2254, 2254, 2046, 2046, 2046, 2260, 2261, 2261, 2046, 2046,
1102      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1103      2046, 2046, 2267, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1104      2046, 2046, 2046, 2046, 2046, 2270, 2046, 2046, 2273, 2273,
1105
1106      2273, 2250, 2046, 2046, 2250, 2046, 2046, 2046, 2046, 2046,
1107      2046, 2046, 2046, 2046, 2046, 2253, 2046, 2046, 2046, 2046,
1108      2046, 2046, 2254, 2254, 2260, 2261, 2261, 2261, 2046, 2046,
1109      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1110      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2270,
1111      2046, 2046, 2046, 2273, 2273, 2273, 2273, 2250, 2046, 2046,
1112      2046, 2250, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1113      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1114      2046, 2046, 2254, 2046, 2046, 2254, 2260, 2261, 2261, 2261,
1115      2274, 2275, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1116
1117      2046, 2046, 2046, 2046, 2046, 2270, 2273, 2273, 2273, 2273,
1118      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1119      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1120      2046, 2254, 2046, 2046, 2046, 2254, 2260, 2261, 2276, 2277,
1121      2274, 2275, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1122      2046, 2046, 2273, 2273, 2273, 2273, 2046, 2046, 2046, 2046,
1123      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1124      2046, 2046, 2046, 2046, 2254, 2254, 2260, 2276, 2261, 2278,
1125      2277, 2279, 2261, 2046, 2046, 2046, 2046, 2273, 2273, 2273,
1126      2273, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1127
1128      2046, 2046, 2046, 2254, 2254, 2260, 2278, 2046, 2279, 2261,
1129      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1130      2273, 2046, 2046, 2046, 2046, 2046, 2046, 2254, 2254, 2260,
1131      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1132      2046, 2046, 2046, 2046, 2273, 2046, 2046, 2046, 2046, 2046,
1133      2046, 2046, 2254, 2254, 2260, 2046, 2273, 2046, 2046, 2046,
1134      2046, 2254, 2254, 2260, 2273, 2046, 2046, 2046, 2046, 2254,
1135      2254, 2260, 2273, 2046, 2046, 2046, 2046, 2254, 2254, 2260,
1136      2046, 2046, 2046, 2046, 2046, 2046, 2254, 2254, 2260, 2046,
1137      2046, 2046, 2046, 2046, 2254, 2254, 2260, 2254, 2254, 2260,
1138
1139      2254, 2254, 2260, 2260, 2254, 2254, 2260, 2260, 2254, 2254,
1140      2260, 2260, 2254, 2254, 2260, 2260, 2046, 2046, 2046, 2046,
1141      2260, 2260, 2046, 2046, 2046, 2046, 2046, 2046, 2260, 2260,
1142      2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260,
1143      2260, 2260, 2260, 2260, 2046,    0, 2046, 2046, 2046, 2046,
1144      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1145      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1146      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1147      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1148      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1149
1150      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1151      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1152      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1153      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1154      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1155      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1156      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1157      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1158      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1159      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1160
1161      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1162      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1163      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1164      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1165      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1166      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1167      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1168      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046
1169     } ;
1170
1171 static yyconst flex_int16_t yy_nxt[7210] =
1172     {   0,
1173      2046,  146,  147,  146,  146,  147,  146,  146,  147,  146,
1174       146,  147,  146,  151,  147,  151,  157,  148,  154,  157,
1175       148,  154,  451,  149, 2046,  155,  149, 1481,  155,  152,
1176       151,  147,  151,  389,  158,  160,  161,  158,  160,  161,
1177       162,  163, 2046,  162,  163,  389,  152,  167,  168,  390,
1178       164,  160,  161,  164,  165,  392,  162,  160,  161,  563,
1179       165,  391,  162,  167,  168,  564,  164,  147,  147,  147,
1180       452,  391,  164,  147,  147,  147,  180,  147,  180,  180,
1181       147,  180,  474,  170,  180,  147,  180,  512,  169,  170,
1182       452,  475,  181,  563,  513,  181,  388,  388,  388,  577,
1183
1184       182,  388,  388,  388,  169,  171,  172,  147,  172,  171,
1185       171,  171,  171,  171,  171,  171,  173,  171,  171,  171,
1186      1482,  171,  175,  171,  176,  171,  180,  147,  180,  147,
1187       147,  147,  505,  147,  147,  147,  180,  147,  180,  180,
1188       147,  180,  182,  506,  563,  183,  392,  171,  171,  183,
1189       602,  491,  181,  392,  492,  181,  388,  388,  388,  388,
1190       388,  388,  391,  388,  388,  388,  388,  388,  388,  391,
1191       177, 2046,  178,  171,  172,  147,  172,  171,  171,  171,
1192       171,  171,  171,  171,  173,  171,  171,  171,  479,  171,
1193       175,  171,  176,  171,  147,  147,  147,  147,  147,  147,
1194
1195       685,  180,  147,  180,  180,  147,  180,  180,  147,  180,
1196       184,  565,  392,  184,  392,  171,  171,  182,  392,  426,
1197       182,  427, 1115,  185,  566,  180,  147,  180,  391,  428,
1198       391,  388,  388,  388,  391,  426,  452,  429,  177,  430,
1199       178,  185,  186,  187,  147,  187,  186,  186,  186,  186,
1200       186,  186,  186,  188,  186,  186,  186,  487,  186,  190,
1201       186,  191,  186,  194,  147,  194,  194,  147,  194,  403,
1202       218,  147,  218,  160,  161,  160,  161,  488,  162,  195,
1203       162, 1483,  195,  447,  186,  186,  219,  448,  205, 1489,
1204       205,  449,  192,  186,  187,  147,  187,  186,  186,  186,
1205
1206       186,  186,  186,  186,  188,  186,  186,  186,  896,  186,
1207       190,  186,  191,  186,  206, 2046,  206,  218,  147,  218,
1208       897,  147,  147,  147,  147,  147,  147,  388,  388,  388,
1209       388,  388,  388,  219,  685,  186,  186,  220,  879,  546,
1210       220,  515,  547,  192,  196,  197,  147,  197,  196,  196,
1211       196,  196,  196,  196,  196,  198,  196,  196,  196,  514,
1212       196,  200,  196,  201,  196,  218,  147,  218,  218,  147,
1213       218,  507,  218,  147,  218,  218,  147,  218,  388,  388,
1214       388,  219,  392,  440,  219,  514,  196,  196,  221,  434,
1215       441,  221, 1417, 1418,  202, 1419, 1420,  203,  391,  391,
1216
1217       388,  388,  388,  204,  196,  197,  147,  197,  196,  196,
1218       196,  196,  196,  196,  196,  198,  196,  196,  196,  452,
1219       196,  200,  196,  201,  196,  233,  147,  233,  233,  147,
1220       233,  910,  246,  147,  246,  246,  147,  246,  540,  392,
1221       392,  234, 1490,  897,  234,  392,  196,  196,  247,  573,
1222      1491,  247,  459,  541,  202,  391,  391,  203,  388,  388,
1223       388,  391,  574,  204,  207,  208,  147,  208,  207,  207,
1224       207,  207,  207,  207,  207,  209,  207,  207,  207,  910,
1225       207,  211,  207,  212,  207,  147,  147,  147,  147,  147,
1226       147,  934,  147,  147,  147,  147,  147,  147,  258,  147,
1227
1228       258,  255,  392,  392,  255, 1492,  207,  207,  256,  466,
1229       522,  256,  565, 1458,  259,  213, 1459,  214,  391,  391,
1230       215,  388,  388,  388, 2046,  578,  216,  207,  208,  147,
1231       208,  207,  207,  207,  207,  207,  207,  207,  209,  207,
1232       207,  207,  540,  207,  211,  207,  212,  207,  258,  147,
1233       258,  272,  147,  272,  514,  272,  147,  272,  147,  147,
1234       147,  147,  147,  147,  259,  412,  392,  273,  414,  207,
1235       207,  273,  392, 1121,  220,  589,  801,  220,  213, 1122,
1236       214, 1493,  391,  215, 1003,  802,  397, 1003,  391,  216,
1237       222,  223,  147,  223,  222,  222,  222,  222,  222,  222,
1238
1239       222,  224,  222,  222,  222,  392,  222,  226,  222,  227,
1240       222,  272,  147,  272,  272,  147,  272, 1236,  272,  147,
1241       272,  391,  272,  147,  272,  398, 1343,  273, 1424, 1425,
1242       273,  399,  222,  222,  274,  400,  392,  228,  274,  229,
1243       401,  388,  388,  388,  230,  388,  388,  388,  388,  388,
1244       388, 1003,  391,  231,  222,  223,  147,  223,  222,  222,
1245       222,  222,  222,  222,  222,  224,  222,  222,  222,  392,
1246       222,  226,  222,  227,  222,  284,  147,  284,  284,  147,
1247       284, 1494,  299,  147,  299,  391,  299,  147,  299, 1235,
1248      1003,  285, 1426, 1427,  285, 1495,  222,  222,  300,  392,
1249
1250       392,  228,  300,  229,  388,  388,  388,  484,  230,  388,
1251       388,  388,  388,  388,  388,  391,  391,  231,  235,  236,
1252       147,  236,  235,  235,  235,  235,  235,  235,  235,  237,
1253       235,  235,  235, 1439,  235,  239,  235,  240,  235,  309,
1254       147,  309,  309,  147,  309,  685,  322,  147,  322,  322,
1255       147,  322,  147,  147,  147,  310,  573, 1003,  310,  392,
1256       235,  235,  323,  685, 1000,  323,  495, 1496,  220,  580,
1257       685,  241,  388,  388,  388,  391, 1341,  242,  687,  243,
1258       244,  235,  236,  147,  236,  235,  235,  235,  235,  235,
1259       235,  235,  237,  235,  235,  235, 1438,  235,  239,  235,
1260
1261       240,  235,  147,  147,  147,  322,  147,  322, 1499,  322,
1262       147,  322,  322,  147,  322,  322,  147,  322,  220, 1395,
1263      1397,  323,  392,  235,  235,  323, 1396, 1398,  324,  499,
1264      1460,  324, 1412, 1461,  241,  388,  388,  388,  391, 1413,
1265       242, 1506,  243,  244,  248,  249,  147,  249,  248,  248,
1266       248,  248,  248,  248,  248,  250,  248,  248,  248, 1509,
1267       248,  252,  248,  253,  248,  147,  147,  147,  147,  147,
1268       147, 1519,  147,  147,  147,  147,  147,  147,  336,  147,
1269       336,  334, 1532, 1414,  334, 1533,  248,  248,  334,  392,
1270      1415,  334, 1534, 1003,  337,  388,  388,  388,  388,  388,
1271
1272       388,  388,  388,  388, 1535,  391,  254,  248,  249,  147,
1273       249,  248,  248,  248,  248,  248,  248,  248,  250,  248,
1274       248,  248, 1525,  248,  252,  248,  253,  248,  336,  147,
1275       336,  336,  147,  336, 1536,  336,  147,  336,  350,  147,
1276       350,  350,  147,  350,  337, 1540, 1497,  338, 1498,  248,
1277       248,  338,  392, 1500,  351, 1501, 1541,  351,  388,  388,
1278       388,  388,  388,  388,  388,  388,  388, 1542,  391,  254,
1279       260,  261,  147,  261,  260,  260,  260,  260,  260,  260,
1280       260,  262,  260,  260,  260, 1543,  260,  264,  260,  265,
1281       260,  147,  147,  147,  147,  147,  147, 1003,  350,  147,
1282
1283       350,  350,  147,  350,  350,  147,  350,  334,  392,  392,
1284       334,  392,  260,  260,  351,  266,  526,  351, 1544, 1507,
1285       352, 1508, 1545,  267,  391,  391,  268,  391, 1510,  269,
1286      1511, 1526,  270,  260,  261,  147,  261,  260,  260,  260,
1287       260,  260,  260,  260,  262,  260,  260,  260, 1546,  260,
1288       264,  260,  265,  260,  350,  147,  350,  361,  147,  361,
1289      1547,  361,  147,  361,  374,  147,  374,  374,  147,  374,
1290       352,  685,  392,  362, 1548,  260,  260,  362,  266,  538,
1291       375, 1549, 1550,  375, 1551, 1552,  267, 1234,  391,  268,
1292      1553, 1555,  269, 1556, 1557,  270,  275,  276,  147,  276,
1293
1294       275,  275,  275,  275,  275,  275,  275,  277,  275,  275,
1295       275,  533,  275,  279,  275,  280,  275,  147,  147,  147,
1296       147,  147,  147, 1558,  374,  147,  374,  374,  147,  374,
1297       374,  147,  374,  376, 1156, 1157,  376, 1559,  275,  275,
1298       375, 1565, 1566,  375, 1158,  534,  377, 1567, 1159,  281,
1299       388,  388,  388,  388,  388,  388,  388,  388,  388,  452,
1300      1568,  282,  275,  276,  147,  276,  275,  275,  275,  275,
1301       275,  275,  275,  277,  275,  275,  275, 1569,  275,  279,
1302       275,  280,  275,  374,  147,  374,  386,  147,  386, 1572,
1303       386,  147,  386,  388,  388,  388,  388,  388,  388,  377,
1304
1305      1573, 1574,  387, 1575,  275,  275,  387,  388,  388,  388,
1306       388,  388,  388, 1576, 1577,  281,  388,  388,  388,  388,
1307       388,  388,  388,  388,  388, 1582, 1583,  282,  286,  287,
1308       147,  287,  286,  286,  286,  286,  286,  286,  286,  288,
1309       286,  286,  286,  289,  286,  290,  286,  291,  286,  289,
1310       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
1311       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
1312       286,  286,  289,  289,  292,  289,  289,  289,  289,  289,
1313       289,  293,  289,  294,  289,  289,  289,  295,  289,  296,
1314       297,  289,  289,  289,  289,  289,  289,  301,  302,  147,
1315
1316       302,  301,  301,  301,  301,  301,  301,  301,  303,  301,
1317       301,  301, 1584,  301,  305,  301,  306,  301,  544,  544,
1318       544,  586,  586,  586,  594,  594,  594,  609,  609,  609,
1319       620,  620,  620,  544,  544,  544, 1585,  689,  587,  301,
1320       301,  595, 1586, 1587,  610, 1607, 1608,  621, 1609, 1003,
1321       307,  301,  302,  147,  302,  301,  301,  301,  301,  301,
1322       301,  301,  303,  301,  301,  301,  685,  301,  305,  301,
1323       306,  301, 1610,  545,  628,  628,  628, 1342,  634,  634,
1324       634,  636,  636,  636,  645,  645,  645,  900,  900,  900,
1325      1617,  629, 1618,  301,  301,  635, 1619, 1620,  637, 1621,
1326
1327      1622,  646, 1599, 1003,  307,  311,  312,  147,  312,  311,
1328       311,  311,  311,  311,  311,  311,  313,  311,  311,  311,
1329      1003,  311,  315,  311,  316,  311,  650,  650,  650,  670,
1330       670,  670,  699,  699,  699,  699,  699,  699,  729,  729,
1331       729, 1623, 1601,  651, 1624, 1613,  671,  311,  311, 1625,
1332       701,  317, 1626,  701, 1600, 1627,  731, 1614,  318, 1628,
1333       319,  908,  908,  908, 1014, 1014, 1014,  320,  311,  312,
1334       147,  312,  311,  311,  311,  311,  311,  311,  311,  313,
1335       311,  311,  311, 1629,  311,  315,  311,  316,  311,  702,
1336       729,  729,  729, 1160, 1161,  586,  586,  586,  734,  734,
1337
1338       734, 1615,  735, 1162, 1630,  736, 1632, 1163,  731, 1633,
1339       311,  311,  587, 1616,  317,  744,  744,  744, 1634,  745,
1340      1638,  318,  746,  319, 1020, 1020, 1020,  900,  900,  900,
1341       320,  325,  326,  147,  326,  325,  325,  325,  325,  325,
1342       325,  325,  327,  325,  325,  325,  732,  325,  329,  325,
1343       330,  325,  739,  739,  739, 1639, 1640,  739,  739,  739,
1344       594,  594,  594,  747,  747,  747,  750,  750,  750, 1644,
1345       741, 1645, 1646,  325,  325,  741,  331,  595, 1647,  332,
1346       748, 1648, 1649,  751,  766,  766,  766, 1655,  767, 1656,
1347      1657,  768, 1658,  333,  325,  326,  147,  326,  325,  325,
1348
1349       325,  325,  325,  325,  325,  327,  325,  325,  325, 1659,
1350       325,  329,  325,  330,  325, 1660, 1003,  742, 1650, 1652,
1351       753,  753,  753,  762,  762,  762, 1651, 1653,  753,  753,
1352       753,  762,  762,  762, 1673, 1675,  325,  325,  755,  331,
1353      1679,  764,  332,  782,  782,  782,  755,  783, 1680,  764,
1354       784, 1026, 1026, 1026, 1667,  685,  333,  339,  340,  147,
1355       340,  339,  339,  339,  339,  339,  339,  339,  341,  339,
1356       339,  339,  756,  339,  343,  339,  344,  339,  609,  609,
1357       609, 1666, 1681,  772,  772,  772,  777,  777,  777, 1682,
1358      1683,  765,  620,  620,  620,  610,  772,  772,  772,  339,
1359
1360       339,  774,  345, 1686,  779,  346,  908,  908,  908,  621,
1361       347,  793,  793,  793,  774,  794, 1687, 1003,  795,  348,
1362       339,  340,  147,  340,  339,  339,  339,  339,  339,  339,
1363       339,  341,  339,  339,  339, 1688,  339,  343,  339,  344,
1364       339,  777,  777,  777,  775, 1689,  789,  789,  789,  789,
1365       789,  789,  628,  628,  628, 1668,  797,  797,  797,  779,
1366      1690, 1691,  339,  339,  791,  345, 1692,  791,  346,  629,
1367      1052, 1052, 1052,  347,  799, 1014, 1014, 1014, 1016, 1016,
1368      1016, 1693,  348,  353,  354,  147,  354,  353,  353,  353,
1369       353,  353,  353,  353,  355,  353,  353,  353,  780,  353,
1370
1371       357,  353,  358,  353, 1694, 1695,  792, 1700, 1701,  797,
1372       797,  797,  634,  634,  634,  803,  803,  803, 1702,  804,
1373      1705, 1706,  805, 1707, 1708,  353,  353,  799, 1709,  635,
1374      1020, 1020, 1020, 1026, 1026, 1026,  359,  353,  354,  147,
1375       354,  353,  353,  353,  353,  353,  353,  353,  355,  353,
1376       353,  353, 1710,  353,  357,  353,  358,  353,  636,  636,
1377       636,  806,  806,  806, 1711,  807, 1712, 1713,  808,  800,
1378       809,  809,  809, 1714, 1715,  637, 1027, 1027, 1027,  353,
1379       353,  819,  819,  819, 1717,  820, 1718,  810,  821, 1719,
1380       359,  363,  364,  147,  364,  363,  363,  363,  363,  363,
1381
1382       363,  363,  365,  363,  363,  363, 1720,  363,  367,  363,
1383       368,  363,  815,  815,  815,  645,  645,  645,  822,  822,
1384       822,  815,  815,  815,  822,  822,  822,  650,  650,  650,
1385       817, 1721,  646,  363,  363, 1722,  824, 1003,  685,  817,
1386      1729,  369,  824,  370,  651,  371, 1052, 1052, 1052, 1250,
1387      1250, 1250, 1730,  372,  363,  364,  147,  364,  363,  363,
1388       363,  363,  363,  363,  363,  365,  363,  363,  363, 1726,
1389       363,  367,  363,  368,  363,  818,  827,  827,  827, 1731,
1390       828,  825, 1725,  829,  833,  833,  833,  833,  833,  833,
1391       838,  838,  838,  840,  840,  840,  363,  363,  849,  849,
1392
1393       849, 1732,  835, 1733,  369,  835,  370,  839,  371, 1734,
1394       841, 1132, 1132, 1132, 1740,  850,  372,  378,  379,  147,
1395       379,  378,  378,  378,  378,  378,  378,  378,  380,  378,
1396       378,  378, 1741,  378,  382,  378,  383,  378, 1742,  836,
1397       844,  844,  844, 1743,  852,  852,  852,  844,  844,  844,
1398       854,  854,  854,  854,  854,  854, 1744, 1745,  846,  378,
1399       378,  853,  670,  670,  670,  846, 1746, 1747,  856, 1748,
1400      1749,  856, 1754,  858,  858,  858, 1757,  859, 1758,  671,
1401       860, 1762,  384,  378,  379,  147,  379,  378,  378,  378,
1402       378,  378,  378,  378,  380,  378,  378,  378, 1763,  378,
1403
1404       382,  378,  383,  378,  847,  861,  861,  861, 1755, 1756,
1405       857,  861,  861,  861,  869,  869,  869,  869,  869,  869,
1406       875,  875,  875,  863, 1764,  378,  378, 1765, 1766,  863,
1407      1767, 1768,  871, 1769, 1770,  871, 1771, 1772,  877,  875,
1408       875,  875,  699,  699,  699,  915,  915,  915,  384,  392,
1409       699,  699,  699, 1016, 1016, 1016,  408,  877, 1775, 1776,
1410       701, 1777,  916,  864, 1778,  391, 1779, 1017,  701,  699,
1411       699,  699, 1780,  729,  729,  729, 1795,  872,  729,  729,
1412       729, 1796, 1797,  729,  729,  729, 1798,  701, 1802,  685,
1413       409,  731,  410, 1803, 1804,  411,  731,  412,  413,  878,
1414
1415       414,  731, 1805, 1807,  415, 1808,  416,  417,  418,  392,
1416       918,  918,  918,  888, 1809, 1810,  408,  734,  734,  734,
1417      1787,  735, 1815, 1816,  736,  391, 1817,  919, 1818,  917,
1418      2046, 2046, 2046,  739,  739,  739,  739,  739,  739, 1819,
1419      1820,  739,  739,  739,  747,  747,  747, 2046, 1821, 1822,
1420       409,  741,  419, 1823,  741,  420, 1824,  421,  413,  741,
1421       422,  748, 1825, 1826,  415, 1827,  423,  424,  425,  744,
1422       744,  744, 1828,  745, 1843, 1844,  746,  924,  924,  924,
1423       685,  925, 1845, 1846,  926,  922, 1847,  920,  927,  927,
1424       927,  750,  750,  750,  929,  929,  929, 1848,  930, 1849,
1425
1426      1850,  931,  753,  753,  753,  928, 1853, 1854,  751,  753,
1427       753,  753,  753,  753,  753,  937,  937,  937, 1855, 1837,
1428       755,  762,  762,  762,  762,  762,  762,  755, 1856, 1863,
1429       755, 1864,  938,  762,  762,  762,  766,  766,  766,  764,
1430       767, 1865,  764,  768,  772,  772,  772,  772,  772,  772,
1431      1866,  764,  772,  772,  772,  777,  777,  777,  777,  777,
1432       777, 1867,  774, 1868, 1869,  774, 1870, 1871,  933, 1872,
1433       774, 1873, 1874,  779, 1884, 1885,  779,  940,  777,  777,
1434       777,  782,  782,  782,  685,  783, 1879, 1886,  784,  789,
1435       789,  789,  789,  789,  789, 1879,  779,  789,  789,  789,
1436
1437      1880,  793,  793,  793, 1887,  794, 1882,  791,  795, 1888,
1438       791,  797,  797,  797,  944,  791,  797,  797,  797,  797,
1439       797,  797, 1889,  803,  803,  803, 1877,  804, 1890,  799,
1440       805,  809,  809,  809,  799, 1891, 1892,  799,  946,  806,
1441       806,  806, 1896,  807, 1894, 1897,  808, 1893,  810,  957,
1442       957,  957, 1898,  958, 1899, 1895,  959, 1900,  952,  815,
1443       815,  815,  815,  815,  815,  815,  815,  815,  819,  819,
1444       819, 1901,  820, 1902, 1903,  821,  954,  817, 1003, 1004,
1445       817, 1908, 1879,  817,  822,  822,  822,  822,  822,  822,
1446       822,  822,  822,  827,  827,  827, 1880,  828, 1908,  685,
1447
1448       829, 1911,  824, 1912, 1913,  824, 1914, 1924,  824,  833,
1449       833,  833,  833,  833,  833,  833,  833,  833,  838,  838,
1450       838, 1879,  972,  972,  972, 1925,  973,  835,  964,  974,
1451       835, 1926, 1882,  835, 1927,  839, 1906,  840,  840,  840,
1452       975,  975,  975, 1908,  976, 1931, 1908,  977,  844,  844,
1453       844, 1932, 1933,  965,  841,  844,  844,  844,  844,  844,
1454       844,  849,  849,  849, 1934, 1935,  846, 1945,  982,  982,
1455       982,  970,  983,  846, 1949,  984,  846, 1950,  850,  852,
1456       852,  852,  986,  986,  986, 1951,  987, 1952, 1956,  988,
1457       854,  854,  854,  854,  854,  854,  853,  854,  854,  854,
1458
1459       858,  858,  858, 1957,  859, 1958, 1959,  860,  856, 1960,
1460      1961,  856,  861,  861,  861,  856,  861,  861,  861,  685,
1461      1965,  980,  861,  861,  861,  992,  992,  992, 1966, 1967,
1462       863,  869,  869,  869,  863,  869,  869,  869, 1968, 1969,
1463       863, 1964,  993,  869,  869,  869,  875,  875,  875,  871,
1464       875,  875,  875,  871,  875,  875,  875, 1002, 1002, 1002,
1465       989,  871, 1973, 1974,  877,  699,  699,  699,  877,  915,
1466       915,  915,  877, 1975,  685, 1003, 1004, 1976,  990, 1027,
1467      1027, 1027, 1977,  701, 1983, 1984,  916, 1036, 1036, 1036,
1468      1985, 1037, 1972, 1017, 1038,  729,  729,  729,  685, 1986,
1469
1470       996,  918,  918,  918,  999, 1040, 1040, 1040, 1993, 1041,
1471      1994,  685, 1042,  731,  739,  739,  739, 1980,  919,  924,
1472       924,  924,  685,  925, 1997,  685,  926, 1010,  927,  927,
1473       927, 1989,  741, 1047, 1047, 1047,  685, 1048, 1480, 1479,
1474      1049,  753,  753,  753,  685,  928,  929,  929,  929, 1039,
1475       930,  685,  685,  931,  937,  937,  937,  685,  685,  755,
1476      1045, 1055, 1055, 1055, 2029, 1056,  685,  685, 1057, 1478,
1477      2011,  938,  762,  762,  762, 1063, 1063, 1063,  777,  777,
1478       777, 1070, 1070, 1070, 1072, 1072, 1072, 2007, 1051, 2015,
1479       764, 2012,  685, 1064, 2008, 2016,  779,  685, 1071, 2021,
1480
1481       685, 1073,  789,  789,  789, 1076, 1076, 1076, 2030, 1477,
1482       797,  797,  797, 1079, 1079, 1079, 1476,  685, 1059,  685,
1483       791, 2033, 1077, 2046, 2046, 2046, 1066, 1074,  799, 2022,
1484      1080,  957,  957,  957, 2031,  958, 2043,  685,  959,  685,
1485      2046, 1082, 1082, 1082, 2046, 2046, 2046,  685, 2046, 2046,
1486      2046, 2032, 2046, 2046, 2046,  815,  815,  815, 1083, 1469,
1487       685, 2046, 1468, 2039, 1075, 2046, 2034, 1467, 1078, 2046,
1488       822,  822,  822,  817, 1092, 1092, 1092,  833,  833,  833,
1489       972,  972,  972, 2040,  973, 1081,  685,  974,  824, 2037,
1490      2035, 1093, 1085, 2036,  685,  835,  975,  975,  975,  685,
1491
1492       976, 1466,  685,  977, 1465, 1027, 1027, 1027, 1464,  685,
1493      1084,  844,  844,  844, 2043, 2038, 1087, 1094, 1086, 1098,
1494       982,  982,  982, 2041,  983, 1463, 1462,  984,  685,  846,
1495      1095, 1457, 1088,  986,  986,  986, 1456,  987, 2042, 1453,
1496       988,  854,  854,  854,  861,  861,  861,  992,  992,  992,
1497      1105, 1105, 1105, 1450, 1106, 1449, 1448, 1107, 1447,  856,
1498      1435, 1433,  863, 1432,  993,  869,  869,  869, 1112, 1112,
1499      1112, 1422, 1416, 1099,  875,  875,  875, 1002, 1002, 1002,
1500       699,  699,  699,  871, 1411, 1113, 1132, 1132, 1132, 1036,
1501      1036, 1036,  877, 1037, 1410, 1003, 1038, 1103,  701, 1406,
1502
1503      1133, 1399, 1394, 1102, 1135, 1135, 1135, 1132, 1132, 1132,
1504      1393, 1110, 1141, 1141, 1141, 1252, 1252, 1252, 1136, 1392,
1505      1384, 1133, 1143, 1143, 1143, 1116, 1136, 1383, 1382, 1123,
1506      1143, 1143, 1143, 1141, 1141, 1141, 1144, 1114,  729,  729,
1507       729, 1117, 1381, 1380, 1144, 1379, 1134, 1146, 1040, 1040,
1508      1040, 1378, 1041, 1377, 1373, 1042,  731,  739,  739,  739,
1509      1370, 1047, 1047, 1047, 1369, 1048, 1368, 1140, 1049,  753,
1510       753,  753, 1055, 1055, 1055,  741, 1056, 1367, 1365, 1057,
1511      1363, 1359, 1134, 1358,  762,  762,  762,  755, 1356, 1355,
1512      1140, 1166, 1166, 1166, 2046, 2046, 2046, 1169, 1169, 1169,
1513
1514      1351, 1147,  764, 1344, 1339, 1150, 1337, 1336, 1167, 1335,
1515      1326, 2046, 1321, 1320, 1170, 1063, 1063, 1063, 1171, 1171,
1516      1171,  777,  777,  777, 1319, 1318, 1153, 1070, 1070, 1070,
1517      1314, 1300, 1165, 1064, 1299, 1172, 1177, 1177, 1177,  779,
1518      1178, 1298, 1297, 1179, 1071, 1072, 1072, 1072, 1168, 1180,
1519      1180, 1180, 1296, 1181, 1295, 1281, 1182, 1184, 1184, 1184,
1520      1280, 1279, 1073, 1278, 1277, 1173, 1076, 1076, 1076, 1186,
1521      1186, 1186, 1276, 1187, 1275, 1185, 1188, 1189, 1189, 1189,
1522      1079, 1079, 1079, 1077, 1191, 1191, 1191, 1274, 1192, 1273,
1523      1270, 1193, 1194, 1194, 1194, 1190, 1268, 1080, 1082, 1082,
1524
1525      1082, 1196, 1196, 1196, 1267, 1197, 1264, 1263, 1198, 1195,
1526      1199, 1199, 1199, 1261, 1260, 1083, 2046, 2046, 2046, 1202,
1527      1202, 1202,  815,  815,  815, 1259, 1258, 1200,  822,  822,
1528       822, 1255, 1254, 2046, 1253, 1251, 1203, 1092, 1092, 1092,
1529       817, 1209, 1209, 1209, 1249, 1210,  824, 1248, 1211, 1213,
1530      1213, 1213, 1247, 1246, 1093, 1215, 1215, 1215, 2046, 2046,
1531      2046,  844,  844,  844, 1220, 1220, 1220, 1214, 1245, 1244,
1532      1201, 1243, 1216, 1237, 1229, 2046, 1205, 1227, 1226,  846,
1533      1225, 1221, 1218, 1212, 1204, 2046, 2046, 2046,  854,  854,
1534       854, 1208, 1207,  861,  861,  861, 1105, 1105, 1105, 1206,
1535
1536      1106, 1183, 2046, 1107, 1176, 1175,  856, 1224, 1174, 1219,
1537      1164,  863,  869,  869,  869, 1112, 1112, 1112, 1217, 1230,
1538      1230, 1230, 1155, 1231, 1154, 1152, 1232, 1151, 1222, 1149,
1539       871, 1148, 1113,  875,  875,  875, 1223, 1238, 1238, 1238,
1540      2046, 2046, 2046, 1145, 2046, 2046, 2046,  699,  699,  699,
1541      1142,  877, 1139, 1138, 1239, 1137, 1131, 2046, 1130, 1129,
1542      1228, 2046, 1135, 1135, 1135,  701, 1256, 1256, 1256, 1257,
1543      1257, 1257, 1141, 1141, 1141, 1143, 1143, 1143,  729,  729,
1544       729, 1265, 1265, 1265,  753,  753,  753, 1128, 1233, 1271,
1545      1271, 1271, 1240,  762,  762,  762,  731, 1127, 1126, 1266,
1546
1547      1125, 1241,  755, 1124, 1242, 1120, 1272, 1282, 1352, 1352,
1548      1352,  764, 1166, 1166, 1166, 1283, 1283, 1283, 1119, 1284,
1549      1118, 1003, 1285, 1111, 1109, 1262, 1286, 1286, 1286, 1167,
1550      1169, 1169, 1169, 1288, 1288, 1288, 1108, 1289, 1104, 1269,
1551      1290, 1101, 1100, 1287, 1171, 1171, 1171, 1170, 1291, 1291,
1552      1291, 1097, 1292, 1096, 1091, 1293,  777,  777,  777, 1090,
1553      1089, 1172, 1177, 1177, 1177, 1069, 1178, 1068, 1067, 1179,
1554      1065, 1180, 1180, 1180,  779, 1181, 1062, 1061, 1182, 1184,
1555      1184, 1184, 1186, 1186, 1186, 1060, 1187, 1058, 1054, 1188,
1556      1189, 1189, 1189, 1053, 1191, 1191, 1191, 1185, 1192, 1050,
1557
1558      1046, 1193, 1294, 1194, 1194, 1194, 1044, 1043, 1190, 1301,
1559      1301, 1301, 1035, 1302, 1034, 1033, 1303, 1196, 1196, 1196,
1560      1195, 1197, 1032, 1031, 1198, 1199, 1199, 1199, 1304, 1304,
1561      1304, 1030, 1305, 1029, 1028, 1306, 1307, 1307, 1307, 1202,
1562      1202, 1202, 1200, 1309, 1309, 1309, 1025, 1310, 1024, 1023,
1563      1311, 1022, 1021, 1308, 1019, 1018, 1203,  815,  815,  815,
1564       822,  822,  822, 1315, 1315, 1315, 1209, 1209, 1209, 1015,
1565      1210, 1013, 1012, 1211, 1011,  817, 1009, 1008,  824, 1007,
1566      1316, 1213, 1213, 1213, 1215, 1215, 1215, 1322, 1322, 1322,
1567      1006, 1323, 1005,  998, 1324, 2046, 2046, 2046,  997, 1214,
1568
1569       995, 1216, 1220, 1220, 1220, 1312, 1317,  844,  844,  844,
1570       994,  991, 2046, 2046, 2046, 2046, 1332, 1332, 1332, 1221,
1571      1313, 1327, 1328, 1328, 1328,  846, 1329,  985,  981, 1330,
1572      2046,  861,  861,  861, 1333,  869,  869,  869, 1230, 1230,
1573      1230,  979, 1231,  978,  971, 1232,  969, 1325,  968,  863,
1574       875,  875,  875,  871, 1238, 1238, 1238, 1345, 1345, 1345,
1575       967, 1346,  966,  963, 1347, 2046, 2046, 2046,  877,  962,
1576      1331, 1239, 2046, 2046, 2046,  961,  960, 1334,  956,  699,
1577       699,  699, 2046, 1353, 1353, 1353, 1354, 1354, 1354, 2046,
1578      1357, 1357, 1357, 1250, 1250, 1250, 1338,  701, 1340, 1252,
1579
1580      1252, 1252, 1360, 1360, 1360, 1361, 1361, 1361, 1256, 1256,
1581      1256, 1257, 1257, 1257, 1362, 1362, 1362, 1364, 1364, 1364,
1582       955, 1348,  729,  729,  729, 1265, 1265, 1265, 1371, 1371,
1583      1371, 1271, 1271, 1271,  953, 1349,  762,  762,  762, 1350,
1584       731,  951,  950, 1266,  949,  948, 1372,  947, 1272, 1374,
1585      1374, 1374,  945, 1375,  764,  943, 1376, 1385, 1385, 1385,
1586      1283, 1283, 1283,  942, 1284,  941,  939, 1285,  936,  935,
1587      1366, 1286, 1286, 1286, 1386,  932, 1388, 1388, 1388,  923,
1588      1389,  921, 1387, 1390,  914, 1288, 1288, 1288, 1287, 1289,
1589       913,  912, 1290, 1291, 1291, 1291,  911, 1292,  909,  907,
1590
1591      1293,  777,  777,  777, 1301, 1301, 1301,  906, 1302,  905,
1592       904, 1303,  903, 1304, 1304, 1304,  902, 1305,  901,  779,
1593      1306, 1307, 1307, 1307, 1400, 1400, 1400,  899, 1401,  898,
1594       895, 1402, 1309, 1309, 1309,  894, 1310,  893, 1308, 1311,
1595       815,  815,  815, 1404, 1404, 1404, 1315, 1315, 1315, 1407,
1596      1407, 1407, 1391, 1408,  892,  891, 1409,  890,  817,  889,
1597       887, 1405,  886, 1316, 1322, 1322, 1322,  885, 1323,  884,
1598       883, 1324, 2046, 2046, 2046,  844,  844,  844, 1328, 1328,
1599      1328,  882, 1329,  881,  880, 1330, 2046, 2046, 2046, 2046,
1600      1332, 1332, 1332,  846,  861,  861,  861, 1430, 1430, 1430,
1601
1602      1403,  685,  874, 2046,  869,  869,  869,  873, 1333, 1437,
1603      1437, 1437,  863,  868, 1431,  875,  875,  875, 1421, 1440,
1604      1440, 1440,  871,  867, 1345, 1345, 1345,  685, 1346,  866,
1605      1423, 1347,  865,  877, 2046, 2046, 2046, 2046, 2046, 2046,
1606       851,  848, 1428,  699,  699,  699, 1444, 1444, 1444,  843,
1607       842, 2046,  837,  832, 2046,  831, 1429, 1352, 1352, 1352,
1608       830,  701, 1353, 1353, 1353, 1434, 1354, 1354, 1354,  826,
1609       814, 1436, 1445, 1445, 1445, 1446, 1446, 1446, 1357, 1357,
1610      1357, 1360, 1360, 1360, 1361, 1361, 1361, 1441, 1362, 1362,
1611      1362, 1364, 1364, 1364, 1451, 1451, 1451,  813, 1443, 1442,
1612
1613      1454, 1454, 1454, 1371, 1371, 1371, 1374, 1374, 1374,  812,
1614      1375,  811, 1452, 1376, 1385, 1385, 1385, 1455, 1470, 1470,
1615      1470, 1372, 1471,  796,  788, 1472,  762,  762,  762,  787,
1616       786, 1386, 1388, 1388, 1388,  785, 1389,  781,  776, 1390,
1617      1474, 1474, 1474,  771,  764, 1400, 1400, 1400,  770, 1401,
1618       769,  761, 1402, 1484, 1484, 1484,  760,  759, 1475, 1404,
1619      1404, 1404, 1486, 1486, 1486, 1407, 1407, 1407,  758, 1408,
1620       757, 1485, 1409, 1502, 1502, 1502,  752, 1405,  749, 1487,
1621      1504, 1504, 1504, 1473,  844,  844,  844, 2046, 2046, 2046,
1622      1503,  743,  861,  861,  861, 1430, 1430, 1430,  738, 1514,
1623
1624      1514, 1514,  846, 1515, 2046, 1488, 1516, 1517, 1517, 1517,
1625       863,  737, 1431, 1520, 1520, 1520, 1522, 1522, 1522,  875,
1626       875,  875,  733,  728, 1518, 1437, 1437, 1437,  727,  726,
1627      1512, 1521, 1440, 1440, 1440,  725,  724,  877, 1527, 1527,
1628      1527,  723,  722,  685, 2046, 2046, 2046, 1505, 1513, 1530,
1629      1530, 1530, 1444, 1444, 1444, 1528, 1445, 1445, 1445,  721,
1630       720, 2046, 1446, 1446, 1446,  719,  718, 1531, 1451, 1451,
1631      1451, 1454, 1454, 1454,  717, 1537, 1537, 1537,  716, 1538,
1632       715, 1523, 1539, 1524,  714,  713, 1452,  712, 1455, 1470,
1633      1470, 1470, 1529, 1471,  711,  710, 1472,  762,  762,  762,
1634
1635      1474, 1474, 1474, 1560, 1560, 1560, 1484, 1484, 1484, 1486,
1636      1486, 1486, 1562, 1562, 1562,  764, 1563,  709, 1475, 1564,
1637      1561, 1570, 1570, 1570, 1485,  708, 1487, 1502, 1502, 1502,
1638      1578, 1578, 1578,  707, 1579,  706,  705, 1580, 1571, 1504,
1639      1504, 1504,  704,  703, 1503,  844,  844,  844, 2046, 2046,
1640      2046,  698,  697, 1554, 1590, 1590, 1590, 1514, 1514, 1514,
1641       696, 1515,  695,  846, 1516, 2046, 1517, 1517, 1517, 1592,
1642      1592, 1592, 1591, 1593,  694,  693, 1594, 1595, 1595, 1595,
1643      1520, 1520, 1520, 1518, 1522, 1522, 1522, 1597, 1597, 1597,
1644      1527, 1527, 1527,  692, 1596, 1588,  691,  688, 1521, 1581,
1645
1646       686, 1605, 1605, 1605,  685, 1598,  683, 1528,  681, 1589,
1647      1602, 1602, 1602,  680, 1603,  679,  677, 1604, 1606, 1530,
1648      1530, 1530, 1611, 1611, 1611, 1537, 1537, 1537,  676, 1538,
1649       675,  674, 1539,  762,  762,  762,  673, 1531,  669, 1612,
1650      1560, 1560, 1560, 1635, 1635, 1635,  667, 1636,  666,  665,
1651      1637,  764, 1562, 1562, 1562,  664, 1563, 1561,  663, 1564,
1652      1570, 1570, 1570, 1641, 1641, 1641,  661, 1642,  660,  659,
1653      1643, 1578, 1578, 1578,  658, 1579,  657, 1571, 1580,  844,
1654       844,  844, 2046, 2046, 2046, 2046, 2046, 2046,  656, 1631,
1655      1590, 1590, 1590,  654, 1592, 1592, 1592,  846, 1593, 2046,
1656
1657       653, 1594, 2046, 1595, 1595, 1595,  652,  649, 1591, 1663,
1658      1663, 1663,  648, 1664,  644,  642, 1665, 1597, 1597, 1597,
1659      1596, 1602, 1602, 1602,  641, 1603,  640,  639, 1604, 1605,
1660      1605, 1605, 1669, 1669, 1669, 1598, 1670,  638,  633, 1671,
1661       632, 1654,  630, 1661,  627, 1662, 1606, 1672, 1672, 1672,
1662      1674, 1674, 1674, 1611, 1611, 1611, 1676, 1676, 1676,  625,
1663      1677,  624,  623, 1678, 1684, 1684, 1684,  762,  762,  762,
1664      1612, 1697, 1697, 1697,  622, 1635, 1635, 1635,  619, 1636,
1665       618, 1685, 1637,  616,  615,  764,  613,  612, 1698, 1703,
1666      1703, 1703, 1641, 1641, 1641,  611, 1642,  608,  606, 1643,
1667
1668       844,  844,  844, 2046, 2046, 2046, 1704, 2046, 2046, 2046,
1669      1672, 1672, 1672,  605, 1699, 1696,  604,  603,  846,  601,
1670      2046, 1663, 1663, 1663, 2046, 1664,  599,  598, 1665, 1727,
1671      1727, 1727, 1669, 1669, 1669,  597, 1670,  596,  593, 1671,
1672      1674, 1674, 1674, 1735, 1735, 1735, 1728, 1003,  592, 1684,
1673      1684, 1684, 1716, 1724, 1676, 1676, 1676,  591, 1677,  588,
1674      1736, 1678,  762,  762,  762, 1723, 1685, 1737, 1737, 1737,
1675       585, 1738,  584,  582, 1739, 1697, 1697, 1697,  581,  579,
1676       764, 1751, 1751, 1751,  576, 1752,  575,  572, 1753, 1703,
1677      1703, 1703, 1698, 1759, 1759, 1759,  571, 1760,  570,  569,
1678
1679      1761, 1773, 1773, 1773,  568,  567, 1704,  562, 1750, 1781,
1680      1781, 1781, 1784, 1784, 1784, 1788, 1788, 1788,  561, 1774,
1681      1727, 1727, 1727, 1790, 1790, 1790, 1782, 1791,  560, 1785,
1682      1792,  559, 1789, 1003, 1793, 1793, 1793, 1728, 1003,  558,
1683       557, 1003, 1794, 1794, 1794, 1735, 1735, 1735,  556, 1799,
1684      1799, 1799, 1783, 1800,  554, 1786, 1801, 1737, 1737, 1737,
1685       553, 1738, 1736,  552, 1739,  762,  762,  762, 1751, 1751,
1686      1751,  551, 1752,  550,  549, 1753, 1811, 1811, 1811,  548,
1687      1759, 1759, 1759,  764, 1760,  543,  540, 1761, 1813, 1813,
1688      1813,  542,  537, 1812, 1773, 1773, 1773, 1781, 1781, 1781,
1689
1690      1829, 1829, 1829,  535, 1830, 1814,  533, 1831, 2046, 2046,
1691      2046, 2046, 1774,  532, 1782, 1784, 1784, 1784,  531, 1833,
1692      1833, 1833,  530, 1834,  529, 2046, 1835, 1806, 2046, 2046,
1693      2046,  527, 1785, 1788, 1788, 1788, 1838, 1838, 1838,  525,
1694      1839,  523,  522, 1840,  521, 2046, 1793, 1793, 1793,  520,
1695      1789, 1003,  519,  518, 1003,  516, 1790, 1790, 1790,  515,
1696      1791,  511,  510, 1792, 1794, 1794, 1794,  508, 1799, 1799,
1697      1799,  507, 1800, 1832, 1003, 1801, 1857, 1857, 1857,  504,
1698      1858,  503,  502, 1859,  500, 1851, 1851, 1851,  498, 1811,
1699      1811, 1811,  496, 1836, 1001, 1001, 1001, 1001, 1001, 1001,
1700
1701      1001, 1001, 1001, 1852,  494, 1001, 1812, 1813, 1813, 1813,
1702      1001, 1001, 1001, 1003, 1001, 1860, 1860, 1860,  493, 1861,
1703       490,  489, 1862,  485, 1814, 1829, 1829, 1829,  483, 1830,
1704       482,  480, 1831, 2046, 2046, 2046, 1001, 1001, 1001, 1001,
1705      1001, 1001, 1001, 1001, 1001, 1001, 1001,  479,  478, 1001,
1706      2046, 2046, 2046, 2046, 1001, 1001, 1001, 1003, 1001, 1833,
1707      1833, 1833,  477, 1834,  476,  473, 1835,  471, 2046, 1838,
1708      1838, 1838,  470, 1839,  421,  469, 1840, 1851, 1851, 1851,
1709      1001, 1001, 1857, 1857, 1857, 1875, 1858, 1003,  467, 1859,
1710      1860, 1860, 1860,  465, 1861, 1852,  464, 1862,  463, 2046,
1711
1712      2046, 2046,  462, 1876, 1001, 1001, 1001, 1001, 1001, 1883,
1713      1001, 1001, 1001,  460,  458, 1001, 2046, 2046, 2046, 2046,
1714      1001, 1001, 1001, 1003, 1001, 1910, 1910, 1910, 1915, 1915,
1715      1915, 1936, 1936, 1936, 2046, 1937,  457,  456, 1938,  455,
1716      1917, 1917, 1917, 1003, 1004, 1916, 1001, 1001, 1001, 1001,
1717      1001, 1001, 1001, 1001, 1001, 1001, 1883, 1918,  453, 1001,
1718       451, 1904,  450,  446, 1001, 1001, 1001, 1003, 1001, 1919,
1719      1919, 1919, 1922, 1922, 1922, 2046, 2046, 2046,  445, 1905,
1720      2046, 2046, 2046, 1930, 1930, 1930, 1920,  443,  442, 1923,
1721      1001, 1001, 2046, 1910, 1910, 1910,  439, 2046, 1915, 1915,
1722
1723      1915,  685, 1917, 1917, 1917,  438, 1939, 1939, 1939,  437,
1724      1940, 1003, 1921, 1941,  435, 1916, 1919, 1919, 1919, 1918,
1725      1942, 1942, 1942,  433, 1943,  431, 1928, 1944, 1922, 1922,
1726      1922, 1929, 2046, 1920,  407, 1946, 1946, 1946,  406, 1947,
1727       404, 1116, 1948,  402,  396, 1923, 2046, 2046, 2046, 2046,
1728      2046, 2046, 1930, 1930, 1930, 1936, 1936, 1936,  395, 1937,
1729       396,  395, 1938, 2046,  394,  393, 2046, 1939, 1939, 1939,
1730       685, 1940, 2046, 2046, 1941, 1942, 1942, 1942, 2046, 1943,
1731      2046, 2046, 1944, 1946, 1946, 1946, 2046, 1947, 1955, 1953,
1732      1948, 2046, 1954, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1733
1734      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1735      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1736      2046, 2046, 2046, 2046, 2046, 2046, 1981, 1981, 1981, 2046,
1737      2046, 2046, 2046, 2046, 2046, 1981, 1981, 1981, 2046, 2046,
1738      2046, 2046, 2046, 1982, 2046, 2046, 2046, 2046, 2046, 2046,
1739      1962, 2046, 1982, 1963, 2046, 2046, 1978, 2046, 1990, 1990,
1740      1990, 1970, 1991, 2046, 1971, 1992, 2046, 2046, 2046, 2046,
1741      2046, 2046, 2046, 2046, 1979, 2046, 2046, 1987, 2046, 2046,
1742      1988, 2046, 2046, 2046, 2046, 2046, 2046, 1990, 1990, 1990,
1743      2046, 1991, 2046, 2046, 1992, 2046, 2046, 2046, 2046, 2046,
1744
1745      2046, 2000, 2000, 2000, 2046, 2046, 2046, 2046, 2046, 2046,
1746      2046, 2046, 2046, 2046, 2046, 2046, 2000, 2000, 2000,  685,
1747      2003, 2046, 2046, 2004, 2046, 2046, 1995, 2046, 2046, 1996,
1748      2046, 2046, 2046, 2046,  685, 2046, 2046, 2046, 1998, 2046,
1749      2046, 1999, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1750      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1751      2017, 2017, 2017, 2046, 2046, 2001, 2046, 2002, 2046, 2046,
1752      2046, 2046, 2046, 2046, 2019, 2019, 2019, 2018, 2005, 2017,
1753      2017, 2017, 2046, 2006, 2046, 2023, 2023, 2023, 2046, 2024,
1754      2046, 2020, 2025, 2046, 2046, 2010, 2018, 2046, 2009, 2046,
1755
1756      2013, 2019, 2019, 2019, 2026, 2026, 2026, 2046, 2027, 2046,
1757      2046, 2028, 2023, 2023, 2023, 2046, 2024, 2046, 2020, 2025,
1758      2014, 2026, 2026, 2026, 2046, 2027, 2046, 2046, 2028, 2044,
1759      2044, 2044, 2044, 2044, 2044, 2046, 2046, 2046, 2046, 2046,
1760      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2045, 2046, 2046,
1761      2045,  144,  144,  144,  144,  144,  144,  144,  144,  144,
1762       145,  145,  145,  145,  145,  145,  145,  145,  145,  150,
1763       150,  150,  150,  150,  150,  150,  150,  150,  153,  153,
1764       153,  153,  153,  153,  153,  153,  153,  156,  156,  156,
1765       156,  156,  156,  156,  156,  156,  159,  159,  159,  159,
1766
1767       159,  159,  159,  159,  159,  166,  166,  166,  166,  166,
1768       166,  166,  166,  166,  174,  174,  174,  174,  174,  174,
1769       174,  174,  174,  179,  179,  179,  179,  179,  179,  179,
1770       179,  179,  189,  189,  189,  189,  189,  189,  189,  189,
1771       189,  193,  193,  193,  193,  193,  193,  193,  193,  193,
1772       199,  199,  199,  199,  199,  199,  199,  199,  199,  210,
1773       210,  210,  210,  210,  210,  210,  210,  210,  217,  217,
1774       217,  217,  217,  217,  217,  217,  217,  225,  225,  225,
1775       225,  225,  225,  225,  225,  225,  232,  232,  232,  232,
1776       232,  232,  232,  232,  232,  238,  238,  238,  238,  238,
1777
1778       238,  238,  238,  238,  245,  245,  245,  245,  245,  245,
1779       245,  245,  245,  251,  251,  251,  251,  251,  251,  251,
1780       251,  251,  257,  257,  257,  257,  257,  257,  257,  257,
1781       257,  263,  263,  263,  263,  263,  263,  263,  263,  263,
1782       271,  271,  271,  271,  271,  271,  271,  271,  271,  278,
1783       278,  278,  278,  278,  278,  278,  278,  278,  283,  283,
1784       283,  283,  283,  283,  283,  283,  283,  298,  298,  298,
1785       298,  298,  298,  298,  298,  298,  304,  304,  304,  304,
1786       304,  304,  304,  304,  304,  308,  308,  308,  308,  308,
1787       308,  308,  308,  308,  314,  314,  314,  314,  314,  314,
1788
1789       314,  314,  314,  321,  321,  321,  321,  321,  321,  321,
1790       321,  321,  328,  328,  328,  328,  328,  328,  328,  328,
1791       328,  335,  335,  335,  335,  335,  335,  335,  335,  335,
1792       342,  342,  342,  342,  342,  342,  342,  342,  342,  349,
1793       349,  349,  349,  349,  349,  349,  349,  349,  356,  356,
1794       356,  356,  356,  356,  356,  356,  356,  360,  360,  360,
1795       360,  360,  360,  360,  360,  360,  366,  366,  366,  366,
1796       366,  366,  366,  366,  366,  373,  373,  373,  373,  373,
1797       373,  373,  373,  373,  381,  381,  381,  381,  381,  381,
1798       381,  381,  381,  385,  385,  385,  385,  385,  385,  385,
1799
1800       385,  385,  405,  405,  405, 2046, 2046, 2046,  405,  432,
1801       432,  432, 2046, 2046, 2046,  432,  436,  436,  436, 2046,
1802      2046, 2046,  436,  444,  444,  444, 2046, 2046, 2046,  444,
1803       454,  454,  454, 2046, 2046, 2046,  454,  461,  461,  461,
1804      2046, 2046, 2046,  461,  468,  468,  468, 2046, 2046, 2046,
1805       468,  472,  472,  472, 2046, 2046, 2046,  472,  481,  481,
1806       481, 2046, 2046, 2046,  481,  486,  486,  486, 2046, 2046,
1807      2046,  486,  497,  497,  497, 2046, 2046, 2046,  497,  501,
1808       501,  501, 2046, 2046, 2046,  501,  509,  509,  509, 2046,
1809      2046, 2046,  509,  517,  517,  517, 2046, 2046, 2046,  517,
1810
1811       524,  524,  524, 2046, 2046, 2046,  524,  528,  528,  528,
1812      2046, 2046, 2046,  528,  536,  536,  536, 2046, 2046, 2046,
1813       536,  539,  539,  539,  539,  539,  539,  539, 2046,  539,
1814       555, 2046, 2046, 2046,  555,  583, 2046, 2046, 2046,  583,
1815       590, 2046, 2046, 2046,  590,  600, 2046, 2046, 2046,  600,
1816       607, 2046, 2046, 2046,  607,  614, 2046, 2046, 2046,  614,
1817       617, 2046, 2046, 2046,  617,  626, 2046, 2046, 2046,  626,
1818       631, 2046, 2046, 2046,  631,  486,  486,  486, 2046, 2046,
1819      2046,  486,  643, 2046, 2046, 2046,  643,  497,  497,  497,
1820      2046, 2046, 2046,  497,  647, 2046, 2046, 2046,  647,  501,
1821
1822       501,  501, 2046, 2046, 2046,  501,  655, 2046, 2046, 2046,
1823       655,  509,  509,  509, 2046, 2046, 2046,  509,  662, 2046,
1824      2046, 2046,  662,  517,  517,  517, 2046, 2046, 2046,  517,
1825       668, 2046, 2046, 2046,  668,  524,  524,  524, 2046, 2046,
1826      2046,  524,  672, 2046, 2046, 2046,  672,  528,  528,  528,
1827      2046, 2046, 2046,  528,  678, 2046, 2046, 2046,  678,  536,
1828       536,  536, 2046, 2046, 2046,  536,  682, 2046, 2046, 2046,
1829       682,  684,  684,  684,  684,  684,  684,  684,  684,  684,
1830       690, 2046, 2046, 2046, 2046,  690,  405,  405,  405, 2046,
1831      2046, 2046,  405,  700,  700,  700,  700, 2046, 2046,  700,
1832
1833       700,  432,  432,  432, 2046, 2046, 2046,  432,  730,  730,
1834       730,  730, 2046, 2046,  730,  730,  436,  436,  436, 2046,
1835      2046, 2046,  436,  740,  740,  740,  740, 2046, 2046,  740,
1836       740,  444,  444,  444, 2046, 2046, 2046,  444,  754,  754,
1837       754,  754, 2046, 2046,  754,  754,  454,  454,  454, 2046,
1838      2046, 2046,  454,  763,  763,  763,  763, 2046, 2046,  763,
1839       763,  461,  461,  461, 2046, 2046, 2046,  461,  773,  773,
1840       773,  773, 2046, 2046,  773,  773,  468,  468,  468, 2046,
1841      2046, 2046,  468,  778,  778,  778,  778, 2046, 2046,  778,
1842       778,  472,  472,  472, 2046, 2046, 2046,  472,  790,  790,
1843
1844       790,  790, 2046, 2046,  790,  790,  481,  481,  481, 2046,
1845      2046, 2046,  481,  798,  798,  798,  798, 2046, 2046,  798,
1846       798,  486,  486,  486, 2046, 2046, 2046,  486,  816,  816,
1847       816,  816, 2046, 2046,  816,  816,  823,  823,  823,  823,
1848      2046, 2046,  823,  823,  501,  501,  501, 2046, 2046, 2046,
1849       501,  834,  834,  834,  834, 2046, 2046,  834,  834,  509,
1850       509,  509, 2046, 2046, 2046,  509,  845,  845,  845,  845,
1851      2046, 2046,  845,  845,  517,  517,  517, 2046, 2046, 2046,
1852       517,  855,  855,  855,  855, 2046, 2046,  855,  855,  862,
1853       862,  862,  862, 2046, 2046,  862,  862,  528,  528,  528,
1854
1855      2046, 2046, 2046,  528,  870,  870,  870,  870, 2046, 2046,
1856       870,  870,  536,  536,  536, 2046, 2046, 2046,  536,  876,
1857       876,  876,  876, 2046, 2046,  876,  876,  684,  684,  684,
1858       684,  684,  684,  684,  684,  684,  690, 2046,  690, 2046,
1859      2046,  690,  405,  405,  405, 2046, 2046, 2046,  405,  700,
1860       700,  700,  700, 2046, 2046,  700,  700,  432,  432,  432,
1861       432, 2046,  432, 2046,  432,  730,  730,  730,  730, 2046,
1862      2046,  730,  730,  436,  436,  436,  436, 2046,  436, 2046,
1863       436,  740,  740,  740,  740, 2046, 2046,  740,  740,  444,
1864       444,  444, 2046, 2046, 2046,  444,  754,  754,  754,  754,
1865
1866      2046, 2046,  754,  754,  454,  454,  454, 2046, 2046, 2046,
1867       454,  763,  763,  763,  763, 2046, 2046,  763,  763,  461,
1868       461,  461, 2046, 2046, 2046,  461,  773,  773,  773,  773,
1869      2046, 2046,  773,  773,  468,  468,  468, 2046, 2046, 2046,
1870       468,  778,  778,  778,  778, 2046, 2046,  778,  778,  472,
1871       472,  472, 2046, 2046, 2046,  472,  790,  790,  790,  790,
1872      2046, 2046,  790,  790,  481,  481,  481, 2046, 2046, 2046,
1873       481,  798,  798,  798,  798, 2046, 2046,  798,  798,  486,
1874       486,  486, 2046, 2046, 2046,  486,  816,  816,  816,  816,
1875      2046, 2046,  816,  816,  823,  823,  823,  823, 2046, 2046,
1876
1877       823,  823,  501,  501,  501, 2046, 2046, 2046,  501,  834,
1878       834,  834,  834, 2046, 2046,  834,  834,  509,  509,  509,
1879      2046, 2046, 2046,  509,  845,  845,  845,  845, 2046, 2046,
1880       845,  845,  517,  517,  517, 2046, 2046, 2046,  517,  855,
1881       855,  855,  855, 2046, 2046,  855,  855,  862,  862,  862,
1882       862, 2046, 2046,  862,  862,  528,  528,  528, 2046, 2046,
1883      2046,  528,  870,  870,  870,  870, 2046, 2046,  870,  870,
1884       536,  536,  536, 2046, 2046, 2046,  536,  876,  876,  876,
1885       876, 2046, 2046,  876,  876,  684,  684,  684,  684,  684,
1886       684,  684,  684,  684, 1001, 1001, 1001, 1001, 1001, 1001,
1887
1888      1001, 1001, 1001,  405,  405,  405, 2046, 2046, 2046,  405,
1889       700,  700,  700,  700, 2046, 2046,  700,  700,  730,  730,
1890       730,  730, 2046, 2046,  730,  730,  436,  436,  436, 2046,
1891      2046, 2046,  436,  740,  740,  740,  740, 2046, 2046,  740,
1892       740,  444,  444,  444, 2046, 2046, 2046,  444,  754,  754,
1893       754,  754, 2046, 2046,  754,  754,  454,  454,  454, 2046,
1894      2046, 2046,  454,  763,  763,  763,  763, 2046, 2046,  763,
1895       763,  461,  461,  461, 2046, 2046, 2046,  461,  773,  773,
1896       773,  773, 2046, 2046,  773,  773,  468,  468,  468, 2046,
1897      2046, 2046,  468,  778,  778,  778,  778, 2046, 2046,  778,
1898
1899       778,  472,  472,  472, 2046, 2046, 2046,  472,  790,  790,
1900       790,  790, 2046, 2046,  790,  790,  481,  481,  481,  481,
1901      2046,  481, 2046,  481,  798,  798,  798,  798, 2046, 2046,
1902       798,  798,  486,  486,  486,  486, 2046,  486, 2046,  486,
1903       816,  816,  816,  816, 2046, 2046,  816,  816,  823,  823,
1904       823,  823, 2046, 2046,  823,  823,  501,  501,  501, 2046,
1905      2046, 2046,  501,  834,  834,  834,  834, 2046, 2046,  834,
1906       834,  509,  509,  509, 2046, 2046, 2046,  509,  845,  845,
1907       845,  845, 2046, 2046,  845,  845,  517,  517,  517, 2046,
1908      2046, 2046,  517,  855,  855,  855,  855, 2046, 2046,  855,
1909
1910       855,  862,  862,  862,  862, 2046, 2046,  862,  862,  528,
1911       528,  528, 2046, 2046, 2046,  528,  870,  870,  870,  870,
1912      2046, 2046,  870,  870,  536,  536,  536,  536, 2046,  536,
1913      2046,  536,  876,  876,  876,  876, 2046, 2046,  876,  876,
1914       684,  684,  684,  684,  684,  684,  684,  684,  684, 1001,
1915      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,  405,  405,
1916       405, 2046, 2046, 2046,  405,  700,  700,  700,  700, 2046,
1917      2046,  700,  700,  730,  730,  730,  730, 2046, 2046,  730,
1918       730,  436,  436,  436, 2046, 2046, 2046,  436,  740,  740,
1919       740,  740, 2046, 2046,  740,  740,  444,  444,  444, 2046,
1920
1921      2046, 2046,  444,  754,  754,  754,  754, 2046, 2046,  754,
1922       754,  454,  454,  454, 2046, 2046, 2046,  454,  763,  763,
1923       763,  763, 2046, 2046,  763,  763,  461,  461,  461,  461,
1924      2046,  461, 2046,  461,  468,  468,  468,  468, 2046,  468,
1925      2046,  468,  778,  778,  778,  778, 2046, 2046,  778,  778,
1926       472,  472,  472, 2046, 2046, 2046,  472,  790,  790,  790,
1927       790, 2046, 2046,  790,  790,  798,  798,  798,  798, 2046,
1928      2046,  798,  798,  486,  486,  486,  486, 2046,  486, 2046,
1929       486,  816,  816,  816,  816, 2046, 2046,  816,  816,  823,
1930       823,  823,  823, 2046, 2046,  823,  823,  501,  501,  501,
1931
1932      2046, 2046, 2046,  501,  834,  834,  834,  834, 2046, 2046,
1933       834,  834,  509,  509,  509,  509, 2046,  509, 2046,  509,
1934       845,  845,  845,  845, 2046, 2046,  845,  845,  517,  517,
1935       517,  517, 2046,  517, 2046,  517,  855,  855,  855,  855,
1936      2046, 2046,  855,  855,  862,  862,  862,  862, 2046, 2046,
1937       862,  862,  528,  528,  528, 2046, 2046, 2046,  528,  870,
1938       870,  870,  870, 2046, 2046,  870,  870,  876,  876,  876,
1939       876, 2046, 2046,  876,  876,  684,  684,  684,  684,  684,
1940       684,  684,  684,  684, 1001, 1001, 1001, 1001, 1001, 1001,
1941      1001, 1001, 1001,  405,  405,  405,  405, 2046,  405, 2046,
1942
1943       405,  700,  700,  700,  700, 2046, 2046,  700,  700,  730,
1944       730,  730,  730, 2046, 2046,  730,  730,  436,  436,  436,
1945      2046, 2046, 2046,  436,  740,  740,  740,  740, 2046, 2046,
1946       740,  740,  444,  444,  444, 2046, 2046, 2046,  444,  754,
1947       754,  754,  754, 2046, 2046,  754,  754,  454,  454,  454,
1948      2046, 2046, 2046,  454,  763,  763,  763,  763, 2046, 2046,
1949       763,  763,  461,  461,  461,  461, 2046,  461, 2046,  461,
1950       778,  778,  778,  778, 2046, 2046,  778,  778,  472,  472,
1951       472, 2046, 2046, 2046,  472, 1841, 1841, 1841, 1841, 1841,
1952      1841, 1841, 1841, 1841, 1842, 1842, 1842, 1842, 1842, 1842,
1953
1954      1842, 1842, 1842, 1878, 1878, 1878, 1878, 1878, 1878, 1878,
1955      1878, 1878, 1881, 1881, 1881, 1881, 1881, 1881, 1881, 1881,
1956      1881, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
1957      1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909,  143,
1958      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1959      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1960      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1961      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1962      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1963      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
1964
1965      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046
1966     } ;
1967
1968 static yyconst flex_int16_t yy_chk[7210] =
1969     {   0,
1970         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1971         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1972         4,   10,  219,    5,    0,    9,    6, 1397,   10,    7,
1973         8,    8,    8,  148,   11,   13,   13,   12,   14,   14,
1974        13,   13,  220,   14,   14,  149,    8,   17,   17,  148,
1975        13,   15,   15,   14,   15,  152,   15,   16,   16,  415,
1976        16,  149,   16,   18,   18,  415,   15,   19,   19,   19,
1977       219,  152,   16,   20,   20,   20,   23,   23,   23,   24,
1978        24,   24,  267,   19,   25,   25,   25,  333,   17,   20,
1979       220,  267,   23,  426,  333,   24,  146,  146,  146,  426,
1980
1981        25,  147,  147,  147,   18,   21,   21,   21,   21,   21,
1982        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1983      1398,   21,   21,   21,   21,   21,   26,   26,   26,   27,
1984        27,   27,  320,   28,   28,   28,   29,   29,   29,   30,
1985        30,   30,   26,  320,  452,   27,  175,   21,   21,   28,
1986       452,  295,   29,  190,  295,   30,  151,  151,  151,  172,
1987       172,  172,  175,  180,  180,  180,  187,  187,  187,  190,
1988        21,  183,   21,   22,   22,   22,   22,   22,   22,   22,
1989        22,   22,   22,   22,   22,   22,   22,   22,  273,   22,
1990        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
1991
1992      1000,   33,   33,   33,   34,   34,   34,   35,   35,   35,
1993        31,  416,  200,   32,  170,   22,   22,   33,  211,  183,
1994        34,  183, 1000,   35,  416,   36,   36,   36,  200,  185,
1995       170,  194,  194,  194,  211,  185,  273,  185,   22,  185,
1996        22,   36,   37,   37,   37,   37,   37,   37,   37,   37,
1997        37,   37,   37,   37,   37,   37,   37,  292,   37,   37,
1998        37,   37,   37,   39,   39,   39,   40,   40,   40,  170,
1999        47,   47,   47,   43,   43,   44,   44,  292,   43,   39,
2000        44, 1399,   40,  215,   37,   37,   47,  215,   43, 1410,
2001        44,  215,   37,   38,   38,   38,   38,   38,   38,   38,
2002
2003        38,   38,   38,   38,   38,   38,   38,   38,  710,   38,
2004        38,   38,   38,   38,   43,  334,   44,   48,   48,   48,
2005       710,   49,   49,   49,   50,   50,   50,  197,  197,  197,
2006       208,  208,  208,   48,  687,   38,   38,   49,  687,  398,
2007        50,  337,  398,   38,   41,   41,   41,   41,   41,   41,
2008        41,   41,   41,   41,   41,   41,   41,   41,   41,  334,
2009        41,   41,   41,   41,   41,   51,   51,   51,   52,   52,
2010        52,  323,   53,   53,   53,   54,   54,   54,  218,  218,
2011       218,   51,  195,  205,   52,  337,   41,   41,   53,  195,
2012       205,   54, 1323, 1323,   41, 1324, 1324,   41,  195,  205,
2013
2014       223,  223,  223,   41,   42,   42,   42,   42,   42,   42,
2015        42,   42,   42,   42,   42,   42,   42,   42,   42,  323,
2016        42,   42,   42,   42,   42,   57,   57,   57,   58,   58,
2017        58,  723,   61,   61,   61,   62,   62,   62,  389,  226,
2018       239,   57, 1411,  723,   58,  234,   42,   42,   61,  423,
2019      1412,   62,  234,  389,   42,  226,  239,   42,  233,  233,
2020       233,  234,  423,   42,   45,   45,   45,   45,   45,   45,
2021        45,   45,   45,   45,   45,   45,   45,   45,   45,  757,
2022        45,   45,   45,   45,   45,   65,   65,   65,   66,   66,
2023        66,  757,   67,   67,   67,   68,   68,   68,   69,   69,
2024
2025        69,   65,  247,  252,   66, 1413,   45,   45,   67,  247,
2026       351,   68,  427, 1375,   69,   45, 1375,   45,  247,  252,
2027        45,  236,  236,  236,  255,  427,   45,   46,   46,   46,
2028        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
2029        46,   46,  440,   46,   46,   46,   46,   46,   70,   70,
2030        70,   73,   73,   73,  351,   74,   74,   74,   75,   75,
2031        75,   76,   76,   76,   70,  255,  264,   73,  255,   46,
2032        46,   74,  279, 1009,   75,  440,  633,   76,   46, 1009,
2033        46, 1414,  264,   46, 1236,  633,  162, 1117,  279,   46,
2034        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
2035
2036        55,   55,   55,   55,   55,  290,   55,   55,   55,   55,
2037        55,   77,   77,   77,   78,   78,   78, 1117,   79,   79,
2038        79,  290,   80,   80,   80,  162, 1236,   77, 1329, 1329,
2039        78,  162,   55,   55,   79,  162,  305,   55,   80,   55,
2040       162,  246,  246,  246,   55,  249,  249,  249,  258,  258,
2041       258, 1116,  305,   55,   56,   56,   56,   56,   56,   56,
2042        56,   56,   56,   56,   56,   56,   56,   56,   56,  315,
2043        56,   56,   56,   56,   56,   83,   83,   83,   84,   84,
2044        84, 1415,   87,   87,   87,  315,   88,   88,   88, 1116,
2045      1343,   83, 1330, 1330,   84, 1416,   56,   56,   87,  329,
2046
2047       285,   56,   88,   56,  261,  261,  261,  285,   56,  272,
2048       272,  272,  276,  276,  276,  329,  285,   56,   59,   59,
2049        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
2050        59,   59,   59, 1343,   59,   59,   59,   59,   59,   91,
2051        91,   91,   92,   92,   92,  879,   95,   95,   95,   96,
2052        96,   96,   97,   97,   97,   91,  429, 1342,   92,  300,
2053        59,   59,   95,  541,  879,   96,  300, 1417,   97,  429,
2054      1234,   59,  284,  284,  284,  300, 1234,   59,  541,   59,
2055        59,   60,   60,   60,   60,   60,   60,   60,   60,   60,
2056        60,   60,   60,   60,   60,   60, 1342,   60,   60,   60,
2057
2058        60,   60,   98,   98,   98,   99,   99,   99, 1419,  100,
2059       100,  100,  101,  101,  101,  102,  102,  102,   98, 1298,
2060      1299,   99,  310,   60,   60,  100, 1298, 1299,  101,  310,
2061      1376,  102, 1319, 1376,   60,  287,  287,  287,  310, 1319,
2062        60, 1424,   60,   60,   63,   63,   63,   63,   63,   63,
2063        63,   63,   63,   63,   63,   63,   63,   63,   63, 1426,
2064        63,   63,   63,   63,   63,  105,  105,  105,  106,  106,
2065       106, 1433,  107,  107,  107,  108,  108,  108,  109,  109,
2066       109,  105, 1447, 1320,  106, 1448,   63,   63,  107,  343,
2067      1320,  108, 1449, 1438,  109,  299,  299,  299,  302,  302,
2068
2069       302,  309,  309,  309, 1450,  343,   63,   64,   64,   64,
2070        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
2071        64,   64, 1438,   64,   64,   64,   64,   64,  110,  110,
2072       110,  111,  111,  111, 1453,  112,  112,  112,  115,  115,
2073       115,  116,  116,  116,  110, 1456, 1418,  111, 1418,   64,
2074        64,  112,  357, 1420,  115, 1420, 1457,  116,  312,  312,
2075       312,  322,  322,  322,  326,  326,  326, 1458,  357,   64,
2076        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2077        71,   71,   71,   71,   71, 1459,   71,   71,   71,   71,
2078        71,  117,  117,  117,  118,  118,  118, 1439,  119,  119,
2079
2080       119,  120,  120,  120,  121,  121,  121,  117,  367,  362,
2081       118,  382,   71,   71,  119,   71,  362,  120, 1460, 1425,
2082       121, 1425, 1461,   71,  367,  362,   71,  382, 1427,   71,
2083      1427, 1439,   71,   72,   72,   72,   72,   72,   72,   72,
2084        72,   72,   72,   72,   72,   72,   72,   72, 1462,   72,
2085        72,   72,   72,   72,  122,  122,  122,  125,  125,  125,
2086      1463,  126,  126,  126,  129,  129,  129,  130,  130,  130,
2087       122, 1115,  387,  125, 1464,   72,   72,  126,   72,  387,
2088       129, 1465, 1466,  130, 1467, 1468,   72, 1115,  387,   72,
2089      1469, 1476,   72, 1477, 1478,   72,   81,   81,   81,   81,
2090
2091        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
2092        81,  375,   81,   81,   81,   81,   81,  131,  131,  131,
2093       132,  132,  132, 1479,  133,  133,  133,  134,  134,  134,
2094       135,  135,  135,  131, 1056, 1056,  132, 1481,   81,   81,
2095       133, 1488, 1489,  134, 1056,  375,  135, 1490, 1056,   81,
2096       336,  336,  336,  340,  340,  340,  350,  350,  350,  375,
2097      1491,   81,   82,   82,   82,   82,   82,   82,   82,   82,
2098        82,   82,   82,   82,   82,   82,   82, 1493,   82,   82,
2099        82,   82,   82,  136,  136,  136,  139,  139,  139, 1496,
2100       140,  140,  140,  354,  354,  354,  361,  361,  361,  136,
2101
2102      1497, 1498,  139, 1499,   82,   82,  140,  364,  364,  364,
2103       374,  374,  374, 1500, 1501,   82,  379,  379,  379,  386,
2104       386,  386,  388,  388,  388, 1506, 1507,   82,   85,   85,
2105        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2106        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2107        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2108        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2109        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2110        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2111        85,   85,   85,   85,   85,   85,   85,   89,   89,   89,
2112
2113        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2114        89,   89, 1508,   89,   89,   89,   89,   89,  397,  397,
2115       397,  438,  438,  438,  446,  446,  446,  462,  462,  462,
2116       474,  474,  474,  544,  544,  544, 1509,  544,  438,   89,
2117        89,  446, 1510, 1511,  462, 1532, 1533,  474, 1534, 1235,
2118        89,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2119        90,   90,   90,   90,   90,   90, 1524,   90,   90,   90,
2120        90,   90, 1535,  397,  482,  482,  482, 1235,  488,  488,
2121       488,  489,  489,  489,  498,  498,  498,  713,  713,  713,
2122      1540,  482, 1541,   90,   90,  488, 1542, 1543,  489, 1544,
2123
2124      1545,  498, 1524, 1526,   90,   93,   93,   93,   93,   93,
2125        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
2126      1525,   93,   93,   93,   93,   93,  503,  503,  503,  525,
2127       525,  525,  555,  555,  555,  556,  556,  556,  583,  583,
2128       583, 1546, 1526,  503, 1547, 1538,  525,   93,   93, 1548,
2129       555,   93, 1549,  556, 1525, 1550,  583, 1538,   93, 1551,
2130        93,  721,  721,  721,  892,  892,  892,   93,   94,   94,
2131        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2132        94,   94,   94, 1552,   94,   94,   94,   94,   94,  556,
2133       584,  584,  584, 1057, 1057,  586,  586,  586,  587,  587,
2134
2135       587, 1539,  587, 1057, 1553,  587, 1555, 1057,  584, 1556,
2136        94,   94,  586, 1539,   94,  595,  595,  595, 1557,  595,
2137      1565,   94,  595,   94,  897,  897,  897,  900,  900,  900,
2138        94,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2139       103,  103,  103,  103,  103,  103,  584,  103,  103,  103,
2140       103,  103,  590,  590,  590, 1566, 1567,  591,  591,  591,
2141       594,  594,  594,  596,  596,  596,  598,  598,  598, 1572,
2142       590, 1573, 1574,  103,  103,  591,  103,  594, 1575,  103,
2143       596, 1576, 1577,  598,  610,  610,  610, 1582,  610, 1583,
2144      1584,  610, 1585,  103,  104,  104,  104,  104,  104,  104,
2145
2146       104,  104,  104,  104,  104,  104,  104,  104,  104, 1586,
2147       104,  104,  104,  104,  104, 1587, 1600,  591, 1579, 1580,
2148       600,  600,  600,  607,  607,  607, 1579, 1580,  601,  601,
2149       601,  608,  608,  608, 1608, 1610,  104,  104,  600,  104,
2150      1613,  607,  104,  621,  621,  621,  601,  621, 1614,  608,
2151       621,  904,  904,  904, 1600, 1599,  104,  113,  113,  113,
2152       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2153       113,  113,  601,  113,  113,  113,  113,  113,  609,  609,
2154       609, 1599, 1615,  614,  614,  614,  617,  617,  617, 1616,
2155      1617,  608,  620,  620,  620,  609,  615,  615,  615,  113,
2156
2157       113,  614,  113, 1619,  617,  113,  908,  908,  908,  620,
2158       113,  629,  629,  629,  615,  629, 1620, 1601,  629,  113,
2159       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2160       114,  114,  114,  114,  114, 1621,  114,  114,  114,  114,
2161       114,  618,  618,  618,  615, 1622,  626,  626,  626,  627,
2162       627,  627,  628,  628,  628, 1601,  631,  631,  631,  618,
2163      1623, 1624,  114,  114,  626,  114, 1625,  627,  114,  628,
2164       934,  934,  934,  114,  631, 1014, 1014, 1014, 1016, 1016,
2165      1016, 1627,  114,  123,  123,  123,  123,  123,  123,  123,
2166       123,  123,  123,  123,  123,  123,  123,  123,  618,  123,
2167
2168       123,  123,  123,  123, 1628, 1629,  627, 1633, 1634,  632,
2169       632,  632,  634,  634,  634,  635,  635,  635, 1638,  635,
2170      1640, 1644,  635, 1645, 1646,  123,  123,  632, 1647,  634,
2171      1020, 1020, 1020, 1026, 1026, 1026,  123,  124,  124,  124,
2172       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2173       124,  124, 1648,  124,  124,  124,  124,  124,  636,  636,
2174       636,  637,  637,  637, 1649,  637, 1650, 1651,  637,  632,
2175       638,  638,  638, 1652, 1653,  636, 1027, 1027, 1027,  124,
2176       124,  646,  646,  646, 1655,  646, 1656,  638,  646, 1657,
2177       124,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2178
2179       127,  127,  127,  127,  127,  127, 1658,  127,  127,  127,
2180       127,  127,  643,  643,  643,  645,  645,  645,  647,  647,
2181       647,  644,  644,  644,  648,  648,  648,  650,  650,  650,
2182       643, 1659,  645,  127,  127, 1660,  647, 1667, 1666,  644,
2183      1673,  127,  648,  127,  650,  127, 1052, 1052, 1052, 1131,
2184      1131, 1131, 1675,  127,  128,  128,  128,  128,  128,  128,
2185       128,  128,  128,  128,  128,  128,  128,  128,  128, 1667,
2186       128,  128,  128,  128,  128,  644,  651,  651,  651, 1679,
2187       651,  648, 1666,  651,  655,  655,  655,  656,  656,  656,
2188       658,  658,  658,  659,  659,  659,  128,  128,  665,  665,
2189
2190       665, 1680,  655, 1681,  128,  656,  128,  658,  128, 1682,
2191       659, 1132, 1132, 1132, 1686,  665,  128,  137,  137,  137,
2192       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2193       137,  137, 1687,  137,  137,  137,  137,  137, 1688,  656,
2194       662,  662,  662, 1689,  667,  667,  667,  663,  663,  663,
2195       668,  668,  668,  669,  669,  669, 1690, 1691,  662,  137,
2196       137,  667,  670,  670,  670,  663, 1692, 1693,  668, 1694,
2197      1695,  669, 1699,  671,  671,  671, 1701,  671, 1702,  670,
2198       671, 1705,  137,  138,  138,  138,  138,  138,  138,  138,
2199       138,  138,  138,  138,  138,  138,  138,  138, 1706,  138,
2200
2201       138,  138,  138,  138,  663,  672,  672,  672, 1700, 1700,
2202       669,  673,  673,  673,  678,  678,  678,  679,  679,  679,
2203       682,  682,  682,  672, 1707,  138,  138, 1708, 1709,  673,
2204      1710, 1711,  678, 1712, 1713,  679, 1714, 1715,  682,  683,
2205       683,  683,  699,  699,  699,  728,  728,  728,  138,  181,
2206       700,  700,  700,  894,  894,  894,  181,  683, 1717, 1718,
2207       699, 1719,  728,  673, 1720,  181, 1721,  894,  700,  702,
2208       702,  702, 1722,  729,  729,  729, 1731,  679,  730,  730,
2209       730, 1732, 1733,  732,  732,  732, 1734,  702, 1744, 1725,
2210       181,  729,  181, 1745, 1747,  181,  730,  181,  181,  683,
2211
2212       181,  732, 1748, 1754,  181, 1755,  181,  181,  181,  182,
2213       733,  733,  733,  702, 1756, 1757,  182,  734,  734,  734,
2214      1725,  734, 1763, 1764,  734,  182, 1765,  733, 1766,  732,
2215       737,  737,  737,  739,  739,  739,  740,  740,  740, 1767,
2216      1768,  742,  742,  742,  747,  747,  747,  737, 1770, 1772,
2217       182,  739,  182, 1775,  740,  182, 1776,  182,  182,  742,
2218       182,  747, 1777, 1778,  182, 1779,  182,  182,  182,  744,
2219       744,  744, 1780,  744, 1795, 1796,  744,  748,  748,  748,
2220      1787,  748, 1797, 1798,  748,  742, 1802,  737,  749,  749,
2221       749,  750,  750,  750,  751,  751,  751, 1803,  751, 1804,
2222
2223      1805,  751,  753,  753,  753,  749, 1807, 1808,  750,  754,
2224       754,  754,  756,  756,  756,  760,  760,  760, 1809, 1787,
2225       753,  762,  762,  762,  763,  763,  763,  754, 1810, 1815,
2226       756, 1816,  760,  765,  765,  765,  766,  766,  766,  762,
2227       766, 1817,  763,  766,  772,  772,  772,  773,  773,  773,
2228      1818,  765,  775,  775,  775,  777,  777,  777,  778,  778,
2229       778, 1819,  772, 1820, 1823,  773, 1824, 1825,  756, 1826,
2230       775, 1827, 1828,  777, 1843, 1845,  778,  765,  780,  780,
2231       780,  782,  782,  782, 1837,  782, 1839, 1847,  782,  789,
2232       789,  789,  790,  790,  790, 1840,  780,  792,  792,  792,
2233
2234      1839,  793,  793,  793, 1849,  793, 1840,  789,  793, 1853,
2235       790,  797,  797,  797,  775,  792,  798,  798,  798,  800,
2236       800,  800, 1854,  803,  803,  803, 1837,  803, 1855,  797,
2237       803,  809,  809,  809,  798, 1856, 1861,  800,  780,  806,
2238       806,  806, 1863,  806, 1862, 1864,  806, 1861,  809,  810,
2239       810,  810, 1866,  810, 1867, 1862,  810, 1869,  792,  815,
2240       815,  815,  816,  816,  816,  818,  818,  818,  819,  819,
2241       819, 1870,  819, 1872, 1873,  819,  800,  815, 1879, 1879,
2242       816, 1880, 1878,  818,  822,  822,  822,  823,  823,  823,
2243       825,  825,  825,  827,  827,  827, 1878,  827, 1882, 1877,
2244
2245       827, 1884,  822, 1885, 1886,  823, 1887, 1892,  825,  833,
2246       833,  833,  834,  834,  834,  836,  836,  836,  838,  838,
2247       838, 1881,  839,  839,  839, 1893,  839,  833,  818,  839,
2248       834, 1894, 1881,  836, 1895,  838, 1877,  840,  840,  840,
2249       841,  841,  841, 1907,  841, 1908, 1909,  841,  844,  844,
2250       844, 1911, 1912,  825,  840,  845,  845,  845,  847,  847,
2251       847,  849,  849,  849, 1913, 1914,  844, 1921,  850,  850,
2252       850,  836,  850,  845, 1924,  850,  847, 1925,  849,  852,
2253       852,  852,  853,  853,  853, 1926,  853, 1927, 1931,  853,
2254       854,  854,  854,  855,  855,  855,  852,  857,  857,  857,
2255
2256       858,  858,  858, 1945,  858, 1949, 1950,  858,  854, 1951,
2257      1952,  855,  861,  861,  861,  857,  862,  862,  862, 1955,
2258      1957,  847,  864,  864,  864,  866,  866,  866, 1958, 1959,
2259       861,  869,  869,  869,  862,  870,  870,  870, 1960, 1961,
2260       864, 1955,  866,  872,  872,  872,  875,  875,  875,  869,
2261       876,  876,  876,  870,  878,  878,  878,  880,  880,  880,
2262       857,  872, 1965, 1966,  875,  888,  888,  888,  876,  915,
2263       915,  915,  878, 1967, 1964,  880,  880, 1968,  864,  905,
2264       905,  905, 1969,  888, 1974, 1975,  915,  916,  916,  916,
2265      1976,  916, 1964,  905,  916,  917,  917,  917, 1972, 1977,
2266
2267       872,  918,  918,  918,  878,  919,  919,  919, 1983,  919,
2268      1985, 1989,  919,  917,  922,  922,  922, 1972,  918,  924,
2269       924,  924, 2021,  924, 1989, 1980,  924,  888,  927,  927,
2270       927, 1980,  922,  928,  928,  928, 2007,  928, 1396, 1395,
2271       928,  933,  933,  933, 2003,  927,  929,  929,  929,  917,
2272       929, 2004, 2011,  929,  937,  937,  937, 2008, 2012,  933,
2273       922,  938,  938,  938, 2021,  938, 2022, 2015,  938, 1394,
2274      2007,  937,  940,  940,  940,  944,  944,  944,  946,  946,
2275       946,  950,  950,  950,  951,  951,  951, 2003,  933, 2011,
2276       940, 2008, 2031,  944, 2004, 2012,  946, 2016,  950, 2015,
2277
2278      2029,  951,  952,  952,  952,  953,  953,  953, 2022, 1393,
2279       954,  954,  954,  955,  955,  955, 1392, 2030,  940, 2037,
2280       952, 2031,  953,  956,  956,  956,  946,  951,  954, 2016,
2281       955,  957,  957,  957, 2029,  957, 2042, 2032,  957, 2038,
2282       956,  960,  960,  960,  961,  961,  961, 2042,  962,  962,
2283       962, 2030,  963,  963,  963,  964,  964,  964,  960, 1384,
2284      2035,  961, 1383, 2037,  952,  962, 2032, 1382,  954,  963,
2285       965,  965,  965,  964,  969,  969,  969,  970,  970,  970,
2286       972,  972,  972, 2038,  972,  956, 2036,  972,  965, 2035,
2287      2033,  969,  962, 2034, 2039,  970,  975,  975,  975, 2033,
2288
2289       975, 1381, 2034,  975, 1380,  979,  979,  979, 1379, 2040,
2290       961,  980,  980,  980, 2041, 2036,  964,  969,  963,  979,
2291       982,  982,  982, 2039,  982, 1378, 1377,  982, 2041,  980,
2292       970, 1373,  965,  986,  986,  986, 1370,  986, 2040, 1367,
2293       986,  989,  989,  989,  990,  990,  990,  992,  992,  992,
2294       993,  993,  993, 1365,  993, 1363, 1359,  993, 1358,  989,
2295      1339, 1337,  990, 1336,  992,  996,  996,  996,  998,  998,
2296       998, 1326, 1321,  980,  999,  999,  999, 1002, 1002, 1002,
2297      1010, 1010, 1010,  996, 1318,  998, 1022, 1022, 1022, 1036,
2298      1036, 1036,  999, 1036, 1317, 1002, 1036,  990, 1010, 1314,
2299
2300      1022, 1300, 1297,  989, 1023, 1023, 1023, 1029, 1029, 1029,
2301      1296,  996, 1030, 1030, 1030, 1134, 1134, 1134, 1023, 1295,
2302      1280, 1029, 1032, 1032, 1032, 1002, 1030, 1279, 1278, 1010,
2303      1034, 1034, 1034, 1035, 1035, 1035, 1032,  999, 1039, 1039,
2304      1039, 1002, 1277, 1276, 1034, 1275, 1022, 1035, 1040, 1040,
2305      1040, 1274, 1040, 1273, 1270, 1040, 1039, 1045, 1045, 1045,
2306      1268, 1047, 1047, 1047, 1267, 1047, 1264, 1029, 1047, 1051,
2307      1051, 1051, 1055, 1055, 1055, 1045, 1055, 1263, 1261, 1055,
2308      1259, 1253, 1032, 1251, 1059, 1059, 1059, 1051, 1248, 1247,
2309      1034, 1060, 1060, 1060, 1061, 1061, 1061, 1062, 1062, 1062,
2310
2311      1243, 1039, 1059, 1237, 1229, 1045, 1227, 1226, 1060, 1225,
2312      1218, 1061, 1212, 1211, 1062, 1063, 1063, 1063, 1065, 1065,
2313      1065, 1066, 1066, 1066, 1210, 1208, 1051, 1070, 1070, 1070,
2314      1206, 1183, 1059, 1063, 1182, 1065, 1071, 1071, 1071, 1066,
2315      1071, 1181, 1176, 1071, 1070, 1072, 1072, 1072, 1061, 1073,
2316      1073, 1073, 1175, 1073, 1174, 1164, 1073, 1075, 1075, 1075,
2317      1163, 1162, 1072, 1161, 1160, 1066, 1076, 1076, 1076, 1077,
2318      1077, 1077, 1159, 1077, 1158, 1075, 1077, 1078, 1078, 1078,
2319      1079, 1079, 1079, 1076, 1080, 1080, 1080, 1157, 1080, 1156,
2320      1154, 1080, 1081, 1081, 1081, 1078, 1152, 1079, 1082, 1082,
2321
2322      1082, 1083, 1083, 1083, 1151, 1083, 1149, 1148, 1083, 1081,
2323      1084, 1084, 1084, 1146, 1145, 1082, 1085, 1085, 1085, 1086,
2324      1086, 1086, 1087, 1087, 1087, 1144, 1142, 1084, 1088, 1088,
2325      1088, 1138, 1137, 1085, 1136, 1133, 1086, 1092, 1092, 1092,
2326      1087, 1093, 1093, 1093, 1130, 1093, 1088, 1129, 1093, 1095,
2327      1095, 1095, 1128, 1127, 1092, 1096, 1096, 1096, 1097, 1097,
2328      1097, 1099, 1099, 1099, 1100, 1100, 1100, 1095, 1126, 1125,
2329      1085, 1124, 1096, 1119, 1111, 1097, 1088, 1109, 1108, 1099,
2330      1104, 1100, 1098, 1094, 1087, 1101, 1101, 1101, 1102, 1102,
2331      1102, 1091, 1090, 1103, 1103, 1103, 1105, 1105, 1105, 1089,
2332
2333      1105, 1074, 1101, 1105, 1069, 1068, 1102, 1103, 1067, 1099,
2334      1058, 1103, 1110, 1110, 1110, 1112, 1112, 1112, 1097, 1113,
2335      1113, 1113, 1054, 1113, 1053, 1050, 1113, 1046, 1101, 1044,
2336      1110, 1043, 1112, 1114, 1114, 1114, 1102, 1120, 1120, 1120,
2337      1121, 1121, 1121, 1033, 1122, 1122, 1122, 1123, 1123, 1123,
2338      1031, 1114, 1028, 1025, 1120, 1024, 1021, 1121, 1019, 1018,
2339      1110, 1122, 1135, 1135, 1135, 1123, 1139, 1139, 1139, 1140,
2340      1140, 1140, 1141, 1141, 1141, 1143, 1143, 1143, 1147, 1147,
2341      1147, 1150, 1150, 1150, 1153, 1153, 1153, 1017, 1114, 1155,
2342      1155, 1155, 1121, 1165, 1165, 1165, 1147, 1015, 1013, 1150,
2343
2344      1012, 1122, 1153, 1011, 1123, 1008, 1155, 1165, 1244, 1244,
2345      1244, 1165, 1166, 1166, 1166, 1167, 1167, 1167, 1007, 1167,
2346      1004, 1001, 1167,  997,  995, 1147, 1168, 1168, 1168, 1166,
2347      1169, 1169, 1169, 1170, 1170, 1170,  994, 1170,  991, 1153,
2348      1170,  985,  981, 1168, 1171, 1171, 1171, 1169, 1172, 1172,
2349      1172,  978, 1172,  971,  968, 1172, 1173, 1173, 1173,  967,
2350       966, 1171, 1177, 1177, 1177,  949, 1177,  948,  947, 1177,
2351       945, 1180, 1180, 1180, 1173, 1180,  943,  942, 1180, 1184,
2352      1184, 1184, 1186, 1186, 1186,  941, 1186,  939,  936, 1186,
2353      1189, 1189, 1189,  935, 1191, 1191, 1191, 1184, 1191,  932,
2354
2355       923, 1191, 1173, 1194, 1194, 1194,  921,  920, 1189, 1195,
2356      1195, 1195,  914, 1195,  913,  912, 1195, 1196, 1196, 1196,
2357      1194, 1196,  911,  910, 1196, 1199, 1199, 1199, 1200, 1200,
2358      1200,  909, 1200,  907,  906, 1200, 1201, 1201, 1201, 1202,
2359      1202, 1202, 1199, 1203, 1203, 1203,  903, 1203,  902,  901,
2360      1203,  899,  898, 1201,  896,  895, 1202, 1204, 1204, 1204,
2361      1205, 1205, 1205, 1207, 1207, 1207, 1209, 1209, 1209,  893,
2362      1209,  891,  890, 1209,  889, 1204,  887,  886, 1205,  885,
2363      1207, 1213, 1213, 1213, 1215, 1215, 1215, 1216, 1216, 1216,
2364       884, 1216,  883,  874, 1216, 1217, 1217, 1217,  873, 1213,
2365
2366       868, 1215, 1220, 1220, 1220, 1204, 1207, 1219, 1219, 1219,
2367       867,  865, 1217, 1222, 1222, 1222, 1223, 1223, 1223, 1220,
2368      1205, 1219, 1221, 1221, 1221, 1219, 1221,  851,  848, 1221,
2369      1222, 1224, 1224, 1224, 1223, 1228, 1228, 1228, 1230, 1230,
2370      1230,  843, 1230,  842,  837, 1230,  832, 1217,  831, 1224,
2371      1233, 1233, 1233, 1228, 1238, 1238, 1238, 1239, 1239, 1239,
2372       830, 1239,  826,  814, 1239, 1240, 1240, 1240, 1233,  813,
2373      1222, 1238, 1241, 1241, 1241,  812,  811, 1224,  802, 1242,
2374      1242, 1242, 1240, 1245, 1245, 1245, 1246, 1246, 1246, 1241,
2375      1249, 1249, 1249, 1250, 1250, 1250, 1228, 1242, 1233, 1252,
2376
2377      1252, 1252, 1254, 1254, 1254, 1255, 1255, 1255, 1256, 1256,
2378      1256, 1257, 1257, 1257, 1258, 1258, 1258, 1260, 1260, 1260,
2379       801, 1240, 1262, 1262, 1262, 1265, 1265, 1265, 1269, 1269,
2380      1269, 1271, 1271, 1271,  796, 1241, 1282, 1282, 1282, 1242,
2381      1262,  788,  787, 1265,  786,  785, 1269,  781, 1271, 1272,
2382      1272, 1272,  776, 1272, 1282,  771, 1272, 1281, 1281, 1281,
2383      1283, 1283, 1283,  770, 1283,  769,  761, 1283,  759,  758,
2384      1262, 1286, 1286, 1286, 1281,  752, 1287, 1287, 1287,  743,
2385      1287,  738, 1282, 1287,  727, 1288, 1288, 1288, 1286, 1288,
2386       726,  725, 1288, 1291, 1291, 1291,  724, 1291,  722,  720,
2387
2388      1291, 1294, 1294, 1294, 1301, 1301, 1301,  719, 1301,  718,
2389       717, 1301,  716, 1304, 1304, 1304,  715, 1304,  714, 1294,
2390      1304, 1307, 1307, 1307, 1308, 1308, 1308,  712, 1308,  711,
2391       709, 1308, 1309, 1309, 1309,  708, 1309,  707, 1307, 1309,
2392      1312, 1312, 1312, 1313, 1313, 1313, 1315, 1315, 1315, 1316,
2393      1316, 1316, 1294, 1316,  706,  705, 1316,  704, 1312,  703,
2394       698, 1313,  697, 1315, 1322, 1322, 1322,  696, 1322,  695,
2395       692, 1322, 1325, 1325, 1325, 1327, 1327, 1327, 1328, 1328,
2396      1328,  691, 1328,  690,  688, 1328, 1331, 1331, 1331, 1325,
2397      1332, 1332, 1332, 1327, 1334, 1334, 1334, 1335, 1335, 1335,
2398
2399      1312,  684,  681, 1331, 1338, 1338, 1338,  680, 1332, 1341,
2400      1341, 1341, 1334,  677, 1335, 1340, 1340, 1340, 1325, 1344,
2401      1344, 1344, 1338,  676, 1345, 1345, 1345, 1341, 1345,  675,
2402      1327, 1345,  674, 1340, 1348, 1348, 1348, 1349, 1349, 1349,
2403       666,  664, 1331, 1350, 1350, 1350, 1351, 1351, 1351,  661,
2404       660, 1348,  657,  654, 1349,  653, 1334, 1352, 1352, 1352,
2405       652, 1350, 1353, 1353, 1353, 1338, 1354, 1354, 1354,  649,
2406       642, 1340, 1355, 1355, 1355, 1356, 1356, 1356, 1357, 1357,
2407      1357, 1360, 1360, 1360, 1361, 1361, 1361, 1348, 1362, 1362,
2408      1362, 1364, 1364, 1364, 1366, 1366, 1366,  641, 1350, 1349,
2409
2410      1369, 1369, 1369, 1371, 1371, 1371, 1374, 1374, 1374,  640,
2411      1374,  639, 1366, 1374, 1385, 1385, 1385, 1369, 1386, 1386,
2412      1386, 1371, 1386,  630,  625, 1386, 1387, 1387, 1387,  624,
2413       623, 1385, 1388, 1388, 1388,  622, 1388,  619,  616, 1388,
2414      1391, 1391, 1391,  613, 1387, 1400, 1400, 1400,  612, 1400,
2415       611,  606, 1400, 1403, 1403, 1403,  605,  604, 1391, 1404,
2416      1404, 1404, 1406, 1406, 1406, 1407, 1407, 1407,  603, 1407,
2417       602, 1403, 1407, 1421, 1421, 1421,  599, 1404,  597, 1406,
2418      1422, 1422, 1422, 1387, 1423, 1423, 1423, 1428, 1428, 1428,
2419      1421,  593, 1429, 1429, 1429, 1430, 1430, 1430,  589, 1431,
2420
2421      1431, 1431, 1423, 1431, 1428, 1406, 1431, 1432, 1432, 1432,
2422      1429,  588, 1430, 1434, 1434, 1434, 1435, 1435, 1435, 1436,
2423      1436, 1436,  585,  582, 1432, 1437, 1437, 1437,  581,  580,
2424      1428, 1434, 1440, 1440, 1440,  579,  578, 1436, 1441, 1441,
2425      1441,  577,  576, 1437, 1442, 1442, 1442, 1423, 1429, 1443,
2426      1443, 1443, 1444, 1444, 1444, 1441, 1445, 1445, 1445,  575,
2427       574, 1442, 1446, 1446, 1446,  573,  572, 1443, 1451, 1451,
2428      1451, 1454, 1454, 1454,  571, 1455, 1455, 1455,  570, 1455,
2429       569, 1436, 1455, 1437,  568,  567, 1451,  566, 1454, 1470,
2430      1470, 1470, 1442, 1470,  565,  564, 1470, 1473, 1473, 1473,
2431
2432      1474, 1474, 1474, 1483, 1483, 1483, 1484, 1484, 1484, 1486,
2433      1486, 1486, 1487, 1487, 1487, 1473, 1487,  563, 1474, 1487,
2434      1483, 1495, 1495, 1495, 1484,  562, 1486, 1502, 1502, 1502,
2435      1503, 1503, 1503,  561, 1503,  560,  559, 1503, 1495, 1504,
2436      1504, 1504,  558,  557, 1502, 1505, 1505, 1505, 1512, 1512,
2437      1512,  554,  553, 1473, 1513, 1513, 1513, 1514, 1514, 1514,
2438       552, 1514,  550, 1505, 1514, 1512, 1517, 1517, 1517, 1518,
2439      1518, 1518, 1513, 1518,  549,  548, 1518, 1519, 1519, 1519,
2440      1520, 1520, 1520, 1517, 1522, 1522, 1522, 1523, 1523, 1523,
2441      1527, 1527, 1527,  547, 1519, 1512,  546,  542, 1520, 1505,
2442
2443       540, 1529, 1529, 1529,  539, 1523,  538, 1527,  537, 1512,
2444      1528, 1528, 1528,  534, 1528,  533,  532, 1528, 1529, 1530,
2445      1530, 1530, 1536, 1536, 1536, 1537, 1537, 1537,  531, 1537,
2446       530,  529, 1537, 1554, 1554, 1554,  526, 1530,  522, 1536,
2447      1560, 1560, 1560, 1561, 1561, 1561,  521, 1561,  520,  519,
2448      1561, 1554, 1562, 1562, 1562,  518, 1562, 1560,  515, 1562,
2449      1570, 1570, 1570, 1571, 1571, 1571,  514, 1571,  513,  512,
2450      1571, 1578, 1578, 1578,  511, 1578,  510, 1570, 1578, 1581,
2451      1581, 1581, 1588, 1588, 1588, 1589, 1589, 1589,  507, 1554,
2452      1590, 1590, 1590,  506, 1592, 1592, 1592, 1581, 1592, 1588,
2453
2454       505, 1592, 1589, 1595, 1595, 1595,  504,  502, 1590, 1596,
2455      1596, 1596,  499, 1596,  495,  494, 1596, 1597, 1597, 1597,
2456      1595, 1602, 1602, 1602,  493, 1602,  492,  491, 1602, 1605,
2457      1605, 1605, 1606, 1606, 1606, 1597, 1606,  490,  487, 1606,
2458       484, 1581,  483, 1588,  479, 1589, 1605, 1607, 1607, 1607,
2459      1609, 1609, 1609, 1611, 1611, 1611, 1612, 1612, 1612,  478,
2460      1612,  477,  476, 1612, 1618, 1618, 1618, 1631, 1631, 1631,
2461      1611, 1632, 1632, 1632,  475, 1635, 1635, 1635,  473, 1635,
2462       470, 1618, 1635,  469,  466, 1631,  465,  464, 1632, 1639,
2463      1639, 1639, 1641, 1641, 1641,  463, 1641,  459,  458, 1641,
2464
2465      1654, 1654, 1654, 1661, 1661, 1661, 1639, 1662, 1662, 1662,
2466      1672, 1672, 1672,  457, 1632, 1631,  456,  455, 1654,  451,
2467      1661, 1663, 1663, 1663, 1662, 1663,  450,  449, 1663, 1668,
2468      1668, 1668, 1669, 1669, 1669,  448, 1669,  447,  445, 1669,
2469      1674, 1674, 1674, 1683, 1683, 1683, 1668, 1668,  442, 1684,
2470      1684, 1684, 1654, 1662, 1676, 1676, 1676,  441, 1676,  439,
2471      1683, 1676, 1696, 1696, 1696, 1661, 1684, 1685, 1685, 1685,
2472       437, 1685,  434,  433, 1685, 1697, 1697, 1697,  430,  428,
2473      1696, 1698, 1698, 1698,  425, 1698,  424,  422, 1698, 1703,
2474      1703, 1703, 1697, 1704, 1704, 1704,  421, 1704,  420,  419,
2475
2476      1704, 1716, 1716, 1716,  418,  417, 1703,  414, 1696, 1723,
2477      1723, 1723, 1724, 1724, 1724, 1726, 1726, 1726,  413, 1716,
2478      1727, 1727, 1727, 1728, 1728, 1728, 1723, 1728,  412, 1724,
2479      1728,  411, 1726, 1726, 1729, 1729, 1729, 1727, 1727,  410,
2480       409, 1728, 1730, 1730, 1730, 1735, 1735, 1735,  408, 1736,
2481      1736, 1736, 1723, 1736,  407, 1724, 1736, 1737, 1737, 1737,
2482       406, 1737, 1735,  403, 1737, 1750, 1750, 1750, 1751, 1751,
2483      1751,  402, 1751,  401,  400, 1751, 1758, 1758, 1758,  399,
2484      1759, 1759, 1759, 1750, 1759,  393,  392, 1759, 1762, 1762,
2485      1762,  390,  384, 1758, 1773, 1773, 1773, 1781, 1781, 1781,
2486
2487      1782, 1782, 1782,  380, 1782, 1762,  377, 1782, 1783, 1783,
2488      1783,  376, 1773,  372, 1781, 1784, 1784, 1784,  371, 1785,
2489      1785, 1785,  370, 1785,  369, 1783, 1785, 1750, 1786, 1786,
2490      1786,  365, 1784, 1788, 1788, 1788, 1789, 1789, 1789,  359,
2491      1789,  355,  352, 1789,  348, 1786, 1793, 1793, 1793,  347,
2492      1788, 1788,  346,  345, 1789,  341, 1790, 1790, 1790,  338,
2493      1790,  332,  331, 1790, 1794, 1794, 1794,  327, 1799, 1799,
2494      1799,  324, 1799, 1783, 1790, 1799, 1812, 1812, 1812,  319,
2495      1812,  318,  317, 1812,  313, 1806, 1806, 1806,  307, 1811,
2496      1811, 1811,  303, 1786, 1791, 1791, 1791, 1791, 1791, 1791,
2497
2498      1791, 1791, 1791, 1806,  297, 1791, 1811, 1813, 1813, 1813,
2499      1791, 1791, 1791, 1791, 1791, 1814, 1814, 1814,  296, 1814,
2500       294,  293, 1814,  288, 1813, 1829, 1829, 1829,  282, 1829,
2501       281,  277, 1829, 1832, 1832, 1832, 1791, 1791, 1792, 1792,
2502      1792, 1792, 1792, 1792, 1792, 1792, 1792,  274,  270, 1792,
2503      1832, 1836, 1836, 1836, 1792, 1792, 1792, 1792, 1792, 1833,
2504      1833, 1833,  269, 1833,  268,  266, 1833,  262, 1836, 1838,
2505      1838, 1838,  259, 1838,  256,  254, 1838, 1851, 1851, 1851,
2506      1792, 1792, 1857, 1857, 1857, 1832, 1857, 1838,  250, 1857,
2507      1860, 1860, 1860,  244, 1860, 1851,  243, 1860,  242, 1875,
2508
2509      1875, 1875,  241, 1836, 1841, 1841, 1841, 1841, 1841, 1841,
2510      1841, 1841, 1841,  237,  231, 1841, 1875, 1876, 1876, 1876,
2511      1841, 1841, 1841, 1841, 1841, 1883, 1883, 1883, 1888, 1888,
2512      1888, 1916, 1916, 1916, 1876, 1916,  230,  229, 1916,  228,
2513      1889, 1889, 1889, 1883, 1883, 1888, 1841, 1841, 1842, 1842,
2514      1842, 1842, 1842, 1842, 1842, 1842, 1842, 1889,  224, 1842,
2515       221, 1875,  216,  214, 1842, 1842, 1842, 1842, 1842, 1890,
2516      1890, 1890, 1891, 1891, 1891, 1904, 1904, 1904,  213, 1876,
2517      1905, 1905, 1905, 1906, 1906, 1906, 1890,  209,  206, 1891,
2518      1842, 1842, 1904, 1910, 1910, 1910,  204, 1905, 1915, 1915,
2519
2520      1915, 1906, 1917, 1917, 1917,  203, 1918, 1918, 1918,  202,
2521      1918, 1910, 1890, 1918,  198, 1915, 1919, 1919, 1919, 1917,
2522      1920, 1920, 1920,  192, 1920,  188, 1904, 1920, 1922, 1922,
2523      1922, 1905,  184, 1919,  178, 1923, 1923, 1923,  177, 1923,
2524       173, 1910, 1923,  169,  168, 1922, 1928, 1928, 1928, 1929,
2525      1929, 1929, 1930, 1930, 1930, 1936, 1936, 1936,  167, 1936,
2526       161,  160, 1936, 1928,  158,  155, 1929, 1939, 1939, 1939,
2527      1930, 1939,  143,    0, 1939, 1942, 1942, 1942,    0, 1942,
2528         0,    0, 1942, 1946, 1946, 1946,    0, 1946, 1930, 1928,
2529      1946,    0, 1929, 1953, 1953, 1953, 1954, 1954, 1954, 1962,
2530
2531      1962, 1962, 1963, 1963, 1963, 1970, 1970, 1970,    0,    0,
2532      1953,    0,    0, 1954,    0,    0, 1962,    0,    0, 1963,
2533         0,    0, 1970, 1971, 1971, 1971, 1973, 1973, 1973, 1978,
2534      1978, 1978, 1979, 1979, 1979, 1981, 1981, 1981,    0,    0,
2535      1971,    0,    0, 1973,    0,    0, 1978,    0,    0, 1979,
2536      1953,    0, 1981, 1954,    0,    0, 1970,    0, 1982, 1982,
2537      1982, 1962, 1982,    0, 1963, 1982, 1987, 1987, 1987, 1988,
2538      1988, 1988,    0,    0, 1971,    0,    0, 1978,    0,    0,
2539      1979,    0,    0, 1987,    0,    0, 1988, 1990, 1990, 1990,
2540         0, 1990,    0,    0, 1990, 1995, 1995, 1995, 1996, 1996,
2541
2542      1996, 1997, 1997, 1997, 1998, 1998, 1998, 1999, 1999, 1999,
2543         0,    0, 1995,    0,    0, 1996, 2000, 2000, 2000, 1997,
2544      2000, 1998,    0, 2000, 1999,    0, 1987,    0,    0, 1988,
2545      2001, 2001, 2001,    0, 2000, 2002, 2002, 2002, 1995,    0,
2546         0, 1996, 2005, 2005, 2005,    0,    0, 2001,    0, 2006,
2547      2006, 2006, 2002, 2009, 2009, 2009, 2010, 2010, 2010, 2005,
2548      2013, 2013, 2013,    0,    0, 1998, 2006, 1999,    0,    0,
2549      2009,    0,    0, 2010, 2014, 2014, 2014, 2013, 2001, 2017,
2550      2017, 2017,    0, 2002,    0, 2018, 2018, 2018,    0, 2018,
2551         0, 2014, 2018,    0,    0, 2006, 2017,    0, 2005,    0,
2552
2553      2009, 2019, 2019, 2019, 2020, 2020, 2020,    0, 2020,    0,
2554         0, 2020, 2023, 2023, 2023,    0, 2023,    0, 2019, 2023,
2555      2010, 2026, 2026, 2026,    0, 2026,    0,    0, 2026, 2043,
2556      2043, 2043, 2044, 2044, 2044,    0,    0,    0,    0,    0,
2557         0,    0,    0,    0,    0,    0,    0, 2043,    0,    0,
2558      2044, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2559      2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2049,
2560      2049, 2049, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050,
2561      2050, 2050, 2050, 2050, 2050, 2050, 2050, 2051, 2051, 2051,
2562      2051, 2051, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052,
2563
2564      2052, 2052, 2052, 2052, 2052, 2053, 2053, 2053, 2053, 2053,
2565      2053, 2053, 2053, 2053, 2054, 2054, 2054, 2054, 2054, 2054,
2566      2054, 2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
2567      2055, 2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
2568      2056, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057,
2569      2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059,
2570      2059, 2059, 2059, 2059, 2059, 2059, 2059, 2059, 2060, 2060,
2571      2060, 2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061,
2572      2061, 2061, 2061, 2061, 2061, 2061, 2062, 2062, 2062, 2062,
2573      2062, 2062, 2062, 2062, 2062, 2063, 2063, 2063, 2063, 2063,
2574
2575      2063, 2063, 2063, 2063, 2064, 2064, 2064, 2064, 2064, 2064,
2576      2064, 2064, 2064, 2065, 2065, 2065, 2065, 2065, 2065, 2065,
2577      2065, 2065, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066,
2578      2066, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067,
2579      2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2069,
2580      2069, 2069, 2069, 2069, 2069, 2069, 2069, 2069, 2070, 2070,
2581      2070, 2070, 2070, 2070, 2070, 2070, 2070, 2071, 2071, 2071,
2582      2071, 2071, 2071, 2071, 2071, 2071, 2072, 2072, 2072, 2072,
2583      2072, 2072, 2072, 2072, 2072, 2073, 2073, 2073, 2073, 2073,
2584      2073, 2073, 2073, 2073, 2074, 2074, 2074, 2074, 2074, 2074,
2585
2586      2074, 2074, 2074, 2075, 2075, 2075, 2075, 2075, 2075, 2075,
2587      2075, 2075, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
2588      2076, 2077, 2077, 2077, 2077, 2077, 2077, 2077, 2077, 2077,
2589      2078, 2078, 2078, 2078, 2078, 2078, 2078, 2078, 2078, 2079,
2590      2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2080, 2080,
2591      2080, 2080, 2080, 2080, 2080, 2080, 2080, 2081, 2081, 2081,
2592      2081, 2081, 2081, 2081, 2081, 2081, 2082, 2082, 2082, 2082,
2593      2082, 2082, 2082, 2082, 2082, 2083, 2083, 2083, 2083, 2083,
2594      2083, 2083, 2083, 2083, 2084, 2084, 2084, 2084, 2084, 2084,
2595      2084, 2084, 2084, 2085, 2085, 2085, 2085, 2085, 2085, 2085,
2596
2597      2085, 2085, 2086, 2086, 2086,    0,    0,    0, 2086, 2087,
2598      2087, 2087,    0,    0,    0, 2087, 2088, 2088, 2088,    0,
2599         0,    0, 2088, 2089, 2089, 2089,    0,    0,    0, 2089,
2600      2090, 2090, 2090,    0,    0,    0, 2090, 2091, 2091, 2091,
2601         0,    0,    0, 2091, 2092, 2092, 2092,    0,    0,    0,
2602      2092, 2093, 2093, 2093,    0,    0,    0, 2093, 2094, 2094,
2603      2094,    0,    0,    0, 2094, 2095, 2095, 2095,    0,    0,
2604         0, 2095, 2096, 2096, 2096,    0,    0,    0, 2096, 2097,
2605      2097, 2097,    0,    0,    0, 2097, 2098, 2098, 2098,    0,
2606         0,    0, 2098, 2099, 2099, 2099,    0,    0,    0, 2099,
2607
2608      2100, 2100, 2100,    0,    0,    0, 2100, 2101, 2101, 2101,
2609         0,    0,    0, 2101, 2102, 2102, 2102,    0,    0,    0,
2610      2102, 2103, 2103, 2103, 2103, 2103, 2103, 2103,    0, 2103,
2611      2104,    0,    0,    0, 2104, 2105,    0,    0,    0, 2105,
2612      2106,    0,    0,    0, 2106, 2107,    0,    0,    0, 2107,
2613      2108,    0,    0,    0, 2108, 2109,    0,    0,    0, 2109,
2614      2110,    0,    0,    0, 2110, 2111,    0,    0,    0, 2111,
2615      2112,    0,    0,    0, 2112, 2113, 2113, 2113,    0,    0,
2616         0, 2113, 2114,    0,    0,    0, 2114, 2115, 2115, 2115,
2617         0,    0,    0, 2115, 2116,    0,    0,    0, 2116, 2117,
2618
2619      2117, 2117,    0,    0,    0, 2117, 2118,    0,    0,    0,
2620      2118, 2119, 2119, 2119,    0,    0,    0, 2119, 2120,    0,
2621         0,    0, 2120, 2121, 2121, 2121,    0,    0,    0, 2121,
2622      2122,    0,    0,    0, 2122, 2123, 2123, 2123,    0,    0,
2623         0, 2123, 2124,    0,    0,    0, 2124, 2125, 2125, 2125,
2624         0,    0,    0, 2125, 2126,    0,    0,    0, 2126, 2127,
2625      2127, 2127,    0,    0,    0, 2127, 2128,    0,    0,    0,
2626      2128, 2129, 2129, 2129, 2129, 2129, 2129, 2129, 2129, 2129,
2627      2130,    0,    0,    0,    0, 2130, 2131, 2131, 2131,    0,
2628         0,    0, 2131, 2132, 2132, 2132, 2132,    0,    0, 2132,
2629
2630      2132, 2133, 2133, 2133,    0,    0,    0, 2133, 2134, 2134,
2631      2134, 2134,    0,    0, 2134, 2134, 2135, 2135, 2135,    0,
2632         0,    0, 2135, 2136, 2136, 2136, 2136,    0,    0, 2136,
2633      2136, 2137, 2137, 2137,    0,    0,    0, 2137, 2138, 2138,
2634      2138, 2138,    0,    0, 2138, 2138, 2139, 2139, 2139,    0,
2635         0,    0, 2139, 2140, 2140, 2140, 2140,    0,    0, 2140,
2636      2140, 2141, 2141, 2141,    0,    0,    0, 2141, 2142, 2142,
2637      2142, 2142,    0,    0, 2142, 2142, 2143, 2143, 2143,    0,
2638         0,    0, 2143, 2144, 2144, 2144, 2144,    0,    0, 2144,
2639      2144, 2145, 2145, 2145,    0,    0,    0, 2145, 2146, 2146,
2640
2641      2146, 2146,    0,    0, 2146, 2146, 2147, 2147, 2147,    0,
2642         0,    0, 2147, 2148, 2148, 2148, 2148,    0,    0, 2148,
2643      2148, 2149, 2149, 2149,    0,    0,    0, 2149, 2150, 2150,
2644      2150, 2150,    0,    0, 2150, 2150, 2151, 2151, 2151, 2151,
2645         0,    0, 2151, 2151, 2152, 2152, 2152,    0,    0,    0,
2646      2152, 2153, 2153, 2153, 2153,    0,    0, 2153, 2153, 2154,
2647      2154, 2154,    0,    0,    0, 2154, 2155, 2155, 2155, 2155,
2648         0,    0, 2155, 2155, 2156, 2156, 2156,    0,    0,    0,
2649      2156, 2157, 2157, 2157, 2157,    0,    0, 2157, 2157, 2158,
2650      2158, 2158, 2158,    0,    0, 2158, 2158, 2159, 2159, 2159,
2651
2652         0,    0,    0, 2159, 2160, 2160, 2160, 2160,    0,    0,
2653      2160, 2160, 2161, 2161, 2161,    0,    0,    0, 2161, 2162,
2654      2162, 2162, 2162,    0,    0, 2162, 2162, 2163, 2163, 2163,
2655      2163, 2163, 2163, 2163, 2163, 2163, 2164,    0, 2164,    0,
2656         0, 2164, 2165, 2165, 2165,    0,    0,    0, 2165, 2166,
2657      2166, 2166, 2166,    0,    0, 2166, 2166, 2167, 2167, 2167,
2658      2167,    0, 2167,    0, 2167, 2168, 2168, 2168, 2168,    0,
2659         0, 2168, 2168, 2169, 2169, 2169, 2169,    0, 2169,    0,
2660      2169, 2170, 2170, 2170, 2170,    0,    0, 2170, 2170, 2171,
2661      2171, 2171,    0,    0,    0, 2171, 2172, 2172, 2172, 2172,
2662
2663         0,    0, 2172, 2172, 2173, 2173, 2173,    0,    0,    0,
2664      2173, 2174, 2174, 2174, 2174,    0,    0, 2174, 2174, 2175,
2665      2175, 2175,    0,    0,    0, 2175, 2176, 2176, 2176, 2176,
2666         0,    0, 2176, 2176, 2177, 2177, 2177,    0,    0,    0,
2667      2177, 2178, 2178, 2178, 2178,    0,    0, 2178, 2178, 2179,
2668      2179, 2179,    0,    0,    0, 2179, 2180, 2180, 2180, 2180,
2669         0,    0, 2180, 2180, 2181, 2181, 2181,    0,    0,    0,
2670      2181, 2182, 2182, 2182, 2182,    0,    0, 2182, 2182, 2183,
2671      2183, 2183,    0,    0,    0, 2183, 2184, 2184, 2184, 2184,
2672         0,    0, 2184, 2184, 2185, 2185, 2185, 2185,    0,    0,
2673
2674      2185, 2185, 2186, 2186, 2186,    0,    0,    0, 2186, 2187,
2675      2187, 2187, 2187,    0,    0, 2187, 2187, 2188, 2188, 2188,
2676         0,    0,    0, 2188, 2189, 2189, 2189, 2189,    0,    0,
2677      2189, 2189, 2190, 2190, 2190,    0,    0,    0, 2190, 2191,
2678      2191, 2191, 2191,    0,    0, 2191, 2191, 2192, 2192, 2192,
2679      2192,    0,    0, 2192, 2192, 2193, 2193, 2193,    0,    0,
2680         0, 2193, 2194, 2194, 2194, 2194,    0,    0, 2194, 2194,
2681      2195, 2195, 2195,    0,    0,    0, 2195, 2196, 2196, 2196,
2682      2196,    0,    0, 2196, 2196, 2197, 2197, 2197, 2197, 2197,
2683      2197, 2197, 2197, 2197, 2198, 2198, 2198, 2198, 2198, 2198,
2684
2685      2198, 2198, 2198, 2199, 2199, 2199,    0,    0,    0, 2199,
2686      2200, 2200, 2200, 2200,    0,    0, 2200, 2200, 2201, 2201,
2687      2201, 2201,    0,    0, 2201, 2201, 2202, 2202, 2202,    0,
2688         0,    0, 2202, 2203, 2203, 2203, 2203,    0,    0, 2203,
2689      2203, 2204, 2204, 2204,    0,    0,    0, 2204, 2205, 2205,
2690      2205, 2205,    0,    0, 2205, 2205, 2206, 2206, 2206,    0,
2691         0,    0, 2206, 2207, 2207, 2207, 2207,    0,    0, 2207,
2692      2207, 2208, 2208, 2208,    0,    0,    0, 2208, 2209, 2209,
2693      2209, 2209,    0,    0, 2209, 2209, 2210, 2210, 2210,    0,
2694         0,    0, 2210, 2211, 2211, 2211, 2211,    0,    0, 2211,
2695
2696      2211, 2212, 2212, 2212,    0,    0,    0, 2212, 2213, 2213,
2697      2213, 2213,    0,    0, 2213, 2213, 2214, 2214, 2214, 2214,
2698         0, 2214,    0, 2214, 2215, 2215, 2215, 2215,    0,    0,
2699      2215, 2215, 2216, 2216, 2216, 2216,    0, 2216,    0, 2216,
2700      2217, 2217, 2217, 2217,    0,    0, 2217, 2217, 2218, 2218,
2701      2218, 2218,    0,    0, 2218, 2218, 2219, 2219, 2219,    0,
2702         0,    0, 2219, 2220, 2220, 2220, 2220,    0,    0, 2220,
2703      2220, 2221, 2221, 2221,    0,    0,    0, 2221, 2222, 2222,
2704      2222, 2222,    0,    0, 2222, 2222, 2223, 2223, 2223,    0,
2705         0,    0, 2223, 2224, 2224, 2224, 2224,    0,    0, 2224,
2706
2707      2224, 2225, 2225, 2225, 2225,    0,    0, 2225, 2225, 2226,
2708      2226, 2226,    0,    0,    0, 2226, 2227, 2227, 2227, 2227,
2709         0,    0, 2227, 2227, 2228, 2228, 2228, 2228,    0, 2228,
2710         0, 2228, 2229, 2229, 2229, 2229,    0,    0, 2229, 2229,
2711      2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2231,
2712      2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2232, 2232,
2713      2232,    0,    0,    0, 2232, 2233, 2233, 2233, 2233,    0,
2714         0, 2233, 2233, 2234, 2234, 2234, 2234,    0,    0, 2234,
2715      2234, 2235, 2235, 2235,    0,    0,    0, 2235, 2236, 2236,
2716      2236, 2236,    0,    0, 2236, 2236, 2237, 2237, 2237,    0,
2717
2718         0,    0, 2237, 2238, 2238, 2238, 2238,    0,    0, 2238,
2719      2238, 2239, 2239, 2239,    0,    0,    0, 2239, 2240, 2240,
2720      2240, 2240,    0,    0, 2240, 2240, 2241, 2241, 2241, 2241,
2721         0, 2241,    0, 2241, 2242, 2242, 2242, 2242,    0, 2242,
2722         0, 2242, 2243, 2243, 2243, 2243,    0,    0, 2243, 2243,
2723      2244, 2244, 2244,    0,    0,    0, 2244, 2245, 2245, 2245,
2724      2245,    0,    0, 2245, 2245, 2246, 2246, 2246, 2246,    0,
2725         0, 2246, 2246, 2247, 2247, 2247, 2247,    0, 2247,    0,
2726      2247, 2248, 2248, 2248, 2248,    0,    0, 2248, 2248, 2249,
2727      2249, 2249, 2249,    0,    0, 2249, 2249, 2250, 2250, 2250,
2728
2729         0,    0,    0, 2250, 2251, 2251, 2251, 2251,    0,    0,
2730      2251, 2251, 2252, 2252, 2252, 2252,    0, 2252,    0, 2252,
2731      2253, 2253, 2253, 2253,    0,    0, 2253, 2253, 2254, 2254,
2732      2254, 2254,    0, 2254,    0, 2254, 2255, 2255, 2255, 2255,
2733         0,    0, 2255, 2255, 2256, 2256, 2256, 2256,    0,    0,
2734      2256, 2256, 2257, 2257, 2257,    0,    0,    0, 2257, 2258,
2735      2258, 2258, 2258,    0,    0, 2258, 2258, 2259, 2259, 2259,
2736      2259,    0,    0, 2259, 2259, 2260, 2260, 2260, 2260, 2260,
2737      2260, 2260, 2260, 2260, 2261, 2261, 2261, 2261, 2261, 2261,
2738      2261, 2261, 2261, 2262, 2262, 2262, 2262,    0, 2262,    0,
2739
2740      2262, 2263, 2263, 2263, 2263,    0,    0, 2263, 2263, 2264,
2741      2264, 2264, 2264,    0,    0, 2264, 2264, 2265, 2265, 2265,
2742         0,    0,    0, 2265, 2266, 2266, 2266, 2266,    0,    0,
2743      2266, 2266, 2267, 2267, 2267,    0,    0,    0, 2267, 2268,
2744      2268, 2268, 2268,    0,    0, 2268, 2268, 2269, 2269, 2269,
2745         0,    0,    0, 2269, 2270, 2270, 2270, 2270,    0,    0,
2746      2270, 2270, 2271, 2271, 2271, 2271,    0, 2271,    0, 2271,
2747      2272, 2272, 2272, 2272,    0,    0, 2272, 2272, 2273, 2273,
2748      2273,    0,    0,    0, 2273, 2274, 2274, 2274, 2274, 2274,
2749      2274, 2274, 2274, 2274, 2275, 2275, 2275, 2275, 2275, 2275,
2750
2751      2275, 2275, 2275, 2276, 2276, 2276, 2276, 2276, 2276, 2276,
2752      2276, 2276, 2277, 2277, 2277, 2277, 2277, 2277, 2277, 2277,
2753      2277, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278, 2278,
2754      2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2046,
2755      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2756      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2757      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2758      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2759      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2760      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2761
2762      2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046
2763     } ;
2764
2765 /* Table of booleans, true if rule could match eol. */
2766 static yyconst flex_int32_t yy_rule_can_match_eol[354] =
2767     {   0,
2768 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2769     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2770     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 
2771     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2772     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2773     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2774     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
2775     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2776     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
2777     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2778     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
2779     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
2780     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
2781     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2782     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
2783     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2784     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2785     1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2786
2787 static yy_state_type yy_last_accepting_state;
2788 static char *yy_last_accepting_cpos;
2789
2790 extern int surf_parse__flex_debug;
2791 int surf_parse__flex_debug = 0;
2792
2793 /* The intent behind this definition is that it'll catch
2794  * any uses of REJECT which flex missed.
2795  */
2796 #define REJECT reject_used_but_not_detected
2797 #define yymore() yymore_used_but_not_detected
2798 #define YY_MORE_ADJ 0
2799 #define YY_RESTORE_YY_MORE_OFFSET
2800 char *surf_parse_text;
2801 /* Validating XML processor for surf/simgrid.dtd.
2802  * Generated 2008/01/23 16:38:27.
2803  *
2804  * This program was generated with the FleXML XML processor generator.
2805  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2806  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2807  * (Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp).
2808  * 
2809  * There are two, intertwined parts to this program, part A and part B.
2810  *
2811  * Part A
2812  * ------
2813  * 
2814  * Some parts, here collectively called "Part A", are found in the 
2815  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2816  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2817  *
2818  * You can redistribute, use, perform, display and/or modify "Part A"
2819  * provided the following two conditions hold:
2820  *
2821  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2822  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2823  *    FITNESS FOR A PARTICULAR PURPOSE.
2824  *
2825  * 2. The program distribution conditions do not in any way affect the
2826  *    distribution conditions of the FleXML system used to generate this
2827  *    file or any version of FleXML derived from that system.
2828  *
2829  * Notice that these are explicit rights granted to you for files
2830  * generated by the FleXML system.  For your rights in connection with
2831  * the FleXML system itself please consult the GNU General Public License.
2832  * 
2833  * Part B
2834  * ------
2835  * 
2836  * The other parts, here collectively called "Part B", and which came 
2837  * from the DTD used by FleXML to generate this program, can be 
2838  * distributed (or not, as the case may be) under the terms of whoever
2839  * wrote them, provided these terms respect and obey the two conditions 
2840  * above under the heading "Part A".
2841  *
2842  * The author of and contributors to FleXML specifically disclaim
2843  * any copyright interest in "Part B", unless "Part B" was written 
2844  * by the author of or contributors to FleXML.
2845  * 
2846  */
2847
2848 /* Version strings. */
2849 const char rcs_surfxml_flexml_skeleton[] =
2850  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2851 const char rcs_surfxml_flexml[] =
2852  "$" "Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp $";
2853
2854 /* ANSI headers. */
2855 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2856 #include <stdio.h>
2857 #include <string.h>
2858 #include <assert.h>
2859 #include <stdarg.h>
2860 #include <ctype.h>
2861      
2862 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2863 # ifndef __STRICT_ANSI__
2864 #  include <io.h>
2865 #  include <process.h>
2866 # endif
2867 #else
2868 # include <unistd.h>
2869 #endif
2870      
2871 #ifndef FLEXML_INDEXSTACKSIZE
2872 #define FLEXML_INDEXSTACKSIZE 1000
2873 #endif
2874
2875 /* Generated definitions. */
2876 #define FLEXML_yylineno
2877 #ifndef FLEXML_BUFFERSTACKSIZE
2878 #define FLEXML_BUFFERSTACKSIZE 1000000
2879 #endif
2880 #define FLEXML_NEED_BUFFERLIT
2881
2882 /* XML processor api. */
2883 /* FleXML-provided data. */
2884 int surfxml_pcdata_ix;
2885 extern char *surfxml_bufferstack;
2886 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2887 AT_surfxml_random_generator AX_surfxml_random_generator;
2888 #define A_surfxml_random_generator AX_surfxml_random_generator
2889 AT_surfxml_prop_id AX_surfxml_prop_id;
2890 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2891 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2892 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2893 AT_surfxml_host_id AX_surfxml_host_id;
2894 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2895 AT_surfxml_set_id AX_surfxml_set_id;
2896 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2897 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2898 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2899 AT_surfxml_host_state AX_surfxml_host_state;
2900 #define A_surfxml_host_state AX_surfxml_host_state
2901 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2902 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2903 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2904 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2905 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2906 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2907 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2908 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2909 AT_surfxml_host_power AX_surfxml_host_power;
2910 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2911 AT_surfxml_router_id AX_surfxml_router_id;
2912 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2913 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2914 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2915 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2916 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2917 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2918 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2919 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2920 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2921 AT_surfxml_trace_file AX_surfxml_trace_file;
2922 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2923 AT_surfxml_route_action AX_surfxml_route_action;
2924 #define A_surfxml_route_action AX_surfxml_route_action
2925 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2926 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2927 AT_surfxml_random_min AX_surfxml_random_min;
2928 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2929 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2930 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2931 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2932 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2933 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2934 #define A_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element
2935 AT_surfxml_argument_value AX_surfxml_argument_value;
2936 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2937 AT_surfxml_link_state AX_surfxml_link_state;
2938 #define A_surfxml_link_state AX_surfxml_link_state
2939 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2940 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2941 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2942 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2943 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2944 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2945 AT_surfxml_random_mean AX_surfxml_random_mean;
2946 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2947 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2948 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2949 AT_surfxml_link_latency AX_surfxml_link_latency;
2950 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2951 AT_surfxml_trace_c_connect_trace_id AX_surfxml_trace_c_connect_trace_id;
2952 #define A_surfxml_trace_c_connect_trace_id (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace_id)
2953 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2954 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2955 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2956 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2957 AT_surfxml_random_id AX_surfxml_random_id;
2958 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2959 AT_surfxml_set_radical AX_surfxml_set_radical;
2960 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2961 AT_surfxml_random_max AX_surfxml_random_max;
2962 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2963 AT_surfxml_link_id AX_surfxml_link_id;
2964 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2965 AT_surfxml_process_host AX_surfxml_process_host;
2966 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2967 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2968 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2969 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2970 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2971 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2972 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2973 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2974 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2975 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2976 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2977 AT_surfxml_prop_value AX_surfxml_prop_value;
2978 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2979 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2980 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2981 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2982 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2983 AT_surfxml_set_prefix AX_surfxml_set_prefix;
2984 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
2985 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2986 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2987 AT_surfxml_process_function AX_surfxml_process_function;
2988 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2989 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2990 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2991 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2992 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2993 AT_surfxml_host_availability AX_surfxml_host_availability;
2994 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2995 AT_surfxml_route_src AX_surfxml_route_src;
2996 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2997 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
2998 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
2999 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
3000 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
3001 AT_surfxml_trace_id AX_surfxml_trace_id;
3002 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3003 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3004 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3005 AT_surfxml_include_file AX_surfxml_include_file;
3006 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3007 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3008 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3009 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
3010 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
3011 AT_surfxml_trace_c_connect_connector_id AX_surfxml_trace_c_connect_connector_id;
3012 #define A_surfxml_trace_c_connect_connector_id (surfxml_bufferstack + AX_surfxml_trace_c_connect_connector_id)
3013 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
3014 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
3015 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3016 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3017 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3018 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3019 AT_surfxml_route_dst AX_surfxml_route_dst;
3020 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3021 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3022 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3023 AT_surfxml_platform_version AX_surfxml_platform_version;
3024 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3025
3026 /* XML state. */
3027 #ifdef FLEX_DEBUG
3028 # define ENTER(state)   debug_enter(state,#state)
3029 # define LEAVE          debug_leave()
3030 # define SET(state)     debug_set(state,#state)
3031   static void debug_enter(int, const char*);
3032   static void debug_leave(void);
3033   static void debug_set(int, const char*);
3034 #else
3035 # define ENTER(state)   (yy_push_state(state))
3036 # define LEAVE          (yy_pop_state())
3037 # define SET(state)     BEGIN(state)
3038 #endif
3039
3040 /* Generic actions. */
3041 #define SKIP    /*skip*/
3042 #define SUCCEED        CLEANUP; return 0
3043
3044 #define FAIL    return fail
3045 static int fail(const char*, ...);
3046
3047 enum {flexml_max_err_msg_size = 512};
3048 static char flexml_err_msg[flexml_max_err_msg_size];
3049 const char * surfxml_parse_err_msg()
3050 {
3051     return flexml_err_msg;
3052 }
3053 static void reset_surfxml_parse_err_msg()
3054 {
3055     flexml_err_msg[0] = '\0';
3056 }
3057
3058 /* Cleanup */
3059 static void cleanup(void);
3060 #define CLEANUP  cleanup()
3061
3062 /* Text buffer stack handling. */
3063 char *surfxml_bufferstack = NULL;
3064 static int blimit = FLEXML_BUFFERSTACKSIZE;
3065 static int bnext = 1;
3066
3067 static int *indexstack = NULL;
3068 static int ilimit = FLEXML_INDEXSTACKSIZE;
3069 static int inext = 1;
3070
3071 #define BUFFERSET(P)  (P = bnext)
3072 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3073 #define BUFFERDONE    (BUFFERPUTC('\0'))
3074
3075 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3076
3077 /* after this is called, there are at least 2 slots left in the stack */
3078 static int ck_blimit()
3079 {
3080      if (bnext >= blimit) {
3081          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3082          {
3083              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3084              assert(temp);
3085              surfxml_bufferstack = temp;
3086          }
3087      }
3088      return 0;
3089 }
3090
3091 /* after this is called, there are at least 2 slots left in the stack */
3092 static int ck_ilimit()
3093 {
3094      if (inext >= ilimit) {
3095          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3096          {
3097              int *temp = (int *) realloc(indexstack, ilimit);
3098              assert(temp);
3099              indexstack = temp;
3100          }
3101      }
3102      return 0;
3103 }
3104
3105 #ifdef FLEXML_NEED_BUFFERLIT
3106 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3107 {
3108   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3109   assert(s <= e); BUFFERSET(*pp);
3110   while (++s<e) {
3111     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3112     else BUFFERPUTC(*s);
3113   }
3114   BUFFERDONE;
3115 }
3116 #endif
3117
3118 static void pushbuffer(int p)
3119 {
3120     ck_ilimit();
3121     indexstack[inext++] = p;
3122     indexstack[inext++] = bnext;    
3123 }
3124
3125 static int popbuffer(void)
3126 {
3127     assert(inext >= 2);
3128     bnext = indexstack[--inext];
3129     return indexstack[--inext];
3130 }
3131
3132 /* General internal entities are `unput' back onto the input stream... */
3133 #define ENTITYTEXT(T) \
3134   { char *s = (T), *e = s+strlen(s);\
3135     while (--e >= s) { unput(*e); }}
3136
3137 /* Flex standard options. */
3138 #define YY_NO_INPUT 1
3139 /* Flex user-requested options. */
3140 /* XML character classes (currently restricted to ASCII). */
3141 /* "Common syntactic structures." */
3142 /* "Names and Tokens." */
3143 /* Miscellaneous. */
3144 /* Parser states (flex `exclusive start conditions'):
3145  *
3146  * PROLOG       the XML prolog of the document before <?xml...>
3147  * DOCTYPE      the XML prolog of the document after <?xml...>
3148  * EPILOG       after the root element
3149  * INCOMMENT    inside an XML comment <!--....-->
3150  * INPI         inside an XML PI <?...?>
3151  * VALUE1       inside a '...'-delimited literal
3152  * VALUE2       inside a "..."-delimited literal
3153  * CDATA        inside a <![CDATA[...] ]> section.
3154  * ROOT_<tag>   expect root element <tag>
3155  * AL_<tag>     inside the attribute list for <tag>
3156  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3157  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3158  */
3159
3160 /* State names. */
3161 const char* *surfxml_statenames=NULL;
3162
3163 #define INITIAL 0
3164 #define PROLOG 1
3165 #define DOCTYPE 2
3166 #define EPILOG 3
3167 #define INCOMMENT 4
3168 #define INPI 5
3169 #define VALUE1 6
3170 #define VALUE2 7
3171 #define CDATA 8
3172 #define ROOT_surfxml_platform 9
3173 #define AL_surfxml_platform 10
3174 #define S_surfxml_platform 11
3175 #define S_surfxml_platform_1 12
3176 #define S_surfxml_platform_2 13
3177 #define S_surfxml_platform_3 14
3178 #define S_surfxml_platform_4 15
3179 #define S_surfxml_platform_5 16
3180 #define E_surfxml_platform 17
3181 #define AL_surfxml_include 18
3182 #define E_surfxml_include 19
3183 #define AL_surfxml_trace 20
3184 #define IN_trace 21
3185 #define AL_surfxml_random 22
3186 #define S_surfxml_random 23
3187 #define S_surfxml_random_1 24
3188 #define S_surfxml_random_2 25
3189 #define E_surfxml_random 26
3190 #define AL_surfxml_trace_c_connect 27
3191 #define E_surfxml_trace_c_connect 28
3192 #define AL_surfxml_set 29
3193 #define E_surfxml_set 30
3194 #define AL_surfxml_foreach 31
3195 #define S_surfxml_foreach 32
3196 #define S_surfxml_foreach_1 33
3197 #define E_surfxml_foreach 34
3198 #define AL_surfxml_host 35
3199 #define S_surfxml_host 36
3200 #define S_surfxml_host_1 37
3201 #define S_surfxml_host_2 38
3202 #define E_surfxml_host 39
3203 #define AL_surfxml_prop 40
3204 #define E_surfxml_prop 41
3205 #define AL_surfxml_cluster 42
3206 #define E_surfxml_cluster 43
3207 #define AL_surfxml_router 44
3208 #define E_surfxml_router 45
3209 #define AL_surfxml_link 46
3210 #define S_surfxml_link 47
3211 #define S_surfxml_link_1 48
3212 #define S_surfxml_link_2 49
3213 #define E_surfxml_link 50
3214 #define AL_surfxml_route_c_multi 51
3215 #define S_surfxml_route_c_multi 52
3216 #define S_surfxml_route_c_multi_1 53
3217 #define S_surfxml_route_c_multi_2 54
3218 #define E_surfxml_route_c_multi 55
3219 #define AL_surfxml_route 56
3220 #define S_surfxml_route 57
3221 #define S_surfxml_route_1 58
3222 #define S_surfxml_route_2 59
3223 #define E_surfxml_route 60
3224 #define AL_surfxml_link_c_ctn 61
3225 #define E_surfxml_link_c_ctn 62
3226 #define AL_surfxml_process 63
3227 #define S_surfxml_process 64
3228 #define S_surfxml_process_1 65
3229 #define S_surfxml_process_2 66
3230 #define E_surfxml_process 67
3231 #define AL_surfxml_argument 68
3232 #define E_surfxml_argument 69
3233 #define IMPOSSIBLE 70
3234
3235 #ifndef YY_NO_UNISTD_H
3236 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3237  * down here because we want the user's section 1 to have been scanned first.
3238  * The user has a chance to override it with an option.
3239  */
3240 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3241 #  ifndef __STRICT_ANSI__
3242 #    include <io.h>
3243 #    include <process.h>
3244 #  endif
3245 #else
3246 #  include <unistd.h>
3247 #endif
3248 #endif
3249
3250 #ifndef YY_EXTRA_TYPE
3251 #define YY_EXTRA_TYPE void *
3252 #endif
3253
3254 static int yy_init_globals (void );
3255
3256 /* Macros after this point can all be overridden by user definitions in
3257  * section 1.
3258  */
3259
3260 #ifndef YY_SKIP_YYWRAP
3261 #ifdef __cplusplus
3262 extern "C" int surf_parse_wrap (void );
3263 #else
3264 extern int surf_parse_wrap (void );
3265 #endif
3266 #endif
3267
3268 #ifndef yytext_ptr
3269 static void yy_flex_strncpy (char *,yyconst char *,int );
3270 #endif
3271
3272 #ifdef YY_NEED_STRLEN
3273 static int yy_flex_strlen (yyconst char * );
3274 #endif
3275
3276 #ifndef YY_NO_INPUT
3277
3278 #ifdef __cplusplus
3279 static int yyinput (void );
3280 #else
3281 static int input (void );
3282 #endif
3283
3284 #endif
3285
3286         static int yy_start_stack_ptr = 0;
3287         static int yy_start_stack_depth = 0;
3288         static int *yy_start_stack = NULL;
3289     
3290     static void yy_push_state (int new_state );
3291     
3292     static void yy_pop_state (void );
3293     
3294 /* Amount of stuff to slurp up with each read. */
3295 #ifndef YY_READ_BUF_SIZE
3296 #define YY_READ_BUF_SIZE 8192
3297 #endif
3298
3299 /* Copy whatever the last rule matched to the standard output. */
3300 #ifndef ECHO
3301 /* This used to be an fputs(), but since the string might contain NUL's,
3302  * we now use fwrite().
3303  */
3304 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
3305 #endif
3306
3307 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3308  * is returned in "result".
3309  */
3310 #ifndef YY_INPUT
3311 #define YY_INPUT(buf,result,max_size) \
3312         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3313                 { \
3314                 int c = '*'; \
3315                 size_t n; \
3316                 for ( n = 0; n < max_size && \
3317                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3318                         buf[n] = (char) c; \
3319                 if ( c == '\n' ) \
3320                         buf[n++] = (char) c; \
3321                 if ( c == EOF && ferror( surf_parse_in ) ) \
3322                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3323                 result = n; \
3324                 } \
3325         else \
3326                 { \
3327                 errno=0; \
3328                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3329                         { \
3330                         if( errno != EINTR) \
3331                                 { \
3332                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3333                                 break; \
3334                                 } \
3335                         errno=0; \
3336                         clearerr(surf_parse_in); \
3337                         } \
3338                 }\
3339 \
3340
3341 #endif
3342
3343 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3344  * we don't want an extra ';' after the "return" because that will cause
3345  * some compilers to complain about unreachable statements.
3346  */
3347 #ifndef yyterminate
3348 #define yyterminate() return YY_NULL
3349 #endif
3350
3351 /* Number of entries by which start-condition stack grows. */
3352 #ifndef YY_START_STACK_INCR
3353 #define YY_START_STACK_INCR 25
3354 #endif
3355
3356 /* Report a fatal error. */
3357 #ifndef YY_FATAL_ERROR
3358 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3359 #endif
3360
3361 /* end tables serialization structures and prototypes */
3362
3363 /* Default declaration of generated scanner - a define so the user can
3364  * easily add parameters.
3365  */
3366 #ifndef YY_DECL
3367 #define YY_DECL_IS_OURS 1
3368
3369 extern int surf_parse_lex (void);
3370
3371 #define YY_DECL int surf_parse_lex (void)
3372 #endif /* !YY_DECL */
3373
3374 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3375  * have been set up.
3376  */
3377 #ifndef YY_USER_ACTION
3378 #define YY_USER_ACTION
3379 #endif
3380
3381 /* Code executed at the end of each rule. */
3382 #ifndef YY_BREAK
3383 #define YY_BREAK break;
3384 #endif
3385
3386 #define YY_RULE_SETUP \
3387         YY_USER_ACTION
3388
3389 /** The main scanner function which does all the work.
3390  */
3391 YY_DECL
3392 {
3393         register yy_state_type yy_current_state;
3394         register char *yy_cp, *yy_bp;
3395         register int yy_act;
3396     
3397  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3398  SET(PROLOG);
3399  reset_surfxml_parse_err_msg();
3400  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3401  assert(surfxml_bufferstack);
3402  #ifdef FLEX_DEBUG
3403  {
3404      int i;
3405      for (i = 0; i < blimit; i++) {
3406          surfxml_bufferstack[i] = '\377';
3407      }
3408  }
3409  #endif
3410  surfxml_bufferstack[0] = '\0';
3411  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3412  assert(indexstack);
3413  indexstack[0] = 0;
3414
3415   /* FleXML_init */
3416   bnext = inext = 1;
3417   surfxml_bufferliteral('\0', &bnext, "0.0");
3418   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3419   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3420   surfxml_bufferliteral('\0', &bnext, "1.0");
3421   surfxml_bufferliteral('\0', &bnext, "1.0");
3422   surfxml_bufferliteral('\0', &bnext, "1.0");
3423   surfxml_bufferliteral('\0', &bnext, "1.0");
3424   surfxml_bufferliteral('\0', &bnext, "-1.0");
3425   surfxml_bufferliteral('\0', &bnext, "0.0");
3426   surfxml_bufferliteral('\0', &bnext, "0.0");
3427   surfxml_bufferliteral('\0', &bnext, "0.0");
3428   surfxml_bufferliteral('\0', &bnext, "0.0");
3429   surfxml_bufferliteral('\0', &bnext, "0.0");
3430   surfxml_bufferliteral('\0', &bnext, "-1.0");
3431   surfxml_bufferliteral('\0', &bnext, "-1.0");
3432   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3433   surfxml_statenames[PROLOG] = NULL;
3434   surfxml_statenames[DOCTYPE] = NULL;
3435   surfxml_statenames[EPILOG] = NULL;
3436   surfxml_statenames[INCOMMENT] = NULL;
3437   surfxml_statenames[INPI] = NULL;
3438   surfxml_statenames[VALUE1] = NULL;
3439   surfxml_statenames[VALUE2] = NULL;
3440   surfxml_statenames[CDATA] = NULL;
3441   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3442   surfxml_statenames[AL_surfxml_platform] = NULL;
3443   surfxml_statenames[S_surfxml_platform] = "platform";
3444   surfxml_statenames[S_surfxml_platform_1] = "platform";
3445   surfxml_statenames[S_surfxml_platform_2] = "platform";
3446   surfxml_statenames[S_surfxml_platform_3] = "platform";
3447   surfxml_statenames[S_surfxml_platform_4] = "platform";
3448   surfxml_statenames[S_surfxml_platform_5] = "platform";
3449   surfxml_statenames[E_surfxml_platform] = "platform";
3450   surfxml_statenames[AL_surfxml_include] = NULL;
3451   surfxml_statenames[E_surfxml_include] = "include";
3452   surfxml_statenames[AL_surfxml_trace] = NULL;
3453   surfxml_statenames[IN_trace] = "trace";
3454   surfxml_statenames[AL_surfxml_random] = NULL;
3455   surfxml_statenames[S_surfxml_random] = "random";
3456   surfxml_statenames[S_surfxml_random_1] = "random";
3457   surfxml_statenames[S_surfxml_random_2] = "random";
3458   surfxml_statenames[E_surfxml_random] = "random";
3459   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3460   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3461   surfxml_statenames[AL_surfxml_set] = NULL;
3462   surfxml_statenames[E_surfxml_set] = "set";
3463   surfxml_statenames[AL_surfxml_foreach] = NULL;
3464   surfxml_statenames[S_surfxml_foreach] = "foreach";
3465   surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3466   surfxml_statenames[E_surfxml_foreach] = "foreach";
3467   surfxml_statenames[AL_surfxml_host] = NULL;
3468   surfxml_statenames[S_surfxml_host] = "host";
3469   surfxml_statenames[S_surfxml_host_1] = "host";
3470   surfxml_statenames[S_surfxml_host_2] = "host";
3471   surfxml_statenames[E_surfxml_host] = "host";
3472   surfxml_statenames[AL_surfxml_prop] = NULL;
3473   surfxml_statenames[E_surfxml_prop] = "prop";
3474   surfxml_statenames[AL_surfxml_cluster] = NULL;
3475   surfxml_statenames[E_surfxml_cluster] = "cluster";
3476   surfxml_statenames[AL_surfxml_router] = NULL;
3477   surfxml_statenames[E_surfxml_router] = "router";
3478   surfxml_statenames[AL_surfxml_link] = NULL;
3479   surfxml_statenames[S_surfxml_link] = "link";
3480   surfxml_statenames[S_surfxml_link_1] = "link";
3481   surfxml_statenames[S_surfxml_link_2] = "link";
3482   surfxml_statenames[E_surfxml_link] = "link";
3483   surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3484   surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3485   surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3486   surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3487   surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3488   surfxml_statenames[AL_surfxml_route] = NULL;
3489   surfxml_statenames[S_surfxml_route] = "route";
3490   surfxml_statenames[S_surfxml_route_1] = "route";
3491   surfxml_statenames[S_surfxml_route_2] = "route";
3492   surfxml_statenames[E_surfxml_route] = "route";
3493   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3494   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3495   surfxml_statenames[AL_surfxml_process] = NULL;
3496   surfxml_statenames[S_surfxml_process] = "process";
3497   surfxml_statenames[S_surfxml_process_1] = "process";
3498   surfxml_statenames[S_surfxml_process_2] = "process";
3499   surfxml_statenames[E_surfxml_process] = "process";
3500   surfxml_statenames[AL_surfxml_argument] = NULL;
3501   surfxml_statenames[E_surfxml_argument] = "argument";
3502   }
3503
3504  /* COMMENTS and PIs: handled uniformly for efficiency. */
3505
3506         if ( !(yy_init) )
3507                 {
3508                 (yy_init) = 1;
3509
3510 #ifdef YY_USER_INIT
3511                 YY_USER_INIT;
3512 #endif
3513
3514                 if ( ! (yy_start) )
3515                         (yy_start) = 1; /* first start state */
3516
3517                 if ( ! surf_parse_in )
3518                         surf_parse_in = stdin;
3519
3520                 if ( ! surf_parse_out )
3521                         surf_parse_out = stdout;
3522
3523                 if ( ! YY_CURRENT_BUFFER ) {
3524                         surf_parse_ensure_buffer_stack ();
3525                         YY_CURRENT_BUFFER_LVALUE =
3526                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3527                 }
3528
3529                 surf_parse__load_buffer_state( );
3530                 }
3531
3532         while ( 1 )             /* loops until end-of-file is reached */
3533                 {
3534                 yy_cp = (yy_c_buf_p);
3535
3536                 /* Support of surf_parse_text. */
3537                 *yy_cp = (yy_hold_char);
3538
3539                 /* yy_bp points to the position in yy_ch_buf of the start of
3540                  * the current run.
3541                  */
3542                 yy_bp = yy_cp;
3543
3544                 yy_current_state = (yy_start);
3545 yy_match:
3546                 do
3547                         {
3548                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3549                         if ( yy_accept[yy_current_state] )
3550                                 {
3551                                 (yy_last_accepting_state) = yy_current_state;
3552                                 (yy_last_accepting_cpos) = yy_cp;
3553                                 }
3554                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3555                                 {
3556                                 yy_current_state = (int) yy_def[yy_current_state];