Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
be more explicit when we see a platform v3 file
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #line 3 "src/surf/xml/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 39
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 #ifndef YY_TYPEDEF_YY_SIZE_T
184 #define YY_TYPEDEF_YY_SIZE_T
185 typedef size_t yy_size_t;
186 #endif
187
188 extern yy_size_t surf_parse_leng;
189
190 extern FILE *surf_parse_in, *surf_parse_out;
191
192 #define EOB_ACT_CONTINUE_SCAN 0
193 #define EOB_ACT_END_OF_FILE 1
194 #define EOB_ACT_LAST_MATCH 2
195
196     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
197      *       access to the local variable yy_act. Since yyless() is a macro, it would break
198      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
199      *       One obvious solution it to make yy_act a global. I tried that, and saw
200      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
201      *       normally declared as a variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 unsigned int yyl;\
206                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
207                     if ( surf_parse_text[yyl] == '\n' )\
208                         --surf_parse_lineno;\
209             }while(0)
210     #define YY_LINENO_REWIND_TO(dst) \
211             do {\
212                 const char *p;\
213                 for ( p = yy_cp-1; p >= (dst); --p)\
214                     if ( *p == '\n' )\
215                         --surf_parse_lineno;\
216             }while(0)
217     
218 /* Return all but the first "n" matched characters back to the input stream. */
219 #define yyless(n) \
220         do \
221                 { \
222                 /* Undo effects of setting up surf_parse_text. */ \
223         int yyless_macro_arg = (n); \
224         YY_LESS_LINENO(yyless_macro_arg);\
225                 *yy_cp = (yy_hold_char); \
226                 YY_RESTORE_YY_MORE_OFFSET \
227                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
228                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
229                 } \
230         while ( 0 )
231
232 #define unput(c) yyunput( c, (yytext_ptr)  )
233
234 #ifndef YY_STRUCT_YY_BUFFER_STATE
235 #define YY_STRUCT_YY_BUFFER_STATE
236 struct yy_buffer_state
237         {
238         FILE *yy_input_file;
239
240         char *yy_ch_buf;                /* input buffer */
241         char *yy_buf_pos;               /* current position in input buffer */
242
243         /* Size of input buffer in bytes, not including room for EOB
244          * characters.
245          */
246         yy_size_t yy_buf_size;
247
248         /* Number of characters read into yy_ch_buf, not including EOB
249          * characters.
250          */
251         yy_size_t yy_n_chars;
252
253         /* Whether we "own" the buffer - i.e., we know we created it,
254          * and can realloc() it to grow it, and should free() it to
255          * delete it.
256          */
257         int yy_is_our_buffer;
258
259         /* Whether this is an "interactive" input source; if so, and
260          * if we're using stdio for input, then we want to use getc()
261          * instead of fread(), to make sure we stop fetching input after
262          * each newline.
263          */
264         int yy_is_interactive;
265
266         /* Whether we're considered to be at the beginning of a line.
267          * If so, '^' rules will be active on the next match, otherwise
268          * not.
269          */
270         int yy_at_bol;
271
272     int yy_bs_lineno; /**< The line count. */
273     int yy_bs_column; /**< The column count. */
274     
275         /* Whether to try to fill the input buffer when we reach the
276          * end of it.
277          */
278         int yy_fill_buffer;
279
280         int yy_buffer_status;
281
282 #define YY_BUFFER_NEW 0
283 #define YY_BUFFER_NORMAL 1
284         /* When an EOF's been seen but there's still some text to process
285          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
286          * shouldn't try reading from the input source any more.  We might
287          * still have a bunch of tokens to match, though, because of
288          * possible backing-up.
289          *
290          * When we actually see the EOF, we change the status to "new"
291          * (via surf_parse_restart()), so that the user can continue scanning by
292          * just pointing surf_parse_in at a new input file.
293          */
294 #define YY_BUFFER_EOF_PENDING 2
295
296         };
297 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
298
299 /* Stack of input buffers. */
300 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
301 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
302 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
303
304 /* We provide macros for accessing buffer states in case in the
305  * future we want to put the buffer states in a more general
306  * "scanner state".
307  *
308  * Returns the top of the stack, or NULL.
309  */
310 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
311                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
312                           : NULL)
313
314 /* Same as previous macro, but useful when we know that the buffer stack is not
315  * NULL or when we need an lvalue. For internal use only.
316  */
317 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
318
319 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
320 static char yy_hold_char;
321 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
322 yy_size_t surf_parse_leng;
323
324 /* Points to current character in buffer. */
325 static char *yy_c_buf_p = (char *) 0;
326 static int yy_init = 0;         /* whether we need to initialize */
327 static int yy_start = 0;        /* start state number */
328
329 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
330  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
331  */
332 static int yy_did_buffer_switch_on_eof;
333
334 void surf_parse_restart (FILE *input_file  );
335 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
336 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
337 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
338 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
339 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
340 void surf_parse_pop_buffer_state (void );
341
342 static void surf_parse_ensure_buffer_stack (void );
343 static void surf_parse__load_buffer_state (void );
344 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
345
346 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
347
348 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
349 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
350 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
351
352 void *surf_parse_alloc (yy_size_t  );
353 void *surf_parse_realloc (void *,yy_size_t  );
354 void surf_parse_free (void *  );
355
356 #define yy_new_buffer surf_parse__create_buffer
357
358 #define yy_set_interactive(is_interactive) \
359         { \
360         if ( ! YY_CURRENT_BUFFER ){ \
361         surf_parse_ensure_buffer_stack (); \
362                 YY_CURRENT_BUFFER_LVALUE =    \
363             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
364         } \
365         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
366         }
367
368 #define yy_set_bol(at_bol) \
369         { \
370         if ( ! YY_CURRENT_BUFFER ){\
371         surf_parse_ensure_buffer_stack (); \
372                 YY_CURRENT_BUFFER_LVALUE =    \
373             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
374         } \
375         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
376         }
377
378 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
379
380 /* Begin user sect3 */
381
382 #define surf_parse_wrap() 1
383 #define YY_SKIP_YYWRAP
384
385 typedef unsigned char YY_CHAR;
386
387 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
388
389 typedef int yy_state_type;
390
391 extern int surf_parse_lineno;
392
393 int surf_parse_lineno = 1;
394
395 extern char *surf_parse_text;
396 #define yytext_ptr surf_parse_text
397
398 static yy_state_type yy_get_previous_state (void );
399 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
400 static int yy_get_next_buffer (void );
401 static void yy_fatal_error (yyconst char msg[]  );
402
403 /* Done after the current pattern has been matched and before the
404  * corresponding action - sets up surf_parse_text.
405  */
406 #define YY_DO_BEFORE_ACTION \
407         (yytext_ptr) = yy_bp; \
408         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
409         (yy_hold_char) = *yy_cp; \
410         *yy_cp = '\0'; \
411         (yy_c_buf_p) = yy_cp;
412
413 #define YY_NUM_RULES 574
414 #define YY_END_OF_BUFFER 575
415 /* This struct is not used in this scanner,
416    but its presence is necessary. */
417 struct yy_trans_info
418         {
419         flex_int32_t yy_verify;
420         flex_int32_t yy_nxt;
421         };
422 static yyconst flex_int16_t yy_accept[3396] =
423     {   0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
445
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
450         0,    0,  575,  573,   15,   10,   10,   15,   15,  553,
451        10,  553,    5,    6,    5,    8,    9,    8,  569,  561,
452       562,  570,  567,  570,  568,  572,  561,  562,  572,   40,
453        10,   40,   40,   40,   38,   40,   40,   44,   10,   44,
454        44,  573,   44,  573,  573,   44,   61,   10,   61,   61,
455        61,   59,   61,   61,   61,   65,   10,   65,  573,   65,
456
457        72,   10,   72,   72,   72,   70,   72,   76,   10,   76,
458        87,   10,   87,   87,   87,   85,   87,   87,   87,   91,
459        10,   91,  104,   10,  104,  104,  104,  102,  104,  104,
460       104,  108,   10,  108,  108,  117,   10,  117,  117,  117,
461       115,  117,  117,  121,   10,  121,  121,  140,   10,  140,
462       140,  140,  138,  140,  140,  140,  140,  140,  140,  144,
463        10,  144,  199,   10,  199,  199,  199,  197,  199,  199,
464       199,  199,  199,  199,  199,  199,  199,  203,   10,  203,
465       203,  210,   10,  210,  210,  210,  208,  210,  214,   10,
466       214,  214,  233,   10,  233,  233,  233,  231,  233,  233,
467
468       233,  233,  233,  237,   10,  237,  573,  237,  248,   10,
469       248,  248,  248,  246,  248,  248,  248,  252,   10,  252,
470       259,   10,  259,  259,  259,  257,  259,  263,   10,  263,
471       573,  263,  286,   10,  286,  286,  286,  284,  286,  286,
472       286,  286,  290,   10,  290,  290,  303,   10,  303,  303,
473       303,  301,  303,  303,  307,   10,  307,  316,   10,  316,
474       316,  316,  314,  316,  316,  320,   10,  320,  329,   10,
475       329,  329,  329,  327,  329,  329,  333,   10,  333,  342,
476        10,  342,  342,  342,  340,  342,  342,  346,   10,  346,
477       367,   10,  367,  367,  367,  365,  367,  367,  367,  367,
478
479       367,  367,  371,   10,  371,  573,  378,   10,  378,  378,
480       378,  376,  378,  382,   10,  382,  382,  573,  382,  573,
481       382,  399,   10,  399,  399,  399,  397,  399,  399,  399,
482       399,  399,  403,   10,  403,  573,  403,  412,   10,  412,
483       412,  412,  410,  412,  412,  416,   10,  416,  443,   10,
484       443,  443,  443,  441,  443,  443,  443,  443,  443,  447,
485        10,  447,  460,   10,  460,  460,  460,  458,  460,  460,
486       464,   10,  464,  464,  473,   10,  473,  473,  473,  471,
487       473,  473,  477,   10,  477,  492,   10,  492,  492,  492,
488       490,  492,  492,  492,  492,  496,   10,  496,  496,  511,
489
490        10,  511,  511,  511,  509,  511,  511,  511,  511,  515,
491        10,  515,  573,  515,  526,   10,  526,  526,  526,  524,
492       526,  526,  526,  570,  569,  548,   10,  548,  548,  548,
493       546,  548,  548,  548,  552,   10,  552,   10,    0,    2,
494         2,    0,    4,    7,  564,  563,    0,    0,    0,    0,
495         0,    0,   39,   41,   41,   41,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,   60,   62,   62,   62,
499        62,   62,    0,    0,   71,   73,   73,    0,   86,   88,
500
501        88,   88,   88,    0,  103,  105,  105,  105,  105,    0,
502       116,  118,  118,  118,    0,  139,  141,  141,  141,  141,
503       141,  141,  141,  141,    0,  198,  200,  200,  200,  200,
504       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
505       200,  200,  200,    0,  209,  211,  211,    0,  232,  234,
506       234,  234,  234,  234,  234,  234,    0,    0,  247,  249,
507       249,  249,  249,    0,  258,  260,  260,    0,    0,  285,
508       287,  287,  287,  287,  287,  287,    0,  302,  304,  304,
509       304,    0,  315,  317,  317,  317,    0,  328,  330,  330,
510       330,    0,  341,  343,  343,  343,    0,  366,  368,  368,
511
512       368,  368,  368,  368,  368,  368,    0,    0,  377,  379,
513       379,    0,    0,    0,    0,    0,    0,  398,  400,  400,
514       400,  400,  400,  400,    0,    0,  411,  413,  413,  413,
515         0,  442,  444,  444,  444,  444,  444,  444,  444,  444,
516       444,    0,  459,  461,  461,  461,  461,    0,  472,  474,
517       474,  474,    0,  491,  493,  493,  493,  493,  493,    0,
518       510,  512,  512,  512,  512,  512,    0,    0,  525,  527,
519       527,  527,  527,    0,    0,    0,  547,  549,  549,  549,
520       549,    0,    0,    0,    0,    0,    3,    0,    0,    0,
521         0,    0,    0,    0,  571,    0,    0,   41,    0,    0,
522
523        17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
524         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
525        16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,   16,    0,    0,   62,   62,   62,   62,    0,
527         0,    0,   73,    0,    0,   88,    0,    0,   88,    0,
528         0,  105,  105,  105,    0,    0,  118,  118,    0,    0,
529         0,    0,    0,    0,  141,  141,  141,  141,  141,    0,
530         0,  200,  200,    0,    0,  200,    0,    0,  200,  200,
531       200,  200,  200,  200,  200,  200,  200,  200,  200,    0,
532         0,    0,    0,    0,    0,  234,  234,  234,    0,    0,
533
534       234,  234,  234,    0,    0,    0,    0,  249,    0,    0,
535         0,    0,    0,    0,  260,    0,    0,   17,  287,    0,
536         0,  287,  287,  287,    0,    0,  304,    0,    0,    0,
537         0,    0,    0,  317,    0,    0,  330,  330,    0,    0,
538       343,  343,    0,    0,  368,  368,  368,    0,    0,  368,
539       368,  368,    0,    0,    0,  379,    0,    0,    0,    0,
540         0,  400,  400,  400,  400,  400,    0,    0,    0,    0,
541         0,  413,    0,    0,  444,    0,    0,  444,  444,  444,
542       444,  444,  444,    0,    0,  461,  461,  461,    0,    0,
543       474,    0,    0,    0,    0,  493,  493,    0,    0,  493,
544
545         0,    0,  512,    0,    0,  512,  512,    0,    0,    0,
546       527,    0,    0,  527,    0,    0,    0,  566,  549,  549,
547       549,    0,    0,    0,   14,    1,    0,    0,  559,    0,
548         0,    0,  556,  555,    0,    0,   19,   18,   41,    0,
549         0,   43,    0,   17,    0,    0,    0,    0,    0,    0,
550         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
551         0,    0,    0,    0,    0,   16,    0,    0,    0,    0,
552         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
553         0,    0,   62,   62,    0,    0,   62,    0,    0,   64,
554         0,    0,   73,    0,    0,   75,    0,   88,    0,   82,
555
556        81,   88,    0,    0,   90,    0,    0,    0,  105,  105,
557         0,    0,    0,    0,  107,    0,    0,    0,    0,    0,
558         0,    0,  120,    0,    0,  125,  124,    0,  127,  126,
559         0,    0,  141,  141,  141,  141,    0,    0,  143,    0,
560       200,  200,  200,  200,    0,  158,  157,  200,    0,  162,
561       161,    0,    0,  200,  200,  200,  200,  200,  200,  200,
562       200,  200,  200,    0,    0,  202,    0,    0,  207,  206,
563         0,    0,  213,    0,  234,  234,  234,    0,  224,  223,
564       234,  234,  234,    0,    0,  236,    0,    0,    0,  249,
565         0,  243,  242,    0,  245,  244,    0,    0,  251,    0,
566
567       260,    0,    0,  262,    0,  287,    0,  271,  270,  287,
568       287,  287,    0,    0,  289,    0,  304,    0,  300,  299,
569         0,    0,  306,    0,    0,  311,  310,  317,    0,    0,
570       319,    0,  330,  330,    0,    0,  332,    0,  343,  343,
571         0,    0,  345,    0,  368,  368,  368,  368,    0,  358,
572       357,    0,    0,  368,  368,    0,    0,  370,    0,    0,
573       379,    0,    0,  381,    0,    0,    0,    0,  400,  400,
574       400,  400,  400,    0,    0,  402,    0,    0,    0,  407,
575       406,  413,    0,    0,  415,    0,  444,    0,  428,  427,
576         0,    0,  444,    0,    0,  444,  444,  444,    0,    0,
577
578       446,    0,    0,    0,    0,    0,  461,    0,    0,  463,
579         0,  474,    0,  470,  469,    0,    0,  476,    0,  493,
580       493,    0,  487,  486,  493,    0,    0,  495,    0,  512,
581         0,  504,  503,  512,  512,    0,    0,  514,    0,    0,
582       527,    0,  521,  520,  527,    0,    0,    0,  529,    0,
583       549,  549,  549,    0,    0,  551,    0,    0,    0,  560,
584       554,    0,    0,   41,    0,   42,    0,    0,    0,    0,
585         0,    0,    0,  216,    0,  265,    0,    0,    0,  348,
586         0,    0,  405,    0,    0,    0,    0,  404,    0,    0,
587         0,    0,    0,  215,    0,  264,  347,    0,    0,    0,
588
589         0,    0,    0,   48,   47,   62,   62,    0,   54,   53,
590        62,    0,  264,   73,    0,   88,   88,    0,    0,   95,
591        94,  105,  105,    0,  101,  100,    0,    0,  112,  111,
592         0,  114,  113,    0,    0,  129,  128,  141,  141,  141,
593       141,    0,  200,  200,  200,  200,    0,    0,    0,  164,
594       163,  200,  200,  200,  200,  200,  200,  200,  200,  200,
595       200,  200,    0,    0,  234,  234,    0,    0,  234,  234,
596       234,    0,    0,    0,    0,    0,    0,    0,    0,    0,
597       287,  287,  287,  287,    0,  304,    0,  317,    0,    0,
598         0,  330,    0,    0,    0,  343,    0,  368,  368,  368,
599
600       368,    0,  360,  359,  368,  368,    0,    0,  379,    0,
601         0,    0,    0,  400,    0,    0,  400,  400,  400,    0,
602         0,  413,    0,  444,    0,  430,  429,    0,    0,    0,
603       434,  433,  444,    0,    0,  444,    0,    0,  451,  450,
604         0,  453,  452,  461,    0,  474,    0,  493,  493,  493,
605         0,  512,  512,    0,    0,    0,    0,    0,    0,  527,
606         0,    0,  549,    0,    0,  549,    0,    0,    0,    0,
607        12,    0,  557,  558,   41,    0,    0,    0,    0,    0,
608         0,    0,  216,    0,    0,  265,    0,    0,  321,    0,
609       348,    0,    0,  405,    0,  449,    0,  517,  404,    0,
610
611         0,    0,    0,    0,  215,    0,    0,  264,  347,  448,
612         0,  516,  449,  448,   62,   62,   62,    0,    0,    0,
613         0,    0,   88,   88,    0,  105,  105,    0,    0,  141,
614       141,    0,    0,  141,    0,  200,    0,    0,  200,  200,
615         0,  160,  159,  200,  200,  200,  200,  200,  200,    0,
616         0,  200,  200,  200,  200,    0,    0,  234,  234,    0,
617       222,  221,  234,    0,    0,  234,    0,  322,    0,    0,
618       241,  240,    0,    0,  256,  255,    0,  287,  287,  287,
619       287,    0,  304,    0,    0,    0,    0,    0,  324,  323,
620       330,    0,    0,  337,  336,  343,    0,  368,    0,    0,
621
622       368,  368,    0,    0,  368,    0,    0,  379,    0,    0,
623         0,    0,  400,    0,  388,  387,  400,  400,  400,    0,
624         0,    0,    0,    0,  444,    0,  432,  431,  444,    0,
625       438,  437,  444,    0,  461,    0,  474,    0,  493,  493,
626       493,    0,  512,    0,    0,    0,  508,  507,    0,    0,
627         0,  519,  518,  527,    0,    0,  549,    0,    0,    0,
628         0,    0,    0,    0,    0,    0,   11,   41,    0,    0,
629         0,    0,    0,    0,  204,    0,    0,    0,    0,  321,
630         0,    0,    0,  417,  449,  466,    0,  517,    0,    0,
631         0,    0,    0,    0,    0,    0,  448,  465,    0,  516,
632
633         0,    0,    0,    0,    0,   62,    0,    0,    0,   69,
634        68,    0,   88,   88,    0,    0,    0,    0,    0,    0,
635         0,    0,    0,  141,    0,  135,  134,    0,    0,    0,
636       200,    0,  150,  149,    0,    0,  200,  200,  200,    0,
637         0,  200,  200,  200,    0,  184,  183,  200,    0,    0,
638       200,  200,    0,    0,  234,  234,    0,    0,    0,  228,
639       227,  234,    0,  235,  322,    0,    0,    0,  287,  287,
640       287,  287,    0,  288,  304,    0,    0,  313,  312,    0,
641       330,    0,    0,    0,    0,  368,    0,  352,  351,    0,
642         0,  368,    0,  362,  361,  368,    0,  369,    0,  379,
643
644         0,  205,    0,  418,  400,  400,  400,  400,    0,    0,
645         0,  409,  408,    0,  414,  444,  444,  444,    0,  461,
646         0,  474,    0,    0,    0,  493,    0,    0,    0,  512,
647         0,  506,  505,    0,    0,  527,    0,    0,  549,    0,
648         0,    0,    0,    0,    0,    0,    0,    0,  545,  544,
649         0,    0,    0,    0,    0,    0,   46,    0,    0,    0,
650         0,  123,  146,  204,    0,  254,    0,    0,    0,    0,
651       383,  417,  466,  479,    0,   45,    0,    0,    0,  122,
652       145,    0,  253,  465,  478,    0,    0,   50,   49,    0,
653        52,   51,   62,    0,    0,    0,   88,    0,    0,    0,
654
655         0,   97,   96,    0,   99,   98,    0,    0,    0,  131,
656       130,    0,    0,    0,  137,  136,    0,  200,    0,  152,
657       151,  200,  200,  200,    0,  172,  171,    0,    0,  200,
658       200,  200,    0,  188,  187,  200,  200,    0,    0,  234,
659       234,    0,  226,  225,  234,    0,    0,    0,  287,    0,
660         0,  287,  287,  287,  304,    0,    0,  330,    0,  331,
661         0,  339,  338,    0,  368,    0,  354,  353,  368,  368,
662         0,    0,    0,    0,  205,  384,  418,  400,  400,  400,
663       400,    0,    0,  444,    0,    0,  444,    0,  461,    0,
664       462,  474,    0,    0,  481,  480,    0,    0,  493,    0,
665
666       489,  488,    0,    0,    0,  512,    0,    0,  527,    0,
667         0,  528,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,   46,   66,   78,    0,    0,  123,  146,    0,  254,
670       291,    0,  334,  372,  383,  479,    0,    0,   45,   77,
671         0,    0,  122,  145,    0,  253,  478,    0,    0,   62,
672         0,  292,    0,   88,    0,   84,   83,    0,    0,    0,
673         0,  133,  132,    0,  200,  200,  200,  200,    0,  174,
674       173,  200,  200,  200,  200,    0,    0,    0,    0,  212,
675       234,  234,  234,  335,    0,    0,  287,    0,  273,  272,
676
677       287,  287,  287,  304,    0,    0,  330,    0,  368,  368,
678       368,  373,    0,  375,  374,    0,  384,    0,    0,  400,
679       400,  400,    0,   67,  444,    0,  436,  435,  444,    0,
680       445,  461,  474,    0,  475,    0,  483,  482,  493,    0,
681         0,  500,  499,  512,    0,    0,  527,  565,    0,  533,
682       532,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,   66,   78,    0,    0,  239,
685       291,    0,  334,  372,    0,    0,   77,    0,    0,  238,
686         0,    0,   62,    0,   63,  292,    0,    0,    0,    0,
687
688         0,    0,    0,  142,  200,  200,  200,  200,  200,    0,
689         0,  200,  200,  200,    0,    0,    0,    0,  201,  234,
690       234,  234,  335,    0,    0,  261,    0,    0,  287,  287,
691       287,  287,    0,    0,    0,    0,    0,    0,    0,  368,
692       368,  368,  373,    0,    0,  386,  385,    0,    0,  400,
693       400,    0,  401,   67,    0,    0,  444,  461,  474,  493,
694         0,  494,  512,    0,    0,  527,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,  239,  308,    0,    0,    0,    0,
698
699       238,    0,    0,   62,    0,   74,    0,   80,   79,    0,
700        89,    0,    0,  200,  200,  200,  200,  200,    0,  176,
701       175,  200,    0,    0,  200,    0,    0,    0,    0,  234,
702       234,    0,    0,    0,    0,  267,  266,  287,  287,  287,
703         0,    0,    0,    0,    0,    0,  305,    0,    0,  326,
704       325,    0,  344,  368,  368,    0,    0,    0,  380,    0,
705       390,  389,    0,    0,    0,    0,    0,    0,    0,  444,
706       461,  474,  493,  512,    0,  309,  527,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709
710         0,    0,    0,    0,  110,  308,    0,    0,    0,  109,
711         0,    0,    0,    0,    0,    0,  200,  200,  200,    0,
712         0,  200,  200,    0,  186,  185,  200,    0,    0,    0,
713         0,    0,    0,  234,    0,    0,    0,  230,  229,    0,
714       250,  287,  287,  287,    0,  283,  282,    0,    0,    0,
715         0,    0,    0,    0,  368,    0,    0,    0,  364,  363,
716         0,    0,    0,    0,  396,  395,    0,    0,    0,    0,
717         0,    0,  444,    0,    0,    0,    0,  493,  512,    0,
718       309,    0,    0,    0,    0,    0,    0,  537,    0,    0,
719         0,    0,  536,    0,    0,    0,    0,    0,    0,    0,
720
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722       110,  498,    0,    0,  109,  497,    0,    0,    0,    0,
723         0,    0,  200,  200,    0,    0,    0,  168,  167,    0,
724         0,  200,  200,    0,    0,    0,    0,    0,    0,  234,
725         0,  220,  219,  287,    0,    0,  287,    0,    0,    0,
726         0,    0,    0,    0,  318,  368,    0,  356,  355,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,  444,    0,    0,    0,    0,  468,  467,    0,    0,
729         0,    0,    0,    0,  523,  522,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,    0,   21,   29,    0,    0,    0,    0,   20,   28,
733         0,   93,  498,  531,   92,  497,  530,    0,    0,    0,
734         0,    0,    0,  119,  200,  200,    0,  166,  165,    0,
735       170,  169,  200,  200,    0,    0,    0,    0,    0,    0,
736       234,  287,    0,  275,  274,  287,    0,    0,  294,    0,
737         0,  293,  368,    0,    0,    0,    0,    0,    0,    0,
738         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
739         0,    0,  485,  484,    0,  502,  501,    0,    0,    0,
740       543,    0,    0,    0,  542,    0,    0,    0,    0,    0,
741         0,    0,    0,    0,    0,   23,    0,    0,    0,   22,
742
743         0,   93,  531,   92,  530,    0,    0,    0,    0,    0,
744       200,  200,    0,    0,  200,    0,  192,    0,    0,  191,
745         0,  234,    0,    0,    0,    0,    0,    0,    0,    0,
746       368,    0,    0,    0,    0,    0,    0,    0,    0,    0,
747         0,    0,    0,    0,  440,  439,    0,    0,    0,    0,
748         0,  513,    0,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,   58,    0,   57,    0,    0,  106,  200,  200,    0,
751         0,    0,    0,    0,    0,  194,    0,  193,  234,    0,
752       269,  268,    0,    0,    0,  296,  298,  295,  297,  368,
753
754       392,    0,  391,    0,    0,  426,  422,    0,    0,  425,
755       421,    0,  457,    0,  456,    0,  541,    0,    0,  540,
756         0,    0,    0,  550,    0,    0,    0,   12,    0,   12,
757         0,   33,    0,    0,    0,   31,   32,    0,    0,    0,
758        30,   56,   55,  200,  200,    0,    0,    0,    0,    0,
759       190,  189,    0,    0,  234,    0,    0,    0,    0,  368,
760         0,    0,    0,    0,    0,    0,  455,  454,  535,  539,
761       534,  538,    0,    0,    0,    0,    0,    0,    0,   25,
762         0,    0,    0,   24,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,  148,  147,    0,    0,    0,    0,    0,    0,
768         0,    0,    0,  196,  195,    0,  218,  217,    0,    0,
769         0,    0,    0,    0,    0,  350,  349,    0,    0,  420,
770         0,  419,    0,    0,   11,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,  394,  393,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775
776         0,    0,    0,    0,  424,  423,    0,    0,   35,    0,
777         0,   34,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779         0,   27,    0,   26,    0,    0,    0,    0,    0,    0,
780       178,    0,    0,  177,    0,    0,  277,    0,    0,  276,
781         0,   37,   36,    0,    0,    0,    0,  182,    0,  181,
782         0,  279,    0,  278,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,  154,    0,  153,    0,
784         0,    0,    0,    0,    0,  156,  155,  180,  179,  281,
785       280,    0,    0,    0,    0,    0,    0,    0,    0,    0,
786
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
789         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
790         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
794         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
795         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,   13,    0
797
798     } ;
799
800 static yyconst flex_int32_t yy_ec[256] =
801     {   0,
802         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
803         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
806         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
807        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
808        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
809        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
810        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
811        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
812
813        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
814        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
815        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
819         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
820         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
821         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
822         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
823
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1
830     } ;
831
832 static yyconst flex_int32_t yy_meta[75] =
833     {   0,
834         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
835         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
836         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
837         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
838         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
839         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
840         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
841         5,    5,    5,    5
842     } ;
843
844 static yyconst flex_int16_t yy_base[3893] =
845     {   0,
846         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
847        14,   17,   33,   36,   49,   55,   45,   61,  108,  174,
848        66,   72,   75,   78,   83,  128,  131,  134,  138,  141,
849       194,  197,  200,  204,  207,  224,  230,  233,  241,  250,
850       268,  335,  288,  291,  294,  298,  301,  355,  358,  361,
851       402,  472,  365,  368,  542,  602,  422,  425,  662,  729,
852       428,  432,  435,  452,  492,  495,  498,  502,  796,  863,
853       505,  522,  562,  565,  568,  572,  575,  622,  930,  997,
854       625,  628, 1064,    0,  632,  635,  682,  685,  688,  692,
855       695,  749, 1138, 1195,  752,  755,  759,  762,  816,  819,
856
857       822,  826, 1252, 1319,  829,  883,  886,  889,  893,  896,
858       950,  953, 1386, 1455,  956,  960, 1524, 1578,  963, 1017,
859      1020, 1023, 1027, 1030, 1158, 1161, 1632, 1699, 1164, 1168,
860      1171, 1215, 1218, 1221, 1225, 1228, 1766, 1823, 1272, 1275,
861      1880, 1950, 1278, 1282, 2020, 2087, 1339, 1342, 2154, 2222,
862      1345, 1349, 2290, 2357, 1406, 1409, 1412, 1416, 2424, 2494,
863      1419, 1475, 1478, 1481, 1485, 1488, 1544, 1547, 1550, 1554,
864      1557, 1598, 1601, 1604, 1608, 1611, 1652, 1655, 1658, 1662,
865      2564, 2631, 1665, 1719, 1722, 1725, 1729, 1732, 1786, 1789,
866      2698, 2768, 1792, 1796, 2838, 2905, 1799, 1843, 2972, 3039,
867
868      1846, 1849, 1853, 1856, 1900, 1903, 1906, 1910, 3106, 3163,
869      1913, 1930, 3220, 3288, 1970, 1973, 1976, 1980, 1983, 2000,
870      2040, 2043, 3356, 3423, 2046, 2050, 2053, 2107, 2110, 2113,
871      2117, 2120, 3490, 3554, 2133, 2173, 3618, 3686, 2180, 2184,
872         0,    0, 9293,12118,12118,   95,  100,   29,   41,12118,
873       103,   51,12118,12118, 9278,12118,12118, 9267,12118, 9282,
874      9280,  164,12118,12118,12118,12118, 9278, 9278, 9229,12118,
875       158, 9255,    0,  142,12118, 9222, 9208,12118,  164, 3750,
876      9206, 3814, 2128, 1238, 9257,   31,12118,  253, 9244,    0,
877       143,12118, 9196, 9191,   84,12118,  258,  253, 9247, 9198,
878
879     12118,  322, 9237,    0,  148,12118, 9203,12118,  325,  218,
880     12118,  328, 9231,    0,  242,12118, 9201, 9195, 9197,12118,
881       389,  373,12118,  393, 9225,    0,  245,12118, 9173, 9168,
882      9172,12118,  396, 9223,   11,12118,  455, 9214,    0,  313,
883     12118, 9166, 9162,12118,  458, 9215,   79,12118,  461, 9206,
884         0,  446,12118, 9152, 9170, 9172, 9150, 9166,   19,12118,
885       525,  509,12118,  529, 9194,    0,  447,12118, 9141,  101,
886      9147, 9157,  317, 9138,  258,  651, 9140,12118,  532, 9190,
887       246,12118,  535, 9179,    0,  576,12118, 9146,12118,  592,
888      9185,  287,12118,  652, 9172,    0,  577,12118, 9121, 9127,
889
890      9135, 9119,  320,12118,  719,  112, 9124,  377,12118,  722,
891      9160,    0,  579,12118, 9116, 9126, 9111,12118,  783,  639,
892     12118,  786, 9154,    0,  580,12118, 9116,12118,  789, 2187,
893      9156,  629,12118,  847, 9147,    0,  637,12118, 9117, 9111,
894      9113,  102,12118,  850, 9149,  704,12118,  853, 9136,    0,
895       640,12118, 9098, 9102,12118,  856,  706,12118,  914, 9131,
896         0,  707,12118, 9098, 9100,12118,  917,  901,12118,  921,
897      9124,    0,  773,12118, 9094, 9074,12118,  924,  967,12118,
898       980, 9119,    0,  774,12118, 9089, 9064,12118,  989, 1034,
899     12118, 1047, 9112,    0,  840,12118, 9061, 9059, 9064, 9074,
900
901      9076,  447,12118, 1056, 1350,  841,12118, 1188, 9100,    0,
902       964,12118, 9066,12118, 1245, 2194,  748, 1241,  771, 9054,
903       815,12118, 1308, 9095,    0,  965,12118, 9045, 9050, 9051,
904      9045, 9038,12118, 1311,  454, 9054,  882,12118, 1370, 9082,
905         0,  968,12118, 9049, 9047,12118, 1375, 1423,12118, 1378,
906      9075,    0, 1031,12118, 9041, 9039, 1234, 9041,  137,12118,
907      1437, 1424,12118, 1444, 9069,    0, 1032,12118, 9017, 1114,
908     12118, 1447, 9063,  204,12118, 1450, 9054,    0, 1035,12118,
909      9010, 9016,12118, 1506, 1492,12118, 1512, 9047,    0, 1172,
910     12118, 8998, 8998, 9008, 8986,12118, 1515, 9042,  949,12118,
911
912      1518, 9033,    0, 1173,12118, 8989, 8995, 8983, 8988,12118,
913      1682,  272, 8979, 1171,12118, 1691, 9019,    0, 1354,12118,
914      8981, 8981, 8979, 1669, 8984,12118, 1694, 9006,    0, 1364,
915     12118, 8965, 8967, 8953,12118, 1749, 1736, 1758,  408, 8946,
916     12118, 9007, 8992,12118,12118,12118, 1750,  153, 8943, 8942,
917      8936, 8984,12118,    0, 2244, 8934, 8976, 8958, 8930,  328,
918      1177, 8928, 8928, 8932,  524, 1185,  259, 8916, 8917, 1445,
919      8943,  396, 1301, 8914, 8914, 8918, 1755,  584, 8902, 8903,
920      8929,  398, 1812,  979,  439, 1245,12118,    0, 8895, 8914,
921      8910, 8895, 8933, 8897,12118,    0, 8889, 8899,12118,    0,
922
923      8885, 2262, 8874, 8891,12118,    0, 8872, 8887, 8883, 8883,
924     12118,    0, 8860, 8876, 8876,12118,    0, 2268, 2310, 8853,
925      8867, 8867, 8861, 8859, 8861,12118,    0, 8858, 8858, 2313,
926      8839, 2316, 8832, 8838, 8835, 8840, 8840, 8822, 8837, 8832,
927      8835, 8267, 8256, 8267,12118,    0, 2319, 8266,12118,    0,
928      8267,  175, 2323, 8247, 8261, 8264, 8256,  638,12118,    0,
929      8239, 2377, 2380, 8253,12118,    0, 8247, 8242, 8259,12118,
930         0, 8234, 2383, 8220, 8237, 8236, 8223,12118,    0, 8212,
931      2386, 8217,12118,    0, 2390, 8215, 8208,12118,    0, 8206,
932      8200, 8200,12118,    0, 8199, 8186, 8178,12118,    0, 8189,
933
934      8180, 8164, 2444, 8157, 8162, 8159, 8143, 8145,12118,    0,
935      8138, 8123, 1506, 1813, 1368, 1514, 1869,12118,    0, 8122,
936      8115, 8118, 8127, 8125, 8102, 8099,12118,    0, 2447, 8103,
937      8094,12118,    0, 8095, 2450, 8083, 8097, 8083, 8089, 8075,
938      8068, 8053,12118,    0, 8049, 8060, 8049, 8042,12118,    0,
939      8036, 2453, 8028,12118,    0, 8014, 8019, 2456, 8010, 8006,
940     12118,    0, 8009, 2474, 8018, 7994, 7993,  845,12118,    0,
941      7999, 2514, 7991,  512, 7980, 8027,12118,    0, 7992, 7981,
942      7974, 7954, 8000, 8005, 1406, 7952,12118, 1925,    0, 7948,
943      7947, 7979, 7960, 7912,12118, 2517, 2006, 7906, 2201, 2522,
944
945      2073, 7917, 7910, 7886, 7899, 7878, 7880, 7874, 7887, 7874,
946      1266, 7867, 7880, 7882, 7867, 7866, 7845, 7850, 7862, 7843,
947      2076, 7852, 7833, 7845, 7817, 7818, 7828, 7816, 7823, 7796,
948      7799, 7808, 2081, 7786, 7785, 2525, 2528, 2535, 2586, 2589,
949      2652, 7790, 7775, 2594, 2597, 7791, 2600, 2208, 7760, 2604,
950      2672, 2662, 2732, 2665, 2720, 2723, 2727, 2735, 2745, 2788,
951      2791, 2250, 2798, 2271, 2801, 2809, 2864, 2875, 2878, 2867,
952      2939, 7754, 1939, 2870, 2342, 7754, 2927, 2409, 2931, 7745,
953      7730, 7739, 7726, 7714, 7706, 7718, 7701, 7707, 7695, 2934,
954      2945, 2992, 2477, 2995, 3000, 7696, 7686, 7693, 3004, 2546,
955
956      7692, 7677, 7661, 3010, 3067, 1471, 7659, 7656, 3062, 2554,
957      3070, 2754, 3073, 3076, 7663, 3080, 3129, 2141, 7659, 3132,
958      2820, 7657, 7642, 7631, 3138, 3141, 7638, 3183, 2828, 3186,
959      3191, 3197, 3023, 7620, 3240, 3248, 7624, 7606, 3243, 3252,
960      7618, 7616, 3255, 3316, 7594,    3, 7584, 3310, 3095, 3319,
961      7595, 7578, 3322, 3328, 7596, 7576, 3376, 3385, 7567, 7565,
962      7564, 7574, 7540, 7547, 7551, 7538, 3388, 3391, 7547, 3382,
963      3276, 7528, 3395, 3446, 7543, 3449, 3452, 3460, 7528, 3469,
964      7532, 7535, 7528, 3511, 3521, 3514, 3524, 3579, 3518, 3582,
965      7509, 3574, 3585, 3593, 3639, 7524, 7500, 3644, 3601, 7514,
966
967      3647, 3650, 7497, 3653, 3672, 7507, 7504, 3706, 3709, 1579,
968      7498, 3712, 3718, 7493, 7524, 3732, 3738,12118, 7479, 7487,
969      7482, 3744, 3747, 7512,12118,12118, 1334, 7470,12118, 7500,
970      7493, 7442,12118,12118, 7431, 3757,12118,12118, 7441, 3766,
971      3771,12118, 3776, 1941, 7433, 7419, 7427, 7436, 7422, 7408,
972      7419, 7395, 7401, 7400, 7401, 7391, 7388, 7380, 7373,  718,
973      7371, 7354, 7354, 7368, 1566, 2070, 7354, 7357, 7350, 7341,
974      7329, 7323, 7330, 7329, 7317, 7314, 7314, 7327, 7309, 7302,
975      3779, 3786, 7295, 7295, 3818, 3821, 7306, 3829, 3836,12118,
976      3839, 7292, 7297, 3842, 3848,12118, 3881, 7277, 3851,12118,
977
978     12118, 7285, 3884, 3887,12118, 3890, 3893, 3911, 7278, 7278,
979      3919, 3922, 3896, 3930,12118, 3940, 3943, 3949, 3961, 3964,
980      3972, 3975,12118, 3979, 3982,12118,12118, 3994,12118,12118,
981      4003, 4006, 7281, 7279, 7277, 7270, 4014, 4017,12118, 4021,
982      7262, 7250, 7270, 7251, 4024,12118,12118, 4036, 4042,12118,
983     12118, 4050, 4054, 7237, 7250, 7242, 7246, 7236, 7231, 7230,
984      7227, 7222, 1121, 4062, 4070,12118, 4073, 4077,12118,12118,
985      4085, 4092,12118, 4095, 7216, 7223, 4098, 4104,12118,12118,
986      7205, 7220, 7217, 4116, 4119,12118, 4123, 7197, 7193, 4126,
987      4129,12118,12118, 4144,12118,12118, 4152, 4156,12118, 4159,
988
989      4162, 4165, 4171,12118, 4180, 7179, 4190,12118,12118, 7185,
990      7184, 7187, 4184, 4199,12118, 4203, 7178, 4206,12118,12118,
991      4214, 4218,12118, 4225, 4233,12118,12118, 7172, 4244, 4247,
992     12118, 4250, 4253, 4256, 4259, 4274,12118, 4278, 4281, 4287,
993      4293, 4305,12118, 4308, 7163, 7147, 7138, 7144, 4312,12118,
994     12118, 4320, 4327, 7143, 7132, 4338, 4341,12118, 4346, 7099,
995      7099, 4349, 4352,12118, 4360, 7099, 1624, 7049, 7031, 4371,
996      7034, 7025, 6990, 4375, 4380,12118, 4383, 6978, 4402,12118,
997     12118, 6966, 4390, 4394,12118, 4413, 6912, 4416,12118,12118,
998      4424, 4428, 4436, 4445, 4448, 6925, 4456, 6910, 4459, 4463,
999
1000     12118, 4466, 4469, 4478, 4487, 4490, 6859, 4498, 4501,12118,
1001      4505, 6848, 4508,12118,12118, 4520, 4527,12118, 4530, 6848,
1002      6835, 4533,12118,12118, 6853, 4541, 4549,12118, 4552, 6770,
1003      4556,12118,12118, 6735, 4564, 4573, 4576,12118, 4582, 6726,
1004      4585, 4588,12118,12118, 4603, 6737, 4606, 4609,12118, 4614,
1005      6687, 4617, 6686, 4621, 4628,12118, 4635,  955, 4640,12118,
1006     12118, 6546, 6526, 6401, 4647,12118, 6392, 6399, 6395, 6338,
1007      6307, 6279, 6237, 2350, 6207, 2417, 6131, 6041, 6033, 2485,
1008      6032,   36, 2488,   31,   47,  197,  196, 2626,  198,  261,
1009       308,  380,  376, 2693,  448, 2953, 2655,  488,  524,  565,
1010
1011       604,  625, 4650,12118,12118,  634,  653, 4666,12118,12118,
1012       677, 4674, 3144, 4677, 4683,  714,  721, 4686, 4689,12118,
1013     12118,  706,  785, 4698,12118,12118, 4706, 4709,12118,12118,
1014      4718,12118,12118, 4726, 4729,12118,12118,  766,  790, 4737,
1015       769, 4740,  853, 4745,  835,  880, 4755, 4759, 4767,12118,
1016     12118, 1009, 1105, 1116, 1162, 1168, 1182, 4775, 1220, 1217,
1017      1231, 1234, 4778, 4781, 1268, 1299, 4784, 4787, 1331, 4802,
1018      1354, 4805, 1357, 1405, 4808, 4811, 4820, 4827, 4830, 4839,
1019      1429, 1443, 1433, 1452, 4845, 1496, 4848, 4851, 4858, 4872,
1020      4877, 1512, 4890, 4893, 4899, 1521, 4911, 1527, 4914, 1526,
1021
1022      1552, 4917,12118,12118, 4925, 1570, 4933, 1566, 1558, 4936,
1023      1566, 1574, 1565, 1606, 4939, 4945, 1603, 1615, 1629, 4957,
1024      1626, 4960, 4963, 1642, 4966,12118,12118, 4978, 4982, 4992,
1025     12118,12118, 1666, 5003, 5007, 1677, 5015, 5022,12118,12118,
1026      5030,12118,12118, 1670, 5038, 1682, 5041, 1686, 1682, 1702,
1027      5044, 1693, 5047, 5050, 5053, 5068, 1698, 5071, 5074, 1730,
1028      1775, 5082, 1743, 5089, 5092, 5101, 5109, 1891, 1786, 5112,
1029     12118, 1789,12118,12118, 1756, 1748, 1766, 1757, 1772, 1801,
1030      1809, 1808, 2658, 1808, 1824, 2888, 1826, 1848, 2898, 1870,
1031      2965, 1857, 1856, 3031, 1864, 3152, 1875, 3201, 3034, 1873,
1032
1033      1883, 1880, 1896, 1913, 3347, 1921, 1938, 3350, 3416, 3473,
1034      1937, 3612, 3479, 3483, 5119, 5122, 5133, 5141, 1942, 5144,
1035      5147, 5155, 1943, 1927, 5164, 5167, 5170, 5174, 5177, 5188,
1036      5198, 5201, 5209, 5219, 5222, 1955, 5226, 5230, 5244, 1945,
1037      5247,12118,12118, 1947, 1963, 5257, 1956, 1969, 1964, 5262,
1038      5265, 1982, 5275, 2002, 2004, 5283, 5286, 2010, 2000, 5289,
1039     12118,12118, 5297, 5305, 5308, 2009, 5316, 3548, 2016, 5319,
1040     12118,12118, 5327, 5331,12118,12118, 5342, 2017, 1997, 2026,
1041      2032, 5346, 2046, 5350, 5353, 5365, 5356, 5375,12118,12118,
1042      2065, 5383, 5386,12118,12118, 5361, 5397, 2076, 5402, 5406,
1043
1044      5416, 2065, 5420, 5423, 2075, 5434, 2067, 2070, 5438, 2091,
1045      2081, 2091, 2090, 5441,12118,12118, 2113, 2119, 2117, 5453,
1046      2136, 5457, 5462, 5475, 2122, 5478,12118,12118, 2133, 5487,
1047     12118,12118, 2125, 5495, 2131, 5498, 2146, 5501, 5505, 5508,
1048      5526, 5529, 2145, 5533, 5537, 5553,12118,12118, 5561, 2167,
1049      5564,12118,12118, 2161, 2179, 5580, 2181, 5583, 2650, 3377,
1050      5592, 5595, 5603, 2230, 2262, 2420,12118, 5610, 2204, 2199,
1051      2200, 2311, 2208, 2212, 3680, 2222, 2230, 2217, 2222, 4854,
1052      2233, 2223, 2239, 5115, 5613, 5616, 2275, 5622, 2279, 2278,
1053      2272, 2378, 2275, 2289, 2299, 2320, 5628, 5632, 2338, 5635,
1054
1055      2344, 5638, 5641, 5649, 5656, 2340, 5667, 2333, 5670,12118,
1056     12118, 5678, 2342, 5681, 5686, 5689, 5693, 5701, 5707, 5719,
1057      5722, 5715, 5734, 5725, 5744,12118,12118, 5752, 5755, 5763,
1058      2365, 5766,12118,12118, 5774, 5778, 2366, 2413, 2403, 5788,
1059      5792, 5800, 2407, 2419, 5806,12118,12118, 2411, 5818, 5821,
1060      2408, 2409, 5829, 5832, 2427, 2436, 5836, 5839, 5854,12118,
1061     12118, 2453, 5863,12118, 5866, 2467, 5869, 5872, 2455, 5875,
1062      2486, 2478, 5882,12118, 2480, 5893, 5897,12118,12118, 5905,
1063      2515, 5908, 5912, 5930, 5915, 2489, 5939,12118,12118, 5918,
1064      5948, 2502, 5956,12118,12118, 2496, 5964,12118, 2493, 5967,
1065
1066      5970, 5973, 2495, 5976, 2524, 2526, 2525, 2555, 5979, 2551,
1067      5985,12118,12118, 5993,12118, 2552, 5998, 2559, 6001, 2564,
1068      6004, 2573, 6007, 6012, 6016, 6026, 6032, 6035, 6045, 6050,
1069      6054,12118,12118, 6064, 2561, 2575, 2631, 6068, 6073, 2648,
1070      2635, 2658, 2645, 2664, 2657, 2698, 2677, 6076,12118,12118,
1071      6087, 2733, 2713, 2732, 6091, 6099, 6109, 2664, 2689, 2711,
1072      2698, 6112, 6118, 6121, 2700, 6124, 2704, 2701, 2744, 2745,
1073      6127, 6130, 6134, 6137, 2744, 6140, 2756, 2777, 2755, 6143,
1074      6146, 2757, 6149, 6152, 6155, 2758, 6158,12118,12118, 6166,
1075     12118,12118, 2776, 6174, 2771, 6177, 2779, 6180, 6184, 6198,
1076
1077      6202,12118,12118, 6210,12118,12118, 6218, 6221, 6226,12118,
1078     12118, 6242, 6245, 6260,12118,12118, 6253, 2776, 6268,12118,
1079     12118, 2792, 2800, 2814, 6276,12118,12118, 6284, 6287, 2812,
1080      2801, 2815, 6295,12118,12118, 2827, 6303, 6306, 6309, 2826,
1081      2820, 6314,12118,12118, 2836, 2845, 6328, 6331, 2847, 6334,
1082      6337, 2873, 2875, 2880, 2882, 6353, 6356, 2893, 6359,12118,
1083      6362,12118,12118, 6378, 2893, 6384,12118,12118, 2890, 2901,
1084      2902, 6392, 6397, 6405, 6410, 6413, 6420, 6424, 6427, 6432,
1085      6435, 6438, 2896, 2904, 6445, 6453, 2951, 6463, 2958, 6466,
1086     12118, 2942, 6470, 6473,12118,12118, 6485, 6491, 2948, 6504,
1087
1088     12118,12118, 6499, 6512, 6518, 2949, 6526, 2955, 2965, 2982,
1089      6530,12118, 6534, 6538, 2996, 3016, 3021, 3027, 3041, 3033,
1090      3049, 3050, 3057, 3068, 6552, 6555, 3075, 3083, 6558, 4043,
1091      4842, 6566, 6574, 6578, 3036, 3036, 6581, 6584, 3063, 6587,
1092      6590, 3065, 6593, 6596, 6602, 6605, 3061, 3075, 6608, 6611,
1093      3093, 3091, 6614, 6617, 3103, 6620, 6623, 3111, 3134, 3148,
1094      6626, 6629, 6632, 6635, 6638,12118,12118, 6646, 6653, 6656,
1095      6659,12118,12118, 6667, 3150, 3153, 3155, 3214, 6675,12118,
1096     12118, 6686, 3150, 3162, 3156, 6691, 6700, 6694, 6709,12118,
1097      3162, 3183, 3200, 6713, 6718, 6721, 6724, 6728,12118,12118,
1098
1099      6742, 6745, 6748, 6751, 6754, 6773, 6779, 6782, 3204, 3209,
1100      3212, 6785, 6788,12118,12118, 6801, 6807, 6810, 6816, 6824,
1101      6828, 6834, 6838, 6842, 6846, 6857,12118,12118, 6852, 6865,
1102     12118, 3221, 3220, 6870,12118, 6873,12118,12118, 3203, 6889,
1103      6892,12118,12118, 3208, 6901, 3220, 3216,12118, 6904,12118,
1104     12118, 3261, 3247, 3278, 3278, 3290, 3292, 3287, 3302, 3301,
1105      3314, 6912, 6915, 3352, 3389, 3281, 3286, 3286, 3281, 3290,
1106      3322, 3355, 3530, 3351, 3364, 6920, 6923, 3359, 3371, 6926,
1107      6934, 3383, 6937, 6940, 3386, 3398, 6943, 3402, 3399, 6948,
1108      3405, 3427, 3446, 6951,12118, 6954, 6957, 6961, 6964, 6979,
1109
1110      6982, 6985, 6988,12118, 3451, 3481, 3468, 3461, 3485, 6991,
1111      6994, 3475, 7009, 3487, 7012, 3552, 3639, 7020,12118, 3474,
1112      3479, 7023, 7027, 7030, 7033,12118, 7041, 7053, 3494, 3493,
1113      3520, 7061, 7064, 7067, 7075, 7082, 7088, 7094, 7102, 3538,
1114      3542, 7106, 7109, 7112, 7115,12118,12118, 7124, 7127, 7135,
1115      7138, 7144,12118, 7147, 7156, 7159, 7167, 3552, 3550, 3570,
1116      7170,12118, 3580, 7174, 3594, 3588, 3619, 3620, 3634, 3625,
1117      3655, 3642, 3669, 3684, 3675, 3700, 7177, 3724, 3708, 3765,
1118      3661, 3679, 3675, 3683, 3691, 3686, 3688, 3718, 3724, 3733,
1119      3732, 3727, 3733, 3750, 7180, 7185, 3741, 3755, 3740, 3759,
1120
1121      7189, 3751, 3773, 7196, 7199,12118, 7202,12118,12118, 7210,
1122     12118, 7214, 7218, 3756, 3770, 3788, 7224, 3780, 7242,12118,
1123     12118, 3801, 7233, 7251, 3793, 3844, 3831, 3886, 3833, 3799,
1124      7259, 7262, 7265, 7229, 7281,12118,12118, 3816, 3823, 3822,
1125      7289, 7292, 7300, 4099, 4189, 7308,12118, 7311, 7314,12118,
1126     12118, 7322,12118, 3829, 7330, 7333, 7337, 7351,12118, 7354,
1127     12118,12118, 7362, 7370, 7365, 7383, 7391, 3902, 3934, 7399,
1128      7402, 7405, 3850, 3853, 7408, 7411, 7423, 3879, 3889, 3894,
1129      3907, 3924, 3905, 3917, 3924, 3927, 3945, 7427, 3941, 3951,
1130      3967, 3889, 3898, 3916, 3933, 3941, 3952, 3935, 3952, 3941,
1131
1132      3971, 3979, 3986, 3968, 7430, 7433, 3989, 3996, 3981, 7436,
1133      3997, 4008, 7441, 7446, 7454, 7462, 4013, 3999, 7465, 7468,
1134      7474, 7488, 4033, 7491,12118,12118, 4038, 4052, 4081, 4066,
1135      4069, 4089, 4076, 4068, 7499, 7502, 7510,12118,12118, 7518,
1136     12118, 4077, 7522, 4090, 7525,12118,12118, 4108, 4113, 4114,
1137      4116, 4134, 4134, 7533, 4129, 7540, 7543, 7552,12118,12118,
1138      7560, 4173, 4248, 7568,12118,12118, 4140, 4144, 4266, 4151,
1139      4159, 4297, 7576, 7579, 7582, 7590, 7597, 7608, 7611, 7614,
1140      7617, 7620, 7638, 4172, 4171, 4180, 4190,12118, 4208, 4198,
1141      4196, 4201,12118, 7629, 4224, 4248, 7633, 4198, 4202, 4219,
1142
1143      4268, 4287, 4239, 4236, 4253, 4274, 4318, 4325, 4275, 4284,
1144      7652, 7655, 4270, 4293, 7658, 7661, 4289, 7664, 4325, 4336,
1145      7672, 7677, 4305, 4305, 7681, 7684, 7692,12118,12118, 7700,
1146      7703, 4294, 4302, 4340, 4349, 4350, 4353, 4362, 4366, 4358,
1147      7711,12118,12118, 4360, 7719, 7722, 4348, 4380, 4389, 4423,
1148      4392, 4401, 4432, 7730,12118, 4388, 7733,12118,12118, 4414,
1149      4419, 4423, 4430, 4452, 4442, 4443, 4457, 4473, 4462, 4463,
1150      4485, 7741, 7745, 4481, 4503, 7753,12118,12118, 7761, 7764,
1151      7772, 7775, 7783, 7786,12118,12118, 4475, 4497, 4514, 4505,
1152      4501, 4524, 4540, 4535, 7794, 4544, 7797, 7802, 7806, 4510,
1153
1154      4502, 4565,12118,12118, 4521, 4528, 4514, 4586,12118,12118,
1155      4548, 7816, 7821, 7825, 7828, 7831, 7835, 4565, 4577, 4578,
1156      4601, 7838, 7844,12118, 4571, 4576, 7847,12118,12118, 7857,
1157     12118,12118, 7865, 4568, 4600, 4640, 4608, 4617, 4649, 4623,
1158      4607, 7868, 7871,12118,12118, 7879, 4630, 4645,12118, 4638,
1159      4648,12118, 4625, 4657, 4658, 4673, 4666, 4679, 4690, 4692,
1160      4680, 4688, 4699, 4709, 4697, 7886, 7890, 4714, 4725, 4717,
1161      4728, 7898,12118,12118, 7906,12118,12118, 7914, 4737, 4737,
1162     12118, 4742, 4763, 4765,12118, 4769, 7917, 4808, 7920, 7923,
1163      7942, 7985, 8032, 4734, 4736,12118, 4759, 4752, 4753,12118,
1164
1165      4769, 7950, 7953, 7956, 7961, 4831, 4799, 4835, 4824, 7964,
1166      4804, 4821, 7976, 7967, 7979, 4844,12118, 4879, 4849,12118,
1167      4880, 4830, 7997, 8005, 8023, 8015, 4892, 4894, 4897, 4900,
1168      4862, 4918, 4885, 4921, 4892, 4909, 4939, 4940, 4910, 4930,
1169      4948, 4962, 4933, 8052,12118,12118, 4970, 4939, 4978, 4950,
1170      8026,12118, 4984, 4959, 4960, 4991, 4969, 4970, 8060, 4994,
1171      8063, 5009, 5003, 8083, 8130, 5156, 4971, 5015, 5179, 4981,
1172      5028,12118, 5032,12118, 5054, 8073,12118, 5012, 4995, 8103,
1173      5060, 5100, 8094, 8112, 5053,12118, 5055,12118, 5029, 8150,
1174     12118,12118, 8158, 5101, 5103,12118,12118,12118,12118, 5036,
1175
1176     12118, 5075,12118, 5078, 5093,12118,12118, 5093, 5140,12118,
1177     12118, 5117,12118, 5158,12118, 5176,12118, 5181, 5187,12118,
1178      5186, 5189, 8120,12118, 5211, 5234, 5188, 5221, 5253, 5226,
1179      8123,12118, 5188, 5180, 5246,12118,12118, 5206, 5194, 5273,
1180     12118,12118,12118, 8166, 8169, 5261, 5246, 5274, 5251, 8177,
1181     12118,12118, 5278, 5279, 8187, 5291, 5297, 5320, 5298, 8190,
1182      5300, 5301, 5326, 5347, 5367, 5357,12118,12118,12118,12118,
1183     12118,12118, 8193, 5385, 5372, 5385, 8196, 5328, 5331,12118,
1184      5353, 5339, 5347,12118, 5365, 8199, 8208, 8217, 8220, 5388,
1185      5397, 5409, 5393, 5401, 5424, 5442, 5440, 8228, 8231, 5412,
1186
1187      5420, 5440, 5427, 5436, 5448, 8239, 8242, 5432, 5434, 5469,
1188      5461, 5476, 5464, 8250, 5468, 5454, 5444, 5463, 5476, 5448,
1189      5468, 8253,12118,12118, 8262, 5495, 5499, 5483, 5490, 5487,
1190      5505, 5511, 5509,12118,12118, 8270,12118,12118, 5511, 5517,
1191      5515, 5523, 5528, 5531, 8278,12118,12118, 5565, 5563,12118,
1192      5540,12118, 5541, 5557,12118, 5513, 5513, 5532, 5524, 5524,
1193      5537, 5581, 5579, 5587, 5592, 5592, 5602, 5602, 5616, 5623,
1194      5623, 5624, 5630, 5635, 5633, 5639, 5640,12118,12118, 5661,
1195      5666, 5694, 5624, 5672, 5633, 5641, 5692, 5654, 5672, 5693,
1196      5690, 5710, 5704, 5704, 5726, 5715, 5719, 5737, 5726, 5732,
1197
1198      5749, 5742, 5744, 5763,12118,12118, 5777, 5746,12118, 5794,
1199      5752,12118, 5797, 5774, 5775, 5777, 5780, 5800, 5791, 5823,
1200      5818, 5809, 5838, 5824, 5814, 5847, 5828, 5822, 5852, 5878,
1201      5856,12118, 5855,12118, 5850, 5855, 5858, 5864, 5885, 5860,
1202     12118, 5896, 5893,12118, 5921, 5897,12118, 5929, 5907,12118,
1203      5927,12118,12118, 5909, 5924, 5918, 5931,12118, 5937,12118,
1204      5959,12118, 5966,12118, 5967, 8288, 5972, 6006, 5997, 6017,
1205      5988, 5996, 5998, 5999, 8291, 6044,12118, 6046,12118, 6053,
1206      6052, 6058, 6072, 6151, 6153,12118,12118,12118,12118,12118,
1207     12118, 6097, 6098, 6169, 6175, 6172, 6178, 6067, 6299, 6084,
1208
1209      6214, 6238, 6255, 6143, 6233, 6176, 6195, 6263, 6264, 6272,
1210      6294, 6308, 6325, 6211, 6245, 6350, 6358, 6086, 6372, 6322,
1211      6334, 6398, 6399, 6154, 6472, 6384, 6412, 6471, 6519, 6464,
1212      6465, 6663, 6671, 6424, 6491, 6489, 6503, 6479, 6505, 6492,
1213      6623, 6553, 6652, 6722, 6748, 6631, 6715, 6740, 6751, 6332,
1214      6355, 6330, 6698, 6716, 6743, 6625, 6647, 6546, 6831, 6758,
1215      6814, 6776, 6795, 6655, 6837, 6858, 6989, 6844, 6864, 6877,
1216      6949, 6746, 6913, 6952, 6984, 6882, 7021, 7018, 7031, 6997,
1217      7000, 7061, 7124, 7041, 7100, 7026, 7190, 7103, 7114, 6275,
1218      6644, 8299, 8302,12118,12118, 8322, 8331, 8340, 8349, 8358,
1219
1220      8367, 8376, 8385, 8394, 8403, 8412, 8421, 8430, 8439, 8448,
1221      8457, 8466, 8475, 8484, 8493, 8502, 8511, 8520, 8529, 8538,
1222      8547, 8556, 8565, 8574, 8583, 8592, 8601, 8610, 8619, 8628,
1223      8637, 8646, 8655, 8664, 8673, 8682, 8691, 8700, 8709, 8718,
1224      8727, 8736, 8745, 8754, 8763, 8772, 8781, 8790, 8799, 8808,
1225      8817, 8826, 8835, 8844, 8853, 8862, 8871, 8878, 8885, 8892,
1226      8899, 8906, 8913, 8920, 8927, 8934, 8941, 8948, 8955, 8962,
1227      8969, 8976, 8983, 8990, 8997, 9004, 9011, 9018, 9025, 9032,
1228      9039, 9046, 9053, 9060, 9067, 9076, 9083, 9088, 9095, 9100,
1229      9107, 9112, 9119, 9124, 9131, 9136, 9143, 9148, 9155, 9160,
1230
1231      9167, 9172, 9179, 9184, 9191, 9196, 9203, 9208, 9215, 9220,
1232      9227, 9232, 9239, 9244, 9251, 9256, 9263, 9268, 9275, 9280,
1233      9287, 9292, 9299, 9304, 9311, 9316, 9323, 9328, 9335, 9340,
1234      9347, 9352, 9359, 9364, 9371, 9376, 9383, 9388, 9395, 9400,
1235      9407, 9412, 9421, 9427, 9434, 9442, 9450, 9458, 9465, 9473,
1236      9480, 9488, 9496, 9504, 9512, 9520, 9528, 9536, 9543, 9551,
1237      9559, 9566, 9574, 9581, 9589, 9596, 9604, 9611, 9619, 9626,
1238      9634, 9641, 9649, 9656, 9664, 9671, 9679, 9686, 9694, 9701,
1239      9709, 9716, 9724, 9731, 9739, 9746, 9754, 9762, 9770, 9777,
1240      9785, 9792, 9800, 9807, 9815, 9822, 9830, 9837, 9845, 9854,
1241
1242      9860, 9867, 9875, 9882, 9890, 9897, 9905, 9912, 9920, 9927,
1243      9935, 9943, 9950, 9958, 9965, 9973, 9981, 9988, 9996,10004,
1244     10012,10020,10028,10035,10043,10050,10058,10065,10073,10081,
1245     10089,10097,10105,10112,10120,10127,10135,10142,10150,10157,
1246     10165,10172,10180,10187,10195,10202,10210,10217,10225,10232,
1247     10240,10248,10256,10263,10271,10280,10289,10296,10303,10311,
1248     10319,10327,10334,10342,10349,10357,10365,10372,10380,10387,
1249     10395,10403,10410,10418,10426,10434,10441,10449,10456,10464,
1250     10472,10480,10487,10495,10502,10510,10517,10525,10532,10540,
1251     10547,10555,10563,10571,10578,10586,10593,10601,10608,10616,
1252
1253     10623,10631,10638,10646,10653,10661,10668,10676,10685,10694,
1254     10701,10709,10717,10725,10732,10740,10748,10756,10764,10772,
1255     10780,10787,10795,10803,10810,10818,10826,10834,10841,10849,
1256     10856,10864,10872,10879,10887,10895,10903,10910,10918,10925,
1257     10933,10940,10948,10956,10963,10971,10978,10986,10993,11001,
1258     11009,11017,11024,11032,11039,11047,11054,11062,11071,11080,
1259     11088,11095,11103,11111,11118,11126,11134,11142,11150,11158,
1260     11165,11173,11181,11188,11196,11204,11211,11218,11226,11234,
1261     11241,11249,11257,11264,11272,11280,11287,11295,11302,11310,
1262     11317,11325,11332,11340,11348,11356,11364,11372,11379,11387,
1263
1264     11395,11403,11412,11421,11428,11436,11444,11451,11459,11467,
1265     11475,11483,11490,11498,11506,11513,11521,11529,11536,11543,
1266     11551,11559,11566,11574,11581,11589,11597,11605,11612,11620,
1267     11627,11634,11642,11649,11657,11664,11672,11679,11687,11696,
1268     11705,11712,11720,11728,11736,11744,11752,11760,11768,11775,
1269     11783,11790,11798,11806,11814,11822,11830,11838,11846,11854,
1270     11861,11869,11877,11885,11893,11900,11907,11914,11922,11929,
1271     11937,11944,11952,11961,11970,11977,11985,11993,12001,12009,
1272     12016,12023,12031,12038,12046,12054,12063,12072,12081,12090,
1273     12099,12108
1274
1275     } ;
1276
1277 static yyconst flex_int16_t yy_def[3893] =
1278     {   0,
1279      3396, 3396, 3397, 3397, 3397, 3397, 3398, 3398, 3399, 3399,
1280      3400, 3400, 3401, 3401, 3401, 3401, 3402, 3402, 3403, 3403,
1281      3404, 3404, 3404, 3404, 3396, 3396, 3404, 3404, 3404, 3404,
1282      3396, 3396, 3404, 3404, 3396, 3396, 3404, 3404, 3404, 3404,
1283      3405, 3405, 3406, 3406, 3396, 3396, 3406, 3406, 3406, 3406,
1284      3407, 3407, 3408, 3408, 3409, 3409, 3410, 3410, 3411, 3411,
1285      3412, 3412, 3396, 3396, 3412, 3412, 3412, 3412, 3413, 3413,
1286      3414, 3414, 3396, 3396, 3414, 3414, 3414, 3414, 3415, 3415,
1287      3416, 3416, 3395,   83, 3417, 3417, 3396, 3396, 3417, 3417,
1288      3417, 3417, 3418, 3418, 3419, 3419, 3396, 3396, 3419, 3419,
1289
1290      3419, 3419, 3420, 3420, 3421, 3421, 3396, 3396, 3421, 3421,
1291      3421, 3421, 3422, 3422, 3423, 3423, 3424, 3424, 3425, 3425,
1292      3396, 3396, 3425, 3425, 3425, 3425, 3426, 3426, 3427, 3427,
1293      3396, 3396, 3427, 3427, 3427, 3427, 3428, 3428, 3429, 3429,
1294      3430, 3430, 3431, 3431, 3432, 3432, 3433, 3433, 3434, 3434,
1295      3435, 3435, 3436, 3436, 3437, 3437, 3396, 3396, 3438, 3438,
1296      3439, 3439, 3439, 3439, 3396, 3396, 3439, 3439, 3439, 3439,
1297      3396, 3396, 3439, 3439, 3396, 3396, 3439, 3439, 3439, 3439,
1298      3440, 3440, 3441, 3441, 3396, 3396, 3441, 3441, 3441, 3441,
1299      3442, 3442, 3443, 3443, 3444, 3444, 3445, 3445, 3446, 3446,
1300
1301      3447, 3447, 3396, 3396, 3447, 3447, 3447, 3447, 3448, 3448,
1302      3449, 3449, 3450, 3450, 3451, 3451, 3396, 3396, 3451, 3451,
1303      3451, 3451, 3452, 3452, 3453, 3453, 3396, 3396, 3453, 3453,
1304      3453, 3453, 3454, 3454, 3455, 3455, 3456, 3456, 3457, 3457,
1305      3396, 3396, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1306      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1307      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1308      3395, 3395, 3458, 3395, 3395, 3458, 3458, 3395, 3395, 3395,
1309       280, 3395,  282,  280,  283,  282, 3395, 3395, 3395, 3459,
1310      3395, 3395, 3459, 3459, 3459, 3395, 3395,  282,  298,  298,
1311
1312      3395, 3395, 3395, 3460, 3395, 3395, 3460, 3395, 3395, 3395,
1313      3395, 3395, 3395, 3461, 3395, 3395, 3461, 3461, 3461, 3395,
1314      3395, 3395, 3395, 3395, 3395, 3462, 3395, 3395, 3462, 3462,
1315      3462, 3395, 3395,  298,  298, 3395, 3395, 3395, 3463, 3395,
1316      3395, 3463, 3463, 3395, 3395,  298,  298, 3395, 3395, 3395,
1317      3464, 3395, 3395, 3464, 3464, 3464, 3464, 3464, 3464, 3395,
1318      3395, 3395, 3395, 3395, 3395, 3465, 3395, 3395, 3465, 3465,
1319      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3395, 3395,  282,
1320       282, 3395, 3395, 3395, 3466, 3395, 3395, 3466, 3395, 3395,
1321       282,  282, 3395, 3395, 3395, 3467, 3395, 3395, 3467, 3467,
1322
1323      3467, 3467, 3467, 3395, 3395,  282,  282,  282, 3395, 3395,
1324      3395, 3468, 3395, 3395, 3468, 3468, 3468, 3395, 3395, 3395,
1325      3395, 3395, 3395, 3469, 3395, 3395, 3469, 3395, 3395,  282,
1326       430,  282, 3395, 3395, 3395, 3470, 3395, 3395, 3470, 3470,
1327      3470, 3470, 3395, 3395,  282,  282, 3395, 3395, 3395, 3471,
1328      3395, 3395, 3471, 3471, 3395, 3395, 3395, 3395, 3395, 3395,
1329      3472, 3395, 3395, 3472, 3472, 3395, 3395, 3395, 3395, 3395,
1330      3395, 3473, 3395, 3395, 3473, 3473, 3395, 3395, 3395, 3395,
1331      3395, 3395, 3474, 3395, 3395, 3474, 3474, 3395, 3395, 3395,
1332      3395, 3395, 3395, 3475, 3395, 3395, 3475, 3475, 3475, 3475,
1333
1334      3475, 3475, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3476,
1335      3395, 3395, 3476, 3395, 3395,  430,  430,  282,  282,  282,
1336       282, 3395, 3395, 3395, 3477, 3395, 3395, 3477, 3477, 3477,
1337      3477, 3477, 3395, 3395,  282,  282,  282, 3395, 3395, 3395,
1338      3478, 3395, 3395, 3478, 3478, 3395, 3395, 3395, 3395, 3395,
1339      3395, 3479, 3395, 3395, 3479, 3479, 3479, 3479, 3479, 3395,
1340      3395, 3395, 3395, 3395, 3395, 3480, 3395, 3395, 3480, 3480,
1341      3395, 3395,  298,  298, 3395, 3395, 3395, 3481, 3395, 3395,
1342      3481, 3481, 3395, 3395, 3395, 3395, 3395, 3395, 3482, 3395,
1343      3395, 3482, 3482, 3482, 3482, 3395, 3395,  282,  282, 3395,
1344
1345      3395, 3395, 3483, 3395, 3395, 3483, 3483, 3483, 3483, 3395,
1346      3395,  282,  282,  282, 3395, 3395, 3395, 3484, 3395, 3395,
1347      3484, 3484, 3484, 3395, 3395, 3395, 3395, 3395, 3485, 3395,
1348      3395, 3485, 3485, 3485, 3395, 3395, 3395, 3395, 3486, 3395,
1349      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1350      3395, 3395, 3395, 3487, 3487, 3487, 3488, 3395, 3395, 3395,
1351      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1352      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1353      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3489, 3489, 3489,
1354      3489, 3489, 3490, 3395, 3395, 3491, 3491, 3492, 3395, 3493,
1355
1356      3493, 3493, 3493, 3494, 3395, 3495, 3495, 3495, 3495, 3496,
1357      3395, 3497, 3497, 3497, 3498, 3395, 3499, 3499, 3499, 3499,
1358      3499, 3499, 3499, 3499, 3500, 3395, 3501, 3501, 3501, 3501,
1359      3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
1360      3501, 3501, 3501, 3502, 3395, 3503, 3503, 3504, 3395, 3505,
1361      3505, 3505, 3505, 3505, 3505, 3505, 3506, 3395, 3395, 3507,
1362      3507, 3507, 3507, 3508, 3395, 3509, 3509, 3510, 3395, 3395,
1363      3511, 3511, 3511, 3511, 3511, 3511, 3512, 3395, 3513, 3513,
1364      3513, 3514, 3395, 3515, 3515, 3515, 3516, 3395, 3517, 3517,
1365      3517, 3518, 3395, 3519, 3519, 3519, 3520, 3395, 3521, 3521,
1366
1367      3521, 3521, 3521, 3521, 3521, 3521, 3522, 3395, 3395, 3523,
1368      3523, 3524, 3395, 3395, 3395, 3395, 3395, 3395, 3525, 3525,
1369      3525, 3525, 3525, 3525, 3526, 3395, 3395, 3527, 3527, 3527,
1370      3528, 3395, 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3529,
1371      3529, 3530, 3395, 3531, 3531, 3531, 3531, 3532, 3395, 3533,
1372      3533, 3533, 3534, 3395, 3535, 3535, 3535, 3535, 3535, 3536,
1373      3395, 3537, 3537, 3537, 3537, 3537, 3538, 3395, 3395, 3539,
1374      3539, 3539, 3539, 3395, 3540, 3395, 3395, 3541, 3541, 3541,
1375      3541, 3542, 3543, 3395, 3543, 3395, 3395, 3395, 3544, 3395,
1376      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3545, 3546, 3546,
1377
1378      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1379      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1380      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1381      3395, 3395, 3395, 3395, 3395, 3547, 3547, 3547, 3547, 3548,
1382      3548, 3395, 3549, 3550, 3550, 3551, 3395, 3395, 3551, 3552,
1383      3552, 3553, 3553, 3553, 3554, 3554, 3555, 3555, 3556, 3556,
1384      3395, 3395, 3395, 3395, 3557, 3557, 3557, 3557, 3557, 3558,
1385      3558, 3559, 3559, 3395, 3395, 3559, 3395, 3395, 3559, 3559,
1386      3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3560,
1387      3560, 3395, 3395, 3561, 3561, 3562, 3562, 3562, 3395, 3395,
1388
1389      3562, 3562, 3562, 3563, 3563, 3395, 3395, 3564, 3395, 3395,
1390      3395, 3395, 3565, 3565, 3566, 3567, 3567, 3395, 3568, 3395,
1391      3395, 3568, 3568, 3568, 3569, 3569, 3570, 3395, 3395, 3571,
1392      3571, 3395, 3395, 3572, 3573, 3573, 3574, 3574, 3575, 3575,
1393      3576, 3576, 3577, 3577, 3578, 3578, 3578, 3395, 3395, 3578,
1394      3578, 3578, 3579, 3579, 3395, 3580, 3581, 3581, 3395, 3395,
1395      3395, 3582, 3582, 3582, 3582, 3582, 3583, 3583, 3395, 3395,
1396      3395, 3584, 3585, 3585, 3586, 3395, 3395, 3586, 3586, 3586,
1397      3586, 3586, 3586, 3587, 3587, 3588, 3588, 3588, 3589, 3589,
1398      3590, 3395, 3395, 3591, 3591, 3592, 3592, 3395, 3395, 3592,
1399
1400      3593, 3593, 3594, 3395, 3395, 3594, 3594, 3595, 3595, 3395,
1401      3596, 3395, 3395, 3596, 3395, 3597, 3597, 3395, 3598, 3598,
1402      3598, 3599, 3599, 3600, 3395, 3395, 3600, 3395, 3395, 3601,
1403      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3602, 3395,
1404      3603, 3395, 3603, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1405      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1406      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1407      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1408      3395, 3395, 3604, 3604, 3395, 3395, 3604, 3395, 3605, 3395,
1409      3605, 3395, 3606, 3395, 3607, 3395, 3607, 3608, 3395, 3395,
1410
1411      3395, 3608, 3395, 3609, 3395, 3609, 3395, 3395, 3610, 3610,
1412      3395, 3395, 3395, 3611, 3395, 3611, 3395, 3395, 3395, 3395,
1413      3395, 3612, 3395, 3612, 3395, 3395, 3395, 3395, 3395, 3395,
1414      3395, 3395, 3613, 3613, 3613, 3613, 3395, 3614, 3395, 3614,
1415      3615, 3615, 3615, 3615, 3395, 3395, 3395, 3615, 3395, 3395,
1416      3395, 3395, 3395, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
1417      3615, 3615, 3615, 3395, 3616, 3395, 3616, 3395, 3395, 3395,
1418      3395, 3617, 3395, 3617, 3618, 3618, 3618, 3395, 3395, 3395,
1419      3618, 3618, 3618, 3395, 3619, 3395, 3619, 3395, 3395, 3620,
1420      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3621, 3395, 3621,
1421
1422      3622, 3395, 3623, 3395, 3623, 3624, 3395, 3395, 3395, 3624,
1423      3624, 3624, 3395, 3625, 3395, 3625, 3626, 3395, 3395, 3395,
1424      3395, 3627, 3395, 3627, 3395, 3395, 3395, 3628, 3395, 3629,
1425      3395, 3629, 3630, 3630, 3395, 3631, 3395, 3631, 3632, 3632,
1426      3395, 3633, 3395, 3633, 3634, 3634, 3634, 3634, 3395, 3395,
1427      3395, 3395, 3395, 3634, 3634, 3395, 3635, 3395, 3635, 3395,
1428      3636, 3395, 3637, 3395, 3637, 3395, 3395, 3395, 3638, 3638,
1429      3638, 3638, 3638, 3395, 3639, 3395, 3639, 3395, 3395, 3395,
1430      3395, 3640, 3395, 3641, 3395, 3641, 3642, 3395, 3395, 3395,
1431      3395, 3395, 3642, 3395, 3395, 3642, 3642, 3642, 3395, 3643,
1432
1433      3395, 3643, 3395, 3395, 3395, 3395, 3644, 3395, 3645, 3395,
1434      3645, 3646, 3395, 3395, 3395, 3395, 3647, 3395, 3647, 3648,
1435      3648, 3395, 3395, 3395, 3648, 3395, 3649, 3395, 3649, 3650,
1436      3395, 3395, 3395, 3650, 3650, 3395, 3651, 3395, 3651, 3395,
1437      3652, 3395, 3395, 3395, 3652, 3395, 3395, 3653, 3395, 3653,
1438      3654, 3654, 3654, 3395, 3655, 3395, 3655, 3656, 3657, 3395,
1439      3395, 3395, 3395, 3658, 3395, 3395, 3395, 3395, 3395, 3395,
1440      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1441      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1442      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1443
1444      3395, 3395, 3395, 3395, 3395, 3659, 3659, 3395, 3395, 3395,
1445      3659, 3660, 3395, 3661, 3662, 3663, 3663, 3664, 3395, 3395,
1446      3395, 3665, 3665, 3395, 3395, 3395, 3666, 3395, 3395, 3395,
1447      3395, 3395, 3395, 3667, 3395, 3395, 3395, 3668, 3668, 3668,
1448      3668, 3669, 3670, 3670, 3670, 3670, 3395, 3395, 3395, 3395,
1449      3395, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1450      3670, 3670, 3671, 3672, 3673, 3673, 3395, 3395, 3673, 3673,
1451      3673, 3674, 3395, 3395, 3395, 3395, 3675, 3395, 3395, 3676,
1452      3677, 3677, 3677, 3677, 3678, 3679, 3680, 3681, 3682, 3395,
1453      3395, 3683, 3684, 3395, 3395, 3685, 3686, 3687, 3687, 3687,
1454
1455      3687, 3395, 3395, 3395, 3687, 3687, 3688, 3395, 3689, 3690,
1456      3395, 3395, 3395, 3691, 3395, 3395, 3691, 3691, 3691, 3692,
1457      3395, 3693, 3694, 3695, 3395, 3395, 3395, 3395, 3395, 3395,
1458      3395, 3395, 3695, 3395, 3395, 3695, 3696, 3395, 3395, 3395,
1459      3395, 3395, 3395, 3697, 3698, 3699, 3700, 3701, 3701, 3701,
1460      3702, 3703, 3703, 3395, 3395, 3704, 3395, 3395, 3395, 3705,
1461      3395, 3706, 3707, 3395, 3395, 3707, 3708, 3709, 3710, 3710,
1462      3395, 3710, 3395, 3395, 3711, 3395, 3395, 3395, 3395, 3395,
1463      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1464      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1465
1466      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1467      3395, 3395, 3395, 3395, 3712, 3712, 3712, 3713, 3395, 3395,
1468      3395, 3714, 3715, 3715, 3716, 3717, 3717, 3718, 3719, 3720,
1469      3720, 3395, 3395, 3720, 3721, 3722, 3395, 3395, 3722, 3722,
1470      3395, 3395, 3395, 3722, 3722, 3722, 3722, 3722, 3722, 3395,
1471      3395, 3722, 3722, 3722, 3722, 3723, 3724, 3725, 3725, 3395,
1472      3395, 3395, 3725, 3395, 3395, 3725, 3726, 3395, 3395, 3395,
1473      3395, 3395, 3727, 3395, 3395, 3395, 3728, 3729, 3729, 3729,
1474      3729, 3730, 3731, 3732, 3395, 3395, 3733, 3395, 3395, 3395,
1475      3734, 3735, 3395, 3395, 3395, 3736, 3737, 3738, 3395, 3395,
1476
1477      3738, 3738, 3395, 3395, 3738, 3739, 3395, 3740, 3741, 3395,
1478      3395, 3395, 3742, 3395, 3395, 3395, 3742, 3742, 3742, 3743,
1479      3395, 3395, 3395, 3744, 3745, 3395, 3395, 3395, 3745, 3395,
1480      3395, 3395, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3751,
1481      3751, 3752, 3753, 3395, 3395, 3395, 3395, 3395, 3754, 3395,
1482      3395, 3395, 3395, 3755, 3395, 3756, 3757, 3395, 3395, 3395,
1483      3395, 3395, 3758, 3759, 3760, 3760, 3395, 3761, 3395, 3395,
1484      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1485      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1486      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1487
1488      3395, 3395, 3395, 3395, 3395, 3762, 3763, 3395, 3395, 3395,
1489      3395, 3764, 3765, 3765, 3766, 3395, 3395, 3395, 3395, 3767,
1490      3768, 3395, 3395, 3769, 3395, 3395, 3395, 3395, 3395, 3770,
1491      3771, 3395, 3395, 3395, 3395, 3395, 3771, 3771, 3771, 3395,
1492      3395, 3771, 3771, 3771, 3395, 3395, 3395, 3771, 3395, 3395,
1493      3771, 3771, 3772, 3773, 3774, 3774, 3395, 3395, 3395, 3395,
1494      3395, 3774, 3395, 3395, 3395, 3395, 3775, 3776, 3777, 3777,
1495      3777, 3777, 3395, 3395, 3778, 3779, 3395, 3395, 3395, 3780,
1496      3781, 3782, 3395, 3395, 3783, 3784, 3395, 3395, 3395, 3395,
1497      3395, 3784, 3395, 3395, 3395, 3784, 3395, 3395, 3395, 3785,
1498
1499      3786, 3395, 3395, 3395, 3787, 3787, 3787, 3787, 3788, 3395,
1500      3395, 3395, 3395, 3395, 3395, 3789, 3789, 3789, 3790, 3791,
1501      3792, 3793, 3794, 3395, 3395, 3795, 3395, 3395, 3796, 3797,
1502      3395, 3395, 3395, 3798, 3395, 3799, 3395, 3800, 3801, 3395,
1503      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1504      3802, 3803, 3804, 3804, 3395, 3395, 3395, 3395, 3395, 3395,
1505      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1506      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1507      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1508      3395, 3395, 3805, 3806, 3395, 3807, 3808, 3395, 3395, 3809,
1509
1510      3395, 3395, 3395, 3395, 3395, 3395, 3810, 3811, 3395, 3395,
1511      3395, 3395, 3395, 3395, 3395, 3395, 3812, 3813, 3395, 3395,
1512      3395, 3813, 3813, 3813, 3395, 3395, 3395, 3395, 3395, 3813,
1513      3813, 3813, 3395, 3395, 3395, 3813, 3813, 3814, 3815, 3816,
1514      3816, 3395, 3395, 3395, 3816, 3395, 3817, 3818, 3819, 3395,
1515      3395, 3819, 3819, 3819, 3820, 3821, 3822, 3823, 3395, 3395,
1516      3395, 3395, 3395, 3824, 3825, 3395, 3395, 3395, 3825, 3825,
1517      3395, 3395, 3395, 3826, 3395, 3395, 3395, 3827, 3827, 3827,
1518      3827, 3828, 3395, 3829, 3395, 3395, 3829, 3830, 3831, 3395,
1519      3395, 3832, 3833, 3395, 3395, 3395, 3395, 3395, 3834, 3395,
1520
1521      3395, 3395, 3835, 3395, 3395, 3836, 3837, 3395, 3838, 3395,
1522      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1523      3395, 3395, 3395, 3395, 3839, 3840, 3841, 3841, 3395, 3395,
1524      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1525      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1526      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3842,
1527      3843, 3395, 3844, 3845, 3395, 3395, 3395, 3846, 3847, 3848,
1528      3395, 3395, 3395, 3849, 3850, 3850, 3850, 3850, 3395, 3395,
1529      3395, 3850, 3850, 3850, 3850, 3395, 3395, 3851, 3395, 3395,
1530      3852, 3852, 3852, 3395, 3853, 3854, 3855, 3395, 3395, 3395,
1531
1532      3855, 3855, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3861,
1533      3861, 3395, 3395, 3395, 3395, 3862, 3395, 3395, 3395, 3863,
1534      3863, 3863, 3864, 3395, 3865, 3395, 3395, 3395, 3865, 3395,
1535      3395, 3866, 3867, 3395, 3395, 3395, 3395, 3395, 3868, 3869,
1536      3395, 3395, 3395, 3870, 3871, 3395, 3872, 3395, 3395, 3395,
1537      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1538      3395, 3873, 3874, 3875, 3875, 3395, 3395, 3395, 3395, 3395,
1539      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1540      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1541      3395, 3395, 3876, 3395, 3395, 3395, 3877, 3395, 3395, 3878,
1542
1543      3879, 3880, 3395, 3395, 3881, 3881, 3881, 3881, 3881, 3395,
1544      3395, 3881, 3881, 3881, 3395, 3395, 3395, 3395, 3395, 3882,
1545      3882, 3882, 3395, 3883, 3395, 3395, 3395, 3395, 3884, 3884,
1546      3884, 3884, 3395, 3395, 3885, 3886, 3395, 3395, 3860, 3861,
1547      3861, 3861, 3395, 3862, 3395, 3395, 3395, 3395, 3395, 3863,
1548      3863, 3395, 3395, 3395, 3395, 3395, 3865, 3866, 3867, 3868,
1549      3395, 3395, 3870, 3871, 3395, 3872, 3395, 3395, 3395, 3395,
1550      3395, 3395, 3395, 3395, 3395, 3395, 3873, 3874, 3875, 3875,
1551      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1552      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1553
1554      3395, 3395, 3395, 3876, 3395, 3395, 3395, 3395, 3395, 3395,
1555      3395, 3879, 3880, 3881, 3881, 3881, 3881, 3881, 3395, 3395,
1556      3395, 3881, 3395, 3395, 3881, 3395, 3395, 3395, 3395, 3882,
1557      3882, 3395, 3395, 3883, 3395, 3395, 3395, 3884, 3884, 3884,
1558      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3886, 3395, 3395,
1559      3395, 3395, 3395, 3861, 3861, 3395, 3395, 3395, 3395, 3395,
1560      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3865,
1561      3866, 3867, 3868, 3870, 3871, 3395, 3872, 3395, 3395, 3395,
1562      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3873, 3874, 3875,
1563      3875, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1564
1565      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1566      3395, 3395, 3395, 3395, 3879, 3880, 3881, 3881, 3881, 3395,
1567      3395, 3881, 3881, 3395, 3395, 3395, 3881, 3395, 3395, 3395,
1568      3395, 3395, 3395, 3882, 3395, 3395, 3395, 3395, 3395, 3395,
1569      3395, 3884, 3884, 3884, 3395, 3395, 3395, 3395, 3395, 3395,
1570      3395, 3395, 3395, 3886, 3861, 3395, 3395, 3395, 3395, 3395,
1571      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1572      3395, 3395, 3865, 3395, 3395, 3395, 3395, 3868, 3870, 3871,
1573      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1574      3395, 3395, 3395, 3873, 3874, 3875, 3875, 3395, 3395, 3395,
1575
1576      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1577      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1578      3879, 3880, 3881, 3881, 3395, 3395, 3395, 3395, 3395, 3395,
1579      3395, 3881, 3881, 3395, 3395, 3395, 3395, 3395, 3395, 3882,
1580      3395, 3395, 3395, 3884, 3395, 3395, 3884, 3395, 3395, 3395,
1581      3395, 3395, 3395, 3395, 3395, 3861, 3395, 3395, 3395, 3395,
1582      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1583      3395, 3865, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1584      3395, 3395, 3871, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1585      3395, 3395, 3395, 3395, 3873, 3874, 3875, 3875, 3875, 3395,
1586
1587      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1588      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1589      3395, 3879, 3395, 3395, 3881, 3881, 3395, 3395, 3395, 3395,
1590      3395, 3395, 3881, 3881, 3395, 3395, 3395, 3395, 3395, 3395,
1591      3882, 3884, 3395, 3395, 3395, 3884, 3395, 3395, 3395, 3395,
1592      3395, 3395, 3861, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1593      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1594      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3871, 3395, 3395,
1595      3395, 3395, 3395, 3395, 3395, 3395, 3873, 3874, 3875, 3875,
1596      3875, 3887, 3888, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1597
1598      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3879,
1599      3881, 3881, 3395, 3395, 3881, 3395, 3395, 3395, 3395, 3395,
1600      3395, 3882, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1601      3861, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1602      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1603      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3873, 3874,
1604      3875, 3889, 3890, 3887, 3888, 3395, 3395, 3395, 3395, 3395,
1605      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3881, 3881, 3395,
1606      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3882, 3395,
1607      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3861,
1608
1609      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1610      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1611      3395, 3395, 3395, 3395, 3874, 3889, 3875, 3891, 3890, 3892,
1612      3875, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1613      3395, 3395, 3395, 3881, 3881, 3395, 3395, 3395, 3395, 3395,
1614      3395, 3395, 3395, 3395, 3882, 3395, 3395, 3395, 3395, 3861,
1615      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1616      3395, 3395, 3874, 3891, 3395, 3892, 3875, 3395, 3395, 3395,
1617      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1618      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1619
1620      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1621      3395, 3395, 3395, 3874, 3395, 3395, 3395, 3395, 3395, 3395,
1622      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1623      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1624      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1625      3395, 3395, 3395, 3874, 3395, 3395, 3395, 3395, 3395, 3395,
1626      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1627      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1628      3395, 3874, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1629      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1630
1631      3395, 3395, 3395, 3395, 3395, 3395, 3874, 3395, 3395, 3395,
1632      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1633      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3874,
1634      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1635      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1636      3874, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1637      3395, 3395, 3395, 3395, 3395, 3874, 3395, 3395, 3395, 3395,
1638      3395, 3395, 3395, 3395, 3874, 3395, 3395, 3395, 3395, 3395,
1639      3395, 3395, 3395, 3874, 3874, 3395, 3395, 3395, 3395, 3395,
1640      3395, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1641
1642      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1643      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1644      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1645      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1646      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1647      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1648      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1649      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1650      3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
1651      3874, 3874, 3874, 3395,    0, 3395, 3395, 3395, 3395, 3395,
1652
1653      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1654      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1655      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1656      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1657      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1658      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1659      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1660      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1661      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1662      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1663
1664      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1665      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1666      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1667      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1668      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1669      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1670      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1671      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1672      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1673      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1674
1675      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1676      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1677      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1678      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1679      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1680      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1681      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1682      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1683      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1684      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1685
1686      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1687      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1688      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1689      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1690      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1691      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1692      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1693      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1694      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1695      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1696
1697      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1698      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1699      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1700      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1701      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1702      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1703      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1704      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1705      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
1706      3395, 3395
1707
1708     } ;
1709
1710 static yyconst flex_int16_t yy_nxt[12193] =
1711     {   0,
1712      3395,  246,  247,  246,  246,  247,  246,  246,  247,  246,
1713       246,  247,  246,  251,  247,  251,  257,  248,  254,  257,
1714       248,  254,  710,  249, 3395,  255,  249, 3395,  255,  252,
1715       251,  247,  251,  639,  258,  260,  261,  258,  260,  261,
1716       262,  263,  657,  262,  263,  639,  252,  267,  268,  640,
1717       264,  260,  261,  264,  265,  642,  262,  260,  261, 1346,
1718       265,  641,  262,  267,  268, 1347,  264,  279,  247,  279,
1719       676,  641,  264,  279,  247,  279,  279,  247,  279,  279,
1720       247,  279,  723,  280,  247,  247,  247,  724, 1693,  280,
1721       715,  269,  281, 1695,  683,  281,  638,  638,  638, 1696,
1722
1723       282,  638,  638,  638,  638,  638,  638,  269,  270,  271,
1724       247,  271,  270,  270,  270,  270,  270,  270,  270,  272,
1725       270,  270,  270,  757,  270,  274,  270,  275,  270,  247,
1726       247,  247,  279,  247,  279,  279,  247,  279,  676,  279,
1727       247,  279,  279,  247,  279,  282,  642,  642,  280,  691,
1728       729,  280,  642,  270,  270,  283,  692,  775,  283,  638,
1729       638,  638,  641,  641,  276,  638,  638,  638,  641,  776,
1730       647,  730,  758,  277,  270,  271,  247,  271,  270,  270,
1731       270,  270,  270,  270,  270,  272,  270,  270,  270,  840,
1732       270,  274,  270,  275,  270,  247,  247,  247,  247,  247,
1733
1734       247,  279,  247,  279,  841,  279,  247,  279,  247,  247,
1735       247,  284,  648,  890,  284,  848,  891,  281,  649,  270,
1736       270,  281,  642,  650,  285,  247,  247,  247,  651,  698,
1737       276,  279,  247,  279,  279,  247,  279,  997,  641,  277,
1738       998,  285,  279,  247,  279, 1697,  642,  283, 1698,  642,
1739       283,  279,  247,  279,  638,  638,  638,  744,  286,  638,
1740       638,  638,  641,  676,  693,  641, 1700,  286,  287,  288,
1741       247,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1742       287,  287,  287,  867,  287,  291,  287,  292,  287,  297,
1743       247,  297,  297,  247,  297,  247,  247,  247,  748,  247,
1744
1745       247,  247,  297,  247,  297,  298,  737,  916,  298,  683,
1746      1701,  299,  694,  287,  287,  299,  683,  642,  298,  293,
1747       738,  917,  294,  638,  638,  638,  638,  638,  638,  638,
1748       638,  638,  868,  641,  295,  287,  288,  247,  288,  287,
1749       287,  287,  287,  287,  287,  287,  289,  287,  287,  287,
1750       683,  287,  291,  287,  292,  287,  297,  247,  297,  297,
1751       247,  297,  297,  247,  297,  733,  309,  247,  309,  309,
1752       247,  309,  298,  734, 1702,  300,  903,  642,  300,  735,
1753       287,  287,  310,  755,  704,  310,  293,  756,  757,  294,
1754       638,  638,  638,  641,  638,  638,  638,  638,  638,  638,
1755
1756       904,  295,  301,  302,  247,  302,  301,  301,  301,  301,
1757       301,  301,  301,  303,  301,  301,  301,  884,  301,  305,
1758       301,  306,  301,  321,  247,  321,  321,  247,  321,  333,
1759       247,  333,  885,  333,  247,  333,  247,  247,  247,  322,
1760       683, 1703,  322, 1704,  922,  334,  922,  301,  301,  334,
1761       642,  642,  299,  247,  247,  247,  638,  638,  638,  638,
1762       638,  638,  638,  638,  638,  825,  641,  641,  923,  299,
1763       904,  307,  301,  302,  247,  302,  301,  301,  301,  301,
1764       301,  301,  301,  303,  301,  301,  301,  903,  301,  305,
1765       301,  306,  301,  333,  247,  333,  333,  247,  333,  333,
1766
1767       247,  333,  826,  333,  247,  333,  345,  247,  345,  334,
1768       805,  923,  334,  642,  806,  335, 1707,  301,  301,  335,
1769       725,  884,  346,  345,  247,  345,  638,  638,  638,  641,
1770       638,  638,  638,  638,  638,  638,  638,  638,  638,  346,
1771      1710,  307,  311,  312,  247,  312,  311,  311,  311,  311,
1772       311,  311,  311,  313,  311,  311,  311, 1115,  311,  315,
1773       311,  316,  311,  247,  247,  247,  247,  247,  247,  345,
1774       247,  345, 1711,  345,  247,  345,  345,  247,  345,  299,
1775       642,  642,  299,  642,  642,  346,  911,  311,  311,  346,
1776       912,  317,  347,  638,  638,  638,  641,  641,  318,  641,
1777
1778       641,  319,  311,  312,  247,  312,  311,  311,  311,  311,
1779       311,  311,  311,  313,  311,  311,  311, 1712,  311,  315,
1780       311,  316,  311,  345,  247,  345,  361,  247,  361,  361,
1781       247,  361,  916,  379,  247,  379,  379,  247,  379,  347,
1782       768,  642,  362,  642,  642,  362,  930,  311,  311,  380,
1783       764,  317,  380,  638,  638,  638, 1713,  641,  318,  641,
1784       641,  319,  323,  324,  247,  324,  323,  323,  323,  323,
1785       323,  323,  323,  325,  323,  323,  323, 1714,  323,  327,
1786       323,  328,  323,  247,  247,  247,  247,  247,  247,  379,
1787       247,  379,  683,  379,  247,  379,  379,  247,  379,  282,
1788
1789      1006, 1715,  282, 1716, 1007,  380,  739,  323,  323,  380,
1790       642,  642,  381,  329,  740,  777,  330,  782,  741,  742,
1791       638,  638,  638,  638,  638,  638,  641,  641,  331,  323,
1792       324,  247,  324,  323,  323,  323,  323,  323,  323,  323,
1793       325,  323,  323,  323, 1717,  323,  327,  323,  328,  323,
1794       379,  247,  379,  390,  247,  390,  390,  247,  390,  812,
1795       247,  247,  247,  247,  247,  247,  381,  683, 1482,  391,
1796      1723, 1724,  391, 1726,  323,  323,  282,  642,  642,  282,
1797       329, 1483,  812,  330,  638,  638,  638,  638,  638,  638,
1798       638,  638,  638,  641,  641,  331,  336,  337,  247,  337,
1799
1800       336,  336,  336,  336,  336,  336,  336,  338,  336,  336,
1801       336,  814,  336,  340,  336,  341,  336,  390,  247,  390,
1802       390,  247,  390,  390,  247,  390,  812,  390,  247,  390,
1803       405,  247,  405,  391,  817, 1727,  391, 1730, 1731,  392,
1804      1734,  336,  336,  392,  642,  642,  406,  342,  638,  638,
1805       638,  638,  638,  638,  638,  638,  638,  638,  638,  638,
1806       641,  641,  343,  336,  337,  247,  337,  336,  336,  336,
1807       336,  336,  336,  336,  338,  336,  336,  336,  683,  336,
1808       340,  336,  341,  336,  405,  247,  405,  247,  247,  247,
1809       247,  247,  247,  825,  405,  247,  405,  405,  247,  405,
1810
1811       406, 1736, 1739,  407,  808,  642,  407, 1110,  336,  336,
1812       406,  912,  787,  406,  342,  638,  638,  638,  638,  638,
1813       638,  641,  638,  638,  638,  638,  638,  638, 1740,  343,
1814       348,  349,  247,  349,  348,  348,  348,  348,  348,  348,
1815       348,  350,  348,  348,  348,  683,  348,  352,  348,  353,
1816       348,  405,  247,  405,  405,  247,  405,  419,  247,  419,
1817       860,  419,  247,  419,  429,  247,  429,  408,  642,  642,
1818       408,  642,  642,  420, 1125,  348,  348,  420,  792,  354,
1819       430,  638,  638,  638,  641,  641,  355,  641,  641,  356,
1820       638,  638,  638,  357, 1668,  358,  359,  348,  349,  247,
1821
1822       349,  348,  348,  348,  348,  348,  348,  348,  350,  348,
1823       348,  348,  683,  348,  352,  348,  353,  348,  429,  247,
1824       429,  247,  247,  247,  247,  247,  247,  916,  429,  247,
1825       429,  429,  247,  429,  430,  642,  642,  431,  642,  642,
1826       431,  934,  348,  348,  430,  797,  354,  430,  638,  638,
1827       638,  641,  641,  355,  641,  641,  356,  638,  638,  638,
1828       357, 1744,  358,  359,  363,  364,  247,  364,  363,  363,
1829       363,  363,  363,  363,  363,  365,  363,  363,  363,  366,
1830       363,  367,  363,  368,  363,  366,  366,  366,  366,  366,
1831       366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
1832
1833       366,  366,  366,  366,  366,  366,  366,  366,  366,  363,
1834       363,  366,  369,  370,  371,  366,  366,  366,  366,  366,
1835       372,  366,  366,  373,  366,  366,  366,  374,  366,  375,
1836       376,  377,  366,  366,  366,  366,  366,  366,  382,  383,
1837       247,  383,  382,  382,  382,  382,  382,  382,  382,  384,
1838       382,  382,  382, 1745,  382,  386,  382,  387,  382,  429,
1839       247,  429,  429,  247,  429,  444,  247,  444, 1561,  444,
1840       247,  444,  247,  247,  247,  432,  642,  642,  432,  846,
1841      1562,  445,  867,  382,  382,  445,  847, 1746,  282,  638,
1842       638,  638,  641,  641,  388,  382,  383,  247,  383,  382,
1843
1844       382,  382,  382,  382,  382,  382,  384,  382,  382,  382,
1845      1747,  382,  386,  382,  387,  382,  247,  247,  247,  444,
1846       247,  444,  444,  247,  444,  905,  444,  247,  444,  444,
1847       247,  444,  282, 1748,  683,  445,  906,  913,  445,  907,
1848       382,  382,  446, 1749,  914,  446,  638,  638,  638, 3395,
1849       915,  388,  393,  394,  247,  394,  393,  393,  393,  393,
1850       393,  393,  393,  395,  393,  393,  393, 1752,  393,  397,
1851       393,  398,  393,  456,  247,  456,  456,  247,  456,  467,
1852       247,  467,  836,  467,  247,  467,  837,  685, 1753,  457,
1853       838,  816,  457,  916, 1754,  468, 1755,  393,  393,  468,
1854
1855       399,  670,  400,  686,  683,  680,  815,  935,  401,  638,
1856       638,  638,  638,  638,  638,  402, 1758, 1155,  403,  393,
1857       394,  247,  394,  393,  393,  393,  393,  393,  393,  393,
1858       395,  393,  393,  393, 1156,  393,  397,  393,  398,  393,
1859       478,  247,  478,  478,  247,  478,  489,  247,  489,  924,
1860       489,  247,  489, 1125,  642, 1759,  479, 1458,  642,  479,
1861       925,  807,  490,  907,  393,  393,  490,  399,  642,  400,
1862       641,  638,  638,  638,  641,  401,  638,  638,  638,  638,
1863       638,  638,  402, 1763,  641,  403,  409,  410,  247,  410,
1864       409,  409,  409,  409,  409,  409,  409,  411,  409,  409,
1865
1866       409, 1766,  409,  413,  409,  414,  409,  504,  247,  504,
1867       504,  247,  504,  247,  247,  247, 1061,  247,  247,  247,
1868       515,  247,  515,  505, 1768, 1125,  505,  642,  642,  506,
1869       930,  409,  409,  506,  831,  842,  516,  415,  638,  638,
1870       638, 1127,  416,  641,  641,  638,  638,  638,  638,  638,
1871       638,  638,  638,  638,  417,  409,  410,  247,  410,  409,
1872       409,  409,  409,  409,  409,  409,  411,  409,  409,  409,
1873      1769,  409,  413,  409,  414,  409,  515,  247,  515,  515,
1874       247,  515,  515,  247,  515, 1778,  247,  247,  247,  247,
1875       247,  247,  516, 1779, 1780,  517,  642,  913,  517, 1781,
1876
1877       409,  409,  518,  853,  914,  518,  415,  638,  638,  638,
1878       920,  416,  641,  638,  638,  638,  638,  638,  638,  638,
1879       638,  638, 1155,  417,  421,  422,  247,  422,  421,  421,
1880       421,  421,  421,  421,  421,  423,  421,  421,  421, 1288,
1881       421,  425,  421,  426,  421,  515,  247,  515,  515,  247,
1882       515,  515,  247,  515,  905,  515,  247,  515,  247,  247,
1883       247,  516,  924, 1783,  516,  906, 1791,  519, 1059,  421,
1884       421,  519, 1796,  925,  431, 1798, 1059,  427,  421,  422,
1885       247,  422,  421,  421,  421,  421,  421,  421,  421,  423,
1886       421,  421,  421, 1801,  421,  425,  421,  426,  421,  247,
1887
1888       247,  247,  515,  247,  515,  515,  247,  515, 1802,  247,
1889       247,  247,  247,  247,  247,  431, 1482, 1805,  517, 1807,
1890      1808,  517, 1810,  421,  421,  520, 1811, 1812,  520, 1488,
1891      1440,  427,  433,  434,  247,  434,  433,  433,  433,  433,
1892       433,  433,  433,  435,  433,  433,  433, 1156,  433,  437,
1893       433,  438,  433,  515,  247,  515,  515,  247,  515,  515,
1894       247,  515, 1813,  515,  247,  515,  534,  247,  534,  519,
1895      1817, 1818,  519,  874, 1612,  521, 1819,  433,  433,  521,
1896       875,  439,  535,  638,  638,  638, 1821, 1488,  440,  641,
1897      1825,  441,  638,  638,  638,  638,  638,  638,  442,  433,
1898
1899       434,  247,  434,  433,  433,  433,  433,  433,  433,  433,
1900       435,  433,  433,  433, 1829,  433,  437,  433,  438,  433,
1901       534,  247,  534,  247,  247,  247,  247,  247,  247, 1833,
1902       534,  247,  534,  534,  247,  534,  535, 1835, 1837,  536,
1903       642, 1839,  536, 1840,  433,  433,  535,  882,  439,  535,
1904       638,  638,  638, 1841, 1843,  440,  641, 1850,  441,  638,
1905       638,  638,  888,  888,  888,  442,  447,  448,  247,  448,
1906       447,  447,  447,  447,  447,  447,  447,  449,  447,  447,
1907       447, 1854,  447,  451,  447,  452,  447,  534,  247,  534,
1908       534,  247,  534,  547,  247,  547, 1855,  547,  247,  547,
1909
1910       561,  247,  561,  537, 1857, 1671,  537,  929, 1867,  548,
1911      1868,  447,  447,  548,  914, 1869,  562,  453, 1870, 1871,
1912       915,  889,  454,  447,  448,  247,  448,  447,  447,  447,
1913       447,  447,  447,  447,  449,  447,  447,  447, 1872,  447,
1914       451,  447,  452,  447,  561,  247,  561,  572,  247,  572,
1915       572,  247,  572, 1873,  247,  247,  247,  247,  247,  247,
1916       562, 1874, 1875,  573,  929,  913,  573, 1876,  447,  447,
1917       299,  914,  914,  299,  453, 1877, 1878,  920, 1060,  454,
1918       458,  459,  247,  459,  458,  458,  458,  458,  458,  458,
1919       458,  460,  458,  458,  458, 1879,  458,  462,  458,  463,
1920
1921       458,  572,  247,  572,  572,  247,  572,  572,  247,  572,
1922      1125,  572,  247,  572,  584,  247,  584,  573, 1881, 1882,
1923       573,  929, 1883,  574, 1884,  458,  458,  574,  914, 1887,
1924       585,  584,  247,  584, 1060, 1864,  464,  888,  888,  888,
1925      1890, 1129, 1144, 1144, 1144, 1891, 1892,  585, 1893,  465,
1926       458,  459,  247,  459,  458,  458,  458,  458,  458,  458,
1927       458,  460,  458,  458,  458, 1894,  458,  462,  458,  463,
1928       458,  597,  247,  597,  597,  247,  597,  247,  247,  247,
1929      1895,  247,  247,  247,  597,  247,  597,  598, 1242, 1896,
1930       598, 1899, 1908,  282, 1913,  458,  458,  282, 1243, 1914,
1931
1932       598,  597,  247,  597, 1931, 1244,  464, 1136, 1136, 1136,
1933      1937, 1137, 1938, 1939, 1138, 1942, 1943,  598, 1944,  465,
1934       469,  470,  247,  470,  469,  469,  469,  469,  469,  469,
1935       469,  471,  469,  469,  469, 1948,  469,  473,  469,  474,
1936       469,  597,  247,  597,  597,  247,  597,  611,  247,  611,
1937      1951,  611,  247,  611,  247,  247,  247,  599, 1952, 1955,
1938       599, 1956, 1962,  612, 1966,  469,  469,  612, 1969, 1970,
1939       613, 1166, 1166, 1166, 1144, 1144, 1144, 1166, 1166, 1166,
1940      1971,  475, 1166, 1166, 1166, 1972,  476,  469,  470,  247,
1941       470,  469,  469,  469,  469,  469,  469,  469,  471,  469,
1942
1943       469,  469, 1975,  469,  473,  469,  474,  469,  247,  247,
1944       247,  611,  247,  611,  611,  247,  611, 1981,  611,  247,
1945       611,  611,  247,  611,  613, 1986, 1992,  612, 1996, 1999,
1946       612, 2000,  469,  469,  614,  260,  261,  614, 1145,  657,
1947       262, 1167, 1144, 1144, 1144, 2002, 1145, 2003,  475,  681,
1948       624, 2004, 2005,  476,  480,  481,  247,  481,  480,  480,
1949       480,  480,  480,  480,  480,  482,  480,  480,  480, 2006,
1950       480,  484,  480,  485,  480,  260,  261,  682, 2007,  625,
1951       262,  636,  247,  636, 2008,  636,  247,  636, 2010, 2016,
1952       624,  683, 2017,  684, 2018,  669, 2020,  637,  768,  480,
1953
1954       480,  637, 1140, 1140, 1140,  812, 1167, 2022,  769, 1199,
1955      1199, 1199, 2030, 1200, 2035,  486, 1201, 2036, 2037,  625,
1956      1142,  487,  480,  481,  247,  481,  480,  480,  480,  480,
1957       480,  480,  480,  482,  480,  480,  480,  661,  480,  484,
1958       480,  485,  480,  663,  813,  896,  896,  896, 2039, 1125,
1959       670, 1225, 1225, 1225,  669, 1226, 2057,  814, 1227,  815,
1960      2058, 2059,  897,  947,  947,  947, 2052,  480,  480,  961,
1961       961,  961, 1228, 1228, 1228, 2062, 1229, 2063, 2065, 1230,
1962       948, 1671, 2066,  486, 2067, 2068,  962, 2069, 2070,  487,
1963       491,  492,  247,  492,  491,  491,  491,  491,  491,  491,
1964
1965       491,  493,  491,  491,  491, 2071,  491,  495,  491,  496,
1966       491,  963,  963,  963,  974,  974,  974,  977,  977,  977,
1967       992,  992,  992, 2053,  999,  999,  999, 2074,  964, 2075,
1968      2076,  975, 2060, 2077,  978,  491,  491,  993,  497,  498,
1969       499, 1000, 2080, 1245, 1245, 1245,  500, 1246, 2061,  501,
1970      1247, 1683, 1683, 1683, 2081, 2082,  502,  491,  492,  247,
1971       492,  491,  491,  491,  491,  491,  491,  491,  493,  491,
1972       491,  491, 2083,  491,  495,  491,  496,  491, 1009, 1009,
1973      1009, 1011, 1011, 1011, 1020, 1020, 1020, 1028, 1028, 1028,
1974      2085, 1032, 1032, 1032, 2086, 1010, 2093, 1684, 1012, 2078,
1975
1976      2095, 1021,  491,  491, 1029,  497,  498,  499, 1033, 2097,
1977      1249, 1249, 1249,  500, 1250, 2079,  501, 1251, 1686, 1686,
1978      1686, 2118, 2122,  502,  507,  508,  247,  508,  507,  507,
1979       507,  507,  507,  507,  507,  509,  507,  507,  507, 1671,
1980       507,  511,  507,  512,  507, 1048, 1048, 1048, 1070, 1070,
1981      1070, 1076, 1076, 1076, 1092, 1092, 1092, 1098, 1098, 1098,
1982      2123, 2124, 1049, 2130, 1687, 1071, 2131, 2132, 1077,  507,
1983       507, 1093, 2054, 2136, 1099, 1104, 1104, 1104, 1268, 1268,
1984      1268, 2137, 1269, 2140, 2141, 1270, 1691, 1691, 1691, 1694,
1985      1694, 1694, 1105,  513,  507,  508,  247,  508,  507,  507,
1986
1987       507,  507,  507,  507,  507,  509,  507,  507,  507, 2145,
1988       507,  511,  507,  512,  507, 1112, 1112, 1112,  896,  896,
1989       896, 2146, 2149, 1140, 1140, 1140, 1181, 1181, 1181, 3395,
1990      3395, 3395, 1113, 2153, 2154,  897, 1185, 1185, 1185,  507,
1991       507, 1142, 2155, 1182, 2158, 2165, 3395, 1278, 1278, 1278,
1992      2169, 1279, 2170, 1186, 1280, 1291, 1291, 1291, 2171, 1292,
1993      1143, 2176, 1293,  513,  522,  523,  247,  523,  522,  522,
1994       522,  522,  522,  522,  522,  524,  522,  522,  522, 1183,
1995       522,  526,  522,  527,  522, 2178, 2179, 3395, 3395, 3395,
1996      1188, 1188, 1188, 2180, 1184, 1194, 1194, 1194, 1194, 1194,
1997
1998      1194,  947,  947,  947, 3395, 1203, 1203, 1203, 1190,  522,
1999       522, 2181, 2183, 1196, 2184, 2187, 1196,  528,  948,  529,
2000      2189, 2192,  530, 1205, 2208, 2209,  531, 1699, 1699, 1699,
2001       532,  522,  523,  247,  523,  522,  522,  522,  522,  522,
2002       522,  522,  524,  522,  522,  522, 1187,  522,  526,  522,
2003       527,  522, 2210, 1188, 1188, 1188, 1709, 1709, 1709, 1683,
2004      1683, 1683, 1197, 1207, 1207, 1207, 1211, 1211, 1211, 2215,
2005      2216, 1190, 2040, 1203, 1203, 1203,  522,  522, 2041, 2217,
2006      1208, 2219, 2042, 1212,  528, 2220,  529, 2218, 2043,  530,
2007      1191, 1205, 2221,  531, 1705, 1705, 1705,  532,  538,  539,
2008
2009       247,  539,  538,  538,  538,  538,  538,  538,  538,  540,
2010       538,  538,  538, 2224,  538,  542,  538,  543,  538, 2222,
2011      1206, 1213, 1213, 1213, 1213, 1213, 1213, 2223, 1217, 1217,
2012      1217, 2233, 1671, 3395, 3395, 3395, 1219, 1219, 1219, 1215,
2013      1706, 2234, 1215,  538,  538, 1218, 1221, 1221, 1221, 2235,
2014      3395, 1671, 1125, 1220,  544, 1294, 1294, 1294, 2226, 1295,
2015      2236, 2239, 1296, 2227, 1223, 2241, 2242,  545,  538,  539,
2016       247,  539,  538,  538,  538,  538,  538,  538,  538,  540,
2017       538,  538,  538, 1209,  538,  542,  538,  543,  538, 1221,
2018      1221, 1221,  961,  961,  961, 1216, 2243, 2228, 1210,  963,
2019
2020       963,  963, 1231, 1231, 1231, 2244, 2248, 1223, 2250,  962,
2021      3395, 3395, 3395,  538,  538, 2251,  964, 2252, 2255, 1232,
2022      2259, 1307, 1307, 1307,  544, 1308, 2260, 3395, 1309, 1318,
2023      1318, 1318, 2262, 1319, 2264, 2275, 1320,  545,  549,  550,
2024       247,  550,  549,  549,  549,  549,  549,  549,  549,  551,
2025       549,  549,  549, 2276,  549,  553,  549,  554,  549, 2277,
2026      1224, 2278, 1233, 2282, 2283, 3395, 3395, 3395, 1237, 1237,
2027      1237,  974,  974,  974, 2284, 2285, 3395, 3395, 3395, 3395,
2028      3395, 3395, 3395,  549,  549, 2291, 1239, 2292,  975, 1686,
2029      1686, 1686,  555, 3395,  556, 2293, 3395, 2294,  557, 1880,
2030
2031      1880, 1880, 2297,  558,  559,  549,  550,  247,  550,  549,
2032       549,  549,  549,  549,  549,  549,  551,  549,  549,  549,
2033      1234,  549,  553,  549,  554,  549, 2301, 1235,  977,  977,
2034       977, 1236, 1252, 1252, 1252, 1264, 1264, 1264, 2302, 2303,
2035      1237, 1237, 1237, 2304, 2307,  978, 1264, 1264, 1264, 1253,
2036       549,  549, 2309, 1266, 1708, 1708, 1708, 2310, 1239,  555,
2037      2311,  556, 2312, 2324, 1266,  557, 1691, 1691, 1691, 2325,
2038       558,  559,  563,  564,  247,  564,  563,  563,  563,  563,
2039       563,  563,  563,  565,  563,  563,  563, 1240,  563,  567,
2040       563,  568,  563,  992,  992,  992, 1271, 1271, 1271, 2329,
2041
2042      1687, 1271, 1271, 1271, 1267,  999,  999,  999, 2332, 2333,
2043       993, 1284, 1284, 1284, 1273, 2339, 2344,  563,  563, 1273,
2044      2346, 2347, 1000,  569, 1325, 1325, 1325, 2348, 1326, 1286,
2045      2352, 1327, 1694, 1694, 1694, 1699, 1699, 1699,  570,  563,
2046       564,  247,  564,  563,  563,  563,  563,  563,  563,  563,
2047       565,  563,  563,  563, 2353,  563,  567,  563,  568,  563,
2048      2354, 2355, 1274, 1009, 1009, 1009, 2356, 2357, 1284, 1284,
2049      1284, 1011, 1011, 1011, 1297, 1297, 1297, 1297, 1297, 1297,
2050      1010, 1302, 1302, 1302,  563,  563, 1286, 2358, 1012, 2359,
2051       569, 2360, 1299, 2361, 1671, 1299, 1349, 1349, 1349, 1304,
2052
2053      1350, 2378, 1671, 1351, 2379,  570,  575,  576,  247,  576,
2054       575,  575,  575,  575,  575,  575,  575,  577,  575,  575,
2055       575, 2380,  575,  579,  575,  580,  575, 2382, 2385, 1287,
2056      1302, 1302, 1302, 1020, 1020, 1020, 2386, 2364, 1300, 1313,
2057      1313, 1313, 1313, 1313, 1313, 1708, 1708, 1708, 1304, 2365,
2058      1021,  575,  575, 1885, 1885, 1885,  581, 1315, 2388, 2389,
2059      1315, 2390,  582,  575,  576,  247,  576,  575,  575,  575,
2060       575,  575,  575,  575,  577,  575,  575,  575, 2391,  575,
2061       579,  575,  580,  575, 1028, 1028, 1028, 1321, 1321, 1321,
2062      1305, 1719, 1321, 1321, 1321, 2392, 2393, 1316, 1032, 1032,
2063
2064      1032, 1029, 1888, 1888, 1888, 1323, 2405, 2406,  575,  575,
2065      1323, 2407, 2412,  581, 2413, 1033, 2414, 1886, 2420,  582,
2066       586,  587,  247,  587,  586,  586,  586,  586,  586,  586,
2067       586,  588,  586,  586,  586, 2421,  586,  590,  586,  591,
2068       586, 1329, 1329, 1329, 1335, 1335, 1335, 1324, 1889, 1329,
2069      1329, 1329, 2422, 1335, 1335, 1335, 1341, 1341, 1341, 1331,
2070      2440, 2441, 1337, 2408, 2442,  586,  586, 1331,  592, 2458,
2071       593, 1337, 2459, 2409, 1343, 2460,  594, 1379, 1379, 1379,
2072      2463, 1380, 2465, 2466, 1381, 2467, 2468,  595,  586,  587,
2073       247,  587,  586,  586,  586,  586,  586,  586,  586,  588,
2074
2075       586,  586,  586, 2469,  586,  590,  586,  591,  586, 2470,
2076      1332, 1048, 1048, 1048, 1338, 2471, 2472, 1341, 1341, 1341,
2077      1352, 1352, 1352, 1356, 1356, 1356, 2473, 2474, 1049, 1356,
2078      1356, 1356, 2475,  586,  586, 1343,  592, 1353,  593, 2476,
2079      2481, 1358, 2482, 2485,  594, 2483, 2486, 1358, 1705, 1705,
2080      1705, 1708, 1708, 1708, 2484,  595,  600,  601,  247,  601,
2081       600,  600,  600,  600,  600,  600,  600,  602,  600,  600,
2082       600, 1671,  600,  604,  600,  605,  600, 1362, 1362, 1362,
2083      1359, 2487, 1344, 1070, 1070, 1070, 1362, 1362, 1362, 1374,
2084      1374, 1374, 1374, 1374, 1374, 1364, 1383, 1383, 1383, 2044,
2085
2086      1071,  600,  600, 2479, 1364, 2045,  606, 1376, 1671, 2046,
2087      1376, 2488,  607, 2491, 1385, 2047,  608, 1709, 1709, 1709,
2088      2492, 2493,  609,  600,  601,  247,  601,  600,  600,  600,
2089       600,  600,  600,  600,  602,  600,  600,  600, 2494,  600,
2090       604,  600,  605,  600, 1365, 2480, 2496, 1383, 1383, 1383,
2091      1076, 1076, 1076, 1388, 1388, 1388, 1377, 1389, 2497, 2498,
2092      1390, 1391, 1391, 1391, 2499, 1385, 2500, 1077,  600,  600,
2093      1394, 1394, 1394,  606, 1897, 1897, 1897, 2502, 1392,  607,
2094      1885, 1885, 1885,  608, 1897, 1897, 1897, 1395, 2503,  609,
2095       615,  616,  247,  616,  615,  615,  615,  615,  615,  615,
2096
2097       615,  617,  615,  615,  615, 2504,  615,  619,  615,  620,
2098       615, 1386, 1399, 1399, 1399, 1403, 1403, 1403, 2514, 1408,
2099      1408, 1408, 1399, 1399, 1399, 1405, 1405, 1405, 2515, 2516,
2100      1401, 2517, 1404, 2518, 2522,  615,  615, 1410, 1898, 2525,
2101      1401, 2530, 1406,  621, 1898, 2531,  622, 2538, 1886, 1965,
2102      1965, 1965, 2539,  623,  615,  616,  247,  616,  615,  615,
2103       615,  615,  615,  615,  615,  617,  615,  615,  615, 1402,
2104       615,  619,  615,  620,  615, 1092, 1092, 1092, 2526, 2540,
2105      3395, 3395, 3395, 1408, 1408, 1408, 1413, 1413, 1413, 2489,
2106      1414, 2527, 1093, 1415, 1416, 1416, 1416, 3395, 2490,  615,
2107
2108       615, 1410, 1422, 1422, 1422, 2554, 1423,  621, 2555, 1424,
2109       622, 2571, 1418, 1900, 1900, 1900, 2572,  623,  626,  627,
2110       247,  627,  626,  626,  626,  626,  626,  626,  626,  628,
2111       626,  626,  626, 2573,  626,  630,  626,  631,  626, 1407,
2112      1416, 1416, 1416, 2574, 1411, 1098, 1098, 1098, 1426, 1426,
2113      1426, 1426, 1426, 1426, 1104, 1104, 1104, 2576, 1418, 1901,
2114      2577, 2578, 1099,  626,  626, 2528, 1428, 2579, 2580, 1428,
2115       632, 1105, 2581, 1431, 1431, 1431,  633, 1432, 2529, 2582,
2116      1433, 2064, 2064, 2064, 2583,  634,  626,  627,  247,  627,
2117       626,  626,  626,  626,  626,  626,  626,  628,  626,  626,
2118
2119       626, 1419,  626,  630,  626,  631,  626, 1436, 1436, 1436,
2120      1436, 1436, 1436, 1112, 1112, 1112, 2584, 1429, 2585, 1442,
2121      1442, 1442, 2586, 1443, 2587, 1438, 1444, 1671, 1438, 2592,
2122      1113,  626,  626, 1447, 1447, 1447, 2593, 2594,  632, 1447,
2123      1447, 1447, 2595, 1125,  633, 1454, 1454, 1454, 1454, 1454,
2124      1454, 1449, 2596,  634,  642, 2597, 2598, 1449, 1136, 1136,
2125      1136,  657, 1137, 1456, 2590, 1138, 1456, 1140, 1140, 1140,
2126       641,  658, 1140, 1140, 1140, 2599, 1439, 1465, 1465, 1465,
2127      1181, 1181, 1181, 2589, 1671, 1142, 2600, 1503, 1503, 1503,
2128      1142, 1504, 2601, 2602, 1505, 1466, 2603, 1182,  659,  660,
2129
2130       661, 2604, 2605, 1450, 2607,  662,  663, 2608, 2609,  664,
2131       665, 2610, 1457,  666, 2611,  667,  668,  669,  642, 1185,
2132      1185, 1185, 1508, 1508, 1508, 2612, 1509, 2591, 2617, 1510,
2133      1188, 1188, 1188, 2618,  641,  671, 1186, 1188, 1188, 1188,
2134      1188, 1188, 1188, 1194, 1194, 1194, 2619, 2622, 1190, 1194,
2135      1194, 1194, 1199, 1199, 1199, 1190, 1200, 2623, 1190, 1201,
2136      2627, 1196,  659,  672,  673, 2628, 2630, 1196, 2633,  674,
2137       675, 2634, 2642,  676,  665, 2643, 2629,  677, 2644,  678,
2138       679,  680, 1194, 1194, 1194, 1203, 1203, 1203, 1203, 1203,
2139      1203, 1203, 1203, 1203, 1207, 1207, 1207, 1213, 1213, 1213,
2140
2141      1196, 2655, 2678, 1205, 1512, 2679, 1205, 2631, 2684, 1205,
2142      2685, 1208, 1519, 1519, 1519, 1215, 1520, 2686, 2632, 1521,
2143      1211, 1211, 1211, 1524, 1524, 1524, 2667, 1525, 2687, 2688,
2144      1526, 1213, 1213, 1213, 2689, 1515, 2668, 1212, 2690, 2669,
2145      1518, 1213, 1213, 1213, 1217, 1217, 1217, 2691, 2692, 1215,
2146      1528, 1528, 1528, 2693, 1529, 2698, 2699, 1530, 2670, 1215,
2147      1125, 1218, 1219, 1219, 1219, 1531, 1531, 1531, 2671, 1532,
2148      1671, 2672, 1533, 1221, 1221, 1221, 1221, 1221, 1221, 1220,
2149      1221, 1221, 1221, 1225, 1225, 1225, 1671, 1226, 2700, 2695,
2150      1227, 1223, 2701, 2702, 1223, 1228, 1228, 1228, 1223, 1229,
2151
2152      2703, 2704, 1230, 1527, 1231, 1231, 1231, 1535, 1535, 1535,
2153      2705, 1536, 2696, 2706, 1537, 1237, 1237, 1237, 1237, 1237,
2154      1237, 1232, 1237, 1237, 1237, 1245, 1245, 1245, 2697, 1246,
2155      2707, 2708, 1247, 1239, 2709, 2710, 1239, 1547, 1547, 1547,
2156      1239, 2712, 1534, 1249, 1249, 1249, 2713, 1250, 2714, 2716,
2157      1251, 1252, 1252, 1252, 1548, 1549, 1549, 1549, 2717, 1550,
2158      2723, 2724, 1551, 1264, 1264, 1264, 2366, 2367, 1253, 2368,
2159      1542, 1264, 1264, 1264, 1264, 1264, 1264, 2369, 1268, 1268,
2160      1268, 1266, 1269, 2732, 2370, 1270, 1271, 1271, 1271, 1266,
2161      2733, 2734, 1266, 1271, 1271, 1271, 1271, 1271, 1271, 1567,
2162
2163      1567, 1567, 2735, 2736, 1273, 1278, 1278, 1278, 2737, 1279,
2164      2738, 1273, 1280, 2739, 1273, 2740, 1568, 1284, 1284, 1284,
2165      1284, 1284, 1284, 2648, 1284, 1284, 1284, 1575, 1575, 1575,
2166      1291, 1291, 1291, 2649, 1292, 1286, 2744, 1293, 1286, 2650,
2167      2747, 1563, 1286, 2748, 1576, 1294, 1294, 1294, 2749, 1295,
2168      2750, 2751, 1296, 1297, 1297, 1297, 1564, 1297, 1297, 1297,
2169      1297, 1297, 1297, 1578, 1578, 1578, 1302, 1302, 1302, 2752,
2170      2753, 1299, 1302, 1302, 1302, 1299, 2756, 2764, 1299, 2765,
2171      1579, 1302, 1302, 1302, 1304, 1313, 1313, 1313, 2768, 1572,
2172      1304, 1307, 1307, 1307, 2769, 1308, 2787, 2760, 1309, 1304,
2173
2174      1313, 1313, 1313, 1315, 1313, 1313, 1313, 1318, 1318, 1318,
2175      2761, 1319, 2788, 2651, 1320, 1321, 1321, 1321, 1315, 1321,
2176      1321, 1321, 1315, 2652, 2789, 1577, 1321, 1321, 1321, 2653,
2177      1580, 2790, 2791, 1323, 1325, 1325, 1325, 1323, 1326, 2792,
2178      2793, 1327, 2794, 1125, 1323, 1329, 1329, 1329, 1329, 1329,
2179      1329, 1329, 1329, 1329, 1590, 1590, 1590, 3395, 3395, 3395,
2180      1335, 1335, 1335, 1331, 1585, 2800, 1331, 1671, 2801, 1331,
2181      2802, 1591, 2762, 2803, 3395, 1335, 1335, 1335, 1337, 1335,
2182      1335, 1335, 1594, 1594, 1594, 2763, 1587, 2766, 3395, 3395,
2183      3395, 2796, 2804, 1337, 1341, 1341, 1341, 1337, 2805, 1595,
2184
2185      2767, 1589, 2797, 2806, 1592, 3395, 1341, 1341, 1341, 1341,
2186      1341, 1341, 1343, 1349, 1349, 1349, 1596, 1350, 2770, 2807,
2187      1351, 1352, 1352, 1352, 1343, 2808, 2809, 1343, 1602, 1602,
2188      1602, 2771, 1603, 2810, 2811, 1604, 2812, 2814, 1353, 1356,
2189      1356, 1356, 1356, 1356, 1356, 2815, 1593, 1356, 1356, 1356,
2190      1362, 1362, 1362, 1362, 1362, 1362, 2817, 1358, 2825, 2818,
2191      1358, 1362, 1362, 1362, 2826, 1358, 2833, 2834, 1364, 2819,
2192      2820, 1364, 1615, 1615, 1615, 1597, 1374, 1374, 1374, 1364,
2193      2821, 1374, 1374, 1374, 1374, 1374, 1374, 2835, 2836, 1616,
2194      2837, 1383, 1383, 1383, 1376, 1383, 1383, 1383, 1607, 1376,
2195
2196      2838, 2839, 1376, 1379, 1379, 1379, 2840, 1380, 1610, 1385,
2197      1381, 2841, 2842, 1385, 1383, 1383, 1383, 1388, 1388, 1388,
2198      2846, 1389, 2847, 2848, 1390, 1391, 1391, 1391, 2849, 1625,
2199      1625, 1625, 1385, 1626, 2850, 2851, 1627, 1628, 1628, 1628,
2200      2852, 2853, 1392, 2854, 2855, 1620, 1394, 1394, 1394, 1630,
2201      1630, 1630, 2856, 1631, 1629, 2857, 1632, 1634, 1634, 1634,
2202      1399, 1399, 1399, 1395, 1399, 1399, 1399, 1399, 1399, 1399,
2203      1403, 1403, 1403, 2858, 1635, 1623, 2859, 2860, 1401, 1638,
2204      1638, 1638, 1401, 1639, 2861, 1401, 1640, 1404, 1405, 1405,
2205      1405, 1641, 1641, 1641, 2862, 1642, 2863, 2864, 1643, 1408,
2206
2207      1408, 1408, 1408, 1408, 1408, 1406, 1408, 1408, 1408, 1413,
2208      1413, 1413, 2865, 1414, 2879, 2868, 1415, 1410, 2880, 2881,
2209      1410, 1416, 1416, 1416, 1410, 2869, 2882, 1637, 1416, 1416,
2210      1416, 1416, 1416, 1416, 1422, 1422, 1422, 2870, 1423, 1418,
2211      2883, 1424, 1426, 1426, 1426, 2884, 1418, 2871, 2885, 1418,
2212      1426, 1426, 1426, 1426, 1426, 1426, 2886, 1431, 1431, 1431,
2213      1428, 1432, 2894, 1125, 1433, 1654, 1654, 1654, 1428, 2895,
2214      2896, 1428, 2897, 1645, 1436, 1436, 1436, 1436, 1436, 1436,
2215      2898, 2899, 1655, 1436, 1436, 1436, 1658, 1658, 1658, 1442,
2216      1442, 1442, 1438, 1443, 2900, 1438, 1444, 2888, 1647, 2901,
2217
2218      2906, 1438, 2907, 1659, 3395, 3395, 3395, 1447, 1447, 1447,
2219      1447, 1447, 1447, 2908, 1651, 1447, 1447, 1447, 1664, 1664,
2220      1664, 3395, 1454, 1454, 1454, 1449, 2909, 2911, 1449, 1454,
2221      1454, 1454, 2912, 1449, 2915, 1665, 1454, 1454, 1454, 2916,
2222      1456, 1670, 1670, 1670, 1656, 2917, 2918, 1456, 1465, 1465,
2223      1465, 1503, 1503, 1503, 1456, 1504, 2919, 2920, 1505, 1671,
2224      1672, 2921, 1662, 2922, 2927, 1660, 1466, 1508, 1508, 1508,
2225      2928, 1509, 2929, 2930, 1510, 1188, 1188, 1188, 1720, 1720,
2226      1720, 2931, 2932, 1667, 1194, 1194, 1194, 1203, 1203, 1203,
2227      1519, 1519, 1519, 1190, 1520, 1721, 2933, 1521, 2934, 1524,
2228
2229      1524, 1524, 1196, 1525, 2935, 1205, 1526, 1213, 1213, 1213,
2230      1528, 1528, 1528, 2936, 1529, 2937, 2938, 1530, 2939, 1531,
2231      1531, 1531, 2940, 1532, 2941, 1215, 1533, 1221, 1221, 1221,
2232      1535, 1535, 1535, 2942, 1536, 2943, 1718, 1537, 1732, 1732,
2233      1732, 1237, 1237, 1237, 1725, 1223, 1737, 1737, 1737, 2947,
2234      2948, 1722, 2949, 2950, 1728, 1733, 1547, 1547, 1547, 1239,
2235      1741, 1741, 1741, 1738, 1742, 2953, 2954, 1743, 1549, 1549,
2236      1549, 2955, 1550, 1548, 1729, 1551, 1750, 1750, 1750, 1264,
2237      1264, 1264, 1271, 1271, 1271, 1567, 1567, 1567, 1760, 1760,
2238      1760, 2956, 1761, 1751, 2957, 1762, 1735, 1266, 2958, 2966,
2239
2240      1273, 2967, 1568, 1764, 1764, 1764, 1284, 1284, 1284, 1575,
2241      1575, 1575, 1770, 1770, 1770, 2968, 1771, 2969, 2970, 1772,
2242      1765, 1297, 1297, 1297, 1286, 2971, 1576, 1125, 1578, 1578,
2243      1578, 1774, 1774, 1774, 1757, 1775, 2972, 2973, 1776, 1299,
2244      1302, 1302, 1302, 2974, 1756, 1579, 1313, 1313, 1313, 1321,
2245      1321, 1321, 1785, 1785, 1785, 1880, 1880, 1880, 1304, 1329,
2246      1329, 1329, 2975, 2978, 1315, 2371, 2372, 1323, 2373, 1786,
2247      2960, 2979, 1767, 1590, 1590, 1590, 2374, 1331, 1788, 1788,
2248      1788, 2985, 1789, 2375, 2986, 1790, 2987, 1773, 2988, 2989,
2249      1591, 1335, 1335, 1335, 1594, 1594, 1594, 2996, 1777, 2997,
2250
2251      1793, 1793, 1793, 1782, 1794, 2998, 1784, 1795, 2999, 1337,
2252      1787, 1595, 1341, 1341, 1341, 1799, 1799, 1799, 1602, 1602,
2253      1602, 3000, 1603, 3001, 3002, 1604, 1803, 1803, 1803, 3003,
2254      1343, 3004, 1800, 3005, 1356, 1356, 1356, 1362, 1362, 1362,
2255      1615, 1615, 1615, 1804, 3006, 3007, 1814, 1814, 1814, 3008,
2256      1815, 1792, 1358, 1816, 3009, 1364, 3010, 1616, 1374, 1374,
2257      1374, 1822, 1822, 1822, 1383, 1383, 1383, 1625, 1625, 1625,
2258      3011, 1626, 3012, 1797, 1627, 3013, 1376, 3014, 1823, 1628,
2259      1628, 1628, 1385, 1826, 1826, 1826, 3015, 1827, 3016, 3017,
2260      1828, 3018, 3019, 1630, 1630, 1630, 1629, 1631, 1806, 3020,
2261
2262      1632, 3021, 3022, 1809, 1634, 1634, 1634, 1820, 1830, 1830,
2263      1830, 3027, 1831, 1125, 3027, 1832, 1399, 1399, 1399, 3035,
2264      3036, 1635, 3030, 1638, 1638, 1638, 1824, 1639, 3028, 3040,
2265      1640, 1641, 1641, 1641, 1401, 1642, 3041, 3042, 1643, 1408,
2266      1408, 1408, 1416, 1416, 1416, 1426, 1426, 1426, 1844, 1844,
2267      1844, 1654, 1654, 1654, 1846, 1846, 1846, 1410, 1847, 3025,
2268      1418, 1848, 3043, 1428, 3044, 1845, 1834, 3045, 1655, 1436,
2269      1436, 1436, 1658, 1658, 1658, 1851, 1851, 1851, 3053, 1852,
2270      3054, 3055, 1853, 1447, 1447, 1447, 3046, 1438, 3060, 1659,
2271      1664, 1664, 1664, 1858, 1858, 1858, 3061, 1859, 3047, 3062,
2272
2273      1860, 1449, 1861, 1861, 1861, 1836, 3063, 1665, 1838, 1842,
2274      1454, 1454, 1454, 1670, 1670, 1670, 2072, 2072, 2072, 1862,
2275      1902, 1902, 1902, 1904, 1904, 1904, 3048, 3056, 1456, 3058,
2276      3064, 1671, 1856, 1849, 3395, 3395, 3395, 1903, 3049, 3057,
2277      1905, 3059, 1188, 1188, 1188, 1720, 1720, 1720, 1909, 1909,
2278      1909, 3395, 1910, 3065, 3066, 1911, 1194, 1194, 1194, 1863,
2279      1190, 3032, 1721, 3067, 1865, 1203, 1203, 1203, 1916, 1916,
2280      1916, 1918, 1918, 1918, 1196, 1213, 1213, 1213, 1221, 1221,
2281      1221, 1866, 3033, 1205, 3068, 1917, 3069, 3037, 1919, 1922,
2282      1922, 1922, 3070, 1215, 3071, 3034, 1223, 3072, 1906, 3395,
2283
2284      3395, 3395, 1732, 1732, 1732, 3038, 1923, 1671, 1672, 1907,
2285      1925, 1925, 1925, 1915, 1926, 1912, 3395, 1927, 3039, 1733,
2286      1928, 1928, 1928, 1237, 1237, 1237, 3075, 1737, 1737, 1737,
2287      1125, 1932, 1932, 1932, 3075, 1933, 3078, 1929, 1934, 3027,
2288      1920, 1239, 3079, 1921, 1738, 1935, 1935, 1935, 1741, 1741,
2289      1741, 3080, 1742, 3028, 3082, 1743, 3083, 1924, 1940, 1940,
2290      1940, 3027, 1936, 1750, 1750, 1750, 1945, 1945, 1945, 3081,
2291      1946, 3073, 3030, 1947, 3092, 1941, 1949, 1949, 1949, 3095,
2292      1751, 3084, 3090, 1930, 1264, 1264, 1264, 1271, 1271, 1271,
2293      1760, 1760, 1760, 1950, 1761, 3093, 3085, 1762, 1957, 1957,
2294
2295      1957, 3091, 1266, 3096, 3097, 1273, 1764, 1764, 1764, 1959,
2296      1959, 1959, 3100, 1960, 3094, 1958, 1961, 1963, 1963, 1963,
2297      1770, 1770, 1770, 1765, 1771, 3102, 3105, 1772, 1297, 1297,
2298      1297, 3101, 1774, 1774, 1774, 1964, 1775, 3108, 3109, 1776,
2299      3110, 3103, 1954, 1302, 1302, 1302, 1299, 1973, 1973, 1973,
2300      1953, 1321, 1321, 1321, 1785, 1785, 1785, 1329, 1329, 1329,
2301      3104, 1304, 1983, 1983, 1983, 1974, 1977, 1977, 1977, 1323,
2302      1978, 1786, 3111, 1979, 1967, 1331, 1788, 1788, 1788, 1984,
2303      1789, 3112, 3113, 1790, 1335, 1335, 1335, 1793, 1793, 1793,
2304      3075, 1794, 3115, 3075, 1795, 3116, 3117, 1976, 1341, 1341,
2305
2306      1341, 3118, 1337, 1799, 1799, 1799, 3119, 1987, 1987, 1987,
2307      1968, 1988, 3120, 3121, 1989, 1980, 1343, 1990, 1990, 1990,
2308      1800, 1803, 1803, 1803, 1993, 1993, 1993, 3128, 1994, 3129,
2309      3130, 1995, 3131, 3132, 1991, 1997, 1997, 1997, 1804, 1362,
2310      1362, 1362, 1814, 1814, 1814, 3133, 1815, 3134, 3135, 1816,
2311      1982, 3139, 3140, 1998, 1374, 1374, 1374, 1364, 1822, 1822,
2312      1822, 3141, 1985, 2011, 2011, 2011, 3142, 2012, 3143, 3144,
2313      2013, 3148, 1376, 3149, 3150, 1823, 2014, 2014, 2014, 1826,
2314      1826, 1826, 3151, 1827, 3152, 3153, 1828, 3155, 1830, 1830,
2315      1830, 2001, 1831, 3156, 2015, 1832, 1399, 1399, 1399, 1408,
2316
2317      1408, 1408, 1416, 1416, 1416, 2009, 2024, 2024, 2024, 3395,
2318      3395, 3395, 3157, 3158, 1401, 3159, 3160, 1410, 3161, 3166,
2319      1418, 3162, 3167, 2025, 3168, 3164, 3395, 2027, 2027, 2027,
2320      1426, 1426, 1426, 3163, 1844, 1844, 1844, 3165, 2031, 2031,
2321      2031, 3169, 2032, 3170, 2028, 2033, 3171, 3172, 1428, 3173,
2322      2021, 1845, 3174, 2023, 1846, 1846, 1846, 2019, 1847, 3175,
2323      3176, 1848, 1436, 1436, 1436, 1851, 1851, 1851, 3177, 1852,
2324      3178, 3179, 1853, 3180, 3181, 2026, 1125, 2029, 3183, 3184,
2325      1438, 1447, 1447, 1447, 1858, 1858, 1858, 3185, 1859, 3186,
2326      3187, 1860, 3188, 1861, 1861, 1861, 2048, 2048, 2048, 1449,
2327
2328      2049, 3182, 3189, 2050, 1454, 1454, 1454, 3190, 3191, 2034,
2329      1862, 2055, 2055, 2055, 1885, 1885, 1885, 2073, 2073, 2073,
2330      3192, 3193, 1456, 1888, 1888, 1888, 3194, 3195, 2056, 1897,
2331      1897, 1897, 2038, 2084, 2084, 2084, 1900, 1900, 1900, 1902,
2332      1902, 1902, 2087, 2087, 2087, 3196, 2088, 3197, 3198, 2089,
2333      1904, 1904, 1904, 3199, 3200, 2051, 1903, 2090, 2090, 2090,
2334      3201, 2091, 3202, 3203, 2092, 3204, 3205, 1905, 1188, 1188,
2335      1188, 1909, 1909, 1909, 3206, 1910, 3208, 3209, 1911, 1194,
2336      1194, 1194, 2098, 2098, 2098, 3210, 1190, 1203, 1203, 1203,
2337      1916, 1916, 1916, 3211, 2101, 2101, 2101, 1196, 2102, 2099,
2338
2339      3212, 2103, 1918, 1918, 1918, 1205, 3213, 1917, 2104, 2104,
2340      2104, 3214, 2105, 1125, 3215, 2106, 1922, 1922, 1922, 1919,
2341      1213, 1213, 1213, 1221, 1221, 1221, 2112, 2112, 2112, 3216,
2342      2096, 3217, 3207, 1923, 2094, 2109, 2109, 2109, 1215, 2110,
2343      3218, 1223, 2111, 2113, 3219, 1925, 1925, 1925, 2100, 1926,
2344      3220, 3221, 1927, 1928, 1928, 1928, 2114, 2114, 2114, 3222,
2345      2115, 3223, 3224, 2116, 1237, 1237, 1237, 1932, 1932, 1932,
2346      1929, 1933, 3225, 3226, 1934, 1935, 1935, 1935, 3227, 2119,
2347      2119, 2119, 1239, 2120, 3228, 2107, 2121, 3229, 2108, 1940,
2348      1940, 1940, 1936, 2125, 2125, 2125, 1125, 2126, 3231, 3232,
2349
2350      2127, 2128, 2128, 2128, 3233, 3234, 1941, 1945, 1945, 1945,
2351      3235, 1946, 3236, 3237, 1947, 2117, 3230, 3238, 2129, 1949,
2352      1949, 1949, 2133, 2133, 2133, 3239, 2134, 3240, 3241, 2135,
2353      1264, 1264, 1264, 1271, 1271, 1271, 1950, 1957, 1957, 1957,
2354      2142, 2142, 2142, 3242, 2143, 3243, 3244, 2144, 1266, 3245,
2355      3246, 1273, 3247, 3248, 1958, 1959, 1959, 1959, 3249, 1960,
2356      3250, 3252, 1961, 3253, 1963, 1963, 1963, 1965, 1965, 1965,
2357      1297, 1297, 1297, 1302, 1302, 1302, 2150, 2150, 2150, 3254,
2358      3255, 2138, 1964, 1973, 1973, 1973, 2139, 3256, 1299, 3257,
2359      3258, 1304, 3259, 2151, 1321, 1321, 1321, 1125, 1977, 1977,
2360
2361      1977, 1974, 1978, 3251, 3260, 1979, 1329, 1329, 1329, 2159,
2362      2159, 2159, 1323, 1983, 1983, 1983, 1341, 1341, 1341, 1990,
2363      1990, 1990, 2152, 2148, 1331, 3261, 3262, 2160, 2147, 3263,
2364      1984, 2161, 2161, 2161, 1343, 2162, 1991, 3264, 2163, 3265,
2365      1987, 1987, 1987, 2156, 1988, 3267, 1125, 1989, 3268, 2166,
2366      2166, 2166, 2157, 2167, 3269, 3270, 2168, 1993, 1993, 1993,
2367      3266, 1994, 3271, 2164, 1995, 1997, 1997, 1997, 2172, 2172,
2368      2172, 1362, 1362, 1362, 2175, 2175, 2175, 2177, 2177, 2177,
2369      1374, 1374, 1374, 1998, 3272, 2173, 2011, 2011, 2011, 1364,
2370      2012, 3273, 3274, 2013, 2014, 2014, 2014, 3276, 1376, 2185,
2371
2372      2185, 2185, 1399, 1399, 1399, 2190, 2190, 2190, 1416, 1416,
2373      1416, 3277, 2015, 2024, 2024, 2024, 2186, 2194, 2194, 2194,
2374      1401, 2195, 3278, 2191, 2196, 3279, 1418, 2197, 2197, 2197,
2375      2025, 3280, 2174, 2027, 2027, 2027, 2200, 2200, 2200, 3281,
2376      2201, 3282, 3283, 2202, 2198, 2182, 1426, 1426, 1426, 3286,
2377      2028, 2204, 2204, 2204, 3287, 2031, 2031, 2031, 3288, 2032,
2378      3289, 2188, 2033, 3290, 1428, 1436, 1436, 1436, 2205, 2211,
2379      2211, 2211, 2193, 2199, 2213, 2213, 2213, 2048, 2048, 2048,
2380      3291, 2049, 3300, 1438, 2050, 1692, 1125, 2212, 1454, 1454,
2381      1454, 2214, 2055, 2055, 2055, 3302, 3320, 2206, 1690, 2203,
2382
2383      2229, 2229, 2229, 1125, 2230, 1125, 1456, 2231, 1689, 2056,
2384      2232, 2232, 2232, 2237, 2237, 2237, 1125, 1125, 2207, 2238,
2385      2238, 2238, 2064, 2064, 2064, 2240, 2240, 2240, 2245, 2245,
2386      2245, 2072, 2072, 2072, 2225, 2073, 2073, 2073, 2246, 2246,
2387      2246, 2249, 2249, 2249, 2253, 2253, 2253, 2254, 2254, 2254,
2388      2256, 2256, 2256, 2084, 2084, 2084, 2257, 2257, 2257, 2087,
2389      2087, 2087, 1125, 2088, 3294, 3295, 2089, 2090, 2090, 2090,
2390      1125, 2091, 1125, 1125, 2092, 1188, 1188, 1188, 1194, 1194,
2391      1194, 2098, 2098, 2098, 2247, 2265, 2265, 2265, 1125, 2266,
2392      1688, 1125, 2267, 1190, 1125, 1125, 1196, 1125, 2099, 1203,
2393
2394      1203, 1203, 2258, 2101, 2101, 2101, 3292, 2102, 3293, 3306,
2395      2103, 2104, 2104, 2104, 1125, 2105, 3326, 1205, 2106, 1213,
2396      1213, 1213, 1221, 1221, 1221, 3303, 2261, 2109, 2109, 2109,
2397      1125, 2110, 3308, 1125, 2111, 3298, 3296, 1215, 2263, 2269,
2398      1223, 3299, 3297, 2112, 2112, 2112, 2271, 2271, 2271, 3304,
2399      2272, 3309, 1125, 2273, 1237, 1237, 1237, 1125, 2270, 2268,
2400      2113, 2114, 2114, 2114, 1125, 2115, 3305, 3316, 2116, 2119,
2401      2119, 2119, 1239, 2120, 1125, 1685, 2121, 2125, 2125, 2125,
2402      3392, 2126, 1125, 1125, 2127, 2128, 2128, 2128, 2279, 2279,
2403      2279, 1125, 2280, 1682, 1125, 2281, 2133, 2133, 2133, 3307,
2404
2405      2134, 3317, 2129, 2135, 2286, 2286, 2286, 1264, 1264, 1264,
2406      2289, 2289, 2289, 1125, 3301, 2142, 2142, 2142, 1125, 2143,
2407      2274, 2287, 2144, 3310, 3311, 1266, 3312, 1125, 2290, 1297,
2408      1297, 1297, 1302, 1302, 1302, 2150, 2150, 2150, 2298, 2298,
2409      2298, 1125, 2299, 3352, 1125, 2300, 1681, 1299, 3313, 1125,
2410      1304, 1125, 2151, 1125, 1321, 1321, 1321, 1329, 1329, 1329,
2411      2159, 2159, 2159, 2161, 2161, 2161, 3353, 2162, 1680, 1125,
2412      2163, 2288, 1323, 3314, 1125, 1331, 3322, 1125, 2160, 1341,
2413      1341, 1341, 3321, 2296, 2295, 2166, 2166, 2166, 3323, 2167,
2414      3315, 1125, 2168, 2172, 2172, 2172, 3354, 1343, 2313, 2313,
2415
2416      2313, 3318, 2314, 1125, 1679, 2315, 1362, 1362, 1362, 3319,
2417      2173, 2175, 2175, 2175, 2317, 2317, 2317, 1125, 1125, 2306,
2418      2305, 2177, 2177, 2177, 1364, 2318, 2318, 2318, 3395, 3395,
2419      3395, 1125, 2308, 3395, 3395, 3395, 3395, 3395, 3395, 1374,
2420      1374, 1374, 2319, 1125, 1678, 3395, 2185, 2185, 2185, 3328,
2421      3395, 3324, 3325, 3395, 2326, 2326, 2326, 1376, 2327, 1677,
2422      1676, 2328, 1675, 2186, 2330, 2330, 2330, 2190, 2190, 2190,
2423      2316, 2334, 2334, 2334, 2194, 2194, 2194, 3329, 2195, 2320,
2424      3336, 2196, 2331, 1125, 1125, 2191, 2197, 2197, 2197, 2335,
2425      1125, 1125, 2336, 2336, 2336, 2322, 2337, 2321, 1125, 2338,
2426
2427      1426, 1426, 1426, 2198, 2323, 2200, 2200, 2200, 1125, 2201,
2428      1125, 1125, 2202, 2204, 2204, 2204, 3332, 3333, 1428, 2341,
2429      2341, 2341, 1125, 2342, 1125, 3330, 2343, 1436, 1436, 1436,
2430      2205, 2211, 2211, 2211, 3327, 2213, 2213, 2213, 1125, 2349,
2431      2349, 2349, 1674, 2350, 3340, 1438, 2351, 3337, 3342, 2212,
2432      3338, 2340, 2214, 1454, 1454, 1454, 2363, 2363, 2363, 2229,
2433      2229, 2229, 1673, 2230, 3339, 1125, 2231, 2232, 2232, 2232,
2434      3341, 1456, 1125, 3331, 1125, 2376, 2376, 2376, 2345, 2377,
2435      2377, 2377, 2237, 2237, 2237, 2238, 2238, 2238, 2240, 2240,
2436      2240, 2381, 2381, 2381, 2383, 2383, 2383, 2384, 2384, 2384,
2437
2438      3360, 3344, 2362, 2245, 2245, 2245, 2246, 2246, 2246, 2249,
2439      2249, 2249, 2387, 2387, 2387, 2253, 2253, 2253, 2254, 2254,
2440      2254, 2256, 2256, 2256, 2257, 2257, 2257, 2394, 2394, 2394,
2441      2396, 2396, 2396, 1194, 1194, 1194, 2398, 2398, 2398, 2265,
2442      2265, 2265, 1125, 2266, 1125, 2395, 2267, 1203, 1203, 1203,
2443      1125, 1196, 3392, 2399, 1213, 1213, 1213, 1221, 1221, 1221,
2444      2271, 2271, 2271, 1125, 2272, 1205, 1125, 2273, 2403, 2403,
2445      2403, 1125, 1215, 3334, 1125, 1223, 2279, 2279, 2279, 3343,
2446      2280, 3335, 1125, 2281, 3348, 3358, 2404, 2410, 2410, 2410,
2447      1125, 2401, 2286, 2286, 2286, 2418, 2418, 2418, 2400, 2397,
2448
2449      3345, 2415, 2415, 2415, 2411, 2416, 3366, 3359, 2417, 2287,
2450      2289, 2289, 2289, 2419, 2423, 2423, 2423, 1125, 2402, 1297,
2451      1297, 1297, 2425, 2425, 2425, 2427, 2427, 2427, 2290, 2298,
2452      2298, 2298, 3346, 2299, 1125, 1125, 2300, 1299, 1666, 1663,
2453      2426, 1125, 2428, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
2454      3395, 3395, 2433, 2433, 2433, 1321, 1321, 1321, 3347, 1125,
2455      3395, 1661, 1125, 3395, 3355, 1125, 3395, 1125, 3349, 2434,
2456      1125, 2429, 3356, 1323, 1329, 1329, 1329, 1125, 1657, 2424,
2457      2437, 2437, 2437, 1341, 1341, 1341, 2443, 2443, 2443, 2313,
2458      2313, 2313, 1331, 2314, 1653, 1125, 2315, 2438, 2430, 3357,
2459
2460      2432, 1343, 1362, 1362, 1362, 3350, 3374, 2431, 2317, 2317,
2461      2317, 2318, 2318, 2318, 1125, 2435, 3351, 2445, 2445, 2445,
2462      1364, 2446, 1652, 3362, 2447, 2448, 2448, 2448, 2319, 3395,
2463      3395, 3395, 3364, 1125, 2439, 3395, 3395, 3395, 2436, 2452,
2464      2452, 2452, 2449, 2454, 2454, 2454, 3395, 2455, 2455, 2455,
2465      1125, 3365, 3395, 3395, 3395, 3395, 1125, 2453, 2326, 2326,
2466      2326, 2444, 2327, 1125, 2456, 2328, 2330, 2330, 2330, 3368,
2467      3395, 2334, 2334, 2334, 2336, 2336, 2336, 1125, 2337, 3363,
2468      2450, 2338, 1650, 1125, 2331, 3361, 2451, 1649, 3367, 2335,
2469      2461, 2461, 2461, 2341, 2341, 2341, 1125, 2342, 1648, 1646,
2470
2471      2343, 1125, 1436, 1436, 1436, 2349, 2349, 2349, 2462, 2350,
2472      3370, 1644, 2351, 1454, 1454, 1454, 2363, 2363, 2363, 2457,
2473      1438, 2376, 2376, 2376, 2377, 2377, 2377, 2495, 2495, 2495,
2474      3371, 1456, 1125, 3372, 1125, 2381, 2381, 2381, 2383, 2383,
2475      2383, 2384, 2384, 2384, 2387, 2387, 2387, 3378, 2464, 2501,
2476      2501, 2501, 2394, 2394, 2394, 2396, 2396, 2396, 2505, 2505,
2477      2505, 1636, 2398, 2398, 2398, 2507, 2507, 2507, 1125, 2508,
2478      2395, 1125, 2509, 3375, 2477, 1633, 2506, 1624, 2478, 2399,
2479      2510, 2510, 2510, 1213, 1213, 1213, 1221, 1221, 1221, 2403,
2480      2403, 2403, 2410, 2410, 2410, 2519, 2519, 2519, 2511, 2520,
2481
2482      3369, 1215, 2521, 1125, 1223, 3373, 3376, 2404, 1125, 2411,
2483      2523, 2523, 2523, 2415, 2415, 2415, 1125, 2416, 1622, 1125,
2484      2417, 2418, 2418, 2418, 2532, 2532, 2532, 2524, 2423, 2423,
2485      2423, 1297, 1297, 1297, 2425, 2425, 2425, 1125, 3377, 2419,
2486      1125, 2533, 2427, 2427, 2427, 1125, 1621, 2512, 3382, 1299,
2487      1125, 3383, 2426, 2513, 2535, 2535, 2535, 1619, 2536, 2428,
2488      1125, 2537, 2541, 2541, 2541, 2433, 2433, 2433, 2543, 2543,
2489      2543, 3384, 2544, 1618, 3380, 2545, 2546, 2546, 2546, 2542,
2490      1125, 1617, 2434, 1329, 1329, 1329, 3379, 3381, 2534, 2437,
2491      2437, 2437, 3386, 3388, 2547, 2549, 2549, 2549, 1614, 2550,
2492
2493      1613, 1331, 2551, 2552, 2552, 2552, 2438, 2556, 2556, 2556,
2494      2443, 2443, 2443, 2558, 2558, 2558, 2445, 2445, 2445, 1125,
2495      2446, 2553, 1125, 2447, 2557, 2448, 2448, 2448, 2560, 2560,
2496      2560, 2559, 2561, 1125, 3385, 2562, 2563, 2563, 2563, 2565,
2497      2565, 2565, 2449, 1125, 2548, 2452, 2452, 2452, 2454, 2454,
2498      2454, 3387, 1611, 2564, 3390, 1609, 2566, 2455, 2455, 2455,
2499      2567, 2567, 2567, 2453, 2568, 3391, 1608, 2569, 3395, 3395,
2500      3395, 2461, 2461, 2461, 2456, 1436, 1436, 1436, 1454, 1454,
2501      1454, 2495, 2495, 2495, 1606, 3395, 2606, 2606, 2606, 2462,
2502      2501, 2501, 2501, 1438, 1605, 1601, 1456, 2613, 2613, 2613,
2503
2504      2505, 2505, 2505, 2507, 2507, 2507, 1600, 2508, 1599, 1125,
2505      2509, 2510, 2510, 2510, 2614, 1213, 1213, 1213, 2506, 1221,
2506      1221, 1221, 1598, 2570, 1588, 2620, 2620, 2620, 1586, 2511,
2507      2640, 2640, 2640, 1215, 2523, 2523, 2523, 1223, 2588, 1584,
2508      1583, 2575, 2621, 2519, 2519, 2519, 1582, 2520, 2641, 1581,
2509      2521, 2524, 2624, 2624, 2624, 1574, 2625, 3389, 1573, 2626,
2510      2635, 2635, 2635, 2532, 2532, 2532, 2637, 2637, 2637, 1571,
2511      2638, 1570, 1569, 2639, 1566, 1565, 2615, 2636, 1560, 1559,
2512      2533, 1558, 2535, 2535, 2535, 2616, 2536, 1557, 1556, 2537,
2513      2541, 2541, 2541, 2645, 2645, 2645, 1555, 2646, 1554, 1553,
2514
2515      2647, 2543, 2543, 2543, 1552, 2544, 1546, 2542, 2545, 2546,
2516      2546, 2546, 1329, 1329, 1329, 2549, 2549, 2549, 1545, 2550,
2517      1544, 1543, 2551, 2552, 2552, 2552, 1541, 2547, 1540, 1539,
2518      1331, 2656, 2656, 2656, 2556, 2556, 2556, 1538, 2658, 2658,
2519      2658, 2553, 2659, 1523, 1522, 2660, 1517, 1516, 2657, 1514,
2520      1513, 2557, 2558, 2558, 2558, 2560, 2560, 2560, 1511, 2561,
2521      1507, 1506, 2562, 2563, 2563, 2563, 2565, 2565, 2565, 1502,
2522      2559, 2661, 2661, 2661, 2654, 2662, 1501, 1500, 2663, 1499,
2523      2564, 1498, 1497, 2566, 2664, 2664, 2664, 1496, 2665, 1495,
2524      1494, 2666, 2567, 2567, 2567, 1493, 2568, 1492, 1491, 2569,
2525
2526      3395, 3395, 3395, 2674, 2674, 2674, 2676, 2676, 2676, 1436,
2527      1436, 1436, 2681, 2681, 2681, 1490, 1489, 3395, 1487, 1486,
2528      2675, 1485, 1484, 2677, 2682, 2682, 2682, 1438, 1454, 1454,
2529      1454, 2711, 2711, 2711, 2606, 2606, 2606, 2715, 2715, 2715,
2530      1481, 2683, 2613, 2613, 2613, 1480, 1456, 2718, 2718, 2718,
2531      1479, 2719, 1478, 1477, 2720, 1213, 1213, 1213, 1476, 2614,
2532      1475, 2673, 1474, 1221, 1221, 1221, 2725, 2725, 2725, 2620,
2533      2620, 2620, 1473, 1215, 1472, 2727, 2727, 2727, 1471, 2728,
2534      2680, 1223, 2729, 2726, 1470, 1469, 2621, 1468, 2694, 2730,
2535      2730, 2730, 2624, 2624, 2624, 1467, 2625, 1464, 1463, 2626,
2536
2537      2635, 2635, 2635, 2741, 2741, 2741, 2731, 2742, 1462, 1461,
2538      2743, 2637, 2637, 2637, 2722, 2638, 1460, 2636, 2639, 2640,
2539      2640, 2640, 2721, 2745, 2745, 2745, 2645, 2645, 2645, 1459,
2540      2646, 1125, 1453, 2647, 2754, 2754, 2754, 2641, 1452, 1451,
2541      2746, 2656, 2656, 2656, 2757, 2757, 2757, 1446, 2758, 1445,
2542      1441, 2759, 2755, 2658, 2658, 2658, 1435, 2659, 2657, 1434,
2543      2660, 2661, 2661, 2661, 1430, 2662, 1425, 1421, 2663, 2664,
2544      2664, 2664, 1420, 2665, 1412, 1398, 2666, 3395, 3395, 3395,
2545      2674, 2674, 2674, 2773, 2773, 2773, 1397, 2774, 1396, 1393,
2546      2775, 2676, 2676, 2676, 3395, 1387, 1382, 2675, 2776, 2776,
2547
2548      2776, 1378, 2777, 1373, 1372, 2778, 1371, 1370, 2677, 2779,
2549      2779, 2779, 2781, 2781, 2781, 1436, 1436, 1436, 2681, 2681,
2550      2681, 2682, 2682, 2682, 1369, 1368, 2780, 1367, 1366, 2782,
2551      1454, 1454, 1454, 1438, 2798, 2798, 2798, 2772, 2683, 2784,
2552      2784, 2784, 1361, 2785, 1360, 1355, 2786, 1354, 1456, 1348,
2553      1345, 2799, 1671, 2711, 2711, 2711, 2813, 2813, 2813, 2715,
2554      2715, 2715, 2816, 2816, 2816, 2718, 2718, 2718, 1340, 2719,
2555      1339, 1334, 2720, 1213, 1213, 1213, 1333, 2783, 2823, 2823,
2556      2823, 2795, 2725, 2725, 2725, 2827, 2827, 2827, 1328, 2828,
2557      1317, 1215, 2829, 2727, 2727, 2727, 2824, 2728, 1312, 2726,
2558
2559      2729, 2730, 2730, 2730, 2830, 2830, 2830, 1311, 2831, 1310,
2560      1306, 2832, 2741, 2741, 2741, 1301, 2742, 1290, 2731, 2743,
2561      2745, 2745, 2745, 2843, 2843, 2843, 1289, 2844, 1283, 1282,
2562      2845, 2754, 2754, 2754, 2757, 2757, 2757, 2746, 2758, 2822,
2563      1281, 2759, 2866, 2866, 2866, 1277, 2773, 2773, 2773, 2755,
2564      2774, 1276, 1275, 2775, 2776, 2776, 2776, 1263, 2777, 2867,
2565      1262, 2778, 2779, 2779, 2779, 2872, 2872, 2872, 1261, 2873,
2566      1260, 1259, 2874, 2781, 2781, 2781, 2875, 2875, 2875, 2780,
2567      2876, 1258, 1257, 2877, 1436, 1436, 1436, 2784, 2784, 2784,
2568      2782, 2785, 1256, 1255, 2786, 1454, 1454, 1454, 2889, 2889,
2569
2570      2889, 1254, 1438, 2798, 2798, 2798, 1248, 2891, 2891, 2891,
2571      1241, 2892, 1202, 1456, 2893, 2890, 1671, 2902, 2902, 2902,
2572      2799, 1671, 2813, 2813, 2813, 1671, 2903, 2903, 2903, 2904,
2573      2904, 2904, 2816, 2816, 2816, 2878, 2905, 2905, 2905, 1213,
2574      1213, 1213, 1198, 1193, 2887, 2823, 2823, 2823, 2827, 2827,
2575      2827, 1192, 2828, 1180, 1179, 2829, 1178, 1215, 2830, 2830,
2576      2830, 1177, 2831, 2824, 1176, 2832, 2913, 2913, 2913, 2923,
2577      2923, 2923, 2843, 2843, 2843, 1175, 2844, 1174, 1173, 2845,
2578      2925, 2925, 2925, 2914, 1172, 1171, 2924, 2866, 2866, 2866,
2579      2910, 2944, 2944, 2944, 1170, 2945, 1169, 2926, 2946, 2872,
2580
2581      2872, 2872, 1168, 2873, 2867, 1165, 2874, 2875, 2875, 2875,
2582      1164, 2876, 1163, 1162, 2877, 2951, 2951, 2951, 1454, 1454,
2583      1454, 2889, 2889, 2889, 2961, 2961, 2961, 1161, 2962, 1160,
2584      1159, 2963, 1158, 2952, 1157, 1154, 1456, 1153, 2890, 1671,
2585      1152, 1151, 1671, 2891, 2891, 2891, 1150, 2892, 1149, 1148,
2586      2893, 2902, 2902, 2902, 2903, 2903, 2903, 2904, 2904, 2904,
2587      1147, 1671, 2905, 2905, 2905, 2976, 2976, 2976, 2980, 2980,
2588      2980, 1146, 2981, 1139, 1135, 2982, 1134, 2913, 2913, 2913,
2589      2983, 2983, 2983, 2977, 2959, 1669, 1669, 1669, 1669, 1669,
2590      1669, 1669, 1669, 1669, 2914, 1133, 1669, 2984, 2923, 2923,
2591
2592      2923, 1669, 1669, 1669, 1671, 1669, 2990, 2990, 2990, 1132,
2593      2991, 1131, 1128, 2992, 1126, 2924, 2993, 2993, 2993, 1125,
2594      2994, 1123, 1121, 2995, 2925, 2925, 2925, 2951, 2951, 2951,
2595      1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669,
2596      1669, 2926, 1120, 1669, 1119, 2952, 1118, 1117, 1669, 1669,
2597      1669, 1671, 1669, 2944, 2944, 2944, 1114, 2945, 1111, 1109,
2598      2946, 3023, 3023, 3023, 2961, 2961, 2961, 1107, 2962, 1106,
2599      1103, 2963, 1102, 1100, 2976, 2976, 2976, 1669, 1669, 3024,
2600      1097, 1096, 1671, 1669, 1669, 1669, 1669, 1669, 3031, 1669,
2601      1669, 1669, 2977, 1095, 1669, 2983, 2983, 2983, 1091, 1669,
2602
2603      1669, 1669, 1671, 1669, 2980, 2980, 2980, 1090, 2981, 1088,
2604      1087, 2982, 2984, 3050, 3050, 3050, 1086, 3051, 1085, 1083,
2605      3052, 3023, 3023, 3023, 3077, 3077, 3077, 1082, 1669, 1669,
2606      1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 3031, 3024,
2607      1081, 1669, 1671, 1672, 1080, 1079, 1669, 1669, 1669, 1671,
2608      1669, 2990, 2990, 2990, 1078, 2991, 1075, 1074, 2992, 2993,
2609      2993, 2993, 1072, 2994, 1069, 1068, 2995, 3086, 3086, 3086,
2610      3088, 3088, 3088, 1066, 1065, 1669, 1669, 1064, 3050, 3050,
2611      3050, 1063, 3051, 1062, 3087, 3052, 1058, 3089, 3098, 3098,
2612      3098, 3106, 3106, 3106, 3114, 3114, 3114, 3077, 3077, 3077,
2613
2614      3086, 3086, 3086, 1056, 1055, 3099, 1054, 1052, 3107, 3122,
2615      3122, 3122, 1125, 3123, 1051, 1671, 3124, 3087, 3088, 3088,
2616      3088, 3125, 3125, 3125, 1050, 3126, 1047, 1046, 3127, 3098,
2617      3098, 3098, 3136, 3136, 3136, 3089, 3137, 1045, 1044, 3138,
2618      3106, 3106, 3106, 3145, 3145, 3145, 3099, 3146, 1865, 1042,
2619      3147, 3114, 3114, 3114, 3122, 3122, 3122, 3107, 3123, 1041,
2620      1040, 3124, 1038, 3125, 3125, 3125, 1037, 3126, 1036, 1125,
2621      3127, 3136, 3136, 3136, 1034, 3137, 1031, 1027, 3138, 3145,
2622      3145, 3145, 1026, 3146, 1024, 1023, 3147, 1022, 3154, 3275,
2623      3275, 3275, 3275, 3275, 3275, 1019, 3284, 1018, 1017, 3285,
2624
2625      3393, 3393, 3393, 3393, 3393, 3393, 1015, 1125, 1014, 1008,
2626      1125, 1005, 1003, 1002, 1001,  996,  995,  991, 3394,  989,
2627       988, 3394,  244,  244,  244,  244,  244,  244,  244,  244,
2628       244,  245,  245,  245,  245,  245,  245,  245,  245,  245,
2629       250,  250,  250,  250,  250,  250,  250,  250,  250,  253,
2630       253,  253,  253,  253,  253,  253,  253,  253,  256,  256,
2631       256,  256,  256,  256,  256,  256,  256,  259,  259,  259,
2632       259,  259,  259,  259,  259,  259,  266,  266,  266,  266,
2633       266,  266,  266,  266,  266,  273,  273,  273,  273,  273,
2634       273,  273,  273,  273,  278,  278,  278,  278,  278,  278,
2635
2636       278,  278,  278,  290,  290,  290,  290,  290,  290,  290,
2637       290,  290,  296,  296,  296,  296,  296,  296,  296,  296,
2638       296,  304,  304,  304,  304,  304,  304,  304,  304,  304,
2639       308,  308,  308,  308,  308,  308,  308,  308,  308,  314,
2640       314,  314,  314,  314,  314,  314,  314,  314,  320,  320,
2641       320,  320,  320,  320,  320,  320,  320,  326,  326,  326,
2642       326,  326,  326,  326,  326,  326,  332,  332,  332,  332,
2643       332,  332,  332,  332,  332,  339,  339,  339,  339,  339,
2644       339,  339,  339,  339,  344,  344,  344,  344,  344,  344,
2645       344,  344,  344,  351,  351,  351,  351,  351,  351,  351,
2646
2647       351,  351,  360,  360,  360,  360,  360,  360,  360,  360,
2648       360,  378,  378,  378,  378,  378,  378,  378,  378,  378,
2649       385,  385,  385,  385,  385,  385,  385,  385,  385,  389,
2650       389,  389,  389,  389,  389,  389,  389,  389,  396,  396,
2651       396,  396,  396,  396,  396,  396,  396,  404,  404,  404,
2652       404,  404,  404,  404,  404,  404,  412,  412,  412,  412,
2653       412,  412,  412,  412,  412,  418,  418,  418,  418,  418,
2654       418,  418,  418,  418,  424,  424,  424,  424,  424,  424,
2655       424,  424,  424,  428,  428,  428,  428,  428,  428,  428,
2656       428,  428,  436,  436,  436,  436,  436,  436,  436,  436,
2657
2658       436,  443,  443,  443,  443,  443,  443,  443,  443,  443,
2659       450,  450,  450,  450,  450,  450,  450,  450,  450,  455,
2660       455,  455,  455,  455,  455,  455,  455,  455,  461,  461,
2661       461,  461,  461,  461,  461,  461,  461,  466,  466,  466,
2662       466,  466,  466,  466,  466,  466,  472,  472,  472,  472,
2663       472,  472,  472,  472,  472,  477,  477,  477,  477,  477,
2664       477,  477,  477,  477,  483,  483,  483,  483,  483,  483,
2665       483,  483,  483,  488,  488,  488,  488,  488,  488,  488,
2666       488,  488,  494,  494,  494,  494,  494,  494,  494,  494,
2667       494,  503,  503,  503,  503,  503,  503,  503,  503,  503,
2668
2669       510,  510,  510,  510,  510,  510,  510,  510,  510,  514,
2670       514,  514,  514,  514,  514,  514,  514,  514,  525,  525,
2671       525,  525,  525,  525,  525,  525,  525,  533,  533,  533,
2672       533,  533,  533,  533,  533,  533,  541,  541,  541,  541,
2673       541,  541,  541,  541,  541,  546,  546,  546,  546,  546,
2674       546,  546,  546,  546,  552,  552,  552,  552,  552,  552,
2675       552,  552,  552,  560,  560,  560,  560,  560,  560,  560,
2676       560,  560,  566,  566,  566,  566,  566,  566,  566,  566,
2677       566,  571,  571,  571,  571,  571,  571,  571,  571,  571,
2678       578,  578,  578,  578,  578,  578,  578,  578,  578,  583,
2679
2680       583,  583,  583,  583,  583,  583,  583,  583,  589,  589,
2681       589,  589,  589,  589,  589,  589,  589,  596,  596,  596,
2682       596,  596,  596,  596,  596,  596,  603,  603,  603,  603,
2683       603,  603,  603,  603,  603,  610,  610,  610,  610,  610,
2684       610,  610,  610,  610,  618,  618,  618,  618,  618,  618,
2685       618,  618,  618,  259,  259,  259,  259,  259,  259,  259,
2686       259,  259,  629,  629,  629,  629,  629,  629,  629,  629,
2687       629,  635,  635,  635,  635,  635,  635,  635,  635,  635,
2688       654,  654,  654,  987,  986,  985,  654,  688,  688,  688,
2689       984,  983,  982,  688,  696,  696,  696,  981,  980,  979,
2690
2691       696,  700,  700,  700,  976,  973,  972,  700,  706,  706,
2692       706,  971,  969,  968,  706,  712,  712,  712,  967,  966,
2693       965,  712,  717,  717,  717,  960,  958,  957,  717,  727,
2694       727,  727,  956,  954,  953,  727,  746,  746,  746,  952,
2695       951,  949,  746,  750,  750,  750,  946,  945,  943,  750,
2696       760,  760,  760,  942,  941,  939,  760,  766,  766,  766,
2697       938,  937,  936,  766,  771,  771,  771,  933,  932,  931,
2698       771,  779,  779,  779,  928,  927,  926,  779,  784,  784,
2699       784,  921,  919,  918,  784,  789,  789,  789,  910,  909,
2700       908,  789,  794,  794,  794,  902,  901,  900,  794,  799,
2701
2702       799,  799,  898,  895,  894,  799,  810,  810,  810,  893,
2703       892,  887,  810,  819,  819,  819,  884,  886,  881,  819,
2704       828,  828,  828,  880,  879,  877,  828,  833,  833,  833,
2705       876,  873,  872,  833,  844,  844,  844,  871,  869,  868,
2706       844,  850,  850,  850,  866,  865,  864,  850,  855,  855,
2707       855,  863,  861,  860,  855,  862,  862,  862,  859,  858,
2708       857,  862,  870,  870,  870,  856,  854,  852,  870,  878,
2709       878,  878,  851,  849,  848,  878,  883,  883,  883,  883,
2710       883,  883,  883,  845,  883,  654,  654,  654,  843,  839,
2711       835,  654,  899,  834,  832,  830,  899,  688,  688,  688,
2712
2713       829,  827,  826,  688,  940,  824,  823,  822,  940,  696,
2714       696,  696,  821,  820,  818,  696,  944,  817,  811,  809,
2715       944,  700,  700,  700,  804,  803,  802,  700,  950,  801,
2716       800,  798,  950,  706,  706,  706,  796,  795,  793,  706,
2717       955,  791,  790,  788,  955,  712,  712,  712,  786,  785,
2718       783,  712,  959,  781,  780,  778,  959,  717,  717,  717,
2719       777,  774,  773,  717,  970,  772,  770, 3395,  970,  727,
2720       727,  727,  767,  765,  763,  727,  990,  762,  761,  759,
2721       990,  746,  746,  746,  758,  754,  753,  746,  994,  752,
2722       751,  749,  994,  750,  750,  750,  748,  747,  745,  750,
2723
2724      1004,  744,  743,  736, 1004,  760,  760,  760,  732,  731,
2725       728,  760, 1013,  726,  722,  721, 1013,  766,  766,  766,
2726       720,  719,  718,  766, 1016,  716,  715,  714, 1016,  771,
2727       771,  771,  713,  711,  710,  771, 1025,  709,  708,  707,
2728      1025,  779,  779,  779,  705,  703,  702,  779, 1030,  701,
2729       699,  697, 1030,  784,  784,  784,  695,  676, 3395,  784,
2730      1035,  690,  689,  687, 1035,  789,  789,  789, 3395,  670,
2731       656,  789, 1039,  655,  653,  652, 1039,  794,  794,  794,
2732       646,  645,  646,  794, 1043,  645,  644,  643, 1043,  799,
2733       799,  799, 3395, 3395, 3395,  799, 1053, 3395, 3395, 3395,
2734
2735      1053,  810,  810,  810, 3395, 3395, 3395,  810, 1057, 3395,
2736      3395, 3395, 1057,  819,  819,  819, 3395, 3395, 3395,  819,
2737      1067, 3395, 3395, 3395, 1067,  828,  828,  828, 3395, 3395,
2738      3395,  828, 1073, 3395, 3395, 3395, 1073,  833,  833,  833,
2739      3395, 3395, 3395,  833, 1084, 3395, 3395, 3395, 1084,  844,
2740       844,  844, 3395, 3395, 3395,  844, 1089, 3395, 3395, 3395,
2741      1089,  850,  850,  850, 3395, 3395, 3395,  850, 1094, 3395,
2742      3395, 3395, 1094,  855,  855,  855, 3395, 3395, 3395,  855,
2743      1101, 3395, 3395, 3395, 1101,  862,  862,  862, 3395, 3395,
2744      3395,  862, 1108, 3395, 3395, 3395, 1108,  870,  870,  870,
2745
2746      3395, 3395, 3395,  870, 1116, 3395, 3395, 3395, 1116,  878,
2747       878,  878, 3395, 3395, 3395,  878, 1122, 3395, 3395, 3395,
2748      1122, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
2749      1130, 3395, 3395, 3395, 3395, 1130,  654,  654,  654, 3395,
2750      3395, 3395,  654, 1141, 1141, 1141, 1141, 3395, 3395, 1141,
2751      1141,  688,  688,  688,  688, 3395,  688, 3395,  688, 1189,
2752      1189, 1189, 1189, 3395, 3395, 1189, 1189,  696,  696,  696,
2753      3395, 3395, 3395,  696, 1195, 1195, 1195, 1195, 3395, 3395,
2754      1195, 1195,  700,  700,  700, 3395, 3395, 3395,  700, 1204,
2755      1204, 1204, 1204, 3395, 3395, 1204, 1204,  706,  706,  706,
2756
2757       706, 3395,  706, 3395,  706, 1214, 1214, 1214, 1214, 3395,
2758      3395, 1214, 1214,  712,  712,  712,  712, 3395,  712, 3395,
2759       712, 1222, 1222, 1222, 1222, 3395, 3395, 1222, 1222,  717,
2760       717,  717,  717, 3395,  717, 3395,  717, 1238, 1238, 1238,
2761      1238, 3395, 3395, 1238, 1238,  727,  727,  727, 3395, 3395,
2762      3395,  727, 1265, 1265, 1265, 1265, 3395, 3395, 1265, 1265,
2763      1272, 1272, 1272, 1272, 3395, 3395, 1272, 1272,  750,  750,
2764       750, 3395, 3395, 3395,  750, 1285, 1285, 1285, 1285, 3395,
2765      3395, 1285, 1285,  760,  760,  760, 3395, 3395, 3395,  760,
2766      1298, 1298, 1298, 1298, 3395, 3395, 1298, 1298,  766,  766,
2767
2768       766, 3395, 3395, 3395,  766, 1303, 1303, 1303, 1303, 3395,
2769      3395, 1303, 1303,  771,  771,  771, 3395, 3395, 3395,  771,
2770      1314, 1314, 1314, 1314, 3395, 3395, 1314, 1314,  779,  779,
2771       779, 3395, 3395, 3395,  779, 1322, 1322, 1322, 1322, 3395,
2772      3395, 1322, 1322,  784,  784,  784, 3395, 3395, 3395,  784,
2773      1330, 1330, 1330, 1330, 3395, 3395, 1330, 1330,  789,  789,
2774       789, 3395, 3395, 3395,  789, 1336, 1336, 1336, 1336, 3395,
2775      3395, 1336, 1336,  794,  794,  794, 3395, 3395, 3395,  794,
2776      1342, 1342, 1342, 1342, 3395, 3395, 1342, 1342,  799,  799,
2777       799, 3395, 3395, 3395,  799, 1357, 1357, 1357, 1357, 3395,
2778
2779      3395, 1357, 1357,  810,  810,  810, 3395, 3395, 3395,  810,
2780      1363, 1363, 1363, 1363, 3395, 3395, 1363, 1363,  819,  819,
2781       819, 3395, 3395, 3395,  819, 1375, 1375, 1375, 1375, 3395,
2782      3395, 1375, 1375,  828,  828,  828, 3395, 3395, 3395,  828,
2783      1384, 1384, 1384, 1384, 3395, 3395, 1384, 1384,  833,  833,
2784       833, 3395, 3395, 3395,  833, 1400, 1400, 1400, 1400, 3395,
2785      3395, 1400, 1400,  844,  844,  844,  844, 3395,  844, 3395,
2786       844, 1409, 1409, 1409, 1409, 3395, 3395, 1409, 1409,  850,
2787       850,  850, 3395, 3395, 3395,  850, 1417, 1417, 1417, 1417,
2788      3395, 3395, 1417, 1417,  855,  855,  855, 3395, 3395, 3395,
2789
2790       855, 1427, 1427, 1427, 1427, 3395, 3395, 1427, 1427,  862,
2791       862,  862, 3395, 3395, 3395,  862, 1437, 1437, 1437, 1437,
2792      3395, 3395, 1437, 1437,  870,  870,  870, 3395, 3395, 3395,
2793       870, 1448, 1448, 1448, 1448, 3395, 3395, 1448, 1448,  878,
2794       878,  878, 3395, 3395, 3395,  878, 1455, 1455, 1455, 1455,
2795      3395, 3395, 1455, 1455, 1124, 1124, 1124, 1124, 1124, 1124,
2796      1124, 1124, 1124, 1130, 3395, 1130, 3395, 3395, 1130,  654,
2797       654,  654, 3395, 3395, 3395,  654, 1141, 1141, 1141, 1141,
2798      3395, 3395, 1141, 1141,  688,  688,  688, 3395, 3395, 3395,
2799       688, 1189, 1189, 1189, 1189, 3395, 3395, 1189, 1189,  696,
2800
2801       696,  696, 3395, 3395, 3395,  696, 1195, 1195, 1195, 1195,
2802      3395, 3395, 1195, 1195,  700,  700,  700, 3395, 3395, 3395,
2803       700, 1204, 1204, 1204, 1204, 3395, 3395, 1204, 1204,  706,
2804       706,  706, 3395, 3395, 3395,  706, 1214, 1214, 1214, 1214,
2805      3395, 3395, 1214, 1214, 1222, 1222, 1222, 1222, 3395, 3395,
2806      1222, 1222,  717,  717,  717, 3395, 3395, 3395,  717, 1238,
2807      1238, 1238, 1238, 3395, 3395, 1238, 1238,  727,  727,  727,
2808      3395, 3395, 3395,  727, 1265, 1265, 1265, 1265, 3395, 3395,
2809      1265, 1265, 1272, 1272, 1272, 1272, 3395, 3395, 1272, 1272,
2810       750,  750,  750, 3395, 3395, 3395,  750, 1285, 1285, 1285,
2811
2812      1285, 3395, 3395, 1285, 1285,  760,  760,  760,  760, 3395,
2813       760, 3395,  760, 1298, 1298, 1298, 1298, 3395, 3395, 1298,
2814      1298,  766,  766,  766,  766, 3395,  766, 3395,  766, 1303,
2815      1303, 1303, 1303, 3395, 3395, 1303, 1303,  771,  771,  771,
2816      3395, 3395, 3395,  771, 1314, 1314, 1314, 1314, 3395, 3395,
2817      1314, 1314,  779,  779,  779, 3395, 3395, 3395,  779, 1322,
2818      1322, 1322, 1322, 3395, 3395, 1322, 1322,  784,  784,  784,
2819      3395, 3395, 3395,  784, 1330, 1330, 1330, 1330, 3395, 3395,
2820      1330, 1330,  789,  789,  789,  789, 3395,  789, 3395,  789,
2821      1336, 1336, 1336, 1336, 3395, 3395, 1336, 1336,  794,  794,
2822
2823       794,  794, 3395,  794, 3395,  794, 1342, 1342, 1342, 1342,
2824      3395, 3395, 1342, 1342,  799,  799,  799, 3395, 3395, 3395,
2825       799, 1357, 1357, 1357, 1357, 3395, 3395, 1357, 1357,  810,
2826       810,  810, 3395, 3395, 3395,  810, 1363, 1363, 1363, 1363,
2827      3395, 3395, 1363, 1363,  819,  819,  819, 3395, 3395, 3395,
2828       819, 1375, 1375, 1375, 1375, 3395, 3395, 1375, 1375,  828,
2829       828,  828, 3395, 3395, 3395,  828, 1384, 1384, 1384, 1384,
2830      3395, 3395, 1384, 1384,  833,  833,  833, 3395, 3395, 3395,
2831       833, 1400, 1400, 1400, 1400, 3395, 3395, 1400, 1400,  844,
2832       844,  844, 3395, 3395, 3395,  844, 1409, 1409, 1409, 1409,
2833
2834      3395, 3395, 1409, 1409,  850,  850,  850, 3395, 3395, 3395,
2835       850, 1417, 1417, 1417, 1417, 3395, 3395, 1417, 1417,  855,
2836       855,  855, 3395, 3395, 3395,  855, 1427, 1427, 1427, 1427,
2837      3395, 3395, 1427, 1427,  862,  862,  862, 3395, 3395, 3395,
2838       862, 1437, 1437, 1437, 1437, 3395, 3395, 1437, 1437,  870,
2839       870,  870,  870, 3395,  870, 3395,  870, 1448, 1448, 1448,
2840      1448, 3395, 3395, 1448, 1448,  878,  878,  878, 3395, 3395,
2841      3395,  878, 1455, 1455, 1455, 1455, 3395, 3395, 1455, 1455,
2842      1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1669,
2843      1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669,  654,  654,
2844
2845       654, 3395, 3395, 3395,  654,  688,  688,  688, 3395, 3395,
2846      3395,  688, 1189, 1189, 1189, 1189, 3395, 3395, 1189, 1189,
2847       696,  696,  696,  696, 3395,  696, 3395,  696, 1195, 1195,
2848      1195, 1195, 3395, 3395, 1195, 1195,  700,  700,  700, 3395,
2849      3395, 3395,  700, 1204, 1204, 1204, 1204, 3395, 3395, 1204,
2850      1204,  706,  706,  706, 3395, 3395, 3395,  706, 1214, 1214,
2851      1214, 1214, 3395, 3395, 1214, 1214, 1222, 1222, 1222, 1222,
2852      3395, 3395, 1222, 1222,  717,  717,  717, 3395, 3395, 3395,
2853       717, 1238, 1238, 1238, 1238, 3395, 3395, 1238, 1238,  727,
2854       727,  727, 3395, 3395, 3395,  727, 1265, 1265, 1265, 1265,
2855
2856      3395, 3395, 1265, 1265, 1272, 1272, 1272, 1272, 3395, 3395,
2857      1272, 1272,  750,  750,  750, 3395, 3395, 3395,  750, 1285,
2858      1285, 1285, 1285, 3395, 3395, 1285, 1285, 1298, 1298, 1298,
2859      1298, 3395, 3395, 1298, 1298, 1303, 1303, 1303, 1303, 3395,
2860      3395, 1303, 1303,  771,  771,  771, 3395, 3395, 3395,  771,
2861      1314, 1314, 1314, 1314, 3395, 3395, 1314, 1314,  779,  779,
2862       779, 3395, 3395, 3395,  779, 1322, 1322, 1322, 1322, 3395,
2863      3395, 1322, 1322,  784,  784,  784,  784, 3395,  784, 3395,
2864       784, 1330, 1330, 1330, 1330, 3395, 3395, 1330, 1330,  789,
2865       789,  789, 3395, 3395, 3395,  789, 1336, 1336, 1336, 1336,
2866
2867      3395, 3395, 1336, 1336,  794,  794,  794, 3395, 3395, 3395,
2868       794, 1342, 1342, 1342, 1342, 3395, 3395, 1342, 1342,  799,
2869       799,  799, 3395, 3395, 3395,  799, 1357, 1357, 1357, 1357,
2870      3395, 3395, 1357, 1357,  810,  810,  810, 3395, 3395, 3395,
2871       810, 1363, 1363, 1363, 1363, 3395, 3395, 1363, 1363,  819,
2872       819,  819, 3395, 3395, 3395,  819, 1375, 1375, 1375, 1375,
2873      3395, 3395, 1375, 1375,  828,  828,  828,  828, 3395,  828,
2874      3395,  828, 1384, 1384, 1384, 1384, 3395, 3395, 1384, 1384,
2875       833,  833,  833, 3395, 3395, 3395,  833, 1400, 1400, 1400,
2876      1400, 3395, 3395, 1400, 1400,  844,  844,  844, 3395, 3395,
2877
2878      3395,  844, 1409, 1409, 1409, 1409, 3395, 3395, 1409, 1409,
2879       850,  850,  850, 3395, 3395, 3395,  850, 1417, 1417, 1417,
2880      1417, 3395, 3395, 1417, 1417,  855,  855,  855, 3395, 3395,
2881      3395,  855, 1427, 1427, 1427, 1427, 3395, 3395, 1427, 1427,
2882       862,  862,  862, 3395, 3395, 3395,  862, 1437, 1437, 1437,
2883      1437, 3395, 3395, 1437, 1437,  870,  870,  870, 3395, 3395,
2884      3395,  870, 1448, 1448, 1448, 1448, 3395, 3395, 1448, 1448,
2885       878,  878,  878, 3395, 3395, 3395,  878, 1455, 1455, 1455,
2886      1455, 3395, 3395, 1455, 1455, 1124, 1124, 1124, 1124, 1124,
2887      1124, 1124, 1124, 1124, 1669, 1669, 1669, 1669, 1669, 1669,
2888
2889      1669, 1669, 1669,  654,  654,  654, 3395, 3395, 3395,  654,
2890       688,  688,  688,  688, 3395,  688, 3395,  688, 1189, 1189,
2891      1189, 1189, 3395, 3395, 1189, 1189, 1195, 1195, 1195, 1195,
2892      3395, 3395, 1195, 1195,  700,  700,  700, 3395, 3395, 3395,
2893       700, 1204, 1204, 1204, 1204, 3395, 3395, 1204, 1204,  706,
2894       706,  706,  706, 3395,  706, 3395,  706, 1214, 1214, 1214,
2895      1214, 3395, 3395, 1214, 1214, 1222, 1222, 1222, 1222, 3395,
2896      3395, 1222, 1222,  717,  717,  717,  717, 3395,  717, 3395,
2897       717, 1238, 1238, 1238, 1238, 3395, 3395, 1238, 1238,  727,
2898       727,  727, 3395, 3395, 3395,  727, 1265, 1265, 1265, 1265,
2899
2900      3395, 3395, 1265, 1265, 1272, 1272, 1272, 1272, 3395, 3395,
2901      1272, 1272,  750,  750,  750, 3395, 3395, 3395,  750, 1285,
2902      1285, 1285, 1285, 3395, 3395, 1285, 1285, 1298, 1298, 1298,
2903      1298, 3395, 3395, 1298, 1298, 1303, 1303, 1303, 1303, 3395,
2904      3395, 1303, 1303,  771,  771,  771, 3395, 3395, 3395,  771,
2905      1314, 1314, 1314, 1314, 3395, 3395, 1314, 1314,  779,  779,
2906       779, 3395, 3395, 3395,  779, 1322, 1322, 1322, 1322, 3395,
2907      3395, 1322, 1322, 1330, 1330, 1330, 1330, 3395, 3395, 1330,
2908      1330,  789,  789,  789, 3395, 3395, 3395,  789, 1336, 1336,
2909      1336, 1336, 3395, 3395, 1336, 1336,  794,  794,  794,  794,
2910
2911      3395,  794, 3395,  794, 1342, 1342, 1342, 1342, 3395, 3395,
2912      1342, 1342,  799,  799,  799, 3395, 3395, 3395,  799, 1357,
2913      1357, 1357, 1357, 3395, 3395, 1357, 1357,  810,  810,  810,
2914      3395, 3395, 3395,  810, 1363, 1363, 1363, 1363, 3395, 3395,
2915      1363, 1363,  819,  819,  819, 3395, 3395, 3395,  819, 1375,
2916      1375, 1375, 1375, 3395, 3395, 1375, 1375, 1384, 1384, 1384,
2917      1384, 3395, 3395, 1384, 1384,  833,  833,  833, 3395, 3395,
2918      3395,  833, 1400, 1400, 1400, 1400, 3395, 3395, 1400, 1400,
2919       844,  844,  844, 3395, 3395, 3395,  844, 1409, 1409, 1409,
2920      1409, 3395, 3395, 1409, 1409,  850,  850,  850, 3395, 3395,
2921
2922      3395,  850, 1417, 1417, 1417, 1417, 3395, 3395, 1417, 1417,
2923       855,  855,  855,  855, 3395,  855, 3395,  855, 1427, 1427,
2924      1427, 1427, 3395, 3395, 1427, 1427,  862,  862,  862, 3395,
2925      3395, 3395,  862, 1437, 1437, 1437, 1437, 3395, 3395, 1437,
2926      1437,  870,  870,  870, 3395, 3395, 3395,  870, 1448, 1448,
2927      1448, 1448, 3395, 3395, 1448, 1448,  878,  878,  878, 3395,
2928      3395, 3395,  878, 1455, 1455, 1455, 1455, 3395, 3395, 1455,
2929      1455, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
2930      1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669,  654,
2931       654,  654,  654, 3395,  654, 3395,  654,  688,  688,  688,
2932
2933      3395, 3395, 3395,  688, 1189, 1189, 1189, 1189, 3395, 3395,
2934      1189, 1189, 1195, 1195, 1195, 1195, 3395, 3395, 1195, 1195,
2935       700,  700,  700, 3395, 3395, 3395,  700, 1204, 1204, 1204,
2936      1204, 3395, 3395, 1204, 1204, 1214, 1214, 1214, 1214, 3395,
2937      3395, 1214, 1214, 1222, 1222, 1222, 1222, 3395, 3395, 1222,
2938      1222,  717,  717,  717,  717, 3395,  717, 3395,  717, 1238,
2939      1238, 1238, 1238, 3395, 3395, 1238, 1238,  727,  727,  727,
2940      3395, 3395, 3395,  727, 1265, 1265, 1265, 1265, 3395, 3395,
2941      1265, 1265, 1272, 1272, 1272, 1272, 3395, 3395, 1272, 1272,
2942       750,  750,  750, 3395, 3395, 3395,  750, 1298, 1298, 1298,
2943
2944      1298, 3395, 3395, 1298, 1298, 1303, 1303, 1303, 1303, 3395,
2945      3395, 1303, 1303,  771,  771,  771, 3395, 3395, 3395,  771,
2946       779,  779,  779, 3395, 3395, 3395,  779, 1322, 1322, 1322,
2947      1322, 3395, 3395, 1322, 1322, 1330, 1330, 1330, 1330, 3395,
2948      3395, 1330, 1330,  789,  789,  789, 3395, 3395, 3395,  789,
2949      1336, 1336, 1336, 1336, 3395, 3395, 1336, 1336, 1342, 1342,
2950      1342, 1342, 3395, 3395, 1342, 1342,  799,  799,  799, 3395,
2951      3395, 3395,  799,  810,  810,  810,  810, 3395,  810, 3395,
2952       810, 1363, 1363, 1363, 1363, 3395, 3395, 1363, 1363,  819,
2953       819,  819, 3395, 3395, 3395,  819, 1375, 1375, 1375, 1375,
2954
2955      3395, 3395, 1375, 1375,  833,  833,  833, 3395, 3395, 3395,
2956       833, 1400, 1400, 1400, 1400, 3395, 3395, 1400, 1400,  844,
2957       844,  844, 3395, 3395, 3395,  844, 1409, 1409, 1409, 1409,
2958      3395, 3395, 1409, 1409,  850,  850,  850, 3395, 3395, 3395,
2959       850, 1417, 1417, 1417, 1417, 3395, 3395, 1417, 1417,  855,
2960       855,  855,  855, 3395,  855, 3395,  855, 1427, 1427, 1427,
2961      1427, 3395, 3395, 1427, 1427,  862,  862,  862,  862, 3395,
2962       862, 3395,  862, 1437, 1437, 1437, 1437, 3395, 3395, 1437,
2963      1437,  870,  870,  870, 3395, 3395, 3395,  870, 1448, 1448,
2964      1448, 1448, 3395, 3395, 1448, 1448,  878,  878,  878,  878,
2965
2966      3395,  878, 3395,  878, 1455, 1455, 1455, 1455, 3395, 3395,
2967      1455, 1455, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
2968      1124, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669,
2969       688,  688,  688, 3395, 3395, 3395,  688, 1189, 1189, 1189,
2970      1189, 3395, 3395, 1189, 1189, 1195, 1195, 1195, 1195, 3395,
2971      3395, 1195, 1195,  700,  700,  700, 3395, 3395, 3395,  700,
2972      1204, 1204, 1204, 1204, 3395, 3395, 1204, 1204, 1214, 1214,
2973      1214, 1214, 3395, 3395, 1214, 1214, 1222, 1222, 1222, 1222,
2974      3395, 3395, 1222, 1222, 1238, 1238, 1238, 1238, 3395, 3395,
2975      1238, 1238,  727,  727,  727, 3395, 3395, 3395,  727, 1265,
2976
2977      1265, 1265, 1265, 3395, 3395, 1265, 1265, 1272, 1272, 1272,
2978      1272, 3395, 3395, 1272, 1272,  750,  750,  750, 3395, 3395,
2979      3395,  750, 1298, 1298, 1298, 1298, 3395, 3395, 1298, 1298,
2980      1303, 1303, 1303, 1303, 3395, 3395, 1303, 1303,  771,  771,
2981       771, 3395, 3395, 3395,  771,  779,  779,  779, 3395, 3395,
2982      3395,  779, 1322, 1322, 1322, 1322, 3395, 3395, 1322, 1322,
2983      1330, 1330, 1330, 1330, 3395, 3395, 1330, 1330,  789,  789,
2984       789, 3395, 3395, 3395,  789, 1342, 1342, 1342, 1342, 3395,
2985      3395, 1342, 1342,  799,  799,  799, 3395, 3395, 3395,  799,
2986      1363, 1363, 1363, 1363, 3395, 3395, 1363, 1363,  819,  819,
2987
2988       819,  819, 3395,  819, 3395,  819, 1375, 1375, 1375, 1375,
2989      3395, 3395, 1375, 1375,  833,  833,  833, 3395, 3395, 3395,
2990       833, 1400, 1400, 1400, 1400, 3395, 3395, 1400, 1400,  844,
2991       844,  844, 3395, 3395, 3395,  844,  850,  850,  850, 3395,
2992      3395, 3395,  850, 1417, 1417, 1417, 1417, 3395, 3395, 1417,
2993      1417,  855,  855,  855, 3395, 3395, 3395,  855, 1427, 1427,
2994      1427, 1427, 3395, 3395, 1427, 1427,  862,  862,  862, 3395,
2995      3395, 3395,  862, 1437, 1437, 1437, 1437, 3395, 3395, 1437,
2996      1437,  870,  870,  870, 3395, 3395, 3395,  870, 1455, 1455,
2997      1455, 1455, 3395, 3395, 1455, 1455, 1124, 1124, 1124, 1124,
2998
2999      1124, 1124, 1124, 1124, 1124, 1669, 1669, 1669, 1669, 1669,
3000      1669, 1669, 1669, 1669,  688,  688,  688, 3395, 3395, 3395,
3001       688, 1189, 1189, 1189, 1189, 3395, 3395, 1189, 1189, 1195,
3002      1195, 1195, 1195, 3395, 3395, 1195, 1195,  700,  700,  700,
3003       700, 3395,  700, 3395,  700, 1204, 1204, 1204, 1204, 3395,
3004      3395, 1204, 1204, 1214, 1214, 1214, 1214, 3395, 3395, 1214,
3005      1214, 1222, 1222, 1222, 1222, 3395, 3395, 1222, 1222, 1238,
3006      1238, 1238, 1238, 3395, 3395, 1238, 1238,  727,  727,  727,
3007      3395, 3395, 3395,  727, 1265, 1265, 1265, 1265, 3395, 3395,
3008      1265, 1265,  750,  750,  750, 3395, 3395, 3395,  750, 1298,
3009
3010      1298, 1298, 1298, 3395, 3395, 1298, 1298, 1303, 1303, 1303,
3011      1303, 3395, 3395, 1303, 1303,  771,  771,  771,  771, 3395,
3012       771, 3395,  771,  779,  779,  779,  779, 3395,  779, 3395,
3013       779, 1322, 1322, 1322, 1322, 3395, 3395, 1322, 1322, 1330,
3014      1330, 1330, 1330, 3395, 3395, 1330, 1330,  789,  789,  789,
3015       789, 3395,  789, 3395,  789, 1342, 1342, 1342, 1342, 3395,
3016      3395, 1342, 1342,  799,  799,  799, 3395, 3395, 3395,  799,
3017      1363, 1363, 1363, 1363, 3395, 3395, 1363, 1363,  819,  819,
3018       819,  819, 3395,  819, 3395,  819, 1375, 1375, 1375, 1375,
3019      3395, 3395, 1375, 1375,  833,  833,  833,  833, 3395,  833,
3020
3021      3395,  833,  844,  844,  844, 3395, 3395, 3395,  844,  850,
3022       850,  850, 3395, 3395, 3395,  850,  855,  855,  855, 3395,
3023      3395, 3395,  855, 1427, 1427, 1427, 1427, 3395, 3395, 1427,
3024      1427,  862,  862,  862, 3395, 3395, 3395,  862, 1437, 1437,
3025      1437, 1437, 3395, 3395, 1437, 1437,  870,  870,  870, 3395,
3026      3395, 3395,  870, 1455, 1455, 1455, 1455, 3395, 3395, 1455,
3027      1455, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
3028      1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669,  688,
3029       688,  688, 3395, 3395, 3395,  688, 1195, 1195, 1195, 1195,
3030      3395, 3395, 1195, 1195, 1204, 1204, 1204, 1204, 3395, 3395,
3031
3032      1204, 1204, 1214, 1214, 1214, 1214, 3395, 3395, 1214, 1214,
3033      1222, 1222, 1222, 1222, 3395, 3395, 1222, 1222,  727,  727,
3034       727, 3395, 3395, 3395,  727,  750,  750,  750, 3395, 3395,
3035      3395,  750, 1298, 1298, 1298, 1298, 3395, 3395, 1298, 1298,
3036       771,  771,  771, 3395, 3395, 3395,  771, 1322, 1322, 1322,
3037      1322, 3395, 3395, 1322, 1322, 1330, 1330, 1330, 1330, 3395,
3038      3395, 1330, 1330, 2964, 2964, 2964, 2964, 2964, 2964, 2964,
3039      2964, 2964, 2965, 2965, 2965, 2965, 2965, 2965, 2965, 2965,
3040      2965, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026,
3041      3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029, 3029, 3074,
3042
3043      3074, 3074, 3074, 3074, 3074, 3074, 3074, 3074, 3076, 3076,
3044      3076, 3076, 3076, 3076, 3076, 3076, 3076,  243, 3395, 3395,
3045      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
3046      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
3047      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
3048      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
3049      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
3050      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
3051      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
3052      3395, 3395
3053
3054     } ;
3055
3056 static yyconst flex_int16_t yy_chk[12193] =
3057     {   0,
3058         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3059         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3060         4,   10,  335,    5,    0,    9,    6,    0,   10,    7,
3061         8,    8,    8,  248,   11,   13,   13,   12,   14,   14,
3062        13,   13,  286,   14,   14,  249,    8,   17,   17,  248,
3063        13,   15,   15,   14,   15,  252,   15,   16,   16, 1046,
3064        16,  249,   16,   18,   18, 1046,   15,   21,   21,   21,
3065       335,  252,   16,   22,   22,   22,   23,   23,   23,   24,
3066        24,   24,  359,   21,   25,   25,   25,  359, 1482,   22,
3067       347,   17,   23, 1484,  286,   24,  246,  246,  246, 1485,
3068
3069        25,  247,  247,  247,  251,  251,  251,   18,   19,   19,
3070        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3071        19,   19,   19,  406,   19,   19,   19,   19,   19,   26,
3072        26,   26,   27,   27,   27,   28,   28,   28,  347,   29,
3073        29,   29,   30,   30,   30,   26,  274,  291,   27,  295,
3074       370,   28,  305,   19,   19,   29,  295,  442,   30,  271,
3075       271,  271,  274,  291,   19,  279,  279,  279,  305,  442,
3076       262,  370,  406,   19,   20,   20,   20,   20,   20,   20,
3077        20,   20,   20,   20,   20,   20,   20,   20,   20,  559,
3078        20,   20,   20,   20,   20,   31,   31,   31,   32,   32,
3079
3080        32,   33,   33,   33,  559,   34,   34,   34,   35,   35,
3081        35,   31,  262,  648,   32,  574,  648,   33,  262,   20,
3082        20,   34,  310,  262,   35,   36,   36,   36,  262,  310,
3083        20,   37,   37,   37,   38,   38,   38,  752,  310,   20,
3084       752,   36,   39,   39,   39, 1486,  315,   37, 1487,  327,
3085        38,   40,   40,   40,  288,  288,  288,  381,   39,  297,
3086       297,  297,  315,  574,  298,  327, 1489,   40,   41,   41,
3087        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3088        41,   41,   41,  612,   41,   41,   41,   41,   41,   43,
3089        43,   43,   44,   44,   44,   45,   45,   45,  392,   46,
3090
3091        46,   46,   47,   47,   47,   43,  375,  667,   44,  381,
3092      1490,   45,  298,   41,   41,   46,  298,  340,   47,   41,
3093       375,  667,   41,  302,  302,  302,  309,  309,  309,  312,
3094       312,  312,  612,  340,   41,   42,   42,   42,   42,   42,
3095        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3096       392,   42,   42,   42,   42,   42,   48,   48,   48,   49,
3097        49,   49,   50,   50,   50,  373,   53,   53,   53,   54,
3098        54,   54,   48,  373, 1491,   49,  660,  322,   50,  373,
3099        42,   42,   53,  403,  322,   54,   42,  403,  408,   42,
3100       321,  321,  321,  322,  324,  324,  324,  333,  333,  333,
3101
3102       660,   42,   51,   51,   51,   51,   51,   51,   51,   51,
3103        51,   51,   51,   51,   51,   51,   51,  639,   51,   51,
3104        51,   51,   51,   57,   57,   57,   58,   58,   58,   61,
3105        61,   61,  639,   62,   62,   62,   63,   63,   63,   57,
3106       408, 1492,   58, 1493,  672,   61,  682,   51,   51,   62,
3107       352,  367,   63,   64,   64,   64,  337,  337,  337,  345,
3108       345,  345,  349,  349,  349,  535,  352,  367,  672,   64,
3109       682,   51,   52,   52,   52,   52,   52,   52,   52,   52,
3110        52,   52,   52,   52,   52,   52,   52,  685,   52,   52,
3111        52,   52,   52,   65,   65,   65,   66,   66,   66,   67,
3112
3113        67,   67,  535,   68,   68,   68,   71,   71,   71,   65,
3114       502,  685,   66,  362,  502,   67, 1495,   52,   52,   68,
3115       362,  874,   71,   72,   72,   72,  361,  361,  361,  362,
3116       364,  364,  364,  379,  379,  379,  383,  383,  383,   72,
3117      1498,   52,   55,   55,   55,   55,   55,   55,   55,   55,
3118        55,   55,   55,   55,   55,   55,   55,  874,   55,   55,
3119        55,   55,   55,   73,   73,   73,   74,   74,   74,   75,
3120        75,   75, 1499,   76,   76,   76,   77,   77,   77,   73,
3121       386,  397,   74,  413,  425,   75,  665,   55,   55,   76,
3122       665,   55,   77,  390,  390,  390,  386,  397,   55,  413,
3123
3124       425,   55,   56,   56,   56,   56,   56,   56,   56,   56,
3125        56,   56,   56,   56,   56,   56,   56, 1500,   56,   56,
3126        56,   56,   56,   78,   78,   78,   81,   81,   81,   82,
3127        82,   82,  678,   85,   85,   85,   86,   86,   86,   78,
3128       432,  437,   81,  420,  451,   82,  678,   56,   56,   85,
3129       420,   56,   86,  394,  394,  394, 1501,  437,   56,  420,
3130       451,   56,   59,   59,   59,   59,   59,   59,   59,   59,
3131        59,   59,   59,   59,   59,   59,   59, 1502,   59,   59,
3132        59,   59,   59,   87,   87,   87,   88,   88,   88,   89,
3133        89,   89,  432,   90,   90,   90,   91,   91,   91,   87,
3134
3135       758, 1506,   88, 1507,  758,   89,  376,   59,   59,   90,
3136       457,  462,   91,   59,  376,  446,   59,  457,  376,  376,
3137       405,  405,  405,  410,  410,  410,  457,  462,   59,   60,
3138        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
3139        60,   60,   60,   60, 1511,   60,   60,   60,   60,   60,
3140        92,   92,   92,   95,   95,   95,   96,   96,   96,  517,
3141        97,   97,   97,   98,   98,   98,   92,  446, 1160,   95,
3142      1516, 1517,   96, 1522,   60,   60,   97,  473,  484,   98,
3143        60, 1160,  519,   60,  419,  419,  419,  422,  422,  422,
3144       429,  429,  429,  473,  484,   60,   69,   69,   69,   69,
3145
3146        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3147        69,  517,   69,   69,   69,   69,   69,   99,   99,   99,
3148       100,  100,  100,  101,  101,  101,  521,  102,  102,  102,
3149       105,  105,  105,   99,  519, 1523,  100, 1538, 1539,  101,
3150      1541,   69,   69,  102,  495,  506,  105,   69,  434,  434,
3151       434,  444,  444,  444,  448,  448,  448,  456,  456,  456,
3152       495,  506,   69,   70,   70,   70,   70,   70,   70,   70,
3153        70,   70,   70,   70,   70,   70,   70,   70,  521,   70,
3154        70,   70,   70,   70,  106,  106,  106,  107,  107,  107,
3155       108,  108,  108,  537,  109,  109,  109,  110,  110,  110,
3156
3157       106, 1543, 1545,  107,  506,  468,  108,  868,   70,   70,
3158       109,  868,  468,  110,   70,  459,  459,  459,  467,  467,
3159       467,  468,  470,  470,  470,  478,  478,  478, 1546,   70,
3160        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
3161        79,   79,   79,   79,   79,  537,   79,   79,   79,   79,
3162        79,  111,  111,  111,  112,  112,  112,  115,  115,  115,
3163       599,  116,  116,  116,  119,  119,  119,  111,  511,  526,
3164       112,  479,  542,  115, 1458,   79,   79,  116,  479,   79,
3165       119,  481,  481,  481,  511,  526,   79,  479,  542,   79,
3166       489,  489,  489,   79, 1458,   79,   79,   80,   80,   80,
3167
3168        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3169        80,   80,  599,   80,   80,   80,   80,   80,  120,  120,
3170       120,  121,  121,  121,  122,  122,  122,  684,  123,  123,
3171       123,  124,  124,  124,  120,  553,  567,  121,  490,  579,
3172       122,  684,   80,   80,  123,  490,   80,  124,  492,  492,
3173       492,  553,  567,   80,  490,  579,   80,  504,  504,  504,
3174        80, 1552,   80,   80,   83,   83,   83,   83,   83,   83,
3175        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3176        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3177        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3178
3179        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3180        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3181        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3182        83,   83,   83,   83,   83,   83,   83,   83,   93,   93,
3183        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
3184        93,   93,   93, 1553,   93,   93,   93,   93,   93,  125,
3185       125,  125,  126,  126,  126,  129,  129,  129, 1263,  130,
3186       130,  130,  131,  131,  131,  125,  590,  604,  126,  570,
3187      1263,  129,  614,   93,   93,  130,  570, 1554,  131,  508,
3188       508,  508,  590,  604,   93,   94,   94,   94,   94,   94,
3189
3190        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
3191      1555,   94,   94,   94,   94,   94,  132,  132,  132,  133,
3192       133,  133,  134,  134,  134,  661,  135,  135,  135,  136,
3193       136,  136,  132, 1556,  614,  133,  661,  666,  134,  661,
3194        94,   94,  135, 1557,  666,  136,  515,  515,  515,  284,
3195       666,   94,  103,  103,  103,  103,  103,  103,  103,  103,
3196       103,  103,  103,  103,  103,  103,  103, 1559,  103,  103,
3197       103,  103,  103,  139,  139,  139,  140,  140,  140,  143,
3198       143,  143,  557,  144,  144,  144,  557,  284, 1560,  139,
3199       557,  518,  140,  686, 1561,  143, 1562,  103,  103,  144,
3200
3201       103,  284,  103,  284,  518,  284,  518,  686,  103,  523,
3202       523,  523,  534,  534,  534,  103, 1565,  911,  103,  104,
3203       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3204       104,  104,  104,  104,  911,  104,  104,  104,  104,  104,
3205       147,  147,  147,  148,  148,  148,  151,  151,  151,  673,
3206       152,  152,  152, 1127,  505, 1566,  147, 1127,  619,  148,
3207       673,  505,  151,  673,  104,  104,  152,  104,  630,  104,
3208       505,  539,  539,  539,  619,  104,  547,  547,  547,  550,
3209       550,  550,  104, 1569,  630,  104,  113,  113,  113,  113,
3210       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3211
3212       113, 1571,  113,  113,  113,  113,  113,  155,  155,  155,
3213       156,  156,  156,  157,  157,  157,  815,  158,  158,  158,
3214       161,  161,  161,  155, 1573,  885,  156,  548,  562,  157,
3215       815,  113,  113,  158,  548,  562,  161,  113,  561,  561,
3216       561,  885,  113,  548,  562,  564,  564,  564,  572,  572,
3217       572,  576,  576,  576,  113,  114,  114,  114,  114,  114,
3218       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
3219      1574,  114,  114,  114,  114,  114,  162,  162,  162,  163,
3220       163,  163,  164,  164,  164, 1581,  165,  165,  165,  166,
3221       166,  166,  162, 1582, 1583,  163,  585,  670,  164, 1584,
3222
3223       114,  114,  165,  585,  670,  166,  114,  584,  584,  584,
3224       670,  114,  585,  587,  587,  587,  597,  597,  597,  601,
3225       601,  601, 1006,  114,  117,  117,  117,  117,  117,  117,
3226       117,  117,  117,  117,  117,  117,  117,  117,  117, 1006,
3227       117,  117,  117,  117,  117,  167,  167,  167,  168,  168,
3228       168,  169,  169,  169,  813,  170,  170,  170,  171,  171,
3229       171,  167,  816, 1586,  168,  813, 1592,  169,  813,  117,
3230       117,  170, 1596,  816,  171, 1598,  816,  117,  118,  118,
3231       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3232       118,  118,  118, 1600,  118,  118,  118,  118,  118,  172,
3233
3234       172,  172,  173,  173,  173,  174,  174,  174, 1601,  175,
3235       175,  175,  176,  176,  176,  172, 1165, 1606,  173, 1608,
3236      1609,  174, 1611,  118,  118,  175, 1612, 1613,  176, 1165,
3237      1110,  118,  127,  127,  127,  127,  127,  127,  127,  127,
3238       127,  127,  127,  127,  127,  127,  127, 1110,  127,  127,
3239       127,  127,  127,  177,  177,  177,  178,  178,  178,  179,
3240       179,  179, 1614,  180,  180,  180,  183,  183,  183,  177,
3241      1617, 1618,  178,  624, 1367,  179, 1619,  127,  127,  180,
3242       624,  127,  183,  611,  611,  611, 1621, 1367,  127,  624,
3243      1624,  127,  616,  616,  616,  627,  627,  627,  127,  128,
3244
3245       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
3246       128,  128,  128,  128, 1633,  128,  128,  128,  128,  128,
3247       184,  184,  184,  185,  185,  185,  186,  186,  186, 1636,
3248       187,  187,  187,  188,  188,  188,  184, 1644, 1646,  185,
3249       637, 1648,  186, 1649,  128,  128,  187,  637,  128,  188,
3250       636,  636,  636, 1650, 1652,  128,  637, 1657,  128,  638,
3251       638,  638,  647,  647,  647,  128,  137,  137,  137,  137,
3252       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
3253       137, 1660,  137,  137,  137,  137,  137,  189,  189,  189,
3254       190,  190,  190,  193,  193,  193, 1661,  194,  194,  194,
3255
3256       197,  197,  197,  189, 1663, 1669,  190,  677, 1672,  193,
3257      1675,  137,  137,  194,  677, 1676,  197,  137, 1677, 1678,
3258       677,  647,  137,  138,  138,  138,  138,  138,  138,  138,
3259       138,  138,  138,  138,  138,  138,  138,  138, 1679,  138,
3260       138,  138,  138,  138,  198,  198,  198,  201,  201,  201,
3261       202,  202,  202, 1680,  203,  203,  203,  204,  204,  204,
3262       198, 1681, 1682,  201,  683,  814,  202, 1684,  138,  138,
3263       203,  683,  814,  204,  138, 1685, 1687,  683,  814,  138,
3264       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3265       141,  141,  141,  141,  141, 1688,  141,  141,  141,  141,
3266
3267       141,  205,  205,  205,  206,  206,  206,  207,  207,  207,
3268      1668,  208,  208,  208,  211,  211,  211,  205, 1690, 1692,
3269       206,  817, 1693,  207, 1695,  141,  141,  208,  817, 1697,
3270       211,  212,  212,  212,  817, 1668,  141,  888,  888,  888,
3271      1700,  888, 1144, 1144, 1144, 1701, 1702,  212, 1703,  141,
3272       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3273       142,  142,  142,  142,  142, 1704,  142,  142,  142,  142,
3274       142,  215,  215,  215,  216,  216,  216,  217,  217,  217,
3275      1706,  218,  218,  218,  219,  219,  219,  215,  973, 1707,
3276       216, 1711, 1719,  217, 1723,  142,  142,  218,  973, 1724,
3277
3278       219,  220,  220,  220, 1736,  973,  142,  897,  897,  897,
3279      1740,  897, 1744, 1745,  897, 1747, 1748,  220, 1749,  142,
3280       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3281       145,  145,  145,  145,  145, 1752,  145,  145,  145,  145,
3282       145,  221,  221,  221,  222,  222,  222,  225,  225,  225,
3283      1754,  226,  226,  226,  227,  227,  227,  221, 1755, 1758,
3284       222, 1759, 1766,  225, 1769,  145,  145,  226, 1778, 1779,
3285       227, 1166, 1166, 1166,  901,  901,  901,  921,  921,  921,
3286      1780,  145,  933,  933,  933, 1781,  145,  146,  146,  146,
3287       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3288
3289       146,  146, 1783,  146,  146,  146,  146,  146,  228,  228,
3290       228,  229,  229,  229,  230,  230,  230, 1791,  231,  231,
3291       231,  232,  232,  232,  228, 1798, 1802,  229, 1805, 1807,
3292       230, 1808,  146,  146,  231,  235,  235,  232,  901,  283,
3293       235,  921, 1018, 1018, 1018, 1810,  933, 1811,  146,  283,
3294       235, 1812, 1813,  146,  149,  149,  149,  149,  149,  149,
3295       149,  149,  149,  149,  149,  149,  149,  149,  149, 1817,
3296       149,  149,  149,  149,  149,  236,  236,  283, 1818,  235,
3297       236,  239,  239,  239, 1819,  240,  240,  240, 1821, 1825,
3298       236,  283, 1829,  283, 1833,  283, 1835,  239,  430,  149,
3299
3300       149,  240,  899,  899,  899,  516, 1018, 1837,  430,  948,
3301       948,  948, 1843,  948, 1850,  149,  948, 1854, 1855,  236,
3302       899,  149,  150,  150,  150,  150,  150,  150,  150,  150,
3303       150,  150,  150,  150,  150,  150,  150,  430,  150,  150,
3304       150,  150,  150,  430,  516,  655,  655,  655, 1857, 1864,
3305       430,  962,  962,  962,  430,  962, 1869,  516,  962,  516,
3306      1870, 1871,  655,  702,  702,  702, 1864,  150,  150,  718,
3307       718,  718,  964,  964,  964, 1873,  964, 1874, 1876,  964,
3308       702, 1865, 1877,  150, 1878, 1879,  718, 1881, 1882,  150,
3309       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3310
3311       153,  153,  153,  153,  153, 1883,  153,  153,  153,  153,
3312       153,  719,  719,  719,  730,  730,  730,  732,  732,  732,
3313       747,  747,  747, 1865,  753,  753,  753, 1887,  719, 1889,
3314      1890,  730, 1872, 1891,  732,  153,  153,  747,  153,  153,
3315       153,  753, 1893,  975,  975,  975,  153,  975, 1872,  153,
3316       975, 1474, 1474, 1474, 1894, 1895,  153,  154,  154,  154,
3317       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3318       154,  154, 1896,  154,  154,  154,  154,  154,  762,  762,
3319       762,  763,  763,  763,  773,  773,  773,  781,  781,  781,
3320      1899,  785,  785,  785, 1901,  762, 1906, 1474,  763, 1892,
3321
3322      1908,  773,  154,  154,  781,  154,  154,  154,  785, 1913,
3323       978,  978,  978,  154,  978, 1892,  154,  978, 1476, 1476,
3324      1476, 1931, 1937,  154,  159,  159,  159,  159,  159,  159,
3325       159,  159,  159,  159,  159,  159,  159,  159,  159, 1866,
3326       159,  159,  159,  159,  159,  803,  803,  803,  829,  829,
3327       829,  835,  835,  835,  852,  852,  852,  858,  858,  858,
3328      1938, 1939,  803, 1943, 1476,  829, 1944, 1948,  835,  159,
3329       159,  852, 1866, 1951,  858,  864,  864,  864,  993,  993,
3330       993, 1952,  993, 1955, 1956,  993, 1480, 1480, 1480, 1483,
3331      1483, 1483,  864,  159,  160,  160,  160,  160,  160,  160,
3332
3333       160,  160,  160,  160,  160,  160,  160,  160,  160, 1962,
3334       160,  160,  160,  160,  160,  872,  872,  872,  896,  896,
3335       896, 1966, 1969,  900,  900,  900,  936,  936,  936,  937,
3336       937,  937,  872, 1971, 1972,  896,  938,  938,  938,  160,
3337       160,  900, 1975,  936, 1981, 1986,  937, 1000, 1000, 1000,
3338      1992, 1000, 1996,  938, 1000, 1010, 1010, 1010, 1999, 1010,
3339       900, 2003, 1010,  160,  181,  181,  181,  181,  181,  181,
3340       181,  181,  181,  181,  181,  181,  181,  181,  181,  937,
3341       181,  181,  181,  181,  181, 2005, 2006,  939,  939,  939,
3342       940,  940,  940, 2007,  937,  944,  944,  944,  945,  945,
3343
3344       945,  947,  947,  947,  939,  950,  950,  950,  940,  181,
3345       181, 2008, 2010,  944, 2016, 2018,  945,  181,  947,  181,
3346      2020, 2022,  181,  950, 2035, 2036,  181, 1488, 1488, 1488,
3347       181,  182,  182,  182,  182,  182,  182,  182,  182,  182,
3348       182,  182,  182,  182,  182,  182,  939,  182,  182,  182,
3349       182,  182, 2037,  941,  941,  941, 1497, 1497, 1497, 1683,
3350      1683, 1683,  945,  952,  952,  952,  954,  954,  954, 2040,
3351      2041,  941, 1859,  951,  951,  951,  182,  182, 1859, 2042,
3352       952, 2043, 1859,  954,  182, 2044,  182, 2042, 1859,  182,
3353       941,  951, 2045,  182, 1494, 1494, 1494,  182,  191,  191,
3354
3355       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
3356       191,  191,  191, 2047,  191,  191,  191,  191,  191, 2046,
3357       951,  955,  955,  955,  956,  956,  956, 2046,  957,  957,
3358       957, 2058, 2053,  953,  953,  953,  958,  958,  958,  955,
3359      1494, 2059,  956,  191,  191,  957,  959,  959,  959, 2060,
3360       953, 2054, 2052,  958,  191, 1012, 1012, 1012, 2052, 1012,
3361      2061, 2065, 1012, 2053,  959, 2067, 2068,  191,  192,  192,
3362       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
3363       192,  192,  192,  953,  192,  192,  192,  192,  192,  960,
3364       960,  960,  961,  961,  961,  956, 2069, 2054,  953,  963,
3365
3366       963,  963,  965,  965,  965, 2070, 2075,  960, 2077,  961,
3367       966,  966,  966,  192,  192, 2078,  963, 2079, 2082,  965,
3368      2086, 1021, 1021, 1021,  192, 1021, 2093,  966, 1021, 1029,
3369      1029, 1029, 2095, 1029, 2097, 2118, 1029,  192,  195,  195,
3370       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3371       195,  195,  195, 2122,  195,  195,  195,  195,  195, 2123,
3372       960, 2124,  966, 2130, 2131,  967,  967,  967,  970,  970,
3373       970,  974,  974,  974, 2132, 2136,  968,  968,  968,  969,
3374       969,  969,  967,  195,  195, 2140,  970, 2141,  974, 1686,
3375      1686, 1686,  195,  968,  195, 2145,  969, 2146,  195, 1689,
3376
3377      1689, 1689, 2149,  195,  195,  196,  196,  196,  196,  196,
3378       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3379       967,  196,  196,  196,  196,  196, 2152,  968,  977,  977,
3380       977,  969,  979,  979,  979,  990,  990,  990, 2153, 2154,
3381       971,  971,  971, 2155, 2158,  977,  991,  991,  991,  979,
3382       196,  196, 2165,  990, 1496, 1496, 1496, 2169,  971,  196,
3383      2170,  196, 2171, 2183,  991,  196, 1691, 1691, 1691, 2184,
3384       196,  196,  199,  199,  199,  199,  199,  199,  199,  199,
3385       199,  199,  199,  199,  199,  199,  199,  971,  199,  199,
3386       199,  199,  199,  992,  992,  992,  994,  994,  994, 2187,
3387
3388      1496,  995,  995,  995,  991,  999,  999,  999, 2189, 2192,
3389       992, 1004, 1004, 1004,  994, 2199, 2206,  199,  199,  995,
3390      2208, 2209,  999,  199, 1033, 1033, 1033, 2210, 1033, 1004,
3391      2215, 1033, 1694, 1694, 1694, 1699, 1699, 1699,  199,  200,
3392       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
3393       200,  200,  200,  200, 2216,  200,  200,  200,  200,  200,
3394      2217, 2218,  995, 1009, 1009, 1009, 2219, 2220, 1005, 1005,
3395      1005, 1011, 1011, 1011, 1013, 1013, 1013, 1014, 1014, 1014,
3396      1009, 1016, 1016, 1016,  200,  200, 1005, 2221, 1011, 2222,
3397       200, 2223, 1013, 2224, 2227, 1014, 1049, 1049, 1049, 1016,
3398
3399      1049, 2235, 2228, 1049, 2236,  200,  209,  209,  209,  209,
3400       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3401       209, 2239,  209,  209,  209,  209,  209, 2242, 2247, 1005,
3402      1017, 1017, 1017, 1020, 1020, 1020, 2248, 2227, 1014, 1025,
3403      1025, 1025, 1026, 1026, 1026, 1513, 1513, 1513, 1017, 2228,
3404      1020,  209,  209, 1696, 1696, 1696,  209, 1025, 2251, 2252,
3405      1026, 2255,  209,  210,  210,  210,  210,  210,  210,  210,
3406       210,  210,  210,  210,  210,  210,  210,  210, 2258,  210,
3407       210,  210,  210,  210, 1028, 1028, 1028, 1030, 1030, 1030,
3408      1017, 1513, 1031, 1031, 1031, 2259, 2260, 1026, 1032, 1032,
3409
3410      1032, 1028, 1698, 1698, 1698, 1030, 2275, 2276,  210,  210,
3411      1031, 2277, 2283,  210, 2284, 1032, 2285, 1696, 2291,  210,
3412       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
3413       213,  213,  213,  213,  213, 2292,  213,  213,  213,  213,
3414       213, 1035, 1035, 1035, 1039, 1039, 1039, 1031, 1698, 1036,
3415      1036, 1036, 2293, 1040, 1040, 1040, 1043, 1043, 1043, 1035,
3416      2309, 2310, 1039, 2278, 2311,  213,  213, 1036,  213, 2332,
3417       213, 1040, 2333, 2278, 1043, 2339,  213, 1071, 1071, 1071,
3418      2344, 1071, 2346, 2347, 1071, 2352, 2353,  213,  214,  214,
3419       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3420
3421       214,  214,  214, 2354,  214,  214,  214,  214,  214, 2355,
3422      1036, 1048, 1048, 1048, 1040, 2356, 2357, 1044, 1044, 1044,
3423      1050, 1050, 1050, 1053, 1053, 1053, 2358, 2359, 1048, 1054,
3424      1054, 1054, 2360,  214,  214, 1044,  214, 1050,  214, 2361,
3425      2366, 1053, 2367, 2369,  214, 2368, 2370, 1054, 1705, 1705,
3426      1705, 1708, 1708, 1708, 2368,  214,  223,  223,  223,  223,
3427       223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
3428       223, 2364,  223,  223,  223,  223,  223, 1057, 1057, 1057,
3429      1054, 2371, 1044, 1070, 1070, 1070, 1058, 1058, 1058, 1067,
3430      1067, 1067, 1068, 1068, 1068, 1057, 1073, 1073, 1073, 1860,
3431
3432      1070,  223,  223, 2364, 1058, 1860,  223, 1067, 2365, 1860,
3433      1068, 2372,  223, 2374, 1073, 1860,  223, 1709, 1709, 1709,
3434      2375, 2378,  223,  224,  224,  224,  224,  224,  224,  224,
3435       224,  224,  224,  224,  224,  224,  224,  224, 2379,  224,
3436       224,  224,  224,  224, 1058, 2365, 2382, 1074, 1074, 1074,
3437      1076, 1076, 1076, 1077, 1077, 1077, 1068, 1077, 2385, 2386,
3438      1077, 1078, 1078, 1078, 2388, 1074, 2389, 1076,  224,  224,
3439      1080, 1080, 1080,  224, 1710, 1710, 1710, 2391, 1078,  224,
3440      1713, 1713, 1713,  224, 1714, 1714, 1714, 1080, 2392,  224,
3441       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3442
3443       233,  233,  233,  233,  233, 2393,  233,  233,  233,  233,
3444       233, 1074, 1084, 1084, 1084, 1086, 1086, 1086, 2405, 1089,
3445      1089, 1089, 1085, 1085, 1085, 1087, 1087, 1087, 2406, 2407,
3446      1084, 2408, 1086, 2409, 2412,  233,  233, 1089, 1710, 2414,
3447      1085, 2420, 1087,  233, 1713, 2421,  233, 2429, 1714, 1768,
3448      1768, 1768, 2430,  233,  234,  234,  234,  234,  234,  234,
3449       234,  234,  234,  234,  234,  234,  234,  234,  234, 1085,
3450       234,  234,  234,  234,  234, 1092, 1092, 1092, 2416, 2431,
3451      1088, 1088, 1088, 1090, 1090, 1090, 1093, 1093, 1093, 2373,
3452      1093, 2416, 1092, 1093, 1094, 1094, 1094, 1088, 2373,  234,
3453
3454       234, 1090, 1099, 1099, 1099, 2440, 1099,  234, 2441, 1099,
3455       234, 2458, 1094, 1712, 1712, 1712, 2459,  234,  237,  237,
3456       237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
3457       237,  237,  237, 2460,  237,  237,  237,  237,  237, 1088,
3458      1095, 1095, 1095, 2463, 1090, 1098, 1098, 1098, 1101, 1101,
3459      1101, 1102, 1102, 1102, 1104, 1104, 1104, 2465, 1095, 1712,
3460      2466, 2467, 1098,  237,  237, 2417, 1101, 2468, 2469, 1102,
3461       237, 1104, 2470, 1105, 1105, 1105,  237, 1105, 2417, 2471,
3462      1105, 1875, 1875, 1875, 2472,  237,  238,  238,  238,  238,
3463       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3464
3465       238, 1095,  238,  238,  238,  238,  238, 1108, 1108, 1108,
3466      1109, 1109, 1109, 1112, 1112, 1112, 2473, 1102, 2474, 1113,
3467      1113, 1113, 2475, 1113, 2476, 1108, 1113, 2479, 1109, 2481,
3468      1112,  238,  238, 1116, 1116, 1116, 2482, 2483,  238, 1117,
3469      1117, 1117, 2484, 2478,  238, 1122, 1122, 1122, 1123, 1123,
3470      1123, 1116, 2485,  238,  280, 2486, 2487, 1117, 1136, 1136,
3471      1136,  280, 1136, 1122, 2479, 1136, 1123, 1140, 1140, 1140,
3472       280,  280, 1141, 1141, 1141, 2488, 1109, 1143, 1143, 1143,
3473      1181, 1181, 1181, 2478, 2480, 1140, 2489, 1182, 1182, 1182,
3474      1141, 1182, 2490, 2491, 1182, 1143, 2492, 1181,  280,  280,
3475
3476       280, 2493, 2494, 1117, 2497,  280,  280, 2498, 2499,  280,
3477       280, 2500, 1123,  280, 2502,  280,  280,  280,  282, 1185,
3478      1185, 1185, 1186, 1186, 1186, 2503, 1186, 2480, 2514, 1186,
3479      1188, 1188, 1188, 2515,  282,  282, 1185, 1189, 1189, 1189,
3480      1191, 1191, 1191, 1194, 1194, 1194, 2516, 2518, 1188, 1195,
3481      1195, 1195, 1199, 1199, 1199, 1189, 1199, 2522, 1191, 1199,
3482      2525, 1194,  282,  282,  282, 2526, 2527, 1195, 2529,  282,
3483       282, 2530, 2538,  282,  282, 2539, 2526,  282, 2540,  282,
3484       282,  282, 1197, 1197, 1197, 1203, 1203, 1203, 1204, 1204,
3485      1204, 1206, 1206, 1206, 1207, 1207, 1207, 1213, 1213, 1213,
3486
3487      1197, 2554, 2573, 1203, 1191, 2574, 1204, 2528, 2578, 1206,
3488      2579, 1207, 1208, 1208, 1208, 1213, 1208, 2580, 2528, 1208,
3489      1211, 1211, 1211, 1212, 1212, 1212, 2568, 1212, 2581, 2582,
3490      1212, 1214, 1214, 1214, 2583, 1197, 2568, 1211, 2584, 2568,
3491      1206, 1216, 1216, 1216, 1217, 1217, 1217, 2585, 2586, 1214,
3492      1218, 1218, 1218, 2587, 1218, 2592, 2593, 1218, 2569, 1216,
3493      2589, 1217, 1219, 1219, 1219, 1220, 1220, 1220, 2569, 1220,
3494      2590, 2569, 1220, 1221, 1221, 1221, 1222, 1222, 1222, 1219,
3495      1224, 1224, 1224, 1225, 1225, 1225, 2591, 1225, 2594, 2589,
3496      1225, 1221, 2595, 2596, 1222, 1228, 1228, 1228, 1224, 1228,
3497
3498      2597, 2598, 1228, 1216, 1231, 1231, 1231, 1232, 1232, 1232,
3499      2599, 1232, 2590, 2600, 1232, 1237, 1237, 1237, 1238, 1238,
3500      1238, 1231, 1240, 1240, 1240, 1245, 1245, 1245, 2591, 1245,
3501      2601, 2602, 1245, 1237, 2603, 2604, 1238, 1248, 1248, 1248,
3502      1240, 2607, 1224, 1249, 1249, 1249, 2608, 1249, 2609, 2611,
3503      1249, 1252, 1252, 1252, 1248, 1253, 1253, 1253, 2612, 1253,
3504      2617, 2618, 1253, 1264, 1264, 1264, 2230, 2230, 1252, 2230,
3505      1240, 1265, 1265, 1265, 1267, 1267, 1267, 2230, 1268, 1268,
3506      1268, 1264, 1268, 2623, 2230, 1268, 1271, 1271, 1271, 1265,
3507      2627, 2628, 1267, 1272, 1272, 1272, 1274, 1274, 1274, 1277,
3508
3509      1277, 1277, 2629, 2630, 1271, 1278, 1278, 1278, 2631, 1278,
3510      2632, 1272, 1278, 2633, 1274, 2634, 1277, 1284, 1284, 1284,
3511      1285, 1285, 1285, 2544, 1287, 1287, 1287, 1290, 1290, 1290,
3512      1291, 1291, 1291, 2544, 1291, 1284, 2642, 1291, 1285, 2544,
3513      2644, 1267, 1287, 2648, 1290, 1294, 1294, 1294, 2649, 1294,
3514      2650, 2651, 1294, 1297, 1297, 1297, 1274, 1298, 1298, 1298,
3515      1300, 1300, 1300, 1301, 1301, 1301, 1302, 1302, 1302, 2652,
3516      2653, 1297, 1303, 1303, 1303, 1298, 2655, 2667, 1300, 2668,
3517      1301, 1305, 1305, 1305, 1302, 1313, 1313, 1313, 2670, 1287,
3518      1303, 1307, 1307, 1307, 2671, 1307, 2684, 2662, 1307, 1305,
3519
3520      1314, 1314, 1314, 1313, 1316, 1316, 1316, 1318, 1318, 1318,
3521      2662, 1318, 2685, 2545, 1318, 1321, 1321, 1321, 1314, 1322,
3522      1322, 1322, 1316, 2545, 2686, 1300, 1324, 1324, 1324, 2545,
3523      1305, 2687, 2689, 1321, 1325, 1325, 1325, 1322, 1325, 2690,
3524      2691, 1325, 2692, 2695, 1324, 1329, 1329, 1329, 1330, 1330,
3525      1330, 1332, 1332, 1332, 1333, 1333, 1333, 1334, 1334, 1334,
3526      1335, 1335, 1335, 1329, 1316, 2698, 1330, 2696, 2699, 1332,
3527      2700, 1333, 2663, 2701, 1334, 1336, 1336, 1336, 1335, 1338,
3528      1338, 1338, 1339, 1339, 1339, 2663, 1324, 2669, 1340, 1340,
3529      1340, 2695, 2702, 1336, 1341, 1341, 1341, 1338, 2703, 1339,
3530
3531      2669, 1332, 2696, 2704, 1334, 1340, 1342, 1342, 1342, 1344,
3532      1344, 1344, 1341, 1349, 1349, 1349, 1340, 1349, 2672, 2705,
3533      1349, 1352, 1352, 1352, 1342, 2706, 2707, 1344, 1353, 1353,
3534      1353, 2672, 1353, 2708, 2709, 1353, 2710, 2713, 1352, 1356,
3535      1356, 1356, 1357, 1357, 1357, 2714, 1338, 1359, 1359, 1359,
3536      1362, 1362, 1362, 1363, 1363, 1363, 2717, 1356, 2723, 2719,
3537      1357, 1365, 1365, 1365, 2724, 1359, 2732, 2733, 1362, 2719,
3538      2720, 1363, 1370, 1370, 1370, 1344, 1374, 1374, 1374, 1365,
3539      2720, 1375, 1375, 1375, 1377, 1377, 1377, 2734, 2735, 1370,
3540      2736, 1383, 1383, 1383, 1374, 1384, 1384, 1384, 1359, 1375,
3541
3542      2737, 2738, 1377, 1379, 1379, 1379, 2739, 1379, 1365, 1383,
3543      1379, 2740, 2744, 1384, 1386, 1386, 1386, 1388, 1388, 1388,
3544      2747, 1388, 2748, 2749, 1388, 1391, 1391, 1391, 2750, 1392,
3545      1392, 1392, 1386, 1392, 2751, 2752, 1392, 1393, 1393, 1393,
3546      2753, 2756, 1391, 2760, 2761, 1377, 1394, 1394, 1394, 1395,
3547      1395, 1395, 2762, 1395, 1393, 2763, 1395, 1397, 1397, 1397,
3548      1399, 1399, 1399, 1394, 1400, 1400, 1400, 1402, 1402, 1402,
3549      1403, 1403, 1403, 2764, 1397, 1386, 2765, 2766, 1399, 1404,
3550      1404, 1404, 1400, 1404, 2767, 1402, 1404, 1403, 1405, 1405,
3551      1405, 1406, 1406, 1406, 2768, 1406, 2769, 2770, 1406, 1408,
3552
3553      1408, 1408, 1409, 1409, 1409, 1405, 1411, 1411, 1411, 1413,
3554      1413, 1413, 2771, 1413, 2787, 2774, 1413, 1408, 2788, 2789,
3555      1409, 1416, 1416, 1416, 1411, 2774, 2790, 1402, 1417, 1417,
3556      1417, 1419, 1419, 1419, 1422, 1422, 1422, 2775, 1422, 1416,
3557      2791, 1422, 1426, 1426, 1426, 2792, 1417, 2775, 2793, 1419,
3558      1427, 1427, 1427, 1429, 1429, 1429, 2794, 1431, 1431, 1431,
3559      1426, 1431, 2800, 2796, 1431, 1435, 1435, 1435, 1427, 2801,
3560      2802, 1429, 2805, 1411, 1436, 1436, 1436, 1437, 1437, 1437,
3561      2806, 2807, 1435, 1439, 1439, 1439, 1441, 1441, 1441, 1442,
3562      1442, 1442, 1436, 1442, 2808, 1437, 1442, 2796, 1419, 2811,
3563
3564      2818, 1439, 2819, 1441, 1445, 1445, 1445, 1447, 1447, 1447,
3565      1448, 1448, 1448, 2820, 1429, 1450, 1450, 1450, 1452, 1452,
3566      1452, 1445, 1454, 1454, 1454, 1447, 2821, 2825, 1448, 1455,
3567      1455, 1455, 2826, 1450, 2834, 1452, 1457, 1457, 1457, 2835,
3568      1454, 1459, 1459, 1459, 1439, 2836, 2837, 1455, 1465, 1465,
3569      1465, 1503, 1503, 1503, 1457, 1503, 2838, 2839, 1503, 1459,
3570      1459, 2840, 1450, 2841, 2847, 1445, 1465, 1508, 1508, 1508,
3571      2848, 1508, 2850, 2851, 1508, 1512, 1512, 1512, 1514, 1514,
3572      1514, 2853, 2854, 1457, 1515, 1515, 1515, 1518, 1518, 1518,
3573      1519, 1519, 1519, 1512, 1519, 1514, 2855, 1519, 2856, 1524,
3574
3575      1524, 1524, 1515, 1524, 2857, 1518, 1524, 1527, 1527, 1527,
3576      1528, 1528, 1528, 2858, 1528, 2859, 2860, 1528, 2861, 1531,
3577      1531, 1531, 2862, 1531, 2863, 1527, 1531, 1534, 1534, 1534,
3578      1535, 1535, 1535, 2864, 1535, 2865, 1512, 1535, 1540, 1540,
3579      1540, 1542, 1542, 1542, 1518, 1534, 1544, 1544, 1544, 2868,
3580      2869, 1515, 2870, 2871, 1527, 1540, 1547, 1547, 1547, 1542,
3581      1548, 1548, 1548, 1544, 1548, 2879, 2880, 1548, 1549, 1549,
3582      1549, 2882, 1549, 1547, 1534, 1549, 1558, 1558, 1558, 1563,
3583      1563, 1563, 1564, 1564, 1564, 1567, 1567, 1567, 1568, 1568,
3584      1568, 2883, 1568, 1558, 2884, 1568, 1542, 1563, 2886, 2894,
3585
3586      1564, 2895, 1567, 1570, 1570, 1570, 1572, 1572, 1572, 1575,
3587      1575, 1575, 1576, 1576, 1576, 2897, 1576, 2898, 2899, 1576,
3588      1570, 1577, 1577, 1577, 1572, 2901, 1575, 2888, 1578, 1578,
3589      1578, 1579, 1579, 1579, 1564, 1579, 2906, 2907, 1579, 1577,
3590      1580, 1580, 1580, 2908, 1563, 1578, 1585, 1585, 1585, 1587,
3591      1587, 1587, 1588, 1588, 1588, 1880, 1880, 1880, 1580, 1589,
3592      1589, 1589, 2909, 2911, 1585, 2231, 2231, 1587, 2231, 1588,
3593      2888, 2912, 1572, 1590, 1590, 1590, 2231, 1589, 1591, 1591,
3594      1591, 2916, 1591, 2231, 2918, 1591, 2919, 1577, 2921, 2922,
3595      1590, 1593, 1593, 1593, 1594, 1594, 1594, 2927, 1580, 2928,
3596
3597      1595, 1595, 1595, 1585, 1595, 2929, 1587, 1595, 2930, 1593,
3598      1589, 1594, 1597, 1597, 1597, 1599, 1599, 1599, 1602, 1602,
3599      1602, 2931, 1602, 2932, 2933, 1602, 1605, 1605, 1605, 2934,
3600      1597, 2935, 1599, 2936, 1607, 1607, 1607, 1610, 1610, 1610,
3601      1615, 1615, 1615, 1605, 2937, 2938, 1616, 1616, 1616, 2939,
3602      1616, 1593, 1607, 1616, 2940, 1610, 2941, 1615, 1620, 1620,
3603      1620, 1622, 1622, 1622, 1623, 1623, 1623, 1625, 1625, 1625,
3604      2942, 1625, 2943, 1597, 1625, 2947, 1620, 2948, 1622, 1628,
3605      1628, 1628, 1623, 1629, 1629, 1629, 2949, 1629, 2950, 2953,
3606      1629, 2954, 2955, 1630, 1630, 1630, 1628, 1630, 1607, 2956,
3607
3608      1630, 2957, 2958, 1610, 1634, 1634, 1634, 1620, 1635, 1635,
3609      1635, 2963, 1635, 2960, 2962, 1635, 1637, 1637, 1637, 2967,
3610      2968, 1634, 2963, 1638, 1638, 1638, 1623, 1638, 2962, 2970,
3611      1638, 1641, 1641, 1641, 1637, 1641, 2971, 2973, 1641, 1645,
3612      1645, 1645, 1647, 1647, 1647, 1651, 1651, 1651, 1653, 1653,
3613      1653, 1654, 1654, 1654, 1655, 1655, 1655, 1645, 1655, 2960,
3614      1647, 1655, 2975, 1651, 2978, 1653, 1637, 2979, 1654, 1656,
3615      1656, 1656, 1658, 1658, 1658, 1659, 1659, 1659, 2985, 1659,
3616      2987, 2989, 1659, 1662, 1662, 1662, 2981, 1656, 3000, 1658,
3617      1664, 1664, 1664, 1665, 1665, 1665, 3002, 1665, 2981, 3004,
3618
3619      1665, 1662, 1666, 1666, 1666, 1645, 3005, 1664, 1647, 1651,
3620      1667, 1667, 1667, 1670, 1670, 1670, 1884, 1884, 1884, 1666,
3621      1715, 1715, 1715, 1716, 1716, 1716, 2982, 2994, 1667, 2995,
3622      3008, 1670, 1662, 1656, 1717, 1717, 1717, 1715, 2982, 2994,
3623      1716, 2995, 1718, 1718, 1718, 1720, 1720, 1720, 1721, 1721,
3624      1721, 1717, 1721, 3009, 3012, 1721, 1722, 1722, 1722, 1667,
3625      1718, 2966, 1720, 3014, 1670, 1725, 1725, 1725, 1726, 1726,
3626      1726, 1727, 1727, 1727, 1722, 1728, 1728, 1728, 1729, 1729,
3627      1729, 1670, 2966, 1725, 3016, 1726, 3018, 2969, 1727, 1730,
3628      1730, 1730, 3019, 1728, 3021, 2966, 1729, 3022, 1717, 1731,
3629
3630      1731, 1731, 1732, 1732, 1732, 2969, 1730, 3027, 3027, 1718,
3631      1733, 1733, 1733, 1725, 1733, 1722, 1731, 1733, 2969, 1732,
3632      1734, 1734, 1734, 1735, 1735, 1735, 3028, 1737, 1737, 1737,
3633      3025, 1738, 1738, 1738, 3030, 1738, 3033, 1734, 1738, 3026,
3634      1728, 1735, 3034, 1729, 1737, 1739, 1739, 1739, 1741, 1741,
3635      1741, 3035, 1741, 3026, 3038, 1741, 3039, 1731, 1746, 1746,
3636      1746, 3029, 1739, 1750, 1750, 1750, 1751, 1751, 1751, 3035,
3637      1751, 3025, 3029, 1751, 3047, 1746, 1753, 1753, 1753, 3049,
3638      1750, 3040, 3046, 1735, 1756, 1756, 1756, 1757, 1757, 1757,
3639      1760, 1760, 1760, 1753, 1760, 3048, 3040, 1760, 1763, 1763,
3640
3641      1763, 3046, 1756, 3053, 3054, 1757, 1764, 1764, 1764, 1765,
3642      1765, 1765, 3056, 1765, 3048, 1763, 1765, 1767, 1767, 1767,
3643      1770, 1770, 1770, 1764, 1770, 3057, 3059, 1770, 1773, 1773,
3644      1773, 3056, 1774, 1774, 1774, 1767, 1774, 3061, 3062, 1774,
3645      3063, 3058, 1757, 1777, 1777, 1777, 1773, 1782, 1782, 1782,
3646      1756, 1784, 1784, 1784, 1785, 1785, 1785, 1787, 1787, 1787,
3647      3058, 1777, 1796, 1796, 1796, 1782, 1786, 1786, 1786, 1784,
3648      1786, 1785, 3064, 1786, 1773, 1787, 1788, 1788, 1788, 1796,
3649      1788, 3065, 3066, 1788, 1792, 1792, 1792, 1793, 1793, 1793,
3650      3074, 1793, 3075, 3076, 1793, 3078, 3079, 1784, 1797, 1797,
3651
3652      1797, 3081, 1792, 1799, 1799, 1799, 3082, 1800, 1800, 1800,
3653      1777, 1800, 3083, 3085, 1800, 1787, 1797, 1801, 1801, 1801,
3654      1799, 1803, 1803, 1803, 1804, 1804, 1804, 3090, 1804, 3091,
3655      3092, 1804, 3093, 3094, 1801, 1806, 1806, 1806, 1803, 1809,
3656      1809, 1809, 1814, 1814, 1814, 3095, 1814, 3096, 3097, 1814,
3657      1792, 3100, 3101, 1806, 1820, 1820, 1820, 1809, 1822, 1822,
3658      1822, 3102, 1797, 1823, 1823, 1823, 3103, 1823, 3104, 3105,
3659      1823, 3108, 1820, 3109, 3110, 1822, 1824, 1824, 1824, 1826,
3660      1826, 1826, 3111, 1826, 3112, 3113, 1826, 3115, 1830, 1830,
3661      1830, 1809, 1830, 3116, 1824, 1830, 1834, 1834, 1834, 1836,
3662
3663      1836, 1836, 1838, 1838, 1838, 1820, 1839, 1839, 1839, 1840,
3664      1840, 1840, 3117, 3118, 1834, 3119, 3120, 1836, 3121, 3128,
3665      1838, 3126, 3129, 1839, 3130, 3127, 1840, 1841, 1841, 1841,
3666      1842, 1842, 1842, 3126, 1844, 1844, 1844, 3127, 1845, 1845,
3667      1845, 3131, 1845, 3132, 1841, 1845, 3133, 3139, 1842, 3140,
3668      1836, 1844, 3141, 1838, 1846, 1846, 1846, 1834, 1846, 3142,
3669      3143, 1846, 1849, 1849, 1849, 1851, 1851, 1851, 3144, 1851,
3670      3148, 3149, 1851, 3151, 3153, 1840, 3154, 1842, 3156, 3157,
3671      1849, 1856, 1856, 1856, 1858, 1858, 1858, 3158, 1858, 3159,
3672      3160, 1858, 3161, 1861, 1861, 1861, 1862, 1862, 1862, 1856,
3673
3674      1862, 3154, 3162, 1862, 1863, 1863, 1863, 3163, 3164, 1849,
3675      1861, 1868, 1868, 1868, 1885, 1885, 1885, 1886, 1886, 1886,
3676      3165, 3166, 1863, 1888, 1888, 1888, 3167, 3168, 1868, 1897,
3677      1897, 1897, 1856, 1898, 1898, 1898, 1900, 1900, 1900, 1902,
3678      1902, 1902, 1903, 1903, 1903, 3169, 1903, 3170, 3171, 1903,
3679      1904, 1904, 1904, 3172, 3173, 1863, 1902, 1905, 1905, 1905,
3680      3174, 1905, 3175, 3176, 1905, 3177, 3180, 1904, 1907, 1907,
3681      1907, 1909, 1909, 1909, 3181, 1909, 3183, 3184, 1909, 1912,
3682      1912, 1912, 1914, 1914, 1914, 3185, 1907, 1915, 1915, 1915,
3683      1916, 1916, 1916, 3186, 1917, 1917, 1917, 1912, 1917, 1914,
3684
3685      3187, 1917, 1918, 1918, 1918, 1915, 3188, 1916, 1919, 1919,
3686      1919, 3189, 1919, 3182, 3190, 1919, 1922, 1922, 1922, 1918,
3687      1920, 1920, 1920, 1921, 1921, 1921, 1924, 1924, 1924, 3191,
3688      1912, 3192, 3182, 1922, 1907, 1923, 1923, 1923, 1920, 1923,
3689      3193, 1921, 1923, 1924, 3194, 1925, 1925, 1925, 1915, 1925,
3690      3195, 3196, 1925, 1928, 1928, 1928, 1929, 1929, 1929, 3197,
3691      1929, 3198, 3199, 1929, 1930, 1930, 1930, 1932, 1932, 1932,
3692      1928, 1932, 3200, 3201, 1932, 1935, 1935, 1935, 3202, 1936,
3693      1936, 1936, 1930, 1936, 3203, 1920, 1936, 3204, 1921, 1940,
3694      1940, 1940, 1935, 1941, 1941, 1941, 3207, 1941, 3208, 3210,
3695
3696      1941, 1942, 1942, 1942, 3211, 3213, 1940, 1945, 1945, 1945,
3697      3214, 1945, 3215, 3216, 1945, 1930, 3207, 3217, 1942, 1949,
3698      1949, 1949, 1950, 1950, 1950, 3218, 1950, 3219, 3220, 1950,
3699      1953, 1953, 1953, 1954, 1954, 1954, 1949, 1957, 1957, 1957,
3700      1958, 1958, 1958, 3221, 1958, 3222, 3223, 1958, 1953, 3224,
3701      3225, 1954, 3226, 3227, 1957, 1959, 1959, 1959, 3228, 1959,
3702      3229, 3231, 1959, 3233, 1963, 1963, 1963, 1965, 1965, 1965,
3703      1967, 1967, 1967, 1968, 1968, 1968, 1970, 1970, 1970, 3235,
3704      3236, 1953, 1963, 1973, 1973, 1973, 1954, 3237, 1967, 3238,
3705      3239, 1968, 3240, 1970, 1976, 1976, 1976, 3230, 1977, 1977,
3706
3707      1977, 1973, 1977, 3230, 3242, 1977, 1980, 1980, 1980, 1982,
3708      1982, 1982, 1976, 1983, 1983, 1983, 1985, 1985, 1985, 1990,
3709      1990, 1990, 1970, 1968, 1980, 3243, 3245, 1982, 1967, 3246,
3710      1983, 1984, 1984, 1984, 1985, 1984, 1990, 3248, 1984, 3249,
3711      1987, 1987, 1987, 1976, 1987, 3254, 3251, 1987, 3255, 1991,
3712      1991, 1991, 1980, 1991, 3256, 3257, 1991, 1993, 1993, 1993,
3713      3251, 1993, 3259, 1985, 1993, 1997, 1997, 1997, 2000, 2000,
3714      2000, 2001, 2001, 2001, 2002, 2002, 2002, 2004, 2004, 2004,
3715      2009, 2009, 2009, 1997, 3261, 2000, 2011, 2011, 2011, 2001,
3716      2011, 3263, 3265, 2011, 2014, 2014, 2014, 3267, 2009, 2017,
3717
3718      2017, 2017, 2019, 2019, 2019, 2021, 2021, 2021, 2023, 2023,
3719      2023, 3268, 2014, 2024, 2024, 2024, 2017, 2025, 2025, 2025,
3720      2019, 2025, 3269, 2021, 2025, 3270, 2023, 2026, 2026, 2026,
3721      2024, 3271, 2001, 2027, 2027, 2027, 2028, 2028, 2028, 3272,
3722      2028, 3273, 3274, 2028, 2026, 2009, 2029, 2029, 2029, 3276,
3723      2027, 2030, 2030, 2030, 3278, 2031, 2031, 2031, 3280, 2031,
3724      3281, 2019, 2031, 3282, 2029, 2034, 2034, 2034, 2030, 2038,
3725      2038, 2038, 2023, 2026, 2039, 2039, 2039, 2048, 2048, 2048,
3726      3283, 2048, 3298, 2034, 2048, 1481, 3298, 2038, 2051, 2051,
3727      2051, 2039, 2055, 2055, 2055, 3300, 3318, 2030, 1479, 2029,
3728
3729      2056, 2056, 2056, 3300, 2056, 3318, 2051, 2056, 1478, 2055,
3730      2057, 2057, 2057, 2062, 2062, 2062, 3292, 3293, 2034, 2063,
3731      2063, 2063, 2064, 2064, 2064, 2066, 2066, 2066, 2071, 2071,
3732      2071, 2072, 2072, 2072, 2051, 2073, 2073, 2073, 2074, 2074,
3733      2074, 2076, 2076, 2076, 2080, 2080, 2080, 2081, 2081, 2081,
3734      2083, 2083, 2083, 2084, 2084, 2084, 2085, 2085, 2085, 2087,
3735      2087, 2087, 3304, 2087, 3292, 3293, 2087, 2090, 2090, 2090,
3736      3284, 2090, 3285, 3324, 2090, 2094, 2094, 2094, 2096, 2096,
3737      2096, 2098, 2098, 2098, 2074, 2099, 2099, 2099, 3294, 2099,
3738      1477, 3296, 2099, 2094, 3295, 3306, 2096, 3297, 2098, 2100,
3739
3740      2100, 2100, 2085, 2101, 2101, 2101, 3284, 2101, 3285, 3304,
3741      2101, 2104, 2104, 2104, 3307, 2104, 3324, 2100, 2104, 2107,
3742      2107, 2107, 2108, 2108, 2108, 3301, 2094, 2109, 2109, 2109,
3743      3314, 2109, 3306, 3301, 2109, 3296, 3294, 2107, 2096, 2107,
3744      2108, 3297, 3295, 2112, 2112, 2112, 2113, 2113, 2113, 3302,
3745      2113, 3307, 3305, 2113, 2117, 2117, 2117, 3302, 2108, 2100,
3746      2112, 2114, 2114, 2114, 3315, 2114, 3303, 3314, 2114, 2119,
3747      2119, 2119, 2117, 2119, 3303, 1475, 2119, 2125, 2125, 2125,
3748      3390, 2125, 3308, 3309, 2125, 2128, 2128, 2128, 2129, 2129,
3749      2129, 3310, 2129, 1473, 3390, 2129, 2133, 2133, 2133, 3305,
3750
3751      2133, 3315, 2128, 2133, 2137, 2137, 2137, 2138, 2138, 2138,
3752      2139, 2139, 2139, 3311, 3299, 2142, 2142, 2142, 3299, 2142,
3753      2117, 2137, 2142, 3308, 3309, 2138, 3310, 3312, 2139, 2147,
3754      2147, 2147, 2148, 2148, 2148, 2150, 2150, 2150, 2151, 2151,
3755      2151, 3320, 2151, 3350, 3313, 2151, 1472, 2147, 3311, 3352,
3756      2148, 3350, 2150, 3321, 2156, 2156, 2156, 2157, 2157, 2157,
3757      2159, 2159, 2159, 2161, 2161, 2161, 3351, 2161, 1471, 3316,
3758      2161, 2138, 2156, 3312, 3351, 2157, 3320, 3317, 2159, 2164,
3759      2164, 2164, 3319, 2148, 2147, 2166, 2166, 2166, 3321, 2166,
3760      3313, 3319, 2166, 2172, 2172, 2172, 3352, 2164, 2173, 2173,
3761
3762      2173, 3316, 2173, 3326, 1470, 2173, 2174, 2174, 2174, 3317,
3763      2172, 2175, 2175, 2175, 2176, 2176, 2176, 3322, 3323, 2157,
3764      2156, 2177, 2177, 2177, 2174, 2178, 2178, 2178, 2179, 2179,
3765      2179, 3327, 2164, 2180, 2180, 2180, 2181, 2181, 2181, 2182,
3766      2182, 2182, 2178, 3334, 1469, 2179, 2185, 2185, 2185, 3326,
3767      2180, 3322, 3323, 2181, 2186, 2186, 2186, 2182, 2186, 1468,
3768      1467, 2186, 1464, 2185, 2188, 2188, 2188, 2190, 2190, 2190,
3769      2174, 2193, 2193, 2193, 2194, 2194, 2194, 3327, 2194, 2179,
3770      3334, 2194, 2188, 3330, 3331, 2190, 2197, 2197, 2197, 2193,
3771      3328, 3325, 2198, 2198, 2198, 2181, 2198, 2180, 3338, 2198,
3772
3773      2203, 2203, 2203, 2197, 2182, 2200, 2200, 2200, 3336, 2200,
3774      3335, 3340, 2200, 2204, 2204, 2204, 3330, 3331, 2203, 2205,
3775      2205, 2205, 3337, 2205, 3339, 3328, 2205, 2207, 2207, 2207,
3776      2204, 2211, 2211, 2211, 3325, 2213, 2213, 2213, 3329, 2214,
3777      2214, 2214, 1463, 2214, 3338, 2207, 2214, 3335, 3340, 2211,
3778      3336, 2203, 2213, 2225, 2225, 2225, 2226, 2226, 2226, 2229,
3779      2229, 2229, 1462, 2229, 3337, 3358, 2229, 2232, 2232, 2232,
3780      3339, 2225, 3342, 3329, 2226, 2233, 2233, 2233, 2207, 2234,
3781      2234, 2234, 2237, 2237, 2237, 2238, 2238, 2238, 2240, 2240,
3782      2240, 2241, 2241, 2241, 2243, 2243, 2243, 2244, 2244, 2244,
3783
3784      3358, 3342, 2225, 2245, 2245, 2245, 2246, 2246, 2246, 2249,
3785      2249, 2249, 2250, 2250, 2250, 2253, 2253, 2253, 2254, 2254,
3786      2254, 2256, 2256, 2256, 2257, 2257, 2257, 2261, 2261, 2261,
3787      2262, 2262, 2262, 2263, 2263, 2263, 2264, 2264, 2264, 2265,
3788      2265, 2265, 3341, 2265, 3356, 2261, 2265, 2268, 2268, 2268,
3789      3346, 2263, 3391, 2264, 2269, 2269, 2269, 2270, 2270, 2270,
3790      2271, 2271, 2271, 3391, 2271, 2268, 3357, 2271, 2274, 2274,
3791      2274, 3343, 2269, 3332, 3364, 2270, 2279, 2279, 2279, 3341,
3792      2279, 3333, 3332, 2279, 3346, 3356, 2274, 2282, 2282, 2282,
3793      3333, 2269, 2286, 2286, 2286, 2288, 2288, 2288, 2268, 2263,
3794
3795      3343, 2287, 2287, 2287, 2282, 2287, 3364, 3357, 2287, 2286,
3796      2289, 2289, 2289, 2288, 2294, 2294, 2294, 3353, 2270, 2295,
3797      2295, 2295, 2296, 2296, 2296, 2297, 2297, 2297, 2289, 2298,
3798      2298, 2298, 3344, 2298, 3347, 3354, 2298, 2295, 1453, 1451,
3799      2296, 3344, 2297, 2301, 2301, 2301, 2302, 2302, 2302, 2303,
3800      2303, 2303, 2304, 2304, 2304, 2305, 2305, 2305, 3345, 3348,
3801      2301, 1446, 3355, 2302, 3353, 3372, 2303, 3345, 3347, 2304,
3802      3349, 2297, 3354, 2305, 2306, 2306, 2306, 3360, 1440, 2295,
3803      2307, 2307, 2307, 2308, 2308, 2308, 2312, 2312, 2312, 2313,
3804      2313, 2313, 2306, 2313, 1434, 3362, 2313, 2307, 2301, 3355,
3805
3806      2303, 2308, 2316, 2316, 2316, 3348, 3372, 2302, 2317, 2317,
3807      2317, 2318, 2318, 2318, 3363, 2305, 3349, 2319, 2319, 2319,
3808      2316, 2319, 1430, 3360, 2319, 2320, 2320, 2320, 2318, 2321,
3809      2321, 2321, 3362, 3361, 2308, 2322, 2322, 2322, 2306, 2323,
3810      2323, 2323, 2320, 2324, 2324, 2324, 2321, 2325, 2325, 2325,
3811      3359, 3363, 2322, 2329, 2329, 2329, 3365, 2323, 2326, 2326,
3812      2326, 2316, 2326, 3368, 2325, 2326, 2330, 2330, 2330, 3366,
3813      2329, 2334, 2334, 2334, 2336, 2336, 2336, 3366, 2336, 3361,
3814      2321, 2336, 1425, 3369, 2330, 3359, 2322, 1421, 3365, 2334,
3815      2340, 2340, 2340, 2341, 2341, 2341, 3370, 2341, 1420, 1412,
3816
3817      2341, 3376, 2345, 2345, 2345, 2349, 2349, 2349, 2340, 2349,
3818      3368, 1407, 2349, 2362, 2362, 2362, 2363, 2363, 2363, 2329,
3819      2345, 2376, 2376, 2376, 2377, 2377, 2377, 2380, 2380, 2380,
3820      3369, 2362, 3373, 3370, 2363, 2381, 2381, 2381, 2383, 2383,
3821      2383, 2384, 2384, 2384, 2387, 2387, 2387, 3376, 2345, 2390,
3822      2390, 2390, 2394, 2394, 2394, 2396, 2396, 2396, 2397, 2397,
3823      2397, 1398, 2398, 2398, 2398, 2399, 2399, 2399, 3371, 2399,
3824      2394, 3374, 2399, 3373, 2362, 1396, 2397, 1387, 2363, 2398,
3825      2400, 2400, 2400, 2401, 2401, 2401, 2402, 2402, 2402, 2403,
3826      2403, 2403, 2410, 2410, 2410, 2411, 2411, 2411, 2400, 2411,
3827
3828      3367, 2401, 2411, 3375, 2402, 3371, 3374, 2403, 3367, 2410,
3829      2413, 2413, 2413, 2415, 2415, 2415, 3380, 2415, 1382, 3381,
3830      2415, 2418, 2418, 2418, 2422, 2422, 2422, 2413, 2423, 2423,
3831      2423, 2424, 2424, 2424, 2425, 2425, 2425, 3378, 3375, 2418,
3832      3377, 2422, 2427, 2427, 2427, 3386, 1378, 2401, 3380, 2424,
3833      3379, 3381, 2425, 2402, 2428, 2428, 2428, 1373, 2428, 2427,
3834      3384, 2428, 2432, 2432, 2432, 2433, 2433, 2433, 2434, 2434,
3835      2434, 3382, 2434, 1372, 3378, 2434, 2435, 2435, 2435, 2432,
3836      3382, 1371, 2433, 2436, 2436, 2436, 3377, 3379, 2424, 2437,
3837      2437, 2437, 3384, 3386, 2435, 2438, 2438, 2438, 1369, 2438,
3838
3839      1368, 2436, 2438, 2439, 2439, 2439, 2437, 2442, 2442, 2442,
3840      2443, 2443, 2443, 2444, 2444, 2444, 2445, 2445, 2445, 3385,
3841      2445, 2439, 3388, 2445, 2442, 2448, 2448, 2448, 2449, 2449,
3842      2449, 2444, 2449, 3389, 3383, 2449, 2450, 2450, 2450, 2451,
3843      2451, 2451, 2448, 3383, 2436, 2452, 2452, 2452, 2454, 2454,
3844      2454, 3385, 1366, 2450, 3388, 1361, 2451, 2455, 2455, 2455,
3845      2456, 2456, 2456, 2452, 2456, 3389, 1360, 2456, 2457, 2457,
3846      2457, 2461, 2461, 2461, 2455, 2464, 2464, 2464, 2477, 2477,
3847      2477, 2495, 2495, 2495, 1355, 2457, 2496, 2496, 2496, 2461,
3848      2501, 2501, 2501, 2464, 1354, 1348, 2477, 2504, 2504, 2504,
3849
3850      2505, 2505, 2505, 2507, 2507, 2507, 1347, 2507, 1346, 3387,
3851      2507, 2510, 2510, 2510, 2504, 2512, 2512, 2512, 2505, 2513,
3852      2513, 2513, 1345, 2457, 1328, 2517, 2517, 2517, 1317, 2510,
3853      2534, 2534, 2534, 2512, 2523, 2523, 2523, 2513, 2477, 1312,
3854      1311, 2464, 2517, 2519, 2519, 2519, 1310, 2519, 2534, 1306,
3855      2519, 2523, 2524, 2524, 2524, 1289, 2524, 3387, 1288, 2524,
3856      2531, 2531, 2531, 2532, 2532, 2532, 2533, 2533, 2533, 1283,
3857      2533, 1282, 1281, 2533, 1276, 1275, 2512, 2531, 1262, 1261,
3858      2532, 1260, 2535, 2535, 2535, 2513, 2535, 1259, 1258, 2535,
3859      2541, 2541, 2541, 2542, 2542, 2542, 1257, 2542, 1256, 1255,
3860
3861      2542, 2543, 2543, 2543, 1254, 2543, 1244, 2541, 2543, 2546,
3862      2546, 2546, 2548, 2548, 2548, 2549, 2549, 2549, 1243, 2549,
3863      1242, 1241, 2549, 2552, 2552, 2552, 1236, 2546, 1235, 1234,
3864      2548, 2555, 2555, 2555, 2556, 2556, 2556, 1233, 2557, 2557,
3865      2557, 2552, 2557, 1210, 1209, 2557, 1202, 1198, 2555, 1193,
3866      1192, 2556, 2558, 2558, 2558, 2560, 2560, 2560, 1187, 2560,
3867      1184, 1183, 2560, 2563, 2563, 2563, 2565, 2565, 2565, 1180,
3868      2558, 2564, 2564, 2564, 2548, 2564, 1179, 1178, 2564, 1177,
3869      2563, 1176, 1175, 2565, 2566, 2566, 2566, 1174, 2566, 1173,
3870      1172, 2566, 2567, 2567, 2567, 1171, 2567, 1170, 1169, 2567,
3871
3872      2570, 2570, 2570, 2571, 2571, 2571, 2572, 2572, 2572, 2575,
3873      2575, 2575, 2576, 2576, 2576, 1168, 1167, 2570, 1164, 1163,
3874      2571, 1162, 1161, 2572, 2577, 2577, 2577, 2575, 2588, 2588,
3875      2588, 2605, 2605, 2605, 2606, 2606, 2606, 2610, 2610, 2610,
3876      1159, 2577, 2613, 2613, 2613, 1158, 2588, 2614, 2614, 2614,
3877      1157, 2614, 1156, 1155, 2614, 2615, 2615, 2615, 1154, 2613,
3878      1153, 2570, 1152, 2616, 2616, 2616, 2619, 2619, 2619, 2620,
3879      2620, 2620, 1151, 2615, 1150, 2621, 2621, 2621, 1149, 2621,
3880      2575, 2616, 2621, 2619, 1148, 1147, 2620, 1146, 2588, 2622,
3881      2622, 2622, 2624, 2624, 2624, 1145, 2624, 1139, 1135, 2624,
3882
3883      2635, 2635, 2635, 2636, 2636, 2636, 2622, 2636, 1132, 1131,
3884      2636, 2637, 2637, 2637, 2616, 2637, 1130, 2635, 2637, 2640,
3885      2640, 2640, 2615, 2643, 2643, 2643, 2645, 2645, 2645, 1128,
3886      2645, 1124, 1121, 2645, 2654, 2654, 2654, 2640, 1120, 1119,
3887      2643, 2656, 2656, 2656, 2657, 2657, 2657, 1115, 2657, 1114,
3888      1111, 2657, 2654, 2658, 2658, 2658, 1107, 2658, 2656, 1106,
3889      2658, 2661, 2661, 2661, 1103, 2661, 1100, 1097, 2661, 2664,
3890      2664, 2664, 1096, 2664, 1091, 1083, 2664, 2673, 2673, 2673,
3891      2674, 2674, 2674, 2675, 2675, 2675, 1082, 2675, 1081, 1079,
3892      2675, 2676, 2676, 2676, 2673, 1075, 1072, 2674, 2677, 2677,
3893
3894      2677, 1069, 2677, 1066, 1065, 2677, 1064, 1063, 2676, 2678,
3895      2678, 2678, 2679, 2679, 2679, 2680, 2680, 2680, 2681, 2681,
3896      2681, 2682, 2682, 2682, 1062, 1061, 2678, 1060, 1059, 2679,
3897      2694, 2694, 2694, 2680, 2697, 2697, 2697, 2673, 2682, 2683,
3898      2683, 2683, 1056, 2683, 1055, 1052, 2683, 1051, 2694, 1047,
3899      1045, 2697, 2697, 2711, 2711, 2711, 2712, 2712, 2712, 2715,
3900      2715, 2715, 2716, 2716, 2716, 2718, 2718, 2718, 1042, 2718,
3901      1041, 1038, 2718, 2721, 2721, 2721, 1037, 2680, 2722, 2722,
3902      2722, 2694, 2725, 2725, 2725, 2726, 2726, 2726, 1034, 2726,
3903      1027, 2721, 2726, 2727, 2727, 2727, 2722, 2727, 1024, 2725,
3904
3905      2727, 2730, 2730, 2730, 2731, 2731, 2731, 1023, 2731, 1022,
3906      1019, 2731, 2741, 2741, 2741, 1015, 2741, 1008, 2730, 2741,
3907      2745, 2745, 2745, 2746, 2746, 2746, 1007, 2746, 1003, 1002,
3908      2746, 2754, 2754, 2754, 2757, 2757, 2757, 2745, 2757, 2721,
3909      1001, 2757, 2772, 2772, 2772,  998, 2773, 2773, 2773, 2754,
3910      2773,  997,  996, 2773, 2776, 2776, 2776,  989, 2776, 2772,
3911       988, 2776, 2779, 2779, 2779, 2780, 2780, 2780,  987, 2780,
3912       986,  985, 2780, 2781, 2781, 2781, 2782, 2782, 2782, 2779,
3913      2782,  984,  983, 2782, 2783, 2783, 2783, 2784, 2784, 2784,
3914      2781, 2784,  982,  981, 2784, 2795, 2795, 2795, 2797, 2797,
3915
3916      2797,  980, 2783, 2798, 2798, 2798,  976, 2799, 2799, 2799,
3917       972, 2799,  949, 2795, 2799, 2797, 2797, 2812, 2812, 2812,
3918      2798, 2798, 2813, 2813, 2813, 2799, 2814, 2814, 2814, 2815,
3919      2815, 2815, 2816, 2816, 2816, 2783, 2817, 2817, 2817, 2822,
3920      2822, 2822,  946,  943, 2795, 2823, 2823, 2823, 2827, 2827,
3921      2827,  942, 2827,  935,  934, 2827,  932, 2822, 2830, 2830,
3922      2830,  931, 2830, 2823,  930, 2830, 2833, 2833, 2833, 2842,
3923      2842, 2842, 2843, 2843, 2843,  929, 2843,  928,  927, 2843,
3924      2846, 2846, 2846, 2833,  926,  925, 2842, 2866, 2866, 2866,
3925      2822, 2867, 2867, 2867,  924, 2867,  923, 2846, 2867, 2872,
3926
3927      2872, 2872,  922, 2872, 2866,  920, 2872, 2875, 2875, 2875,
3928       919, 2875,  918,  917, 2875, 2878, 2878, 2878, 2887, 2887,
3929      2887, 2889, 2889, 2889, 2890, 2890, 2890,  916, 2890,  915,
3930       914, 2890,  913, 2878,  912,  910, 2887,  909, 2889, 2889,
3931       908,  907, 2890, 2891, 2891, 2891,  906, 2891,  905,  904,
3932      2891, 2902, 2902, 2902, 2903, 2903, 2903, 2904, 2904, 2904,
3933       903, 2891, 2905, 2905, 2905, 2910, 2910, 2910, 2914, 2914,
3934      2914,  902, 2914,  898,  894, 2914,  893, 2913, 2913, 2913,
3935      2915, 2915, 2915, 2910, 2887, 2892, 2892, 2892, 2892, 2892,
3936      2892, 2892, 2892, 2892, 2913,  892, 2892, 2915, 2923, 2923,
3937
3938      2923, 2892, 2892, 2892, 2892, 2892, 2924, 2924, 2924,  891,
3939      2924,  890,  886, 2924,  884, 2923, 2926, 2926, 2926,  883,
3940      2926,  882,  881, 2926, 2925, 2925, 2925, 2951, 2951, 2951,
3941      2892, 2892, 2893, 2893, 2893, 2893, 2893, 2893, 2893, 2893,
3942      2893, 2925,  880, 2893,  879, 2951,  876,  875, 2893, 2893,
3943      2893, 2893, 2893, 2944, 2944, 2944,  873, 2944,  871,  867,
3944      2944, 2959, 2959, 2959, 2961, 2961, 2961,  866, 2961,  865,
3945       863, 2961,  860,  859, 2976, 2976, 2976, 2893, 2893, 2959,
3946       857,  856, 2961, 2964, 2964, 2964, 2964, 2964, 2964, 2964,
3947      2964, 2964, 2976,  853, 2964, 2983, 2983, 2983,  851, 2964,
3948
3949      2964, 2964, 2964, 2964, 2980, 2980, 2980,  848, 2980,  847,
3950       846, 2980, 2983, 2984, 2984, 2984,  845, 2984,  842,  841,
3951      2984, 3023, 3023, 3023, 3031, 3031, 3031,  840, 2964, 2964,
3952      2965, 2965, 2965, 2965, 2965, 2965, 2965, 2965, 2965, 3023,
3953       839, 2965, 3031, 3031,  838,  837, 2965, 2965, 2965, 2965,
3954      2965, 2990, 2990, 2990,  836, 2990,  834,  831, 2990, 2993,
3955      2993, 2993,  830, 2993,  826,  825, 2993, 3044, 3044, 3044,
3956      3045, 3045, 3045,  824,  823, 2965, 2965,  822, 3050, 3050,
3957      3050,  821, 3050,  820, 3044, 3050,  812, 3045, 3055, 3055,
3958      3055, 3060, 3060, 3060, 3073, 3073, 3073, 3077, 3077, 3077,
3959
3960      3086, 3086, 3086,  811,  808, 3055,  807,  806, 3060, 3087,
3961      3087, 3087, 3073, 3087,  805, 3077, 3087, 3086, 3088, 3088,
3962      3088, 3089, 3089, 3089,  804, 3089,  802,  801, 3089, 3098,
3963      3098, 3098, 3099, 3099, 3099, 3088, 3099,  800,  797, 3099,
3964      3106, 3106, 3106, 3107, 3107, 3107, 3098, 3107, 3077,  796,
3965      3107, 3114, 3114, 3114, 3122, 3122, 3122, 3106, 3122,  795,
3966       792, 3122,  791, 3125, 3125, 3125,  790, 3125,  787, 3114,
3967      3125, 3136, 3136, 3136,  786, 3136,  782,  780, 3136, 3145,
3968      3145, 3145,  777, 3145,  776,  775, 3145,  774, 3114, 3266,
3969      3266, 3266, 3275, 3275, 3275,  772, 3275,  769,  768, 3275,
3970
3971      3392, 3392, 3392, 3393, 3393, 3393,  767, 3266,  764,  761,
3972      3275,  757,  756,  755,  754,  751,  748,  744, 3392,  743,
3973       742, 3393, 3396, 3396, 3396, 3396, 3396, 3396, 3396, 3396,
3974      3396, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397,
3975      3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3399,
3976      3399, 3399, 3399, 3399, 3399, 3399, 3399, 3399, 3400, 3400,
3977      3400, 3400, 3400, 3400, 3400, 3400, 3400, 3401, 3401, 3401,
3978      3401, 3401, 3401, 3401, 3401, 3401, 3402, 3402, 3402, 3402,
3979      3402, 3402, 3402, 3402, 3402, 3403, 3403, 3403, 3403, 3403,
3980      3403, 3403, 3403, 3403, 3404, 3404, 3404, 3404, 3404, 3404,
3981
3982      3404, 3404, 3404, 3405, 3405, 3405, 3405, 3405, 3405, 3405,
3983      3405, 3405, 3406, 3406, 3406, 3406, 3406, 3406, 3406, 3406,
3984      3406, 3407, 3407, 3407, 3407, 3407, 3407, 3407, 3407, 3407,
3985      3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3408, 3409,
3986      3409, 3409, 3409, 3409, 3409, 3409, 3409, 3409, 3410, 3410,
3987      3410, 3410, 3410, 3410, 3410, 3410, 3410, 3411, 3411, 3411,
3988      3411, 3411, 3411, 3411, 3411, 3411, 3412, 3412, 3412, 3412,
3989      3412, 3412, 3412, 3412, 3412, 3413, 3413, 3413, 3413, 3413,
3990      3413, 3413, 3413, 3413, 3414, 3414, 3414, 3414, 3414, 3414,
3991      3414, 3414, 3414, 3415, 3415, 3415, 3415, 3415, 3415, 3415,
3992
3993      3415, 3415, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416,
3994      3416, 3417, 3417, 3417, 3417, 3417, 3417, 3417, 3417, 3417,
3995      3418, 3418, 3418, 3418, 3418, 3418, 3418, 3418, 3418, 3419,
3996      3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3420, 3420,
3997      3420, 3420, 3420, 3420, 3420, 3420, 3420, 3421, 3421, 3421,
3998      3421, 3421, 3421, 3421, 3421, 3421, 3422, 3422, 3422, 3422,
3999      3422, 3422, 3422, 3422, 3422, 3423, 3423, 3423, 3423, 3423,
4000      3423, 3423, 3423, 3423, 3424, 3424, 3424, 3424, 3424, 3424,
4001      3424, 3424, 3424, 3425, 3425, 3425, 3425, 3425, 3425, 3425,
4002      3425, 3425, 3426, 3426, 3426, 3426, 3426, 3426, 3426, 3426,
4003
4004      3426, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427,
4005      3428, 3428, 3428, 3428, 3428, 3428, 3428, 3428, 3428, 3429,
4006      3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3430, 3430,
4007      3430, 3430, 3430, 3430, 3430, 3430, 3430, 3431, 3431, 3431,
4008      3431, 3431, 3431, 3431, 3431, 3431, 3432, 3432, 3432, 3432,
4009      3432, 3432, 3432, 3432, 3432, 3433, 3433, 3433, 3433, 3433,
4010      3433, 3433, 3433, 3433, 3434, 3434, 3434, 3434, 3434, 3434,
4011      3434, 3434, 3434, 3435, 3435, 3435, 3435, 3435, 3435, 3435,
4012      3435, 3435, 3436, 3436, 3436, 3436, 3436, 3436, 3436, 3436,
4013      3436, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4014
4015      3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3439,
4016      3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3440, 3440,
4017      3440, 3440, 3440, 3440, 3440, 3440, 3440, 3441, 3441, 3441,
4018      3441, 3441, 3441, 3441, 3441, 3441, 3442, 3442, 3442, 3442,
4019      3442, 3442, 3442, 3442, 3442, 3443, 3443, 3443, 3443, 3443,
4020      3443, 3443, 3443, 3443, 3444, 3444, 3444, 3444, 3444, 3444,
4021      3444, 3444, 3444, 3445, 3445, 3445, 3445, 3445, 3445, 3445,
4022      3445, 3445, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446,
4023      3446, 3447, 3447, 3447, 3447, 3447, 3447, 3447, 3447, 3447,
4024      3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3449,
4025
4026      3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3450, 3450,
4027      3450, 3450, 3450, 3450, 3450, 3450, 3450, 3451, 3451, 3451,
4028      3451, 3451, 3451, 3451, 3451, 3451, 3452, 3452, 3452, 3452,
4029      3452, 3452, 3452, 3452, 3452, 3453, 3453, 3453, 3453, 3453,
4030      3453, 3453, 3453, 3453, 3454, 3454, 3454, 3454, 3454, 3454,
4031      3454, 3454, 3454, 3455, 3455, 3455, 3455, 3455, 3455, 3455,
4032      3455, 3455, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456,
4033      3456, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4034      3458, 3458, 3458,  741,  740,  739, 3458, 3459, 3459, 3459,
4035       738,  737,  736, 3459, 3460, 3460, 3460,  735,  734,  733,
4036
4037      3460, 3461, 3461, 3461,  731,  729,  728, 3461, 3462, 3462,
4038      3462,  725,  724,  723, 3462, 3463, 3463, 3463,  722,  721,
4039       720, 3463, 3464, 3464, 3464,  715,  714,  713, 3464, 3465,
4040      3465, 3465,  710,  709,  708, 3465, 3466, 3466, 3466,  707,
4041       704,  703, 3466, 3467, 3467, 3467,  701,  698,  697, 3467,
4042      3468, 3468, 3468,  694,  693,  692, 3468, 3469, 3469, 3469,
4043       691,  690,  689, 3469, 3470, 3470, 3470,  681,  680,  679,
4044      3470, 3471, 3471, 3471,  676,  675,  674, 3471, 3472, 3472,
4045      3472,  671,  669,  668, 3472, 3473, 3473, 3473,  664,  663,
4046       662, 3473, 3474, 3474, 3474,  659,  658,  657, 3474, 3475,
4047
4048      3475, 3475,  656,  652,  651, 3475, 3476, 3476, 3476,  650,
4049       649,  643, 3476, 3477, 3477, 3477,  642,  640,  634, 3477,
4050      3478, 3478, 3478,  633,  632,  628, 3478, 3479, 3479, 3479,
4051       625,  623,  622, 3479, 3480, 3480, 3480,  621,  617,  613,
4052      3480, 3481, 3481, 3481,  609,  608,  607, 3481, 3482, 3482,
4053      3482,  606,  602,  598, 3482, 3483, 3483, 3483,  595,  594,
4054       593, 3483, 3484, 3484, 3484,  592,  588,  582, 3484, 3485,
4055      3485, 3485,  581,  577,  573, 3485, 3486, 3486, 3486, 3486,
4056      3486, 3486, 3486,  569, 3486, 3487, 3487, 3487,  565,  558,
4057       556, 3487, 3488,  555,  551,  545, 3488, 3489, 3489, 3489,
4058
4059       544,  540,  536, 3489, 3490,  532,  531,  530, 3490, 3491,
4060      3491, 3491,  529,  528,  524, 3491, 3492,  520,  513,  509,
4061      3492, 3493, 3493, 3493,  501,  500,  499, 3493, 3494,  498,
4062       497,  493, 3494, 3495, 3495, 3495,  487,  486,  482, 3495,
4063      3496,  476,  475,  471, 3496, 3497, 3497, 3497,  465,  464,
4064       460, 3497, 3498,  454,  453,  449, 3498, 3499, 3499, 3499,
4065       445,  441,  440, 3499, 3500,  439,  435,  431, 3500, 3501,
4066      3501, 3501,  427,  423,  417, 3501, 3502,  416,  415,  411,
4067      3502, 3503, 3503, 3503,  407,  402,  401, 3503, 3504,  400,
4068       399,  395, 3504, 3505, 3505, 3505,  391,  388,  384, 3505,
4069
4070      3506,  380,  377,  374, 3506, 3507, 3507, 3507,  372,  371,
4071       369, 3507, 3508,  365,  358,  357, 3508, 3509, 3509, 3509,
4072       356,  355,  354, 3509, 3510,  350,  346,  343, 3510, 3511,
4073      3511, 3511,  342,  338,  334, 3511, 3512,  331,  330,  329,
4074      3512, 3513, 3513, 3513,  325,  319,  318, 3513, 3514,  317,
4075       313,  307, 3514, 3515, 3515, 3515,  303,  300,  299, 3515,
4076      3516,  294,  293,  289, 3516, 3517, 3517, 3517,  285,  281,
4077       277, 3517, 3518,  276,  272,  269, 3518, 3519, 3519, 3519,
4078       268,  267,  261, 3519, 3520,  260,  258,  255, 3520, 3521,
4079      3521, 3521,  243,    0,    0, 3521, 3522,    0,    0,    0,
4080
4081      3522, 3523, 3523, 3523,    0,    0,    0, 3523, 3524,    0,
4082         0,    0, 3524, 3525, 3525, 3525,    0,    0,    0, 3525,
4083      3526,    0,    0,    0, 3526, 3527, 3527, 3527,    0,    0,
4084         0, 3527, 3528,    0,    0,    0, 3528, 3529, 3529, 3529,
4085         0,    0,    0, 3529, 3530,    0,    0,    0, 3530, 3531,
4086      3531, 3531,    0,    0,    0, 3531, 3532,    0,    0,    0,
4087      3532, 3533, 3533, 3533,    0,    0,    0, 3533, 3534,    0,
4088         0,    0, 3534, 3535, 3535, 3535,    0,    0,    0, 3535,
4089      3536,    0,    0,    0, 3536, 3537, 3537, 3537,    0,    0,
4090         0, 3537, 3538,    0,    0,    0, 3538, 3539, 3539, 3539,
4091
4092         0,    0,    0, 3539, 3540,    0,    0,    0, 3540, 3541,
4093      3541, 3541,    0,    0,    0, 3541, 3542,    0,    0,    0,
4094      3542, 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543,
4095      3544,    0,    0,    0,    0, 3544, 3545, 3545, 3545,    0,
4096         0,    0, 3545, 3546, 3546, 3546, 3546,    0,    0, 3546,
4097      3546, 3547, 3547, 3547, 3547,    0, 3547,    0, 3547, 3548,
4098      3548, 3548, 3548,    0,    0, 3548, 3548, 3549, 3549, 3549,
4099         0,    0,    0, 3549, 3550, 3550, 3550, 3550,    0,    0,
4100      3550, 3550, 3551, 3551, 3551,    0,    0,    0, 3551, 3552,
4101      3552, 3552, 3552,    0,    0, 3552, 3552, 3553, 3553, 3553,
4102
4103      3553,    0, 3553,    0, 3553, 3554, 3554, 3554, 3554,    0,
4104         0, 3554, 3554, 3555, 3555, 3555, 3555,    0, 3555,    0,
4105      3555, 3556, 3556, 3556, 3556,    0,    0, 3556, 3556, 3557,
4106      3557, 3557, 3557,    0, 3557,    0, 3557, 3558, 3558, 3558,
4107      3558,    0,    0, 3558, 3558, 3559, 3559, 3559,    0,    0,
4108         0, 3559, 3560, 3560, 3560, 3560,    0,    0, 3560, 3560,
4109      3561, 3561, 3561, 3561,    0,    0, 3561, 3561, 3562, 3562,
4110      3562,    0,    0,    0, 3562, 3563, 3563, 3563, 3563,    0,
4111         0, 3563, 3563, 3564, 3564, 3564,    0,    0,    0, 3564,
4112      3565, 3565, 3565, 3565,    0,    0, 3565, 3565, 3566, 3566,
4113
4114      3566,    0,    0,    0, 3566, 3567, 3567, 3567, 3567,    0,
4115         0, 3567, 3567, 3568, 3568, 3568,    0,    0,    0, 3568,
4116      3569, 3569, 3569, 3569,    0,    0, 3569, 3569, 3570, 3570,
4117      3570,    0,    0,    0, 3570, 3571, 3571, 3571, 3571,    0,
4118         0, 3571, 3571, 3572, 3572, 3572,    0,    0,    0, 3572,
4119      3573, 3573, 3573, 3573,    0,    0, 3573, 3573, 3574, 3574,
4120      3574,    0,    0,    0, 3574, 3575, 3575, 3575, 3575,    0,
4121         0, 3575, 3575, 3576, 3576, 3576,    0,    0,    0, 3576,
4122      3577, 3577, 3577, 3577,    0,    0, 3577, 3577, 3578, 3578,
4123      3578,    0,    0,    0, 3578, 3579, 3579, 3579, 3579,    0,
4124
4125         0, 3579, 3579, 3580, 3580, 3580,    0,    0,    0, 3580,
4126      3581, 3581, 3581, 3581,    0,    0, 3581, 3581, 3582, 3582,
4127      3582,    0,    0,    0, 3582, 3583, 3583, 3583, 3583,    0,
4128         0, 3583, 3583, 3584, 3584, 3584,    0,    0,    0, 3584,
4129      3585, 3585, 3585, 3585,    0,    0, 3585, 3585, 3586, 3586,
4130      3586,    0,    0,    0, 3586, 3587, 3587, 3587, 3587,    0,
4131         0, 3587, 3587, 3588, 3588, 3588, 3588,    0, 3588,    0,
4132      3588, 3589, 3589, 3589, 3589,    0,    0, 3589, 3589, 3590,
4133      3590, 3590,    0,    0,    0, 3590, 3591, 3591, 3591, 3591,
4134         0,    0, 3591, 3591, 3592, 3592, 3592,    0,    0,    0,
4135
4136      3592, 3593, 3593, 3593, 3593,    0,    0, 3593, 3593, 3594,
4137      3594, 3594,    0,    0,    0, 3594, 3595, 3595, 3595, 3595,
4138         0,    0, 3595, 3595, 3596, 3596, 3596,    0,    0,    0,
4139      3596, 3597, 3597, 3597, 3597,    0,    0, 3597, 3597, 3598,
4140      3598, 3598,    0,    0,    0, 3598, 3599, 3599, 3599, 3599,
4141         0,    0, 3599, 3599, 3600, 3600, 3600, 3600, 3600, 3600,
4142      3600, 3600, 3600, 3601,    0, 3601,    0,    0, 3601, 3602,
4143      3602, 3602,    0,    0,    0, 3602, 3603, 3603, 3603, 3603,
4144         0,    0, 3603, 3603, 3604, 3604, 3604,    0,    0,    0,
4145      3604, 3605, 3605, 3605, 3605,    0,    0, 3605, 3605, 3606,
4146
4147      3606, 3606,    0,    0,    0, 3606, 3607, 3607, 3607, 3607,
4148         0,    0, 3607, 3607, 3608, 3608, 3608,    0,    0,    0,
4149      3608, 3609, 3609, 3609, 3609,    0,    0, 3609, 3609, 3610,
4150      3610, 3610,    0,    0,    0, 3610, 3611, 3611, 3611, 3611,
4151         0,    0, 3611, 3611, 3612, 3612, 3612, 3612,    0,    0,
4152      3612, 3612, 3613, 3613, 3613,    0,    0,    0, 3613, 3614,
4153      3614, 3614, 3614,    0,    0, 3614, 3614, 3615, 3615, 3615,
4154         0,    0,    0, 3615, 3616, 3616, 3616, 3616,    0,    0,
4155      3616, 3616, 3617, 3617, 3617, 3617,    0,    0, 3617, 3617,
4156      3618, 3618, 3618,    0,    0,    0, 3618, 3619, 3619, 3619,
4157
4158      3619,    0,    0, 3619, 3619, 3620, 3620, 3620, 3620,    0,
4159      3620,    0, 3620, 3621, 3621, 3621, 3621,    0,    0, 3621,
4160      3621, 3622, 3622, 3622, 3622,    0, 3622,    0, 3622, 3623,
4161      3623, 3623, 3623,    0,    0, 3623, 3623, 3624, 3624, 3624,
4162         0,    0,    0, 3624, 3625, 3625, 3625, 3625,    0,    0,
4163      3625, 3625, 3626, 3626, 3626,    0,    0,    0, 3626, 3627,
4164      3627, 3627, 3627,    0,    0, 3627, 3627, 3628, 3628, 3628,
4165         0,    0,    0, 3628, 3629, 3629, 3629, 3629,    0,    0,
4166      3629, 3629, 3630, 3630, 3630, 3630,    0, 3630,    0, 3630,
4167      3631, 3631, 3631, 3631,    0,    0, 3631, 3631, 3632, 3632,
4168
4169      3632, 3632,    0, 3632,    0, 3632, 3633, 3633, 3633, 3633,
4170         0,    0, 3633, 3633, 3634, 3634, 3634,    0,    0,    0,
4171      3634, 3635, 3635, 3635, 3635,    0,    0, 3635, 3635, 3636,
4172      3636, 3636,    0,    0,    0, 3636, 3637, 3637, 3637, 3637,
4173         0,    0, 3637, 3637, 3638, 3638, 3638,    0,    0,    0,
4174      3638, 3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640,
4175      3640, 3640,    0,    0,    0, 3640, 3641, 3641, 3641, 3641,
4176         0,    0, 3641, 3641, 3642, 3642, 3642,    0,    0,    0,
4177      3642, 3643, 3643, 3643, 3643,    0,    0, 3643, 3643, 3644,
4178      3644, 3644,    0,    0,    0, 3644, 3645, 3645, 3645, 3645,
4179
4180         0,    0, 3645, 3645, 3646, 3646, 3646,    0,    0,    0,
4181      3646, 3647, 3647, 3647, 3647,    0,    0, 3647, 3647, 3648,
4182      3648, 3648,    0,    0,    0, 3648, 3649, 3649, 3649, 3649,
4183         0,    0, 3649, 3649, 3650, 3650, 3650,    0,    0,    0,
4184      3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651, 3652,
4185      3652, 3652, 3652,    0, 3652,    0, 3652, 3653, 3653, 3653,
4186      3653,    0,    0, 3653, 3653, 3654, 3654, 3654,    0,    0,
4187         0, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655, 3655,
4188      3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3657,
4189      3657, 3657, 3657, 3657, 3657, 3657, 3657, 3657, 3658, 3658,
4190
4191      3658,    0,    0,    0, 3658, 3659, 3659, 3659,    0,    0,
4192         0, 3659, 3660, 3660, 3660, 3660,    0,    0, 3660, 3660,
4193      3661, 3661, 3661, 3661,    0, 3661,    0, 3661, 3662, 3662,
4194      3662, 3662,    0,    0, 3662, 3662, 3663, 3663, 3663,    0,
4195         0,    0, 3663, 3664, 3664, 3664, 3664,    0,    0, 3664,
4196      3664, 3665, 3665, 3665,    0,    0,    0, 3665, 3666, 3666,
4197      3666, 3666,    0,    0, 3666, 3666, 3667, 3667, 3667, 3667,
4198         0,    0, 3667, 3667, 3668, 3668, 3668,    0,    0,    0,
4199      3668, 3669, 3669, 3669, 3669,    0,    0, 3669, 3669, 3670,
4200      3670, 3670,    0,    0,    0, 3670, 3671, 3671, 3671, 3671,
4201
4202         0,    0, 3671, 3671, 3672, 3672, 3672, 3672,    0,    0,
4203      3672, 3672, 3673, 3673, 3673,    0,    0,    0, 3673, 3674,
4204      3674, 3674, 3674,    0,    0, 3674, 3674, 3675, 3675, 3675,
4205      3675,    0,    0, 3675, 3675, 3676, 3676, 3676, 3676,    0,
4206         0, 3676, 3676, 3677, 3677, 3677,    0,    0,    0, 3677,
4207      3678, 3678, 3678, 3678,    0,    0, 3678, 3678, 3679, 3679,
4208      3679,    0,    0,    0, 3679, 3680, 3680, 3680, 3680,    0,
4209         0, 3680, 3680, 3681, 3681, 3681, 3681,    0, 3681,    0,
4210      3681, 3682, 3682, 3682, 3682,    0,    0, 3682, 3682, 3683,
4211      3683, 3683,    0,    0,    0, 3683, 3684, 3684, 3684, 3684,
4212
4213         0,    0, 3684, 3684, 3685, 3685, 3685,    0,    0,    0,
4214      3685, 3686, 3686, 3686, 3686,    0,    0, 3686, 3686, 3687,
4215      3687, 3687,    0,    0,    0, 3687, 3688, 3688, 3688, 3688,
4216         0,    0, 3688, 3688, 3689, 3689, 3689,    0,    0,    0,
4217      3689, 3690, 3690, 3690, 3690,    0,    0, 3690, 3690, 3691,
4218      3691, 3691,    0,    0,    0, 3691, 3692, 3692, 3692, 3692,
4219         0,    0, 3692, 3692, 3693, 3693, 3693, 3693,    0, 3693,
4220         0, 3693, 3694, 3694, 3694, 3694,    0,    0, 3694, 3694,
4221      3695, 3695, 3695,    0,    0,    0, 3695, 3696, 3696, 3696,
4222      3696,    0,    0, 3696, 3696, 3697, 3697, 3697,    0,    0,
4223
4224         0, 3697, 3698, 3698, 3698, 3698,    0,    0, 3698, 3698,
4225      3699, 3699, 3699,    0,    0,    0, 3699, 3700, 3700, 3700,
4226      3700,    0,    0, 3700, 3700, 3701, 3701, 3701,    0,    0,
4227         0, 3701, 3702, 3702, 3702, 3702,    0,    0, 3702, 3702,
4228      3703, 3703, 3703,    0,    0,    0, 3703, 3704, 3704, 3704,
4229      3704,    0,    0, 3704, 3704, 3705, 3705, 3705,    0,    0,
4230         0, 3705, 3706, 3706, 3706, 3706,    0,    0, 3706, 3706,
4231      3707, 3707, 3707,    0,    0,    0, 3707, 3708, 3708, 3708,
4232      3708,    0,    0, 3708, 3708, 3709, 3709, 3709, 3709, 3709,
4233      3709, 3709, 3709, 3709, 3710, 3710, 3710, 3710, 3710, 3710,
4234
4235      3710, 3710, 3710, 3711, 3711, 3711,    0,    0,    0, 3711,
4236      3712, 3712, 3712, 3712,    0, 3712,    0, 3712, 3713, 3713,
4237      3713, 3713,    0,    0, 3713, 3713, 3714, 3714, 3714, 3714,
4238         0,    0, 3714, 3714, 3715, 3715, 3715,    0,    0,    0,
4239      3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717,
4240      3717, 3717, 3717,    0, 3717,    0, 3717, 3718, 3718, 3718,
4241      3718,    0,    0, 3718, 3718, 3719, 3719, 3719, 3719,    0,
4242         0, 3719, 3719, 3720, 3720, 3720, 3720,    0, 3720,    0,
4243      3720, 3721, 3721, 3721, 3721,    0,    0, 3721, 3721, 3722,
4244      3722, 3722,    0,    0,    0, 3722, 3723, 3723, 3723, 3723,
4245
4246         0,    0, 3723, 3723, 3724, 3724, 3724, 3724,    0,    0,
4247      3724, 3724, 3725, 3725, 3725,    0,    0,    0, 3725, 3726,
4248      3726, 3726, 3726,    0,    0, 3726, 3726, 3727, 3727, 3727,
4249      3727,    0,    0, 3727, 3727, 3728, 3728, 3728, 3728,    0,
4250         0, 3728, 3728, 3729, 3729, 3729,    0,    0,    0, 3729,
4251      3730, 3730, 3730, 3730,    0,    0, 3730, 3730, 3731, 3731,
4252      3731,    0,    0,    0, 3731, 3732, 3732, 3732, 3732,    0,
4253         0, 3732, 3732, 3733, 3733, 3733, 3733,    0,    0, 3733,
4254      3733, 3734, 3734, 3734,    0,    0,    0, 3734, 3735, 3735,
4255      3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736, 3736,
4256
4257         0, 3736,    0, 3736, 3737, 3737, 3737, 3737,    0,    0,
4258      3737, 3737, 3738, 3738, 3738,    0,    0,    0, 3738, 3739,
4259      3739, 3739, 3739,    0,    0, 3739, 3739, 3740, 3740, 3740,
4260         0,    0,    0, 3740, 3741, 3741, 3741, 3741,    0,    0,
4261      3741, 3741, 3742, 3742, 3742,    0,    0,    0, 3742, 3743,
4262      3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744, 3744,
4263      3744,    0,    0, 3744, 3744, 3745, 3745, 3745,    0,    0,
4264         0, 3745, 3746, 3746, 3746, 3746,    0,    0, 3746, 3746,
4265      3747, 3747, 3747,    0,    0,    0, 3747, 3748, 3748, 3748,
4266      3748,    0,    0, 3748, 3748, 3749, 3749, 3749,    0,    0,
4267
4268         0, 3749, 3750, 3750, 3750, 3750,    0,    0, 3750, 3750,
4269      3751, 3751, 3751, 3751,    0, 3751,    0, 3751, 3752, 3752,
4270      3752, 3752,    0,    0, 3752, 3752, 3753, 3753, 3753,    0,
4271         0,    0, 3753, 3754, 3754, 3754, 3754,    0,    0, 3754,
4272      3754, 3755, 3755, 3755,    0,    0,    0, 3755, 3756, 3756,
4273      3756, 3756,    0,    0, 3756, 3756, 3757, 3757, 3757,    0,
4274         0,    0, 3757, 3758, 3758, 3758, 3758,    0,    0, 3758,
4275      3758, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
4276      3760, 3760, 3760, 3760, 3760, 3760, 3760, 3760, 3760, 3761,
4277      3761, 3761, 3761,    0, 3761,    0, 3761, 3762, 3762, 3762,
4278
4279         0,    0,    0, 3762, 3763, 3763, 3763, 3763,    0,    0,
4280      3763, 3763, 3764, 3764, 3764, 3764,    0,    0, 3764, 3764,
4281      3765, 3765, 3765,    0,    0,    0, 3765, 3766, 3766, 3766,
4282      3766,    0,    0, 3766, 3766, 3767, 3767, 3767, 3767,    0,
4283         0, 3767, 3767, 3768, 3768, 3768, 3768,    0,    0, 3768,
4284      3768, 3769, 3769, 3769, 3769,    0, 3769,    0, 3769, 3770,
4285      3770, 3770, 3770,    0,    0, 3770, 3770, 3771, 3771, 3771,
4286         0,    0,    0, 3771, 3772, 3772, 3772, 3772,    0,    0,
4287      3772, 3772, 3773, 3773, 3773, 3773,    0,    0, 3773, 3773,
4288      3774, 3774, 3774,    0,    0,    0, 3774, 3775, 3775, 3775,
4289
4290      3775,    0,    0, 3775, 3775, 3776, 3776, 3776, 3776,    0,
4291         0, 3776, 3776, 3777, 3777, 3777,    0,    0,    0, 3777,
4292      3778, 3778, 3778,    0,    0,    0, 3778, 3779, 3779, 3779,
4293      3779,    0,    0, 3779, 3779, 3780, 3780, 3780, 3780,    0,
4294         0, 3780, 3780, 3781, 3781, 3781,    0,    0,    0, 3781,
4295      3782, 3782, 3782, 3782,    0,    0, 3782, 3782, 3783, 3783,
4296      3783, 3783,    0,    0, 3783, 3783, 3784, 3784, 3784,    0,
4297         0,    0, 3784, 3785, 3785, 3785, 3785,    0, 3785,    0,
4298      3785, 3786, 3786, 3786, 3786,    0,    0, 3786, 3786, 3787,
4299      3787, 3787,    0,    0,    0, 3787, 3788, 3788, 3788, 3788,
4300
4301         0,    0, 3788, 3788, 3789, 3789, 3789,    0,    0,    0,
4302      3789, 3790, 3790, 3790, 3790,    0,    0, 3790, 3790, 3791,
4303      3791, 3791,    0,    0,    0, 3791, 3792, 3792, 3792, 3792,
4304         0,    0, 3792, 3792, 3793, 3793, 3793,    0,    0,    0,
4305      3793, 3794, 3794, 3794, 3794,    0,    0, 3794, 3794, 3795,
4306      3795, 3795, 3795,    0, 3795,    0, 3795, 3796, 3796, 3796,
4307      3796,    0,    0, 3796, 3796, 3797, 3797, 3797, 3797,    0,
4308      3797,    0, 3797, 3798, 3798, 3798, 3798,    0,    0, 3798,
4309      3798, 3799, 3799, 3799,    0,    0,    0, 3799, 3800, 3800,
4310      3800, 3800,    0,    0, 3800, 3800, 3801, 3801, 3801, 3801,
4311
4312         0, 3801,    0, 3801, 3802, 3802, 3802, 3802,    0,    0,
4313      3802, 3802, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803,
4314      3803, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804,
4315      3805, 3805, 3805,    0,    0,    0, 3805, 3806, 3806, 3806,
4316      3806,    0,    0, 3806, 3806, 3807, 3807, 3807, 3807,    0,
4317         0, 3807, 3807, 3808, 3808, 3808,    0,    0,    0, 3808,
4318      3809, 3809, 3809, 3809,    0,    0, 3809, 3809, 3810, 3810,
4319      3810, 3810,    0,    0, 3810, 3810, 3811, 3811, 3811, 3811,
4320         0,    0, 3811, 3811, 3812, 3812, 3812, 3812,    0,    0,
4321      3812, 3812, 3813, 3813, 3813,    0,    0,    0, 3813, 3814,
4322
4323      3814, 3814, 3814,    0,    0, 3814, 3814, 3815, 3815, 3815,
4324      3815,    0,    0, 3815, 3815, 3816, 3816, 3816,    0,    0,
4325         0, 3816, 3817, 3817, 3817, 3817,    0,    0, 3817, 3817,
4326      3818, 3818, 3818, 3818,    0,    0, 3818, 3818, 3819, 3819,
4327      3819,    0,    0,    0, 3819, 3820, 3820, 3820,    0,    0,
4328         0, 3820, 3821, 3821, 3821, 3821,    0,    0, 3821, 3821,
4329      3822, 3822, 3822, 3822,    0,    0, 3822, 3822, 3823, 3823,
4330      3823,    0,    0,    0, 3823, 3824, 3824, 3824, 3824,    0,
4331         0, 3824, 3824, 3825, 3825, 3825,    0,    0,    0, 3825,
4332      3826, 3826, 3826, 3826,    0,    0, 3826, 3826, 3827, 3827,
4333
4334      3827, 3827,    0, 3827,    0, 3827, 3828, 3828, 3828, 3828,
4335         0,    0, 3828, 3828, 3829, 3829, 3829,    0,    0,    0,
4336      3829, 3830, 3830, 3830, 3830,    0,    0, 3830, 3830, 3831,
4337      3831, 3831,    0,    0,    0, 3831, 3832, 3832, 3832,    0,
4338         0,    0, 3832, 3833, 3833, 3833, 3833,    0,    0, 3833,
4339      3833, 3834, 3834, 3834,    0,    0,    0, 3834, 3835, 3835,
4340      3835, 3835,    0,    0, 3835, 3835, 3836, 3836, 3836,    0,
4341         0,    0, 3836, 3837, 3837, 3837, 3837,    0,    0, 3837,
4342      3837, 3838, 3838, 3838,    0,    0,    0, 3838, 3839, 3839,
4343      3839, 3839,    0,    0, 3839, 3839, 3840, 3840, 3840, 3840,
4344
4345      3840, 3840, 3840, 3840, 3840, 3841, 3841, 3841, 3841, 3841,
4346      3841, 3841, 3841, 3841, 3842, 3842, 3842,    0,    0,    0,
4347      3842, 3843, 3843, 3843, 3843,    0,    0, 3843, 3843, 3844,
4348      3844, 3844, 3844,    0,    0, 3844, 3844, 3845, 3845, 3845,
4349      3845,    0, 3845,    0, 3845, 3846, 3846, 3846, 3846,    0,
4350         0, 3846, 3846, 3847, 3847, 3847, 3847,    0,    0, 3847,
4351      3847, 3848, 3848, 3848, 3848,    0,    0, 3848, 3848, 3849,
4352      3849, 3849, 3849,    0,    0, 3849, 3849, 3850, 3850, 3850,
4353         0,    0,    0, 3850, 3851, 3851, 3851, 3851,    0,    0,
4354      3851, 3851, 3852, 3852, 3852,    0,    0,    0, 3852, 3853,
4355
4356      3853, 3853, 3853,    0,    0, 3853, 3853, 3854, 3854, 3854,
4357      3854,    0,    0, 3854, 3854, 3855, 3855, 3855, 3855,    0,
4358      3855,    0, 3855, 3856, 3856, 3856, 3856,    0, 3856,    0,
4359      3856, 3857, 3857, 3857, 3857,    0,    0, 3857, 3857, 3858,
4360      3858, 3858, 3858,    0,    0, 3858, 3858, 3859, 3859, 3859,
4361      3859,    0, 3859,    0, 3859, 3860, 3860, 3860, 3860,    0,
4362         0, 3860, 3860, 3861, 3861, 3861,    0,    0,    0, 3861,
4363      3862, 3862, 3862, 3862,    0,    0, 3862, 3862, 3863, 3863,
4364      3863, 3863,    0, 3863,    0, 3863, 3864, 3864, 3864, 3864,
4365         0,    0, 3864, 3864, 3865, 3865, 3865, 3865,    0, 3865,
4366
4367         0, 3865, 3866, 3866, 3866,    0,    0,    0, 3866, 3867,
4368      3867, 3867,    0,    0,    0, 3867, 3868, 3868, 3868,    0,
4369         0,    0, 3868, 3869, 3869, 3869, 3869,    0,    0, 3869,
4370      3869, 3870, 3870, 3870,    0,    0,    0, 3870, 3871, 3871,
4371      3871, 3871,    0,    0, 3871, 3871, 3872, 3872, 3872,    0,
4372         0,    0, 3872, 3873, 3873, 3873, 3873,    0,    0, 3873,
4373      3873, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874,
4374      3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3876,
4375      3876, 3876,    0,    0,    0, 3876, 3877, 3877, 3877, 3877,
4376         0,    0, 3877, 3877, 3878, 3878, 3878, 3878,    0,    0,
4377
4378      3878, 3878, 3879, 3879, 3879, 3879,    0,    0, 3879, 3879,
4379      3880, 3880, 3880, 3880,    0,    0, 3880, 3880, 3881, 3881,
4380      3881,    0,    0,    0, 3881, 3882, 3882, 3882,    0,    0,
4381         0, 3882, 3883, 3883, 3883, 3883,    0,    0, 3883, 3883,
4382      3884, 3884, 3884,    0,    0,    0, 3884, 3885, 3885, 3885,
4383      3885,    0,    0, 3885, 3885, 3886, 3886, 3886, 3886,    0,
4384         0, 3886, 3886, 3887, 3887, 3887, 3887, 3887, 3887, 3887,
4385      3887, 3887, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888,
4386      3888, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
4387      3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3891,
4388
4389      3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3892, 3892,
4390      3892, 3892, 3892, 3892, 3892, 3892, 3892, 3395, 3395, 3395,
4391      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
4392      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
4393      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
4394      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
4395      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
4396      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
4397      3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395,
4398      3395, 3395
4399
4400     } ;
4401
4402 /* Table of booleans, true if rule could match eol. */
4403 static yyconst flex_int32_t yy_rule_can_match_eol[575] =
4404     {   0,
4405 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4406     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4407     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4408     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4409     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4410     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4411     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4412     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4413     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4414     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4415     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4416     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4417     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4418     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4419     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4420     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4421     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4422     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4423     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 
4424     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4425     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4426     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4427     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4428     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4429     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4430     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4431     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4432     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
4433     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4434
4435 static yy_state_type yy_last_accepting_state;
4436 static char *yy_last_accepting_cpos;
4437
4438 extern int surf_parse__flex_debug;
4439 int surf_parse__flex_debug = 0;
4440
4441 /* The intent behind this definition is that it'll catch
4442  * any uses of REJECT which flex missed.
4443  */
4444 #define REJECT reject_used_but_not_detected
4445 #define yymore() yymore_used_but_not_detected
4446 #define YY_MORE_ADJ 0
4447 #define YY_RESTORE_YY_MORE_OFFSET
4448 char *surf_parse_text;
4449 /* Validating XML processor for src/surf/xml/simgrid.dtd.
4450  *
4451  * This program was generated with the FleXML XML processor generator.
4452  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4453  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4454  * (1.9.6).
4455  * 
4456  * There are two, intertwined parts to this program, part A and part B.
4457  *
4458  * Part A
4459  * ------
4460  * 
4461  * Some parts, here collectively called "Part A", are found in the 
4462  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4463  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4464  *
4465  * You can redistribute, use, perform, display and/or modify "Part A"
4466  * provided the following two conditions hold:
4467  *
4468  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4469  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4470  *    FITNESS FOR A PARTICULAR PURPOSE.
4471  *
4472  * 2. The program distribution conditions do not in any way affect the
4473  *    distribution conditions of the FleXML system used to generate this
4474  *    file or any version of FleXML derived from that system.
4475  *
4476  * Notice that these are explicit rights granted to you for files
4477  * generated by the FleXML system.  For your rights in connection with
4478  * the FleXML system itself please consult the GNU General Public License.
4479  * 
4480  * Part B
4481  * ------
4482  * 
4483  * The other parts, here collectively called "Part B", and which came 
4484  * from the DTD used by FleXML to generate this program, can be 
4485  * distributed (or not, as the case may be) under the terms of whoever
4486  * wrote them, provided these terms respect and obey the two conditions 
4487  * above under the heading "Part A".
4488  *
4489  * The author of and contributors to FleXML specifically disclaim
4490  * any copyright interest in "Part B", unless "Part B" was written 
4491  * by the author of or contributors to FleXML.
4492  * 
4493  */
4494
4495 /* Version strings. */
4496 const char surfxml_flexml_version[] = "1.9.6";
4497
4498 /* ANSI headers. */
4499 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4500 #include <stdio.h>
4501 #include <string.h>
4502 #include <assert.h>
4503 #include <stdarg.h>
4504 #include <ctype.h>
4505      
4506 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4507 # ifndef __STRICT_ANSI__
4508 #  include <io.h>
4509 #  include <process.h>
4510 # endif
4511 #else
4512 # include <unistd.h>
4513 #endif
4514      
4515 #ifndef FLEXML_INDEXSTACKSIZE
4516 #define FLEXML_INDEXSTACKSIZE 1000
4517 #endif
4518
4519 /* Generated definitions. */
4520 #define FLEXML_yylineno
4521 #ifndef FLEXML_BUFFERSTACKSIZE
4522 #define FLEXML_BUFFERSTACKSIZE 1000000
4523 #endif
4524 #define FLEXML_NEED_BUFFERLIT
4525
4526 /* XML processor api. */
4527 /* FleXML-provided data. */
4528 int surfxml_pcdata_ix;
4529 extern char *surfxml_bufferstack;
4530 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4531 AT_surfxml_AS_id AX_surfxml_AS_id;
4532 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4533 short int surfxml_AS_id_isset;
4534 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4535 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4536 short int surfxml_AS_routing_isset;
4537 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4538 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4539 short int surfxml_ASroute_dst_isset;
4540 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4541 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4542 short int surfxml_ASroute_gw___dst_isset;
4543 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4544 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4545 short int surfxml_ASroute_gw___src_isset;
4546 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4547 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4548 short int surfxml_ASroute_src_isset;
4549 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4550 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4551 short int surfxml_ASroute_symmetrical_isset;
4552 AT_surfxml_argument_value AX_surfxml_argument_value;
4553 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4554 short int surfxml_argument_value_isset;
4555 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4556 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4557 short int surfxml_backbone_bandwidth_isset;
4558 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4559 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4560 short int surfxml_backbone_id_isset;
4561 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4562 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4563 short int surfxml_backbone_latency_isset;
4564 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4565 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4566 short int surfxml_bypassASroute_dst_isset;
4567 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4568 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4569 short int surfxml_bypassASroute_gw___dst_isset;
4570 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4571 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4572 short int surfxml_bypassASroute_gw___src_isset;
4573 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4574 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4575 short int surfxml_bypassASroute_src_isset;
4576 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4577 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4578 short int surfxml_bypassRoute_dst_isset;
4579 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4580 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4581 short int surfxml_bypassRoute_src_isset;
4582 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4583 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4584 short int surfxml_cabinet_bw_isset;
4585 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4586 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4587 short int surfxml_cabinet_id_isset;
4588 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4589 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4590 short int surfxml_cabinet_lat_isset;
4591 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4592 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4593 short int surfxml_cabinet_prefix_isset;
4594 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4595 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4596 short int surfxml_cabinet_radical_isset;
4597 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
4598 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
4599 short int surfxml_cabinet_speed_isset;
4600 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4601 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4602 short int surfxml_cabinet_suffix_isset;
4603 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4604 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4605 short int surfxml_cluster_availability___file_isset;
4606 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4607 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4608 short int surfxml_cluster_bb___bw_isset;
4609 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4610 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4611 short int surfxml_cluster_bb___lat_isset;
4612 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4613 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4614 short int surfxml_cluster_bb___sharing___policy_isset;
4615 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4616 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4617 short int surfxml_cluster_bw_isset;
4618 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4619 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4620 short int surfxml_cluster_core_isset;
4621 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4622 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4623 short int surfxml_cluster_id_isset;
4624 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4625 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4626 short int surfxml_cluster_lat_isset;
4627 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4628 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4629 short int surfxml_cluster_limiter___link_isset;
4630 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4631 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4632 short int surfxml_cluster_loopback___bw_isset;
4633 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4634 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4635 short int surfxml_cluster_loopback___lat_isset;
4636 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4637 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4638 short int surfxml_cluster_prefix_isset;
4639 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4640 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4641 short int surfxml_cluster_radical_isset;
4642 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4643 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4644 short int surfxml_cluster_router___id_isset;
4645 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4646 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4647 short int surfxml_cluster_sharing___policy_isset;
4648 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
4649 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
4650 short int surfxml_cluster_speed_isset;
4651 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4652 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4653 short int surfxml_cluster_state___file_isset;
4654 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4655 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4656 short int surfxml_cluster_suffix_isset;
4657 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4658 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4659 short int surfxml_cluster_topo___parameters_isset;
4660 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4661 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4662 short int surfxml_cluster_topology_isset;
4663 AT_surfxml_config_id AX_surfxml_config_id;
4664 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4665 short int surfxml_config_id_isset;
4666 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4667 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4668 short int surfxml_host_availability___file_isset;
4669 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4670 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4671 short int surfxml_host_coordinates_isset;
4672 AT_surfxml_host_core AX_surfxml_host_core;
4673 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4674 short int surfxml_host_core_isset;
4675 AT_surfxml_host_id AX_surfxml_host_id;
4676 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4677 short int surfxml_host_id_isset;
4678 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4679 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4680 short int surfxml_host_pstate_isset;
4681 AT_surfxml_host_speed AX_surfxml_host_speed;
4682 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
4683 short int surfxml_host_speed_isset;
4684 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4685 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4686 short int surfxml_host_state___file_isset;
4687 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4688 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4689 short int surfxml_host___link_down_isset;
4690 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4691 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4692 short int surfxml_host___link_id_isset;
4693 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4694 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4695 short int surfxml_host___link_up_isset;
4696 AT_surfxml_include_file AX_surfxml_include_file;
4697 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4698 short int surfxml_include_file_isset;
4699 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4700 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4701 short int surfxml_link_bandwidth_isset;
4702 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4703 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4704 short int surfxml_link_bandwidth___file_isset;
4705 AT_surfxml_link_id AX_surfxml_link_id;
4706 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4707 short int surfxml_link_id_isset;
4708 AT_surfxml_link_latency AX_surfxml_link_latency;
4709 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4710 short int surfxml_link_latency_isset;
4711 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4712 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4713 short int surfxml_link_latency___file_isset;
4714 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4715 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4716 short int surfxml_link_sharing___policy_isset;
4717 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4718 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4719 short int surfxml_link_state___file_isset;
4720 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4721 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4722 short int surfxml_link___ctn_direction_isset;
4723 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4724 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4725 short int surfxml_link___ctn_id_isset;
4726 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4727 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4728 short int surfxml_model___prop_id_isset;
4729 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4730 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4731 short int surfxml_model___prop_value_isset;
4732 AT_surfxml_mount_name AX_surfxml_mount_name;
4733 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4734 short int surfxml_mount_name_isset;
4735 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4736 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4737 short int surfxml_mount_storageId_isset;
4738 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4739 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4740 short int surfxml_mstorage_name_isset;
4741 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4742 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4743 short int surfxml_mstorage_typeId_isset;
4744 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4745 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4746 short int surfxml_peer_availability___file_isset;
4747 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4748 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4749 short int surfxml_peer_bw___in_isset;
4750 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4751 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4752 short int surfxml_peer_bw___out_isset;
4753 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4754 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4755 short int surfxml_peer_coordinates_isset;
4756 AT_surfxml_peer_id AX_surfxml_peer_id;
4757 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4758 short int surfxml_peer_id_isset;
4759 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4760 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4761 short int surfxml_peer_lat_isset;
4762 AT_surfxml_peer_speed AX_surfxml_peer_speed;
4763 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
4764 short int surfxml_peer_speed_isset;
4765 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4766 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4767 short int surfxml_peer_state___file_isset;
4768 AT_surfxml_platform_version AX_surfxml_platform_version;
4769 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4770 short int surfxml_platform_version_isset;
4771 AT_surfxml_process_function AX_surfxml_process_function;
4772 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4773 short int surfxml_process_function_isset;
4774 AT_surfxml_process_host AX_surfxml_process_host;
4775 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4776 short int surfxml_process_host_isset;
4777 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4778 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4779 short int surfxml_process_kill___time_isset;
4780 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4781 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4782 short int surfxml_process_on___failure_isset;
4783 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4784 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4785 short int surfxml_process_start___time_isset;
4786 AT_surfxml_prop_id AX_surfxml_prop_id;
4787 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4788 short int surfxml_prop_id_isset;
4789 AT_surfxml_prop_value AX_surfxml_prop_value;
4790 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4791 short int surfxml_prop_value_isset;
4792 AT_surfxml_random_generator AX_surfxml_random_generator;
4793 #define A_surfxml_random_generator AX_surfxml_random_generator
4794 short int surfxml_random_generator_isset;
4795 AT_surfxml_random_id AX_surfxml_random_id;
4796 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4797 short int surfxml_random_id_isset;
4798 AT_surfxml_random_max AX_surfxml_random_max;
4799 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4800 short int surfxml_random_max_isset;
4801 AT_surfxml_random_mean AX_surfxml_random_mean;
4802 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4803 short int surfxml_random_mean_isset;
4804 AT_surfxml_random_min AX_surfxml_random_min;
4805 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4806 short int surfxml_random_min_isset;
4807 AT_surfxml_random_radical AX_surfxml_random_radical;
4808 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4809 short int surfxml_random_radical_isset;
4810 AT_surfxml_random_seed AX_surfxml_random_seed;
4811 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4812 short int surfxml_random_seed_isset;
4813 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4814 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4815 short int surfxml_random_std___deviation_isset;
4816 AT_surfxml_route_dst AX_surfxml_route_dst;
4817 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4818 short int surfxml_route_dst_isset;
4819 AT_surfxml_route_src AX_surfxml_route_src;
4820 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4821 short int surfxml_route_src_isset;
4822 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4823 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4824 short int surfxml_route_symmetrical_isset;
4825 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4826 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4827 short int surfxml_router_coordinates_isset;
4828 AT_surfxml_router_id AX_surfxml_router_id;
4829 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4830 short int surfxml_router_id_isset;
4831 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4832 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4833 short int surfxml_storage_attach_isset;
4834 AT_surfxml_storage_content AX_surfxml_storage_content;
4835 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4836 short int surfxml_storage_content_isset;
4837 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4838 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4839 short int surfxml_storage_content___type_isset;
4840 AT_surfxml_storage_id AX_surfxml_storage_id;
4841 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4842 short int surfxml_storage_id_isset;
4843 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4844 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4845 short int surfxml_storage_typeId_isset;
4846 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4847 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4848 short int surfxml_storage___type_content_isset;
4849 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4850 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4851 short int surfxml_storage___type_content___type_isset;
4852 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4853 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4854 short int surfxml_storage___type_id_isset;
4855 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4856 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4857 short int surfxml_storage___type_model_isset;
4858 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4859 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4860 short int surfxml_storage___type_size_isset;
4861 AT_surfxml_trace_file AX_surfxml_trace_file;
4862 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4863 short int surfxml_trace_file_isset;
4864 AT_surfxml_trace_id AX_surfxml_trace_id;
4865 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4866 short int surfxml_trace_id_isset;
4867 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4868 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4869 short int surfxml_trace_periodicity_isset;
4870 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4871 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4872 short int surfxml_trace___connect_element_isset;
4873 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4874 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4875 short int surfxml_trace___connect_kind_isset;
4876 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4877 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4878 short int surfxml_trace___connect_trace_isset;
4879
4880 /* XML state. */
4881 #ifdef FLEX_DEBUG
4882 # define ENTER(state)   debug_enter(state,#state)
4883 # define LEAVE          debug_leave()
4884 # define SET(state)     debug_set(state,#state)
4885   static void debug_enter(int, const char*);
4886   static void debug_leave(void);
4887   static void debug_set(int, const char*);
4888 #else
4889 # define ENTER(state)   (yy_push_state(state))
4890 # define LEAVE          (yy_pop_state())
4891 # define SET(state)     BEGIN(state)
4892 #endif
4893
4894 /* Generic actions. */
4895 #define SKIP    /*skip*/
4896 #define SUCCEED        CLEANUP; return 0
4897
4898 #define FAIL    return fail
4899 static int fail(const char*, ...);
4900
4901 enum {flexml_max_err_msg_size = 512};
4902 static char flexml_err_msg[flexml_max_err_msg_size];
4903 const char * surfxml_parse_err_msg()
4904 {
4905     return flexml_err_msg;
4906 }
4907 static void reset_surfxml_parse_err_msg()
4908 {
4909     flexml_err_msg[0] = '\0';
4910 }
4911
4912 /* Cleanup */
4913 static void cleanup(void);
4914 #define CLEANUP  cleanup()
4915
4916 /* Text buffer stack handling. */
4917 char *surfxml_bufferstack = NULL;
4918 static int blimit = FLEXML_BUFFERSTACKSIZE;
4919 static int bnext = 1;
4920
4921 static int *indexstack = NULL;
4922 static int ilimit = FLEXML_INDEXSTACKSIZE;
4923 static int inext = 1;
4924
4925 #define BUFFERSET(P)  (P = bnext)
4926 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4927 #define BUFFERDONE    (BUFFERPUTC('\0'))
4928
4929 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4930
4931 /* after this is called, there are at least 2 slots left in the stack */
4932 static int ck_blimit()
4933 {
4934      if (bnext >= blimit) {
4935          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4936          {
4937              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4938              assert(temp);
4939              surfxml_bufferstack = temp;
4940          }
4941      }
4942      return 0;
4943 }
4944
4945 /* after this is called, there are at least 2 slots left in the stack */
4946 static int ck_ilimit()
4947 {
4948      if (inext >= ilimit) {
4949          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4950          {
4951              int *temp = (int *) realloc(indexstack, ilimit);
4952              assert(temp);
4953              indexstack = temp;
4954          }
4955      }
4956      return 0;
4957 }
4958
4959 #ifdef FLEXML_NEED_BUFFERLIT
4960 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4961 {
4962    BUFFERSET(*pp);
4963    if (c) {
4964       const char *s = strchr(text, c), *e = strrchr(text, c);
4965       assert(s && e && s <= e);
4966       ++s;
4967       while (s < e) {
4968          if (isspace(*s)) {
4969             BUFFERPUTC(' ');
4970             do ++s; while (s < e && isspace(*s));
4971          } else
4972            BUFFERPUTC(*s++);
4973       }
4974    } else {
4975       const char *s = text;
4976       while (*s)
4977         BUFFERPUTC(*s++);
4978    }
4979    BUFFERDONE;
4980 }
4981 #endif
4982
4983 static void pushbuffer(int p)
4984 {
4985     ck_ilimit();
4986     indexstack[inext++] = p;
4987     indexstack[inext++] = bnext;    
4988 }
4989
4990 static int popbuffer(void)
4991 {
4992     assert(inext >= 2);
4993     bnext = indexstack[--inext];
4994     return indexstack[--inext];
4995 }
4996
4997 /* General internal entities are `unput' back onto the input stream... */
4998 #define ENTITYTEXT(T) \
4999   { char *s = (T), *e = s+strlen(s);\
5000     while (--e >= s) { unput(*e); }}
5001
5002 /* Flex standard options. */
5003 #define YY_NO_INPUT 1
5004 /* Flex user-requested options. */
5005 /* XML character classes (currently restricted to ASCII). */
5006 /* "Common syntactic structures." */
5007 /* "Names and Tokens." */
5008 /* Miscellaneous. */
5009 /* Parser states (flex `exclusive start conditions'):
5010  *
5011  * PROLOG       the XML prolog of the document before <?xml...>
5012  * DOCTYPE      the XML prolog of the document after <?xml...>
5013  * EPILOG       after the root element
5014  * INCOMMENT    inside an XML comment <!--....-->
5015  * INPI         inside an XML PI <?...?>
5016  * VALUE1       inside a '...'-delimited literal
5017  * VALUE2       inside a "..."-delimited literal
5018  * CDATA        inside a <![CDATA[...] ]> section.
5019  * ROOT_<tag>   expect root element <tag>
5020  * AL_<tag>     inside the attribute list for <tag>
5021  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5022  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5023  */
5024
5025 /* State names. */
5026 const char* *surfxml_statenames=NULL;
5027
5028 #define INITIAL 0
5029 #define PROLOG 1
5030 #define DOCTYPE 2
5031 #define EPILOG 3
5032 #define INCOMMENT 4
5033 #define INPI 5
5034 #define VALUE1 6
5035 #define VALUE2 7
5036 #define CDATA 8
5037 #define AL_surfxml_AS 9
5038 #define S_surfxml_AS 10
5039 #define S_surfxml_AS_1 11
5040 #define S_surfxml_AS_2 12
5041 #define S_surfxml_AS_3 13
5042 #define S_surfxml_AS_4 14
5043 #define S_surfxml_AS_5 15
5044 #define S_surfxml_AS_6 16
5045 #define S_surfxml_AS_7 17
5046 #define S_surfxml_AS_8 18
5047 #define E_surfxml_AS 19
5048 #define AL_surfxml_ASroute 20
5049 #define S_surfxml_ASroute 21
5050 #define S_surfxml_ASroute_1 22
5051 #define S_surfxml_ASroute_2 23
5052 #define E_surfxml_ASroute 24
5053 #define AL_surfxml_argument 25
5054 #define E_surfxml_argument 26
5055 #define AL_surfxml_backbone 27
5056 #define E_surfxml_backbone 28
5057 #define AL_surfxml_bypassASroute 29
5058 #define S_surfxml_bypassASroute 30
5059 #define S_surfxml_bypassASroute_1 31
5060 #define S_surfxml_bypassASroute_2 32
5061 #define E_surfxml_bypassASroute 33
5062 #define AL_surfxml_bypassRoute 34
5063 #define S_surfxml_bypassRoute 35
5064 #define S_surfxml_bypassRoute_1 36
5065 #define S_surfxml_bypassRoute_2 37
5066 #define E_surfxml_bypassRoute 38
5067 #define AL_surfxml_cabinet 39
5068 #define E_surfxml_cabinet 40
5069 #define AL_surfxml_cluster 41
5070 #define S_surfxml_cluster 42
5071 #define S_surfxml_cluster_1 43
5072 #define S_surfxml_cluster_2 44
5073 #define E_surfxml_cluster 45
5074 #define AL_surfxml_config 46
5075 #define S_surfxml_config 47
5076 #define S_surfxml_config_1 48
5077 #define S_surfxml_config_2 49
5078 #define E_surfxml_config 50
5079 #define AL_surfxml_host 51
5080 #define S_surfxml_host 52
5081 #define S_surfxml_host_1 53
5082 #define S_surfxml_host_2 54
5083 #define E_surfxml_host 55
5084 #define AL_surfxml_host___link 56
5085 #define E_surfxml_host___link 57
5086 #define AL_surfxml_include 58
5087 #define S_surfxml_include 59
5088 #define S_surfxml_include_1 60
5089 #define S_surfxml_include_2 61
5090 #define E_surfxml_include 62
5091 #define AL_surfxml_link 63
5092 #define S_surfxml_link 64
5093 #define S_surfxml_link_1 65
5094 #define S_surfxml_link_2 66
5095 #define E_surfxml_link 67
5096 #define AL_surfxml_link___ctn 68
5097 #define E_surfxml_link___ctn 69
5098 #define AL_surfxml_model___prop 70
5099 #define E_surfxml_model___prop 71
5100 #define AL_surfxml_mount 72
5101 #define E_surfxml_mount 73
5102 #define AL_surfxml_mstorage 74
5103 #define E_surfxml_mstorage 75
5104 #define AL_surfxml_peer 76
5105 #define E_surfxml_peer 77
5106 #define ROOT_surfxml_platform 78
5107 #define AL_surfxml_platform 79
5108 #define S_surfxml_platform 80
5109 #define S_surfxml_platform_1 81
5110 #define S_surfxml_platform_2 82
5111 #define S_surfxml_platform_3 83
5112 #define S_surfxml_platform_4 84
5113 #define S_surfxml_platform_5 85
5114 #define S_surfxml_platform_6 86
5115 #define S_surfxml_platform_7 87
5116 #define S_surfxml_platform_8 88
5117 #define E_surfxml_platform 89
5118 #define AL_surfxml_process 90
5119 #define S_surfxml_process 91
5120 #define S_surfxml_process_1 92
5121 #define S_surfxml_process_2 93
5122 #define E_surfxml_process 94
5123 #define AL_surfxml_prop 95
5124 #define E_surfxml_prop 96
5125 #define AL_surfxml_random 97
5126 #define E_surfxml_random 98
5127 #define AL_surfxml_route 99
5128 #define S_surfxml_route 100
5129 #define S_surfxml_route_1 101
5130 #define S_surfxml_route_2 102
5131 #define E_surfxml_route 103
5132 #define AL_surfxml_router 104
5133 #define E_surfxml_router 105
5134 #define AL_surfxml_storage 106
5135 #define S_surfxml_storage 107
5136 #define S_surfxml_storage_1 108
5137 #define S_surfxml_storage_2 109
5138 #define E_surfxml_storage 110
5139 #define AL_surfxml_storage___type 111
5140 #define S_surfxml_storage___type 112
5141 #define S_surfxml_storage___type_1 113
5142 #define S_surfxml_storage___type_2 114
5143 #define E_surfxml_storage___type 115
5144 #define AL_surfxml_trace 116
5145 #define IN_trace 117
5146 #define AL_surfxml_trace___connect 118
5147 #define E_surfxml_trace___connect 119
5148 #define IMPOSSIBLE 120
5149
5150 #ifndef YY_NO_UNISTD_H
5151 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5152  * down here because we want the user's section 1 to have been scanned first.
5153  * The user has a chance to override it with an option.
5154  */
5155 #if defined(_WIN32)
5156 #  ifndef __STRICT_ANSI__
5157 #    include <io.h>
5158 #    include <process.h>
5159 #  endif
5160 #else
5161 #  include <unistd.h>
5162 #endif
5163 #endif
5164
5165 #ifndef YY_EXTRA_TYPE
5166 #define YY_EXTRA_TYPE void *
5167 #endif
5168
5169 static int yy_init_globals (void );
5170
5171 /* Accessor methods to globals.
5172    These are made visible to non-reentrant scanners for convenience. */
5173
5174 int surf_parse_lex_destroy (void );
5175
5176 int surf_parse_get_debug (void );
5177
5178 void surf_parse_set_debug (int debug_flag  );
5179
5180 YY_EXTRA_TYPE surf_parse_get_extra (void );
5181
5182 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5183
5184 FILE *surf_parse_get_in (void );
5185
5186 void surf_parse_set_in  (FILE * in_str  );
5187
5188 FILE *surf_parse_get_out (void );
5189
5190 void surf_parse_set_out  (FILE * out_str  );
5191
5192 yy_size_t surf_parse_get_leng (void );
5193
5194 char *surf_parse_get_text (void );
5195
5196 int surf_parse_get_lineno (void );
5197
5198 void surf_parse_set_lineno (int line_number  );
5199
5200 /* Macros after this point can all be overridden by user definitions in
5201  * section 1.
5202  */
5203
5204 #ifndef YY_SKIP_YYWRAP
5205 #ifdef __cplusplus
5206 extern "C" int surf_parse_wrap (void );
5207 #else
5208 extern int surf_parse_wrap (void );
5209 #endif
5210 #endif
5211
5212 #ifndef yytext_ptr
5213 static void yy_flex_strncpy (char *,yyconst char *,int );
5214 #endif
5215
5216 #ifdef YY_NEED_STRLEN
5217 static int yy_flex_strlen (yyconst char * );
5218 #endif
5219
5220 #ifndef YY_NO_INPUT
5221
5222 #ifdef __cplusplus
5223 static int yyinput (void );
5224 #else
5225 static int input (void );
5226 #endif
5227
5228 #endif
5229
5230         static int yy_start_stack_ptr = 0;
5231         static int yy_start_stack_depth = 0;
5232         static int *yy_start_stack = NULL;
5233     
5234     static void yy_push_state (int new_state );
5235     
5236     static void yy_pop_state (void );
5237     
5238 /* Amount of stuff to slurp up with each read. */
5239 #ifndef YY_READ_BUF_SIZE
5240 #ifdef __ia64__
5241 /* On IA-64, the buffer size is 16k, not 8k */
5242 #define YY_READ_BUF_SIZE 16384
5243 #else
5244 #define YY_READ_BUF_SIZE 8192
5245 #endif /* __ia64__ */
5246 #endif
5247
5248 /* Copy whatever the last rule matched to the standard output. */
5249 #ifndef ECHO
5250 /* This used to be an fputs(), but since the string might contain NUL's,
5251  * we now use fwrite().
5252  */
5253 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5254 #endif
5255
5256 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5257  * is returned in "result".
5258  */
5259 #ifndef YY_INPUT
5260 #define YY_INPUT(buf,result,max_size) \
5261         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5262                 { \
5263                 int c = '*'; \
5264                 size_t n; \
5265                 for ( n = 0; n < max_size && \
5266                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5267                         buf[n] = (char) c; \
5268                 if ( c == '\n' ) \
5269                         buf[n++] = (char) c; \
5270                 if ( c == EOF && ferror( surf_parse_in ) ) \
5271                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5272                 result = n; \
5273                 } \
5274         else \
5275                 { \
5276                 errno=0; \
5277                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5278                         { \
5279                         if( errno != EINTR) \
5280                                 { \
5281                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5282                                 break; \
5283                                 } \
5284                         errno=0; \
5285                         clearerr(surf_parse_in); \
5286                         } \
5287                 }\
5288 \
5289
5290 #endif
5291
5292 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5293  * we don't want an extra ';' after the "return" because that will cause
5294  * some compilers to complain about unreachable statements.
5295  */
5296 #ifndef yyterminate
5297 #define yyterminate() return YY_NULL
5298 #endif
5299
5300 /* Number of entries by which start-condition stack grows. */
5301 #ifndef YY_START_STACK_INCR
5302 #define YY_START_STACK_INCR 25
5303 #endif
5304
5305 /* Report a fatal error. */
5306 #ifndef YY_FATAL_ERROR
5307 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5308 #endif
5309
5310 /* end tables serialization structures and prototypes */
5311
5312 /* Default declaration of generated scanner - a define so the user can
5313  * easily add parameters.
5314  */
5315 #ifndef YY_DECL
5316 #define YY_DECL_IS_OURS 1
5317
5318 extern int surf_parse_lex (void);
5319
5320 #define YY_DECL int surf_parse_lex (void)
5321 #endif /* !YY_DECL */
5322
5323 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5324  * have been set up.
5325  */
5326 #ifndef YY_USER_ACTION
5327 #define YY_USER_ACTION
5328 #endif
5329
5330 /* Code executed at the end of each rule. */
5331 #ifndef YY_BREAK
5332 #define YY_BREAK break;
5333 #endif
5334
5335 #define YY_RULE_SETUP \
5336         YY_USER_ACTION
5337
5338 /** The main scanner function which does all the work.
5339  */
5340 YY_DECL
5341 {
5342         yy_state_type yy_current_state;
5343         char *yy_cp, *yy_bp;
5344         int yy_act;
5345     
5346         if ( !(yy_init) )
5347                 {
5348                 (yy_init) = 1;
5349
5350 #ifdef YY_USER_INIT
5351                 YY_USER_INIT;
5352 #endif
5353
5354                 if ( ! (yy_start) )
5355                         (yy_start) = 1; /* first start state */
5356
5357                 if ( ! surf_parse_in )
5358                         surf_parse_in = stdin;
5359
5360                 if ( ! surf_parse_out )
5361                         surf_parse_out = stdout;
5362
5363                 if ( ! YY_CURRENT_BUFFER ) {
5364                         surf_parse_ensure_buffer_stack ();
5365                         YY_CURRENT_BUFFER_LVALUE =
5366                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5367                 }
5368
5369                 surf_parse__load_buffer_state( );
5370                 }
5371
5372         {
5373
5374  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5375  SET(PROLOG);
5376  reset_surfxml_parse_err_msg();
5377  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5378  assert(surfxml_bufferstack);
5379  #ifdef FLEX_DEBUG
5380  {
5381      int i;
5382      for (i = 0; i < blimit; i++) {
5383          surfxml_bufferstack[i] = '\377';
5384      }
5385  }
5386  #endif
5387  surfxml_bufferstack[0] = '\0';
5388  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5389  assert(indexstack);
5390  indexstack[0] = 0;
5391
5392   /* FleXML_init */
5393   bnext = inext = 1;
5394   surfxml_bufferliteral('\0', &bnext, "0.0");
5395   surfxml_bufferliteral('\0', &bnext, "2147483647");
5396   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5397   surfxml_bufferliteral('\0', &bnext, "1");
5398   surfxml_bufferliteral('\0', &bnext, "0.0");
5399   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5400   surfxml_bufferliteral('\0', &bnext, "1");
5401   surfxml_bufferliteral('\0', &bnext, "0s");
5402   surfxml_bufferliteral('\0', &bnext, "-1.0");
5403   surfxml_bufferliteral('\0', &bnext, "-1.0");
5404   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5405   surfxml_statenames[PROLOG] = NULL;
5406   surfxml_statenames[DOCTYPE] = NULL;
5407   surfxml_statenames[EPILOG] = NULL;
5408   surfxml_statenames[INCOMMENT] = NULL;
5409   surfxml_statenames[INPI] = NULL;
5410   surfxml_statenames[VALUE1] = NULL;
5411   surfxml_statenames[VALUE2] = NULL;
5412   surfxml_statenames[CDATA] = NULL;
5413   surfxml_statenames[AL_surfxml_AS] = NULL;
5414   surfxml_statenames[S_surfxml_AS] = "AS";
5415   surfxml_statenames[S_surfxml_AS_1] = "AS";
5416   surfxml_statenames[S_surfxml_AS_2] = "AS";
5417   surfxml_statenames[S_surfxml_AS_3] = "AS";
5418   surfxml_statenames[S_surfxml_AS_4] = "AS";
5419   surfxml_statenames[S_surfxml_AS_5] = "AS";
5420   surfxml_statenames[S_surfxml_AS_6] = "AS";
5421   surfxml_statenames[S_surfxml_AS_7] = "AS";
5422   surfxml_statenames[S_surfxml_AS_8] = "AS";
5423   surfxml_statenames[E_surfxml_AS] = "AS";
5424   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5425   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5426   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5427   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5428   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5429   surfxml_statenames[AL_surfxml_argument] = NULL;
5430   surfxml_statenames[E_surfxml_argument] = "argument";
5431   surfxml_statenames[AL_surfxml_backbone] = NULL;
5432   surfxml_statenames[E_surfxml_backbone] = "backbone";
5433   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5434   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5435   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5436   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5437   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5438   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5439   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5440   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5441   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5442   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5443   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5444   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5445   surfxml_statenames[AL_surfxml_cluster] = NULL;
5446   surfxml_statenames[S_surfxml_cluster] = "cluster";
5447   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5448   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5449   surfxml_statenames[E_surfxml_cluster] = "cluster";
5450   surfxml_statenames[AL_surfxml_config] = NULL;
5451   surfxml_statenames[S_surfxml_config] = "config";
5452   surfxml_statenames[S_surfxml_config_1] = "config";
5453   surfxml_statenames[S_surfxml_config_2] = "config";
5454   surfxml_statenames[E_surfxml_config] = "config";
5455   surfxml_statenames[AL_surfxml_host] = NULL;
5456   surfxml_statenames[S_surfxml_host] = "host";
5457   surfxml_statenames[S_surfxml_host_1] = "host";
5458   surfxml_statenames[S_surfxml_host_2] = "host";
5459   surfxml_statenames[E_surfxml_host] = "host";
5460   surfxml_statenames[AL_surfxml_host___link] = NULL;
5461   surfxml_statenames[E_surfxml_host___link] = "host_link";
5462   surfxml_statenames[AL_surfxml_include] = NULL;
5463   surfxml_statenames[S_surfxml_include] = "include";
5464   surfxml_statenames[S_surfxml_include_1] = "include";
5465   surfxml_statenames[S_surfxml_include_2] = "include";
5466   surfxml_statenames[E_surfxml_include] = "include";
5467   surfxml_statenames[AL_surfxml_link] = NULL;
5468   surfxml_statenames[S_surfxml_link] = "link";
5469   surfxml_statenames[S_surfxml_link_1] = "link";
5470   surfxml_statenames[S_surfxml_link_2] = "link";
5471   surfxml_statenames[E_surfxml_link] = "link";
5472   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5473   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5474   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5475   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5476   surfxml_statenames[AL_surfxml_mount] = NULL;
5477   surfxml_statenames[E_surfxml_mount] = "mount";
5478   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5479   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5480   surfxml_statenames[AL_surfxml_peer] = NULL;
5481   surfxml_statenames[E_surfxml_peer] = "peer";
5482   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5483   surfxml_statenames[AL_surfxml_platform] = NULL;
5484   surfxml_statenames[S_surfxml_platform] = "platform";
5485   surfxml_statenames[S_surfxml_platform_1] = "platform";
5486   surfxml_statenames[S_surfxml_platform_2] = "platform";
5487   surfxml_statenames[S_surfxml_platform_3] = "platform";
5488   surfxml_statenames[S_surfxml_platform_4] = "platform";
5489   surfxml_statenames[S_surfxml_platform_5] = "platform";
5490   surfxml_statenames[S_surfxml_platform_6] = "platform";
5491   surfxml_statenames[S_surfxml_platform_7] = "platform";
5492   surfxml_statenames[S_surfxml_platform_8] = "platform";
5493   surfxml_statenames[E_surfxml_platform] = "platform";
5494   surfxml_statenames[AL_surfxml_process] = NULL;
5495   surfxml_statenames[S_surfxml_process] = "process";
5496   surfxml_statenames[S_surfxml_process_1] = "process";
5497   surfxml_statenames[S_surfxml_process_2] = "process";
5498   surfxml_statenames[E_surfxml_process] = "process";
5499   surfxml_statenames[AL_surfxml_prop] = NULL;
5500   surfxml_statenames[E_surfxml_prop] = "prop";
5501   surfxml_statenames[AL_surfxml_random] = NULL;
5502   surfxml_statenames[E_surfxml_random] = "random";
5503   surfxml_statenames[AL_surfxml_route] = NULL;
5504   surfxml_statenames[S_surfxml_route] = "route";
5505   surfxml_statenames[S_surfxml_route_1] = "route";
5506   surfxml_statenames[S_surfxml_route_2] = "route";
5507   surfxml_statenames[E_surfxml_route] = "route";
5508   surfxml_statenames[AL_surfxml_router] = NULL;
5509   surfxml_statenames[E_surfxml_router] = "router";
5510   surfxml_statenames[AL_surfxml_storage] = NULL;
5511   surfxml_statenames[S_surfxml_storage] = "storage";
5512   surfxml_statenames[S_surfxml_storage_1] = "storage";
5513   surfxml_statenames[S_surfxml_storage_2] = "storage";
5514   surfxml_statenames[E_surfxml_storage] = "storage";
5515   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5516   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5517   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5518   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5519   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5520   surfxml_statenames[AL_surfxml_trace] = NULL;
5521   surfxml_statenames[IN_trace] = "trace";
5522   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5523   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5524   }
5525
5526  /* COMMENTS and PIs: handled uniformly for efficiency. */
5527
5528         while ( 1 )             /* loops until end-of-file is reached */
5529                 {
5530                 yy_cp = (yy_c_buf_p);
5531
5532                 /* Support of surf_parse_text. */
5533                 *yy_cp = (yy_hold_char);
5534
5535                 /* yy_bp points to the position in yy_ch_buf of the start of
5536                  * the current run.
5537                  */
5538                 yy_bp = yy_cp;
5539
5540                 yy_current_state = (yy_start);
5541 yy_match:
5542                 do
5543                         {
5544                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5545                         if ( yy_accept[yy_current_state] )
5546                                 {
5547                                 (yy_last_accepting_state) = yy_current_state;
5548                                 (yy_last_accepting_cpos) = yy_cp;
5549                                 }
5550                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5551                                 {
5552                                 yy_current_state = (int) yy_def[yy_current_state];
5553                                 if ( yy_current_state >= 3396 )
5554                                         yy_c = yy_meta[(unsigned int) yy_c];
5555                                 }
5556                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5557                         ++yy_cp;
5558                         }
5559                 while ( yy_base[yy_current_state] != 12118 );
5560
5561 yy_find_action:
5562                 yy_act = yy_accept[yy_current_state];
5563                 if ( yy_act == 0 )
5564                         { /* have to back up */
5565                         yy_cp = (yy_last_accepting_cpos);
5566                         yy_current_state = (yy_last_accepting_state);
5567                         yy_act = yy_accept[yy_current_state];
5568                         }
5569
5570                 YY_DO_BEFORE_ACTION;
5571
5572                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5573                         {
5574                         yy_size_t yyl;
5575                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5576                                 if ( surf_parse_text[yyl] == '\n' )
5577                                            
5578     surf_parse_lineno++;
5579 ;
5580                         }
5581
5582 do_action:      /* This label is used only to access EOF actions. */
5583
5584                 switch ( yy_act )
5585         { /* beginning of action switch */
5586                         case 0: /* must back up */
5587                         /* undo the effects of YY_DO_BEFORE_ACTION */
5588                         *yy_cp = (yy_hold_char);
5589                         yy_cp = (yy_last_accepting_cpos);
5590                         yy_current_state = (yy_last_accepting_state);
5591                         goto yy_find_action;
5592
5593 case 1:
5594 YY_RULE_SETUP
5595 ENTER(INCOMMENT);
5596         YY_BREAK
5597 case 2:
5598 YY_RULE_SETUP
5599 ENTER(INPI);
5600         YY_BREAK
5601
5602 case 3:
5603 YY_RULE_SETUP
5604 LEAVE;
5605         YY_BREAK
5606 case 4:
5607 case 5:
5608 case 6:
5609 /* rule 6 can match eol */
5610 YY_RULE_SETUP
5611 SKIP;
5612         YY_BREAK
5613 case YY_STATE_EOF(INCOMMENT):
5614 FAIL("EOF in comment.");
5615         YY_BREAK
5616
5617 case 7:
5618 YY_RULE_SETUP
5619 LEAVE;
5620         YY_BREAK
5621 case 8:
5622 case 9:
5623 /* rule 9 can match eol */
5624 YY_RULE_SETUP
5625 SKIP;
5626         YY_BREAK
5627 case YY_STATE_EOF(INPI):
5628 FAIL("EOF in PI (processing instruction).");
5629         YY_BREAK
5630
5631 /* SPACES: skipped uniformly */
5632 case 10:
5633 /* rule 10 can match eol */
5634 YY_RULE_SETUP
5635 SKIP;
5636         YY_BREAK
5637 /* PROLOG: determine root element and process it. */
5638
5639 case 11:
5640 /* rule 11 can match eol */
5641 YY_RULE_SETUP
5642 SET(DOCTYPE); 
5643         YY_BREAK
5644 case 12:
5645 /* rule 12 can match eol */
5646 YY_RULE_SETUP
5647 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",surf_parse_text);
5648         YY_BREAK
5649
5650 case 13:
5651 /* rule 13 can match eol */
5652 YY_RULE_SETUP
5653 SET(ROOT_surfxml_platform);
5654         YY_BREAK
5655 case 14:
5656 /* rule 14 can match eol */
5657 YY_RULE_SETUP
5658 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",surf_parse_text);
5659         YY_BREAK
5660 case 15:
5661 YY_RULE_SETUP
5662 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5663         YY_BREAK
5664 case YY_STATE_EOF(PROLOG):
5665 case YY_STATE_EOF(DOCTYPE):
5666 FAIL("EOF in prolog.");
5667         YY_BREAK
5668
5669 /* RULES DERIVED FROM DTD. */
5670 case 16:
5671 /* rule 16 can match eol */
5672 YY_RULE_SETUP
5673 FAIL("Starting tag <AS> is not allowed here.");
5674         YY_BREAK
5675 case 17:
5676 /* rule 17 can match eol */
5677 YY_RULE_SETUP
5678 {
5679   AX_surfxml_AS_id = 0;
5680   surfxml_AS_id_isset = 0;
5681   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
5682   surfxml_AS_routing_isset = 0;
5683   ENTER(AL_surfxml_AS); pushbuffer(0);
5684   }
5685         YY_BREAK
5686
5687 case 18:
5688 /* rule 18 can match eol */
5689 YY_RULE_SETUP
5690 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
5691         YY_BREAK
5692 case 19:
5693 /* rule 19 can match eol */
5694 YY_RULE_SETUP
5695 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
5696         YY_BREAK
5697 case 20:
5698 /* rule 20 can match eol */
5699 case 21:
5700 /* rule 21 can match eol */
5701 YY_RULE_SETUP
5702 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5703         YY_BREAK
5704 case 22:
5705 /* rule 22 can match eol */
5706 case 23:
5707 /* rule 23 can match eol */
5708 YY_RULE_SETUP
5709 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5710         YY_BREAK
5711 case 24:
5712 /* rule 24 can match eol */
5713 case 25:
5714 /* rule 25 can match eol */
5715 YY_RULE_SETUP
5716 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5717         YY_BREAK
5718 case 26:
5719 /* rule 26 can match eol */
5720 case 27:
5721 /* rule 27 can match eol */
5722 YY_RULE_SETUP
5723 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5724         YY_BREAK
5725 case 28:
5726 /* rule 28 can match eol */
5727 case 29:
5728 /* rule 29 can match eol */
5729 YY_RULE_SETUP
5730 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5731         YY_BREAK
5732 case 30:
5733 /* rule 30 can match eol */
5734 case 31:
5735 /* rule 31 can match eol */
5736 YY_RULE_SETUP
5737 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5738         YY_BREAK
5739 case 32:
5740 /* rule 32 can match eol */
5741 case 33:
5742 /* rule 33 can match eol */
5743 YY_RULE_SETUP
5744 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5745         YY_BREAK
5746 case 34:
5747 /* rule 34 can match eol */
5748 case 35:
5749 /* rule 35 can match eol */
5750 YY_RULE_SETUP
5751 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
5752         YY_BREAK
5753 case 36:
5754 /* rule 36 can match eol */
5755 case 37:
5756 /* rule 37 can match eol */
5757 YY_RULE_SETUP
5758 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
5759         YY_BREAK
5760 case 38:
5761 YY_RULE_SETUP
5762 {
5763   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5764   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5765   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5766  }
5767         YY_BREAK
5768 case 39:
5769 YY_RULE_SETUP
5770 {
5771   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5772   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5773   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5774   switch (YY_START) {
5775    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5776    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5777    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5778   }
5779  }
5780         YY_BREAK
5781 case 40:
5782 YY_RULE_SETUP
5783 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5784         YY_BREAK
5785 case 41:
5786 YY_RULE_SETUP
5787 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5788         YY_BREAK
5789 case YY_STATE_EOF(AL_surfxml_AS):
5790 FAIL("EOF in attribute list of `AS' element.");
5791         YY_BREAK
5792
5793 case 42:
5794 /* rule 42 can match eol */
5795 YY_RULE_SETUP
5796 {
5797   LEAVE;
5798   ETag_surfxml_AS();
5799   popbuffer(); /* attribute */
5800   switch (YY_START) {
5801    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5802    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5803    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5804   }
5805  }
5806         YY_BREAK
5807 case 43:
5808 /* rule 43 can match eol */
5809 YY_RULE_SETUP
5810 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5811         YY_BREAK
5812 case 44:
5813 YY_RULE_SETUP
5814 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5815         YY_BREAK
5816 case YY_STATE_EOF(E_surfxml_AS):
5817 case YY_STATE_EOF(S_surfxml_AS):
5818 case YY_STATE_EOF(S_surfxml_AS_1):
5819 case YY_STATE_EOF(S_surfxml_AS_3):
5820 case YY_STATE_EOF(S_surfxml_AS_4):
5821 case YY_STATE_EOF(S_surfxml_AS_6):
5822 case YY_STATE_EOF(S_surfxml_AS_8):
5823 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5824         YY_BREAK
5825
5826 case 45:
5827 /* rule 45 can match eol */
5828 YY_RULE_SETUP
5829 FAIL("Starting tag <ASroute> is not allowed here.");
5830         YY_BREAK
5831 case 46:
5832 /* rule 46 can match eol */
5833 YY_RULE_SETUP
5834 {
5835   AX_surfxml_ASroute_dst = 0;
5836   surfxml_ASroute_dst_isset = 0;
5837   AX_surfxml_ASroute_gw___dst = 0;
5838   surfxml_ASroute_gw___dst_isset = 0;
5839   AX_surfxml_ASroute_gw___src = 0;
5840   surfxml_ASroute_gw___src_isset = 0;
5841   AX_surfxml_ASroute_src = 0;
5842   surfxml_ASroute_src_isset = 0;
5843   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5844   surfxml_ASroute_symmetrical_isset = 0;
5845   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5846   }
5847         YY_BREAK
5848
5849 case 47:
5850 /* rule 47 can match eol */
5851 YY_RULE_SETUP
5852 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
5853         YY_BREAK
5854 case 48:
5855 /* rule 48 can match eol */
5856 YY_RULE_SETUP
5857 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
5858         YY_BREAK
5859 case 49:
5860 /* rule 49 can match eol */
5861 YY_RULE_SETUP
5862 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
5863         YY_BREAK
5864 case 50:
5865 /* rule 50 can match eol */
5866 YY_RULE_SETUP
5867 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
5868         YY_BREAK
5869 case 51:
5870 /* rule 51 can match eol */
5871 YY_RULE_SETUP
5872 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
5873         YY_BREAK
5874 case 52:
5875 /* rule 52 can match eol */
5876 YY_RULE_SETUP
5877 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
5878         YY_BREAK
5879 case 53:
5880 /* rule 53 can match eol */
5881 YY_RULE_SETUP
5882 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
5883         YY_BREAK
5884 case 54:
5885 /* rule 54 can match eol */
5886 YY_RULE_SETUP
5887 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
5888         YY_BREAK
5889 case 55:
5890 /* rule 55 can match eol */
5891 case 56:
5892 /* rule 56 can match eol */
5893 YY_RULE_SETUP
5894 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5895         YY_BREAK
5896 case 57:
5897 /* rule 57 can match eol */
5898 case 58:
5899 /* rule 58 can match eol */
5900 YY_RULE_SETUP
5901 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
5902         YY_BREAK
5903 case 59:
5904 YY_RULE_SETUP
5905 {
5906   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5907   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5908   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5909   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5910   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
5911  }
5912         YY_BREAK
5913 case 60:
5914 YY_RULE_SETUP
5915 {
5916   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5917   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5918   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5919   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5920   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
5921   switch (YY_START) {
5922    case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5923    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
5924   }
5925  }
5926         YY_BREAK
5927 case 61:
5928 YY_RULE_SETUP
5929 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
5930         YY_BREAK
5931 case 62:
5932 YY_RULE_SETUP
5933 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
5934         YY_BREAK
5935 case YY_STATE_EOF(AL_surfxml_ASroute):
5936 FAIL("EOF in attribute list of `ASroute' element.");
5937         YY_BREAK
5938
5939 case 63:
5940 /* rule 63 can match eol */
5941 YY_RULE_SETUP
5942 {
5943   LEAVE;
5944   ETag_surfxml_ASroute();
5945   popbuffer(); /* attribute */
5946   switch (YY_START) {
5947    case S_surfxml_AS_3: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5948    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
5949   }
5950  }
5951         YY_BREAK
5952 case 64:
5953 /* rule 64 can match eol */
5954 YY_RULE_SETUP
5955 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
5956         YY_BREAK
5957 case 65:
5958 YY_RULE_SETUP
5959 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
5960         YY_BREAK
5961 case YY_STATE_EOF(E_surfxml_ASroute):
5962 case YY_STATE_EOF(S_surfxml_ASroute):
5963 case YY_STATE_EOF(S_surfxml_ASroute_2):
5964 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
5965         YY_BREAK
5966
5967 case 66:
5968 /* rule 66 can match eol */
5969 YY_RULE_SETUP
5970 FAIL("Starting tag <argument> is not allowed here.");
5971         YY_BREAK
5972 case 67:
5973 /* rule 67 can match eol */
5974 YY_RULE_SETUP
5975 {
5976   AX_surfxml_argument_value = 0;
5977   surfxml_argument_value_isset = 0;
5978   ENTER(AL_surfxml_argument); pushbuffer(0);
5979   }
5980         YY_BREAK
5981
5982 case 68:
5983 /* rule 68 can match eol */
5984 YY_RULE_SETUP
5985 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
5986         YY_BREAK
5987 case 69:
5988 /* rule 69 can match eol */
5989 YY_RULE_SETUP
5990 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
5991         YY_BREAK
5992 case 70:
5993 YY_RULE_SETUP
5994 {
5995   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5996   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
5997  }
5998         YY_BREAK
5999 case 71:
6000 YY_RULE_SETUP
6001 {
6002   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6003   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6004   switch (YY_START) {
6005    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6006   }
6007  }
6008         YY_BREAK
6009 case 72:
6010 YY_RULE_SETUP
6011 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6012         YY_BREAK
6013 case 73:
6014 YY_RULE_SETUP
6015 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6016         YY_BREAK
6017 case YY_STATE_EOF(AL_surfxml_argument):
6018 FAIL("EOF in attribute list of `argument' element.");
6019         YY_BREAK
6020
6021 case 74:
6022 /* rule 74 can match eol */
6023 YY_RULE_SETUP
6024 {
6025   LEAVE;
6026   ETag_surfxml_argument();
6027   popbuffer(); /* attribute */
6028   switch (YY_START) {
6029    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6030   }
6031  }
6032         YY_BREAK
6033 case 75:
6034 /* rule 75 can match eol */
6035 YY_RULE_SETUP
6036 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6037         YY_BREAK
6038 case 76:
6039 YY_RULE_SETUP
6040 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6041         YY_BREAK
6042 case YY_STATE_EOF(E_surfxml_argument):
6043 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
6044         YY_BREAK
6045
6046 case 77:
6047 /* rule 77 can match eol */
6048 YY_RULE_SETUP
6049 FAIL("Starting tag <backbone> is not allowed here.");
6050         YY_BREAK
6051 case 78:
6052 /* rule 78 can match eol */
6053 YY_RULE_SETUP
6054 {
6055   AX_surfxml_backbone_bandwidth = 0;
6056   surfxml_backbone_bandwidth_isset = 0;
6057   AX_surfxml_backbone_id = 0;
6058   surfxml_backbone_id_isset = 0;
6059   AX_surfxml_backbone_latency = 0;
6060   surfxml_backbone_latency_isset = 0;
6061   ENTER(AL_surfxml_backbone); pushbuffer(0);
6062   }
6063         YY_BREAK
6064
6065 case 79:
6066 /* rule 79 can match eol */
6067 YY_RULE_SETUP
6068 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
6069         YY_BREAK
6070 case 80:
6071 /* rule 80 can match eol */
6072 YY_RULE_SETUP
6073 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
6074         YY_BREAK
6075 case 81:
6076 /* rule 81 can match eol */
6077 YY_RULE_SETUP
6078 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
6079         YY_BREAK
6080 case 82:
6081 /* rule 82 can match eol */
6082 YY_RULE_SETUP
6083 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
6084         YY_BREAK
6085 case 83:
6086 /* rule 83 can match eol */
6087 YY_RULE_SETUP
6088 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
6089         YY_BREAK
6090 case 84:
6091 /* rule 84 can match eol */
6092 YY_RULE_SETUP
6093 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
6094         YY_BREAK
6095 case 85:
6096 YY_RULE_SETUP
6097 {
6098   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6099   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6100   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6101   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
6102  }
6103         YY_BREAK
6104 case 86:
6105 YY_RULE_SETUP
6106 {
6107   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6108   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6109   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6110   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6111   switch (YY_START) {
6112    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6113   }
6114  }
6115         YY_BREAK
6116 case 87:
6117 YY_RULE_SETUP
6118 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6119         YY_BREAK
6120 case 88:
6121 YY_RULE_SETUP
6122 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6123         YY_BREAK
6124 case YY_STATE_EOF(AL_surfxml_backbone):
6125 FAIL("EOF in attribute list of `backbone' element.");
6126         YY_BREAK
6127
6128 case 89:
6129 /* rule 89 can match eol */
6130 YY_RULE_SETUP
6131 {
6132   LEAVE;
6133   ETag_surfxml_backbone();
6134   popbuffer(); /* attribute */
6135   switch (YY_START) {
6136    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6137   }
6138  }
6139         YY_BREAK
6140 case 90:
6141 /* rule 90 can match eol */
6142 YY_RULE_SETUP
6143 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6144         YY_BREAK
6145 case 91:
6146 YY_RULE_SETUP
6147 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6148         YY_BREAK
6149 case YY_STATE_EOF(E_surfxml_backbone):
6150 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
6151         YY_BREAK
6152
6153 case 92:
6154 /* rule 92 can match eol */
6155 YY_RULE_SETUP
6156 FAIL("Starting tag <bypassASroute> is not allowed here.");
6157         YY_BREAK
6158 case 93:
6159 /* rule 93 can match eol */
6160 YY_RULE_SETUP
6161 {
6162   AX_surfxml_bypassASroute_dst = 0;
6163   surfxml_bypassASroute_dst_isset = 0;
6164   AX_surfxml_bypassASroute_gw___dst = 0;
6165   surfxml_bypassASroute_gw___dst_isset = 0;
6166   AX_surfxml_bypassASroute_gw___src = 0;
6167   surfxml_bypassASroute_gw___src_isset = 0;
6168   AX_surfxml_bypassASroute_src = 0;
6169   surfxml_bypassASroute_src_isset = 0;
6170   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
6171   }
6172         YY_BREAK
6173
6174 case 94:
6175 /* rule 94 can match eol */
6176 YY_RULE_SETUP
6177 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
6178         YY_BREAK
6179 case 95:
6180 /* rule 95 can match eol */
6181 YY_RULE_SETUP
6182 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
6183         YY_BREAK
6184 case 96:
6185 /* rule 96 can match eol */
6186 YY_RULE_SETUP
6187 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
6188         YY_BREAK
6189 case 97:
6190 /* rule 97 can match eol */
6191 YY_RULE_SETUP
6192 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
6193         YY_BREAK
6194 case 98:
6195 /* rule 98 can match eol */
6196 YY_RULE_SETUP
6197 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
6198         YY_BREAK
6199 case 99:
6200 /* rule 99 can match eol */
6201 YY_RULE_SETUP
6202 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
6203         YY_BREAK
6204 case 100:
6205 /* rule 100 can match eol */
6206 YY_RULE_SETUP
6207 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
6208         YY_BREAK
6209 case 101:
6210 /* rule 101 can match eol */
6211 YY_RULE_SETUP
6212 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
6213         YY_BREAK
6214 case 102:
6215 YY_RULE_SETUP
6216 {
6217   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6218   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6219   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6220   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6221   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
6222  }
6223         YY_BREAK
6224 case 103:
6225 YY_RULE_SETUP
6226 {
6227   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6228   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6229   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6230   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6231   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
6232   switch (YY_START) {
6233    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6234   }
6235  }
6236         YY_BREAK
6237 case 104:
6238 YY_RULE_SETUP
6239 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
6240         YY_BREAK
6241 case 105:
6242 YY_RULE_SETUP
6243 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
6244         YY_BREAK
6245 case YY_STATE_EOF(AL_surfxml_bypassASroute):
6246 FAIL("EOF in attribute list of `bypassASroute' element.");
6247         YY_BREAK
6248
6249 case 106:
6250 /* rule 106 can match eol */
6251 YY_RULE_SETUP
6252 {
6253   LEAVE;
6254   ETag_surfxml_bypassASroute();
6255   popbuffer(); /* attribute */
6256   switch (YY_START) {
6257    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6258   }
6259  }
6260         YY_BREAK
6261 case 107:
6262 /* rule 107 can match eol */
6263 YY_RULE_SETUP
6264 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
6265         YY_BREAK
6266 case 108:
6267 YY_RULE_SETUP
6268 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
6269         YY_BREAK
6270 case YY_STATE_EOF(E_surfxml_bypassASroute):
6271 case YY_STATE_EOF(S_surfxml_bypassASroute):
6272 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
6273 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
6274         YY_BREAK
6275
6276 case 109:
6277 /* rule 109 can match eol */
6278 YY_RULE_SETUP
6279 FAIL("Starting tag <bypassRoute> is not allowed here.");
6280         YY_BREAK
6281 case 110:
6282 /* rule 110 can match eol */
6283 YY_RULE_SETUP
6284 {
6285   AX_surfxml_bypassRoute_dst = 0;
6286   surfxml_bypassRoute_dst_isset = 0;
6287   AX_surfxml_bypassRoute_src = 0;
6288   surfxml_bypassRoute_src_isset = 0;
6289   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
6290   }
6291         YY_BREAK
6292
6293 case 111:
6294 /* rule 111 can match eol */
6295 YY_RULE_SETUP
6296 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
6297         YY_BREAK
6298 case 112:
6299 /* rule 112 can match eol */
6300 YY_RULE_SETUP
6301 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
6302         YY_BREAK
6303 case 113:
6304 /* rule 113 can match eol */
6305 YY_RULE_SETUP
6306 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
6307         YY_BREAK
6308 case 114:
6309 /* rule 114 can match eol */
6310 YY_RULE_SETUP
6311 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
6312         YY_BREAK
6313 case 115:
6314 YY_RULE_SETUP
6315 {
6316   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6317   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6318   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
6319  }
6320         YY_BREAK
6321 case 116:
6322 YY_RULE_SETUP
6323 {
6324   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6325   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6326   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
6327   switch (YY_START) {
6328    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6329   }
6330  }
6331         YY_BREAK
6332 case 117:
6333 YY_RULE_SETUP
6334 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
6335         YY_BREAK
6336 case 118:
6337 YY_RULE_SETUP
6338 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
6339         YY_BREAK
6340 case YY_STATE_EOF(AL_surfxml_bypassRoute):
6341 FAIL("EOF in attribute list of `bypassRoute' element.");
6342         YY_BREAK
6343
6344 case 119:
6345 /* rule 119 can match eol */
6346 YY_RULE_SETUP
6347 {
6348   LEAVE;
6349   ETag_surfxml_bypassRoute();
6350   popbuffer(); /* attribute */
6351   switch (YY_START) {
6352    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6353   }
6354  }
6355         YY_BREAK
6356 case 120:
6357 /* rule 120 can match eol */
6358 YY_RULE_SETUP
6359 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
6360         YY_BREAK
6361 case 121:
6362 YY_RULE_SETUP
6363 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
6364         YY_BREAK
6365 case YY_STATE_EOF(E_surfxml_bypassRoute):
6366 case YY_STATE_EOF(S_surfxml_bypassRoute):
6367 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
6368 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
6369         YY_BREAK
6370
6371 case 122:
6372 /* rule 122 can match eol */
6373 YY_RULE_SETUP
6374 FAIL("Starting tag <cabinet> is not allowed here.");
6375         YY_BREAK
6376 case 123:
6377 /* rule 123 can match eol */
6378 YY_RULE_SETUP
6379 {
6380   AX_surfxml_cabinet_bw = 0;
6381   surfxml_cabinet_bw_isset = 0;
6382   AX_surfxml_cabinet_id = 0;
6383   surfxml_cabinet_id_isset = 0;
6384   AX_surfxml_cabinet_lat = 0;
6385   surfxml_cabinet_lat_isset = 0;
6386   AX_surfxml_cabinet_prefix = 0;
6387   surfxml_cabinet_prefix_isset = 0;
6388   AX_surfxml_cabinet_radical = 0;
6389   surfxml_cabinet_radical_isset = 0;
6390   AX_surfxml_cabinet_speed = 0;
6391   surfxml_cabinet_speed_isset = 0;
6392   AX_surfxml_cabinet_suffix = 0;
6393   surfxml_cabinet_suffix_isset = 0;
6394   ENTER(AL_surfxml_cabinet); pushbuffer(0);
6395   }
6396         YY_BREAK
6397
6398 case 124:
6399 /* rule 124 can match eol */
6400 YY_RULE_SETUP
6401 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
6402         YY_BREAK
6403 case 125:
6404 /* rule 125 can match eol */
6405 YY_RULE_SETUP
6406 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
6407         YY_BREAK
6408 case 126:
6409 /* rule 126 can match eol */
6410 YY_RULE_SETUP
6411 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
6412         YY_BREAK
6413 case 127:
6414 /* rule 127 can match eol */
6415 YY_RULE_SETUP
6416 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
6417         YY_BREAK
6418 case 128:
6419 /* rule 128 can match eol */
6420 YY_RULE_SETUP
6421 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
6422         YY_BREAK
6423 case 129:
6424 /* rule 129 can match eol */
6425 YY_RULE_SETUP
6426 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
6427         YY_BREAK
6428 case 130:
6429 /* rule 130 can match eol */
6430 YY_RULE_SETUP
6431 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
6432         YY_BREAK
6433 case 131:
6434 /* rule 131 can match eol */
6435 YY_RULE_SETUP
6436 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
6437         YY_BREAK
6438 case 132:
6439 /* rule 132 can match eol */
6440 YY_RULE_SETUP
6441 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
6442         YY_BREAK
6443 case 133:
6444 /* rule 133 can match eol */
6445 YY_RULE_SETUP
6446 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
6447         YY_BREAK
6448 case 134:
6449 /* rule 134 can match eol */
6450 YY_RULE_SETUP
6451 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
6452         YY_BREAK
6453 case 135:
6454 /* rule 135 can match eol */
6455 YY_RULE_SETUP
6456 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
6457         YY_BREAK
6458 case 136:
6459 /* rule 136 can match eol */
6460 YY_RULE_SETUP
6461 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
6462         YY_BREAK
6463 case 137:
6464 /* rule 137 can match eol */
6465 YY_RULE_SETUP
6466 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
6467         YY_BREAK
6468 case 138:
6469 YY_RULE_SETUP
6470 {
6471   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6472   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6473   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6474   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6475   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6476   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6477   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6478   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
6479  }
6480         YY_BREAK
6481 case 139:
6482 YY_RULE_SETUP
6483 {
6484   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6485   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6486   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6487   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6488   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6489   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6490   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6491   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
6492   switch (YY_START) {
6493    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6494    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6495    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6496   }
6497  }
6498         YY_BREAK
6499 case 140:
6500 YY_RULE_SETUP
6501 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
6502         YY_BREAK
6503 case 141:
6504 YY_RULE_SETUP
6505 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
6506         YY_BREAK
6507 case YY_STATE_EOF(AL_surfxml_cabinet):
6508 FAIL("EOF in attribute list of `cabinet' element.");
6509         YY_BREAK
6510
6511 case 142:
6512 /* rule 142 can match eol */
6513 YY_RULE_SETUP
6514 {
6515   LEAVE;
6516   ETag_surfxml_cabinet();
6517   popbuffer(); /* attribute */
6518   switch (YY_START) {
6519    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6520    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6521    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6522   }
6523  }
6524         YY_BREAK
6525 case 143:
6526 /* rule 143 can match eol */
6527 YY_RULE_SETUP
6528 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
6529         YY_BREAK
6530 case 144:
6531 YY_RULE_SETUP
6532 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
6533         YY_BREAK
6534 case YY_STATE_EOF(E_surfxml_cabinet):
6535 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
6536         YY_BREAK
6537
6538 case 145:
6539 /* rule 145 can match eol */
6540 YY_RULE_SETUP
6541 FAIL("Starting tag <cluster> is not allowed here.");
6542         YY_BREAK
6543 case 146:
6544 /* rule 146 can match eol */
6545 YY_RULE_SETUP
6546 {
6547   AX_surfxml_cluster_availability___file = 0;
6548   surfxml_cluster_availability___file_isset = 0;
6549   AX_surfxml_cluster_bb___bw = 0;
6550   surfxml_cluster_bb___bw_isset = 0;
6551   AX_surfxml_cluster_bb___lat = 42;
6552   surfxml_cluster_bb___lat_isset = 0;
6553   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6554   surfxml_cluster_bb___sharing___policy_isset = 0;
6555   AX_surfxml_cluster_bw = 0;
6556   surfxml_cluster_bw_isset = 0;
6557   AX_surfxml_cluster_core = 40;
6558   surfxml_cluster_core_isset = 0;
6559   AX_surfxml_cluster_id = 0;
6560   surfxml_cluster_id_isset = 0;
6561   AX_surfxml_cluster_lat = 0;
6562   surfxml_cluster_lat_isset = 0;
6563   AX_surfxml_cluster_limiter___link = 0;
6564   surfxml_cluster_limiter___link_isset = 0;
6565   AX_surfxml_cluster_loopback___bw = 0;
6566   surfxml_cluster_loopback___bw_isset = 0;
6567   AX_surfxml_cluster_loopback___lat = 0;
6568   surfxml_cluster_loopback___lat_isset = 0;
6569   AX_surfxml_cluster_prefix = 0;
6570   surfxml_cluster_prefix_isset = 0;
6571   AX_surfxml_cluster_radical = 0;
6572   surfxml_cluster_radical_isset = 0;
6573   AX_surfxml_cluster_router___id = 0;
6574   surfxml_cluster_router___id_isset = 0;
6575   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6576   surfxml_cluster_sharing___policy_isset = 0;
6577   AX_surfxml_cluster_speed = 0;
6578   surfxml_cluster_speed_isset = 0;
6579   AX_surfxml_cluster_state___file = 0;
6580   surfxml_cluster_state___file_isset = 0;
6581   AX_surfxml_cluster_suffix = 0;
6582   surfxml_cluster_suffix_isset = 0;
6583   AX_surfxml_cluster_topo___parameters = 0;
6584   surfxml_cluster_topo___parameters_isset = 0;
6585   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6586   surfxml_cluster_topology_isset = 0;
6587   ENTER(AL_surfxml_cluster); pushbuffer(0);
6588   }
6589         YY_BREAK
6590
6591 case 147:
6592 /* rule 147 can match eol */
6593 YY_RULE_SETUP
6594 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
6595         YY_BREAK
6596 case 148:
6597 /* rule 148 can match eol */
6598 YY_RULE_SETUP
6599 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
6600         YY_BREAK
6601 case 149:
6602 /* rule 149 can match eol */
6603 YY_RULE_SETUP
6604 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
6605         YY_BREAK
6606 case 150:
6607 /* rule 150 can match eol */
6608 YY_RULE_SETUP
6609 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
6610         YY_BREAK
6611 case 151:
6612 /* rule 151 can match eol */
6613 YY_RULE_SETUP
6614 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
6615         YY_BREAK
6616 case 152:
6617 /* rule 152 can match eol */
6618 YY_RULE_SETUP
6619 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
6620         YY_BREAK
6621 case 153:
6622 /* rule 153 can match eol */
6623 case 154:
6624 /* rule 154 can match eol */
6625 YY_RULE_SETUP
6626 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6627         YY_BREAK
6628 case 155:
6629 /* rule 155 can match eol */
6630 case 156:
6631 /* rule 156 can match eol */
6632 YY_RULE_SETUP
6633 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
6634         YY_BREAK
6635 case 157:
6636 /* rule 157 can match eol */
6637 YY_RULE_SETUP
6638 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
6639         YY_BREAK
6640 case 158:
6641 /* rule 158 can match eol */
6642 YY_RULE_SETUP
6643 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
6644         YY_BREAK
6645 case 159:
6646 /* rule 159 can match eol */
6647 YY_RULE_SETUP
6648 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
6649         YY_BREAK
6650 case 160:
6651 /* rule 160 can match eol */
6652 YY_RULE_SETUP
6653 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
6654         YY_BREAK
6655 case 161:
6656 /* rule 161 can match eol */
6657 YY_RULE_SETUP
6658 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6659         YY_BREAK
6660 case 162:
6661 /* rule 162 can match eol */
6662 YY_RULE_SETUP
6663 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6664         YY_BREAK
6665 case 163:
6666 /* rule 163 can match eol */
6667 YY_RULE_SETUP
6668 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
6669         YY_BREAK
6670 case 164:
6671 /* rule 164 can match eol */
6672 YY_RULE_SETUP
6673 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
6674         YY_BREAK
6675 case 165:
6676 /* rule 165 can match eol */
6677 YY_RULE_SETUP
6678 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
6679         YY_BREAK
6680 case 166:
6681 /* rule 166 can match eol */
6682 YY_RULE_SETUP
6683 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
6684         YY_BREAK
6685 case 167:
6686 /* rule 167 can match eol */
6687 YY_RULE_SETUP
6688 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
6689         YY_BREAK
6690 case 168:
6691 /* rule 168 can match eol */
6692 YY_RULE_SETUP
6693 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
6694         YY_BREAK
6695 case 169:
6696 /* rule 169 can match eol */
6697 YY_RULE_SETUP
6698 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
6699         YY_BREAK
6700 case 170:
6701 /* rule 170 can match eol */
6702 YY_RULE_SETUP
6703 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
6704         YY_BREAK
6705 case 171:
6706 /* rule 171 can match eol */
6707 YY_RULE_SETUP
6708 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6709         YY_BREAK
6710 case 172:
6711 /* rule 172 can match eol */
6712 YY_RULE_SETUP
6713 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6714         YY_BREAK
6715 case 173:
6716 /* rule 173 can match eol */
6717 YY_RULE_SETUP
6718 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
6719         YY_BREAK
6720 case 174:
6721 /* rule 174 can match eol */
6722 YY_RULE_SETUP
6723 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
6724         YY_BREAK
6725 case 175:
6726 /* rule 175 can match eol */
6727 YY_RULE_SETUP
6728 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
6729         YY_BREAK
6730 case 176:
6731 /* rule 176 can match eol */
6732 YY_RULE_SETUP
6733 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
6734         YY_BREAK
6735 case 177:
6736 /* rule 177 can match eol */
6737 case 178:
6738 /* rule 178 can match eol */
6739 YY_RULE_SETUP
6740 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
6741         YY_BREAK
6742 case 179:
6743 /* rule 179 can match eol */
6744 case 180:
6745 /* rule 180 can match eol */
6746 YY_RULE_SETUP
6747 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6748         YY_BREAK
6749 case 181:
6750 /* rule 181 can match eol */
6751 case 182:
6752 /* rule 182 can match eol */
6753 YY_RULE_SETUP
6754 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
6755         YY_BREAK
6756 case 183:
6757 /* rule 183 can match eol */
6758 YY_RULE_SETUP
6759 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
6760         YY_BREAK
6761 case 184:
6762 /* rule 184 can match eol */
6763 YY_RULE_SETUP
6764 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
6765         YY_BREAK
6766 case 185:
6767 /* rule 185 can match eol */
6768 YY_RULE_SETUP
6769 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
6770         YY_BREAK
6771 case 186:
6772 /* rule 186 can match eol */
6773 YY_RULE_SETUP
6774 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
6775         YY_BREAK
6776 case 187:
6777 /* rule 187 can match eol */
6778 YY_RULE_SETUP
6779 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
6780         YY_BREAK
6781 case 188:
6782 /* rule 188 can match eol */
6783 YY_RULE_SETUP
6784 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
6785         YY_BREAK
6786 case 189:
6787 /* rule 189 can match eol */
6788 YY_RULE_SETUP
6789 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
6790         YY_BREAK
6791 case 190:
6792 /* rule 190 can match eol */
6793 YY_RULE_SETUP
6794 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
6795         YY_BREAK
6796 case 191:
6797 /* rule 191 can match eol */
6798 case 192:
6799 /* rule 192 can match eol */
6800 YY_RULE_SETUP
6801 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6802         YY_BREAK
6803 case 193:
6804 /* rule 193 can match eol */
6805 case 194:
6806 /* rule 194 can match eol */
6807 YY_RULE_SETUP
6808 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
6809         YY_BREAK
6810 case 195:
6811 /* rule 195 can match eol */
6812 case 196:
6813 /* rule 196 can match eol */
6814 YY_RULE_SETUP
6815 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
6816         YY_BREAK
6817 case 197:
6818 YY_RULE_SETUP
6819 {
6820   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6821   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6822   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6823   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6824   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6825   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6826   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6827   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
6828  }
6829         YY_BREAK
6830 case 198:
6831 YY_RULE_SETUP
6832 {
6833   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6834   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6835   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6836   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6837   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6838   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6839   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6840   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6841   switch (YY_START) {
6842    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6843    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6844    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6845   }
6846  }
6847         YY_BREAK
6848 case 199:
6849 YY_RULE_SETUP
6850 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6851         YY_BREAK
6852 case 200:
6853 YY_RULE_SETUP
6854 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6855         YY_BREAK
6856 case YY_STATE_EOF(AL_surfxml_cluster):
6857 FAIL("EOF in attribute list of `cluster' element.");
6858         YY_BREAK
6859
6860 case 201:
6861 /* rule 201 can match eol */
6862 YY_RULE_SETUP
6863 {
6864   LEAVE;
6865   ETag_surfxml_cluster();
6866   popbuffer(); /* attribute */
6867   switch (YY_START) {
6868    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6869    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6870    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6871   }
6872  }
6873         YY_BREAK
6874 case 202:
6875 /* rule 202 can match eol */
6876 YY_RULE_SETUP
6877 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6878         YY_BREAK
6879 case 203:
6880 YY_RULE_SETUP
6881 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6882         YY_BREAK
6883 case YY_STATE_EOF(E_surfxml_cluster):
6884 case YY_STATE_EOF(S_surfxml_cluster):
6885 case YY_STATE_EOF(S_surfxml_cluster_2):
6886 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6887         YY_BREAK
6888
6889 case 204:
6890 /* rule 204 can match eol */
6891 YY_RULE_SETUP
6892 FAIL("Starting tag <config> is not allowed here.");
6893         YY_BREAK
6894 case 205:
6895 /* rule 205 can match eol */
6896 YY_RULE_SETUP
6897 {
6898   AX_surfxml_config_id = 0;
6899   surfxml_config_id_isset = 0;
6900   ENTER(AL_surfxml_config); pushbuffer(0);
6901   }
6902         YY_BREAK
6903
6904 case 206:
6905 /* rule 206 can match eol */
6906 YY_RULE_SETUP
6907 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
6908         YY_BREAK
6909 case 207:
6910 /* rule 207 can match eol */
6911 YY_RULE_SETUP
6912 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
6913         YY_BREAK
6914 case 208:
6915 YY_RULE_SETUP
6916 {
6917   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
6918  }
6919         YY_BREAK
6920 case 209:
6921 YY_RULE_SETUP
6922 {
6923   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
6924   switch (YY_START) {
6925    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6926   }
6927  }
6928         YY_BREAK
6929 case 210:
6930 YY_RULE_SETUP
6931 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
6932         YY_BREAK
6933 case 211:
6934 YY_RULE_SETUP
6935 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
6936         YY_BREAK
6937 case YY_STATE_EOF(AL_surfxml_config):
6938 FAIL("EOF in attribute list of `config' element.");
6939         YY_BREAK
6940
6941 case 212:
6942 /* rule 212 can match eol */
6943 YY_RULE_SETUP
6944 {
6945   LEAVE;
6946   ETag_surfxml_config();
6947   popbuffer(); /* attribute */
6948   switch (YY_START) {
6949    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6950   }
6951  }
6952         YY_BREAK
6953 case 213:
6954 /* rule 213 can match eol */
6955 YY_RULE_SETUP
6956 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
6957         YY_BREAK
6958 case 214:
6959 YY_RULE_SETUP
6960 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
6961         YY_BREAK
6962 case YY_STATE_EOF(E_surfxml_config):
6963 case YY_STATE_EOF(S_surfxml_config):
6964 case YY_STATE_EOF(S_surfxml_config_2):
6965 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
6966         YY_BREAK
6967
6968 case 215:
6969 /* rule 215 can match eol */
6970 YY_RULE_SETUP
6971 FAIL("Starting tag <host> is not allowed here.");
6972         YY_BREAK
6973 case 216:
6974 /* rule 216 can match eol */
6975 YY_RULE_SETUP
6976 {
6977   AX_surfxml_host_availability___file = 0;
6978   surfxml_host_availability___file_isset = 0;
6979   AX_surfxml_host_coordinates = 0;
6980   surfxml_host_coordinates_isset = 0;
6981   AX_surfxml_host_core = 25;
6982   surfxml_host_core_isset = 0;
6983   AX_surfxml_host_id = 0;
6984   surfxml_host_id_isset = 0;
6985   AX_surfxml_host_pstate = 27;
6986   surfxml_host_pstate_isset = 0;
6987   AX_surfxml_host_speed = 0;
6988   surfxml_host_speed_isset = 0;
6989   AX_surfxml_host_state___file = 0;
6990   surfxml_host_state___file_isset = 0;
6991   ENTER(AL_surfxml_host); pushbuffer(0);
6992   }
6993         YY_BREAK
6994
6995 case 217:
6996 /* rule 217 can match eol */
6997 YY_RULE_SETUP
6998 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
6999         YY_BREAK
7000 case 218:
7001 /* rule 218 can match eol */
7002 YY_RULE_SETUP
7003 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
7004         YY_BREAK
7005 case 219:
7006 /* rule 219 can match eol */
7007 YY_RULE_SETUP
7008 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
7009         YY_BREAK
7010 case 220:
7011 /* rule 220 can match eol */
7012 YY_RULE_SETUP
7013 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
7014         YY_BREAK
7015 case 221:
7016 /* rule 221 can match eol */
7017 YY_RULE_SETUP
7018 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
7019         YY_BREAK
7020 case 222:
7021 /* rule 222 can match eol */
7022 YY_RULE_SETUP
7023 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
7024         YY_BREAK
7025 case 223:
7026 /* rule 223 can match eol */
7027 YY_RULE_SETUP
7028 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
7029         YY_BREAK
7030 case 224:
7031 /* rule 224 can match eol */
7032 YY_RULE_SETUP
7033 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
7034         YY_BREAK
7035 case 225:
7036 /* rule 225 can match eol */
7037 YY_RULE_SETUP
7038 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
7039         YY_BREAK
7040 case 226:
7041 /* rule 226 can match eol */
7042 YY_RULE_SETUP
7043 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
7044         YY_BREAK
7045 case 227:
7046 /* rule 227 can match eol */
7047 YY_RULE_SETUP
7048 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
7049         YY_BREAK
7050 case 228:
7051 /* rule 228 can match eol */
7052 YY_RULE_SETUP
7053 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
7054         YY_BREAK
7055 case 229:
7056 /* rule 229 can match eol */
7057 YY_RULE_SETUP
7058 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
7059         YY_BREAK
7060 case 230:
7061 /* rule 230 can match eol */
7062 YY_RULE_SETUP
7063 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
7064         YY_BREAK
7065 case 231:
7066 YY_RULE_SETUP
7067 {
7068   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7069   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7070   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7071  }
7072         YY_BREAK
7073 case 232:
7074 YY_RULE_SETUP
7075 {
7076   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7077   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7078   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7079   switch (YY_START) {
7080    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7081   }
7082  }
7083         YY_BREAK
7084 case 233:
7085 YY_RULE_SETUP
7086 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7087         YY_BREAK
7088 case 234:
7089 YY_RULE_SETUP
7090 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7091         YY_BREAK
7092 case YY_STATE_EOF(AL_surfxml_host):
7093 FAIL("EOF in attribute list of `host' element.");
7094         YY_BREAK
7095
7096 case 235:
7097 /* rule 235 can match eol */
7098 YY_RULE_SETUP
7099 {
7100   LEAVE;
7101   ETag_surfxml_host();
7102   popbuffer(); /* attribute */
7103   switch (YY_START) {
7104    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7105   }
7106  }
7107         YY_BREAK
7108 case 236:
7109 /* rule 236 can match eol */
7110 YY_RULE_SETUP
7111 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7112         YY_BREAK
7113 case 237:
7114 YY_RULE_SETUP
7115 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7116         YY_BREAK
7117 case YY_STATE_EOF(E_surfxml_host):
7118 case YY_STATE_EOF(S_surfxml_host):
7119 case YY_STATE_EOF(S_surfxml_host_2):
7120 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7121         YY_BREAK
7122
7123 case 238:
7124 /* rule 238 can match eol */
7125 YY_RULE_SETUP
7126 FAIL("Starting tag <host_link> is not allowed here.");
7127         YY_BREAK
7128 case 239:
7129 /* rule 239 can match eol */
7130 YY_RULE_SETUP
7131 {
7132   AX_surfxml_host___link_down = 0;
7133   surfxml_host___link_down_isset = 0;
7134   AX_surfxml_host___link_id = 0;
7135   surfxml_host___link_id_isset = 0;
7136   AX_surfxml_host___link_up = 0;
7137   surfxml_host___link_up_isset = 0;
7138   ENTER(AL_surfxml_host___link); pushbuffer(0);
7139   }
7140         YY_BREAK
7141
7142 case 240:
7143 /* rule 240 can match eol */
7144 YY_RULE_SETUP
7145 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
7146         YY_BREAK
7147 case 241:
7148 /* rule 241 can match eol */
7149 YY_RULE_SETUP
7150 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
7151         YY_BREAK
7152 case 242:
7153 /* rule 242 can match eol */
7154 YY_RULE_SETUP
7155 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
7156         YY_BREAK
7157 case 243:
7158 /* rule 243 can match eol */
7159 YY_RULE_SETUP
7160 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7161         YY_BREAK
7162 case 244:
7163 /* rule 244 can match eol */
7164 YY_RULE_SETUP
7165 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
7166         YY_BREAK
7167 case 245:
7168 /* rule 245 can match eol */
7169 YY_RULE_SETUP
7170 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7171         YY_BREAK
7172 case 246:
7173 YY_RULE_SETUP
7174 {
7175   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7176   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7177   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7178   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7179  }
7180         YY_BREAK
7181 case 247:
7182 YY_RULE_SETUP
7183 {
7184   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7185   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7186   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7187   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7188   switch (YY_START) {
7189    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7190   }
7191  }
7192         YY_BREAK
7193 case 248:
7194 YY_RULE_SETUP
7195 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7196         YY_BREAK
7197 case 249:
7198 YY_RULE_SETUP
7199 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7200         YY_BREAK
7201 case YY_STATE_EOF(AL_surfxml_host___link):
7202 FAIL("EOF in attribute list of `host_link' element.");
7203         YY_BREAK
7204
7205 case 250:
7206 /* rule 250 can match eol */
7207 YY_RULE_SETUP
7208 {
7209   LEAVE;
7210   ETag_surfxml_host___link();
7211   popbuffer(); /* attribute */
7212   switch (YY_START) {
7213    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7214   }
7215  }
7216         YY_BREAK
7217 case 251:
7218 /* rule 251 can match eol */
7219 YY_RULE_SETUP
7220 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7221         YY_BREAK
7222 case 252:
7223 YY_RULE_SETUP
7224 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7225         YY_BREAK
7226 case YY_STATE_EOF(E_surfxml_host___link):
7227 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7228         YY_BREAK
7229
7230 case 253:
7231 /* rule 253 can match eol */
7232 YY_RULE_SETUP
7233 FAIL("Starting tag <include> is not allowed here.");
7234         YY_BREAK
7235 case 254:
7236 /* rule 254 can match eol */
7237 YY_RULE_SETUP
7238 {
7239   AX_surfxml_include_file = 0;
7240   surfxml_include_file_isset = 0;
7241   ENTER(AL_surfxml_include); pushbuffer(0);
7242   }
7243         YY_BREAK
7244
7245 case 255:
7246 /* rule 255 can match eol */
7247 YY_RULE_SETUP
7248 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
7249         YY_BREAK
7250 case 256:
7251 /* rule 256 can match eol */
7252 YY_RULE_SETUP
7253 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
7254         YY_BREAK
7255 case 257:
7256 YY_RULE_SETUP
7257 {
7258   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7259   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
7260  }
7261         YY_BREAK
7262 case 258:
7263 YY_RULE_SETUP
7264 {
7265   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7266   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
7267   switch (YY_START) {
7268    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7269    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7270    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7271   }
7272  }
7273         YY_BREAK
7274 case 259:
7275 YY_RULE_SETUP
7276 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
7277         YY_BREAK
7278 case 260:
7279 YY_RULE_SETUP
7280 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
7281         YY_BREAK
7282 case YY_STATE_EOF(AL_surfxml_include):
7283 FAIL("EOF in attribute list of `include' element.");
7284         YY_BREAK
7285
7286 case 261:
7287 /* rule 261 can match eol */
7288 YY_RULE_SETUP
7289 {
7290   LEAVE;
7291   ETag_surfxml_include();
7292   popbuffer(); /* attribute */
7293   switch (YY_START) {
7294    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7295    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7296    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7297   }
7298  }
7299         YY_BREAK
7300 case 262:
7301 /* rule 262 can match eol */
7302 YY_RULE_SETUP
7303 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
7304         YY_BREAK
7305 case 263:
7306 YY_RULE_SETUP
7307 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
7308         YY_BREAK
7309 case YY_STATE_EOF(E_surfxml_include):
7310 case YY_STATE_EOF(S_surfxml_include):
7311 case YY_STATE_EOF(S_surfxml_include_2):
7312 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
7313         YY_BREAK
7314
7315 case 264:
7316 /* rule 264 can match eol */
7317 YY_RULE_SETUP
7318 FAIL("Starting tag <link> is not allowed here.");
7319         YY_BREAK
7320 case 265:
7321 /* rule 265 can match eol */
7322 YY_RULE_SETUP
7323 {
7324   AX_surfxml_link_bandwidth = 0;
7325   surfxml_link_bandwidth_isset = 0;
7326   AX_surfxml_link_bandwidth___file = 0;
7327   surfxml_link_bandwidth___file_isset = 0;
7328   AX_surfxml_link_id = 0;
7329   surfxml_link_id_isset = 0;
7330   AX_surfxml_link_latency = 0;
7331   surfxml_link_latency_isset = 0;
7332   AX_surfxml_link_latency___file = 0;
7333   surfxml_link_latency___file_isset = 0;
7334   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7335   surfxml_link_sharing___policy_isset = 0;
7336   AX_surfxml_link_state___file = 0;
7337   surfxml_link_state___file_isset = 0;
7338   ENTER(AL_surfxml_link); pushbuffer(0);
7339   }
7340         YY_BREAK
7341
7342 case 266:
7343 /* rule 266 can match eol */
7344 YY_RULE_SETUP
7345 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
7346         YY_BREAK
7347 case 267:
7348 /* rule 267 can match eol */
7349 YY_RULE_SETUP
7350 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
7351         YY_BREAK
7352 case 268:
7353 /* rule 268 can match eol */
7354 YY_RULE_SETUP
7355 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
7356         YY_BREAK
7357 case 269:
7358 /* rule 269 can match eol */
7359 YY_RULE_SETUP
7360 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
7361         YY_BREAK
7362 case 270:
7363 /* rule 270 can match eol */
7364 YY_RULE_SETUP
7365 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
7366         YY_BREAK
7367 case 271:
7368 /* rule 271 can match eol */
7369 YY_RULE_SETUP
7370 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
7371         YY_BREAK
7372 case 272:
7373 /* rule 272 can match eol */
7374 YY_RULE_SETUP
7375 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
7376         YY_BREAK
7377 case 273:
7378 /* rule 273 can match eol */
7379 YY_RULE_SETUP
7380 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
7381         YY_BREAK
7382 case 274:
7383 /* rule 274 can match eol */
7384 YY_RULE_SETUP
7385 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
7386         YY_BREAK
7387 case 275:
7388 /* rule 275 can match eol */
7389 YY_RULE_SETUP
7390 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
7391         YY_BREAK
7392 case 276:
7393 /* rule 276 can match eol */
7394 case 277:
7395 /* rule 277 can match eol */
7396 YY_RULE_SETUP
7397 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7398         YY_BREAK
7399 case 278:
7400 /* rule 278 can match eol */
7401 case 279:
7402 /* rule 279 can match eol */
7403 YY_RULE_SETUP
7404 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7405         YY_BREAK
7406 case 280:
7407 /* rule 280 can match eol */
7408 case 281:
7409 /* rule 281 can match eol */
7410 YY_RULE_SETUP
7411 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7412         YY_BREAK
7413 case 282:
7414 /* rule 282 can match eol */
7415 YY_RULE_SETUP
7416 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
7417         YY_BREAK
7418 case 283:
7419 /* rule 283 can match eol */
7420 YY_RULE_SETUP
7421 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
7422         YY_BREAK
7423 case 284:
7424 YY_RULE_SETUP
7425 {
7426   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7427   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7428   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7429  }
7430         YY_BREAK
7431 case 285:
7432 YY_RULE_SETUP
7433 {
7434   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7435   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7436   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7437   switch (YY_START) {
7438    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7439   }
7440  }
7441         YY_BREAK
7442 case 286:
7443 YY_RULE_SETUP
7444 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7445         YY_BREAK
7446 case 287:
7447 YY_RULE_SETUP
7448 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7449         YY_BREAK
7450 case YY_STATE_EOF(AL_surfxml_link):
7451 FAIL("EOF in attribute list of `link' element.");
7452         YY_BREAK
7453
7454 case 288:
7455 /* rule 288 can match eol */
7456 YY_RULE_SETUP
7457 {
7458   LEAVE;
7459   ETag_surfxml_link();
7460   popbuffer(); /* attribute */
7461   switch (YY_START) {
7462    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7463   }
7464  }
7465         YY_BREAK
7466 case 289:
7467 /* rule 289 can match eol */
7468 YY_RULE_SETUP
7469 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7470         YY_BREAK
7471 case 290:
7472 YY_RULE_SETUP
7473 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7474         YY_BREAK
7475 case YY_STATE_EOF(E_surfxml_link):
7476 case YY_STATE_EOF(S_surfxml_link):
7477 case YY_STATE_EOF(S_surfxml_link_2):
7478 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7479         YY_BREAK
7480
7481 case 291:
7482 /* rule 291 can match eol */
7483 YY_RULE_SETUP
7484 FAIL("Starting tag <link_ctn> is not allowed here.");
7485         YY_BREAK
7486 case 292:
7487 /* rule 292 can match eol */
7488 YY_RULE_SETUP
7489 {
7490   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7491   surfxml_link___ctn_direction_isset = 0;
7492   AX_surfxml_link___ctn_id = 0;
7493   surfxml_link___ctn_id_isset = 0;
7494   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
7495   }
7496         YY_BREAK
7497
7498 case 293:
7499 /* rule 293 can match eol */
7500 case 294:
7501 /* rule 294 can match eol */
7502 YY_RULE_SETUP
7503 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
7504         YY_BREAK
7505 case 295:
7506 /* rule 295 can match eol */
7507 case 296:
7508 /* rule 296 can match eol */
7509 YY_RULE_SETUP
7510 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
7511         YY_BREAK
7512 case 297:
7513 /* rule 297 can match eol */
7514 case 298:
7515 /* rule 298 can match eol */
7516 YY_RULE_SETUP
7517 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7518         YY_BREAK
7519 case 299:
7520 /* rule 299 can match eol */
7521 YY_RULE_SETUP
7522 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
7523         YY_BREAK
7524 case 300:
7525 /* rule 300 can match eol */
7526 YY_RULE_SETUP
7527 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
7528         YY_BREAK
7529 case 301:
7530 YY_RULE_SETUP
7531 {
7532   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7533   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
7534  }
7535         YY_BREAK
7536 case 302:
7537 YY_RULE_SETUP
7538 {
7539   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7540   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
7541   switch (YY_START) {
7542    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7543    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7544    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7545    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7546   }
7547  }
7548         YY_BREAK
7549 case 303:
7550 YY_RULE_SETUP
7551 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7552         YY_BREAK
7553 case 304:
7554 YY_RULE_SETUP
7555 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7556         YY_BREAK
7557 case YY_STATE_EOF(AL_surfxml_link___ctn):
7558 FAIL("EOF in attribute list of `link_ctn' element.");
7559         YY_BREAK
7560
7561 case 305:
7562 /* rule 305 can match eol */
7563 YY_RULE_SETUP
7564 {
7565   LEAVE;
7566   ETag_surfxml_link___ctn();
7567   popbuffer(); /* attribute */
7568   switch (YY_START) {
7569    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7570    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7571    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7572    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7573   }
7574  }
7575         YY_BREAK
7576 case 306:
7577 /* rule 306 can match eol */
7578 YY_RULE_SETUP
7579 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7580         YY_BREAK
7581 case 307:
7582 YY_RULE_SETUP
7583 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7584         YY_BREAK
7585 case YY_STATE_EOF(E_surfxml_link___ctn):
7586 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7587         YY_BREAK
7588
7589 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
7590   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
7591 case 308:
7592 /* rule 308 can match eol */
7593 YY_RULE_SETUP
7594 FAIL("Starting tag <model_prop> is not allowed here.");
7595         YY_BREAK
7596 case 309:
7597 /* rule 309 can match eol */
7598 YY_RULE_SETUP
7599 {
7600   AX_surfxml_model___prop_id = 0;
7601   surfxml_model___prop_id_isset = 0;
7602   AX_surfxml_model___prop_value = 0;
7603   surfxml_model___prop_value_isset = 0;
7604   ENTER(AL_surfxml_model___prop); pushbuffer(0);
7605   }
7606         YY_BREAK
7607
7608 case 310:
7609 /* rule 310 can match eol */
7610 YY_RULE_SETUP
7611 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
7612         YY_BREAK
7613 case 311:
7614 /* rule 311 can match eol */
7615 YY_RULE_SETUP
7616 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
7617         YY_BREAK
7618 case 312:
7619 /* rule 312 can match eol */
7620 YY_RULE_SETUP
7621 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
7622         YY_BREAK
7623 case 313:
7624 /* rule 313 can match eol */
7625 YY_RULE_SETUP
7626 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
7627         YY_BREAK
7628 case 314:
7629 YY_RULE_SETUP
7630 {
7631   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7632   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7633   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
7634  }
7635         YY_BREAK
7636 case 315:
7637 YY_RULE_SETUP
7638 {
7639   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7640   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7641   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
7642   switch (YY_START) {
7643    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7644   }
7645  }
7646         YY_BREAK
7647 case 316:
7648 YY_RULE_SETUP
7649 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
7650         YY_BREAK
7651 case 317:
7652 YY_RULE_SETUP
7653 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
7654         YY_BREAK
7655 case YY_STATE_EOF(AL_surfxml_model___prop):
7656 FAIL("EOF in attribute list of `model_prop' element.");
7657         YY_BREAK
7658
7659 case 318:
7660 /* rule 318 can match eol */
7661 YY_RULE_SETUP
7662 {
7663   LEAVE;
7664   ETag_surfxml_model___prop();
7665   popbuffer(); /* attribute */
7666   switch (YY_START) {
7667    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7668   }
7669  }
7670         YY_BREAK
7671 case 319:
7672 /* rule 319 can match eol */
7673 YY_RULE_SETUP
7674 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
7675         YY_BREAK
7676 case 320:
7677 YY_RULE_SETUP
7678 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
7679         YY_BREAK
7680 case YY_STATE_EOF(E_surfxml_model___prop):
7681 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
7682         YY_BREAK
7683
7684 case 321:
7685 /* rule 321 can match eol */
7686 YY_RULE_SETUP
7687 FAIL("Starting tag <mount> is not allowed here.");
7688         YY_BREAK
7689 case 322:
7690 /* rule 322 can match eol */
7691 YY_RULE_SETUP
7692 {
7693   AX_surfxml_mount_name = 0;
7694   surfxml_mount_name_isset = 0;
7695   AX_surfxml_mount_storageId = 0;
7696   surfxml_mount_storageId_isset = 0;
7697   ENTER(AL_surfxml_mount); pushbuffer(0);
7698   }
7699         YY_BREAK
7700
7701 case 323:
7702 /* rule 323 can match eol */
7703 YY_RULE_SETUP
7704 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
7705         YY_BREAK
7706 case 324:
7707 /* rule 324 can match eol */
7708 YY_RULE_SETUP
7709 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
7710         YY_BREAK
7711 case 325:
7712 /* rule 325 can match eol */
7713 YY_RULE_SETUP
7714 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
7715         YY_BREAK
7716 case 326:
7717 /* rule 326 can match eol */
7718 YY_RULE_SETUP
7719 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
7720         YY_BREAK
7721 case 327:
7722 YY_RULE_SETUP
7723 {
7724   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7725   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7726   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
7727  }
7728         YY_BREAK
7729 case 328:
7730 YY_RULE_SETUP
7731 {
7732   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7733   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7734   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
7735   switch (YY_START) {
7736    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7737   }
7738  }
7739         YY_BREAK
7740 case 329:
7741 YY_RULE_SETUP
7742 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
7743         YY_BREAK
7744 case 330:
7745 YY_RULE_SETUP
7746 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
7747         YY_BREAK
7748 case YY_STATE_EOF(AL_surfxml_mount):
7749 FAIL("EOF in attribute list of `mount' element.");
7750         YY_BREAK
7751
7752 case 331:
7753 /* rule 331 can match eol */
7754 YY_RULE_SETUP
7755 {
7756   LEAVE;
7757   ETag_surfxml_mount();
7758   popbuffer(); /* attribute */
7759   switch (YY_START) {
7760    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7761   }
7762  }
7763         YY_BREAK
7764 case 332:
7765 /* rule 332 can match eol */
7766 YY_RULE_SETUP
7767 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
7768         YY_BREAK
7769 case 333:
7770 YY_RULE_SETUP
7771 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
7772         YY_BREAK
7773 case YY_STATE_EOF(E_surfxml_mount):
7774 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
7775         YY_BREAK
7776
7777 case 334:
7778 /* rule 334 can match eol */
7779 YY_RULE_SETUP
7780 FAIL("Starting tag <mstorage> is not allowed here.");
7781         YY_BREAK
7782 case 335:
7783 /* rule 335 can match eol */
7784 YY_RULE_SETUP
7785 {
7786   AX_surfxml_mstorage_name = 0;
7787   surfxml_mstorage_name_isset = 0;
7788   AX_surfxml_mstorage_typeId = 0;
7789   surfxml_mstorage_typeId_isset = 0;
7790   ENTER(AL_surfxml_mstorage); pushbuffer(0);
7791   }
7792         YY_BREAK
7793
7794 case 336:
7795 /* rule 336 can match eol */
7796 YY_RULE_SETUP
7797 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
7798         YY_BREAK
7799 case 337:
7800 /* rule 337 can match eol */
7801 YY_RULE_SETUP
7802 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
7803         YY_BREAK
7804 case 338:
7805 /* rule 338 can match eol */
7806 YY_RULE_SETUP
7807 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
7808         YY_BREAK
7809 case 339:
7810 /* rule 339 can match eol */
7811 YY_RULE_SETUP
7812 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
7813         YY_BREAK
7814 case 340:
7815 YY_RULE_SETUP
7816 {
7817   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
7818   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
7819   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
7820  }
7821         YY_BREAK
7822 case 341:
7823 YY_RULE_SETUP
7824 {
7825   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
7826   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
7827   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
7828   switch (YY_START) {
7829    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7830   }
7831  }
7832         YY_BREAK
7833 case 342:
7834 YY_RULE_SETUP
7835 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
7836         YY_BREAK
7837 case 343:
7838 YY_RULE_SETUP
7839 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
7840         YY_BREAK
7841 case YY_STATE_EOF(AL_surfxml_mstorage):
7842 FAIL("EOF in attribute list of `mstorage' element.");
7843         YY_BREAK
7844
7845 case 344:
7846 /* rule 344 can match eol */
7847 YY_RULE_SETUP
7848 {
7849   LEAVE;
7850   ETag_surfxml_mstorage();
7851   popbuffer(); /* attribute */
7852   switch (YY_START) {
7853    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7854   }
7855  }
7856         YY_BREAK
7857 case 345:
7858 /* rule 345 can match eol */
7859 YY_RULE_SETUP
7860 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
7861         YY_BREAK
7862 case 346:
7863 YY_RULE_SETUP
7864 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
7865         YY_BREAK
7866 case YY_STATE_EOF(E_surfxml_mstorage):
7867 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
7868         YY_BREAK
7869
7870 case 347:
7871 /* rule 347 can match eol */
7872 YY_RULE_SETUP
7873 FAIL("Starting tag <peer> is not allowed here.");
7874         YY_BREAK
7875 case 348:
7876 /* rule 348 can match eol */
7877 YY_RULE_SETUP
7878 {
7879   AX_surfxml_peer_availability___file = 0;
7880   surfxml_peer_availability___file_isset = 0;
7881   AX_surfxml_peer_bw___in = 0;
7882   surfxml_peer_bw___in_isset = 0;
7883   AX_surfxml_peer_bw___out = 0;
7884   surfxml_peer_bw___out_isset = 0;
7885   AX_surfxml_peer_coordinates = 0;
7886   surfxml_peer_coordinates_isset = 0;
7887   AX_surfxml_peer_id = 0;
7888   surfxml_peer_id_isset = 0;
7889   AX_surfxml_peer_lat = 0;
7890   surfxml_peer_lat_isset = 0;
7891   AX_surfxml_peer_speed = 0;
7892   surfxml_peer_speed_isset = 0;
7893   AX_surfxml_peer_state___file = 0;
7894   surfxml_peer_state___file_isset = 0;
7895   ENTER(AL_surfxml_peer); pushbuffer(0);
7896   }
7897         YY_BREAK
7898
7899 case 349:
7900 /* rule 349 can match eol */
7901 YY_RULE_SETUP
7902 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
7903         YY_BREAK
7904 case 350:
7905 /* rule 350 can match eol */
7906 YY_RULE_SETUP
7907 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
7908         YY_BREAK
7909 case 351:
7910 /* rule 351 can match eol */
7911 YY_RULE_SETUP
7912 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
7913         YY_BREAK
7914 case 352:
7915 /* rule 352 can match eol */
7916 YY_RULE_SETUP
7917 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
7918         YY_BREAK
7919 case 353:
7920 /* rule 353 can match eol */
7921 YY_RULE_SETUP
7922 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
7923         YY_BREAK
7924 case 354:
7925 /* rule 354 can match eol */
7926 YY_RULE_SETUP
7927 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
7928         YY_BREAK
7929 case 355:
7930 /* rule 355 can match eol */
7931 YY_RULE_SETUP
7932 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7933         YY_BREAK
7934 case 356:
7935 /* rule 356 can match eol */
7936 YY_RULE_SETUP
7937 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7938         YY_BREAK
7939 case 357:
7940 /* rule 357 can match eol */
7941 YY_RULE_SETUP
7942 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
7943         YY_BREAK
7944 case 358:
7945 /* rule 358 can match eol */
7946 YY_RULE_SETUP
7947 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
7948         YY_BREAK
7949 case 359:
7950 /* rule 359 can match eol */
7951 YY_RULE_SETUP
7952 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
7953         YY_BREAK
7954 case 360:
7955 /* rule 360 can match eol */
7956 YY_RULE_SETUP
7957 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
7958         YY_BREAK
7959 case 361:
7960 /* rule 361 can match eol */
7961 YY_RULE_SETUP
7962 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
7963         YY_BREAK
7964 case 362:
7965 /* rule 362 can match eol */
7966 YY_RULE_SETUP
7967 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
7968         YY_BREAK
7969 case 363:
7970 /* rule 363 can match eol */
7971 YY_RULE_SETUP
7972 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
7973         YY_BREAK
7974 case 364:
7975 /* rule 364 can match eol */
7976 YY_RULE_SETUP
7977 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
7978         YY_BREAK
7979 case 365:
7980 YY_RULE_SETUP
7981 {
7982   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7983   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7984   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7985   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7986   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
7987   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7988  }
7989         YY_BREAK
7990 case 366:
7991 YY_RULE_SETUP
7992 {
7993   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7994   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7995   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7996   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7997   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
7998   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7999   switch (YY_START) {
8000    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8001    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8002    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8003   }
8004  }
8005         YY_BREAK
8006 case 367:
8007 YY_RULE_SETUP
8008 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8009         YY_BREAK
8010 case 368:
8011 YY_RULE_SETUP
8012 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8013         YY_BREAK
8014 case YY_STATE_EOF(AL_surfxml_peer):
8015 FAIL("EOF in attribute list of `peer' element.");
8016         YY_BREAK
8017
8018 case 369:
8019 /* rule 369 can match eol */
8020 YY_RULE_SETUP
8021 {
8022   LEAVE;
8023   ETag_surfxml_peer();
8024   popbuffer(); /* attribute */
8025   switch (YY_START) {
8026    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8027    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8028    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8029   }
8030  }
8031         YY_BREAK
8032 case 370:
8033 /* rule 370 can match eol */
8034 YY_RULE_SETUP
8035 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8036         YY_BREAK
8037 case 371:
8038 YY_RULE_SETUP
8039 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8040         YY_BREAK
8041 case YY_STATE_EOF(E_surfxml_peer):
8042 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8043         YY_BREAK
8044
8045 /* <!-- 
8046   *              DTD of SimGrid platform and deployment files.
8047   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
8048   * To upgrade your files, use the tool simgrid_update_xml
8049   * * New in DTD version 4 (in SimGrid 3.13):
8050   *    - Rename (power->speed) the attributes describing the amount of flop
8051   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
8052   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
8053   *    
8054   *    - In <host> and <link>, attributes availability and state are gone.
8055   *      It was redundent with state and availability traces, and with peak values.
8056   *    - The DOCTYPE points to the right URL (this file):
8057   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
8058   *      
8059   *    - Kill <gpu>. Was not doing anything.
8060   *    - A warning is emitted for unit-less values (they are still accepted).
8061   *      - speed. Default: 'f' or 'flops'. Also defined:
8062   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
8063   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
8064   *      - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
8065   *        Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
8066   *        And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
8067   *      - latency. Default: 's' second. Also defined:
8068   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
8069   * * New in DTD version 3 (in SimGrid 3.5):
8070   *    - The AS tag were introduced. Every platform should now
8071   *      contain an englobing AS tag.
8072   *    - Routes are now symmetric by default.
8073   *    - Renamed tags (for sake of XML sanity):
8074   *      - LINK:CTN -> LINK_CTN
8075   *      - TRACE:CONNECT -> TRACE_CONNECT
8076   * * New in DTD version 2 (in SimGrid 3.4):
8077   *    - Renamed tags:
8078   *      - CPU -> HOST
8079   *      - NETWORK_LINK -> LINK
8080   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
8081   *      - PLATFORM_DESCRIPTION -> PLATFORM
8082   * * New in DTD version 1 (in SimGrid 3.3):
8083   *    - DTD is now versionned with the version attribute of platform
8084   *    - Unit change: 
8085   *      - Link bandwidth: from Mb/s to b/s
8086   *      - CPU speed: from MFlop/s to Flop/s
8087   * -->  */
8088 case 372:
8089 /* rule 372 can match eol */
8090 YY_RULE_SETUP
8091 FAIL("Starting tag <platform> is not allowed here.");
8092         YY_BREAK
8093 case 373:
8094 /* rule 373 can match eol */
8095 YY_RULE_SETUP
8096 {
8097   AX_surfxml_platform_version = 1;
8098   surfxml_platform_version_isset = 0;
8099   ENTER(AL_surfxml_platform); pushbuffer(0);
8100   }
8101         YY_BREAK
8102
8103 case 374:
8104 /* rule 374 can match eol */
8105 YY_RULE_SETUP
8106 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
8107         YY_BREAK
8108 case 375:
8109 /* rule 375 can match eol */
8110 YY_RULE_SETUP
8111 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
8112         YY_BREAK
8113 case 376:
8114 YY_RULE_SETUP
8115 {
8116   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
8117  }
8118         YY_BREAK
8119 case 377:
8120 YY_RULE_SETUP
8121 {
8122   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
8123   switch (YY_START) {
8124    case ROOT_surfxml_platform: SET(EPILOG); break;
8125   }
8126  }
8127         YY_BREAK
8128 case 378:
8129 YY_RULE_SETUP
8130 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
8131         YY_BREAK
8132 case 379:
8133 YY_RULE_SETUP
8134 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
8135         YY_BREAK
8136 case YY_STATE_EOF(AL_surfxml_platform):
8137 FAIL("EOF in attribute list of `platform' element.");
8138         YY_BREAK
8139
8140 case 380:
8141 /* rule 380 can match eol */
8142 YY_RULE_SETUP
8143 {
8144   LEAVE;
8145   ETag_surfxml_platform();
8146   popbuffer(); /* attribute */
8147   switch (YY_START) {
8148    case ROOT_surfxml_platform: SET(EPILOG); break;
8149   }
8150  }
8151         YY_BREAK
8152 case 381:
8153 /* rule 381 can match eol */
8154 YY_RULE_SETUP
8155 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
8156         YY_BREAK
8157 case 382:
8158 YY_RULE_SETUP
8159 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
8160         YY_BREAK
8161 case YY_STATE_EOF(E_surfxml_platform):
8162 case YY_STATE_EOF(S_surfxml_platform):
8163 case YY_STATE_EOF(S_surfxml_platform_1):
8164 case YY_STATE_EOF(S_surfxml_platform_3):
8165 case YY_STATE_EOF(S_surfxml_platform_4):
8166 case YY_STATE_EOF(S_surfxml_platform_6):
8167 case YY_STATE_EOF(S_surfxml_platform_8):
8168 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
8169         YY_BREAK
8170
8171 case 383:
8172 /* rule 383 can match eol */
8173 YY_RULE_SETUP
8174 FAIL("Starting tag <process> is not allowed here.");
8175         YY_BREAK
8176 case 384:
8177 /* rule 384 can match eol */
8178 YY_RULE_SETUP
8179 {
8180   AX_surfxml_process_function = 0;
8181   surfxml_process_function_isset = 0;
8182   AX_surfxml_process_host = 0;
8183   surfxml_process_host_isset = 0;
8184   AX_surfxml_process_kill___time = 50;
8185   surfxml_process_kill___time_isset = 0;
8186   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8187   surfxml_process_on___failure_isset = 0;
8188   AX_surfxml_process_start___time = 45;
8189   surfxml_process_start___time_isset = 0;
8190   ENTER(AL_surfxml_process); pushbuffer(0);
8191   }
8192         YY_BREAK
8193
8194 case 385:
8195 /* rule 385 can match eol */
8196 YY_RULE_SETUP
8197 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
8198         YY_BREAK
8199 case 386:
8200 /* rule 386 can match eol */
8201 YY_RULE_SETUP
8202 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
8203         YY_BREAK
8204 case 387:
8205 /* rule 387 can match eol */
8206 YY_RULE_SETUP
8207 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
8208         YY_BREAK
8209 case 388:
8210 /* rule 388 can match eol */
8211 YY_RULE_SETUP
8212 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
8213         YY_BREAK
8214 case 389:
8215 /* rule 389 can match eol */
8216 YY_RULE_SETUP
8217 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
8218         YY_BREAK
8219 case 390:
8220 /* rule 390 can match eol */
8221 YY_RULE_SETUP
8222 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
8223         YY_BREAK
8224 case 391:
8225 /* rule 391 can match eol */
8226 case 392:
8227 /* rule 392 can match eol */
8228 YY_RULE_SETUP
8229 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8230         YY_BREAK
8231 case 393:
8232 /* rule 393 can match eol */
8233 case 394:
8234 /* rule 394 can match eol */
8235 YY_RULE_SETUP
8236 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8237         YY_BREAK
8238 case 395:
8239 /* rule 395 can match eol */
8240 YY_RULE_SETUP
8241 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
8242         YY_BREAK
8243 case 396:
8244 /* rule 396 can match eol */
8245 YY_RULE_SETUP
8246 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
8247         YY_BREAK
8248 case 397:
8249 YY_RULE_SETUP
8250 {
8251   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8252   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8253   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8254  }
8255         YY_BREAK
8256 case 398:
8257 YY_RULE_SETUP
8258 {
8259   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8260   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8261   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8262   switch (YY_START) {
8263    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8264   }
8265  }
8266         YY_BREAK
8267 case 399:
8268 YY_RULE_SETUP
8269 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8270         YY_BREAK
8271 case 400:
8272 YY_RULE_SETUP
8273 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8274         YY_BREAK
8275 case YY_STATE_EOF(AL_surfxml_process):
8276 FAIL("EOF in attribute list of `process' element.");
8277         YY_BREAK
8278
8279 case 401:
8280 /* rule 401 can match eol */
8281 YY_RULE_SETUP
8282 {
8283   LEAVE;
8284   ETag_surfxml_process();
8285   popbuffer(); /* attribute */
8286   switch (YY_START) {
8287    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8288   }
8289  }
8290         YY_BREAK
8291 case 402:
8292 /* rule 402 can match eol */
8293 YY_RULE_SETUP
8294 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8295         YY_BREAK
8296 case 403:
8297 YY_RULE_SETUP
8298 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8299         YY_BREAK
8300 case YY_STATE_EOF(E_surfxml_process):
8301 case YY_STATE_EOF(S_surfxml_process):
8302 case YY_STATE_EOF(S_surfxml_process_2):
8303 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8304         YY_BREAK
8305
8306 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8307   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8308 case 404:
8309 /* rule 404 can match eol */
8310 YY_RULE_SETUP
8311 FAIL("Starting tag <prop> is not allowed here.");
8312         YY_BREAK
8313 case 405:
8314 /* rule 405 can match eol */
8315 YY_RULE_SETUP
8316 {
8317   AX_surfxml_prop_id = 0;
8318   surfxml_prop_id_isset = 0;
8319   AX_surfxml_prop_value = 0;
8320   surfxml_prop_value_isset = 0;
8321   ENTER(AL_surfxml_prop); pushbuffer(0);
8322   }
8323         YY_BREAK
8324
8325 case 406:
8326 /* rule 406 can match eol */
8327 YY_RULE_SETUP
8328 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
8329         YY_BREAK
8330 case 407:
8331 /* rule 407 can match eol */
8332 YY_RULE_SETUP
8333 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
8334         YY_BREAK
8335 case 408:
8336 /* rule 408 can match eol */
8337 YY_RULE_SETUP
8338 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
8339         YY_BREAK
8340 case 409:
8341 /* rule 409 can match eol */
8342 YY_RULE_SETUP
8343 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
8344         YY_BREAK
8345 case 410:
8346 YY_RULE_SETUP
8347 {
8348   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8349   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8350   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8351  }
8352         YY_BREAK
8353 case 411:
8354 YY_RULE_SETUP
8355 {
8356   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8357   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8358   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8359   switch (YY_START) {
8360    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8361    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8362    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8363    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8364    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8365    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8366    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8367    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8368   }
8369  }
8370         YY_BREAK
8371 case 412:
8372 YY_RULE_SETUP
8373 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8374         YY_BREAK
8375 case 413:
8376 YY_RULE_SETUP
8377 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8378         YY_BREAK
8379 case YY_STATE_EOF(AL_surfxml_prop):
8380 FAIL("EOF in attribute list of `prop' element.");
8381         YY_BREAK
8382
8383 case 414:
8384 /* rule 414 can match eol */
8385 YY_RULE_SETUP
8386 {
8387   LEAVE;
8388   ETag_surfxml_prop();
8389   popbuffer(); /* attribute */
8390   switch (YY_START) {
8391    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8392    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8393    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8394    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8395    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8396    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8397    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8398    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8399   }
8400  }
8401         YY_BREAK
8402 case 415:
8403 /* rule 415 can match eol */
8404 YY_RULE_SETUP
8405 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8406         YY_BREAK
8407 case 416:
8408 YY_RULE_SETUP
8409 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8410         YY_BREAK
8411 case YY_STATE_EOF(E_surfxml_prop):
8412 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8413         YY_BREAK
8414
8415 case 417:
8416 /* rule 417 can match eol */
8417 YY_RULE_SETUP
8418 FAIL("Starting tag <random> is not allowed here.");
8419         YY_BREAK
8420 case 418:
8421 /* rule 418 can match eol */
8422 YY_RULE_SETUP
8423 {
8424   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8425   surfxml_random_generator_isset = 0;
8426   AX_surfxml_random_id = 0;
8427   surfxml_random_id_isset = 0;
8428   AX_surfxml_random_max = 0;
8429   surfxml_random_max_isset = 0;
8430   AX_surfxml_random_mean = 0;
8431   surfxml_random_mean_isset = 0;
8432   AX_surfxml_random_min = 0;
8433   surfxml_random_min_isset = 0;
8434   AX_surfxml_random_radical = 0;
8435   surfxml_random_radical_isset = 0;
8436   AX_surfxml_random_seed = 5;
8437   surfxml_random_seed_isset = 0;
8438   AX_surfxml_random_std___deviation = 0;
8439   surfxml_random_std___deviation_isset = 0;
8440   ENTER(AL_surfxml_random); pushbuffer(0);
8441   }
8442         YY_BREAK
8443
8444 case 419:
8445 /* rule 419 can match eol */
8446 case 420:
8447 /* rule 420 can match eol */
8448 YY_RULE_SETUP
8449 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8450         YY_BREAK
8451 case 421:
8452 /* rule 421 can match eol */
8453 case 422:
8454 /* rule 422 can match eol */
8455 YY_RULE_SETUP
8456 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
8457         YY_BREAK
8458 case 423:
8459 /* rule 423 can match eol */
8460 case 424:
8461 /* rule 424 can match eol */
8462 YY_RULE_SETUP
8463 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
8464         YY_BREAK
8465 case 425:
8466 /* rule 425 can match eol */
8467 case 426:
8468 /* rule 426 can match eol */
8469 YY_RULE_SETUP
8470 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
8471         YY_BREAK
8472 case 427:
8473 /* rule 427 can match eol */
8474 YY_RULE_SETUP
8475 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
8476         YY_BREAK
8477 case 428:
8478 /* rule 428 can match eol */
8479 YY_RULE_SETUP
8480 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
8481         YY_BREAK
8482 case 429:
8483 /* rule 429 can match eol */
8484 YY_RULE_SETUP
8485 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
8486         YY_BREAK
8487 case 430:
8488 /* rule 430 can match eol */
8489 YY_RULE_SETUP
8490 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
8491         YY_BREAK
8492 case 431:
8493 /* rule 431 can match eol */
8494 YY_RULE_SETUP
8495 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
8496         YY_BREAK
8497 case 432:
8498 /* rule 432 can match eol */
8499 YY_RULE_SETUP
8500 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
8501         YY_BREAK
8502 case 433:
8503 /* rule 433 can match eol */
8504 YY_RULE_SETUP
8505 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
8506         YY_BREAK
8507 case 434:
8508 /* rule 434 can match eol */
8509 YY_RULE_SETUP
8510 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
8511         YY_BREAK
8512 case 435:
8513 /* rule 435 can match eol */
8514 YY_RULE_SETUP
8515 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
8516         YY_BREAK
8517 case 436:
8518 /* rule 436 can match eol */
8519 YY_RULE_SETUP
8520 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
8521         YY_BREAK
8522 case 437:
8523 /* rule 437 can match eol */
8524 YY_RULE_SETUP
8525 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
8526         YY_BREAK
8527 case 438:
8528 /* rule 438 can match eol */
8529 YY_RULE_SETUP
8530 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
8531         YY_BREAK
8532 case 439:
8533 /* rule 439 can match eol */
8534 YY_RULE_SETUP
8535 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
8536         YY_BREAK
8537 case 440:
8538 /* rule 440 can match eol */
8539 YY_RULE_SETUP
8540 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
8541         YY_BREAK
8542 case 441:
8543 YY_RULE_SETUP
8544 {
8545   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8546   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8547   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8548   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8549   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8550   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
8551  }
8552         YY_BREAK
8553 case 442:
8554 YY_RULE_SETUP
8555 {
8556   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8557   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8558   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8559   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8560   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8561   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
8562   switch (YY_START) {
8563    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8564   }
8565  }
8566         YY_BREAK
8567 case 443:
8568 YY_RULE_SETUP
8569 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
8570         YY_BREAK
8571 case 444:
8572 YY_RULE_SETUP
8573 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
8574         YY_BREAK
8575 case YY_STATE_EOF(AL_surfxml_random):
8576 FAIL("EOF in attribute list of `random' element.");
8577         YY_BREAK
8578
8579 case 445:
8580 /* rule 445 can match eol */
8581 YY_RULE_SETUP
8582 {
8583   LEAVE;
8584   ETag_surfxml_random();
8585   popbuffer(); /* attribute */
8586   switch (YY_START) {
8587    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8588   }
8589  }
8590         YY_BREAK
8591 case 446:
8592 /* rule 446 can match eol */
8593 YY_RULE_SETUP
8594 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
8595         YY_BREAK
8596 case 447:
8597 YY_RULE_SETUP
8598 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
8599         YY_BREAK
8600 case YY_STATE_EOF(E_surfxml_random):
8601 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
8602         YY_BREAK
8603
8604 case 448:
8605 /* rule 448 can match eol */
8606 YY_RULE_SETUP
8607 FAIL("Starting tag <route> is not allowed here.");
8608         YY_BREAK
8609 case 449:
8610 /* rule 449 can match eol */
8611 YY_RULE_SETUP
8612 {
8613   AX_surfxml_route_dst = 0;
8614   surfxml_route_dst_isset = 0;
8615   AX_surfxml_route_src = 0;
8616   surfxml_route_src_isset = 0;
8617   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8618   surfxml_route_symmetrical_isset = 0;
8619   ENTER(AL_surfxml_route); pushbuffer(0);
8620   }
8621         YY_BREAK
8622
8623 case 450:
8624 /* rule 450 can match eol */
8625 YY_RULE_SETUP
8626 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
8627         YY_BREAK
8628 case 451:
8629 /* rule 451 can match eol */
8630 YY_RULE_SETUP
8631 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
8632         YY_BREAK
8633 case 452:
8634 /* rule 452 can match eol */
8635 YY_RULE_SETUP
8636 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
8637         YY_BREAK
8638 case 453:
8639 /* rule 453 can match eol */
8640 YY_RULE_SETUP
8641 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
8642         YY_BREAK
8643 case 454:
8644 /* rule 454 can match eol */
8645 case 455:
8646 /* rule 455 can match eol */
8647 YY_RULE_SETUP
8648 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8649         YY_BREAK
8650 case 456:
8651 /* rule 456 can match eol */
8652 case 457:
8653 /* rule 457 can match eol */
8654 YY_RULE_SETUP
8655 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8656         YY_BREAK
8657 case 458:
8658 YY_RULE_SETUP
8659 {
8660   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8661   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8662   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8663  }
8664         YY_BREAK
8665 case 459:
8666 YY_RULE_SETUP
8667 {
8668   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8669   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8670   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8671   switch (YY_START) {
8672    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8673   }
8674  }
8675         YY_BREAK
8676 case 460:
8677 YY_RULE_SETUP
8678 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8679         YY_BREAK
8680 case 461:
8681 YY_RULE_SETUP
8682 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8683         YY_BREAK
8684 case YY_STATE_EOF(AL_surfxml_route):
8685 FAIL("EOF in attribute list of `route' element.");
8686         YY_BREAK
8687
8688 case 462:
8689 /* rule 462 can match eol */
8690 YY_RULE_SETUP
8691 {
8692   LEAVE;
8693   ETag_surfxml_route();
8694   popbuffer(); /* attribute */
8695   switch (YY_START) {
8696    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8697   }
8698  }
8699         YY_BREAK
8700 case 463:
8701 /* rule 463 can match eol */
8702 YY_RULE_SETUP
8703 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8704         YY_BREAK
8705 case 464:
8706 YY_RULE_SETUP
8707 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8708         YY_BREAK
8709 case YY_STATE_EOF(E_surfxml_route):
8710 case YY_STATE_EOF(S_surfxml_route):
8711 case YY_STATE_EOF(S_surfxml_route_2):
8712 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8713         YY_BREAK
8714
8715 case 465:
8716 /* rule 465 can match eol */
8717 YY_RULE_SETUP
8718 FAIL("Starting tag <router> is not allowed here.");
8719         YY_BREAK
8720 case 466:
8721 /* rule 466 can match eol */
8722 YY_RULE_SETUP
8723 {
8724   AX_surfxml_router_coordinates = 0;
8725   surfxml_router_coordinates_isset = 0;
8726   AX_surfxml_router_id = 0;
8727   surfxml_router_id_isset = 0;
8728   ENTER(AL_surfxml_router); pushbuffer(0);
8729   }
8730         YY_BREAK
8731
8732 case 467:
8733 /* rule 467 can match eol */
8734 YY_RULE_SETUP
8735 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
8736         YY_BREAK
8737 case 468:
8738 /* rule 468 can match eol */
8739 YY_RULE_SETUP
8740 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
8741         YY_BREAK
8742 case 469:
8743 /* rule 469 can match eol */
8744 YY_RULE_SETUP
8745 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
8746         YY_BREAK
8747 case 470:
8748 /* rule 470 can match eol */
8749 YY_RULE_SETUP
8750 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
8751         YY_BREAK
8752 case 471:
8753 YY_RULE_SETUP
8754 {
8755   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8756   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8757  }
8758         YY_BREAK
8759 case 472:
8760 YY_RULE_SETUP
8761 {
8762   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8763   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8764   switch (YY_START) {
8765    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8766   }
8767  }
8768         YY_BREAK
8769 case 473:
8770 YY_RULE_SETUP
8771 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8772         YY_BREAK
8773 case 474:
8774 YY_RULE_SETUP
8775 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8776         YY_BREAK
8777 case YY_STATE_EOF(AL_surfxml_router):
8778 FAIL("EOF in attribute list of `router' element.");
8779         YY_BREAK
8780
8781 case 475:
8782 /* rule 475 can match eol */
8783 YY_RULE_SETUP
8784 {
8785   LEAVE;
8786   ETag_surfxml_router();
8787   popbuffer(); /* attribute */
8788   switch (YY_START) {
8789    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8790   }
8791  }
8792         YY_BREAK
8793 case 476:
8794 /* rule 476 can match eol */
8795 YY_RULE_SETUP
8796 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8797         YY_BREAK
8798 case 477:
8799 YY_RULE_SETUP
8800 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8801         YY_BREAK
8802 case YY_STATE_EOF(E_surfxml_router):
8803 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8804         YY_BREAK
8805
8806 case 478:
8807 /* rule 478 can match eol */
8808 YY_RULE_SETUP
8809 FAIL("Starting tag <storage> is not allowed here.");
8810         YY_BREAK
8811 case 479:
8812 /* rule 479 can match eol */
8813 YY_RULE_SETUP
8814 {
8815   AX_surfxml_storage_attach = 0;
8816   surfxml_storage_attach_isset = 0;
8817   AX_surfxml_storage_content = 0;
8818   surfxml_storage_content_isset = 0;
8819   AX_surfxml_storage_content___type = 31;
8820   surfxml_storage_content___type_isset = 0;
8821   AX_surfxml_storage_id = 0;
8822   surfxml_storage_id_isset = 0;
8823   AX_surfxml_storage_typeId = 0;
8824   surfxml_storage_typeId_isset = 0;
8825   ENTER(AL_surfxml_storage); pushbuffer(0);
8826   }
8827         YY_BREAK
8828
8829 case 480:
8830 /* rule 480 can match eol */
8831 YY_RULE_SETUP
8832 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
8833         YY_BREAK
8834 case 481:
8835 /* rule 481 can match eol */
8836 YY_RULE_SETUP
8837 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
8838         YY_BREAK
8839 case 482:
8840 /* rule 482 can match eol */
8841 YY_RULE_SETUP
8842 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
8843         YY_BREAK
8844 case 483:
8845 /* rule 483 can match eol */
8846 YY_RULE_SETUP
8847 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
8848         YY_BREAK
8849 case 484:
8850 /* rule 484 can match eol */
8851 YY_RULE_SETUP
8852 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
8853         YY_BREAK
8854 case 485:
8855 /* rule 485 can match eol */
8856 YY_RULE_SETUP
8857 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
8858         YY_BREAK
8859 case 486:
8860 /* rule 486 can match eol */
8861 YY_RULE_SETUP
8862 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
8863         YY_BREAK
8864 case 487:
8865 /* rule 487 can match eol */
8866 YY_RULE_SETUP
8867 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
8868         YY_BREAK
8869 case 488:
8870 /* rule 488 can match eol */
8871 YY_RULE_SETUP
8872 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
8873         YY_BREAK
8874 case 489:
8875 /* rule 489 can match eol */
8876 YY_RULE_SETUP
8877 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
8878         YY_BREAK
8879 case 490:
8880 YY_RULE_SETUP
8881 {
8882   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
8883   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
8884   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
8885   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
8886  }
8887         YY_BREAK
8888 case 491:
8889 YY_RULE_SETUP
8890 {
8891   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
8892   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
8893   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
8894   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
8895   switch (YY_START) {
8896    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8897   }
8898  }
8899         YY_BREAK
8900 case 492:
8901 YY_RULE_SETUP
8902 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
8903         YY_BREAK
8904 case 493:
8905 YY_RULE_SETUP
8906 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
8907         YY_BREAK
8908 case YY_STATE_EOF(AL_surfxml_storage):
8909 FAIL("EOF in attribute list of `storage' element.");
8910         YY_BREAK
8911
8912 case 494:
8913 /* rule 494 can match eol */
8914 YY_RULE_SETUP
8915 {
8916   LEAVE;
8917   ETag_surfxml_storage();
8918   popbuffer(); /* attribute */
8919   switch (YY_START) {
8920    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8921   }
8922  }
8923         YY_BREAK
8924 case 495:
8925 /* rule 495 can match eol */
8926 YY_RULE_SETUP
8927 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
8928         YY_BREAK
8929 case 496:
8930 YY_RULE_SETUP
8931 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
8932         YY_BREAK
8933 case YY_STATE_EOF(E_surfxml_storage):
8934 case YY_STATE_EOF(S_surfxml_storage):
8935 case YY_STATE_EOF(S_surfxml_storage_2):
8936 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
8937         YY_BREAK
8938
8939 case 497:
8940 /* rule 497 can match eol */
8941 YY_RULE_SETUP
8942 FAIL("Starting tag <storage_type> is not allowed here.");
8943         YY_BREAK
8944 case 498:
8945 /* rule 498 can match eol */
8946 YY_RULE_SETUP
8947 {
8948   AX_surfxml_storage___type_content = 0;
8949   surfxml_storage___type_content_isset = 0;
8950   AX_surfxml_storage___type_content___type = 16;
8951   surfxml_storage___type_content___type_isset = 0;
8952   AX_surfxml_storage___type_id = 0;
8953   surfxml_storage___type_id_isset = 0;
8954   AX_surfxml_storage___type_model = 0;
8955   surfxml_storage___type_model_isset = 0;
8956   AX_surfxml_storage___type_size = 0;
8957   surfxml_storage___type_size_isset = 0;
8958   ENTER(AL_surfxml_storage___type); pushbuffer(0);
8959   }
8960         YY_BREAK
8961
8962 case 499:
8963 /* rule 499 can match eol */
8964 YY_RULE_SETUP
8965 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
8966         YY_BREAK
8967 case 500:
8968 /* rule 500 can match eol */
8969 YY_RULE_SETUP
8970 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
8971         YY_BREAK
8972 case 501:
8973 /* rule 501 can match eol */
8974 YY_RULE_SETUP
8975 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
8976         YY_BREAK
8977 case 502:
8978 /* rule 502 can match eol */
8979 YY_RULE_SETUP
8980 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
8981         YY_BREAK
8982 case 503:
8983 /* rule 503 can match eol */
8984 YY_RULE_SETUP
8985 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
8986         YY_BREAK
8987 case 504:
8988 /* rule 504 can match eol */
8989 YY_RULE_SETUP
8990 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
8991         YY_BREAK
8992 case 505:
8993 /* rule 505 can match eol */
8994 YY_RULE_SETUP
8995 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
8996         YY_BREAK
8997 case 506:
8998 /* rule 506 can match eol */
8999 YY_RULE_SETUP
9000 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
9001         YY_BREAK
9002 case 507:
9003 /* rule 507 can match eol */
9004 YY_RULE_SETUP
9005 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
9006         YY_BREAK
9007 case 508:
9008 /* rule 508 can match eol */
9009 YY_RULE_SETUP
9010 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
9011         YY_BREAK
9012 case 509:
9013 YY_RULE_SETUP
9014 {
9015   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9016   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9017   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9018   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
9019  }
9020         YY_BREAK
9021 case 510:
9022 YY_RULE_SETUP
9023 {
9024   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9025   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9026   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9027   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
9028   switch (YY_START) {
9029    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9030   }
9031  }
9032         YY_BREAK
9033 case 511:
9034 YY_RULE_SETUP
9035 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
9036         YY_BREAK
9037 case 512:
9038 YY_RULE_SETUP
9039 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
9040         YY_BREAK
9041 case YY_STATE_EOF(AL_surfxml_storage___type):
9042 FAIL("EOF in attribute list of `storage_type' element.");
9043         YY_BREAK
9044
9045 case 513:
9046 /* rule 513 can match eol */
9047 YY_RULE_SETUP
9048 {
9049   LEAVE;
9050   ETag_surfxml_storage___type();
9051   popbuffer(); /* attribute */
9052   switch (YY_START) {
9053    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9054   }
9055  }
9056         YY_BREAK
9057 case 514:
9058 /* rule 514 can match eol */
9059 YY_RULE_SETUP
9060 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
9061         YY_BREAK
9062 case 515:
9063 YY_RULE_SETUP
9064 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
9065         YY_BREAK
9066 case YY_STATE_EOF(E_surfxml_storage___type):
9067 case YY_STATE_EOF(S_surfxml_storage___type):
9068 case YY_STATE_EOF(S_surfxml_storage___type_2):
9069 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
9070         YY_BREAK
9071
9072 case 516:
9073 /* rule 516 can match eol */
9074 YY_RULE_SETUP
9075 FAIL("Starting tag <trace> is not allowed here.");
9076         YY_BREAK
9077 case 517:
9078 /* rule 517 can match eol */
9079 YY_RULE_SETUP
9080 {
9081   AX_surfxml_trace_file = 0;
9082   surfxml_trace_file_isset = 0;
9083   AX_surfxml_trace_id = 0;
9084   surfxml_trace_id_isset = 0;
9085   AX_surfxml_trace_periodicity = 0;
9086   surfxml_trace_periodicity_isset = 0;
9087   ENTER(AL_surfxml_trace); pushbuffer(0);
9088   }
9089         YY_BREAK
9090
9091 case 518:
9092 /* rule 518 can match eol */
9093 YY_RULE_SETUP
9094 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
9095         YY_BREAK
9096 case 519:
9097 /* rule 519 can match eol */
9098 YY_RULE_SETUP
9099 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
9100         YY_BREAK
9101 case 520:
9102 /* rule 520 can match eol */
9103 YY_RULE_SETUP
9104 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
9105         YY_BREAK
9106 case 521:
9107 /* rule 521 can match eol */
9108 YY_RULE_SETUP
9109 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
9110         YY_BREAK
9111 case 522:
9112 /* rule 522 can match eol */
9113 YY_RULE_SETUP
9114 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
9115         YY_BREAK
9116 case 523:
9117 /* rule 523 can match eol */
9118 YY_RULE_SETUP
9119 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
9120         YY_BREAK
9121 case 524:
9122 YY_RULE_SETUP
9123 {
9124   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9125   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9126   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
9127  }
9128         YY_BREAK
9129 case 525:
9130 YY_RULE_SETUP
9131 {
9132   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9133   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9134   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
9135   switch (YY_START) {
9136    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9137    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9138    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9139   }
9140  }
9141         YY_BREAK
9142 case 526:
9143 YY_RULE_SETUP
9144 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
9145         YY_BREAK
9146 case 527:
9147 YY_RULE_SETUP
9148 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
9149         YY_BREAK
9150 case YY_STATE_EOF(AL_surfxml_trace):
9151 FAIL("EOF in attribute list of `trace' element.");
9152         YY_BREAK
9153
9154 case 528:
9155 /* rule 528 can match eol */
9156 YY_RULE_SETUP
9157 {
9158   LEAVE;
9159   BUFFERDONE;
9160   ETag_surfxml_trace();
9161   surfxml_pcdata_ix = popbuffer();
9162   popbuffer(); /* attribute */
9163   switch (YY_START) {
9164    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9165    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9166    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9167   }
9168  }
9169         YY_BREAK
9170 case 529:
9171 /* rule 529 can match eol */
9172 YY_RULE_SETUP
9173 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
9174         YY_BREAK
9175 case YY_STATE_EOF(IN_trace):
9176 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
9177         YY_BREAK
9178
9179 case 530:
9180 /* rule 530 can match eol */
9181 YY_RULE_SETUP
9182 FAIL("Starting tag <trace_connect> is not allowed here.");
9183         YY_BREAK
9184 case 531:
9185 /* rule 531 can match eol */
9186 YY_RULE_SETUP
9187 {
9188   AX_surfxml_trace___connect_element = 0;
9189   surfxml_trace___connect_element_isset = 0;
9190   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9191   surfxml_trace___connect_kind_isset = 0;
9192   AX_surfxml_trace___connect_trace = 0;
9193   surfxml_trace___connect_trace_isset = 0;
9194   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
9195   }
9196         YY_BREAK
9197
9198 case 532:
9199 /* rule 532 can match eol */
9200 YY_RULE_SETUP
9201 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
9202         YY_BREAK
9203 case 533:
9204 /* rule 533 can match eol */
9205 YY_RULE_SETUP
9206 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
9207         YY_BREAK
9208 case 534:
9209 /* rule 534 can match eol */
9210 case 535:
9211 /* rule 535 can match eol */
9212 YY_RULE_SETUP
9213 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9214         YY_BREAK
9215 case 536:
9216 /* rule 536 can match eol */
9217 case 537:
9218 /* rule 537 can match eol */
9219 YY_RULE_SETUP
9220 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
9221         YY_BREAK
9222 case 538:
9223 /* rule 538 can match eol */
9224 case 539:
9225 /* rule 539 can match eol */
9226 YY_RULE_SETUP
9227 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
9228         YY_BREAK
9229 case 540:
9230 /* rule 540 can match eol */
9231 case 541:
9232 /* rule 541 can match eol */
9233 YY_RULE_SETUP
9234 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
9235         YY_BREAK
9236 case 542:
9237 /* rule 542 can match eol */
9238 case 543:
9239 /* rule 543 can match eol */
9240 YY_RULE_SETUP
9241 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
9242         YY_BREAK
9243 case 544:
9244 /* rule 544 can match eol */
9245 YY_RULE_SETUP
9246 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
9247         YY_BREAK
9248 case 545:
9249 /* rule 545 can match eol */
9250 YY_RULE_SETUP
9251 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
9252         YY_BREAK
9253 case 546:
9254 YY_RULE_SETUP
9255 {
9256   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9257   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9258   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
9259  }
9260         YY_BREAK
9261 case 547:
9262 YY_RULE_SETUP
9263 {
9264   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9265   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9266   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
9267   switch (YY_START) {
9268    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9269    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9270    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9271   }
9272  }
9273         YY_BREAK
9274 case 548:
9275 YY_RULE_SETUP
9276 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
9277         YY_BREAK
9278 case 549:
9279 YY_RULE_SETUP
9280 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
9281         YY_BREAK
9282 case YY_STATE_EOF(AL_surfxml_trace___connect):
9283 FAIL("EOF in attribute list of `trace_connect' element.");
9284         YY_BREAK
9285
9286 case 550:
9287 /* rule 550 can match eol */
9288 YY_RULE_SETUP
9289 {
9290   LEAVE;
9291   ETag_surfxml_trace___connect();
9292   popbuffer(); /* attribute */
9293   switch (YY_START) {
9294    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9295    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9296    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9297   }
9298  }
9299         YY_BREAK
9300 case 551:
9301 /* rule 551 can match eol */
9302 YY_RULE_SETUP
9303 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
9304         YY_BREAK
9305 case 552:
9306 YY_RULE_SETUP
9307 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
9308         YY_BREAK
9309 case YY_STATE_EOF(E_surfxml_trace___connect):
9310 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
9311         YY_BREAK
9312
9313 /* EPILOG: after the root element. */
9314
9315 case 553:
9316 YY_RULE_SETUP
9317 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9318         YY_BREAK
9319 case YY_STATE_EOF(EPILOG):
9320 SUCCEED;
9321         YY_BREAK
9322
9323 /* CHARACTER DATA. */
9324
9325 /* Non-defined standard entities... */
9326 case 554:
9327 YY_RULE_SETUP
9328 BUFFERPUTC('&');
9329         YY_BREAK
9330 case 555:
9331 YY_RULE_SETUP
9332 BUFFERPUTC('<');
9333         YY_BREAK
9334 case 556:
9335 YY_RULE_SETUP
9336 BUFFERPUTC('>');
9337         YY_BREAK
9338 case 557:
9339 YY_RULE_SETUP
9340 BUFFERPUTC('\'');
9341         YY_BREAK
9342 case 558:
9343 YY_RULE_SETUP
9344 BUFFERPUTC('"');
9345         YY_BREAK
9346 /* Character entities. */
9347 case 559:
9348 YY_RULE_SETUP
9349 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9350         YY_BREAK
9351 case 560:
9352 YY_RULE_SETUP
9353 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9354         YY_BREAK
9355
9356 case 561:
9357 /* rule 561 can match eol */
9358 case 562:
9359 /* rule 562 can match eol */
9360 case 563:
9361 /* rule 563 can match eol */
9362 case 564:
9363 /* rule 564 can match eol */
9364 YY_RULE_SETUP
9365 BUFFERPUTC('\n');
9366         YY_BREAK
9367
9368 case 565:
9369 YY_RULE_SETUP
9370 ENTER(CDATA);
9371         YY_BREAK
9372 case 566:
9373 YY_RULE_SETUP
9374 FAIL("Unexpected `]""]>' in character data.");
9375         YY_BREAK
9376
9377 case 567:
9378 YY_RULE_SETUP
9379 BUFFERDONE; LEAVE;
9380         YY_BREAK
9381 case YY_STATE_EOF(VALUE1):
9382 FAIL("EOF in literal (\"'\" expected).");
9383         YY_BREAK
9384
9385 case 568:
9386 YY_RULE_SETUP
9387 BUFFERDONE; LEAVE;
9388         YY_BREAK
9389 case YY_STATE_EOF(VALUE2):
9390 FAIL("EOF in literal (`\"' expected).");
9391         YY_BREAK
9392
9393 case 569:
9394 /* rule 569 can match eol */
9395 YY_RULE_SETUP
9396 BUFFERPUTC(surf_parse_text[0]);
9397         YY_BREAK
9398 case 570:
9399 YY_RULE_SETUP
9400 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9401         YY_BREAK
9402
9403 case 571:
9404 YY_RULE_SETUP
9405 LEAVE;
9406         YY_BREAK
9407 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9408 case 572:
9409 YY_RULE_SETUP
9410 BUFFERPUTC(surf_parse_text[0]);
9411         YY_BREAK
9412 case YY_STATE_EOF(CDATA):
9413 FAIL("EOF in CDATA section.");
9414         YY_BREAK
9415
9416 /* Impossible rules to avoid warnings from flex(1). */
9417 /* Ideally, this should be replaced by code in flexml.pl that
9418     generates just the states not covered by other rules. */
9419
9420 case 573:
9421 /* rule 573 can match eol */
9422 YY_RULE_SETUP
9423 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9424         YY_BREAK
9425
9426 case 574:
9427 YY_RULE_SETUP
9428 ECHO;
9429         YY_BREAK
9430 case YY_STATE_EOF(INITIAL):
9431 case YY_STATE_EOF(S_surfxml_AS_2):
9432 case YY_STATE_EOF(S_surfxml_AS_5):
9433 case YY_STATE_EOF(S_surfxml_AS_7):
9434 case YY_STATE_EOF(S_surfxml_ASroute_1):
9435 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9436 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9437 case YY_STATE_EOF(S_surfxml_cluster_1):
9438 case YY_STATE_EOF(S_surfxml_config_1):
9439 case YY_STATE_EOF(S_surfxml_host_1):
9440 case YY_STATE_EOF(S_surfxml_include_1):
9441 case YY_STATE_EOF(S_surfxml_link_1):
9442 case YY_STATE_EOF(ROOT_surfxml_platform):
9443 case YY_STATE_EOF(S_surfxml_platform_2):
9444 case YY_STATE_EOF(S_surfxml_platform_5):
9445 case YY_STATE_EOF(S_surfxml_platform_7):
9446 case YY_STATE_EOF(S_surfxml_process_1):
9447 case YY_STATE_EOF(S_surfxml_route_1):
9448 case YY_STATE_EOF(S_surfxml_storage_1):
9449 case YY_STATE_EOF(S_surfxml_storage___type_1):
9450 case YY_STATE_EOF(IMPOSSIBLE):
9451         yyterminate();
9452
9453         case YY_END_OF_BUFFER:
9454                 {
9455                 /* Amount of text matched not including the EOB char. */
9456                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9457
9458                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9459                 *yy_cp = (yy_hold_char);
9460                 YY_RESTORE_YY_MORE_OFFSET
9461
9462                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9463                         {
9464                         /* We're scanning a new file or input source.  It's
9465                          * possible that this happened because the user
9466                          * just pointed surf_parse_in at a new source and called
9467                          * surf_parse_lex().  If so, then we have to assure
9468                          * consistency between YY_CURRENT_BUFFER and our
9469                          * globals.  Here is the right place to do so, because
9470                          * this is the first action (other than possibly a
9471                          * back-up) that will match for the new input source.
9472                          */
9473                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9474                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9475                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9476                         }
9477
9478                 /* Note that here we test for yy_c_buf_p "<=" to the position
9479                  * of the first EOB in the buffer, since yy_c_buf_p will
9480                  * already have been incremented past the NUL character
9481                  * (since all states make transitions on EOB to the
9482                  * end-of-buffer state).  Contrast this with the test
9483                  * in input().
9484                  */
9485                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9486                         { /* This was really a NUL. */
9487                         yy_state_type yy_next_state;
9488
9489                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9490
9491                         yy_current_state = yy_get_previous_state(  );
9492
9493                         /* Okay, we're now positioned to make the NUL
9494                          * transition.  We couldn't have
9495                          * yy_get_previous_state() go ahead and do it
9496                          * for us because it doesn't know how to deal
9497                          * with the possibility of jamming (and we don't
9498                          * want to build jamming into it because then it
9499                          * will run more slowly).
9500                          */
9501
9502                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9503
9504                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9505
9506                         if ( yy_next_state )
9507                                 {
9508                                 /* Consume the NUL. */
9509                                 yy_cp = ++(yy_c_buf_p);
9510                                 yy_current_state = yy_next_state;
9511                                 goto yy_match;
9512                                 }
9513
9514                         else
9515                                 {
9516                                 yy_cp = (yy_c_buf_p);
9517                                 goto yy_find_action;
9518                                 }
9519                         }
9520
9521                 else switch ( yy_get_next_buffer(  ) )
9522                         {
9523                         case EOB_ACT_END_OF_FILE:
9524                                 {
9525                                 (yy_did_buffer_switch_on_eof) = 0;
9526
9527                                 if ( surf_parse_wrap( ) )
9528                                         {
9529                                         /* Note: because we've taken care in
9530                                          * yy_get_next_buffer() to have set up
9531                                          * surf_parse_text, we can now set up
9532                                          * yy_c_buf_p so that if some total
9533                                          * hoser (like flex itself) wants to
9534                                          * call the scanner after we return the
9535                                          * YY_NULL, it'll still work - another
9536                                          * YY_NULL will get returned.
9537                                          */
9538                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9539
9540                                         yy_act = YY_STATE_EOF(YY_START);
9541                                         goto do_action;
9542                                         }
9543
9544                                 else
9545                                         {
9546                                         if ( ! (yy_did_buffer_switch_on_eof) )
9547                                                 YY_NEW_FILE;
9548                                         }
9549                                 break;
9550                                 }
9551
9552                         case EOB_ACT_CONTINUE_SCAN:
9553                                 (yy_c_buf_p) =
9554                                         (yytext_ptr) + yy_amount_of_matched_text;
9555
9556                                 yy_current_state = yy_get_previous_state(  );
9557
9558                                 yy_cp = (yy_c_buf_p);
9559                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9560                                 goto yy_match;
9561
9562                         case EOB_ACT_LAST_MATCH:
9563                                 (yy_c_buf_p) =
9564                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9565
9566                                 yy_current_state = yy_get_previous_state(  );
9567
9568                                 yy_cp = (yy_c_buf_p);
9569                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9570                                 goto yy_find_action;
9571                         }
9572                 break;
9573                 }
9574
9575         default:
9576                 YY_FATAL_ERROR(
9577                         "fatal flex scanner internal error--no action found" );
9578         } /* end of action switch */
9579                 } /* end of scanning one token */
9580         } /* end of user's declarations */
9581 } /* end of surf_parse_lex */
9582
9583 /* yy_get_next_buffer - try to read in a new buffer
9584  *
9585  * Returns a code representing an action:
9586  *      EOB_ACT_LAST_MATCH -
9587  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9588  *      EOB_ACT_END_OF_FILE - end of file
9589  */
9590 static int yy_get_next_buffer (void)
9591 {
9592         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9593         char *source = (yytext_ptr);
9594         int number_to_move, i;
9595         int ret_val;
9596
9597         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9598                 YY_FATAL_ERROR(
9599                 "fatal flex scanner internal error--end of buffer missed" );
9600
9601         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9602                 { /* Don't try to fill the buffer, so this is an EOF. */
9603                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9604                         {
9605                         /* We matched a single character, the EOB, so
9606                          * treat this as a final EOF.
9607                          */
9608                         return EOB_ACT_END_OF_FILE;
9609                         }
9610
9611                 else
9612                         {
9613                         /* We matched some text prior to the EOB, first
9614                          * process it.
9615                          */
9616                         return EOB_ACT_LAST_MATCH;
9617                         }
9618                 }
9619
9620         /* Try to read more data. */
9621
9622         /* First move last chars to start of buffer. */
9623         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9624
9625         for ( i = 0; i < number_to_move; ++i )
9626                 *(dest++) = *(source++);
9627
9628         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9629                 /* don't do the read, it's not guaranteed to return an EOF,
9630                  * just force an EOF
9631                  */
9632                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9633
9634         else
9635                 {
9636                         yy_size_t num_to_read =
9637                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9638
9639                 while ( num_to_read <= 0 )
9640                         { /* Not enough room in the buffer - grow it. */
9641
9642                         /* just a shorter name for the current buffer */
9643                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9644
9645                         int yy_c_buf_p_offset =
9646                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9647
9648                         if ( b->yy_is_our_buffer )
9649                                 {
9650                                 yy_size_t new_size = b->yy_buf_size * 2;
9651
9652                                 if ( new_size <= 0 )
9653                                         b->yy_buf_size += b->yy_buf_size / 8;
9654                                 else
9655                                         b->yy_buf_size *= 2;
9656
9657                                 b->yy_ch_buf = (char *)
9658                                         /* Include room in for 2 EOB chars. */
9659                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9660                                 }
9661                         else
9662                                 /* Can't grow it, we don't own it. */
9663                                 b->yy_ch_buf = 0;
9664
9665                         if ( ! b->yy_ch_buf )
9666                                 YY_FATAL_ERROR(
9667                                 "fatal error - scanner input buffer overflow" );
9668
9669                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9670
9671                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9672                                                 number_to_move - 1;
9673
9674                         }
9675
9676                 if ( num_to_read > YY_READ_BUF_SIZE )
9677                         num_to_read = YY_READ_BUF_SIZE;
9678
9679                 /* Read in more data. */
9680                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9681                         (yy_n_chars), num_to_read );
9682
9683                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9684                 }
9685
9686         if ( (yy_n_chars) == 0 )
9687                 {
9688                 if ( number_to_move == YY_MORE_ADJ )
9689                         {
9690                         ret_val = EOB_ACT_END_OF_FILE;
9691                         surf_parse_restart(surf_parse_in  );
9692                         }
9693
9694                 else
9695                         {
9696                         ret_val = EOB_ACT_LAST_MATCH;
9697                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9698                                 YY_BUFFER_EOF_PENDING;
9699                         }
9700                 }
9701
9702         else
9703                 ret_val = EOB_ACT_CONTINUE_SCAN;
9704
9705         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9706                 /* Extend the array by 50%, plus the number we really need. */
9707                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9708                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9709                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9710                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9711         }
9712
9713         (yy_n_chars) += number_to_move;
9714         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9715         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9716
9717         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9718
9719         return ret_val;
9720 }
9721
9722 /* yy_get_previous_state - get the state just before the EOB char was reached */
9723
9724     static yy_state_type yy_get_previous_state (void)
9725 {
9726         yy_state_type yy_current_state;
9727         char *yy_cp;
9728     
9729         yy_current_state = (yy_start);
9730
9731         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9732                 {
9733                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9734                 if ( yy_accept[yy_current_state] )
9735                         {
9736                         (yy_last_accepting_state) = yy_current_state;
9737                         (yy_last_accepting_cpos) = yy_cp;
9738                         }
9739                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9740                         {
9741                         yy_current_state = (int) yy_def[yy_current_state];
9742                         if ( yy_current_state >= 3396 )
9743                                 yy_c = yy_meta[(unsigned int) yy_c];
9744                         }
9745                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9746                 }
9747
9748         return yy_current_state;
9749 }
9750
9751 /* yy_try_NUL_trans - try to make a transition on the NUL character
9752  *
9753  * synopsis
9754  *      next_state = yy_try_NUL_trans( current_state );
9755  */
9756     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9757 {
9758         int yy_is_jam;
9759         char *yy_cp = (yy_c_buf_p);
9760
9761         YY_CHAR yy_c = 1;
9762         if ( yy_accept[yy_current_state] )
9763                 {
9764                 (yy_last_accepting_state) = yy_current_state;
9765                 (yy_last_accepting_cpos) = yy_cp;
9766                 }
9767         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9768                 {
9769                 yy_current_state = (int) yy_def[yy_current_state];
9770                 if ( yy_current_state >= 3396 )
9771                         yy_c = yy_meta[(unsigned int) yy_c];
9772                 }
9773         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9774         yy_is_jam = (yy_current_state == 3395);
9775
9776                 return yy_is_jam ? 0 : yy_current_state;
9777 }
9778
9779 #ifndef YY_NO_INPUT
9780 #ifdef __cplusplus
9781     static int yyinput (void)
9782 #else
9783     static int input  (void)
9784 #endif
9785
9786 {
9787         int c;
9788     
9789         *(yy_c_buf_p) = (yy_hold_char);
9790
9791         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9792                 {
9793                 /* yy_c_buf_p now points to the character we want to return.
9794                  * If this occurs *before* the EOB characters, then it's a
9795                  * valid NUL; if not, then we've hit the end of the buffer.
9796                  */
9797                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9798                         /* This was really a NUL. */
9799                         *(yy_c_buf_p) = '\0';
9800
9801                 else
9802                         { /* need more input */
9803                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
9804                         ++(yy_c_buf_p);
9805
9806                         switch ( yy_get_next_buffer(  ) )
9807                                 {
9808                                 case EOB_ACT_LAST_MATCH:
9809                                         /* This happens because yy_g_n_b()
9810                                          * sees that we've accumulated a
9811                                          * token and flags that we need to
9812                                          * try matching the token before
9813                                          * proceeding.  But for input(),
9814                                          * there's no matching to consider.
9815                                          * So convert the EOB_ACT_LAST_MATCH
9816                                          * to EOB_ACT_END_OF_FILE.
9817                                          */
9818
9819                                         /* Reset buffer status. */
9820                                         surf_parse_restart(surf_parse_in );
9821
9822                                         /*FALLTHROUGH*/
9823
9824                                 case EOB_ACT_END_OF_FILE:
9825                                         {
9826                                         if ( surf_parse_wrap( ) )
9827                                                 return EOF;
9828
9829                                         if ( ! (yy_did_buffer_switch_on_eof) )
9830                                                 YY_NEW_FILE;
9831 #ifdef __cplusplus
9832                                         return yyinput();
9833 #else
9834                                         return input();
9835 #endif
9836                                         }
9837
9838                                 case EOB_ACT_CONTINUE_SCAN:
9839                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9840                                         break;
9841                                 }
9842                         }
9843                 }
9844
9845         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9846         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9847         (yy_hold_char) = *++(yy_c_buf_p);
9848
9849         if ( c == '\n' )
9850                    
9851     surf_parse_lineno++;
9852 ;
9853
9854         return c;
9855 }
9856 #endif  /* ifndef YY_NO_INPUT */
9857
9858 /** Immediately switch to a different input stream.
9859  * @param input_file A readable stream.
9860  * 
9861  * @note This function does not reset the start condition to @c INITIAL .
9862  */
9863     void surf_parse_restart  (FILE * input_file )
9864 {
9865     
9866         if ( ! YY_CURRENT_BUFFER ){
9867         surf_parse_ensure_buffer_stack ();
9868                 YY_CURRENT_BUFFER_LVALUE =
9869             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9870         }
9871
9872         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9873         surf_parse__load_buffer_state( );
9874 }
9875
9876 /** Switch to a different input buffer.
9877  * @param new_buffer The new input buffer.
9878  * 
9879  */
9880     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9881 {
9882     
9883         /* TODO. We should be able to replace this entire function body
9884          * with
9885          *              surf_parse_pop_buffer_state();
9886          *              surf_parse_push_buffer_state(new_buffer);
9887      */
9888         surf_parse_ensure_buffer_stack ();
9889         if ( YY_CURRENT_BUFFER == new_buffer )
9890                 return;
9891
9892         if ( YY_CURRENT_BUFFER )
9893                 {
9894                 /* Flush out information for old buffer. */
9895                 *(yy_c_buf_p) = (yy_hold_char);
9896                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9897                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9898                 }
9899
9900         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9901         surf_parse__load_buffer_state( );
9902
9903         /* We don't actually know whether we did this switch during
9904          * EOF (surf_parse_wrap()) processing, but the only time this flag
9905          * is looked at is after surf_parse_wrap() is called, so it's safe
9906          * to go ahead and always set it.
9907          */
9908         (yy_did_buffer_switch_on_eof) = 1;
9909 }
9910
9911 static void surf_parse__load_buffer_state  (void)
9912 {
9913         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9914         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9915         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9916         (yy_hold_char) = *(yy_c_buf_p);
9917 }
9918
9919 /** Allocate and initialize an input buffer state.
9920  * @param file A readable stream.
9921  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9922  * 
9923  * @return the allocated buffer state.
9924  */
9925     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9926 {
9927         YY_BUFFER_STATE b;
9928     
9929         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9930         if ( ! b )
9931                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9932
9933         b->yy_buf_size = size;
9934
9935         /* yy_ch_buf has to be 2 characters longer than the size given because
9936          * we need to put in 2 end-of-buffer characters.
9937          */
9938         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9939         if ( ! b->yy_ch_buf )
9940                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9941
9942         b->yy_is_our_buffer = 1;
9943
9944         surf_parse__init_buffer(b,file );
9945
9946         return b;
9947 }
9948
9949 /** Destroy the buffer.
9950  * @param b a buffer created with surf_parse__create_buffer()
9951  * 
9952  */
9953     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9954 {
9955     
9956         if ( ! b )
9957                 return;
9958
9959         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9960                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9961
9962         if ( b->yy_is_our_buffer )
9963                 surf_parse_free((void *) b->yy_ch_buf  );
9964
9965         surf_parse_free((void *) b  );
9966 }
9967
9968 /* Initializes or reinitializes a buffer.
9969  * This function is sometimes called more than once on the same buffer,
9970  * such as during a surf_parse_restart() or at EOF.
9971  */
9972     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9973
9974 {
9975         int oerrno = errno;
9976     
9977         surf_parse__flush_buffer(b );
9978
9979         b->yy_input_file = file;
9980         b->yy_fill_buffer = 1;
9981
9982     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9983      * called from surf_parse_restart() or through yy_get_next_buffer.
9984      * In that case, we don't want to reset the lineno or column.
9985      */
9986     if (b != YY_CURRENT_BUFFER){
9987         b->yy_bs_lineno = 1;
9988         b->yy_bs_column = 0;
9989     }
9990
9991         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9992     
9993         errno = oerrno;
9994 }
9995
9996 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9997  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9998  * 
9999  */
10000     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10001 {
10002         if ( ! b )
10003                 return;
10004
10005         b->yy_n_chars = 0;
10006
10007         /* We always need two end-of-buffer characters.  The first causes
10008          * a transition to the end-of-buffer state.  The second causes
10009          * a jam in that state.
10010          */
10011         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10012         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10013
10014         b->yy_buf_pos = &b->yy_ch_buf[0];
10015
10016         b->yy_at_bol = 1;
10017         b->yy_buffer_status = YY_BUFFER_NEW;
10018
10019         if ( b == YY_CURRENT_BUFFER )
10020                 surf_parse__load_buffer_state( );
10021 }
10022
10023 /** Pushes the new state onto the stack. The new state becomes
10024  *  the current state. This function will allocate the stack
10025  *  if necessary.
10026  *  @param new_buffer The new state.
10027  *  
10028  */
10029 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10030 {
10031         if (new_buffer == NULL)
10032                 return;
10033
10034         surf_parse_ensure_buffer_stack();
10035
10036         /* This block is copied from surf_parse__switch_to_buffer. */
10037         if ( YY_CURRENT_BUFFER )
10038                 {
10039                 /* Flush out information for old buffer. */
10040                 *(yy_c_buf_p) = (yy_hold_char);
10041                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10042                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10043                 }
10044
10045         /* Only push if top exists. Otherwise, replace top. */
10046         if (YY_CURRENT_BUFFER)
10047                 (yy_buffer_stack_top)++;
10048         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10049
10050         /* copied from surf_parse__switch_to_buffer. */
10051         surf_parse__load_buffer_state( );
10052         (yy_did_buffer_switch_on_eof) = 1;
10053 }
10054
10055 /** Removes and deletes the top of the stack, if present.
10056  *  The next element becomes the new top.
10057  *  
10058  */
10059 void surf_parse_pop_buffer_state (void)
10060 {
10061         if (!YY_CURRENT_BUFFER)
10062                 return;
10063
10064         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10065         YY_CURRENT_BUFFER_LVALUE = NULL;
10066         if ((yy_buffer_stack_top) > 0)
10067                 --(yy_buffer_stack_top);
10068
10069         if (YY_CURRENT_BUFFER) {
10070                 surf_parse__load_buffer_state( );
10071                 (yy_did_buffer_switch_on_eof) = 1;
10072         }
10073 }
10074
10075 /* Allocates the stack if it does not exist.
10076  *  Guarantees space for at least one push.
10077  */
10078 static void surf_parse_ensure_buffer_stack (void)
10079 {
10080         yy_size_t num_to_alloc;
10081     
10082         if (!(yy_buffer_stack)) {
10083
10084                 /* First allocation is just for 2 elements, since we don't know if this
10085                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10086                  * immediate realloc on the next call.
10087          */
10088                 num_to_alloc = 1;
10089                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10090                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10091                                                                 );
10092                 if ( ! (yy_buffer_stack) )
10093                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10094                                                                   
10095                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10096                                 
10097                 (yy_buffer_stack_max) = num_to_alloc;
10098                 (yy_buffer_stack_top) = 0;
10099                 return;
10100         }
10101
10102         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10103
10104                 /* Increase the buffer to prepare for a possible push. */
10105                 int grow_size = 8 /* arbitrary grow size */;
10106
10107                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10108                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10109                                                                 ((yy_buffer_stack),
10110                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10111                                                                 );
10112                 if ( ! (yy_buffer_stack) )
10113                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10114
10115                 /* zero only the new slots.*/
10116                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10117                 (yy_buffer_stack_max) = num_to_alloc;
10118         }
10119 }
10120
10121 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10122  * @param base the character buffer
10123  * @param size the size in bytes of the character buffer
10124  * 
10125  * @return the newly allocated buffer state object. 
10126  */
10127 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10128 {
10129         YY_BUFFER_STATE b;
10130     
10131         if ( size < 2 ||
10132              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10133              base[size-1] != YY_END_OF_BUFFER_CHAR )
10134                 /* They forgot to leave room for the EOB's. */
10135                 return 0;
10136
10137         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10138         if ( ! b )
10139                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10140
10141         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10142         b->yy_buf_pos = b->yy_ch_buf = base;
10143         b->yy_is_our_buffer = 0;
10144         b->yy_input_file = 0;
10145         b->yy_n_chars = b->yy_buf_size;
10146         b->yy_is_interactive = 0;
10147         b->yy_at_bol = 1;
10148         b->yy_fill_buffer = 0;
10149         b->yy_buffer_status = YY_BUFFER_NEW;
10150
10151         surf_parse__switch_to_buffer(b  );
10152
10153         return b;
10154 }
10155
10156 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10157  * scan from a @e copy of @a str.
10158  * @param yystr a NUL-terminated string to scan
10159  * 
10160  * @return the newly allocated buffer state object.
10161  * @note If you want to scan bytes that may contain NUL values, then use
10162  *       surf_parse__scan_bytes() instead.
10163  */
10164 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10165 {
10166     
10167         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10168 }
10169
10170 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10171  * scan from a @e copy of @a bytes.
10172  * @param yybytes the byte buffer to scan
10173  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10174  * 
10175  * @return the newly allocated buffer state object.
10176  */
10177 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10178 {
10179         YY_BUFFER_STATE b;
10180         char *buf;
10181         yy_size_t n;
10182         yy_size_t i;
10183     
10184         /* Get memory for full buffer, including space for trailing EOB's. */
10185         n = _yybytes_len + 2;
10186         buf = (char *) surf_parse_alloc(n  );
10187         if ( ! buf )
10188                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10189
10190         for ( i = 0; i < _yybytes_len; ++i )
10191                 buf[i] = yybytes[i];
10192
10193         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10194
10195         b = surf_parse__scan_buffer(buf,n );
10196         if ( ! b )
10197                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10198
10199         /* It's okay to grow etc. this buffer, and we should throw it
10200          * away when we're done.
10201          */
10202         b->yy_is_our_buffer = 1;
10203
10204         return b;
10205 }
10206
10207     static void yy_push_state (int  new_state )
10208 {
10209         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10210                 {
10211                 yy_size_t new_size;
10212
10213                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10214                 new_size = (yy_start_stack_depth) * sizeof( int );
10215
10216                 if ( ! (yy_start_stack) )
10217                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10218
10219                 else
10220                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10221
10222                 if ( ! (yy_start_stack) )
10223                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10224                 }
10225
10226         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10227
10228         BEGIN(new_state);
10229 }
10230
10231     static void yy_pop_state  (void)
10232 {
10233         if ( --(yy_start_stack_ptr) < 0 )
10234                 YY_FATAL_ERROR( "start-condition stack underflow" );
10235
10236         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10237 }
10238
10239 #ifndef YY_EXIT_FAILURE
10240 #define YY_EXIT_FAILURE 2
10241 #endif
10242
10243 static void yy_fatal_error (yyconst char* msg )
10244 {
10245         (void) fprintf( stderr, "%s\n", msg );
10246         exit( YY_EXIT_FAILURE );
10247 }
10248
10249 /* Redefine yyless() so it works in section 3 code. */
10250
10251 #undef yyless
10252 #define yyless(n) \
10253         do \
10254                 { \
10255                 /* Undo effects of setting up surf_parse_text. */ \
10256         int yyless_macro_arg = (n); \
10257         YY_LESS_LINENO(yyless_macro_arg);\
10258                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10259                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10260                 (yy_hold_char) = *(yy_c_buf_p); \
10261                 *(yy_c_buf_p) = '\0'; \
10262                 surf_parse_leng = yyless_macro_arg; \
10263                 } \
10264         while ( 0 )
10265
10266 /* Accessor  methods (get/set functions) to struct members. */
10267
10268 /** Get the current line number.
10269  * 
10270  */
10271 int surf_parse_get_lineno  (void)
10272 {
10273         
10274     return surf_parse_lineno;
10275 }
10276
10277 /** Get the input stream.
10278  * 
10279  */
10280 FILE *surf_parse_get_in  (void)
10281 {
10282         return surf_parse_in;
10283 }
10284
10285 /** Get the output stream.
10286  * 
10287  */
10288 FILE *surf_parse_get_out  (void)
10289 {
10290         return surf_parse_out;
10291 }
10292
10293 /** Get the length of the current token.
10294  * 
10295  */
10296 yy_size_t surf_parse_get_leng  (void)
10297 {
10298         return surf_parse_leng;
10299 }
10300
10301 /** Get the current token.
10302  * 
10303  */
10304
10305 char *surf_parse_get_text  (void)
10306 {
10307         return surf_parse_text;
10308 }
10309
10310 /** Set the current line number.
10311  * @param line_number
10312  * 
10313  */
10314 void surf_parse_set_lineno (int  line_number )
10315 {
10316     
10317     surf_parse_lineno = line_number;
10318 }
10319
10320 /** Set the input stream. This does not discard the current
10321  * input buffer.
10322  * @param in_str A readable stream.
10323  * 
10324  * @see surf_parse__switch_to_buffer
10325  */
10326 void surf_parse_set_in (FILE *  in_str )
10327 {
10328         surf_parse_in = in_str ;
10329 }
10330
10331 void surf_parse_set_out (FILE *  out_str )
10332 {
10333         surf_parse_out = out_str ;
10334 }
10335
10336 int surf_parse_get_debug  (void)
10337 {
10338         return surf_parse__flex_debug;
10339 }
10340
10341 void surf_parse_set_debug (int  bdebug )
10342 {
10343         surf_parse__flex_debug = bdebug ;
10344 }
10345
10346 static int yy_init_globals (void)
10347 {
10348         /* Initialization is the same as for the non-reentrant scanner.
10349      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10350      */
10351
10352     /* We do not touch surf_parse_lineno unless the option is enabled. */
10353     surf_parse_lineno =  1;
10354     
10355     (yy_buffer_stack) = 0;
10356     (yy_buffer_stack_top) = 0;
10357     (yy_buffer_stack_max) = 0;
10358     (yy_c_buf_p) = (char *) 0;
10359     (yy_init) = 0;
10360     (yy_start) = 0;
10361
10362     (yy_start_stack_ptr) = 0;
10363     (yy_start_stack_depth) = 0;
10364     (yy_start_stack) =  NULL;
10365
10366 /* Defined in main.c */
10367 #ifdef YY_STDINIT
10368     surf_parse_in = stdin;
10369     surf_parse_out = stdout;
10370 #else
10371     surf_parse_in = (FILE *) 0;
10372     surf_parse_out = (FILE *) 0;
10373 #endif
10374
10375     /* For future reference: Set errno on error, since we are called by
10376      * surf_parse_lex_init()
10377      */
10378     return 0;
10379 }
10380
10381 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10382 int surf_parse_lex_destroy  (void)
10383 {
10384     
10385     /* Pop the buffer stack, destroying each element. */
10386         while(YY_CURRENT_BUFFER){
10387                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10388                 YY_CURRENT_BUFFER_LVALUE = NULL;
10389                 surf_parse_pop_buffer_state();
10390         }
10391
10392         /* Destroy the stack itself. */
10393         surf_parse_free((yy_buffer_stack) );
10394         (yy_buffer_stack) = NULL;
10395
10396     /* Destroy the start condition stack. */
10397         surf_parse_free((yy_start_stack)  );
10398         (yy_start_stack) = NULL;
10399
10400     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10401      * surf_parse_lex() is called, initialization will occur. */
10402     yy_init_globals( );
10403
10404     return 0;
10405 }
10406
10407 /*
10408  * Internal utility routines.
10409  */
10410
10411 #ifndef yytext_ptr
10412 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10413 {
10414         int i;
10415         for ( i = 0; i < n; ++i )
10416                 s1[i] = s2[i];
10417 }
10418 #endif
10419
10420 #ifdef YY_NEED_STRLEN
10421 static int yy_flex_strlen (yyconst char * s )
10422 {
10423         int n;
10424         for ( n = 0; s[n]; ++n )
10425                 ;
10426
10427         return n;
10428 }
10429 #endif
10430
10431 void *surf_parse_alloc (yy_size_t  size )
10432 {
10433         return (void *) malloc( size );
10434 }
10435
10436 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10437 {
10438         /* The cast to (char *) in the following accommodates both
10439          * implementations that use char* generic pointers, and those
10440          * that use void* generic pointers.  It works with the latter
10441          * because both ANSI C and C++ allow castless assignment from
10442          * any pointer type to void*, and deal with argument conversions
10443          * as though doing an assignment.
10444          */
10445         return (void *) realloc( (char *) ptr, size );
10446 }
10447
10448 void surf_parse_free (void * ptr )
10449 {
10450         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10451 }
10452
10453 #define YYTABLES_NAME "yytables"
10454
10455 /* Element context stack lookup. */
10456 int surfxml_element_context(int i)
10457 {
10458   return (0<i && i<yy_start_stack_depth
10459           ? yy_start_stack[yy_start_stack_ptr - i]
10460           : 0);
10461 }
10462
10463 #ifdef FLEX_DEBUG
10464 void print_yy_stack(char* fmt, ...)
10465 {
10466   int i = 0; va_list ap; va_start(ap, fmt);
10467   vfprintf(stderr, fmt, ap);
10468   if (surfxml_statenames) {
10469       for (i=1; i<yy_start_stack_ptr; i++) {
10470           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10471       }
10472       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10473   }
10474   va_end(ap);
10475 }
10476
10477 void print_surfxml_bufferstack()
10478 {
10479     int i;
10480     fputs("Buffer: ", stderr);
10481     for (i = 0; i < blimit; i++) {
10482        if ( surfxml_bufferstack[i] == '\377' ) break;
10483          putc(surfxml_bufferstack[i], stderr);
10484     }
10485     putc('\n', stderr);
10486 }
10487
10488 static void debug_enter(int state, const char* statename) {
10489   yy_push_state(state);
10490   if (surf_parse__flex_debug) {
10491        print_yy_stack("--ENTER(%s) : ",statename);
10492        print_surfxml_bufferstack();
10493   }
10494 }
10495
10496 static void debug_leave(void) {
10497     if (surf_parse__flex_debug) {
10498         print_yy_stack("--LEAVE : ");
10499         print_surfxml_bufferstack();
10500     }
10501   yy_pop_state();
10502 }
10503
10504 static void debug_set(int state, const char* statename) {
10505   BEGIN(state);
10506   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10507 }
10508 #endif
10509
10510 static void cleanup(void)
10511 {
10512     if (surfxml_statenames) {
10513         free(surfxml_statenames);
10514         surfxml_statenames = NULL;
10515     }
10516     free(surfxml_bufferstack);
10517     surfxml_bufferstack = NULL;
10518
10519     free(indexstack);
10520     indexstack = NULL;
10521 }
10522
10523 static int fail(const char* fmt, ...)
10524 {
10525     int chars_left, used;
10526     va_list ap; va_start(ap, fmt);
10527 #ifdef FLEXML_yylineno
10528     used = sprintf(flexml_err_msg,
10529                    "Invalid XML (XML input line %d, state %d): ",
10530                    surf_parse_lineno, YY_START);
10531 #else
10532     used = sprintf(flexml_err_msg,
10533                    "Invalid XML (state %d): ",
10534                    YY_START);
10535 #endif
10536     chars_left = flexml_max_err_msg_size - used - 1;
10537     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10538     va_end(ap);
10539
10540 #ifndef FLEXML_quiet_parser
10541     /* print directly to sdterr */
10542     fprintf(stderr, "%s\n", flexml_err_msg);
10543     flexml_err_msg[0] = '\0';
10544 #endif
10545
10546     cleanup();
10547
10548     return 1;
10549 }
10550