Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix aliased template parameter name
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 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 register variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 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 595
414 #define YY_END_OF_BUFFER 596
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[3503] =
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,    0,    0,    0,    0,    0,    0,    0,    0,
451         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
452         0,    0,  596,  594,   15,   10,   10,   15,   15,  574,
453        10,  574,    5,    6,    5,    8,    9,    8,  590,  582,
454       583,  591,  588,  591,  589,  593,  582,  583,  593,  594,
455        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
456
457        26,  594,   26,  594,  594,   26,   33,   10,   33,   33,
458        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
459        48,   48,   46,   48,   48,   48,  591,  590,   78,   10,
460        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
461        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
462       101,  105,   10,  105,  130,   10,  130,  130,  130,  128,
463       130,  130,  134,   10,  134,  134,  594,  134,  594,  134,
464       134,  594,  594,  134,  594,  134,  594,  134,  149,   10,
465       149,  149,  149,  147,  149,  149,  149,  149,  153,   10,
466       153,  594,  153,  162,   10,  162,  162,  162,  160,  162,
467
468       162,  166,   10,  166,  175,   10,  175,  175,  175,  173,
469       175,  175,  179,   10,  179,  204,   10,  204,  204,  204,
470       202,  204,  204,  204,  204,  204,  208,   10,  208,  594,
471       208,  223,   10,  223,  223,  223,  221,  223,  223,  223,
472       223,  227,   10,  227,  227,  234,   10,  234,  234,  234,
473       232,  234,  238,   10,  238,  249,   10,  249,  249,  249,
474       247,  249,  249,  249,  253,   10,  253,  308,   10,  308,
475       308,  308,  306,  308,  308,  308,  308,  308,  308,  308,
476       308,  308,  312,   10,  312,  312,  331,   10,  331,  331,
477       331,  329,  331,  331,  331,  331,  331,  331,  335,   10,
478
479       335,  356,   10,  356,  356,  356,  354,  356,  356,  356,
480       356,  356,  356,  356,  360,   10,  360,  369,   10,  369,
481       369,  369,  367,  369,  369,  373,   10,  373,  384,   10,
482       384,  384,  384,  382,  384,  384,  384,  388,   10,  388,
483       415,   10,  415,  415,  415,  413,  415,  415,  415,  415,
484       419,   10,  419,  419,  432,   10,  432,  432,  432,  430,
485       432,  432,  436,   10,  436,  594,  436,  453,   10,  453,
486       453,  453,  451,  453,  453,  453,  457,   10,  457,  457,
487       470,   10,  470,  470,  470,  468,  470,  470,  474,   10,
488       474,  483,   10,  483,  483,  483,  481,  483,  483,  487,
489
490        10,  487,  487,  500,   10,  500,  500,  500,  498,  500,
491       500,  500,  504,   10,  504,  504,  521,   10,  521,  521,
492       521,  519,  521,  521,  521,  521,  521,  525,   10,  525,
493       594,  525,  532,   10,  532,  532,  532,  530,  532,  536,
494        10,  536,  543,   10,  543,  543,  543,  541,  543,  547,
495        10,  547,  547,  556,   10,  556,  556,  556,  554,  556,
496       556,  560,   10,  560,  569,   10,  569,  569,  569,  567,
497       569,  569,  573,   10,  573,   10,    0,    2,    2,    0,
498         4,    7,  585,  584,    0,    0,    0,    0,    0,    0,
499         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
500
501         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
502         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
503        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
504        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
505         0,  100,  102,  102,  102,  102,    0,  129,  131,  131,
506       131,    0,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
508       148,  150,  150,  150,  150,  150,    0,    0,  161,  163,
509       163,  163,    0,  174,  176,  176,  176,    0,  203,  205,
510       205,  205,  205,  205,  205,  205,    0,    0,  222,  224,
511
512       224,  224,  224,  224,    0,  233,  235,  235,    0,  248,
513       250,  250,  250,  250,    0,  307,  309,  309,  309,  309,
514       309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
515       309,  309,  309,    0,  330,  332,  332,  332,  332,  332,
516       332,  332,  332,    0,  355,  357,  357,  357,  357,  357,
517       357,  357,  357,    0,  368,  370,  370,  370,    0,  383,
518       385,  385,  385,  385,    0,  414,  416,  416,  416,  416,
519       416,  416,    0,  431,  433,  433,  433,  433,    0,    0,
520       452,  454,  454,  454,  454,  454,    0,  469,  471,  471,
521       471,    0,  482,  484,  484,  484,    0,  499,  501,  501,
522
523       501,  501,    0,  520,  522,  522,  522,  522,  522,  522,
524         0,    0,  531,  533,  533,    0,  542,  544,  544,    0,
525       555,  557,  557,  557,    0,  568,  570,  570,  570,    0,
526         0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
527         0,    0,  592,    0,   23,    0,    0,  107,    0,    0,
528         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
529         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
530         0,    0,    0,    0,    0,    0,   34,    0,    0,   49,
531         0,    0,   49,    0,    0,    0,  587,   79,    0,    0,
532        79,   79,   79,   79,   79,   79,    0,    0,  102,  102,
533
534       102,    0,    0,    0,    0,  131,    0,    0,  107,    0,
535         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
536         0,    0,  150,    0,    0,  150,  150,    0,    0,    0,
537       163,  163,    0,    0,  176,  176,    0,    0,  205,  205,
538       205,    0,    0,  205,  205,  205,    0,    0,    0,    0,
539       224,  224,    0,    0,  224,    0,    0,  235,    0,    0,
540       250,    0,    0,    0,    0,    0,    0,  309,  309,    0,
541         0,  309,    0,    0,  309,  309,  309,  309,  309,  309,
542       309,  309,  309,  309,  309,    0,    0,    0,    0,    0,
543         0,  332,  332,  332,  332,  332,    0,    0,  357,  357,
544
545       357,    0,    0,  357,  357,  357,    0,    0,  370,    0,
546         0,    0,    0,  385,    0,    0,  385,    0,    0,  416,
547         0,    0,  416,  416,  416,    0,    0,  433,  433,  433,
548         0,    0,    0,  454,  454,  454,  454,    0,    0,  471,
549         0,    0,    0,    0,  484,  484,    0,    0,  501,  501,
550       501,    0,    0,  522,  522,  522,  522,  522,    0,    0,
551         0,  533,    0,    0,    0,    0,    0,    0,    0,    0,
552       557,    0,    0,    0,    0,  570,    0,    0,    0,   14,
553         1,    0,    0,  580,    0,    0,    0,  577,  576,    0,
554         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
555
556         0,    0,    0,    0,  228,    0,    0,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
558       106,    0,    0,    0,    0,    0,    0,   34,    0,    0,
559        36,    0,   49,    0,   41,   40,   49,    0,    0,    0,
560        51,    0,   79,    0,   55,   54,    0,    0,   79,    0,
561         0,   79,   79,   79,    0,    0,   81,    0,  102,  102,
562       102,    0,    0,  104,    0,    0,  109,  108,  131,    0,
563         0,  133,    0,    0,    0,    0,  229,    0,    0,    0,
564         0,    0,    0,    0,    0,    0,  150,    0,  138,  137,
565       150,  150,    0,    0,  152,    0,    0,  163,  163,    0,
566
567         0,  165,    0,  176,  176,    0,    0,  178,    0,  205,
568       205,  205,    0,  183,  182,  205,  205,  205,    0,    0,
569       207,    0,    0,    0,  224,  224,    0,  212,  211,  224,
570         0,    0,  226,    0,  235,    0,    0,  237,    0,  250,
571         0,  242,  241,    0,  244,  243,    0,    0,  252,    0,
572       309,  309,  309,  309,    0,  269,  268,  309,    0,  257,
573       256,    0,    0,  309,  309,  309,  309,  309,  309,  309,
574       309,  309,  309,    0,    0,  311,    0,    0,  326,  325,
575         0,  316,  315,    0,    0,  332,  332,  332,  332,    0,
576         0,  334,    0,  357,  357,  357,  357,    0,  339,  338,
577
578         0,    0,  357,  357,    0,    0,  359,    0,  370,    0,
579       364,  363,    0,    0,  372,    0,  385,    0,  377,  376,
580       385,    0,    0,  387,    0,  416,    0,  392,  391,  416,
581       416,  416,    0,    0,  418,    0,    0,    0,    0,    0,
582       433,    0,    0,  435,    0,    0,    0,    0,  454,  454,
583         0,    0,  454,    0,    0,  456,    0,  471,    0,  461,
584       460,    0,    0,  473,    0,    0,    0,    0,    0,    0,
585         0,  486,    0,    0,    0,  501,  501,    0,    0,    0,
586         0,  503,    0,  522,  522,  522,  522,  522,    0,    0,
587       524,    0,    0,  533,    0,    0,  535,    0,    0,  540,
588
589       539,    0,    0,  546,    0,    0,  551,  550,  557,    0,
590         0,  559,    0,    0,  564,  563,  570,    0,    0,  572,
591         0,    0,    0,  581,  575,    0,    0,    0,   23,    0,
592         0,    0,    0,    0,    0,    0,    0,  228,  180,    0,
593       389,    0,    0,    0,  337,    0,    0,  548,    0,    0,
594         0,    0,    0,    0,    0,    0,    0,  336,    0,    0,
595         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
596        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
597        79,    0,  102,    0,    0,  102,    0,  131,    0,  132,
598         0,    0,    0,  229,  181,  390,  549,    0,    0,    0,
599
600         0,    0,    0,  150,  150,    0,    0,    0,    0,    0,
601         0,  163,    0,    0,    0,  176,    0,  205,  205,    0,
602         0,  205,  205,  205,    0,    0,    0,  224,  224,  224,
603         0,    0,    0,    0,    0,    0,    0,  309,  309,  309,
604       309,    0,    0,    0,  271,  270,  309,  309,  309,  309,
605       309,  309,  309,  309,  309,  309,  309,    0,    0,  328,
606       327,  332,  332,  332,  332,    0,  357,  357,  357,  357,
607         0,  347,  346,  357,  357,    0,  370,    0,  385,  385,
608         0,  416,  416,  416,  416,    0,    0,  425,  424,    0,
609       423,  422,  433,    0,  389,    0,  442,  441,  454,  454,
610
611         0,  440,  439,  454,    0,  471,    0,    0,  480,  479,
612         0,  478,  477,    0,    0,  493,  492,  501,  501,    0,
613       491,  490,    0,  522,    0,    0,  522,  522,  522,    0,
614         0,  533,    0,    0,  557,    0,  570,    0,    0,    0,
615         0,   12,    0,  578,  579,    0,   23,    0,    0,    0,
616         0,    0,    0,    0,    0,  180,    0,    0,  389,    0,
617         0,  154,    0,  337,    0,    0,  548,    0,  420,    0,
618        39,    0,    0,    0,    0,    0,  336,    0,   38,    0,
619        30,   29,    0,    0,   43,   42,   49,    0,    0,   79,
620         0,   61,   60,   79,    0,   65,   64,   79,    0,  102,
621
622         0,    0,    0,    0,    0,    0,  131,    0,    0,    0,
623       181,    0,  390,  549,  421,    0,    0,    0,  421,  420,
624       150,    0,    0,    0,  142,  141,    0,    0,    0,  159,
625       158,  163,    0,    0,  172,  171,  176,    0,  205,  205,
626         0,  187,  186,    0,    0,  205,    0,    0,  205,    0,
627       155,    0,  224,  224,  224,    0,    0,  231,  230,    0,
628       236,    0,  246,  245,    0,  309,    0,    0,  309,  309,
629         0,  267,  266,  309,  309,    0,    0,  309,  309,  309,
630       309,  309,  309,  309,  309,    0,    0,    0,  332,  332,
631       332,    0,  357,    0,    0,  357,  357,    0,    0,  357,
632
633         0,  370,    0,  385,  385,    0,  416,  416,  416,    0,
634         0,  416,    0,  433,    0,    0,  454,  454,  454,    0,
635       471,    0,    0,  501,  501,    0,  522,    0,  508,  507,
636       522,  522,  522,    0,    0,    0,    0,    0,    0,    0,
637         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
638        23,    0,    0,    0,    0,    0,    0,    0,  538,    0,
639         0,    0,    0,  154,    0,    0,    0,   53,  420,  361,
640         0,   39,    0,  537,   52,    0,    0,    0,    0,   38,
641         0,    0,   49,    0,    0,   79,   79,   79,    0,  102,
642         0,    0,    0,    0,    0,    0,    0,    0,    0,   96,
643
644        95,    0,  131,    0,    0,    0,    0,  421,  362,    0,
645         0,    0,  150,    0,  140,  139,    0,    0,  163,    0,
646         0,    0,    0,  205,  205,    0,  185,  184,    0,    0,
647         0,    0,    0,  205,    0,  206,  155,    0,    0,    0,
648       224,    0,    0,    0,    0,  309,    0,  287,  286,    0,
649         0,  309,  309,  309,    0,  265,  264,    0,    0,  309,
650       309,  309,  309,    0,    0,  309,  309,    0,    0,  324,
651       323,    0,    0,  332,    0,    0,    0,  357,    0,  343,
652       342,    0,    0,  357,    0,  341,  340,  357,    0,  358,
653       370,    0,  385,  385,    0,  416,  416,  416,    0,    0,
654
655         0,  416,    0,  417,  433,    0,    0,    0,    0,    0,
656         0,  454,    0,  471,    0,    0,    0,    0,    0,    0,
657         0,  522,  522,  522,  522,    0,    0,    0,  529,  528,
658         0,    0,    0,  553,  552,    0,  558,    0,  566,  565,
659         0,    0,    0,    0,    0,    0,    0,    0,  437,    0,
660         0,    0,    0,  314,  255,  538,    0,   28,    0,    0,
661         0,    0,  506,   53,  361,  209,    0,  537,   52,  313,
662       254,   27,  505,    0,    0,   49,    0,    0,   50,   79,
663         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,  438,
665
666         0,    0,    0,    0,  362,  210,    0,    0,  150,    0,
667         0,  163,    0,  164,    0,  170,  169,    0,  205,  205,
668         0,  201,  200,    0,    0,  205,    0,    0,  220,  219,
669         0,    0,  224,    0,  214,  213,    0,    0,  309,    0,
670       289,  288,  309,  309,  309,    0,  259,  258,    0,    0,
671       309,  309,  309,    0,  261,  260,  309,  309,    0,    0,
672       318,  317,    0,    0,    0,  320,  319,    0,  357,    0,
673       345,  344,  357,  357,  370,    0,  385,    0,    0,    0,
674       416,    0,    0,  416,  416,    0,    0,  416,  433,    0,
675       434,    0,    0,  446,  445,    0,  444,  443,  454,    0,
676
677       471,    0,    0,    0,  497,  496,    0,  495,  494,    0,
678       522,  522,  522,  522,    0,    0,    0,    0,    0,    0,
679         0,    0,   17,    0,   19,   18,    0,  437,  526,  374,
680         0,    0,  314,  255,    0,   28,  458,    0,  167,   16,
681       506,  209,    0,    0,  313,  254,   27,  505,    0,    0,
682        49,  586,   79,    0,   67,   66,   79,    0,   80,    0,
683        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,  438,  375,    0,    0,
685         0,  210,    0,    0,  144,  143,  150,    0,    0,  163,
686         0,  205,  205,    0,    0,    0,    0,  205,  168,    0,
687
688       216,  215,  224,    0,    0,  309,  309,  309,  309,    0,
689       263,  262,  309,  309,  309,  309,    0,    0,    0,    0,
690       322,  321,    0,  357,  357,  357,  370,    0,  371,  385,
691         0,  381,  380,    0,  416,    0,  398,  397,  416,  416,
692         0,    0,    0,    0,  416,  433,  459,  454,    0,  471,
693         0,    0,    0,    0,    0,  522,  522,  522,    0,  527,
694         0,    0,  545,    0,    0,    0,    0,   17,    0,  526,
695       374,    0,    0,  239,  458,    0,  167,   16,    0,    0,
696         0,    0,   35,   49,    0,    0,   79,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698
699         0,    0,    0,    0,    0,    0,    0,    0,  375,    0,
700         0,  240,    0,  150,    0,    0,    0,    0,    0,  205,
701       205,    0,  193,    0,  192,  205,  168,  224,    0,  225,
702         0,  309,  309,  309,  309,  309,    0,    0,  309,  309,
703       309,    0,    0,    0,    0,  310,    0,  333,  357,  357,
704       357,  370,    0,    0,    0,    0,    0,  416,  416,  416,
705         0,  402,    0,  401,  416,  433,  459,  454,    0,  455,
706         0,    0,    0,    0,    0,    0,  510,  509,    0,    0,
707       522,  522,    0,  523,  527,    0,    0,    0,    0,    0,
708         0,   24,    0,    0,  239,  561,    0,    0,    0,   49,
709
710         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,  240,
713         0,  150,    0,  562,    0,  157,  156,    0,  177,  205,
714       205,  195,  194,    0,    0,  224,    0,  309,  309,  309,
715       309,  309,    0,  299,  298,  309,    0,    0,  309,    0,
716         0,    0,    0,  357,  357,    0,    0,  370,    0,  379,
717       378,    0,  386,    0,  394,  393,  416,  416,  416,  404,
718       403,    0,    0,  433,  454,    0,    0,    0,    0,  472,
719         0,    0,    0,  514,  513,    0,    0,    0,    0,    0,
720
721       534,    0,    0,    0,    0,    0,  475,  561,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
723         0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
724         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
725         0,    0,    0,    0,  476,    0,  150,    0,  562,  205,
726         0,    0,    0,  197,  196,  224,    0,  251,  309,  309,
727       309,    0,    0,  309,  309,    0,  297,  296,  309,    0,
728         0,    0,    0,    0,    0,  357,    0,    0,    0,  353,
729       352,    0,    0,  416,  416,  416,    0,  406,  405,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,    0,    0,    0,    0,  512,  511,    0,    0,    0,
733         0,    0,  475,  135,    0,    0,    0,   45,   44,    0,
734         0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
735         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737       476,  136,    0,    0,    0,    0,    0,  205,    0,  199,
738       198,    0,    0,  309,  309,    0,    0,    0,  303,  302,
739         0,    0,  309,  309,    0,    0,    0,    0,    0,    0,
740       357,    0,  349,  348,    0,  366,  365,  416,    0,    0,
741       416,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742
743         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744       571,    0,    0,    0,    0,  488,  135,   84,   83,    0,
745         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746         0,   94,    0,    0,    0,   93,    0,    0,    0,    0,
747         0,  111,  119,    0,    0,    0,    0,  110,  118,    0,
748       489,  136,    0,  146,  145,    0,    0,  189,  188,  205,
749         0,  218,  217,  309,  309,    0,  301,  300,    0,  305,
750       304,  309,  309,    0,    0,    0,    0,    0,    0,  357,
751       416,    0,  400,  399,  416,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,  463,    0,    0,  462,    0,
753
754       485,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755         0,    0,  488,   84,   83,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
757         0,    0,    0,    0,    0,  113,    0,    0,    0,  112,
758         0,  489,    0,  151,  205,  309,  309,    0,    0,  309,
759         0,  279,    0,    0,  278,    0,  357,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,   75,   71,    0,    0,   74,
763        70,    0,   92,    0,    0,   91,    0,    0,    0,  103,
764
765         0,    0,    0,    0,    0,    0,  205,  309,  309,    0,
766         0,    0,    0,    0,    0,  281,    0,  280,  357,    0,
767       396,  395,    0,    0,    0,  429,    0,  428,    0,  450,
768         0,  449,    0,  465,  467,  464,  466,    0,  502,  516,
769         0,  515,    0,    0,    0,    0,   12,    0,   12,    0,
770         0,    0,    0,    0,   86,   90,   85,   89,  123,    0,
771         0,  121,  122,    0,    0,  120,  205,  309,  309,    0,
772         0,    0,    0,    0,  285,  284,    0,    0,  357,    0,
773         0,    0,    0,  427,  426,  448,  447,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775
776       115,    0,    0,    0,  114,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779         0,    0,   69,    0,   68,    0,    0,    0,    0,    0,
780         0,    0,    0,  191,  190,    0,  295,  294,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,  283,  282,    0,
782       351,  350,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,   11,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
785         0,    0,    0,    0,    0,    0,  518,  517,    0,   73,
786
787        72,    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,  125,  117,
792         0,  124,  116,    0,    0,    0,    0,    0,    0,  273,
793         0,    0,  272,    0,    0,  408,    0,    0,  407,    0,
794         0,    0,    0,    0,    0,    0,  277,    0,  276,    0,
795       410,    0,  409,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,    0,    0,    0,  127,  126,    0,  291,
797
798         0,  290,    0,    0,    0,    0,    0,    0,  293,  292,
799       275,  274,  412,  411,    0,    0,    0,    0,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
803         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
804         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
805         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
806         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
807         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
808
809        13,    0
810     } ;
811
812 static yyconst flex_int32_t yy_ec[256] =
813     {   0,
814         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
815         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
818         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
819        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
820        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
821        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
822        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
823        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
824
825        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
826        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
827        73,   74,    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,    1,    1,    1,    1,    1,
830         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
831         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
832         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
834         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
835
836         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
837         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
838         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
839         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
840         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
841         1,    1,    1,    1,    1
842     } ;
843
844 static yyconst flex_int32_t yy_meta[75] =
845     {   0,
846         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
847         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
848         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
849         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
850         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
851         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
852         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
853         5,    5,    5,    5
854     } ;
855
856 static yyconst flex_int16_t yy_base[4015] =
857     {   0,
858         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
859        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
860       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
861       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
862       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
863       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
864       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
865       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
866       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
867       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
868
869       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
870      1014, 1018, 1055, 1122, 1075, 1078, 1189, 1257, 1081, 1085,
871      1325, 1392, 1088, 1142, 1145, 1148, 1152, 1155, 1209, 1212,
872      1459, 1527, 1215, 1219, 1222, 1277, 1280, 1283, 1287, 1290,
873      1595, 1657, 1345, 1348, 1719, 1788, 1351, 1355, 1857,    0,
874      1412, 1415, 1418, 1422, 1479, 1482, 1485, 1489, 1931, 1998,
875      1547, 1550, 2065, 2132, 1553, 1557, 2199, 2256, 1615, 1618,
876      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
877      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
878      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
879
880      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
881      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
882      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
883      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
884      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
885      2523, 2526, 3605, 3675, 2530, 2533, 3745, 3815, 2587, 2590,
886         0,    0, 9512,12639,12639,   95,  100,   29,   41,12639,
887       103,   51,12639,12639, 9493,12639,12639, 9482,12639, 9497,
888      9493,  202,12639,12639,12639,12639, 9491, 9491, 9442,  153,
889     12639,  161, 9468,    0,  145,12639, 9434,12639,  165, 3881,
890
891        73, 2599,  315,  357, 9470, 9417,12639,  168, 9460,    0,
892       152,12639, 9418,12639,  261, 9462,   31,12639,  266, 9453,
893         0,  245,12639, 9411, 9415, 9413,  421, 9414,12639,  269,
894      9440,    0,  340,12639, 9406, 9402,  271, 9404,  238,12639,
895       441,  484,12639,  504, 9432,    0,  401,12639, 9387, 9389,
896      9379,12639,  561,  548,12639,  571, 9420,    0,  481,12639,
897      9387, 9375,12639,  628, 3945, 9369,  163, 2533,  567,  206,
898        38, 9420,  954, 2607,  639,  907,  437,   79,12639,  634,
899      9411,    0,  546,12639, 9363, 9373, 9361, 9362,12639,  638,
900       313,  559,  368,12639,  697, 9398,    0,  549,12639, 9368,
901
902      9344,12639,  704,  750,12639,  707, 9391,    0,  747,12639,
903      9361, 9332,12639,  771,  758,12639,  774, 9384,    0,  748,
904     12639, 9333, 9335, 9345,  251, 9328,12639,  831,  429, 9330,
905       497,12639,  837, 9370,    0,  815,12639, 9321, 9321, 9331,
906      9309,12639,  840,  530,  564,12639,  906, 9357,    0,  816,
907     12639, 9327,12639,  914,  891,12639,  977, 9355,    0,  825,
908     12639, 9307, 9317, 9304,12639,  981,  965,12639, 1021, 9343,
909         0,  881,12639, 9292,  203, 9298, 9304,  970,   85,  429,
910       972, 9292,12639, 1040,  814,  833,12639, 1044, 9334,    0,
911       953,12639, 9278, 9296, 9298,  157, 9293, 9272,12639, 1048,
912
913      1092,12639, 1105, 9320,    0,  966,12639, 9265, 9263, 9270,
914      9276, 9278, 9263, 9253,12639, 1108, 1093,12639, 1116, 9300,
915         0, 1032,12639, 9256, 9262,12639, 1172, 1159,12639, 1175,
916      9293,    0, 1033,12639, 9263, 9255, 9257,12639, 1179, 1226,
917     12639, 1183, 9285,    0, 1095,12639, 8684, 8680, 8681,   15,
918     12639, 1239,  899, 1074,12639, 1242, 8709,    0, 1167,12639,
919      8661,  181,12639, 1246, 1242,  367,  303,12639, 1307, 8707,
920         0, 1234,12639, 8659, 8654,  299,12639, 1310, 1310,  350,
921     12639, 1313, 8704,    0, 1302,12639, 8665, 8669,12639, 1358,
922      1363,12639, 1377, 8699,    0, 1362,12639, 8644, 8644,12639,
923
924      1383, 1430,  370,12639, 1425, 8688,    0, 1426,12639, 8633,
925      8627, 8631,12639, 1442, 1436,  488,12639, 1448, 8675,    0,
926      1432,12639, 8621, 8626, 8630, 8619, 8611,12639, 1509, 1445,
927       560, 1103,12639, 1515, 8655,    0, 1494,12639, 8624,12639,
928      1518, 1558,12639, 1521, 8652,    0, 1559,12639, 8610,12639,
929      1579, 1141, 1344,12639, 1583, 8631,    0, 1567,12639, 8598,
930      8591,12639, 1587, 1632,12639, 1590, 8619,    0, 1629,12639,
931      8585, 8580,12639, 1645, 1633, 1707,  677, 8555,12639, 8614,
932      8602,12639,12639,12639, 1700,  375, 8549, 8548, 8536, 8584,
933      8538,12639,    0, 8526, 8522, 8546, 8511,  104, 1328, 8512,
934
935      8511, 8507, 8511,  621, 1646,  695, 8498, 8491, 1701,  912,
936      8515, 1719, 8489, 1709, 8466, 1724, 1777, 1778,12639,    0,
937      8471, 8472,12639,    0, 8464, 2098, 8456,  666, 8453, 8499,
938     12639,    0, 8443, 2165, 8432, 8444, 8430, 8436, 8433, 8433,
939      8418,12639,    0, 8429, 8419, 8430, 8404,12639,    0, 2232,
940      8398, 8444, 8425,  172, 8391, 8391, 8395, 1788, 1171, 8375,
941      1789, 8399,  707,  814,  841, 1022, 1577, 1913, 1639, 1179,
942     12639,    0, 8362, 2289, 8366, 8343, 8348,  889,12639,    0,
943      8335, 8328, 8329,12639,    0, 8318, 8314, 8315,12639,    0,
944      8326,  826, 2596, 8302, 8300, 8308, 8298,  897,12639,    0,
945
946      8280, 8284, 2614, 8279, 8274,12639,    0, 8276, 8280,12639,
947         0, 8253, 2656, 2666, 8267,12639,    0, 8268, 8268, 2674,
948      8237, 2680, 8234, 8239, 8232, 8223, 8239, 8234, 8215, 8231,
949      8229, 8223, 8211, 8216,12639,    0, 2721, 2724, 8196, 8188,
950      8205, 8194, 8191, 8192,12639,    0, 8174, 8174, 8156, 2727,
951      8148, 8143, 8162, 8125,12639,    0, 8125, 2730, 8120,12639,
952         0, 8118, 2733, 8110, 8123,12639,    0, 8110, 2788, 8102,
953      8113, 8112, 8099,12639,    0, 8085, 8100, 8085, 8079, 8086,
954     12639,    0, 8067, 8086, 8077, 8065, 8103,12639,    0, 8057,
955      2791, 8058,12639,    0, 8045, 8059, 8055,12639,    0, 8036,
956
957      8045, 8041, 8040,12639,    0, 8023, 8017, 8018, 8029, 8017,
958      7981, 7977,12639,    0, 7965, 7969,12639,    0, 2794, 7966,
959     12639,    0, 2797, 7955, 7939,12639,    0, 2800, 7942, 7931,
960      7971, 7971, 1615, 7919,12639, 1970,    0, 7906, 7906, 7950,
961      7941, 7893,12639, 7902, 7883, 2600, 2855, 1714, 7893, 7889,
962      7875, 7887, 7863, 7869, 7857, 7834, 7849, 7836,  458, 7825,
963      7839, 7839, 7824, 7818, 7786, 7790, 7800, 7783, 7781, 1990,
964      7792, 7755, 7772, 7760, 7749, 7761, 7749, 2858, 2863, 7748,
965      2866, 2048, 7742, 7774, 2869, 2914,12639, 7743, 2917, 2117,
966      2924, 7732, 2927, 7736, 7739, 7729, 2920, 2983, 7715, 7722,
967
968      7722, 2969, 2972, 2975, 2184, 7703, 2979, 3037, 2363, 7719,
969      7704, 7687, 7688, 7683, 7681, 7673, 7670, 2423, 7668, 7666,
970      7656, 7655, 7650, 3040, 2550, 7664, 7662, 3044, 3047,  868,
971      7654, 7640, 3050, 3103, 7648, 7647, 3106, 3114, 7637, 7623,
972      7634, 3109, 2621, 7632, 7635, 7614, 3117, 3129, 1204, 7609,
973      7627, 7600, 3170, 2685, 7614, 3173, 3180, 7612, 3183, 3242,
974      7602, 3176, 2755, 3237, 2822, 3247, 3250, 7605, 1993, 3255,
975      3002, 7608, 3305, 3069, 3308, 7598, 7583, 7593, 7590, 7582,
976      7570, 7556, 7553, 7562, 7552, 3312, 3315, 3318, 3137, 3374,
977      3204, 3377, 3384, 3397, 3387, 3453, 3443, 3467, 7556,   37,
978
979      7532, 3446, 3405, 3456, 7544, 7514, 3511, 3519, 7515, 3515,
980      3474, 3522, 3525, 7527, 3571, 3574, 7525, 3582, 3625, 7515,
981      3628, 3594, 7513, 7495, 7492, 3633, 3640, 3636, 3646, 3654,
982      3696, 3704, 7496, 3699, 3709, 3723, 3770, 3766, 3775, 7496,
983      3778, 3727, 3781, 3835, 3838, 3841, 3844, 3847, 3850, 3872,
984      3875, 3878, 3885, 7497, 7477, 7484, 7488, 7469, 3893, 3897,
985      7472, 7456, 3905, 3908, 3949, 3735, 3952, 3957, 3967, 3801,
986      7454, 3977, 3987, 3980, 3912, 7453, 4012, 4015, 7500,12639,
987     12639, 1141, 7455,12639, 7497, 7486, 7435,12639,12639, 7429,
988      7428, 7437, 4019, 4022,12639, 4025, 1848, 7422, 7406, 7406,
989
990      7407, 7397, 7386, 7397, 2250, 7373, 7379, 7379, 7375, 7362,
991      7359, 7355, 7342, 1450, 7356, 7335, 7336, 7329, 7324, 7324,
992      2307, 7317, 7305, 7311, 7303, 1782, 7317, 4044, 4034, 4047,
993     12639, 4053, 4056, 4062,12639,12639, 4077, 7341, 4080, 4083,
994     12639, 4086, 7269, 4089,12639,12639, 4105, 4108, 4117, 4123,
995      4128, 7283, 4141, 7275, 4144, 4147,12639, 4150, 7273, 4153,
996      7265, 4159, 4171,12639, 4174, 4178,12639,12639, 7256, 4186,
997      4193,12639, 4196, 7242, 7244, 7248, 2483, 7228, 7235, 2054,
998      7224, 7225, 7226, 7224, 7201, 7200, 7213, 4199,12639,12639,
999      7190, 4207, 4215, 4218,12639, 4225, 7195, 4228, 4237, 4240,
1000
1001      4246,12639, 4249, 4255, 4259, 4273, 4277,12639, 4280, 7182,
1002      7189, 4268, 4292,12639,12639, 7173, 7170, 7180, 4288, 4300,
1003     12639, 4303, 7170, 7158, 7169, 7161, 4307,12639,12639, 7183,
1004      4322, 4325,12639, 4329, 4332, 4335, 4354,12639, 4357, 4350,
1005      4362,12639,12639, 4376,12639,12639, 4384, 4387,12639, 4391,
1006      7143, 7130, 7146, 7137, 4394,12639,12639, 4406, 4410,12639,
1007     12639, 4418, 4425, 7113, 7126, 7108, 7116, 7120, 7109, 7103,
1008      7106, 7099,  637, 4436, 4439,12639, 4442, 4445,12639,12639,
1009      4461,12639,12639, 4469, 4472, 7088, 7081, 7086, 7074, 4480,
1010      4483,12639, 4487, 7069, 7030, 7011, 7020, 4490,12639,12639,
1011
1012      4502, 4506, 6984, 6993, 4514, 4520,12639, 4523, 6989, 4526,
1013     12639,12639, 4542, 4545,12639, 4548, 6963, 4551,12639,12639,
1014      6969, 4567, 4570,12639, 4575, 6946, 4579,12639,12639, 6914,
1015      6916, 6919, 4589, 4594,12639, 4598, 4601, 4604, 4619, 4625,
1016      6900, 4633, 4637,12639, 4641, 6859, 4644, 4662, 6823, 6812,
1017      4648, 4670, 6767, 4678, 4681,12639, 4684, 6711, 4687,12639,
1018     12639, 4703, 4709,12639, 4712, 4715, 4718, 4733, 4736, 4744,
1019      4751,12639, 4755, 4758, 4763, 6679, 6663, 4776, 4779, 4787,
1020      4790,12639, 4794, 6650, 4797, 6637, 6613, 6541, 4800, 4809,
1021     12639, 4819, 6534, 6537, 4822, 4828,12639, 4831, 4834,12639,
1022
1023     12639, 4842, 4850,12639, 4853, 4857,12639,12639, 6530, 4865,
1024      4872,12639, 4875, 4885,12639,12639, 6481, 4894, 4897,12639,
1025      4900, 1280, 4903,12639,12639, 6511, 6486, 6430, 6416, 4906,
1026      6352, 6338, 6269, 6235, 6235, 6164, 6154, 2492, 2495,   20,
1027      2559,  134,  249,  294, 2562,  345,  352, 2662,  383,  444,
1028       450,  497,  561,  580,  667,  697,  698, 2693,  744,  759,
1029      4909, 4927, 4937, 4940, 4944,  771,  802, 4952,  782, 4958,
1030     12639,12639, 4966, 4973, 4984,12639,12639,  981, 4992, 4996,
1031       978, 5004, 1032, 5010, 5013, 5023, 5028, 1059, 5031,12639,
1032      1093, 1179, 1165, 2763, 3010, 3077, 2830, 1200, 1239, 1229,
1033
1034      1230, 1246, 1265, 1259, 5034, 5041, 5055, 5063, 1264, 5066,
1035      5069, 1286, 5078, 5084, 5087, 1312, 5097, 1316, 1333, 5102,
1036      5105, 5116, 1370, 5120, 5123, 1364, 1368, 1379, 1392, 1403,
1037      5128, 5134, 5143, 5152, 5155, 5160, 5173, 1409, 5176, 1407,
1038      1446, 5179, 5183, 5197,12639,12639, 1449, 1477, 5205, 1471,
1039      1509, 1496, 1504, 1519, 1497, 1513, 1548, 5208, 5211,12639,
1040     12639, 5219, 5223, 5227, 5230, 5233, 1603, 5241, 1587, 1599,
1041      5248,12639,12639, 5259, 1625, 5262, 1639, 5265, 1640, 1649,
1042      5268, 1650, 1684, 1696, 5277, 5289, 5295,12639,12639, 5304,
1043     12639,12639, 1691, 5312, 3212, 5315,12639,12639, 1706, 1726,
1044
1045      5332,12639,12639, 1710, 5327, 1713, 5340, 5347,12639,12639,
1046      5355,12639,12639, 5363, 5366,12639,12639, 1715, 1734, 5375,
1047     12639,12639, 5383, 1729, 5389, 5392, 1736, 1762, 1779, 5402,
1048      1767, 5407, 5411, 5414, 5417, 5421, 5425, 5435, 1951, 1827,
1049      5443,12639, 1833,12639,12639, 1793, 1885, 5446, 1902, 1921,
1050      1917, 1919, 1936, 1937, 1959, 3275, 1969, 1985, 3279, 1987,
1051      1992, 3342, 1992, 3346, 1984, 1992, 3380, 2000, 3415, 2008,
1052      3482, 2026, 2035, 2051, 2054, 2056, 3450, 2043, 3666, 5455,
1053     12639,12639, 5467, 5470,12639,12639, 2067, 2087, 5479, 2060,
1054      5488,12639,12639, 2070, 5499,12639,12639, 2061, 5507, 2080,
1055
1056      5512, 2851, 3032, 5520, 5531, 5526, 2108, 2103, 2109, 2107,
1057      3486, 2115, 3589, 3796, 5539, 2122, 2118, 2124, 5545, 5548,
1058      2126, 5552, 5555, 5563,12639,12639, 5571, 2147, 5574,12639,
1059     12639, 2144, 5582, 5586,12639,12639, 5594, 5597, 2148, 2153,
1060      5606,12639,12639, 5619, 5622, 5630, 5633, 5637, 2176, 5651,
1061      3809, 2189, 5654, 5657, 5662, 5665, 5680,12639,12639, 5675,
1062     12639, 5688,12639,12639, 5696, 2189, 5699, 5702, 5717, 2175,
1063      5720,12639,12639, 2176, 2193, 5728, 5731, 5739, 2188, 2201,
1064      2200, 2218, 5746, 2238, 2240, 5749, 5752, 5757, 5770, 5773,
1065      5776, 5779, 2246, 5782, 5794, 5802, 2236, 5805, 5809, 2245,
1066
1067      5823, 2239, 5826, 2253, 2233, 5832, 2260, 2256, 2289, 5835,
1068      5847, 2298, 5855, 2287, 5858, 2304, 5861, 5864, 5867, 5870,
1069      2299, 5889, 5885, 5893, 5896, 5899, 2295, 5904,12639,12639,
1070      2305, 2308, 2301, 5914, 2318, 5919, 5922, 5938, 5941, 5944,
1071      5947, 5966, 5969, 5972, 5980, 2352, 2402, 2396,12639, 2338,
1072      5987, 5990, 2359, 2351, 2353, 2450, 2350, 2362, 3931, 2374,
1073      2379, 2405, 2411, 4652, 2421, 2412, 2415, 5037, 5993, 5999,
1074      2438, 6005, 2441, 6009, 6012, 2448, 2465, 2486, 2473, 6015,
1075      2491, 6018, 2498, 2536, 6021, 2532, 6024, 2539, 6027, 6030,
1076      2584, 2573, 2649, 2574, 2590, 2586, 2668, 2590, 6033,12639,
1077
1078     12639, 6042, 6048, 2575, 2569, 2716, 2575, 6052, 6055, 2608,
1079      2717, 2722, 6061, 6069,12639,12639, 6079, 2598, 2642, 6082,
1080      6089, 6092, 6101, 2617, 2643, 6108,12639,12639, 6116, 6120,
1081      6134, 2664, 2681, 2684, 6128,12639, 6142, 2687, 6149, 6152,
1082      6160, 6163, 6167, 6181, 6184, 2688, 6187,12639,12639, 6195,
1083      6203, 2693, 2703, 2703, 6213,12639,12639, 6221, 6224, 6235,
1084      2706, 2736, 2748, 6239, 6243, 2740, 2735, 6253, 6257,12639,
1085     12639, 6265, 6268, 6276, 6279, 6283, 6297, 2752, 6301,12639,
1086     12639, 6309, 6312, 2762, 6320,12639,12639, 2755, 6328,12639,
1087      2768, 6331, 2750, 6334, 6337, 2753, 6340, 2774, 6343, 2791,
1088
1089      2793, 2773, 6352,12639, 2794, 6358, 2795, 6361, 6364, 6372,
1090      6380, 2807, 6390, 2813, 6399, 6402, 6405, 6409, 6423, 6426,
1091      6434, 2815, 2818, 2817, 2833, 6437, 2829, 6442,12639,12639,
1092      6457, 6460, 6464,12639,12639, 6472,12639, 6479,12639,12639,
1093      6487, 2888, 2964, 2922, 2871, 6492, 6496, 6510, 6514, 2865,
1094      2882, 2898, 2878, 6517, 6520, 6523, 2883, 6529, 2885, 2882,
1095      2912, 2929, 6534, 6537, 6540, 6543, 2928, 6546, 6549, 6552,
1096      6555, 6558, 6561, 2930, 6564, 2940, 2952, 6567,12639, 2934,
1097      6570, 6576, 2953, 6590, 6593, 6596, 2972, 2970, 2970, 3010,
1098      3013, 3025, 3027, 3034, 3042, 3039, 6604, 6611, 6616, 6624,
1099
1100      3046, 3075, 3059, 3062, 6629, 6632, 6635, 6638, 3059, 6646,
1101      3070, 3090, 6649,12639, 6654,12639,12639, 6668, 3084, 3077,
1102      6672,12639,12639, 3163, 3164, 3087, 3095, 6680,12639,12639,
1103      6688, 6691, 3120, 6699,12639,12639, 6707, 6710, 3134, 6713,
1104     12639,12639, 3139, 3144, 3161, 6722,12639,12639, 6730, 6733,
1105      3159, 3148, 3173, 6741,12639,12639, 3193, 6749, 6752, 6755,
1106     12639,12639, 6767, 6771, 6779,12639,12639, 6787, 3183, 6790,
1107     12639,12639, 3179, 3195, 3193, 6799, 3209, 6802, 6806, 6820,
1108      3210, 6823, 6826, 3214, 3205, 3298, 3299, 3212, 3224, 6834,
1109     12639, 3238, 6841,12639,12639, 6854,12639,12639, 3272, 6849,
1110
1111      3266, 6863, 6868, 6871,12639,12639, 6883,12639,12639, 6891,
1112      6895, 6901, 6905, 6913, 6919, 3261, 6923, 6926, 6931, 6938,
1113      3322, 3353, 6934, 6946,12639,12639, 6957, 6960, 6963, 6966,
1114      3270, 3270, 6976, 6979, 3282, 6985, 6988, 3304, 6994, 6997,
1115      7000, 7003, 3306, 3330, 7006, 7009, 7012, 7017, 3332, 7020,
1116      3327,12639, 7023, 7026,12639,12639, 7034, 7041,12639, 7045,
1117     12639,12639, 3377, 3364, 3379, 3378, 3386, 3388, 3375, 3417,
1118      3429, 3436, 7053, 7056, 7039, 7043, 7073, 7080, 3398, 3397,
1119      3414, 7084, 3406, 7087,12639,12639, 3406, 7095, 3419, 7101,
1120      7104, 3463, 3479, 3506, 3529, 3509, 3531, 3488, 7107, 7119,
1121
1122     12639,12639, 3470, 7110, 7115, 3487, 3491, 3490, 3521, 7130,
1123     12639,12639, 7142, 3501, 3517, 3518, 7145, 7149, 7163, 7166,
1124     12639,12639, 7176, 3525, 3534, 3536, 3546, 7182,12639, 7185,
1125      7188,12639,12639, 7196, 7203, 7206,12639,12639, 7215, 7221,
1126      3574, 3598, 3594, 3624, 7224, 3585, 7138, 3592, 7227, 7233,
1127      7242, 7251, 7254, 7257, 7261, 7276, 7279, 7283, 7286, 7297,
1128      7305, 7308,12639, 7313, 7317, 3639, 3647, 7320, 7327, 7336,
1129      7339, 3583, 3586, 7342, 7346, 3597, 7349, 7352, 3590, 3602,
1130      3604, 7355,12639, 3598, 7358, 7361, 3615, 3662, 3661, 3675,
1131      3669, 3681, 3677, 3675, 3699, 3687, 3702, 7380, 3683, 3714,
1132
1133      3727, 3712, 3731, 3730, 3736, 3796, 3731, 3749, 7383, 3745,
1134      3741, 7386, 3785, 3795, 7389, 3799, 7392, 7395, 7403, 3798,
1135      3801, 3864,12639, 3862,12639, 7410, 7413, 3809, 7416,12639,
1136      7423, 3815, 3836, 3828, 3833, 3857, 7428, 7431, 3859, 7442,
1137      3869, 7446, 3900, 3935, 7456,12639, 7460,12639, 3855, 3859,
1138      7464, 3862, 7467, 7475, 7470, 7485, 7489, 3889, 3884, 3886,
1139      3958,12639, 3956,12639, 7497, 3913, 7503, 3916, 7506,12639,
1140      7509, 7515, 7527, 7530, 7534, 7537,12639,12639, 7549, 7553,
1141      7561, 7567, 7570,12639, 7573, 7581, 7585, 3973, 3983, 3967,
1142      7589,12639, 3909, 3932, 7592, 7600, 3924, 3939, 3945, 7604,
1143
1144      7608, 4006, 4080, 3941, 3978, 3988, 4010, 4021, 4046, 4031,
1145      4040, 4045, 4048, 4063, 7616, 4007, 4019, 4031, 4037, 4037,
1146      4031, 4033, 4055, 4053, 4062, 4061, 4058, 4060, 4080, 7622,
1147      4074, 4086, 7625, 7628, 7631,12639,12639, 7639,12639, 4068,
1148      7647,12639,12639, 7650, 7654, 4105, 7668, 4086, 4101, 4107,
1149      7671, 4100, 7677,12639,12639, 4112, 7689, 7693, 4103, 4171,
1150      4147, 4192, 4149, 4113, 7701, 7707, 7710, 7719, 7725,12639,
1151     12639, 7733,12639, 7737,12639,12639, 4135, 4154, 4158,12639,
1152     12639, 7745, 7748, 7756, 7759, 7763, 4305, 4425, 7777,12639,
1153      7780, 7783, 7786,12639,12639, 7802, 7805, 7813, 7816, 7824,
1154
1155     12639, 7827, 4216, 4253, 4279, 4156, 7831, 7834, 4180, 4183,
1156      4186, 7837, 7848, 4208, 4218, 4233, 4226, 4231, 4328, 4223,
1157      4287, 4272, 4272, 4277,12639, 4296, 4280, 4298, 4302,12639,
1158      7856, 4280, 4303, 4294, 4312, 4320, 4326, 4309, 4322, 4310,
1159      4324, 4346, 4352, 4334, 7859, 4352, 7862, 7865, 7868, 7871,
1160      7875, 7880, 7893,12639,12639, 7901, 7904,12639, 4358, 4352,
1161      7908, 7911, 7919, 7914, 4366, 7932,12639,12639, 4365, 4383,
1162      4402, 4392, 4392, 4411, 4397, 4388, 7940, 7943, 7951,12639,
1163     12639, 7959, 7962, 4392, 7970, 4402, 7973,12639,12639, 7981,
1164      7984, 7992, 7995, 4419, 4421, 4424, 4432, 4433, 4440, 8003,
1165
1166      8006, 8010, 4476, 4495, 8018,12639,12639, 8026, 4493, 4511,
1167      8029, 4426, 8032, 8035, 4412, 4427, 8038,12639,12639, 4475,
1168      4463, 4467, 4491, 4514, 4503, 4504, 4513, 8048, 4502, 4534,
1169      4552, 4537, 4523, 4542, 4558, 4553, 8051, 4512, 4517, 4534,
1170      4583, 4588, 4539, 4543, 4545, 4563, 4607, 4610, 4564, 4572,
1171      8055, 8058, 8061, 8070, 8066, 8079, 8085, 4576, 8097,12639,
1172     12639, 8093, 8105, 4578, 4573, 8113, 8118, 8127,12639,12639,
1173      8135, 8138, 4569, 4583, 4610, 4619, 4621, 4621, 4630, 4634,
1174      4623, 8146,12639,12639, 8154,12639,12639, 4625, 8162, 8165,
1175      4619, 8173, 4664, 4696, 8181, 4698, 4728, 4651, 4660, 4691,
1176
1177      4657, 4667, 4694, 8189, 8192, 4678, 4699, 4696, 4702, 8195,
1178     12639, 4764, 8198, 8201, 8204, 8223, 8226, 8229, 8232, 4695,
1179      4718, 4724, 4712, 4721, 4742, 4745, 4737, 8235, 8238, 4757,
1180      4757,12639, 4775, 4777, 4778,12639, 4779, 8246, 4762, 4749,
1181      4821,12639,12639, 4776, 4788, 4779, 4840,12639,12639, 4798,
1182      8249, 8253, 8259,12639,12639, 8267, 8270,12639,12639, 4807,
1183      8279,12639,12639, 4808, 4814, 8287,12639,12639, 8295,12639,
1184     12639, 8303, 4805, 4840, 4875, 4844, 4844, 4881, 4854, 4859,
1185      8306, 8309,12639,12639, 8317, 4882, 4893, 4885, 4896, 4889,
1186      4901, 4896, 4908, 4900, 4911,12639, 4910, 4923,12639, 8324,
1187
1188     12639, 8327, 4925, 4919, 4937, 4926, 4946, 8330, 8336, 8349,
1189      8380, 8427, 8357, 8360, 8363, 4946, 4967, 4972, 4940, 4956,
1190      4974, 4975, 4949, 8368,12639,12639, 4985, 4959, 4968, 4995,
1191      4977, 4985, 8391, 4954, 4955,12639, 4966, 4962, 4980,12639,
1192      4990, 8400, 8403,12639, 4989, 4990, 5001, 8406, 8410, 8418,
1193      5016,12639, 5049, 5024,12639, 5054, 5014, 8438, 8447, 8456,
1194      8459, 5070, 5038, 5075, 5053, 5088, 5056, 5088, 5063, 5104,
1195      5106, 5104, 5106, 8467, 5110, 5088, 5124, 5094, 5122, 8474,
1196      5145, 5141, 8494, 8541, 5127,12639,12639, 5106, 5153,12639,
1197     12639, 5132,12639, 5165, 5167,12639, 5175, 5181, 8487,12639,
1198
1199      5191, 5147, 5196, 5207, 5155, 5196, 5165, 5166, 5167, 8514,
1200      5220, 5247, 8506, 8524, 5222,12639, 5230,12639, 5205, 8561,
1201     12639,12639, 8569, 5250, 5273,12639, 5267,12639, 5274,12639,
1202      5278,12639, 5278,12639,12639,12639,12639, 8532,12639,12639,
1203      5272,12639, 5281, 5285, 5317, 5319, 5305, 5343, 5311, 8535,
1204      5307, 5300, 5330, 5328,12639,12639,12639,12639,12639, 5308,
1205      5349,12639,12639, 5320, 5373,12639, 8577, 8580, 8587, 5411,
1206      5342, 5413, 5360, 8591,12639,12639, 5374, 5376, 8599, 5421,
1207      5378, 5434, 5401,12639,12639,12639,12639, 5402, 5404, 8605,
1208      5445, 5439, 5456, 8608, 5461, 5455, 5469, 5462, 5437, 5426,
1209
1210     12639, 5444, 5446, 5435,12639, 5455, 8611, 8617, 8629, 8632,
1211      8640, 8643, 5466, 5474, 5490, 5477, 5486, 5498, 5519, 5517,
1212      8651, 8654, 5491, 5505, 5522, 5505, 5520, 5538, 5522, 5523,
1213      8662, 5548,12639, 5547,12639, 5548, 5519, 5527, 5543, 5535,
1214      5538, 5555, 8665,12639,12639, 8674,12639,12639, 8682, 5580,
1215      5591, 5579, 5594, 5591, 5605, 5611, 5607,12639,12639, 8690,
1216     12639,12639, 5610, 5615, 5613, 5625, 5637, 5634, 5668, 5666,
1217      5667,12639, 5674, 5679, 5645, 5627, 5651, 5661, 5641, 5657,
1218      5693, 5688, 5705, 5699, 5708, 5714, 5719, 5716, 5732, 5736,
1219      5734, 5742, 5742, 5740, 5762, 5762,12639,12639, 5771,12639,
1220
1221     12639, 5722, 5726, 5741, 5734, 5747, 5763, 5779, 5798, 5782,
1222      5801, 5794, 5791, 5815, 5805, 5803, 5820, 5810, 5807, 5830,
1223      5839, 5836, 5856, 5864, 5819, 5888, 5908, 5854, 5918, 5920,
1224      5893, 5894, 5898, 5898, 5928, 5918, 5951, 5933, 5923, 5953,
1225      5938, 5928, 5971, 5953, 5943, 5976, 6040, 5934,12639,12639,
1226      5951,12639,12639, 5975, 6022, 6031, 6042, 6063, 6041,12639,
1227      6067, 6044,12639, 6073, 6054,12639, 6080, 6064,12639, 6093,
1228      6047, 6053, 6070, 6090, 6079, 6100,12639, 6102,12639, 6107,
1229     12639, 6113,12639, 6115, 8700, 6136, 6138, 6123, 6151, 6133,
1230      6151, 6128, 6130, 6131, 6133, 8703,12639,12639, 6172,12639,
1231
1232      6171,12639, 6175, 6183, 6188, 6186, 6209, 6271,12639,12639,
1233     12639,12639,12639,12639, 6180, 6182, 6183, 6349, 6198, 6200,
1234      6215, 6274, 6201, 6276, 6359, 6365, 6367, 6376, 6338, 6396,
1235      6214, 6370, 6378, 6394, 6427, 6509, 6451, 6452, 6256, 6273,
1236      6445, 6467, 6400, 6561, 6432, 6557, 6190, 6566, 6601, 6700,
1237      6568, 6641, 6626, 6645, 6486, 6648, 6684, 6743, 6361, 6581,
1238      6718, 6745, 6756, 6759, 6657, 6797, 6653, 6767, 6667, 6777,
1239      6775, 6813, 6728, 6856, 6794, 6814, 6839, 6844, 6584, 6778,
1240      6829, 6890, 6927, 7013, 6899, 6937, 6892, 7019, 6880, 6964,
1241      7049, 7074, 7032, 7143, 7075, 7130, 6842, 6300, 8711, 8714,
1242
1243     12639,12639, 8734, 8743, 8752, 8761, 8770, 8779, 8788, 8797,
1244      8806, 8815, 8824, 8833, 8842, 8851, 8860, 8869, 8878, 8887,
1245      8896, 8905, 8914, 8923, 8932, 8941, 8950, 8959, 8968, 8977,
1246      8986, 8995, 9004, 9013, 9022, 9031, 9040, 9049, 9058, 9067,
1247      9076, 9085, 9094, 9103, 9112, 9121, 9130, 9139, 9148, 9157,
1248      9166, 9175, 9184, 9193, 9202, 9211, 9220, 9229, 9238, 9247,
1249      9256, 9265, 9274, 9283, 9292, 9299, 9306, 9313, 9320, 9327,
1250      9334, 9341, 9348, 9355, 9362, 9369, 9376, 9383, 9390, 9397,
1251      9404, 9411, 9418, 9425, 9432, 9439, 9446, 9453, 9460, 9467,
1252      9474, 9481, 9488, 9495, 9504, 9511, 9516, 9523, 9528, 9535,
1253
1254      9540, 9547, 9552, 9559, 9564, 9571, 9576, 9583, 9588, 9595,
1255      9600, 9607, 9612, 9619, 9624, 9631, 9636, 9643, 9648, 9655,
1256      9660, 9667, 9672, 9679, 9684, 9691, 9696, 9703, 9708, 9715,
1257      9720, 9727, 9732, 9739, 9744, 9751, 9756, 9763, 9768, 9775,
1258      9780, 9787, 9792, 9799, 9804, 9811, 9816, 9823, 9828, 9835,
1259      9840, 9847, 9852, 9861, 9867, 9874, 9882, 9889, 9897, 9904,
1260      9912, 9919, 9927, 9934, 9942, 9949, 9957, 9964, 9972, 9979,
1261      9987, 9994,10002,10009,10017,10024,10032,10039,10047,10054,
1262     10062,10069,10077,10085,10093,10100,10108,10115,10123,10130,
1263     10138,10145,10153,10161,10169,10177,10185,10192,10200,10208,
1264
1265     10216,10224,10232,10239,10247,10254,10262,10270,10277,10285,
1266     10292,10300,10309,10315,10322,10330,10338,10346,10354,10362,
1267     10369,10377,10384,10392,10399,10407,10414,10422,10430,10438,
1268     10446,10454,10461,10469,10476,10484,10492,10500,10508,10516,
1269     10523,10531,10538,10546,10553,10561,10568,10576,10583,10591,
1270     10598,10606,10613,10621,10628,10636,10643,10651,10659,10666,
1271     10674,10681,10689,10696,10704,10712,10719,10727,10734,10742,
1272     10751,10760,10767,10775,10783,10790,10798,10805,10813,10820,
1273     10828,10835,10842,10850,10857,10865,10872,10880,10887,10895,
1274     10902,10910,10918,10926,10933,10941,10949,10957,10964,10972,
1275
1276     10979,10987,10994,11002,11009,11017,11024,11032,11039,11047,
1277     11054,11062,11070,11077,11085,11092,11100,11108,11116,11124,
1278     11132,11140,11148,11156,11165,11174,11181,11189,11197,11204,
1279     11212,11219,11227,11234,11242,11249,11256,11264,11271,11279,
1280     11287,11295,11302,11310,11318,11326,11334,11341,11349,11357,
1281     11365,11372,11380,11387,11395,11402,11410,11417,11425,11432,
1282     11440,11448,11456,11463,11471,11479,11487,11495,11502,11510,
1283     11518,11526,11534,11542,11551,11560,11568,11576,11584,11591,
1284     11599,11606,11614,11622,11630,11638,11646,11654,11661,11669,
1285     11677,11684,11692,11700,11708,11715,11723,11731,11739,11746,
1286
1287     11753,11761,11768,11776,11783,11790,11798,11805,11813,11820,
1288     11828,11836,11844,11851,11859,11867,11875,11883,11892,11901,
1289     11909,11917,11924,11931,11939,11947,11954,11962,11969,11977,
1290     11984,11991,11999,12007,12014,12022,12030,12037,12044,12052,
1291     12059,12067,12074,12081,12088,12096,12103,12111,12119,12127,
1292     12135,12143,12151,12159,12167,12176,12185,12193,12201,12208,
1293     12216,12224,12231,12239,12247,12255,12262,12269,12277,12285,
1294     12292,12300,12308,12315,12322,12330,12338,12346,12353,12360,
1295     12368,12376,12384,12392,12400,12408,12416,12424,12432,12441,
1296     12450,12458,12465,12472,12480,12487,12495,12503,12510,12517,
1297
1298     12525,12532,12539,12546,12554,12561,12568,12575,12584,12593,
1299     12602,12611,12620,12629
1300     } ;
1301
1302 static yyconst flex_int16_t yy_def[4015] =
1303     {   0,
1304      3503, 3503, 3504, 3504, 3504, 3504, 3505, 3505, 3506, 3506,
1305      3507, 3507, 3508, 3508, 3508, 3508, 3509, 3509, 3503, 3503,
1306      3510, 3510, 3511, 3511, 3511, 3511, 3503, 3503, 3511, 3511,
1307      3511, 3511, 3503, 3503, 3511, 3511, 3503, 3503, 3511, 3511,
1308      3511, 3511, 3512, 3512, 3513, 3513, 3503, 3503, 3513, 3513,
1309      3513, 3513, 3514, 3514, 3508, 3508, 3515, 3515, 3516, 3516,
1310      3517, 3517, 3518, 3518, 3519, 3519, 3520, 3520, 3520, 3520,
1311      3503, 3503, 3520, 3520, 3520, 3520, 3503, 3503, 3520, 3520,
1312      3520, 3520, 3503, 3503, 3520, 3520, 3503, 3503, 3520, 3520,
1313      3520, 3520, 3503, 3503, 3520, 3520, 3503, 3503, 3520, 3520,
1314
1315      3520, 3520, 3521, 3521, 3522, 3522, 3503, 3503, 3522, 3522,
1316      3522, 3522, 3523, 3523, 3524, 3524, 3525, 3525, 3526, 3526,
1317      3527, 3527, 3528, 3528, 3503, 3503, 3528, 3528, 3528, 3528,
1318      3529, 3529, 3530, 3530, 3503, 3503, 3530, 3530, 3530, 3530,
1319      3531, 3531, 3532, 3532, 3533, 3533, 3534, 3534, 3502,  149,
1320      3535, 3535, 3503, 3503, 3535, 3535, 3535, 3535, 3536, 3536,
1321      3537, 3537, 3538, 3538, 3539, 3539, 3540, 3540, 3541, 3541,
1322      3542, 3542, 3543, 3543, 3544, 3544, 3545, 3545, 3503, 3503,
1323      3545, 3545, 3545, 3545, 3546, 3546, 3547, 3547, 3503, 3503,
1324      3547, 3547, 3547, 3547, 3548, 3548, 3549, 3549, 3503, 3503,
1325
1326      3549, 3549, 3549, 3549, 3550, 3550, 3551, 3551, 3552, 3552,
1327      3553, 3553, 3503, 3503, 3553, 3553, 3553, 3553, 3554, 3554,
1328      3555, 3555, 3503, 3503, 3555, 3555, 3555, 3555, 3556, 3556,
1329      3557, 3557, 3503, 3503, 3557, 3557, 3557, 3557, 3558, 3558,
1330      3559, 3559, 3560, 3560, 3561, 3561, 3503, 3503, 3561, 3561,
1331      3561, 3561, 3562, 3562, 3563, 3563, 3564, 3564, 3565, 3565,
1332      3503, 3503, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1333      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1334      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1335      3502, 3502, 3502, 3566, 3502, 3502, 3566, 3502, 3502, 3502,
1336
1337       300,  300,  302,  300,  303,  303, 3502, 3502, 3502, 3567,
1338      3502, 3502, 3567, 3502, 3502,  304,  303, 3502, 3502, 3502,
1339      3568, 3502, 3502, 3568, 3568, 3568, 3502, 3502, 3502, 3502,
1340      3502, 3569, 3502, 3502, 3569, 3569, 3569, 3569, 3569, 3502,
1341      3502, 3502, 3502, 3502, 3502, 3570, 3502, 3502, 3570, 3570,
1342      3570, 3502, 3502, 3502, 3502, 3502, 3502, 3571, 3502, 3502,
1343      3571, 3571, 3502, 3502, 3502,  365,  303,  303,  304,  369,
1344       368,  368,  368,  368,  369,  375,  373,  373, 3502, 3502,
1345      3502, 3572, 3502, 3502, 3572, 3572, 3572, 3572, 3502, 3502,
1346       303,  303,  303, 3502, 3502, 3502, 3573, 3502, 3502, 3573,
1347
1348      3573, 3502, 3502, 3502, 3502, 3502, 3502, 3574, 3502, 3502,
1349      3574, 3574, 3502, 3502, 3502, 3502, 3502, 3502, 3575, 3502,
1350      3502, 3575, 3575, 3575, 3575, 3575, 3502, 3502,  392,  392,
1351       303, 3502, 3502, 3502, 3576, 3502, 3502, 3576, 3576, 3576,
1352      3576, 3502, 3502,  303,  303, 3502, 3502, 3502, 3577, 3502,
1353      3502, 3577, 3502, 3502, 3502, 3502, 3502, 3502, 3578, 3502,
1354      3502, 3578, 3578, 3578, 3502, 3502, 3502, 3502, 3502, 3502,
1355      3579, 3502, 3502, 3579, 3579, 3579, 3579, 3579, 3579, 3579,
1356      3579, 3579, 3502, 3502,  303,  303, 3502, 3502, 3502, 3580,
1357      3502, 3502, 3580, 3580, 3580, 3580, 3580, 3580, 3502, 3502,
1358
1359      3502, 3502, 3502, 3502, 3581, 3502, 3502, 3581, 3581, 3581,
1360      3581, 3581, 3581, 3581, 3502, 3502, 3502, 3502, 3502, 3502,
1361      3582, 3502, 3502, 3582, 3582, 3502, 3502, 3502, 3502, 3502,
1362      3502, 3583, 3502, 3502, 3583, 3583, 3583, 3502, 3502, 3502,
1363      3502, 3502, 3502, 3584, 3502, 3502, 3584, 3584, 3584, 3584,
1364      3502, 3502,  303,  303, 3502, 3502, 3502, 3585, 3502, 3502,
1365      3585, 3585, 3502, 3502,  303,  373,  373, 3502, 3502, 3502,
1366      3586, 3502, 3502, 3586, 3586, 3586, 3502, 3502,  373,  373,
1367      3502, 3502, 3502, 3587, 3502, 3502, 3587, 3587, 3502, 3502,
1368      3502, 3502, 3502, 3502, 3588, 3502, 3502, 3588, 3588, 3502,
1369
1370      3502,  373,  373, 3502, 3502, 3502, 3589, 3502, 3502, 3589,
1371      3589, 3589, 3502, 3502,  373,  373, 3502, 3502, 3502, 3590,
1372      3502, 3502, 3590, 3590, 3590, 3590, 3590, 3502, 3502,  303,
1373       392,  303, 3502, 3502, 3502, 3591, 3502, 3502, 3591, 3502,
1374      3502, 3502, 3502, 3502, 3502, 3592, 3502, 3502, 3592, 3502,
1375      3502,  303,  303, 3502, 3502, 3502, 3593, 3502, 3502, 3593,
1376      3593, 3502, 3502, 3502, 3502, 3502, 3502, 3594, 3502, 3502,
1377      3594, 3594, 3502, 3502, 3502, 3502, 3595, 3502, 3502, 3502,
1378      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1379      3502, 3502, 3596, 3596, 3597, 3502, 3502, 3502, 3502, 3502,
1380
1381      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1382      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3598,
1383      3598, 3599, 3502, 3600, 3600, 3600, 3600, 3502, 3601, 3502,
1384      3502, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602,
1385      3603, 3502, 3604, 3604, 3604, 3604, 3605, 3502, 3606, 3606,
1386      3606, 3607, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1387      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1388      3502, 3608, 3608, 3608, 3608, 3608, 3609, 3502, 3502, 3610,
1389      3610, 3610, 3611, 3502, 3612, 3612, 3612, 3613, 3502, 3614,
1390      3614, 3614, 3614, 3614, 3614, 3614, 3615, 3502, 3502, 3616,
1391
1392      3616, 3616, 3616, 3616, 3617, 3502, 3618, 3618, 3619, 3502,
1393      3620, 3620, 3620, 3620, 3621, 3502, 3622, 3622, 3622, 3622,
1394      3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
1395      3622, 3622, 3622, 3623, 3502, 3624, 3624, 3624, 3624, 3624,
1396      3624, 3624, 3624, 3625, 3502, 3626, 3626, 3626, 3626, 3626,
1397      3626, 3626, 3626, 3627, 3502, 3628, 3628, 3628, 3629, 3502,
1398      3630, 3630, 3630, 3630, 3631, 3502, 3632, 3632, 3632, 3632,
1399      3632, 3632, 3633, 3502, 3634, 3634, 3634, 3634, 3635, 3502,
1400      3502, 3636, 3636, 3636, 3636, 3636, 3637, 3502, 3638, 3638,
1401      3638, 3639, 3502, 3640, 3640, 3640, 3641, 3502, 3642, 3642,
1402
1403      3642, 3642, 3643, 3502, 3644, 3644, 3644, 3644, 3644, 3644,
1404      3645, 3502, 3502, 3646, 3646, 3647, 3502, 3648, 3648, 3649,
1405      3502, 3650, 3650, 3650, 3651, 3502, 3652, 3652, 3652, 3653,
1406      3654, 3502, 3654, 3502, 3502, 3502, 3655, 3502, 3502, 3502,
1407      3502, 3502, 3502, 3502, 3656, 3657, 3657, 3502, 3502, 3502,
1408      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1409      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1410      3502, 3502, 3502, 3502, 3502, 3502, 3658, 3659, 3659, 3660,
1411      3502, 3502, 3660, 3502, 3661, 3661, 3502, 3662, 3502, 3502,
1412      3662, 3662, 3662, 3662, 3662, 3662, 3663, 3663, 3664, 3664,
1413
1414      3664, 3665, 3665, 3502, 3502, 3666, 3667, 3667, 3502, 3502,
1415      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1416      3502, 3502, 3668, 3502, 3502, 3668, 3668, 3669, 3669, 3502,
1417      3670, 3670, 3671, 3671, 3672, 3672, 3673, 3673, 3674, 3674,
1418      3674, 3502, 3502, 3674, 3674, 3674, 3675, 3675, 3502, 3502,
1419      3676, 3676, 3502, 3502, 3676, 3677, 3677, 3678, 3679, 3679,
1420      3680, 3502, 3502, 3502, 3502, 3681, 3681, 3682, 3682, 3502,
1421      3502, 3682, 3502, 3502, 3682, 3682, 3682, 3682, 3682, 3682,
1422      3682, 3682, 3682, 3682, 3682, 3683, 3683, 3502, 3502, 3502,
1423      3502, 3684, 3684, 3684, 3684, 3684, 3685, 3685, 3686, 3686,
1424
1425      3686, 3502, 3502, 3686, 3686, 3686, 3687, 3687, 3688, 3502,
1426      3502, 3689, 3689, 3690, 3502, 3502, 3690, 3691, 3691, 3692,
1427      3502, 3502, 3692, 3692, 3692, 3693, 3693, 3694, 3694, 3694,
1428      3695, 3695, 3502, 3696, 3696, 3696, 3696, 3697, 3697, 3698,
1429      3502, 3502, 3699, 3699, 3700, 3700, 3701, 3701, 3702, 3702,
1430      3702, 3703, 3703, 3704, 3704, 3704, 3704, 3704, 3705, 3705,
1431      3502, 3706, 3707, 3707, 3502, 3502, 3708, 3708, 3502, 3502,
1432      3709, 3710, 3710, 3502, 3502, 3711, 3712, 3712, 3713, 3502,
1433      3502, 3713, 3502, 3502, 3714, 3502, 3502, 3502, 3502, 3502,
1434      3502, 3715, 3502, 3716, 3502, 3716, 3502, 3502, 3502, 3502,
1435
1436      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1437      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1438      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3717, 3502, 3718,
1439      3502, 3718, 3719, 3502, 3502, 3502, 3719, 3502, 3502, 3720,
1440      3502, 3720, 3721, 3502, 3502, 3502, 3502, 3502, 3721, 3502,
1441      3502, 3721, 3721, 3721, 3502, 3722, 3502, 3722, 3723, 3723,
1442      3723, 3502, 3724, 3502, 3724, 3502, 3502, 3502, 3725, 3502,
1443      3726, 3502, 3726, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1444      3502, 3502, 3502, 3502, 3502, 3502, 3727, 3502, 3502, 3502,
1445      3727, 3727, 3502, 3728, 3502, 3728, 3502, 3729, 3729, 3502,
1446
1447      3730, 3502, 3730, 3731, 3731, 3502, 3732, 3502, 3732, 3733,
1448      3733, 3733, 3502, 3502, 3502, 3733, 3733, 3733, 3502, 3734,
1449      3502, 3734, 3502, 3502, 3735, 3735, 3502, 3502, 3502, 3735,
1450      3502, 3736, 3502, 3736, 3737, 3502, 3738, 3502, 3738, 3739,
1451      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3740, 3502, 3740,
1452      3741, 3741, 3741, 3741, 3502, 3502, 3502, 3741, 3502, 3502,
1453      3502, 3502, 3502, 3741, 3741, 3741, 3741, 3741, 3741, 3741,
1454      3741, 3741, 3741, 3502, 3742, 3502, 3742, 3502, 3502, 3502,
1455      3502, 3502, 3502, 3502, 3502, 3743, 3743, 3743, 3743, 3502,
1456      3744, 3502, 3744, 3745, 3745, 3745, 3745, 3502, 3502, 3502,
1457
1458      3502, 3502, 3745, 3745, 3502, 3746, 3502, 3746, 3747, 3502,
1459      3502, 3502, 3502, 3748, 3502, 3748, 3749, 3502, 3502, 3502,
1460      3749, 3502, 3750, 3502, 3750, 3751, 3502, 3502, 3502, 3751,
1461      3751, 3751, 3502, 3752, 3502, 3752, 3502, 3502, 3502, 3502,
1462      3753, 3502, 3754, 3502, 3754, 3502, 3502, 3502, 3755, 3755,
1463      3502, 3502, 3755, 3502, 3756, 3502, 3756, 3757, 3502, 3502,
1464      3502, 3502, 3758, 3502, 3758, 3502, 3502, 3502, 3502, 3502,
1465      3759, 3502, 3759, 3502, 3502, 3760, 3760, 3502, 3502, 3502,
1466      3761, 3502, 3761, 3762, 3762, 3762, 3762, 3762, 3502, 3763,
1467      3502, 3763, 3502, 3764, 3502, 3765, 3502, 3765, 3502, 3502,
1468
1469      3502, 3502, 3766, 3502, 3766, 3502, 3502, 3502, 3767, 3502,
1470      3768, 3502, 3768, 3502, 3502, 3502, 3769, 3502, 3770, 3502,
1471      3770, 3771, 3772, 3502, 3502, 3502, 3502, 3502, 3773, 3774,
1472      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1473      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1474      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1475      3502, 3502, 3775, 3502, 3502, 3776, 3502, 3777, 3778, 3502,
1476      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3778, 3502, 3502,
1477      3778, 3779, 3780, 3502, 3502, 3780, 3781, 3782, 3502, 3502,
1478      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1479
1480      3502, 3502, 3502, 3783, 3783, 3502, 3502, 3784, 3502, 3502,
1481      3502, 3785, 3786, 3502, 3502, 3787, 3788, 3789, 3789, 3502,
1482      3502, 3789, 3789, 3789, 3790, 3502, 3502, 3791, 3791, 3791,
1483      3792, 3502, 3502, 3793, 3502, 3502, 3794, 3795, 3795, 3795,
1484      3795, 3502, 3502, 3502, 3502, 3502, 3795, 3795, 3795, 3795,
1485      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3796, 3502, 3502,
1486      3502, 3797, 3797, 3797, 3797, 3798, 3799, 3799, 3799, 3799,
1487      3502, 3502, 3502, 3799, 3799, 3800, 3801, 3802, 3803, 3803,
1488      3804, 3805, 3805, 3805, 3805, 3806, 3502, 3502, 3502, 3502,
1489      3502, 3502, 3807, 3808, 3502, 3502, 3502, 3502, 3809, 3809,
1490
1491      3502, 3502, 3502, 3809, 3810, 3811, 3812, 3502, 3502, 3502,
1492      3502, 3502, 3502, 3813, 3502, 3502, 3502, 3814, 3814, 3502,
1493      3502, 3502, 3815, 3816, 3502, 3502, 3816, 3816, 3816, 3817,
1494      3502, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826,
1495      3826, 3502, 3826, 3502, 3502, 3502, 3827, 3828, 3502, 3502,
1496      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1497      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1498      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1499      3502, 3502, 3829, 3502, 3502, 3502, 3830, 3502, 3831, 3832,
1500      3502, 3502, 3502, 3832, 3502, 3502, 3502, 3832, 3833, 3834,
1501
1502      3502, 3502, 3502, 3502, 3502, 3835, 3836, 3502, 3502, 3502,
1503      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1504      3837, 3502, 3502, 3502, 3502, 3502, 3838, 3502, 3502, 3502,
1505      3502, 3839, 3840, 3502, 3502, 3502, 3841, 3842, 3843, 3843,
1506      3502, 3502, 3502, 3502, 3502, 3843, 3502, 3502, 3843, 3844,
1507      3502, 3502, 3845, 3845, 3845, 3846, 3502, 3502, 3502, 3502,
1508      3502, 3502, 3502, 3502, 3847, 3848, 3502, 3502, 3848, 3848,
1509      3502, 3502, 3502, 3848, 3848, 3502, 3502, 3848, 3848, 3848,
1510      3848, 3848, 3848, 3848, 3848, 3849, 3502, 3502, 3850, 3850,
1511      3850, 3851, 3852, 3502, 3502, 3852, 3852, 3502, 3502, 3852,
1512
1513      3853, 3854, 3855, 3856, 3856, 3857, 3858, 3858, 3858, 3502,
1514      3502, 3858, 3859, 3860, 3861, 3502, 3862, 3862, 3862, 3863,
1515      3864, 3865, 3866, 3867, 3867, 3868, 3869, 3502, 3502, 3502,
1516      3869, 3869, 3869, 3870, 3502, 3502, 3502, 3871, 3872, 3502,
1517      3502, 3873, 3502, 3502, 3874, 3875, 3876, 3876, 3502, 3502,
1518      3877, 3878, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1519      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1520      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1521      3502, 3879, 3880, 3502, 3881, 3882, 3882, 3882, 3883, 3884,
1522      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1523
1524      3502, 3885, 3886, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1525      3502, 3502, 3887, 3502, 3502, 3502, 3888, 3502, 3889, 3890,
1526      3502, 3502, 3891, 3892, 3892, 3502, 3502, 3502, 3502, 3502,
1527      3502, 3502, 3502, 3892, 3502, 3502, 3502, 3502, 3502, 3502,
1528      3893, 3502, 3502, 3894, 3895, 3896, 3502, 3502, 3502, 3502,
1529      3502, 3896, 3896, 3896, 3502, 3502, 3502, 3502, 3502, 3896,
1530      3896, 3896, 3896, 3502, 3502, 3896, 3896, 3897, 3502, 3502,
1531      3502, 3502, 3502, 3898, 3502, 3502, 3899, 3900, 3502, 3502,
1532      3502, 3502, 3502, 3900, 3502, 3502, 3502, 3900, 3502, 3502,
1533      3901, 3902, 3903, 3903, 3904, 3905, 3905, 3905, 3502, 3502,
1534
1535      3502, 3905, 3502, 3502, 3906, 3907, 3502, 3502, 3502, 3502,
1536      3502, 3908, 3909, 3910, 3911, 3912, 3502, 3502, 3502, 3502,
1537      3913, 3914, 3914, 3914, 3914, 3915, 3502, 3502, 3502, 3502,
1538      3916, 3917, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1539      3918, 3919, 3920, 3920, 3502, 3502, 3502, 3921, 3502, 3502,
1540      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1541      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1542      3502, 3502, 3502, 3502, 3922, 3923, 3502, 3502, 3502, 3924,
1543      3502, 3502, 3924, 3925, 3502, 3502, 3502, 3502, 3502, 3502,
1544      3502, 3502, 3502, 3502, 3502, 3502, 3926, 3502, 3502, 3502,
1545
1546      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3927, 3928,
1547      3502, 3929, 3502, 3502, 3502, 3502, 3502, 3930, 3931, 3931,
1548      3502, 3502, 3502, 3502, 3502, 3931, 3502, 3502, 3502, 3502,
1549      3502, 3502, 3932, 3502, 3502, 3502, 3933, 3934, 3935, 3502,
1550      3502, 3502, 3935, 3935, 3935, 3502, 3502, 3502, 3502, 3502,
1551      3935, 3935, 3935, 3502, 3502, 3502, 3935, 3935, 3936, 3502,
1552      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3937, 3938, 3502,
1553      3502, 3502, 3938, 3938, 3939, 3940, 3941, 3502, 3502, 3942,
1554      3943, 3502, 3502, 3943, 3943, 3502, 3502, 3943, 3944, 3502,
1555      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3945, 3946,
1556
1557      3947, 3948, 3949, 3502, 3502, 3502, 3502, 3502, 3502, 3950,
1558      3951, 3951, 3951, 3951, 3952, 3502, 3953, 3954, 3955, 3956,
1559      3957, 3957, 3502, 3502, 3502, 3502, 3958, 3502, 3502, 3502,
1560      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1561      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3959,
1562      3960, 3502, 3961, 3502, 3502, 3502, 3961, 3502, 3502, 3502,
1563      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1564      3502, 3502, 3962, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1565      3502, 3502, 3502, 3502, 3502, 3502, 3963, 3964, 3502, 3965,
1566      3966, 3967, 3967, 3502, 3502, 3502, 3502, 3967, 3502, 3502,
1567
1568      3502, 3502, 3968, 3969, 3970, 3971, 3971, 3971, 3971, 3502,
1569      3502, 3502, 3971, 3971, 3971, 3971, 3502, 3502, 3972, 3502,
1570      3502, 3502, 3973, 3974, 3974, 3974, 3975, 3502, 3502, 3976,
1571      3502, 3502, 3502, 3977, 3978, 3502, 3502, 3502, 3978, 3978,
1572      3502, 3502, 3502, 3502, 3978, 3979, 3502, 3980, 3981, 3982,
1573      3983, 3984, 3985, 3502, 3502, 3986, 3986, 3986, 3987, 3502,
1574      3988, 3502, 3502, 3989, 3990, 3991, 3991, 3502, 3992, 3502,
1575      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1576      3502, 3502, 3502, 3993, 3502, 3502, 3994, 3502, 3502, 3502,
1577      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3995, 3502, 3502,
1578
1579      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1580      3502, 3502, 3502, 3996, 3997, 3502, 3502, 3502, 3998, 3999,
1581      3999, 3502, 3502, 3502, 3502, 3999, 3502, 4000, 3502, 3502,
1582      4001, 4002, 4002, 4002, 4002, 4002, 3502, 3502, 4002, 4002,
1583      4002, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 4003, 4003,
1584      4003, 4004, 3502, 3502, 4005, 3502, 3502, 4006, 4006, 4006,
1585      3502, 3502, 3502, 3502, 4006, 4007, 3502, 4008, 3502, 3502,
1586      3502, 3502, 3983, 3984, 3985, 3502, 3502, 3502, 3502, 3502,
1587      3986, 3986, 3502, 3502, 3502, 3988, 3989, 3990, 3991, 3991,
1588      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3993,
1589
1590      3502, 3502, 3502, 3994, 3502, 3502, 3502, 3502, 3502, 3502,
1591      3502, 3502, 3502, 3502, 3995, 3502, 3502, 3502, 3502, 3502,
1592      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1593      3502, 3996, 3997, 3502, 3502, 3502, 3502, 3502, 3502, 3999,
1594      3999, 3502, 3502, 3502, 3502, 4000, 4001, 4002, 4002, 4002,
1595      4002, 4002, 3502, 3502, 3502, 4002, 3502, 3502, 4002, 3502,
1596      3502, 3502, 3502, 4003, 4003, 3502, 3502, 4004, 3502, 3502,
1597      3502, 3502, 3502, 3502, 3502, 3502, 4006, 4006, 4006, 3502,
1598      3502, 3502, 3502, 4007, 4008, 3502, 3502, 3502, 3502, 3502,
1599      3984, 3985, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1600
1601      3502, 3989, 3990, 3991, 3991, 3502, 3502, 3502, 3502, 3502,
1602      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3994,
1603      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1604      3995, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1605      3502, 3502, 3502, 3502, 3502, 3502, 3996, 3997, 3502, 3999,
1606      3502, 3502, 3502, 3502, 3502, 4000, 3502, 3502, 4002, 4002,
1607      4002, 3502, 3502, 4002, 4002, 3502, 3502, 3502, 4002, 3502,
1608      3502, 3502, 3502, 3502, 3502, 4003, 3502, 3502, 3502, 3502,
1609      3502, 3502, 3502, 4006, 4006, 4006, 3502, 3502, 3502, 3502,
1610      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3984,
1611
1612      3985, 3502, 3502, 3502, 3502, 3502, 3502, 3989, 3990, 3991,
1613      3991, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1614      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3994, 3502, 3502,
1615      3502, 3502, 3502, 3502, 3502, 3502, 3995, 3502, 3502, 3502,
1616      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1617      3502, 3502, 3502, 3502, 3997, 3502, 3502, 3999, 3502, 3502,
1618      3502, 3502, 3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502,
1619      3502, 3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502, 3502,
1620      4003, 3502, 3502, 3502, 3502, 3502, 3502, 4006, 3502, 3502,
1621      4006, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1622
1623      3502, 3502, 3502, 3984, 3985, 3502, 3502, 3502, 3502, 3502,
1624      3502, 3990, 3991, 3991, 3991, 3502, 3502, 3502, 3502, 3502,
1625      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1626      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3995, 3502, 3502,
1627      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1628      3502, 3502, 3502, 3502, 3502, 3997, 3502, 3502, 3502, 3999,
1629      3502, 3502, 3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502,
1630      3502, 4002, 4002, 3502, 3502, 3502, 3502, 3502, 3502, 4003,
1631      4006, 3502, 3502, 3502, 4006, 3502, 3502, 3502, 3502, 3502,
1632      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1633
1634      3502, 3985, 3502, 3502, 3502, 3502, 3990, 3991, 3991, 3991,
1635      4009, 4010, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1636      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1637      3502, 3502, 3995, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1638      3502, 3502, 3502, 3502, 3999, 4002, 4002, 3502, 3502, 4002,
1639      3502, 3502, 3502, 3502, 3502, 3502, 4003, 3502, 3502, 3502,
1640      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1641      3502, 3502, 3502, 3985, 3502, 3502, 3502, 3502, 3990, 3991,
1642      4011, 4012, 4009, 4010, 3502, 3502, 3502, 3502, 3502, 3502,
1643      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1644
1645      3502, 3502, 3502, 3502, 3502, 3502, 3999, 4002, 4002, 3502,
1646      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 4003, 3502,
1647      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1648      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1649      3502, 3502, 3502, 3990, 4011, 3991, 4013, 4012, 4014, 3991,
1650      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1651      3502, 3502, 3502, 3502, 3502, 3502, 3999, 4002, 4002, 3502,
1652      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 4003, 3502,
1653      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3990,
1654      4013, 3502, 4014, 3991, 3502, 3502, 3502, 3502, 3502, 3502,
1655
1656      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1657      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1658      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1659      3990, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1660      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1661      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1662      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1663      3990, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1664      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1665      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3990, 3502,
1666
1667      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1668      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1669      3502, 3502, 3502, 3990, 3502, 3502, 3502, 3502, 3502, 3502,
1670      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1671      3502, 3502, 3502, 3502, 3502, 3502, 3990, 3502, 3502, 3502,
1672      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1673      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3990,
1674      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1675      3502, 3502, 3502, 3502, 3990, 3502, 3502, 3502, 3502, 3502,
1676      3502, 3502, 3502, 3502, 3502, 3990, 3502, 3502, 3502, 3502,
1677
1678      3502, 3502, 3502, 3502, 3502, 3502, 3990, 3990, 3502, 3502,
1679      3502, 3502, 3502, 3502, 3990, 3990, 3990, 3990, 3990, 3990,
1680      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1681      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1682      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1683      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1684      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1685      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1686      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1687      3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
1688
1689      3502,    0, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1690      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1691      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1692      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1693      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1694      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1695      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1696      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1697      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1698      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1699
1700      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1701      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1702      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1703      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1704      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1705      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1706      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1707      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1708      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1709      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1710
1711      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1712      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1713      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1714      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1715      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1716      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1717      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1718      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1719      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1720      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1721
1722      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1723      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1724      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1725      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1726      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1727      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1728      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1729      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1730      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1731      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1732
1733      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1734      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1735      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1736      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1737      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1738      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1739      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1740      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1741      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1742      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1743
1744      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
1745      3502, 3502, 3502, 3502
1746     } ;
1747
1748 static yyconst flex_int16_t yy_nxt[12714] =
1749     {   0,
1750      3502,  266,  267,  266,  266,  267,  266,  266,  267,  266,
1751       266,  267,  266,  271,  267,  271,  277,  268,  274,  277,
1752       268,  274, 3502,  269, 3502,  275,  269, 3502,  275,  272,
1753       271,  267,  271,  677,  278,  280,  281,  278,  280,  281,
1754       282,  283,  722,  282,  283,  677,  272,  287,  288,  678,
1755       284,  280,  281,  284,  285,  680,  282,  280,  281,  711,
1756       285,  679,  282,  287,  288, 3502,  284,  267,  267,  267,
1757       871,  679,  284,  267,  267,  267,  299,  267,  299,  299,
1758       267,  299,  872,  290,  299,  267,  299,  698, 1758,  290,
1759       752,  289,  300, 1395,  714,  300,  676,  676,  676, 1396,
1760
1761       301,  676,  676,  676,  676,  676,  676,  289,  291,  292,
1762       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1763       291,  291,  291,  709,  291,  295,  291,  296,  291,  299,
1764       267,  299,  267,  267,  267,  267,  267,  267,  710,  299,
1765       267,  299,  299,  267,  299,  301,  715,  826,  302,  680,
1766       827,  302,  950,  291,  291,  300,  680,  680,  300,  299,
1767       267,  299,  676,  676,  676,  679,  676,  676,  676,  676,
1768       676,  676,  679,  679, 3502,  303,  951,  297,  291,  292,
1769       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1770       291,  291,  291, 1761,  291,  295,  291,  296,  291,  299,
1771
1772       267,  299,  267,  267,  267,  267,  267,  267,  685,  299,
1773       267,  299,  299,  267,  299,  303,  691,  752,  304,  840,
1774      1010,  304,  841,  291,  291,  301,  761,  753,  301,  267,
1775       267,  267,  267,  267,  267,  299,  267,  299,  299,  267,
1776       299,  299,  267,  299, 1011,  305,  877,  297,  305,  680,
1777       686,  303,  819,  878,  303,  765,  687,  306,  299,  267,
1778       299,  688,  676,  676,  676,  679,  689,  676,  676,  676,
1779       676,  676,  676,  820,  306,  307,  308,  267,  308,  307,
1780       307,  307,  307,  307,  307,  307,  309,  307,  307,  307,
1781       739,  307,  311,  307,  312,  307,  315,  267,  315,  315,
1782
1783       267,  315,  267,  267,  267,  740,  267,  267,  267,  315,
1784       267,  315,  316,  794,  879,  316, 1762,  795,  304,  735,
1785       307,  307,  304,  736,  777,  316,  695,  737,  313,  307,
1786       308,  267,  308,  307,  307,  307,  307,  307,  307,  307,
1787       309,  307,  307,  307,  680,  307,  311,  307,  312,  307,
1788       315,  267,  315,  315,  267,  315,  315,  267,  315, 1763,
1789       679,  887,  280,  281,  885,  716,  316,  282, 3502,  317,
1790       715,  886,  317,  778,  307,  307,  761,  327,  717,  777,
1791       710,  897,  313,  318,  319,  267,  319,  318,  318,  318,
1792       318,  318,  318,  318,  320,  318,  318,  318, 1765,  318,
1793
1794       322,  318,  323,  318, 1766,  680,  328,  709,  341,  267,
1795       341,  341,  267,  341,  353,  267,  353,  715,  280,  281,
1796       718,  679,  710,  282,  342,  728,  880,  342,  318,  318,
1797       354,  714,  729,  327,  715,  938,  324,  715,  939,  325,
1798       797,  679,  676,  676,  676, 1768,  326,  318,  319,  267,
1799       319,  318,  318,  318,  318,  318,  318,  318,  320,  318,
1800       318,  318,  328,  318,  322,  318,  323,  318,  353,  267,
1801       353,  364,  267,  364,  364,  267,  364,  828,  364,  267,
1802       364,  364,  267,  364,  354,  680,  766,  365,  680,  798,
1803       365,  829,  318,  318,  366,  741, 1769,  366, 1770,  903,
1804
1805       324,  679,  767,  325,  679,  676,  676,  676,  797, 1209,
1806       326,  329,  330,  267,  330,  329,  329,  329,  329,  329,
1807       329,  329,  331,  329,  329,  329, 1210,  329,  333,  329,
1808       334,  329,  267,  267,  267,  267,  267,  267,  364,  267,
1809       364,  805,  364,  267,  364,  364,  267,  364,  367, 1771,
1810       680,  367,  680,  680,  365,  715,  329,  329,  365,  747,
1811       714,  368,  676,  676,  676,  335,  679,  336,  679,  679,
1812      3502,  337,  676,  676,  676,  805,  338,  339,  329,  330,
1813       267,  330,  329,  329,  329,  329,  329,  329,  329,  331,
1814       329,  329,  329,  761,  329,  333,  329,  334,  329,  364,
1815
1816       267,  364,  267,  267,  267,  267,  267,  267,  912,  364,
1817       267,  364,  364,  267,  364,  368,  764, 1772,  369,  778,
1818       704,  369,  761,  329,  329,  370,  757,  714,  370,  676,
1819       676,  676,  335,  760,  336,  676,  676,  676,  337,  676,
1820       676,  676, 1773,  338,  339,  343,  344,  267,  344,  343,
1821       343,  343,  343,  343,  343,  343,  345,  343,  343,  343,
1822       711,  343,  347,  343,  348,  343,  364,  267,  364,  364,
1823       267,  364,  267,  267,  267,  932,  267,  267,  267,  364,
1824       267,  364,  371,  959, 1656,  371,  932,  960,  372,  768,
1825       343,  343,  372,  755,  756,  368, 1657,  349,  676,  676,
1826
1827       676,  933,  714,  350,  769,  676,  676,  676,  676,  676,
1828       676,  984,  351,  343,  344,  267,  344,  343,  343,  343,
1829       343,  343,  343,  343,  345,  343,  343,  343, 1774,  343,
1830       347,  343,  348,  343,  364,  267,  364,  267,  267,  267,
1831       267,  267,  267,  964,  364,  267,  364,  364,  267,  364,
1832       368,  680,  680,  373,  680,  950,  373,  965,  343,  343,
1833       371,  783,  680,  371, 1775,  349, 1776,  679,  679,  788,
1834       679,  350,  676,  676,  676,  676,  676,  676,  679, 1019,
1835       351,  355,  356,  267,  356,  355,  355,  355,  355,  355,
1836       355,  355,  357,  355,  355,  355, 1778,  355,  359,  355,
1837
1838       360,  355,  364,  267,  364,  364,  267,  364,  267,  267,
1839       267, 1779,  267,  267,  267,  364,  267,  364,  374,  680,
1840       680,  374, 1787, 1788,  375,  834,  355,  355,  375,  680,
1841      1790,  376,  676,  676,  676,  679,  679,  361,  676,  676,
1842       676,  676,  676,  676,  834,  679,  362,  355,  356,  267,
1843       356,  355,  355,  355,  355,  355,  355,  355,  357,  355,
1844       355,  355, 1010,  355,  359,  355,  360,  355,  364,  267,
1845       364,  267,  267,  267,  267,  267,  267,  761,  364,  267,
1846       364,  364,  267,  364,  376,  680,  951,  377, 1040, 1010,
1847       377, 1041,  355,  355,  374,  680,  714,  374,  364,  267,
1848
1849       364,  679,  809,  361,  364,  267,  364,  676,  676,  676,
1850       873,  679,  362, 1019,  378,  676,  676,  676,  752, 1297,
1851       378,  379,  380,  267,  380,  379,  379,  379,  379,  379,
1852       379,  379,  381,  379,  379,  379, 1210,  379,  383,  379,
1853       384,  379,  390,  267,  390,  390,  267,  390,  267,  267,
1854       267, 1030,  267,  267,  267,  960,  770,  680,  391, 1049,
1855       969,  391,  761, 1050,  392, 3502,  379,  379,  392,  680,
1856       680,  385,  759,  679,  965,  711,  815,  386,  676,  676,
1857       676,  387,  676,  676,  676,  679,  679,  388,  379,  380,
1858       267,  380,  379,  379,  379,  379,  379,  379,  379,  381,
1859
1860       379,  379,  379,  698,  379,  383,  379,  384,  379,  390,
1861       267,  390,  390,  267,  390,  390,  267,  390,  823,  390,
1862       267,  390,  676,  676,  676,  391,  824,  830,  391, 1794,
1863      1798,  393,  825,  379,  379,  393,  680,  680,  385,  831,
1864       832,  676,  676,  676,  386,  676,  676,  676,  387,  676,
1865       676,  676,  679,  679,  388,  394,  395,  267,  395,  394,
1866       394,  394,  394,  394,  394,  394,  396,  394,  394,  394,
1867       950,  394,  398,  394,  399,  394,  403,  267,  403,  403,
1868       267,  403,  414,  267,  414,  873,  414,  267,  414,  428,
1869       267,  428,  404, 1800, 1020,  404,  680,  680,  415,  680,
1870
1871       394,  394,  415,  844,  854,  429,  676,  676,  676,  676,
1872       676,  676,  679,  679,  911,  679,  400,  676,  676,  676,
1873      1807,  401,  394,  395,  267,  395,  394,  394,  394,  394,
1874       394,  394,  394,  396,  394,  394,  394,  714,  394,  398,
1875       394,  399,  394,  428,  267,  428,  267,  267,  267,  267,
1876       267,  267,  920,  428,  267,  428,  428,  267,  428,  429,
1877      1180, 1808,  430,  680, 1522,  430,  714,  394,  394,  429,
1878       859,  680,  429,  676,  676,  676,  676,  676,  676,  679,
1879       676,  676,  676,  400,  676,  676,  676,  679,  401,  405,
1880       406,  267,  406,  405,  405,  405,  405,  405,  405,  405,
1881
1882       407,  405,  405,  405,  761,  405,  409,  405,  410,  405,
1883       428,  267,  428,  428,  267,  428,  443,  267,  443,  969,
1884       443,  267,  443,  267,  267,  267,  431, 1010, 1809,  431,
1885       680, 1810,  444, 1016,  405,  405,  444,  865,  680,  367,
1886       676,  676,  676,  676,  676,  676,  679,  676,  676,  676,
1887       411, 1020, 1815,  879,  679, 1209,  412,  405,  406,  267,
1888       406,  405,  405,  405,  405,  405,  405,  405,  407,  405,
1889       405,  405, 1323,  405,  409,  405,  410,  405,  267,  267,
1890       267,  443,  267,  443,  443,  267,  443, 1816,  443,  267,
1891       443,  443,  267,  443,  367, 1817, 1818,  444, 1819, 1180,
1892
1893       444,  880,  405,  405,  445,  714,  680,  445,  676,  676,
1894       676,  676,  676,  676,  676,  676,  676, 1820,  411, 1739,
1895      1821,  887,  679, 1828,  412,  416,  417,  267,  417,  416,
1896       416,  416,  416,  416,  416,  416,  418,  416,  416,  416,
1897      1832,  416,  420,  416,  421,  416,  454,  267,  454,  454,
1898       267,  454,  466,  267,  466,  920,  466,  267,  466,  676,
1899       676,  676,  455, 1837, 1839,  455,  680,  680,  467,  880,
1900       416,  416,  467,  422,  892,  423,  952,  715,  676,  676,
1901       676,  424,  679,  679,  676,  676,  676,  953,  425, 1840,
1902       954,  426,  416,  417,  267,  417,  416,  416,  416,  416,
1903
1904       416,  416,  416,  418,  416,  416,  416,  714,  416,  420,
1905       416,  421,  416,  484,  267,  484,  484,  267,  484,  267,
1906       267,  267, 1846,  267,  267,  267,  676,  676,  676,  485,
1907       680, 1851,  485, 1852, 1853,  367,  680,  416,  416,  367,
1908       422,  897,  423,  676,  676,  676,  679,  903,  424,  676,
1909       676,  676,  679, 1854, 1855,  425,  911, 1866,  426,  432,
1910       433,  267,  433,  432,  432,  432,  432,  432,  432,  432,
1911       434,  432,  432,  432, 1869,  432,  436,  432,  437,  432,
1912       484,  267,  484,  484,  267,  484,  484,  267,  484,  880,
1913       484,  267,  484,  912, 1870,  880,  485,  715,  680,  485,
1914
1915      1547, 1874,  486,  715,  432,  432,  486,  438,  761,  439,
1916       676,  676,  676, 1548,  679,  440,  676,  676,  676,  676,
1917       676,  676,  676,  676,  676, 1875,  441,  432,  433,  267,
1918       433,  432,  432,  432,  432,  432,  432,  432,  434,  432,
1919       432,  432, 1878,  432,  436,  432,  437,  432,  500,  267,
1920       500,  500,  267,  500,  516,  267,  516, 1879,  516,  267,
1921       516, 1880,  680,  680,  501, 1881, 1882,  501, 1883,  916,
1922       517,  680,  432,  432,  517,  438, 1884,  439,  679,  679,
1923       676,  676,  676,  440,  676,  676,  676,  679,  676,  676,
1924       676,  676,  676,  676,  441,  446,  447,  267,  447,  446,
1925
1926       446,  446,  446,  446,  446,  446,  448,  446,  446,  446,
1927      1885,  446,  450,  446,  451,  446,  527,  267,  527,  527,
1928       267,  527,  539,  267,  539,  969,  539,  267,  539,  552,
1929       267,  552,  528,  680, 1180,  528,  680,  680,  540, 1021,
1930       446,  446,  540,  925,  930,  553,  676,  676,  676,  679,
1931      1182, 1893,  679,  679, 1896, 1897,  452,  446,  447,  267,
1932       447,  446,  446,  446,  446,  446,  446,  446,  448,  446,
1933       446,  446, 1900,  446,  450,  446,  451,  446,  552,  267,
1934       552,  267,  267,  267,  267,  267,  267,  969,  552,  267,
1935       552,  552,  267,  552,  553, 1902, 1904,  367,  961, 1905,
1936
1937       367, 1022,  446,  446,  553,  962, 1907,  553,  676,  676,
1938       676,  963,  936,  936,  936, 1197, 1197, 1197,  452,  456,
1939       457,  267,  457,  456,  456,  456,  456,  456,  456,  456,
1940       458,  456,  456,  456, 1908,  456,  460,  456,  461,  456,
1941       552,  267,  552,  552,  267,  552,  564,  267,  564,  952,
1942       564,  267,  564,  267,  267,  267,  554, 1909, 1914,  554,
1943       953,  974,  565,  968,  456,  456,  565,  971,  962,  566,
1944       462,  937,  971, 1917,  975,  463, 1918, 1919,  972, 1198,
1945      1921,  954, 1924,  972, 1925, 1927,  968,  464,  456,  457,
1946       267,  457,  456,  456,  456,  456,  456,  456,  456,  458,
1947
1948       456,  456,  456, 1931,  456,  460,  456,  461,  456,  267,
1949       267,  267,  564,  267,  564,  564,  267,  564, 1932,  564,
1950       267,  564,  564,  267,  564,  566, 1933, 1935,  565,  974,
1951       961,  565, 1559,  456,  456,  567,  962,  962,  567,  462,
1952       961,  974,  963,  975,  463, 1548, 1742,  962,  962, 1197,
1953      1197, 1197, 1949, 1015, 1015, 1950,  464,  468,  469,  267,
1954       469,  468,  468,  468,  468,  468,  468,  468,  470,  468,
1955       468,  468,  471,  468,  472,  468,  473,  468,  471,  471,
1956       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1957       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1958
1959       471,  471,  468,  468,  471,  474,  475,  476,  471,  471,
1960       471,  471,  471,  477,  471,  471,  478,  471,  471,  471,
1961       479,  471,  480,  481,  482,  471,  471,  471,  471,  471,
1962       471,  487,  488,  267,  488,  487,  487,  487,  487,  487,
1963       487,  487,  489,  487,  487,  487, 1951,  487,  491,  487,
1964       492,  487,  578,  267,  578,  578,  267,  578,  267,  267,
1965       267,  952,  267,  267,  267,  578,  267,  578,  579, 1953,
1966      1180,  579,  972, 1954,  566,  968,  487,  487,  566, 1955,
1967       493,  579,  936,  936,  936, 1956, 1184,  494, 1957, 1958,
1968       495, 1221, 1221, 1221,  496, 1946,  497,  498,  487,  488,
1969
1970       267,  488,  487,  487,  487,  487,  487,  487,  487,  489,
1971       487,  487,  487, 1959,  487,  491,  487,  492,  487,  578,
1972       267,  578,  578,  267,  578,  578,  267,  578, 1960,  590,
1973       267,  590,  590,  267,  590,  579, 1961, 1962,  580, 1963,
1974      1965,  580, 1352,  487,  487,  591, 1966,  493,  591, 1234,
1975      1234, 1234, 1353, 1235,  494, 1198, 1236,  495, 1967, 1354,
1976      1968,  496, 1971,  497,  498,  502,  503,  267,  503,  502,
1977       502,  502,  502,  502,  502,  502,  504,  502,  502,  502,
1978      1974,  502,  506,  502,  507,  502,  601,  267,  601,  601,
1979       267,  601,  267,  267,  267, 1975,  267,  267,  267,  981,
1980
1981       981,  981,  602, 1976, 1559,  602, 1977, 1978,  566, 1979,
1982       502,  502,  566,  508,  509,  510,  982, 1597, 1244, 1244,
1983      1244,  511, 1245, 1983,  512, 1246, 1984, 1986,  513, 1987,
1984      1988,  514,  502,  503,  267,  503,  502,  502,  502,  502,
1985       502,  502,  502,  504,  502,  502,  502, 1990,  502,  506,
1986       502,  507,  502,  601,  267,  601,  601,  267,  601,  601,
1987       267,  601, 2003,  601,  267,  601,  989,  989,  989,  602,
1988      2004, 2005,  602, 2006, 2007,  603, 2010,  502,  502,  603,
1989       508,  509,  510,  990, 2011, 1266, 1266, 1266,  511, 1267,
1990      2012,  512, 1268, 2013, 2018,  513, 2019, 2024,  514,  518,
1991
1992       519,  267,  519,  518,  518,  518,  518,  518,  518,  518,
1993       520,  518,  518,  518, 2025,  518,  522,  518,  523,  518,
1994       614,  267,  614,  614,  267,  614,  267,  267,  267, 2034,
1995       267,  267,  267, 1004, 1004, 1004,  615, 2038, 2046,  615,
1996      2052, 2053,  566, 2054,  518,  518,  566, 2060, 2061,  524,
1997      1005, 1538, 1538, 1538, 2062,  525,  518,  519,  267,  519,
1998       518,  518,  518,  518,  518,  518,  518,  520,  518,  518,
1999       518, 2063,  518,  522,  518,  523,  518,  614,  267,  614,
2000       614,  267,  614,  614,  267,  614, 2066,  614,  267,  614,
2001      1024, 1024, 1024,  615, 2067, 2078,  615, 2084, 2088,  616,
2002
2003      2091,  518,  518,  616, 2093, 2094,  524, 1025, 1221, 1221,
2004      1221, 2096,  525,  529,  530,  267,  530,  529,  529,  529,
2005       529,  529,  529,  529,  531,  529,  529,  529, 2097,  529,
2006       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
2007       267,  267,  267, 2098,  267,  267,  267,  629,  267,  629,
2008       630, 2102, 2105,  630, 2107, 2114,  631, 2122,  529,  529,
2009       631, 2123,  535,  630, 1197, 1197, 1197, 2124, 2125,  536,
2010      2127, 1180,  537,  529,  530,  267,  530,  529,  529,  529,
2011       529,  529,  529,  529,  531,  529,  529,  529, 2142,  529,
2012       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
2013
2014       629,  267,  629, 2145,  641,  267,  641,  641,  267,  641,
2015       630, 2149, 2150,  632, 2151, 1742,  632, 2154,  529,  529,
2016       642, 1742,  535,  642, 1221, 1221, 1221, 2155, 1274,  536,
2017      2157, 2158,  537,  541,  542,  267,  542,  541,  541,  541,
2018       541,  541,  541,  541,  543,  541,  541,  541, 2144,  541,
2019       545,  541,  546,  541,  651,  267,  651,  651,  267,  651,
2020       267,  267,  267, 2143,  267,  267,  267,  651,  267,  651,
2021       652, 2152, 2159,  652, 2160, 2161,  367, 2162,  541,  541,
2022       367, 2163,  547,  652, 1594, 1594, 1594, 2153, 1274,  548,
2023      2166, 2167,  549, 1538, 1538, 1538, 1756, 1756, 1756,  550,
2024
2025       541,  542,  267,  542,  541,  541,  541,  541,  541,  541,
2026       541,  543,  541,  541,  541, 2170,  541,  545,  541,  546,
2027       541,  651,  267,  651,  651,  267,  651,  651,  267,  651,
2028      2171,  663,  267,  663,  663,  267,  663,  652, 2172, 2173,
2029       653, 2174, 1757,  653,  752,  541,  541,  664, 2176,  547,
2030       664, 1288, 1288, 1288,  762, 1289,  548, 2177, 1290,  549,
2031      1759, 1759, 1759, 1764, 1764, 1764,  550,  555,  556,  267,
2032       556,  555,  555,  555,  555,  555,  555,  555,  557,  555,
2033       555,  555,  763,  555,  559,  555,  560,  555,  674,  267,
2034       674,  674,  267,  674, 2180, 2183,  714, 1042, 1042, 1042,
2035
2036       708, 1193, 1193, 1193,  675, 2187, 1760,  675, 2188, 2191,
2037      3502, 2192,  555,  555, 1043, 1053, 1053, 1053,  561, 1195,
2038       711, 2193, 1313, 1313, 1313, 2196, 1314, 2200,  711, 1315,
2039      2201, 2204, 1054,  562,  555,  556,  267,  556,  555,  555,
2040       555,  555,  555,  555,  555,  557,  555,  555,  555,  712,
2041       555,  559,  555,  560,  555,  713,  766, 1062, 1062, 1062,
2042      2206, 2211,  714, 1767, 1767, 1767,  715, 1064, 1064, 1064,
2043      2189, 2212,  767, 2219, 1063, 1070, 1070, 1070, 2190,  555,
2044       555, 1073, 1073, 1073, 1065,  561, 1327, 1327, 1327, 2194,
2045      1328, 2220, 1071, 1329, 1777, 1777, 1777, 2195, 1074, 2224,
2046
2047       562,  568,  569,  267,  569,  568,  568,  568,  568,  568,
2048       568,  568,  570,  568,  568,  568, 2225,  568,  572,  568,
2049       573,  568, 1088, 1088, 1088, 1090, 1090, 1090, 1102, 1102,
2050      1102, 1110, 1110, 1110, 1115, 1115, 1115, 2202, 2202, 1089,
2051      2226, 2227, 1091, 2152, 2239, 1103,  568,  568, 1111, 2243,
2052      2244, 1116,  574, 2203, 2153,  575, 1341, 1341, 1341, 2203,
2053      1342, 2245, 2251, 1343, 1594, 1594, 1594,  576,  568,  569,
2054       267,  569,  568,  568,  568,  568,  568,  568,  568,  570,
2055       568,  568,  568, 2252,  568,  572,  568,  573,  568, 1121,
2056      1121, 1121, 1141, 1141, 1141, 1165, 1165, 1165, 1169, 1169,
2057
2058      1169, 1174, 1174, 1174, 2253, 2257, 1122, 2258, 2269, 1142,
2059      2273, 2274, 1166,  568,  568, 1170, 2275, 2277, 1175,  574,
2060      2281, 2285,  575, 1344, 1344, 1344, 2286, 1345, 2287, 2288,
2061      1346, 1814, 1814, 1814,  576,  581,  582,  267,  582,  581,
2062       581,  581,  581,  581,  581,  581,  583,  581,  581,  581,
2063      2289,  581,  585,  581,  586,  581, 1193, 1193, 1193, 1229,
2064      1229, 1229, 2292, 2299, 1229, 1229, 1229,  981,  981,  981,
2065      1239, 1239, 1239, 1991, 1195, 2301, 2311, 1231, 2312, 1992,
2066       581,  581, 1231, 1993,  982, 2313,  587, 1994, 1241, 2314,
2067      2316,  588,  581,  582,  267,  582,  581,  581,  581,  581,
2068
2069       581,  581,  581,  583,  581,  581,  581, 1180,  581,  585,
2070       581,  586,  581, 2320, 1196, 1239, 1239, 1239,  989,  989,
2071       989, 1255, 1255, 1255, 1232, 1247, 1247, 1247, 1250, 1250,
2072      1250, 2323, 2329, 1241, 2330,  990, 2331,  581,  581, 1257,
2073      2332, 1742, 1248,  587, 2335, 1251, 2337, 2338,  588,  592,
2074       593,  267,  593,  592,  592,  592,  592,  592,  592,  592,
2075       594,  592,  592,  592, 2339,  592,  596,  592,  597,  592,
2076      1262, 1262, 1262, 1262, 1262, 1262, 1004, 1004, 1004, 1242,
2077      1270, 1270, 1270, 1742, 1255, 1255, 1255, 2322, 1264, 2340,
2078      2344, 1264, 2349, 1005,  592,  592, 2351, 2352, 1272, 2353,
2079
2080       598, 2357, 1257, 1355, 1355, 1355, 2363, 1356, 2364, 2365,
2081      1357, 1811, 1811, 1811, 2321,  599,  592,  593,  267,  593,
2082       592,  592,  592,  592,  592,  592,  592,  594,  592,  592,
2083       592, 1258,  592,  596,  592,  597,  592, 1265, 1270, 1270,
2084      1270, 1024, 1024, 1024, 2366, 1293, 1293, 1293, 1293, 1293,
2085      1293, 1300, 1300, 1300, 1995, 2367, 1272, 1812, 1025, 2368,
2086      1996,  592,  592, 1295, 1997, 2369, 1295,  598, 1998, 1302,
2087      1359, 1359, 1359, 2370, 1360, 1273, 2371, 1361, 1813, 1813,
2088      1813, 2372,  599,  604,  605,  267,  605,  604,  604,  604,
2089       604,  604,  604,  604,  606,  604,  604,  604, 2378,  604,
2090
2091       608,  604,  609,  604, 1300, 1300, 1300, 1306, 1306, 1306,
2092      1042, 1042, 1042, 2379, 1296, 1306, 1306, 1306, 1319, 1319,
2093      1319, 2380, 1302, 2381, 1760, 1308, 2387, 1043,  604,  604,
2094      1319, 1319, 1319, 1308,  610, 2389, 1321,  611, 1378, 1378,
2095      1378, 2390, 1379, 2392, 2393, 1380, 2398, 2399, 1321,  612,
2096       604,  605,  267,  605,  604,  604,  604,  604,  604,  604,
2097       604,  606,  604,  604,  604, 1303,  604,  608,  604,  609,
2098       604, 1053, 1053, 1053, 1331, 1331, 1331, 1062, 1062, 1062,
2099      1309, 1331, 1331, 1331, 1336, 1336, 1336, 2403, 1054, 2394,
2100      2396, 1322, 1333, 2406, 1063,  604,  604, 2395, 2397, 1333,
2101
2102      2407,  610, 1338, 2408,  611, 1381, 1381, 1381, 2409, 1382,
2103      2413, 2414, 1383, 1759, 1759, 1759,  612,  617,  618,  267,
2104       618,  617,  617,  617,  617,  617,  617,  617,  619,  617,
2105       617,  617, 2415,  617,  621,  617,  622,  617, 1064, 1064,
2106      1064, 2416, 2424, 1336, 1336, 1336, 2425, 1334, 1347, 1347,
2107      1347, 1347, 1347, 1347, 2426, 1065, 1070, 1070, 1070, 1916,
2108      2427, 1338,  617,  617, 2430, 2435, 1349, 2439, 2440, 1349,
2109       623, 2445,  624, 1071, 2446,  625, 1756, 1756, 1756,  626,
2110      1759, 1759, 1759,  627,  617,  618,  267,  618,  617,  617,
2111       617,  617,  617,  617,  617,  619,  617,  617,  617, 2447,
2112
2113       617,  621,  617,  622,  617, 1339, 1073, 1073, 1073, 1362,
2114      1362, 1362, 1350, 1374, 1374, 1374, 1374, 1374, 1374, 1088,
2115      1088, 1088, 2448, 1074, 2441, 2443, 1363, 2450, 2460,  617,
2116       617, 1376, 2442, 2444, 1376, 2472, 1089,  623, 2473,  624,
2117      2474, 1742,  625, 1964, 1964, 1964,  626, 1764, 1764, 1764,
2118       627,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2119       633,  633,  635,  633,  633,  633, 2476,  633,  637,  633,
2120       638,  633, 1742, 2479, 1377, 1090, 1090, 1090, 1384, 1384,
2121      1384, 1767, 1767, 1767, 2466, 3502, 3502, 3502, 3502, 3502,
2122      3502, 2480, 1091, 2481, 2484, 1385,  633,  633, 3502, 3502,
2123
2124      3502, 2488, 3502, 2489, 2490, 3502, 1398, 1398, 1398, 2491,
2125      1399, 2492, 2493, 1400, 2494, 3502, 1969, 1969, 1969, 2467,
2126       639,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2127       633,  633,  635,  633,  633,  633, 1386,  633,  637,  633,
2128       638,  633, 2495, 1388, 1390, 1390, 1390, 1102, 1102, 1102,
2129      1387, 1777, 1777, 1777, 3502, 3502, 3502, 1401, 1401, 1401,
2130      2496, 2497, 1392, 2510, 1103, 2511,  633,  633, 1390, 1390,
2131      1390, 3502, 2512, 2513, 1402, 1410, 1410, 1410, 2514, 1411,
2132      1970, 2516, 1412, 1972, 1972, 1972, 1392, 1811, 1811, 1811,
2133       639,  643,  644,  267,  644,  643,  643,  643,  643,  643,
2134
2135       643,  643,  645,  643,  643,  643, 1389,  643,  647,  643,
2136       648,  643, 1405, 1405, 1405, 1393, 1110, 1110, 1110, 2520,
2137      1405, 1405, 1405, 1413, 1413, 1413, 1413, 1413, 1413, 1973,
2138      1407, 2521, 2522, 1111, 2523, 2524,  643,  643, 1407, 2525,
2139      2526, 1415, 2528, 2532, 1415, 2533, 2534,  649,  643,  644,
2140       267,  644,  643,  643,  643,  643,  643,  643,  643,  645,
2141       643,  643,  643, 2539,  643,  647,  643,  648,  643, 2540,
2142      2535, 1408, 1115, 1115, 1115, 1418, 1418, 1418, 2541, 1419,
2143      2536, 2549, 1420, 1422, 1422, 1422, 2550, 1416, 2551, 1116,
2144      1813, 1813, 1813,  643,  643, 1427, 1427, 1427, 2552, 1428,
2145
2146      2561, 1424, 1429, 2562,  649,  654,  655,  267,  655,  654,
2147       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2148      2563,  654,  658,  654,  659,  654, 1422, 1422, 1422, 1121,
2149      1121, 1121, 2564, 2566, 1433, 1433, 1433, 1437, 1437, 1437,
2150      2568, 1433, 1433, 1433, 1424, 2593, 1122, 1439, 1439, 1439,
2151       654,  654, 1435, 2594, 1438, 3502, 3502, 3502, 1742, 1435,
2152      2596,  660, 2597, 2598, 1440, 2599, 1742, 1980, 1980, 1980,
2153      2600, 2604, 3502, 1425,  661,  654,  655,  267,  655,  654,
2154       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2155      2589,  654,  658,  654,  659,  654, 1436, 1442, 1442, 1442,
2156
2157      1447, 1447, 1447, 2590, 2605, 1442, 1442, 1442, 2606, 2607,
2158      3502, 3502, 3502, 1981, 1441, 1444, 2608, 1448, 2609, 2610,
2159       654,  654, 2611, 1444, 1451, 1451, 1451, 3502, 1459, 1459,
2160      1459,  660, 1460, 2612, 2613, 1461, 1499, 1499, 1499, 2614,
2161      1500, 1452, 2616, 1501,  661,  665,  666,  267,  666,  665,
2162       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2163      1449,  665,  669,  665,  670,  665, 1445, 1454, 1454, 1454,
2164      2617, 3502, 3502, 3502, 2620, 1450, 1454, 1454, 1454, 1141,
2165      1141, 1141, 1462, 1462, 1462, 1456, 2618, 2621, 3502, 2622,
2166       665,  665, 2623, 2626, 1456, 2619, 1142, 1814, 1814, 1814,
2167
2168      1464,  671, 1506, 1506, 1506, 2627, 1507, 2628, 2629, 1508,
2169      2037, 2037, 2037, 1457,  672,  665,  666,  267,  666,  665,
2170       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2171      1453,  665,  669,  665,  670,  665, 1462, 1462, 1462, 1466,
2172      1466, 1466, 1468, 1468, 1468, 1470, 1470, 1470, 1470, 1470,
2173      1470, 1474, 1474, 1474, 1464, 2624, 1467, 2631, 2632, 1469,
2174       665,  665, 2634, 1472, 2625, 2640, 1472, 2641, 1475, 2642,
2175      2643,  671, 2646, 3502, 3502, 3502, 1478, 1478, 1478, 1480,
2176      1480, 1480, 2648, 2649,  672,  680, 1480, 1480, 1480, 2650,
2177      3502, 1465,  695, 1479, 1489, 1489, 1489, 1482, 1489, 1489,
2178
2179      1489,  679,  696, 2651, 1482, 2652, 1495, 1495, 1495, 1495,
2180      1495, 1495, 1491, 1514, 1514, 1514, 1491, 1515, 2656, 1473,
2181      1516, 2659, 2664, 1476, 1497, 2665, 2660, 1497, 2668,  697,
2182       698,  699, 2156, 2156, 2156,  700,  701,  702, 1477, 2661,
2183       703,  704, 2677, 2678,  705, 2679,  706,  707,  708,  680,
2184      1165, 1165, 1165, 1502, 1502, 1502,  752, 1483, 1502, 1502,
2185      1502, 2662, 1492, 2680, 2681,  679,  753, 1166, 1169, 1169,
2186      1169, 1504, 2684, 1498, 2663, 2685, 1504, 2706, 1510, 1510,
2187      1510, 1174, 1174, 1174, 2707, 1170, 1742, 2709, 1510, 1510,
2188      1510, 2710, 1180,  697,  754,  709, 1512, 2711, 1175,  755,
2189
2190       756,  702, 1742, 2720,  757,  704, 1512, 2721,  758, 2722,
2191       759,  760,  708, 1518, 1518, 1518, 1518, 1518, 1518, 1505,
2192      1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 2705,
2193      2714, 1520, 2703, 2723, 1520, 1229, 1229, 1229, 1195, 2704,
2194      2715, 1195, 2724, 2716, 1195, 1561, 1561, 1561, 1229, 1229,
2195      1229, 2725, 1513, 1231, 1229, 1229, 1229, 1564, 1564, 1564,
2196      2726, 2727, 1562, 1234, 1234, 1234, 1231, 1235, 2728, 2729,
2197      1236, 2730, 1231, 1530, 1565, 2732, 2733, 1521, 3502, 3502,
2198      3502, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
2199      1244, 1244, 1244, 2734, 1245, 3502, 2735, 1246, 2736, 1241,
2200
2201      2737, 2738, 1241, 1563, 2717, 1241, 1247, 1247, 1247, 1570,
2202      1570, 1570, 2739, 1571, 2718, 2740, 1572, 2719, 1573, 1573,
2203      1573, 2741, 2742, 1248, 1250, 1250, 1250, 2743, 2744, 1575,
2204      1575, 1575, 2745, 1576, 1568, 1574, 1577, 2746, 2747, 1566,
2205      2750, 1251, 1579, 1579, 1579, 1255, 1255, 1255, 1255, 1255,
2206      1255, 1255, 1255, 1255, 1584, 1584, 1584, 2756, 2759, 1580,
2207      1262, 1262, 1262, 1257, 2760, 2761, 1257, 2764, 2765, 1257,
2208      2769, 1585, 1262, 1262, 1262, 1262, 1262, 1262, 1264, 1266,
2209      1266, 1266, 2772, 1267, 2775, 2776, 1268, 1270, 1270, 1270,
2210      1264, 2784, 2770, 1264, 1270, 1270, 1270, 1589, 1589, 1589,
2211
2212      1288, 1288, 1288, 2771, 1289, 1272, 2785, 1290, 1606, 1606,
2213      1606, 1582, 1272, 2773, 2786, 1590, 1293, 1293, 1293, 1293,
2214      1293, 1293, 1587, 2812, 2774, 1607, 1293, 1293, 1293, 1610,
2215      1610, 1610, 2814, 2815, 1295, 1180, 2816, 1295, 3502, 3502,
2216      3502, 1300, 1300, 1300, 1295, 2820, 1611, 1300, 1300, 1300,
2217      1300, 1300, 1300, 2821, 2822, 3502, 1614, 1614, 1614, 1302,
2218      3502, 3502, 3502, 2824, 2809, 1302, 2825, 2823, 1302, 1620,
2219      1620, 1620, 1742, 1615, 1306, 1306, 1306, 3502, 1306, 1306,
2220      1306, 1306, 1306, 1306, 2828, 1612, 1621, 1608, 1616, 1319,
2221      1319, 1319, 1308, 1313, 1313, 1313, 1308, 1314, 1742, 1308,
2222
2223      1315, 1319, 1319, 1319, 1319, 1319, 1319, 1321, 1327, 1327,
2224      1327, 2829, 1328, 2830, 2810, 1329, 2831, 1613, 2832, 1321,
2225      2833, 2834, 1321, 1331, 1331, 1331, 1331, 1331, 1331, 2794,
2226      1331, 1331, 1331, 1632, 1632, 1632, 1336, 1336, 1336, 2795,
2227      2811, 1333, 2835, 2836, 1333, 2796, 2838, 1617, 1333, 2826,
2228      1633, 1635, 1635, 1635, 1338, 1336, 1336, 1336, 1336, 1336,
2229      1336, 2839, 2827, 1341, 1341, 1341, 2840, 1342, 1636, 1625,
2230      1343, 2841, 2842, 1338, 2843, 2844, 1338, 1344, 1344, 1344,
2231      2845, 1345, 2846, 2847, 1346, 1347, 1347, 1347, 1347, 1347,
2232      1347, 1631, 1347, 1347, 1347, 1355, 1355, 1355, 2848, 1356,
2233
2234      2849, 2850, 1357, 1349, 2852, 2864, 1349, 1642, 1642, 1642,
2235      1349, 1359, 1359, 1359, 2865, 1360, 2873, 2874, 1361, 1362,
2236      1362, 1362, 2875, 2876, 1643, 1634, 1644, 1644, 1644, 2877,
2237      1645, 2878, 2879, 1646, 2880, 2881, 1363, 1374, 1374, 1374,
2238      1374, 1374, 1374, 1374, 1374, 1374, 1378, 1378, 1378, 2797,
2239      1379, 2888, 2891, 1380, 2898, 1376, 2899, 1637, 1376, 2798,
2240      2900, 1376, 1381, 1381, 1381, 2799, 1382, 2901, 2902, 1383,
2241      1384, 1384, 1384, 1659, 1659, 1659, 2903, 1660, 2916, 2918,
2242      1661, 1390, 1390, 1390, 1390, 1390, 1390, 1385, 1390, 1390,
2243      1390, 1398, 1398, 1398, 2919, 1399, 2920, 2921, 1400, 1392,
2244
2245      2906, 2922, 1392, 1401, 1401, 1401, 1392, 1671, 1671, 1671,
2246      1658, 1672, 1180, 2907, 1673, 1405, 1405, 1405, 2923, 2908,
2247      1402, 1405, 1405, 1405, 1405, 1405, 1405, 1410, 1410, 1410,
2248      1742, 1411, 2909, 1407, 1412, 2924, 1666, 2925, 2926, 1407,
2249      2927, 2930, 1407, 1413, 1413, 1413, 1413, 1413, 1413, 1413,
2250      1413, 1413, 1418, 1418, 1418, 2931, 1419, 2932, 2933, 1420,
2251      2912, 1415, 2934, 2935, 1415, 2913, 2936, 1415, 1422, 1422,
2252      1422, 1422, 1422, 1422, 2937, 1676, 1422, 1422, 1422, 2939,
2253      1427, 1427, 1427, 2940, 1428, 2941, 1424, 1429, 2942, 1424,
2254      1433, 1433, 1433, 2943, 1424, 1433, 1433, 1433, 2944, 1433,
2255
2256      1433, 1433, 1437, 1437, 1437, 1687, 1687, 1687, 1435, 1688,
2257      2945, 2946, 1689, 1435, 2947, 2948, 1678, 1435, 2949, 1438,
2258      1439, 1439, 1439, 2950, 2951, 1681, 1690, 1690, 1690, 2960,
2259      1691, 2964, 2965, 1692, 1442, 1442, 1442, 1440, 1442, 1442,
2260      1442, 2972, 1442, 1442, 1442, 1447, 1447, 1447, 2973, 1451,
2261      1451, 1451, 1444, 1964, 1964, 1964, 1444, 2974, 2975, 1686,
2262      1444, 2976, 1448, 1696, 1696, 1696, 1452, 1697, 2977, 2978,
2263      1698, 1701, 1701, 1701, 2979, 1702, 2980, 2981, 1703, 1454,
2264      1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1459, 1459,
2265      1459, 2985, 1460, 2994, 2995, 1461, 2996, 1456, 2986, 2997,
2266
2267      1456, 2998, 2999, 1456, 1462, 1462, 1462, 3003, 2987, 1694,
2268      1462, 1462, 1462, 1462, 1462, 1462, 1466, 1466, 1466, 1708,
2269      1708, 1708, 1464, 1709, 3004, 3005, 1710, 3006, 1464, 3016,
2270      2988, 1464, 2990, 1467, 1468, 1468, 1468, 1711, 1711, 1711,
2271      2989, 1712, 2991, 3017, 1713, 1470, 1470, 1470, 3018, 1705,
2272      3019, 1469, 1470, 1470, 1470, 3020, 1470, 1470, 1470, 1474,
2273      1474, 1474, 2992, 1472, 1715, 1715, 1715, 3021, 1716, 3022,
2274      1472, 1717, 2993, 1707, 1472, 3023, 1475, 1478, 1478, 1478,
2275      1720, 1720, 1720, 1180, 1721, 3027, 3028, 1722, 1480, 1480,
2276      1480, 1480, 1480, 1480, 1479, 1480, 1480, 1480, 1725, 1725,
2277
2278      1725, 1489, 1489, 1489, 3029, 3030, 1482, 3031, 3032, 1482,
2279      1489, 1489, 1489, 1482, 3034, 1726, 3035, 3007, 1714, 1491,
2280      1489, 1489, 1489, 1495, 1495, 1495, 3036, 3037, 1491, 1495,
2281      1495, 1495, 1495, 1495, 1495, 1499, 1499, 1499, 1491, 1500,
2282      3038, 1497, 1501, 1502, 1502, 1502, 3039, 1497, 3040, 3041,
2283      1497, 1502, 1502, 1502, 1502, 1502, 1502, 1723, 1506, 1506,
2284      1506, 1504, 1507, 3045, 3046, 1508, 1510, 1510, 1510, 1504,
2285      3047, 3050, 1504, 1510, 1510, 1510, 1510, 1510, 1510, 3051,
2286      3052, 1730, 3053, 3054, 1512, 1733, 1514, 1514, 1514, 3055,
2287      1515, 1512, 3056, 1516, 1512, 1518, 1518, 1518, 1518, 1518,
2288
2289      1518, 1518, 1518, 1518, 1741, 1741, 1741, 1193, 1193, 1193,
2290      1561, 1561, 1561, 1520, 1734, 3057, 1520, 3062, 3063, 1520,
2291      3064, 3065, 1742, 1743, 3066, 1195, 3067, 1562, 1780, 1780,
2292      1780, 3068, 1781, 3069, 3070, 1782, 3071, 1736, 1229, 1229,
2293      1229, 1564, 1564, 1564, 3072, 1784, 1784, 1784, 3073, 1785,
2294      3075, 1738, 1786, 1239, 1239, 1239, 1231, 3076, 1565, 1570,
2295      1570, 1570, 3077, 1571, 3078, 1180, 1572, 1573, 1573, 1573,
2296      3085, 1241, 3086, 1748, 1791, 1791, 1791, 3087, 1792, 3088,
2297      3089, 1793, 3090, 3091, 1574, 1575, 1575, 1575, 3092, 1576,
2298      3093, 3094, 1577, 1579, 1579, 1579, 1783, 1795, 1795, 1795,
2299
2300      3095, 1796, 1789, 3096, 1797, 1255, 1255, 1255, 3079, 3097,
2301      1580, 1584, 1584, 1584, 1801, 1801, 1801, 3098, 1802, 3101,
2302      3102, 1803, 3103, 1257, 1804, 1804, 1804, 3104, 1585, 1262,
2303      1262, 1262, 1589, 1589, 1589, 1822, 1822, 1822, 2164, 2164,
2304      2164, 1805, 1606, 1606, 1606, 3105, 3106, 1264, 3107, 3108,
2305      1590, 3109, 1823, 3115, 3116, 1799, 1824, 1824, 1824, 1607,
2306      1825, 3117, 3118, 1826, 1293, 1293, 1293, 1610, 1610, 1610,
2307      1829, 1829, 1829, 3119, 1830, 3126, 3127, 1831, 1806, 1300,
2308      1300, 1300, 1295, 3128, 1611, 1614, 1614, 1614, 1834, 1834,
2309      1834, 3129, 1835, 3130, 3131, 1836, 3132, 1302, 1306, 1306,
2310
2311      1306, 3133, 1615, 1620, 1620, 1620, 1841, 1841, 1841, 3134,
2312      1842, 3135, 3136, 1843, 3137, 3140, 1308, 1844, 1844, 1844,
2313      1621, 1847, 1847, 1847, 1319, 1319, 1319, 3141, 1827, 1331,
2314      1331, 1331, 3142, 3143, 1845, 1632, 1632, 1632, 1848, 1833,
2315      3151, 1180, 1321, 3152, 1857, 1857, 1857, 1333, 1858, 3146,
2316      3146, 1859, 1633, 1860, 1860, 1860, 1635, 1635, 1635, 1838,
2317      3149, 1862, 1862, 1862, 3147, 1863, 3153, 1849, 1864, 3154,
2318      3155, 1861, 3156, 1636, 1347, 1347, 1347, 1867, 1867, 1867,
2319      1642, 1642, 1642, 3157, 1871, 1871, 1871, 3144, 1872, 3158,
2320      1850, 1873, 1349, 1856, 1868, 3161, 3159, 1643, 1644, 1644,
2321
2322      1644, 3162, 1645, 3165, 3166, 1646, 1876, 1876, 1876, 1374,
2323      1374, 1374, 1659, 1659, 1659, 3163, 1660, 3167, 3168, 1661,
2324      1887, 1887, 1887, 1877, 3502, 3502, 3502, 1376, 3502, 3502,
2325      3502, 3502, 3502, 3502, 1390, 1390, 1390, 1888, 3160, 3169,
2326      1865, 3502, 1894, 1894, 1894, 3502, 3170, 3177, 3502, 1671,
2327      1671, 1671, 1392, 1672, 3164, 3178, 1673, 3179, 3171, 1895,
2328      1898, 1898, 1898, 1405, 1405, 1405, 1413, 1413, 1413, 1422,
2329      1422, 1422, 3184, 3172, 1886, 1890, 3180, 1899, 1910, 1910,
2330      1910, 1407, 3185, 3186, 1415, 3173, 3187, 1424, 3181, 1892,
2331      1433, 1433, 1433, 3188, 1889, 1911, 1687, 1687, 1687, 3182,
2332
2333      1688, 1891, 3189, 1689, 1180, 1690, 1690, 1690, 1435, 1691,
2334      3192, 3183, 1692, 1442, 1442, 1442, 1696, 1696, 1696, 3192,
2335      1697, 3195, 3146, 1698, 1912, 3196, 1906, 1901, 1454, 1454,
2336      1454, 1444, 1903, 1701, 1701, 1701, 3147, 1702, 1742, 1743,
2337      1703, 1462, 1462, 1462, 3197, 3190, 1456, 1913, 1708, 1708,
2338      1708, 3146, 1709, 3198, 3201, 1710, 1711, 1711, 1711, 1464,
2339      1712, 3199, 3149, 1713, 1470, 1470, 1470, 1715, 1715, 1715,
2340      3215, 1716, 3202, 3203, 1717, 3200, 1720, 1720, 1720, 1915,
2341      1721, 3205, 1472, 1722, 1480, 1480, 1480, 3204, 3218, 1920,
2342      1725, 1725, 1725, 1928, 1928, 1928, 3206, 1929, 1922, 3219,
2343
2344      1930, 3220, 1482, 1489, 1489, 1489, 3225, 1726, 1936, 1936,
2345      1936, 1923, 1495, 1495, 1495, 1502, 1502, 1502, 1940, 1940,
2346      1940, 1491, 1510, 1510, 1510, 1937, 1943, 1943, 1943, 3228,
2347      1497, 1926, 3213, 1504, 3216, 1941, 1518, 1518, 1518, 3229,
2348      1512, 3230, 3223, 1944, 1741, 1741, 1741, 1193, 1193, 1193,
2349      3192, 3214, 1934, 3217, 1520, 3226, 1780, 1780, 1780, 3232,
2350      1781, 3224, 1742, 1782, 3192, 1195, 3233, 1939, 1229, 1229,
2351      1229, 1784, 1784, 1784, 3227, 1785, 3234, 3235, 1786, 1938,
2352      1239, 1239, 1239, 3236, 1942, 3237, 1231, 1945, 3238, 1791,
2353      1791, 1791, 3239, 1792, 3240, 1947, 1793, 3241, 1241, 1952,
2354
2355      1795, 1795, 1795, 3242, 1796, 3252, 3253, 1797, 1255, 1255,
2356      1255, 3254, 1948, 1801, 1801, 1801, 3255, 1802, 3256, 3257,
2357      1803, 1804, 1804, 1804, 3258, 3259, 1257, 1262, 1262, 1262,
2358      3263, 1985, 1999, 1999, 1999, 1982, 2000, 3264, 1805, 2001,
2359      2008, 2008, 2008, 3265, 3266, 1264, 2008, 2008, 2008, 1969,
2360      1969, 1969, 3267, 1822, 1822, 1822, 2014, 2014, 2014, 3268,
2361      2015, 3269, 3270, 2016, 1824, 1824, 1824, 3272, 1825, 1989,
2362      1823, 1826, 1293, 1293, 1293, 1829, 1829, 1829, 2002, 1830,
2363      3273, 3274, 1831, 1300, 1300, 1300, 3275, 1834, 1834, 1834,
2364      1295, 1835, 3276, 3277, 1836, 2021, 2021, 2021, 1306, 1306,
2365
2366      1306, 1302, 3278, 3279, 2009, 3280, 3281, 1841, 1841, 1841,
2367      1970, 1842, 2022, 2009, 1843, 3285, 1308, 3283, 3282, 2017,
2368      1844, 1844, 1844, 2026, 2026, 2026, 3286, 2027, 3287, 3284,
2369      2028, 2029, 2029, 2029, 1847, 1847, 1847, 1845, 2031, 2031,
2370      2031, 3288, 2032, 3289, 3290, 2033, 3291, 3292, 2030, 2020,
2371      3293, 1848, 2035, 2035, 2035, 2039, 2039, 2039, 3502, 3502,
2372      3502, 3294, 2023, 2042, 2042, 2042, 1331, 1331, 1331, 3295,
2373      2036, 3296, 2040, 3297, 3298, 3502, 1860, 1860, 1860, 3300,
2374      2043, 1857, 1857, 1857, 1333, 1858, 1180, 3301, 1859, 1862,
2375      1862, 1862, 3302, 1863, 1861, 3303, 1864, 1347, 1347, 1347,
2376
2377      1867, 1867, 1867, 2047, 2047, 2047, 3304, 2048, 3305, 3306,
2378      2049, 3299, 3307, 2044, 3308, 1349, 3309, 1868, 2050, 2050,
2379      2050, 1871, 1871, 1871, 2041, 1872, 3310, 3311, 1873, 1876,
2380      1876, 1876, 2055, 2055, 2055, 2051, 2056, 3312, 3313, 2057,
2381      2058, 2058, 2058, 2045, 3314, 3315, 1877, 2064, 2064, 2064,
2382      1374, 1374, 1374, 1887, 1887, 1887, 3316, 2059, 2069, 2069,
2383      2069, 3317, 2070, 3318, 2065, 2071, 3319, 3320, 1376, 3321,
2384      1888, 2072, 2072, 2072, 3502, 3502, 3502, 2075, 2075, 2075,
2385      1390, 1390, 1390, 1894, 1894, 1894, 3322, 3323, 2073, 3325,
2386      1180, 3502, 3326, 3327, 2076, 2079, 2079, 2079, 1392, 2080,
2387
2388      1895, 3328, 2081, 2082, 2082, 2082, 1898, 1898, 1898, 3324,
2389      2085, 2085, 2085, 3329, 2086, 3330, 2068, 2087, 3331, 3332,
2390      2083, 3333, 3334, 1899, 2089, 2089, 2089, 1413, 1413, 1413,
2391      3335, 3336, 2074, 1422, 1422, 1422, 1910, 1910, 1910, 3337,
2392      2077, 3338, 2090, 3339, 3340, 1415, 3341, 3342, 2099, 2099,
2393      2099, 1424, 2100, 1911, 3343, 2101, 2103, 2103, 2103, 1442,
2394      1442, 1442, 2108, 2108, 2108, 2110, 2110, 2110, 3502, 3502,
2395      3502, 1454, 1454, 1454, 2104, 3344, 3345, 1444, 2092, 2109,
2396      3346, 2095, 2111, 1180, 3348, 3502, 1470, 1470, 1470, 1456,
2397      1462, 1462, 1462, 3349, 2117, 2117, 2117, 2119, 2119, 2119,
2398
2399      1480, 1480, 1480, 3347, 1472, 1928, 1928, 1928, 1464, 1929,
2400      2106, 2118, 1930, 3350, 2120, 1489, 1489, 1489, 1482, 3351,
2401      1936, 1936, 1936, 2128, 2128, 2128, 3352, 2129, 3353, 3354,
2402      2130, 3355, 2112, 1491, 3356, 3357, 2115, 1937, 2113, 1495,
2403      1495, 1495, 1502, 1502, 1502, 1940, 1940, 1940, 2133, 2133,
2404      2133, 2116, 2134, 3358, 3359, 2135, 3360, 1497, 3361, 3362,
2405      1504, 3363, 1941, 3364, 3365, 2121, 2126, 2136, 2136, 2136,
2406      1943, 1943, 1943, 2138, 2138, 2138, 3366, 2139, 3367, 3368,
2407      2140, 1518, 1518, 1518, 3369, 2137, 3371, 1944, 2146, 2146,
2408      2146, 1193, 1193, 1193, 1969, 1969, 1969, 2132, 2131, 1520,
2409
2410      2165, 2165, 2165, 3372, 3373, 2147, 1972, 1972, 1972, 1195,
2411      2168, 2168, 2168, 2169, 2169, 2169, 1980, 1980, 1980, 1229,
2412      1229, 1229, 2178, 2178, 2178, 2181, 2181, 2181, 1255, 1255,
2413      1255, 2185, 2185, 2185, 1999, 1999, 1999, 1231, 2000, 2141,
2414      2179, 2001, 2182, 1262, 1262, 1262, 1257, 3374, 2186, 2198,
2415      2198, 2198, 2148, 2008, 2008, 2008, 2205, 2205, 2205, 1180,
2416      3375, 1264, 2207, 2207, 2207, 3370, 2199, 3376, 3377, 2175,
2417      2014, 2014, 2014, 3378, 2015, 3379, 3380, 2016, 3381, 2208,
2418      1293, 1293, 1293, 2213, 2213, 2213, 3382, 2184, 3383, 2197,
2419      2021, 2021, 2021, 2215, 2215, 2215, 3384, 2216, 1295, 3386,
2420
2421      2217, 2214, 1306, 1306, 1306, 3387, 3388, 2022, 2209, 2026,
2422      2026, 2026, 1180, 2027, 3389, 3390, 2028, 2029, 2029, 2029,
2423      1308, 2221, 2221, 2221, 3391, 2222, 3385, 3392, 2223, 2035,
2424      2035, 2035, 3393, 2210, 2030, 2031, 2031, 2031, 3394, 2032,
2425      3395, 3397, 2033, 2037, 2037, 2037, 3398, 2036, 3399, 2218,
2426      2039, 2039, 2039, 2228, 2228, 2228, 3400, 2229, 3401, 3402,
2427      2230, 2231, 2231, 2231, 2042, 2042, 2042, 2040, 2234, 2234,
2428      2234, 3403, 2235, 3404, 3405, 2236, 3406, 3409, 2232, 3410,
2429      3411, 2043, 1331, 1331, 1331, 1347, 1347, 1347, 2047, 2047,
2430      2047, 3412, 2048, 3413, 3414, 2049, 2050, 2050, 2050, 1180,
2431
2432      1333, 1180, 1180, 1349, 2240, 2240, 2240, 2233, 2241, 1180,
2433      1755, 2242, 3425, 2051, 2055, 2055, 2055, 1180, 2056, 1180,
2434      1180, 2057, 2058, 2058, 2058, 2246, 2246, 2246, 1180, 2247,
2435      3423, 1754, 2248, 1180, 1180, 2237, 2249, 2249, 2249, 2059,
2436      2064, 2064, 2064, 2238, 2254, 2254, 2254, 3417, 2255, 3418,
2437      3419, 2256, 3449, 2250, 1374, 1374, 1374, 2065, 2069, 2069,
2438      2069, 3421, 2070, 3422, 3415, 2071, 2072, 2072, 2072, 2260,
2439      2260, 2260, 1376, 2261, 3433, 1180, 2262, 2263, 2263, 2263,
2440      2075, 2075, 2075, 2073, 2265, 2265, 2265, 3426, 2266, 3424,
2441      1180, 2267, 1180, 1180, 2264, 1180, 1753, 2076, 1390, 1390,
2442
2443      1390, 1752, 2079, 2079, 2079, 2259, 2080, 3441, 3499, 2081,
2444      2082, 2082, 2082, 2270, 2270, 2270, 1392, 2271, 1751, 1180,
2445      2272, 2085, 2085, 2085, 3442, 2086, 3416, 2083, 2087, 2089,
2446      2089, 2089, 1413, 1413, 1413, 2278, 2278, 2278, 1422, 1422,
2447      1422, 2282, 2282, 2282, 2099, 2099, 2099, 2090, 2100, 2268,
2448      1415, 2101, 2279, 2103, 2103, 2103, 1424, 1180, 2283, 2290,
2449      2290, 2290, 2108, 2108, 2108, 2293, 2293, 2293, 1180, 2294,
2450      3427, 2104, 2295, 2110, 2110, 2110, 3428, 2291, 1180, 2109,
2451      1180, 2296, 2296, 2296, 1180, 2297, 1180, 2284, 2298, 1180,
2452      2111, 1454, 1454, 1454, 3431, 1180, 2276, 1180, 1750, 2280,
2453
2454      1462, 1462, 1462, 1470, 1470, 1470, 2117, 2117, 2117, 1456,
2455      2304, 2304, 2304, 1180, 2305, 1180, 3420, 2306, 1464, 1180,
2456      1749, 1472, 3461, 2118, 2119, 2119, 2119, 2307, 2307, 2307,
2457      3434, 2308, 3435, 3429, 2309, 1480, 1480, 1480, 1489, 1489,
2458      1489, 2120, 3430, 2128, 2128, 2128, 1180, 2129, 3436, 2302,
2459      2130, 1180, 3432, 1482, 3445, 3443, 1491, 2300, 1495, 1495,
2460      1495, 1502, 1502, 1502, 1180, 2133, 2133, 2133, 2303, 2134,
2461      1180, 1180, 2135, 2136, 2136, 2136, 1497, 3444, 1747, 1504,
2462      2138, 2138, 2138, 1746, 2139, 3447, 1180, 2140, 1518, 1518,
2463      1518, 2137, 3437, 2146, 2146, 2146, 3457, 2324, 2324, 2324,
2464
2465      2310, 2325, 1745, 2315, 2326, 1180, 1520, 3439, 3440, 2317,
2466      2147, 1193, 1193, 1193, 2318, 2328, 2328, 2328, 2333, 2333,
2467      2333, 2334, 2334, 2334, 2156, 2156, 2156, 1744, 1180, 1195,
2468      2336, 2336, 2336, 1737, 2319, 2341, 2341, 2341, 2164, 2164,
2469      2164, 2165, 2165, 2165, 2342, 2342, 2342, 2168, 2168, 2168,
2470      2169, 2169, 2169, 2345, 2345, 2345, 2346, 2346, 2346, 2347,
2471      2347, 2347, 2348, 2348, 2348, 1229, 1229, 1229, 2178, 2178,
2472      2178, 2181, 2181, 2181, 3438, 2327, 1180, 2354, 2354, 2354,
2473      1180, 2355, 1735, 1231, 2356, 1180, 2179, 1180, 2182, 1732,
2474      2343, 2358, 2358, 2358, 2185, 2185, 2185, 2360, 2360, 2360,
2475
2476      1180, 2361, 1731, 1180, 2362, 1262, 1262, 1262, 1729, 2359,
2477      3448, 2186, 2198, 2198, 2198, 3446, 2350, 2374, 2374, 2374,
2478      1180, 2375, 3453, 1264, 2376, 2377, 2377, 2377, 3450, 2199,
2479      2205, 2205, 2205, 2382, 2382, 2382, 2207, 2207, 2207, 2384,
2480      2384, 2384, 3462, 2385, 3481, 1180, 2386, 1293, 1293, 1293,
2481      2213, 2213, 2213, 2208, 2373, 2215, 2215, 2215, 3458, 2216,
2482      1180, 1728, 2217, 3469, 1180, 1295, 3451, 1180, 2214, 1306,
2483      1306, 1306, 1180, 2221, 2221, 2221, 1180, 2222, 3455, 2383,
2484      2223, 2228, 2228, 2228, 1727, 2229, 1180, 1308, 2230, 2231,
2485      2231, 2231, 2400, 2400, 2400, 3454, 2401, 3456, 2388, 2402,
2486
2487      2234, 2234, 2234, 1180, 2235, 3467, 2232, 2236, 1331, 1331,
2488      1331, 1347, 1347, 1347, 2240, 2240, 2240, 1724, 2241, 1180,
2489      3471, 2242, 2391, 2246, 2246, 2246, 1333, 2247, 1719, 1349,
2490      2248, 2249, 2249, 2249, 2410, 2410, 2410, 1180, 2411, 3475,
2491      3459, 2412, 2254, 2254, 2254, 1718, 2255, 1180, 2250, 2256,
2492      2417, 2417, 2417, 1374, 1374, 1374, 2260, 2260, 2260, 2404,
2493      2261, 1706, 1180, 2262, 1180, 3452, 2405, 2418, 2263, 2263,
2494      2263, 1376, 2420, 2420, 2420, 1180, 2421, 3470, 1180, 2422,
2495      2265, 2265, 2265, 3463, 2266, 2264, 1180, 2267, 1390, 1390,
2496      1390, 2270, 2270, 2270, 1180, 2271, 1180, 1180, 2272, 3460,
2497
2498      2428, 2428, 2428, 2278, 2278, 2278, 1392, 2431, 2431, 2431,
2499      3464, 2432, 3465, 1180, 2433, 3466, 1180, 2419, 2429, 1704,
2500      2279, 1422, 1422, 1422, 2282, 2282, 2282, 2436, 2436, 2436,
2501      3472, 2437, 1180, 1180, 2438, 2290, 2290, 2290, 3482, 1424,
2502      3473, 2283, 2293, 2293, 2293, 3468, 2294, 3499, 1180, 2295,
2503      1454, 1454, 1454, 2291, 2423, 2296, 2296, 2296, 1180, 2297,
2504      3477, 1180, 2298, 1180, 1462, 1462, 1462, 3476, 1456, 1470,
2505      1470, 1470, 2304, 2304, 2304, 1180, 2305, 1700, 3474, 2306,
2506      3478, 2434, 1464, 3483, 2307, 2307, 2307, 1472, 2308, 1699,
2507      3491, 2309, 1480, 1480, 1480, 3479, 2454, 2454, 2454, 1180,
2508
2509      3480, 2449, 3502, 3502, 3502, 2452, 3502, 3502, 3502, 1180,
2510      1482, 1180, 2453, 2455, 3502, 3502, 3502, 1695, 1180, 3502,
2511      1489, 1489, 1489, 3502, 1495, 1495, 1495, 2462, 2462, 2462,
2512      2451, 3502, 1518, 1518, 1518, 2468, 2468, 2468, 1491, 2465,
2513      2465, 2465, 1497, 3489, 3484, 2463, 1180, 2324, 2324, 2324,
2514      1520, 2325, 1693, 2456, 2326, 3487, 1180, 1180, 1193, 1193,
2515      1193, 2328, 2328, 2328, 2470, 2470, 2470, 2471, 2471, 2471,
2516      2457, 1685, 1684, 2458, 3492, 1683, 1195, 2333, 2333, 2333,
2517      2334, 2334, 2334, 1180, 2461, 2459, 2336, 2336, 2336, 2475,
2518      2475, 2475, 3485, 3488, 2464, 2477, 2477, 2477, 2478, 2478,
2519
2520      2478, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
2521      2346, 2346, 2346, 2347, 2347, 2347, 1682, 2469, 2348, 2348,
2522      2348, 2482, 2482, 2482, 2485, 2485, 2485, 2354, 2354, 2354,
2523      1680, 2355, 1180, 1679, 2356, 3502, 3502, 3502, 1180, 2483,
2524      1677, 2486, 2358, 2358, 2358, 1675, 2360, 2360, 2360, 1674,
2525      2361, 1180, 3502, 2362, 1262, 1262, 1262, 2374, 2374, 2374,
2526      2359, 2375, 2499, 2500, 2376, 2501, 2504, 2505, 1180, 2506,
2527      3490, 1670, 1264, 2502, 2377, 2377, 2377, 2507, 3486, 1669,
2528      2503, 2509, 2509, 2509, 2508, 2382, 2382, 2382, 2384, 2384,
2529      2384, 1668, 2385, 1180, 1180, 2386, 1293, 1293, 1293, 3495,
2530
2531      3493, 2487, 2517, 2517, 2517, 1306, 1306, 1306, 2527, 2527,
2532      2527, 2529, 2529, 2529, 1295, 2498, 1347, 1347, 1347, 2518,
2533      2400, 2400, 2400, 1308, 2401, 3494, 3497, 2402, 1667, 2530,
2534      1665, 2410, 2410, 2410, 1349, 2411, 1664, 1663, 2412, 2567,
2535      2567, 2567, 2515, 2537, 2537, 2537, 2417, 2417, 2417, 1180,
2536      2542, 2542, 2542, 1662, 2543, 1655, 2519, 2544, 1654, 1653,
2537      2538, 1652, 1180, 2418, 2545, 2545, 2545, 2420, 2420, 2420,
2538      1651, 2421, 1650, 1649, 2422, 1648, 2531, 2547, 2547, 2547,
2539      1647, 3498, 2546, 2428, 2428, 2428, 2553, 2553, 2553, 2431,
2540      2431, 2431, 1641, 2432, 1640, 2548, 2433, 1422, 1422, 1422,
2541
2542      1639, 2429, 1638, 2554, 2556, 2556, 2556, 2436, 2436, 2436,
2543      3496, 2437, 1630, 1629, 2438, 1424, 3502, 3502, 3502, 1628,
2544      1627, 2557, 3502, 3502, 3502, 3502, 3502, 3502, 2569, 2569,
2545      2569, 1626, 1624, 3502, 2571, 2571, 2571, 1623, 1622, 3502,
2546      1619, 1618, 3502, 1462, 1462, 1462, 2570, 1609, 2555, 1605,
2547      2558, 2572, 1470, 1470, 1470, 1480, 1480, 1480, 2454, 2454,
2548      2454, 1464, 2576, 2576, 2576, 1604, 2577, 1603, 1602, 2578,
2549      1472, 2559, 1601, 1482, 1600, 2455, 2565, 2579, 2579, 2579,
2550      3502, 3502, 3502, 2560, 3502, 3502, 3502, 2583, 2583, 2583,
2551      1599, 1598, 2575, 1596, 2580, 1595, 1593, 3502, 2585, 2585,
2552
2553      2585, 3502, 1592, 2573, 1591, 2584, 1495, 1495, 1495, 2462,
2554      2462, 2462, 1588, 2574, 1518, 1518, 1518, 1586, 2465, 2465,
2555      2465, 2468, 2468, 2468, 1497, 1583, 1581, 2463, 2591, 2591,
2556      2591, 2581, 1520, 1578, 1569, 2582, 1180, 2470, 2470, 2470,
2557      2471, 2471, 2471, 2595, 2595, 2595, 2592, 2475, 2475, 2475,
2558      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
2559      2485, 2485, 2601, 2601, 2601, 1567, 2602, 1560, 1558, 2603,
2560      1557, 1556, 2586, 1555, 2483, 1554, 2486, 1553, 2587, 1552,
2561      2588, 1262, 1262, 1262, 2509, 2509, 2509, 2630, 2630, 2630,
2562      1293, 1293, 1293, 2517, 2517, 2517, 2635, 2635, 2635, 1264,
2563
2564      2636, 1551, 1550, 2637, 2638, 2638, 2638, 1549, 1295, 1546,
2565      2518, 2644, 2644, 2644, 2527, 2527, 2527, 2529, 2529, 2529,
2566      1545, 1544, 2639, 1543, 1347, 1347, 1347, 1542, 2645, 2537,
2567      2537, 2537, 2653, 2653, 2653, 2530, 2654, 1541, 1540, 2655,
2568      1539, 2615, 1349, 2657, 2657, 2657, 2538, 2542, 2542, 2542,
2569      1537, 2543, 1536, 1535, 2544, 1534, 2633, 2545, 2545, 2545,
2570      2658, 2547, 2547, 2547, 1533, 2666, 2666, 2666, 2553, 2553,
2571      2553, 2672, 2672, 2672, 1532, 2546, 2669, 2669, 2669, 2548,
2572      2670, 2647, 2667, 2671, 1531, 2554, 2556, 2556, 2556, 2673,
2573      2674, 2674, 2674, 1529, 2675, 1528, 1527, 2676, 2682, 2682,
2574
2575      2682, 1526, 1525, 2557, 2567, 2567, 2567, 2569, 2569, 2569,
2576      2571, 2571, 2571, 1524, 1523, 2683, 2686, 2686, 2686, 1180,
2577      2687, 1517, 1509, 2688, 1494, 2570, 1493, 2572, 2689, 2689,
2578      2689, 1470, 1470, 1470, 1488, 1480, 1480, 1480, 2576, 2576,
2579      2576, 1487, 2577, 1486, 1485, 2578, 2690, 1484, 1458, 1472,
2580      2579, 2579, 2579, 1482, 2693, 2693, 2693, 1446, 2694, 1432,
2581      1431, 2695, 2696, 2696, 2696, 1430, 1426, 2580, 2698, 2698,
2582      2698, 2583, 2583, 2583, 2585, 2585, 2585, 1421, 1417, 2697,
2583      1409, 1404, 2700, 2700, 2700, 2699, 1518, 1518, 1518, 2584,
2584      2591, 2591, 2591, 2595, 2595, 2595, 1403, 1397, 2691, 2692,
2585
2586      2701, 2708, 2708, 2708, 1520, 2712, 2712, 2712, 2592, 2601,
2587      2601, 2601, 1394, 2602, 1373, 1372, 2603, 1262, 1262, 1262,
2588      1371, 1370, 2713, 2630, 2630, 2630, 1293, 1293, 1293, 2749,
2589      2749, 2749, 2635, 2635, 2635, 1264, 2636, 1369, 1368, 2637,
2590      2638, 2638, 2638, 1367, 1295, 1366, 1365, 2702, 2751, 2751,
2591      2751, 2644, 2644, 2644, 1364, 2753, 2753, 2753, 2639, 2754,
2592      1358, 1351, 2755, 1340, 1335, 2752, 1330, 1326, 2645, 2757,
2593      2757, 2757, 2762, 2762, 2762, 1325, 1324, 2731, 2653, 2653,
2594      2653, 1318, 2654, 1317, 1316, 2655, 1312, 2758, 1311, 2763,
2595      2657, 2657, 2657, 1310, 2766, 2766, 2766, 2748, 2767, 1305,
2596
2597      1304, 2768, 2777, 2777, 2777, 1299, 1298, 2658, 2666, 2666,
2598      2666, 2779, 2779, 2779, 1292, 2780, 1291, 1287, 2781, 2778,
2599      2782, 2782, 2782, 1286, 1285, 2667, 2669, 2669, 2669, 1284,
2600      2670, 1283, 1282, 2671, 2672, 2672, 2672, 2783, 2674, 2674,
2601      2674, 1281, 2675, 1280, 1279, 2676, 2682, 2682, 2682, 2787,
2602      2787, 2787, 2673, 2788, 1278, 1277, 2789, 2790, 2790, 2790,
2603      2792, 2792, 2792, 2683, 2686, 2686, 2686, 1276, 2687, 1275,
2604      1269, 2688, 1261, 1260, 2791, 1259, 1254, 2793, 2689, 2689,
2605      2689, 1470, 1470, 1470, 1480, 1480, 1480, 2693, 2693, 2693,
2606      1253, 2694, 1252, 1249, 2695, 1243, 2690, 1238, 1237, 1472,
2607
2608      1233, 1228, 1482, 2696, 2696, 2696, 2802, 2802, 2802, 1227,
2609      2803, 1226, 1225, 2804, 2698, 2698, 2698, 2805, 2805, 2805,
2610      2697, 2806, 1224, 1223, 2807, 2700, 2700, 2700, 1518, 1518,
2611      1518, 2699, 2813, 2813, 2813, 2708, 2708, 2708, 2712, 2712,
2612      2712, 1222, 1220, 2701, 1219, 2801, 1520, 2800, 1218, 2817,
2613      2817, 2817, 1217, 2818, 1216, 2713, 2819, 1262, 1262, 1262,
2614      2851, 2851, 2851, 2853, 2853, 2853, 1293, 1293, 1293, 2749,
2615      2749, 2749, 2856, 2856, 2856, 1264, 2751, 2751, 2751, 1215,
2616      2854, 2859, 2859, 2859, 1295, 2860, 1214, 1213, 2861, 2857,
2617      2808, 1212, 1211, 2752, 2753, 2753, 2753, 1208, 2754, 1207,
2618
2619      1206, 2755, 2862, 2862, 2862, 2757, 2757, 2757, 2837, 2866,
2620      2866, 2866, 2762, 2762, 2762, 2871, 2871, 2871, 2858, 2863,
2621      2868, 2868, 2868, 2758, 2869, 1205, 2867, 2870, 2855, 2763,
2622      1204, 1203, 2872, 2766, 2766, 2766, 1202, 2767, 1201, 1200,
2623      2768, 2777, 2777, 2777, 2882, 2882, 2882, 1199, 2883, 1192,
2624      1191, 2884, 2779, 2779, 2779, 1190, 2780, 1189, 2778, 2781,
2625      2782, 2782, 2782, 2885, 2885, 2885, 1188, 2886, 1187, 1186,
2626      2887, 2889, 2889, 2889, 2787, 2787, 2787, 2783, 2788, 1183,
2627      1181, 2789, 2790, 2790, 2790, 2892, 2892, 2892, 2890, 2893,
2628      1180, 1178, 2894, 2792, 2792, 2792, 2895, 2895, 2895, 2791,
2629
2630      2896, 1176, 1173, 2897, 1470, 1470, 1470, 1480, 1480, 1480,
2631      2793, 2802, 2802, 2802, 1171, 2803, 1168, 1164, 2804, 2805,
2632      2805, 2805, 1472, 2806, 1162, 1482, 2807, 2910, 2910, 2910,
2633      2914, 2914, 2914, 2813, 2813, 2813, 2917, 2917, 2917, 2817,
2634      2817, 2817, 1161, 2818, 1160, 2911, 2819, 2915, 1742, 2928,
2635      2928, 2928, 1262, 1262, 1262, 2904, 2851, 2851, 2851, 2952,
2636      2952, 2952, 2853, 2853, 2853, 1158, 2929, 1293, 1293, 1293,
2637      1264, 2953, 2953, 2953, 2905, 2954, 1157, 1156, 2955, 2854,
2638      2856, 2856, 2856, 1155, 1154, 1295, 2957, 2957, 2957, 1153,
2639      2958, 1151, 1150, 2959, 2862, 2862, 2862, 2857, 2859, 2859,
2640
2641      2859, 2938, 2860, 1149, 1148, 2861, 2961, 2961, 2961, 1146,
2642      2962, 2863, 1145, 2963, 2866, 2866, 2866, 1144, 2956, 2966,
2643      2966, 2966, 1140, 2967, 1139, 1137, 2968, 1136, 2868, 2868,
2644      2868, 2867, 2869, 1135, 1134, 2870, 2871, 2871, 2871, 2969,
2645      2969, 2969, 1133, 2970, 1132, 1130, 2971, 2882, 2882, 2882,
2646      1129, 2883, 1128, 2872, 2884, 2885, 2885, 2885, 1127, 2886,
2647      1125, 1124, 2887, 2889, 2889, 2889, 2982, 2982, 2982, 1123,
2648      2983, 1120, 1119, 2984, 2892, 2892, 2892, 1117, 2893, 1114,
2649      2890, 2894, 2895, 2895, 2895, 1113, 2896, 1109, 1108, 2897,
2650      3000, 3000, 3000, 1480, 1480, 1480, 2910, 2910, 2910, 3008,
2651
2652      3008, 3008, 2914, 2914, 2914, 3010, 3010, 3010, 3001, 3011,
2653      1106, 1482, 3012, 1105, 2911, 1104, 3009, 1742, 1101, 2915,
2654      1742, 1100, 1099, 1742, 3013, 3013, 3013, 2917, 2917, 2917,
2655      3014, 3014, 3014, 3015, 3015, 3015, 2928, 2928, 2928, 3024,
2656      3024, 3024, 1098, 3025, 1096, 1095, 3026, 1262, 1262, 1262,
2657      3042, 3042, 3042, 2929, 2952, 2952, 2952, 1094, 1093, 3002,
2658      2953, 2953, 2953, 1092, 2954, 1264, 1087, 2955, 3043, 3043,
2659      3043, 2957, 2957, 2957, 1085, 2958, 1084, 1083, 2959, 1082,
2660      2961, 2961, 2961, 1081, 2962, 1080, 3044, 2963, 2966, 2966,
2661      2966, 1079, 2967, 1078, 1077, 2968, 2969, 2969, 2969, 1076,
2662
2663      2970, 1075, 1072, 2971, 3048, 3048, 3048, 3058, 3058, 3058,
2664      2982, 2982, 2982, 3033, 2983, 1069, 1068, 2984, 3060, 3060,
2665      3060, 3049, 1067, 1061, 3059, 3000, 3000, 3000, 1480, 1480,
2666      1480, 3008, 3008, 3008, 1060, 3061, 1058, 3080, 3080, 3080,
2667      1057, 3081, 1055, 3001, 3082, 1052, 1482, 1051, 3009, 1742,
2668      3010, 3010, 3010, 1048, 3011, 1742, 1046, 3012, 3013, 3013,
2669      3013, 3014, 3014, 3014, 3015, 3015, 3015, 1045, 1742, 3024,
2670      3024, 3024, 1044, 3025, 1039, 1038, 3026, 1036, 1035, 3074,
2671      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1034,
2672      1032, 1740, 3099, 3099, 3099, 1031, 1740, 1740, 1740, 1742,
2673
2674      1740, 3042, 3042, 3042, 3043, 3043, 3043, 3048, 3048, 3048,
2675      3100, 3110, 3110, 3110, 1029, 3111, 1027, 1026, 3112, 3113,
2676      3113, 3113, 3044, 1023, 3049, 1740, 1740, 1740, 1740, 1740,
2677      1740, 1740, 1740, 1740, 1740, 1740, 3114, 1018, 1740, 3058,
2678      3058, 3058, 1017, 1740, 1740, 1740, 1742, 1740, 3120, 3120,
2679      3120, 1014, 3121, 1013, 1012, 3122, 3059, 3060, 3060, 3060,
2680      3123, 3123, 3123, 1009, 3124, 1008, 1006, 3125, 3138, 3138,
2681      3138, 1003, 1740, 1740, 3061, 3080, 3080, 3080, 1001, 3081,
2682      1000,  999, 3082,  998,  996,  995, 3139,  994, 3099, 3099,
2683      3099,  993,  992, 1742, 1740, 1740, 1740, 1740, 1740, 3150,
2684
2685      1740, 1740, 1740,  991,  988, 1740, 3100, 3113, 3113, 3113,
2686      1740, 1740, 1740, 1742, 1740, 3110, 3110, 3110,  987, 3111,
2687       986,  983, 3112,  980, 3114, 3174, 3174, 3174,  979, 3175,
2688       977,  976, 3176, 3138, 3138, 3138, 3194, 3194, 3194, 1740,
2689      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 3150,
2690       973, 3139, 1740,  970, 1742, 1743,  967, 1740, 1740, 1740,
2691      1742, 1740, 3120, 3120, 3120,  966, 3121,  958,  957, 3122,
2692      3123, 3123, 3123,  956, 3124,  955,  949, 3125, 3207, 3207,
2693      3207, 3209, 3209, 3209,  948,  947, 1740, 1740, 3211, 3211,
2694      3211,  945, 3174, 3174, 3174, 3208, 3175,  944, 3210, 3176,
2695
2696      3221, 3221, 3221,  943,  942, 3212, 3231, 3231, 3231, 3194,
2697      3194, 3194, 3207, 3207, 3207,  941,  940, 3222, 3243, 3243,
2698      3243,  935, 3244,  932, 1180, 3245,  934, 1742,  929, 3208,
2699      3209, 3209, 3209, 3246, 3246, 3246,  928, 3247,  926,  924,
2700      3248, 3211, 3211, 3211, 3249, 3249, 3249, 3210, 3250,  923,
2701       921, 3251, 3221, 3221, 3221, 3260, 3260, 3260, 3212, 3261,
2702      1947,  919, 3262, 3231, 3231, 3231, 3243, 3243, 3243, 3222,
2703      3244,  917,  915, 3245,  913, 3246, 3246, 3246,  910, 3247,
2704       909, 1180, 3248, 3249, 3249, 3249,  908, 3250,  907,  906,
2705      3251, 3260, 3260, 3260,  904, 3261,  902,  901, 3262,  900,
2706
2707      3271, 3396, 3396, 3396, 3396, 3396, 3396,  898, 3407,  896,
2708       895, 3408, 3500, 3500, 3500, 3500, 3500, 3500,  893, 1180,
2709       891,  890, 1180,  888,  884,  883,  881,  876,  874,  870,
2710      3501,  869,  868, 3501,  264,  264,  264,  264,  264,  264,
2711       264,  264,  264,  265,  265,  265,  265,  265,  265,  265,
2712       265,  265,  270,  270,  270,  270,  270,  270,  270,  270,
2713       270,  273,  273,  273,  273,  273,  273,  273,  273,  273,
2714       276,  276,  276,  276,  276,  276,  276,  276,  276,  279,
2715       279,  279,  279,  279,  279,  279,  279,  279,  286,  286,
2716       286,  286,  286,  286,  286,  286,  286,  294,  294,  294,
2717
2718       294,  294,  294,  294,  294,  294,  298,  298,  298,  298,
2719       298,  298,  298,  298,  298,  310,  310,  310,  310,  310,
2720       310,  310,  310,  310,  314,  314,  314,  314,  314,  314,
2721       314,  314,  314,  321,  321,  321,  321,  321,  321,  321,
2722       321,  321,  332,  332,  332,  332,  332,  332,  332,  332,
2723       332,  340,  340,  340,  340,  340,  340,  340,  340,  340,
2724       346,  346,  346,  346,  346,  346,  346,  346,  346,  352,
2725       352,  352,  352,  352,  352,  352,  352,  352,  358,  358,
2726       358,  358,  358,  358,  358,  358,  358,  363,  363,  363,
2727       363,  363,  363,  363,  363,  363,  382,  382,  382,  382,
2728
2729       382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
2730       389,  389,  389,  389,  397,  397,  397,  397,  397,  397,
2731       397,  397,  397,  402,  402,  402,  402,  402,  402,  402,
2732       402,  402,  408,  408,  408,  408,  408,  408,  408,  408,
2733       408,  413,  413,  413,  413,  413,  413,  413,  413,  413,
2734       419,  419,  419,  419,  419,  419,  419,  419,  419,  427,
2735       427,  427,  427,  427,  427,  427,  427,  427,  435,  435,
2736       435,  435,  435,  435,  435,  435,  435,  442,  442,  442,
2737       442,  442,  442,  442,  442,  442,  449,  449,  449,  449,
2738       449,  449,  449,  449,  449,  453,  453,  453,  453,  453,
2739
2740       453,  453,  453,  453,  459,  459,  459,  459,  459,  459,
2741       459,  459,  459,  465,  465,  465,  465,  465,  465,  465,
2742       465,  465,  483,  483,  483,  483,  483,  483,  483,  483,
2743       483,  490,  490,  490,  490,  490,  490,  490,  490,  490,
2744       499,  499,  499,  499,  499,  499,  499,  499,  499,  505,
2745       505,  505,  505,  505,  505,  505,  505,  505,  515,  515,
2746       515,  515,  515,  515,  515,  515,  515,  521,  521,  521,
2747       521,  521,  521,  521,  521,  521,  526,  526,  526,  526,
2748       526,  526,  526,  526,  526,  532,  532,  532,  532,  532,
2749       532,  532,  532,  532,  538,  538,  538,  538,  538,  538,
2750
2751       538,  538,  538,  544,  544,  544,  544,  544,  544,  544,
2752       544,  544,  551,  551,  551,  551,  551,  551,  551,  551,
2753       551,  558,  558,  558,  558,  558,  558,  558,  558,  558,
2754       563,  563,  563,  563,  563,  563,  563,  563,  563,  571,
2755       571,  571,  571,  571,  571,  571,  571,  571,  577,  577,
2756       577,  577,  577,  577,  577,  577,  577,  584,  584,  584,
2757       584,  584,  584,  584,  584,  584,  589,  589,  589,  589,
2758       589,  589,  589,  589,  589,  595,  595,  595,  595,  595,
2759       595,  595,  595,  595,  600,  600,  600,  600,  600,  600,
2760       600,  600,  600,  607,  607,  607,  607,  607,  607,  607,
2761
2762       607,  607,  613,  613,  613,  613,  613,  613,  613,  613,
2763       613,  620,  620,  620,  620,  620,  620,  620,  620,  620,
2764       628,  628,  628,  628,  628,  628,  628,  628,  628,  636,
2765       636,  636,  636,  636,  636,  636,  636,  636,  640,  640,
2766       640,  640,  640,  640,  640,  640,  640,  646,  646,  646,
2767       646,  646,  646,  646,  646,  646,  650,  650,  650,  650,
2768       650,  650,  650,  650,  650,  657,  657,  657,  657,  657,
2769       657,  657,  657,  657,  662,  662,  662,  662,  662,  662,
2770       662,  662,  662,  668,  668,  668,  668,  668,  668,  668,
2771       668,  668,  673,  673,  673,  673,  673,  673,  673,  673,
2772
2773       673,  693,  693,  693,  866,  864,  863,  693,  720,  720,
2774       720,  862,  860,  858,  720,  724,  724,  724,  857,  855,
2775       853,  724,  732,  732,  732,  852,  851,  850,  732,  743,
2776       743,  743,  849,  848,  847,  743,  749,  749,  749,  845,
2777       843,  842,  749,  772,  772,  772,  839,  838,  837,  772,
2778       780,  780,  780,  835,  833,  822,  780,  785,  785,  785,
2779       821,  818,  816,  785,  790,  790,  790,  814,  813,  812,
2780       790,  800,  800,  800,  810,  808,  806,  800,  807,  807,
2781       807,  804,  803,  802,  807,  811,  811,  811,  801,  799,
2782       798,  811,  817,  817,  817,  796,  793,  792,  817,  836,
2783
2784       836,  836,  791,  789,  787,  836,  846,  846,  846,  786,
2785       784,  782,  846,  856,  856,  856,  781,  779,  776,  856,
2786       861,  861,  861,  775,  774,  773,  861,  867,  867,  867,
2787       771, 3502,  718,  867,  875,  875,  875,  751,  750,  748,
2788       875,  882,  882,  882,  746,  745,  744,  882,  889,  889,
2789       889,  742,  738,  734,  889,  894,  894,  894,  733,  731,
2790       730,  894,  899,  899,  899,  727,  726,  725,  899,  905,
2791       905,  905,  723,  722,  721,  905,  914,  914,  914,  719,
2792       714, 3502,  914,  918,  918,  918,  694,  692,  690,  918,
2793       922,  922,  922,  684,  683,  684,  922,  927,  927,  927,
2794
2795       683,  682,  681,  927,  931,  931,  931,  931,  931,  931,
2796       931, 3502,  931,  693,  693,  693, 3502, 3502, 3502,  693,
2797       946, 3502, 3502, 3502,  946,  720,  720,  720, 3502, 3502,
2798      3502,  720,  978, 3502, 3502, 3502,  978,  724,  724,  724,
2799      3502, 3502, 3502,  724,  985, 3502, 3502, 3502,  985,  732,
2800       732,  732, 3502, 3502, 3502,  732,  997, 3502, 3502, 3502,
2801       997,  743,  743,  743, 3502, 3502, 3502,  743, 1002, 3502,
2802      3502, 3502, 1002,  749,  749,  749, 3502, 3502, 3502,  749,
2803      1007, 3502, 3502, 3502, 1007,  772,  772,  772, 3502, 3502,
2804      3502,  772, 1028, 3502, 3502, 3502, 1028,  780,  780,  780,
2805
2806      3502, 3502, 3502,  780, 1033, 3502, 3502, 3502, 1033,  785,
2807       785,  785, 3502, 3502, 3502,  785, 1037, 3502, 3502, 3502,
2808      1037,  790,  790,  790, 3502, 3502, 3502,  790, 1047, 3502,
2809      3502, 3502, 1047,  800,  800,  800, 3502, 3502, 3502,  800,
2810      1056, 3502, 3502, 3502, 1056,  807,  807,  807, 3502, 3502,
2811      3502,  807, 1059, 3502, 3502, 3502, 1059,  811,  811,  811,
2812      3502, 3502, 3502,  811, 1066, 3502, 3502, 3502, 1066,  817,
2813       817,  817, 3502, 3502, 3502,  817, 1086, 3502, 3502, 3502,
2814      1086,  836,  836,  836, 3502, 3502, 3502,  836, 1097, 3502,
2815      3502, 3502, 1097,  846,  846,  846, 3502, 3502, 3502,  846,
2816
2817      1107, 3502, 3502, 3502, 1107,  856,  856,  856, 3502, 3502,
2818      3502,  856, 1112, 3502, 3502, 3502, 1112,  861,  861,  861,
2819      3502, 3502, 3502,  861, 1118, 3502, 3502, 3502, 1118,  867,
2820       867,  867, 3502, 3502, 3502,  867, 1126, 3502, 3502, 3502,
2821      1126,  875,  875,  875, 3502, 3502, 3502,  875, 1131, 3502,
2822      3502, 3502, 1131,  882,  882,  882, 3502, 3502, 3502,  882,
2823      1138, 3502, 3502, 3502, 1138,  889,  889,  889, 3502, 3502,
2824      3502,  889, 1143, 3502, 3502, 3502, 1143,  894,  894,  894,
2825      3502, 3502, 3502,  894, 1147, 3502, 3502, 3502, 1147,  899,
2826       899,  899, 3502, 3502, 3502,  899, 1152, 3502, 3502, 3502,
2827
2828      1152,  905,  905,  905, 3502, 3502, 3502,  905, 1159, 3502,
2829      3502, 3502, 1159,  914,  914,  914, 3502, 3502, 3502,  914,
2830      1163, 3502, 3502, 3502, 1163,  918,  918,  918, 3502, 3502,
2831      3502,  918, 1167, 3502, 3502, 3502, 1167,  922,  922,  922,
2832      3502, 3502, 3502,  922, 1172, 3502, 3502, 3502, 1172,  927,
2833       927,  927, 3502, 3502, 3502,  927, 1177, 3502, 3502, 3502,
2834      1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2835      1185, 3502, 3502, 3502, 3502, 1185,  693,  693,  693, 3502,
2836      3502, 3502,  693, 1194, 1194, 1194, 1194, 3502, 3502, 1194,
2837      1194,  720,  720,  720, 3502, 3502, 3502,  720, 1230, 1230,
2838
2839      1230, 1230, 3502, 3502, 1230, 1230,  724,  724,  724, 3502,
2840      3502, 3502,  724, 1240, 1240, 1240, 1240, 3502, 3502, 1240,
2841      1240,  732,  732,  732, 3502, 3502, 3502,  732, 1256, 1256,
2842      1256, 1256, 3502, 3502, 1256, 1256,  743,  743,  743, 3502,
2843      3502, 3502,  743, 1263, 1263, 1263, 1263, 3502, 3502, 1263,
2844      1263,  749,  749,  749, 3502, 3502, 3502,  749, 1271, 1271,
2845      1271, 1271, 3502, 3502, 1271, 1271,  772,  772,  772, 3502,
2846      3502, 3502,  772, 1294, 1294, 1294, 1294, 3502, 3502, 1294,
2847      1294,  780,  780,  780, 3502, 3502, 3502,  780, 1301, 1301,
2848      1301, 1301, 3502, 3502, 1301, 1301,  785,  785,  785, 3502,
2849
2850      3502, 3502,  785, 1307, 1307, 1307, 1307, 3502, 3502, 1307,
2851      1307,  790,  790,  790, 3502, 3502, 3502,  790, 1320, 1320,
2852      1320, 1320, 3502, 3502, 1320, 1320,  800,  800,  800, 3502,
2853      3502, 3502,  800, 1332, 1332, 1332, 1332, 3502, 3502, 1332,
2854      1332,  807,  807,  807, 3502, 3502, 3502,  807, 1337, 1337,
2855      1337, 1337, 3502, 3502, 1337, 1337,  811,  811,  811, 3502,
2856      3502, 3502,  811, 1348, 1348, 1348, 1348, 3502, 3502, 1348,
2857      1348,  817,  817,  817, 3502, 3502, 3502,  817, 1375, 1375,
2858      1375, 1375, 3502, 3502, 1375, 1375,  836,  836,  836,  836,
2859      3502,  836, 3502,  836, 1391, 1391, 1391, 1391, 3502, 3502,
2860
2861      1391, 1391,  846,  846,  846, 3502, 3502, 3502,  846, 1406,
2862      1406, 1406, 1406, 3502, 3502, 1406, 1406,  856,  856,  856,
2863      3502, 3502, 3502,  856, 1414, 1414, 1414, 1414, 3502, 3502,
2864      1414, 1414,  861,  861,  861, 3502, 3502, 3502,  861, 1423,
2865      1423, 1423, 1423, 3502, 3502, 1423, 1423,  867,  867,  867,
2866      3502, 3502, 3502,  867, 1434, 1434, 1434, 1434, 3502, 3502,
2867      1434, 1434,  875,  875,  875,  875, 3502,  875, 3502,  875,
2868      1443, 1443, 1443, 1443, 3502, 3502, 1443, 1443,  882,  882,
2869       882,  882, 3502,  882, 3502,  882, 1455, 1455, 1455, 1455,
2870      3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502, 3502,
2871
2872       889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,  894,
2873       894,  894,  894, 3502,  894, 3502,  894, 1471, 1471, 1471,
2874      1471, 3502, 3502, 1471, 1471,  899,  899,  899,  899, 3502,
2875       899, 3502,  899, 1481, 1481, 1481, 1481, 3502, 3502, 1481,
2876      1481,  905,  905,  905, 3502, 3502, 3502,  905, 1490, 1490,
2877      1490, 1490, 3502, 3502, 1490, 1490,  914,  914,  914, 3502,
2878      3502, 3502,  914, 1496, 1496, 1496, 1496, 3502, 3502, 1496,
2879      1496, 1503, 1503, 1503, 1503, 3502, 3502, 1503, 1503,  922,
2880       922,  922, 3502, 3502, 3502,  922, 1511, 1511, 1511, 1511,
2881      3502, 3502, 1511, 1511,  927,  927,  927, 3502, 3502, 3502,
2882
2883       927, 1519, 1519, 1519, 1519, 3502, 3502, 1519, 1519, 1179,
2884      1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1185, 3502,
2885      1185, 3502, 3502, 1185,  693,  693,  693, 3502, 3502, 3502,
2886       693, 1194, 1194, 1194, 1194, 3502, 3502, 1194, 1194,  720,
2887       720,  720,  720, 3502,  720, 3502,  720, 1230, 1230, 1230,
2888      1230, 3502, 3502, 1230, 1230,  724,  724,  724,  724, 3502,
2889       724, 3502,  724, 1240, 1240, 1240, 1240, 3502, 3502, 1240,
2890      1240,  732,  732,  732, 3502, 3502, 3502,  732, 1256, 1256,
2891      1256, 1256, 3502, 3502, 1256, 1256,  743,  743,  743, 3502,
2892      3502, 3502,  743, 1263, 1263, 1263, 1263, 3502, 3502, 1263,
2893
2894      1263,  749,  749,  749, 3502, 3502, 3502,  749, 1271, 1271,
2895      1271, 1271, 3502, 3502, 1271, 1271,  772,  772,  772, 3502,
2896      3502, 3502,  772, 1294, 1294, 1294, 1294, 3502, 3502, 1294,
2897      1294,  780,  780,  780,  780, 3502,  780, 3502,  780, 1301,
2898      1301, 1301, 1301, 3502, 3502, 1301, 1301,  785,  785,  785,
2899       785, 3502,  785, 3502,  785, 1307, 1307, 1307, 1307, 3502,
2900      3502, 1307, 1307,  790,  790,  790, 3502, 3502, 3502,  790,
2901      1320, 1320, 1320, 1320, 3502, 3502, 1320, 1320,  800,  800,
2902       800, 3502, 3502, 3502,  800, 1332, 1332, 1332, 1332, 3502,
2903      3502, 1332, 1332,  807,  807,  807,  807, 3502,  807, 3502,
2904
2905       807, 1337, 1337, 1337, 1337, 3502, 3502, 1337, 1337,  811,
2906       811,  811,  811, 3502,  811, 3502,  811, 1348, 1348, 1348,
2907      1348, 3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502,
2908      3502,  817, 1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375,
2909       836,  836,  836, 3502, 3502, 3502,  836, 1391, 1391, 1391,
2910      1391, 3502, 3502, 1391, 1391,  846,  846,  846, 3502, 3502,
2911      3502,  846, 1406, 1406, 1406, 1406, 3502, 3502, 1406, 1406,
2912       856,  856,  856, 3502, 3502, 3502,  856, 1414, 1414, 1414,
2913      1414, 3502, 3502, 1414, 1414,  861,  861,  861, 3502, 3502,
2914      3502,  861, 1423, 1423, 1423, 1423, 3502, 3502, 1423, 1423,
2915
2916       867,  867,  867, 3502, 3502, 3502,  867, 1434, 1434, 1434,
2917      1434, 3502, 3502, 1434, 1434,  875,  875,  875, 3502, 3502,
2918      3502,  875, 1443, 1443, 1443, 1443, 3502, 3502, 1443, 1443,
2919       882,  882,  882, 3502, 3502, 3502,  882, 1455, 1455, 1455,
2920      1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502,
2921      3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,
2922      1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471,  899,  899,
2923       899, 3502, 3502, 3502,  899, 1481, 1481, 1481, 1481, 3502,
2924      3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,  905,
2925      1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490,  914,  914,
2926
2927       914, 3502, 3502, 3502,  914, 1496, 1496, 1496, 1496, 3502,
2928      3502, 1496, 1496, 1503, 1503, 1503, 1503, 3502, 3502, 1503,
2929      1503,  922,  922,  922, 3502, 3502, 3502,  922, 1511, 1511,
2930      1511, 1511, 3502, 3502, 1511, 1511,  927,  927,  927, 3502,
2931      3502, 3502,  927, 1519, 1519, 1519, 1519, 3502, 3502, 1519,
2932      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2933      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
2934       693,  693, 3502, 3502, 3502,  693, 1194, 1194, 1194, 1194,
2935      3502, 3502, 1194, 1194, 1230, 1230, 1230, 1230, 3502, 3502,
2936      1230, 1230,  724,  724,  724, 3502, 3502, 3502,  724, 1240,
2937
2938      1240, 1240, 1240, 3502, 3502, 1240, 1240,  732,  732,  732,
2939      3502, 3502, 3502,  732, 1256, 1256, 1256, 1256, 3502, 3502,
2940      1256, 1256,  743,  743,  743, 3502, 3502, 3502,  743, 1263,
2941      1263, 1263, 1263, 3502, 3502, 1263, 1263,  749,  749,  749,
2942      3502, 3502, 3502,  749,  772,  772,  772, 3502, 3502, 3502,
2943       772, 1294, 1294, 1294, 1294, 3502, 3502, 1294, 1294,  780,
2944       780,  780, 3502, 3502, 3502,  780, 1301, 1301, 1301, 1301,
2945      3502, 3502, 1301, 1301,  785,  785,  785, 3502, 3502, 3502,
2946       785, 1307, 1307, 1307, 1307, 3502, 3502, 1307, 1307,  790,
2947       790,  790, 3502, 3502, 3502,  790, 1320, 1320, 1320, 1320,
2948
2949      3502, 3502, 1320, 1320,  800,  800,  800, 3502, 3502, 3502,
2950       800, 1332, 1332, 1332, 1332, 3502, 3502, 1332, 1332, 1337,
2951      1337, 1337, 1337, 3502, 3502, 1337, 1337, 1348, 1348, 1348,
2952      1348, 3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502,
2953      3502,  817, 1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375,
2954       836,  836,  836,  836, 3502,  836, 3502,  836, 1391, 1391,
2955      1391, 1391, 3502, 3502, 1391, 1391,  846,  846,  846, 3502,
2956      3502, 3502,  846, 1406, 1406, 1406, 1406, 3502, 3502, 1406,
2957      1406,  856,  856,  856, 3502, 3502, 3502,  856, 1414, 1414,
2958      1414, 1414, 3502, 3502, 1414, 1414,  861,  861,  861, 3502,
2959
2960      3502, 3502,  861, 1423, 1423, 1423, 1423, 3502, 3502, 1423,
2961      1423,  867,  867,  867, 3502, 3502, 3502,  867, 1434, 1434,
2962      1434, 1434, 3502, 3502, 1434, 1434,  875,  875,  875, 3502,
2963      3502, 3502,  875, 1443, 1443, 1443, 1443, 3502, 3502, 1443,
2964      1443,  882,  882,  882, 3502, 3502, 3502,  882, 1455, 1455,
2965      1455, 1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502,
2966      3502, 3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463,
2967      1463, 1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471,  899,
2968       899,  899, 3502, 3502, 3502,  899, 1481, 1481, 1481, 1481,
2969      3502, 3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,
2970
2971       905, 1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490,  914,
2972       914,  914,  914, 3502,  914, 3502,  914, 1496, 1496, 1496,
2973      1496, 3502, 3502, 1496, 1496, 1503, 1503, 1503, 1503, 3502,
2974      3502, 1503, 1503,  922,  922,  922,  922, 3502,  922, 3502,
2975       922, 1511, 1511, 1511, 1511, 3502, 3502, 1511, 1511,  927,
2976       927,  927,  927, 3502,  927, 3502,  927, 1519, 1519, 1519,
2977      1519, 3502, 3502, 1519, 1519, 1179, 1179, 1179, 1179, 1179,
2978      1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740, 1740,
2979      1740, 1740, 1740,  693,  693,  693, 3502, 3502, 3502,  693,
2980      1194, 1194, 1194, 1194, 3502, 3502, 1194, 1194, 1230, 1230,
2981
2982      1230, 1230, 3502, 3502, 1230, 1230,  724,  724,  724, 3502,
2983      3502, 3502,  724, 1240, 1240, 1240, 1240, 3502, 3502, 1240,
2984      1240,  732,  732,  732, 3502, 3502, 3502,  732, 1256, 1256,
2985      1256, 1256, 3502, 3502, 1256, 1256,  743,  743,  743, 3502,
2986      3502, 3502,  743, 1263, 1263, 1263, 1263, 3502, 3502, 1263,
2987      1263,  749,  749,  749, 3502, 3502, 3502,  749,  772,  772,
2988       772, 3502, 3502, 3502,  772, 1294, 1294, 1294, 1294, 3502,
2989      3502, 1294, 1294,  780,  780,  780, 3502, 3502, 3502,  780,
2990      1301, 1301, 1301, 1301, 3502, 3502, 1301, 1301,  785,  785,
2991       785,  785, 3502,  785, 3502,  785, 1307, 1307, 1307, 1307,
2992
2993      3502, 3502, 1307, 1307,  790,  790,  790, 3502, 3502, 3502,
2994       790, 1320, 1320, 1320, 1320, 3502, 3502, 1320, 1320,  800,
2995       800,  800,  800, 3502,  800, 3502,  800, 1332, 1332, 1332,
2996      1332, 3502, 3502, 1332, 1332, 1348, 1348, 1348, 1348, 3502,
2997      3502, 1348, 1348,  817,  817,  817, 3502, 3502, 3502,  817,
2998      1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375,  836,  836,
2999       836,  836, 3502,  836, 3502,  836, 1391, 1391, 1391, 1391,
3000      3502, 3502, 1391, 1391,  846,  846,  846, 3502, 3502, 3502,
3001       846, 1406, 1406, 1406, 1406, 3502, 3502, 1406, 1406,  856,
3002       856,  856, 3502, 3502, 3502,  856, 1414, 1414, 1414, 1414,
3003
3004      3502, 3502, 1414, 1414,  861,  861,  861, 3502, 3502, 3502,
3005       861, 1423, 1423, 1423, 1423, 3502, 3502, 1423, 1423,  867,
3006       867,  867, 3502, 3502, 3502,  867, 1434, 1434, 1434, 1434,
3007      3502, 3502, 1434, 1434,  875,  875,  875, 3502, 3502, 3502,
3008       875, 1443, 1443, 1443, 1443, 3502, 3502, 1443, 1443,  882,
3009       882,  882,  882, 3502,  882, 3502,  882, 1455, 1455, 1455,
3010      1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502,
3011      3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,
3012      1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471,  899,  899,
3013       899,  899, 3502,  899, 3502,  899, 1481, 1481, 1481, 1481,
3014
3015      3502, 3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,
3016       905, 1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490, 1496,
3017      1496, 1496, 1496, 3502, 3502, 1496, 1496, 1503, 1503, 1503,
3018      1503, 3502, 3502, 1503, 1503, 1511, 1511, 1511, 1511, 3502,
3019      3502, 1511, 1511, 1519, 1519, 1519, 1519, 3502, 3502, 1519,
3020      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3021      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
3022       693,  693,  693, 3502,  693, 3502,  693, 1194, 1194, 1194,
3023      1194, 3502, 3502, 1194, 1194, 1230, 1230, 1230, 1230, 3502,
3024      3502, 1230, 1230,  724,  724,  724, 3502, 3502, 3502,  724,
3025
3026      1240, 1240, 1240, 1240, 3502, 3502, 1240, 1240,  732,  732,
3027       732, 3502, 3502, 3502,  732, 1256, 1256, 1256, 1256, 3502,
3028      3502, 1256, 1256,  743,  743,  743,  743, 3502,  743, 3502,
3029       743, 1263, 1263, 1263, 1263, 3502, 3502, 1263, 1263,  749,
3030       749,  749,  749, 3502,  749, 3502,  749,  772,  772,  772,
3031       772, 3502,  772, 3502,  772, 1294, 1294, 1294, 1294, 3502,
3032      3502, 1294, 1294,  780,  780,  780, 3502, 3502, 3502,  780,
3033      1301, 1301, 1301, 1301, 3502, 3502, 1301, 1301, 1307, 1307,
3034      1307, 1307, 3502, 3502, 1307, 1307,  790,  790,  790, 3502,
3035      3502, 3502,  790,  800,  800,  800,  800, 3502,  800, 3502,
3036
3037       800, 1332, 1332, 1332, 1332, 3502, 3502, 1332, 1332, 1348,
3038      1348, 1348, 1348, 3502, 3502, 1348, 1348,  817,  817,  817,
3039      3502, 3502, 3502,  817, 1375, 1375, 1375, 1375, 3502, 3502,
3040      1375, 1375,  836,  836,  836,  836, 3502,  836, 3502,  836,
3041      1391, 1391, 1391, 1391, 3502, 3502, 1391, 1391,  846,  846,
3042       846, 3502, 3502, 3502,  846,  856,  856,  856, 3502, 3502,
3043      3502,  856, 1414, 1414, 1414, 1414, 3502, 3502, 1414, 1414,
3044       861,  861,  861, 3502, 3502, 3502,  861, 1423, 1423, 1423,
3045      1423, 3502, 3502, 1423, 1423,  867,  867,  867, 3502, 3502,
3046      3502,  867,  875,  875,  875, 3502, 3502, 3502,  875, 1443,
3047
3048      1443, 1443, 1443, 3502, 3502, 1443, 1443,  882,  882,  882,
3049      3502, 3502, 3502,  882, 1455, 1455, 1455, 1455, 3502, 3502,
3050      1455, 1455,  889,  889,  889, 3502, 3502, 3502,  889, 1463,
3051      1463, 1463, 1463, 3502, 3502, 1463, 1463, 1471, 1471, 1471,
3052      1471, 3502, 3502, 1471, 1471, 1481, 1481, 1481, 1481, 3502,
3053      3502, 1481, 1481,  905,  905,  905, 3502, 3502, 3502,  905,
3054      1490, 1490, 1490, 1490, 3502, 3502, 1490, 1490, 1496, 1496,
3055      1496, 1496, 3502, 3502, 1496, 1496, 1503, 1503, 1503, 1503,
3056      3502, 3502, 1503, 1503, 1519, 1519, 1519, 1519, 3502, 3502,
3057      1519, 1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3058
3059      1179, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
3060      1194, 1194, 1194, 1194, 3502, 3502, 1194, 1194, 1230, 1230,
3061      1230, 1230, 3502, 3502, 1230, 1230,  724,  724,  724, 3502,
3062      3502, 3502,  724,  732,  732,  732, 3502, 3502, 3502,  732,
3063      1256, 1256, 1256, 1256, 3502, 3502, 1256, 1256, 1263, 1263,
3064      1263, 1263, 3502, 3502, 1263, 1263,  772,  772,  772, 3502,
3065      3502, 3502,  772, 1294, 1294, 1294, 1294, 3502, 3502, 1294,
3066      1294,  780,  780,  780, 3502, 3502, 3502,  780, 1307, 1307,
3067      1307, 1307, 3502, 3502, 1307, 1307,  790,  790,  790, 3502,
3068      3502, 3502,  790,  800,  800,  800, 3502, 3502, 3502,  800,
3069
3070      1332, 1332, 1332, 1332, 3502, 3502, 1332, 1332, 1348, 1348,
3071      1348, 1348, 3502, 3502, 1348, 1348,  817,  817,  817, 3502,
3072      3502, 3502,  817, 1375, 1375, 1375, 1375, 3502, 3502, 1375,
3073      1375, 1391, 1391, 1391, 1391, 3502, 3502, 1391, 1391,  846,
3074       846,  846, 3502, 3502, 3502,  846,  856,  856,  856, 3502,
3075      3502, 3502,  856, 1414, 1414, 1414, 1414, 3502, 3502, 1414,
3076      1414,  861,  861,  861, 3502, 3502, 3502,  861, 1423, 1423,
3077      1423, 1423, 3502, 3502, 1423, 1423,  867,  867,  867, 3502,
3078      3502, 3502,  867,  875,  875,  875, 3502, 3502, 3502,  875,
3079       882,  882,  882, 3502, 3502, 3502,  882, 1455, 1455, 1455,
3080
3081      1455, 3502, 3502, 1455, 1455,  889,  889,  889, 3502, 3502,
3082      3502,  889, 1463, 1463, 1463, 1463, 3502, 3502, 1463, 1463,
3083      1471, 1471, 1471, 1471, 3502, 3502, 1471, 1471, 1481, 1481,
3084      1481, 1481, 3502, 3502, 1481, 1481,  905,  905,  905,  905,
3085      3502,  905, 3502,  905, 1490, 1490, 1490, 1490, 3502, 3502,
3086      1490, 1490, 1496, 1496, 1496, 1496, 3502, 3502, 1496, 1496,
3087      1503, 1503, 1503, 1503, 3502, 3502, 1503, 1503, 1519, 1519,
3088      1519, 1519, 3502, 3502, 1519, 1519, 1179, 1179, 1179, 1179,
3089      1179, 1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740,
3090      1740, 1740, 1740, 1740, 1194, 1194, 1194, 1194, 3502, 3502,
3091
3092      1194, 1194, 1230, 1230, 1230, 1230, 3502, 3502, 1230, 1230,
3093       724,  724,  724, 3502, 3502, 3502,  724,  732,  732,  732,
3094       732, 3502,  732, 3502,  732, 1263, 1263, 1263, 1263, 3502,
3095      3502, 1263, 1263,  772,  772,  772, 3502, 3502, 3502,  772,
3096      1294, 1294, 1294, 1294, 3502, 3502, 1294, 1294,  780,  780,
3097       780,  780, 3502,  780, 3502,  780, 1307, 1307, 1307, 1307,
3098      3502, 3502, 1307, 1307,  790,  790,  790, 3502, 3502, 3502,
3099       790,  800,  800,  800, 3502, 3502, 3502,  800, 1332, 1332,
3100      1332, 1332, 3502, 3502, 1332, 1332, 1348, 1348, 1348, 1348,
3101      3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502, 3502,
3102
3103       817, 1375, 1375, 1375, 1375, 3502, 3502, 1375, 1375, 1391,
3104      1391, 1391, 1391, 3502, 3502, 1391, 1391,  846,  846,  846,
3105      3502, 3502, 3502,  846,  856,  856,  856, 3502, 3502, 3502,
3106       856,  861,  861,  861,  861, 3502,  861, 3502,  861, 1423,
3107      1423, 1423, 1423, 3502, 3502, 1423, 1423,  867,  867,  867,
3108       867, 3502,  867, 3502,  867,  875,  875,  875, 3502, 3502,
3109      3502,  875,  882,  882,  882, 3502, 3502, 3502,  882, 1455,
3110      1455, 1455, 1455, 3502, 3502, 1455, 1455,  889,  889,  889,
3111       889, 3502,  889, 3502,  889, 1463, 1463, 1463, 1463, 3502,
3112      3502, 1463, 1463, 1471, 1471, 1471, 1471, 3502, 3502, 1471,
3113
3114      1471, 1481, 1481, 1481, 1481, 3502, 3502, 1481, 1481,  905,
3115       905,  905,  905, 3502,  905, 3502,  905, 1490, 1490, 1490,
3116      1490, 3502, 3502, 1490, 1490, 1496, 1496, 1496, 1496, 3502,
3117      3502, 1496, 1496, 1519, 1519, 1519, 1519, 3502, 3502, 1519,
3118      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3119      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1194,
3120      1194, 1194, 1194, 3502, 3502, 1194, 1194,  724,  724,  724,
3121      3502, 3502, 3502,  724,  732,  732,  732, 3502, 3502, 3502,
3122       732, 1263, 1263, 1263, 1263, 3502, 3502, 1263, 1263,  772,
3123       772,  772, 3502, 3502, 3502,  772, 1294, 1294, 1294, 1294,
3124
3125      3502, 3502, 1294, 1294, 1307, 1307, 1307, 1307, 3502, 3502,
3126      1307, 1307,  790,  790,  790, 3502, 3502, 3502,  790,  800,
3127       800,  800, 3502, 3502, 3502,  800, 1348, 1348, 1348, 1348,
3128      3502, 3502, 1348, 1348,  817,  817,  817, 3502, 3502, 3502,
3129       817,  846,  846,  846, 3502, 3502, 3502,  846,  856,  856,
3130       856, 3502, 3502, 3502,  856, 1423, 1423, 1423, 1423, 3502,
3131      3502, 1423, 1423,  867,  867,  867, 3502, 3502, 3502,  867,
3132       875,  875,  875, 3502, 3502, 3502,  875,  882,  882,  882,
3133      3502, 3502, 3502,  882, 3083, 3083, 3083, 3083, 3083, 3083,
3134      3083, 3083, 3083, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
3135
3136      3084, 3084, 3145, 3145, 3145, 3145, 3145, 3145, 3145, 3145,
3137      3145, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148,
3138      3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3193,
3139      3193, 3193, 3193, 3193, 3193, 3193, 3193, 3193,  263, 3502,
3140      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3141      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3142      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3143      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3144      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3145      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3146
3147      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
3148      3502, 3502, 3502
3149     } ;
3150
3151 static yyconst flex_int16_t yy_chk[12714] =
3152     {   0,
3153         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3154         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3155         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3156         8,    8,    8,  268,   11,   13,   13,   12,   14,   14,
3157        13,   13,  317,   14,   14,  269,    8,   17,   17,  268,
3158        13,   15,   15,   14,   15,  272,   15,   16,   16,  371,
3159        16,  269,   16,   18,   18,    0,   15,   19,   19,   19,
3160       550,  272,   16,   20,   20,   20,   23,   23,   23,   24,
3161        24,   24,  550,   19,   25,   25,   25,  371, 1540,   20,
3162       378,   17,   23, 1100,  317,   24,  266,  266,  266, 1100,
3163
3164        25,  267,  267,  267,  271,  271,  271,   18,   21,   21,
3165        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3166        21,   21,   21,  301,   21,   21,   21,   21,   21,   26,
3167        26,   26,   27,   27,   27,   28,   28,   28,  301,   29,
3168        29,   29,   30,   30,   30,   26,  378,  479,   27,  295,
3169       479,   28,  698,   21,   21,   29,  311,  290,   30,   31,
3170        31,   31,  292,  292,  292,  295,  299,  299,  299,  308,
3171       308,  308,  311,  290,  367,   31,  698,   21,   22,   22,
3172        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3173        22,   22,   22, 1542,   22,   22,   22,   22,   22,   32,
3174
3175        32,   32,   33,   33,   33,   34,   34,   34,  282,   35,
3176        35,   35,   36,   36,   36,   32,  290,  370,   33,  496,
3177       754,   34,  496,   22,   22,   35,  367,  370,   36,   37,
3178        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3179        40,   41,   41,   41,  754,   37,  562,   22,   38,  322,
3180       282,   39,  475,  562,   40,  370,  282,   41,   42,   42,
3181        42,  282,  315,  315,  315,  322,  282,  319,  319,  319,
3182       330,  330,  330,  475,   42,   43,   43,   43,   43,   43,
3183        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3184       339,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3185
3186        46,   46,   47,   47,   47,  339,   48,   48,   48,   49,
3187        49,   49,   45,  425,  567,   46, 1543,  425,   47,  337,
3188        43,   43,   48,  337,  391,   49,  303,  337,   43,   44,
3189        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3190        44,   44,   44,   44,  333,   44,   44,   44,   44,   44,
3191        50,   50,   50,   51,   51,   51,   52,   52,   52, 1544,
3192       333,  580,   55,   55,  576,  303,   50,   55,  304,   51,
3193       567,  576,   52,  391,   44,   44,  391,   55,  303,  393,
3194       303,  603,   44,   53,   53,   53,   53,   53,   53,   53,
3195        53,   53,   53,   53,   53,   53,   53,   53, 1546,   53,
3196
3197        53,   53,   53,   53, 1547,  347,   55,  304,   59,   59,
3198        59,   60,   60,   60,   63,   63,   63,  580,   56,   56,
3199       304,  347,  304,   56,   59,  327,  566,   60,   53,   53,
3200        63,  393,  327,   56,  566,  686,   53,  603,  686,   53,
3201       429,  327,  341,  341,  341, 1549,   53,   54,   54,   54,
3202        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3203        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3204        64,   67,   67,   67,   68,   68,   68,  480,   69,   69,
3205        69,   70,   70,   70,   64,  359,  377,   67,  342,  429,
3206        68,  480,   54,   54,   69,  342, 1550,   70, 1551,  616,
3207
3208        54,  359,  377,   54,  342,  344,  344,  344,  431,  959,
3209        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3210        57,   57,   57,   57,   57,   57,  959,   57,   57,   57,
3211        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3212        73,  444,   74,   74,   74,   75,   75,   75,   71, 1552,
3213       383,   72,  354,  398,   73,  616,   57,   57,   74,  354,
3214       431,   75,  353,  353,  353,   57,  383,   57,  354,  398,
3215       392,   57,  356,  356,  356,  445,   57,   57,   58,   58,
3216        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3217        58,   58,   58,  444,   58,   58,   58,   58,   58,   76,
3218
3219        76,   76,   77,   77,   77,   78,   78,   78,  631,   79,
3220        79,   79,   80,   80,   80,   76,  369, 1553,   77,  392,
3221       631,   78,  392,   58,   58,   79,  369,  445,   80,  364,
3222       364,  364,   58,  369,   58,  380,  380,  380,   58,  390,
3223       390,  390, 1554,   58,   58,   61,   61,   61,   61,   61,
3224        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3225       375,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3226        82,   82,   83,   83,   83,  728,   84,   84,   84,   85,
3227        85,   85,   81,  704, 1373,   82,  677,  704,   83,  375,
3228        61,   61,   84,  375,  375,   85, 1373,   61,  395,  395,
3229
3230       395,  677,  375,   61,  375,  403,  403,  403,  406,  406,
3231       406,  728,   61,   62,   62,   62,   62,   62,   62,   62,
3232        62,   62,   62,   62,   62,   62,   62,   62, 1555,   62,
3233        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3234        88,   88,   88,  706,   89,   89,   89,   90,   90,   90,
3235        86,  409,  420,   87,  404,  763,   88,  706,   62,   62,
3236        89,  404,  415,   90, 1556,   62, 1557,  409,  420,  415,
3237       404,   62,  414,  414,  414,  417,  417,  417,  415,  763,
3238        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3239        65,   65,   65,   65,   65,   65, 1559,   65,   65,   65,
3240
3241        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3242        93, 1560,   94,   94,   94,   95,   95,   95,   91,  436,
3243       450,   92, 1566, 1567,   93,  485,   65,   65,   94,  460,
3244      1569,   95,  428,  428,  428,  436,  450,   65,  433,  433,
3245       433,  443,  443,  443,  486,  460,   65,   66,   66,   66,
3246        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3247        66,   66,  764,   66,   66,   66,   66,   66,   96,   96,
3248        96,   97,   97,   97,   98,   98,   98,  485,   99,   99,
3249        99,  100,  100,  100,   96,  472,  764,   97,  792,  765,
3250        98,  792,   66,   66,   99,  455,  486,  100,  101,  101,
3251
3252       101,  472,  455,   66,  102,  102,  102,  447,  447,  447,
3253       553,  455,   66,  765,  101,  454,  454,  454,  376, 1030,
3254       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3255       103,  103,  103,  103,  103,  103, 1030,  103,  103,  103,
3256       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3257       107,  778,  108,  108,  108,  778,  376,  491,  105,  798,
3258       710,  106,  553,  798,  107,  373,  103,  103,  108,  467,
3259       506,  103,  376,  491,  710,  373,  467,  103,  457,  457,
3260       457,  103,  466,  466,  466,  467,  506,  103,  104,  104,
3261       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3262
3263       104,  104,  104,  373,  104,  104,  104,  104,  104,  109,
3264       109,  109,  110,  110,  110,  111,  111,  111,  478,  112,
3265       112,  112,  469,  469,  469,  109,  478,  481,  110, 1578,
3266      1581,  111,  478,  104,  104,  112,  522,  533,  104,  481,
3267       481,  484,  484,  484,  104,  488,  488,  488,  104,  500,
3268       500,  500,  522,  533,  104,  113,  113,  113,  113,  113,
3269       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3270       766,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3271       116,  116,  119,  119,  119,  554,  120,  120,  120,  123,
3272       123,  123,  115, 1583,  766,  116,  501,  517,  119,  545,
3273
3274       113,  113,  120,  501,  517,  123,  503,  503,  503,  516,
3275       516,  516,  501,  517,  632,  545,  113,  519,  519,  519,
3276      1588,  113,  114,  114,  114,  114,  114,  114,  114,  114,
3277       114,  114,  114,  114,  114,  114,  114,  554,  114,  114,
3278       114,  114,  114,  124,  124,  124,  125,  125,  125,  126,
3279       126,  126,  652,  127,  127,  127,  128,  128,  128,  124,
3280      1182, 1591,  125,  528, 1182,  126,  632,  114,  114,  127,
3281       528,  559,  128,  527,  527,  527,  530,  530,  530,  528,
3282       539,  539,  539,  114,  542,  542,  542,  559,  114,  117,
3283       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3284
3285       117,  117,  117,  117,  652,  117,  117,  117,  117,  117,
3286       129,  129,  129,  130,  130,  130,  133,  133,  133,  759,
3287       134,  134,  134,  135,  135,  135,  129,  770, 1592,  130,
3288       540, 1593,  133,  759,  117,  117,  134,  540,  572,  135,
3289       552,  552,  552,  556,  556,  556,  540,  564,  564,  564,
3290       117,  770, 1598,  565,  572, 1049,  117,  118,  118,  118,
3291       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3292       118,  118, 1049,  118,  118,  118,  118,  118,  136,  136,
3293       136,  137,  137,  137,  138,  138,  138, 1599,  139,  139,
3294       139,  140,  140,  140,  136, 1600, 1601,  137, 1602, 1522,
3295
3296       138,  565,  118,  118,  139,  565,  585,  140,  569,  569,
3297       569,  578,  578,  578,  582,  582,  582, 1603,  118, 1522,
3298      1604,  579,  585, 1609,  118,  121,  121,  121,  121,  121,
3299       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3300      1612,  121,  121,  121,  121,  121,  143,  143,  143,  144,
3301       144,  144,  147,  147,  147,  653,  148,  148,  148,  590,
3302       590,  590,  143, 1616, 1618,  144,  596,  591,  147,  579,
3303       121,  121,  148,  121,  591,  121,  699,  579,  593,  593,
3304       593,  121,  596,  591,  601,  601,  601,  699,  121, 1619,
3305       699,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3306
3307       122,  122,  122,  122,  122,  122,  122,  653,  122,  122,
3308       122,  122,  122,  151,  151,  151,  152,  152,  152,  153,
3309       153,  153, 1623,  154,  154,  154,  605,  605,  605,  151,
3310       608, 1626,  152, 1627, 1628,  153,  621,  122,  122,  154,
3311       122,  602,  122,  614,  614,  614,  608,  615,  122,  618,
3312       618,  618,  621, 1629, 1630,  122,  630, 1638,  122,  131,
3313       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3314       131,  131,  131,  131, 1640,  131,  131,  131,  131,  131,
3315       155,  155,  155,  156,  156,  156,  157,  157,  157,  602,
3316       158,  158,  158,  630, 1641,  615,  155,  602,  637,  156,
3317
3318      1214, 1647,  157,  615,  131,  131,  158,  131,  630,  131,
3319       629,  629,  629, 1214,  637,  131,  634,  634,  634,  641,
3320       641,  641,  644,  644,  644, 1648,  131,  132,  132,  132,
3321       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3322       132,  132, 1650,  132,  132,  132,  132,  132,  161,  161,
3323       161,  162,  162,  162,  165,  165,  165, 1651,  166,  166,
3324       166, 1652,  642,  647,  161, 1653, 1654,  162, 1655,  642,
3325       165,  658,  132,  132,  166,  132, 1656,  132,  642,  647,
3326       651,  651,  651,  132,  655,  655,  655,  658,  663,  663,
3327       663,  666,  666,  666,  132,  141,  141,  141,  141,  141,
3328
3329       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3330      1657,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3331       170,  170,  173,  173,  173,  767,  174,  174,  174,  177,
3332       177,  177,  169,  669,  933,  170,  664,  675,  173,  767,
3333       141,  141,  174,  664,  675,  177,  674,  674,  674,  669,
3334       933, 1667,  664,  675, 1669, 1670,  141,  142,  142,  142,
3335       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3336       142,  142, 1675,  142,  142,  142,  142,  142,  178,  178,
3337       178,  179,  179,  179,  180,  180,  180,  769,  181,  181,
3338       181,  182,  182,  182,  178, 1677, 1679,  179,  705, 1680,
3339
3340       180,  769,  142,  142,  181,  705, 1682,  182,  676,  676,
3341       676,  705,  685,  685,  685,  948,  948,  948,  142,  145,
3342       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3343       145,  145,  145,  145, 1683,  145,  145,  145,  145,  145,
3344       183,  183,  183,  184,  184,  184,  187,  187,  187,  709,
3345       188,  188,  188,  189,  189,  189,  183, 1684, 1693,  184,
3346       709,  714,  187,  709,  145,  145,  188,  712,  714,  189,
3347       145,  685,  716, 1699,  714,  145, 1700, 1704,  712,  948,
3348      1706,  712, 1718,  716, 1719, 1724,  716,  145,  146,  146,
3349       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3350
3351       146,  146,  146, 1727,  146,  146,  146,  146,  146,  190,
3352       190,  190,  191,  191,  191,  192,  192,  192, 1728,  193,
3353       193,  193,  194,  194,  194,  190, 1729, 1731,  191,  717,
3354       718,  192, 1226,  146,  146,  193,  717,  718,  194,  146,
3355       758,  761,  717,  718,  146, 1226, 1740,  758,  761, 1197,
3356      1197, 1197, 1743,  758,  761, 1746,  146,  149,  149,  149,
3357       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3358       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3359       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3360       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3361
3362       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3363       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3364       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3365       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3366       159,  159,  159,  159,  159,  159, 1747,  159,  159,  159,
3367       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3368       199,  768,  200,  200,  200,  201,  201,  201,  197, 1749,
3369      1739,  198,  768, 1750,  199,  768,  159,  159,  200, 1751,
3370       159,  201,  936,  936,  936, 1752,  936,  159, 1753, 1754,
3371       159,  970,  970,  970,  159, 1739,  159,  159,  160,  160,
3372
3373       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3374       160,  160,  160, 1755,  160,  160,  160,  160,  160,  202,
3375       202,  202,  203,  203,  203,  204,  204,  204, 1757,  207,
3376       207,  207,  208,  208,  208,  202, 1758, 1760,  203, 1761,
3377      1763,  204, 1069,  160,  160,  207, 1765,  160,  208,  982,
3378       982,  982, 1069,  982,  160,  970,  982,  160, 1766, 1069,
3379      1768,  160, 1770,  160,  160,  163,  163,  163,  163,  163,
3380       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3381      1772,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3382       212,  212,  213,  213,  213, 1773,  214,  214,  214,  726,
3383
3384       726,  726,  211, 1774, 1280,  212, 1775, 1776,  213, 1778,
3385       163,  163,  214,  163,  163,  163,  726, 1280,  990,  990,
3386       990,  163,  990, 1787,  163,  990, 1788, 1790,  163, 1794,
3387      1798,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3388       164,  164,  164,  164,  164,  164,  164, 1800,  164,  164,
3389       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3390       217,  217, 1807,  218,  218,  218,  734,  734,  734,  215,
3391      1808, 1809,  216, 1810, 1812,  217, 1816,  164,  164,  218,
3392       164,  164,  164,  734, 1817, 1005, 1005, 1005,  164, 1005,
3393      1818,  164, 1005, 1821, 1828,  164, 1832, 1839,  164,  167,
3394
3395       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3396       167,  167,  167,  167, 1840,  167,  167,  167,  167,  167,
3397       221,  221,  221,  222,  222,  222,  223,  223,  223, 1849,
3398       224,  224,  224,  750,  750,  750,  221, 1852, 1866,  222,
3399      1870, 1874,  223, 1875,  167,  167,  224, 1879, 1880,  167,
3400       750, 1205, 1205, 1205, 1881,  167,  168,  168,  168,  168,
3401       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3402       168, 1882,  168,  168,  168,  168,  168,  225,  225,  225,
3403       226,  226,  226,  227,  227,  227, 1884,  228,  228,  228,
3404       774,  774,  774,  225, 1885, 1893,  226, 1897, 1900,  227,
3405
3406      1902,  168,  168,  228, 1904, 1905,  168,  774, 1221, 1221,
3407      1221, 1907,  168,  171,  171,  171,  171,  171,  171,  171,
3408       171,  171,  171,  171,  171,  171,  171,  171, 1908,  171,
3409       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3410       233,  233,  233, 1909,  234,  234,  234,  235,  235,  235,
3411       231, 1912, 1914,  232, 1916, 1921,  233, 1927,  171,  171,
3412       234, 1931,  171,  235, 1009, 1009, 1009, 1932, 1933,  171,
3413      1935, 1946,  171,  172,  172,  172,  172,  172,  172,  172,
3414       172,  172,  172,  172,  172,  172,  172,  172, 1946,  172,
3415       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3416
3417       238,  238,  238, 1950,  241,  241,  241,  242,  242,  242,
3418       236, 1953, 1954,  237, 1955, 1948,  238, 1957,  172,  172,
3419       241, 1947,  172,  242, 1018, 1018, 1018, 1958, 1009,  172,
3420      1960, 1961,  172,  175,  175,  175,  175,  175,  175,  175,
3421       175,  175,  175,  175,  175,  175,  175,  175, 1948,  175,
3422       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3423       247,  247,  247, 1947,  248,  248,  248,  249,  249,  249,
3424       245, 1956, 1962,  246, 1963, 1965,  247, 1966,  175,  175,
3425       248, 1967,  175,  249, 1277, 1277, 1277, 1956, 1018,  175,
3426      1971, 1973,  175, 1538, 1538, 1538, 1539, 1539, 1539,  175,
3427
3428       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3429       176,  176,  176,  176,  176, 1976,  176,  176,  176,  176,
3430       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3431      1977,  255,  255,  255,  256,  256,  256,  250, 1978, 1979,
3432       251, 1981, 1539,  252,  368,  176,  176,  255, 1983,  176,
3433       256, 1025, 1025, 1025,  368, 1025,  176, 1984, 1025,  176,
3434      1541, 1541, 1541, 1545, 1545, 1545,  176,  185,  185,  185,
3435       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3436       185,  185,  368,  185,  185,  185,  185,  185,  259,  259,
3437       259,  260,  260,  260, 1986, 1988,  368,  793,  793,  793,
3438
3439       368,  946,  946,  946,  259, 1991, 1541,  260, 1992, 1994,
3440       302, 1995,  185,  185,  793,  803,  803,  803,  185,  946,
3441       302, 1996, 1043, 1043, 1043, 1998, 1043, 2004,  374, 1043,
3442      2005, 2007,  803,  185,  186,  186,  186,  186,  186,  186,
3443       186,  186,  186,  186,  186,  186,  186,  186,  186,  302,
3444       186,  186,  186,  186,  186,  302,  374,  813,  813,  813,
3445      2010, 2018,  302, 1548, 1548, 1548,  302,  814,  814,  814,
3446      1993, 2019,  374, 2024,  813,  820,  820,  820, 1993,  186,
3447       186,  822,  822,  822,  814,  186, 1054, 1054, 1054, 1997,
3448      1054, 2025,  820, 1054, 1558, 1558, 1558, 1997,  822, 2032,
3449
3450       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3451       195,  195,  195,  195,  195,  195, 2033,  195,  195,  195,
3452       195,  195,  837,  837,  837,  838,  838,  838,  850,  850,
3453       850,  858,  858,  858,  863,  863,  863, 2006, 2011,  837,
3454      2034, 2038,  838, 2012, 2046,  850,  195,  195,  858, 2052,
3455      2053,  863,  195, 2006, 2011,  195, 1063, 1063, 1063, 2012,
3456      1063, 2054, 2061, 1063, 1594, 1594, 1594,  195,  196,  196,
3457       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3458       196,  196,  196, 2062,  196,  196,  196,  196,  196,  869,
3459       869,  869,  891,  891,  891,  919,  919,  919,  923,  923,
3460
3461       923,  928,  928,  928, 2063, 2066,  869, 2067, 2078,  891,
3462      2084, 2088,  919,  196,  196,  923, 2091, 2093,  928,  196,
3463      2096, 2098,  196, 1065, 1065, 1065, 2100, 1065, 2101, 2102,
3464      1065, 1597, 1597, 1597,  196,  205,  205,  205,  205,  205,
3465       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3466      2105,  205,  205,  205,  205,  205,  947,  947,  947,  978,
3467       978,  978, 2107, 2112,  979,  979,  979,  981,  981,  981,
3468       985,  985,  985, 1802,  947, 2114, 2122,  978, 2123, 1802,
3469       205,  205,  979, 1802,  981, 2124,  205, 1802,  985, 2125,
3470      2127,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3471
3472       206,  206,  206,  206,  206,  206,  206, 2142,  206,  206,
3473       206,  206,  206, 2142,  947,  986,  986,  986,  989,  989,
3474       989,  997,  997,  997,  979,  991,  991,  991,  993,  993,
3475       993, 2145, 2150,  986, 2151,  989, 2152,  206,  206,  997,
3476      2153, 2144,  991,  206, 2157,  993, 2159, 2160,  206,  209,
3477       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3478       209,  209,  209,  209, 2161,  209,  209,  209,  209,  209,
3479      1002, 1002, 1002, 1003, 1003, 1003, 1004, 1004, 1004,  986,
3480      1007, 1007, 1007, 2143,  998,  998,  998, 2144, 1002, 2162,
3481      2167, 1003, 2174, 1004,  209,  209, 2176, 2177, 1007, 2180,
3482
3483       209, 2183,  998, 1071, 1071, 1071, 2187, 1071, 2188, 2189,
3484      1071, 1595, 1595, 1595, 2143,  209,  210,  210,  210,  210,
3485       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3486       210,  998,  210,  210,  210,  210,  210, 1003, 1008, 1008,
3487      1008, 1024, 1024, 1024, 2190, 1028, 1028, 1028, 1029, 1029,
3488      1029, 1033, 1033, 1033, 1803, 2191, 1008, 1595, 1024, 2192,
3489      1803,  210,  210, 1028, 1803, 2193, 1029,  210, 1803, 1033,
3490      1074, 1074, 1074, 2194, 1074, 1008, 2195, 1074, 1596, 1596,
3491      1596, 2196,  210,  219,  219,  219,  219,  219,  219,  219,
3492       219,  219,  219,  219,  219,  219,  219,  219, 2201,  219,
3493
3494       219,  219,  219,  219, 1034, 1034, 1034, 1037, 1037, 1037,
3495      1042, 1042, 1042, 2202, 1029, 1038, 1038, 1038, 1047, 1047,
3496      1047, 2203, 1034, 2204, 1596, 1037, 2209, 1042,  219,  219,
3497      1048, 1048, 1048, 1038,  219, 2211, 1047,  219, 1089, 1089,
3498      1089, 2212, 1089, 2219, 2220, 1089, 2226, 2227, 1048,  219,
3499       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3500       220,  220,  220,  220,  220, 1034,  220,  220,  220,  220,
3501       220, 1053, 1053, 1053, 1056, 1056, 1056, 1062, 1062, 1062,
3502      1038, 1057, 1057, 1057, 1059, 1059, 1059, 2233, 1053, 2224,
3503      2225, 1048, 1056, 2239, 1062,  220,  220, 2224, 2225, 1057,
3504
3505      2243,  220, 1059, 2244,  220, 1091, 1091, 1091, 2245, 1091,
3506      2251, 2252, 1091, 1695, 1695, 1695,  220,  229,  229,  229,
3507       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3508       229,  229, 2253,  229,  229,  229,  229,  229, 1064, 1064,
3509      1064, 2257, 2269, 1060, 1060, 1060, 2273, 1057, 1066, 1066,
3510      1066, 1067, 1067, 1067, 2274, 1064, 1070, 1070, 1070, 1695,
3511      2275, 1060,  229,  229, 2277, 2281, 1066, 2284, 2285, 1067,
3512       229, 2288,  229, 1070, 2289,  229, 1756, 1756, 1756,  229,
3513      1759, 1759, 1759,  229,  230,  230,  230,  230,  230,  230,
3514       230,  230,  230,  230,  230,  230,  230,  230,  230, 2292,
3515
3516       230,  230,  230,  230,  230, 1060, 1073, 1073, 1073, 1075,
3517      1075, 1075, 1067, 1086, 1086, 1086, 1087, 1087, 1087, 1088,
3518      1088, 1088, 2299, 1073, 2286, 2287, 1075, 2301, 2316,  230,
3519       230, 1086, 2286, 2287, 1087, 2331, 1088,  230, 2332,  230,
3520      2335, 2321,  230, 1762, 1762, 1762,  230, 1764, 1764, 1764,
3521       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3522       239,  239,  239,  239,  239,  239, 2338,  239,  239,  239,
3523       239,  239, 2322, 2343, 1087, 1090, 1090, 1090, 1092, 1092,
3524      1092, 1767, 1767, 1767, 2321, 1093, 1093, 1093, 1095, 1095,
3525      1095, 2344, 1090, 2349, 2351, 1092,  239,  239, 1094, 1094,
3526
3527      1094, 2363, 1093, 2364, 2365, 1095, 1103, 1103, 1103, 2366,
3528      1103, 2367, 2368, 1103, 2369, 1094, 1769, 1769, 1769, 2322,
3529       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3530       240,  240,  240,  240,  240,  240, 1093,  240,  240,  240,
3531       240,  240, 2370, 1095, 1097, 1097, 1097, 1102, 1102, 1102,
3532      1094, 1777, 1777, 1777, 1096, 1096, 1096, 1104, 1104, 1104,
3533      2371, 2372, 1097, 2379, 1102, 2380,  240,  240, 1098, 1098,
3534      1098, 1096, 2381, 2383, 1104, 1111, 1111, 1111, 2387, 1111,
3535      1769, 2389, 1111, 1771, 1771, 1771, 1098, 1811, 1811, 1811,
3536       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3537
3538       243,  243,  243,  243,  243,  243, 1096,  243,  243,  243,
3539       243,  243, 1107, 1107, 1107, 1098, 1110, 1110, 1110, 2392,
3540      1108, 1108, 1108, 1112, 1112, 1112, 1113, 1113, 1113, 1771,
3541      1107, 2393, 2394, 1110, 2395, 2396,  243,  243, 1108, 2397,
3542      2398, 1112, 2403, 2406, 1113, 2407, 2408,  243,  244,  244,
3543       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3544       244,  244,  244, 2414,  244,  244,  244,  244,  244, 2415,
3545      2409, 1108, 1115, 1115, 1115, 1116, 1116, 1116, 2416, 1116,
3546      2409, 2424, 1116, 1118, 1118, 1118, 2425, 1113, 2426, 1115,
3547      1813, 1813, 1813,  244,  244, 1122, 1122, 1122, 2427, 1122,
3548
3549      2441, 1118, 1122, 2442,  244,  253,  253,  253,  253,  253,
3550       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3551      2443,  253,  253,  253,  253,  253, 1119, 1119, 1119, 1121,
3552      1121, 1121, 2444, 2446, 1126, 1126, 1126, 1128, 1128, 1128,
3553      2448, 1127, 1127, 1127, 1119, 2472, 1121, 1129, 1129, 1129,
3554       253,  253, 1126, 2473, 1128, 1130, 1130, 1130, 2466, 1127,
3555      2476,  253, 2479, 2480, 1129, 2481, 2467, 1779, 1779, 1779,
3556      2484, 2487, 1130, 1119,  253,  254,  254,  254,  254,  254,
3557       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3558      2466,  254,  254,  254,  254,  254, 1127, 1131, 1131, 1131,
3559
3560      1134, 1134, 1134, 2467, 2488, 1132, 1132, 1132, 2489, 2490,
3561      1135, 1135, 1135, 1779, 1130, 1131, 2491, 1134, 2492, 2493,
3562       254,  254, 2494, 1132, 1136, 1136, 1136, 1135, 1142, 1142,
3563      1142,  254, 1142, 2495, 2496, 1142, 1166, 1166, 1166, 2497,
3564      1166, 1136, 2499, 1166,  254,  257,  257,  257,  257,  257,
3565       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
3566      1135,  257,  257,  257,  257,  257, 1132, 1138, 1138, 1138,
3567      2500, 1137, 1137, 1137, 2502, 1135, 1139, 1139, 1139, 1141,
3568      1141, 1141, 1143, 1143, 1143, 1138, 2501, 2503, 1137, 2504,
3569       257,  257, 2505, 2507, 1139, 2501, 1141, 1814, 1814, 1814,
3570
3571      1143,  257, 1170, 1170, 1170, 2508, 1170, 2510, 2511, 1170,
3572      1851, 1851, 1851, 1139,  257,  258,  258,  258,  258,  258,
3573       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
3574      1137,  258,  258,  258,  258,  258, 1144, 1144, 1144, 1145,
3575      1145, 1145, 1146, 1146, 1146, 1147, 1147, 1147, 1148, 1148,
3576      1148, 1149, 1149, 1149, 1144, 2506, 1145, 2513, 2514, 1146,
3577       258,  258, 2516, 1147, 2506, 2520, 1148, 2521, 1149, 2522,
3578      2524,  258, 2528, 1150, 1150, 1150, 1151, 1151, 1151, 1152,
3579      1152, 1152, 2532, 2533,  258,  300, 1153, 1153, 1153, 2534,
3580      1150, 1144,  300, 1151, 1159, 1159, 1159, 1152, 1160, 1160,
3581
3582      1160,  300,  300, 2535, 1153, 2536, 1163, 1163, 1163, 1164,
3583      1164, 1164, 1159, 1175, 1175, 1175, 1160, 1175, 2539, 1148,
3584      1175, 2541, 2549, 1150, 1163, 2550, 2543, 1164, 2552,  300,
3585       300,  300, 1959, 1959, 1959,  300,  300,  300, 1150, 2543,
3586       300,  300, 2558, 2559,  300, 2560,  300,  300,  300,  365,
3587      1165, 1165, 1165, 1167, 1167, 1167,  365, 1153, 1168, 1168,
3588      1168, 2544, 1160, 2561, 2563,  365,  365, 1165, 1169, 1169,
3589      1169, 1167, 2566, 1164, 2544, 2568, 1168, 2593, 1172, 1172,
3590      1172, 1174, 1174, 1174, 2594, 1169, 2590, 2597, 1173, 1173,
3591      1173, 2598, 2588,  365,  365,  365, 1172, 2599, 1174,  365,
3592
3593       365,  365, 2589, 2604,  365,  365, 1173, 2605,  365, 2606,
3594       365,  365,  365, 1177, 1177, 1177, 1178, 1178, 1178, 1168,
3595      1193, 1193, 1193, 1194, 1194, 1194, 1196, 1196, 1196, 2590,
3596      2602, 1177, 2588, 2607, 1178, 1229, 1229, 1229, 1193, 2589,
3597      2602, 1194, 2608, 2602, 1196, 1228, 1228, 1228, 1230, 1230,
3598      1230, 2609, 1173, 1229, 1232, 1232, 1232, 1233, 1233, 1233,
3599      2610, 2611, 1228, 1234, 1234, 1234, 1230, 1234, 2612, 2613,
3600      1234, 2614, 1232, 1196, 1233, 2616, 2617, 1178, 1237, 1237,
3601      1237, 1239, 1239, 1239, 1240, 1240, 1240, 1242, 1242, 1242,
3602      1244, 1244, 1244, 2618, 1244, 1237, 2619, 1244, 2620, 1239,
3603
3604      2621, 2622, 1240, 1232, 2603, 1242, 1247, 1247, 1247, 1248,
3605      1248, 1248, 2623, 1248, 2603, 2624, 1248, 2603, 1249, 1249,
3606      1249, 2625, 2626, 1247, 1250, 1250, 1250, 2627, 2628, 1251,
3607      1251, 1251, 2629, 1251, 1242, 1249, 1251, 2631, 2632, 1237,
3608      2640, 1250, 1253, 1253, 1253, 1255, 1255, 1255, 1256, 1256,
3609      1256, 1258, 1258, 1258, 1260, 1260, 1260, 2646, 2648, 1253,
3610      1262, 1262, 1262, 1255, 2649, 2650, 1256, 2652, 2656, 1258,
3611      2659, 1260, 1263, 1263, 1263, 1265, 1265, 1265, 1262, 1266,
3612      1266, 1266, 2661, 1266, 2663, 2664, 1266, 1270, 1270, 1270,
3613      1263, 2677, 2660, 1265, 1271, 1271, 1271, 1273, 1273, 1273,
3614
3615      1288, 1288, 1288, 2660, 1288, 1270, 2678, 1288, 1292, 1292,
3616      1292, 1258, 1271, 2662, 2679, 1273, 1293, 1293, 1293, 1294,
3617      1294, 1294, 1265, 2706, 2662, 1292, 1296, 1296, 1296, 1298,
3618      1298, 1298, 2709, 2710, 1293, 2703, 2711, 1294, 1299, 1299,
3619      1299, 1300, 1300, 1300, 1296, 2714, 1298, 1301, 1301, 1301,
3620      1303, 1303, 1303, 2715, 2716, 1299, 1304, 1304, 1304, 1300,
3621      1305, 1305, 1305, 2717, 2703, 1301, 2718, 2716, 1303, 1312,
3622      1312, 1312, 2704, 1304, 1306, 1306, 1306, 1305, 1307, 1307,
3623      1307, 1309, 1309, 1309, 2720, 1299, 1312, 1296, 1305, 1319,
3624      1319, 1319, 1306, 1313, 1313, 1313, 1307, 1313, 2705, 1309,
3625
3626      1313, 1320, 1320, 1320, 1322, 1322, 1322, 1319, 1327, 1327,
3627      1327, 2721, 1327, 2722, 2704, 1327, 2723, 1303, 2724, 1320,
3628      2726, 2727, 1322, 1331, 1331, 1331, 1332, 1332, 1332, 2687,
3629      1334, 1334, 1334, 1335, 1335, 1335, 1336, 1336, 1336, 2687,
3630      2705, 1331, 2728, 2729, 1332, 2687, 2732, 1309, 1334, 2719,
3631      1335, 1340, 1340, 1340, 1336, 1337, 1337, 1337, 1339, 1339,
3632      1339, 2733, 2719, 1341, 1341, 1341, 2734, 1341, 1340, 1322,
3633      1341, 2735, 2736, 1337, 2737, 2738, 1339, 1344, 1344, 1344,
3634      2739, 1344, 2740, 2741, 1344, 1347, 1347, 1347, 1348, 1348,
3635      1348, 1334, 1350, 1350, 1350, 1355, 1355, 1355, 2742, 1355,
3636
3637      2743, 2744, 1355, 1347, 2746, 2759, 1348, 1358, 1358, 1358,
3638      1350, 1359, 1359, 1359, 2760, 1359, 2765, 2769, 1359, 1362,
3639      1362, 1362, 2770, 2771, 1358, 1339, 1363, 1363, 1363, 2772,
3640      1363, 2773, 2774, 1363, 2775, 2776, 1362, 1374, 1374, 1374,
3641      1375, 1375, 1375, 1377, 1377, 1377, 1378, 1378, 1378, 2688,
3642      1378, 2784, 2786, 1378, 2794, 1374, 2795, 1350, 1375, 2688,
3643      2796, 1377, 1381, 1381, 1381, 2688, 1381, 2797, 2798, 1381,
3644      1384, 1384, 1384, 1385, 1385, 1385, 2799, 1385, 2812, 2815,
3645      1385, 1390, 1390, 1390, 1391, 1391, 1391, 1384, 1393, 1393,
3646      1393, 1398, 1398, 1398, 2816, 1398, 2820, 2821, 1398, 1390,
3647
3648      2803, 2822, 1391, 1401, 1401, 1401, 1393, 1402, 1402, 1402,
3649      1377, 1402, 2809, 2803, 1402, 1405, 1405, 1405, 2823, 2804,
3650      1401, 1406, 1406, 1406, 1408, 1408, 1408, 1410, 1410, 1410,
3651      2810, 1410, 2804, 1405, 1410, 2824, 1393, 2825, 2826, 1406,
3652      2827, 2829, 1408, 1413, 1413, 1413, 1414, 1414, 1414, 1416,
3653      1416, 1416, 1418, 1418, 1418, 2830, 1418, 2831, 2832, 1418,
3654      2809, 1413, 2833, 2834, 1414, 2810, 2835, 1416, 1422, 1422,
3655      1422, 1423, 1423, 1423, 2836, 1408, 1425, 1425, 1425, 2838,
3656      1427, 1427, 1427, 2839, 1427, 2840, 1422, 1427, 2841, 1423,
3657      1433, 1433, 1433, 2842, 1425, 1434, 1434, 1434, 2843, 1436,
3658
3659      1436, 1436, 1437, 1437, 1437, 1438, 1438, 1438, 1433, 1438,
3660      2844, 2845, 1438, 1434, 2846, 2847, 1416, 1436, 2848, 1437,
3661      1439, 1439, 1439, 2849, 2850, 1425, 1440, 1440, 1440, 2858,
3662      1440, 2864, 2865, 1440, 1442, 1442, 1442, 1439, 1443, 1443,
3663      1443, 2873, 1445, 1445, 1445, 1447, 1447, 1447, 2874, 1451,
3664      1451, 1451, 1442, 1964, 1964, 1964, 1443, 2875, 2876, 1436,
3665      1445, 2877, 1447, 1448, 1448, 1448, 1451, 1448, 2878, 2879,
3666      1448, 1452, 1452, 1452, 2880, 1452, 2881, 2888, 1452, 1454,
3667      1454, 1454, 1455, 1455, 1455, 1457, 1457, 1457, 1459, 1459,
3668      1459, 2891, 1459, 2898, 2899, 1459, 2900, 1454, 2893, 2901,
3669
3670      1455, 2902, 2903, 1457, 1462, 1462, 1462, 2906, 2893, 1445,
3671      1463, 1463, 1463, 1465, 1465, 1465, 1466, 1466, 1466, 1467,
3672      1467, 1467, 1462, 1467, 2907, 2908, 1467, 2909, 1463, 2920,
3673      2894, 1465, 2896, 1466, 1468, 1468, 1468, 1469, 1469, 1469,
3674      2894, 1469, 2896, 2921, 1469, 1470, 1470, 1470, 2922, 1457,
3675      2923, 1468, 1471, 1471, 1471, 2924, 1473, 1473, 1473, 1474,
3676      1474, 1474, 2897, 1470, 1475, 1475, 1475, 2925, 1475, 2926,
3677      1471, 1475, 2897, 1465, 1473, 2927, 1474, 1478, 1478, 1478,
3678      1479, 1479, 1479, 2912, 1479, 2930, 2931, 1479, 1480, 1480,
3679      1480, 1481, 1481, 1481, 1478, 1483, 1483, 1483, 1485, 1485,
3680
3681      1485, 1489, 1489, 1489, 2933, 2934, 1480, 2935, 2937, 1481,
3682      1490, 1490, 1490, 1483, 2939, 1485, 2940, 2912, 1473, 1489,
3683      1492, 1492, 1492, 1495, 1495, 1495, 2941, 2944, 1490, 1496,
3684      1496, 1496, 1498, 1498, 1498, 1499, 1499, 1499, 1492, 1499,
3685      2945, 1495, 1499, 1502, 1502, 1502, 2946, 1496, 2947, 2950,
3686      1498, 1503, 1503, 1503, 1505, 1505, 1505, 1483, 1506, 1506,
3687      1506, 1502, 1506, 2960, 2964, 1506, 1510, 1510, 1510, 1503,
3688      2965, 2973, 1505, 1511, 1511, 1511, 1513, 1513, 1513, 2974,
3689      2975, 1492, 2976, 2977, 1510, 1498, 1514, 1514, 1514, 2978,
3690      1514, 1511, 2979, 1514, 1513, 1518, 1518, 1518, 1519, 1519,
3691
3692      1519, 1521, 1521, 1521, 1523, 1523, 1523, 1530, 1530, 1530,
3693      1561, 1561, 1561, 1518, 1505, 2980, 1519, 2986, 2987, 1521,
3694      2988, 2989, 1523, 1523, 2990, 1530, 2991, 1561, 1562, 1562,
3695      1562, 2992, 1562, 2993, 2994, 1562, 2995, 1513, 1563, 1563,
3696      1563, 1564, 1564, 1564, 2997, 1565, 1565, 1565, 2998, 1565,
3697      3003, 1521, 1565, 1568, 1568, 1568, 1563, 3004, 1564, 1570,
3698      1570, 1570, 3005, 1570, 3006, 3007, 1570, 1573, 1573, 1573,
3699      3016, 1568, 3017, 1530, 1574, 1574, 1574, 3018, 1574, 3019,
3700      3020, 1574, 3021, 3022, 1573, 1575, 1575, 1575, 3023, 1575,
3701      3027, 3028, 1575, 1579, 1579, 1579, 1563, 1580, 1580, 1580,
3702
3703      3029, 1580, 1568, 3030, 1580, 1582, 1582, 1582, 3007, 3031,
3704      1579, 1584, 1584, 1584, 1585, 1585, 1585, 3032, 1585, 3034,
3705      3035, 1585, 3037, 1582, 1586, 1586, 1586, 3038, 1584, 1587,
3706      1587, 1587, 1589, 1589, 1589, 1605, 1605, 1605, 1968, 1968,
3707      1968, 1586, 1606, 1606, 1606, 3039, 3041, 1587, 3045, 3046,
3708      1589, 3047, 1605, 3051, 3053, 1582, 1607, 1607, 1607, 1606,
3709      1607, 3054, 3056, 1607, 1608, 1608, 1608, 1610, 1610, 1610,
3710      1611, 1611, 1611, 3057, 1611, 3062, 3063, 1611, 1587, 1613,
3711      1613, 1613, 1608, 3064, 1610, 1614, 1614, 1614, 1615, 1615,
3712      1615, 3065, 1615, 3066, 3067, 1615, 3068, 1613, 1617, 1617,
3713
3714      1617, 3069, 1614, 1620, 1620, 1620, 1621, 1621, 1621, 3070,
3715      1621, 3071, 3072, 1621, 3073, 3075, 1617, 1622, 1622, 1622,
3716      1620, 1624, 1624, 1624, 1625, 1625, 1625, 3076, 1608, 1631,
3717      1631, 1631, 3077, 3078, 1622, 1632, 1632, 1632, 1624, 1613,
3718      3085, 3079, 1625, 3088, 1633, 1633, 1633, 1631, 1633, 3082,
3719      3081, 1633, 1632, 1634, 1634, 1634, 1635, 1635, 1635, 1617,
3720      3082, 1636, 1636, 1636, 3081, 1636, 3089, 1624, 1636, 3092,
3721      3094, 1634, 3095, 1635, 1637, 1637, 1637, 1639, 1639, 1639,
3722      1642, 1642, 1642, 3097, 1643, 1643, 1643, 3079, 1643, 3098,
3723      1625, 1643, 1637, 1631, 1639, 3102, 3101, 1642, 1644, 1644,
3724
3725      1644, 3103, 1644, 3105, 3106, 1644, 1649, 1649, 1649, 1658,
3726      1658, 1658, 1659, 1659, 1659, 3104, 1659, 3107, 3108, 1659,
3727      1662, 1662, 1662, 1649, 1663, 1663, 1663, 1658, 1664, 1664,
3728      1664, 1665, 1665, 1665, 1666, 1666, 1666, 1662, 3101, 3109,
3729      1637, 1663, 1668, 1668, 1668, 1664, 3111, 3115, 1665, 1671,
3730      1671, 1671, 1666, 1671, 3104, 3117, 1671, 3119, 3111, 1668,
3731      1674, 1674, 1674, 1676, 1676, 1676, 1678, 1678, 1678, 1681,
3732      1681, 1681, 3127, 3112, 1658, 1664, 3124, 1674, 1685, 1685,
3733      1685, 1676, 3129, 3131, 1678, 3112, 3133, 1681, 3124, 1666,
3734      1686, 1686, 1686, 3141, 1663, 1685, 1687, 1687, 1687, 3125,
3735
3736      1687, 1665, 3143, 1687, 3144, 1690, 1690, 1690, 1686, 1690,
3737      3147, 3125, 1690, 1694, 1694, 1694, 1696, 1696, 1696, 3149,
3738      1696, 3151, 3145, 1696, 1685, 3152, 1681, 1676, 1705, 1705,
3739      1705, 1694, 1678, 1701, 1701, 1701, 3145, 1701, 3146, 3146,
3740      1701, 1707, 1707, 1707, 3153, 3144, 1705, 1686, 1708, 1708,
3741      1708, 3148, 1708, 3154, 3161, 1708, 1711, 1711, 1711, 1707,
3742      1711, 3160, 3148, 1711, 1714, 1714, 1714, 1715, 1715, 1715,
3743      3171, 1715, 3161, 3164, 1715, 3160, 1720, 1720, 1720, 1694,
3744      1720, 3165, 1714, 1720, 1723, 1723, 1723, 3164, 3173, 1705,
3745      1725, 1725, 1725, 1726, 1726, 1726, 3165, 1726, 1707, 3177,
3746
3747      1726, 3178, 1723, 1730, 1730, 1730, 3181, 1725, 1732, 1732,
3748      1732, 1714, 1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735,
3749      1735, 1730, 1736, 1736, 1736, 1732, 1737, 1737, 1737, 3183,
3750      1733, 1723, 3170, 1734, 3172, 1735, 1738, 1738, 1738, 3188,
3751      1736, 3189, 3180, 1737, 1741, 1741, 1741, 1748, 1748, 1748,
3752      3191, 3170, 1730, 3172, 1738, 3182, 1780, 1780, 1780, 3192,
3753      1780, 3180, 1741, 1780, 3193, 1748, 3195, 1734, 1783, 1783,
3754      1783, 1784, 1784, 1784, 3182, 1784, 3196, 3197, 1784, 1733,
3755      1789, 1789, 1789, 3198, 1736, 3199, 1783, 1738, 3200, 1791,
3756      1791, 1791, 3202, 1791, 3203, 1741, 1791, 3204, 1789, 1748,
3757
3758      1795, 1795, 1795, 3206, 1795, 3213, 3214, 1795, 1799, 1799,
3759      1799, 3215, 1741, 1801, 1801, 1801, 3216, 1801, 3217, 3218,
3760      1801, 1804, 1804, 1804, 3219, 3220, 1799, 1806, 1806, 1806,
3761      3223, 1789, 1805, 1805, 1805, 1783, 1805, 3224, 1804, 1805,
3762      1815, 1815, 1815, 3225, 3226, 1806, 1819, 1819, 1819, 1820,
3763      1820, 1820, 3227, 1822, 1822, 1822, 1823, 1823, 1823, 3228,
3764      1823, 3229, 3230, 1823, 1824, 1824, 1824, 3232, 1824, 1799,
3765      1822, 1824, 1827, 1827, 1827, 1829, 1829, 1829, 1806, 1829,
3766      3234, 3236, 1829, 1833, 1833, 1833, 3237, 1834, 1834, 1834,
3767      1827, 1834, 3238, 3239, 1834, 1837, 1837, 1837, 1838, 1838,
3768
3769      1838, 1833, 3240, 3241, 1815, 3242, 3250, 1841, 1841, 1841,
3770      1819, 1841, 1837, 1820, 1841, 3252, 1838, 3251, 3250, 1827,
3771      1844, 1844, 1844, 1845, 1845, 1845, 3253, 1845, 3254, 3251,
3772      1845, 1846, 1846, 1846, 1847, 1847, 1847, 1844, 1848, 1848,
3773      1848, 3255, 1848, 3256, 3257, 1848, 3263, 3264, 1846, 1833,
3774      3265, 1847, 1850, 1850, 1850, 1853, 1853, 1853, 1854, 1854,
3775      1854, 3266, 1838, 1855, 1855, 1855, 1856, 1856, 1856, 3267,
3776      1850, 3268, 1853, 3269, 3270, 1854, 1860, 1860, 1860, 3273,
3777      1855, 1857, 1857, 1857, 1856, 1857, 3271, 3274, 1857, 1862,
3778      1862, 1862, 3275, 1862, 1860, 3276, 1862, 1865, 1865, 1865,
3779
3780      1867, 1867, 1867, 1868, 1868, 1868, 3277, 1868, 3278, 3279,
3781      1868, 3271, 3280, 1856, 3281, 1865, 3282, 1867, 1869, 1869,
3782      1869, 1871, 1871, 1871, 1854, 1871, 3283, 3284, 1871, 1876,
3783      1876, 1876, 1877, 1877, 1877, 1869, 1877, 3285, 3286, 1877,
3784      1878, 1878, 1878, 1865, 3287, 3288, 1876, 1883, 1883, 1883,
3785      1886, 1886, 1886, 1887, 1887, 1887, 3289, 1878, 1888, 1888,
3786      1888, 3290, 1888, 3291, 1883, 1888, 3292, 3293, 1886, 3294,
3787      1887, 1889, 1889, 1889, 1890, 1890, 1890, 1891, 1891, 1891,
3788      1892, 1892, 1892, 1894, 1894, 1894, 3295, 3296, 1889, 3302,
3789      3299, 1890, 3303, 3304, 1891, 1895, 1895, 1895, 1892, 1895,
3790
3791      1894, 3305, 1895, 1896, 1896, 1896, 1898, 1898, 1898, 3299,
3792      1899, 1899, 1899, 3306, 1899, 3307, 1886, 1899, 3308, 3309,
3793      1896, 3310, 3311, 1898, 1901, 1901, 1901, 1903, 1903, 1903,
3794      3312, 3313, 1890, 1906, 1906, 1906, 1910, 1910, 1910, 3314,
3795      1892, 3315, 1901, 3316, 3317, 1903, 3318, 3319, 1911, 1911,
3796      1911, 1906, 1911, 1910, 3320, 1911, 1913, 1913, 1913, 1915,
3797      1915, 1915, 1917, 1917, 1917, 1918, 1918, 1918, 1919, 1919,
3798      1919, 1920, 1920, 1920, 1913, 3321, 3322, 1915, 1903, 1917,
3799      3323, 1906, 1918, 3324, 3325, 1919, 1923, 1923, 1923, 1920,
3800      1922, 1922, 1922, 3326, 1924, 1924, 1924, 1925, 1925, 1925,
3801
3802      1926, 1926, 1926, 3324, 1923, 1928, 1928, 1928, 1922, 1928,
3803      1915, 1924, 1928, 3327, 1925, 1934, 1934, 1934, 1926, 3328,
3804      1936, 1936, 1936, 1937, 1937, 1937, 3329, 1937, 3330, 3331,
3805      1937, 3332, 1919, 1934, 3333, 3334, 1922, 1936, 1920, 1938,
3806      1938, 1938, 1939, 1939, 1939, 1940, 1940, 1940, 1941, 1941,
3807      1941, 1923, 1941, 3335, 3336, 1941, 3337, 1938, 3338, 3339,
3808      1939, 3340, 1940, 3341, 3342, 1926, 1934, 1942, 1942, 1942,
3809      1943, 1943, 1943, 1944, 1944, 1944, 3343, 1944, 3344, 3345,
3810      1944, 1945, 1945, 1945, 3346, 1942, 3348, 1943, 1951, 1951,
3811      1951, 1952, 1952, 1952, 1969, 1969, 1969, 1939, 1938, 1945,
3812
3813      1970, 1970, 1970, 3351, 3354, 1951, 1972, 1972, 1972, 1952,
3814      1974, 1974, 1974, 1975, 1975, 1975, 1980, 1980, 1980, 1982,
3815      1982, 1982, 1985, 1985, 1985, 1987, 1987, 1987, 1989, 1989,
3816      1989, 1990, 1990, 1990, 1999, 1999, 1999, 1982, 1999, 1945,
3817      1985, 1999, 1987, 2002, 2002, 2002, 1989, 3355, 1990, 2003,
3818      2003, 2003, 1952, 2008, 2008, 2008, 2009, 2009, 2009, 3347,
3819      3356, 2002, 2013, 2013, 2013, 3347, 2003, 3357, 3358, 1982,
3820      2014, 2014, 2014, 3359, 2014, 3361, 3362, 2014, 3364, 2013,
3821      2017, 2017, 2017, 2020, 2020, 2020, 3365, 1989, 3367, 2002,
3822      2021, 2021, 2021, 2022, 2022, 2022, 3368, 2022, 2017, 3371,
3823
3824      2022, 2020, 2023, 2023, 2023, 3372, 3373, 2021, 2013, 2026,
3825      2026, 2026, 3370, 2026, 3374, 3375, 2026, 2029, 2029, 2029,
3826      2023, 2030, 2030, 2030, 3376, 2030, 3370, 3378, 2030, 2035,
3827      2035, 2035, 3380, 2017, 2029, 2031, 2031, 2031, 3382, 2031,
3828      3384, 3386, 2031, 2037, 2037, 2037, 3387, 2035, 3388, 2023,
3829      2039, 2039, 2039, 2040, 2040, 2040, 3389, 2040, 3390, 3391,
3830      2040, 2041, 2041, 2041, 2042, 2042, 2042, 2039, 2043, 2043,
3831      2043, 3392, 2043, 3393, 3394, 2043, 3395, 3399, 2041, 3401,
3832      3403, 2042, 2044, 2044, 2044, 2045, 2045, 2045, 2047, 2047,
3833      2047, 3404, 2047, 3405, 3406, 2047, 2050, 2050, 2050, 3415,
3834
3835      2044, 3416, 3417, 2045, 2051, 2051, 2051, 2041, 2051, 3447,
3836      1537, 2051, 3423, 2050, 2055, 2055, 2055, 3419, 2055, 3420,
3837      3423, 2055, 2058, 2058, 2058, 2059, 2059, 2059, 3407, 2059,
3838      3421, 1536, 2059, 3431, 3421, 2044, 2060, 2060, 2060, 2058,
3839      2064, 2064, 2064, 2045, 2065, 2065, 2065, 3415, 2065, 3416,
3840      3417, 2065, 3447, 2060, 2068, 2068, 2068, 2064, 2069, 2069,
3841      2069, 3419, 2069, 3420, 3407, 2069, 2072, 2072, 2072, 2073,
3842      2073, 2073, 2068, 2073, 3431, 3439, 2073, 2074, 2074, 2074,
3843      2075, 2075, 2075, 2072, 2076, 2076, 2076, 3424, 2076, 3422,
3844      3408, 2076, 3440, 3422, 2074, 3424, 1535, 2075, 2077, 2077,
3845
3846      2077, 1534, 2079, 2079, 2079, 2068, 2079, 3439, 3498, 2079,
3847      2082, 2082, 2082, 2083, 2083, 2083, 2077, 2083, 1533, 3498,
3848      2083, 2085, 2085, 2085, 3440, 2085, 3408, 2082, 2085, 2089,
3849      2089, 2089, 2092, 2092, 2092, 2094, 2094, 2094, 2095, 2095,
3850      2095, 2097, 2097, 2097, 2099, 2099, 2099, 2089, 2099, 2077,
3851      2092, 2099, 2094, 2103, 2103, 2103, 2095, 3429, 2097, 2106,
3852      2106, 2106, 2108, 2108, 2108, 2109, 2109, 2109, 3418, 2109,
3853      3425, 2103, 2109, 2110, 2110, 2110, 3426, 2106, 3425, 2108,
3854      3459, 2111, 2111, 2111, 3426, 2111, 3427, 2097, 2111, 3432,
3855      2110, 2113, 2113, 2113, 3429, 3428, 2092, 3433, 1532, 2095,
3856
3857      2115, 2115, 2115, 2116, 2116, 2116, 2117, 2117, 2117, 2113,
3858      2118, 2118, 2118, 3434, 2118, 3430, 3418, 2118, 2115, 3443,
3859      1531, 2116, 3459, 2117, 2119, 2119, 2119, 2120, 2120, 2120,
3860      3432, 2120, 3433, 3427, 2120, 2121, 2121, 2121, 2126, 2126,
3861      2126, 2119, 3428, 2128, 2128, 2128, 3435, 2128, 3434, 2115,
3862      2128, 3445, 3430, 2121, 3443, 3441, 2126, 2113, 2131, 2131,
3863      2131, 2132, 2132, 2132, 3441, 2133, 2133, 2133, 2116, 2133,
3864      3437, 3438, 2133, 2136, 2136, 2136, 2131, 3442, 1529, 2132,
3865      2138, 2138, 2138, 1528, 2138, 3445, 3442, 2138, 2141, 2141,
3866      2141, 2136, 3435, 2146, 2146, 2146, 3455, 2147, 2147, 2147,
3867
3868      2121, 2147, 1527, 2126, 2147, 3455, 2141, 3437, 3438, 2131,
3869      2146, 2148, 2148, 2148, 2132, 2149, 2149, 2149, 2154, 2154,
3870      2154, 2155, 2155, 2155, 2156, 2156, 2156, 1526, 3436, 2148,
3871      2158, 2158, 2158, 1517, 2141, 2163, 2163, 2163, 2164, 2164,
3872      2164, 2165, 2165, 2165, 2166, 2166, 2166, 2168, 2168, 2168,
3873      2169, 2169, 2169, 2170, 2170, 2170, 2171, 2171, 2171, 2172,
3874      2172, 2172, 2173, 2173, 2173, 2175, 2175, 2175, 2178, 2178,
3875      2178, 2181, 2181, 2181, 3436, 2148, 3446, 2182, 2182, 2182,
3876      3444, 2182, 1509, 2175, 2182, 3448, 2178, 3451, 2181, 1494,
3877      2166, 2184, 2184, 2184, 2185, 2185, 2185, 2186, 2186, 2186,
3878
3879      3460, 2186, 1493, 3479, 2186, 2197, 2197, 2197, 1488, 2184,
3880      3446, 2185, 2198, 2198, 2198, 3444, 2175, 2199, 2199, 2199,
3881      3449, 2199, 3451, 2197, 2199, 2200, 2200, 2200, 3448, 2198,
3882      2205, 2205, 2205, 2206, 2206, 2206, 2207, 2207, 2207, 2208,
3883      2208, 2208, 3460, 2208, 3479, 3453, 2208, 2210, 2210, 2210,
3884      2213, 2213, 2213, 2207, 2197, 2215, 2215, 2215, 3456, 2215,
3885      3452, 1487, 2215, 3467, 3454, 2210, 3449, 3456, 2213, 2218,
3886      2218, 2218, 3467, 2221, 2221, 2221, 3465, 2221, 3453, 2206,
3887      2221, 2228, 2228, 2228, 1486, 2228, 3469, 2218, 2228, 2231,
3888      2231, 2231, 2232, 2232, 2232, 3452, 2232, 3454, 2210, 2232,
3889
3890      2234, 2234, 2234, 3457, 2234, 3465, 2231, 2234, 2237, 2237,
3891      2237, 2238, 2238, 2238, 2240, 2240, 2240, 1484, 2240, 3450,
3892      3469, 2240, 2218, 2246, 2246, 2246, 2237, 2246, 1477, 2238,
3893      2246, 2249, 2249, 2249, 2250, 2250, 2250, 3461, 2250, 3473,
3894      3457, 2250, 2254, 2254, 2254, 1476, 2254, 3473, 2249, 2254,
3895      2258, 2258, 2258, 2259, 2259, 2259, 2260, 2260, 2260, 2237,
3896      2260, 1458, 3458, 2260, 3462, 3450, 2238, 2258, 2263, 2263,
3897      2263, 2259, 2264, 2264, 2264, 3463, 2264, 3468, 3464, 2264,
3898      2265, 2265, 2265, 3461, 2265, 2263, 3468, 2265, 2268, 2268,
3899      2268, 2270, 2270, 2270, 3471, 2270, 3470, 3480, 2270, 3458,
3900
3901      2276, 2276, 2276, 2278, 2278, 2278, 2268, 2279, 2279, 2279,
3902      3462, 2279, 3463, 3475, 2279, 3464, 3466, 2259, 2276, 1453,
3903      2278, 2280, 2280, 2280, 2282, 2282, 2282, 2283, 2283, 2283,
3904      3470, 2283, 3472, 3476, 2283, 2290, 2290, 2290, 3480, 2280,
3905      3471, 2282, 2293, 2293, 2293, 3466, 2293, 3497, 3481, 2293,
3906      2300, 2300, 2300, 2290, 2268, 2296, 2296, 2296, 3477, 2296,
3907      3475, 3497, 2296, 3478, 2302, 2302, 2302, 3474, 2300, 2303,
3908      2303, 2303, 2304, 2304, 2304, 3474, 2304, 1450, 3472, 2304,
3909      3476, 2280, 2302, 3481, 2307, 2307, 2307, 2303, 2307, 1449,
3910      3489, 2307, 2310, 2310, 2310, 3477, 2311, 2311, 2311, 3489,
3911
3912      3478, 2300, 2312, 2312, 2312, 2303, 2313, 2313, 2313, 3482,
3913      2310, 3487, 2310, 2311, 2314, 2314, 2314, 1446, 3485, 2312,
3914      2315, 2315, 2315, 2313, 2317, 2317, 2317, 2318, 2318, 2318,
3915      2302, 2314, 2319, 2319, 2319, 2323, 2323, 2323, 2315, 2320,
3916      2320, 2320, 2317, 3487, 3482, 2318, 3483, 2324, 2324, 2324,
3917      2319, 2324, 1441, 2312, 2324, 3485, 3486, 2320, 2327, 2327,
3918      2327, 2328, 2328, 2328, 2329, 2329, 2329, 2330, 2330, 2330,
3919      2313, 1432, 1431, 2314, 3490, 1430, 2327, 2333, 2333, 2333,
3920      2334, 2334, 2334, 3490, 2317, 2315, 2336, 2336, 2336, 2337,
3921      2337, 2337, 3483, 3486, 2319, 2339, 2339, 2339, 2340, 2340,
3922
3923      2340, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
3924      2346, 2346, 2346, 2347, 2347, 2347, 1426, 2327, 2348, 2348,
3925      2348, 2350, 2350, 2350, 2353, 2353, 2353, 2354, 2354, 2354,
3926      1421, 2354, 3484, 1417, 2354, 2357, 2357, 2357, 3488, 2350,
3927      1409, 2353, 2358, 2358, 2358, 1404, 2360, 2360, 2360, 1403,
3928      2360, 3493, 2357, 2360, 2373, 2373, 2373, 2374, 2374, 2374,
3929      2358, 2374, 2375, 2375, 2374, 2375, 2376, 2376, 3491, 2376,
3930      3488, 1397, 2373, 2375, 2377, 2377, 2377, 2376, 3484, 1396,
3931      2375, 2378, 2378, 2378, 2376, 2382, 2382, 2382, 2384, 2384,
3932      2384, 1395, 2384, 3492, 3495, 2384, 2388, 2388, 2388, 3493,
3933
3934      3491, 2357, 2390, 2390, 2390, 2391, 2391, 2391, 2399, 2399,
3935      2399, 2404, 2404, 2404, 2388, 2373, 2405, 2405, 2405, 2390,
3936      2400, 2400, 2400, 2391, 2400, 3492, 3495, 2400, 1394, 2404,
3937      1389, 2410, 2410, 2410, 2405, 2410, 1388, 1387, 2410, 2447,
3938      2447, 2447, 2388, 2413, 2413, 2413, 2417, 2417, 2417, 3496,
3939      2418, 2418, 2418, 1386, 2418, 1372, 2391, 2418, 1371, 1370,
3940      2413, 1369, 3494, 2417, 2419, 2419, 2419, 2420, 2420, 2420,
3941      1368, 2420, 1367, 1366, 2420, 1365, 2405, 2423, 2423, 2423,
3942      1364, 3496, 2419, 2428, 2428, 2428, 2430, 2430, 2430, 2431,
3943      2431, 2431, 1354, 2431, 1353, 2423, 2431, 2434, 2434, 2434,
3944
3945      1352, 2428, 1351, 2430, 2435, 2435, 2435, 2436, 2436, 2436,
3946      3494, 2436, 1330, 1326, 2436, 2434, 2439, 2439, 2439, 1325,
3947      1324, 2435, 2440, 2440, 2440, 2445, 2445, 2445, 2449, 2449,
3948      2449, 1323, 1318, 2439, 2450, 2450, 2450, 1317, 1316, 2440,
3949      1311, 1310, 2445, 2451, 2451, 2451, 2449, 1297, 2434, 1291,
3950      2435, 2450, 2452, 2452, 2452, 2453, 2453, 2453, 2454, 2454,
3951      2454, 2451, 2455, 2455, 2455, 1287, 2455, 1286, 1285, 2455,
3952      2452, 2439, 1284, 2453, 1283, 2454, 2445, 2456, 2456, 2456,
3953      2457, 2457, 2457, 2440, 2458, 2458, 2458, 2459, 2459, 2459,
3954      1282, 1281, 2453, 1279, 2456, 1278, 1276, 2457, 2460, 2460,
3955
3956      2460, 2458, 1275, 2451, 1274, 2459, 2461, 2461, 2461, 2462,
3957      2462, 2462, 1269, 2452, 2464, 2464, 2464, 1261, 2465, 2465,
3958      2465, 2468, 2468, 2468, 2461, 1259, 1254, 2462, 2469, 2469,
3959      2469, 2457, 2464, 1252, 1243, 2458, 2465, 2470, 2470, 2470,
3960      2471, 2471, 2471, 2474, 2474, 2474, 2469, 2475, 2475, 2475,
3961      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
3962      2485, 2485, 2486, 2486, 2486, 1238, 2486, 1227, 1225, 2486,
3963      1224, 1223, 2461, 1222, 2482, 1220, 2485, 1219, 2464, 1218,
3964      2465, 2498, 2498, 2498, 2509, 2509, 2509, 2512, 2512, 2512,
3965      2515, 2515, 2515, 2517, 2517, 2517, 2518, 2518, 2518, 2498,
3966
3967      2518, 1217, 1216, 2518, 2519, 2519, 2519, 1215, 2515, 1213,
3968      2517, 2526, 2526, 2526, 2527, 2527, 2527, 2529, 2529, 2529,
3969      1212, 1211, 2519, 1210, 2531, 2531, 2531, 1209, 2526, 2537,
3970      2537, 2537, 2538, 2538, 2538, 2529, 2538, 1208, 1207, 2538,
3971      1206, 2498, 2531, 2540, 2540, 2540, 2537, 2542, 2542, 2542,
3972      1204, 2542, 1203, 1202, 2542, 1201, 2515, 2545, 2545, 2545,
3973      2540, 2547, 2547, 2547, 1200, 2551, 2551, 2551, 2553, 2553,
3974      2553, 2555, 2555, 2555, 1199, 2545, 2554, 2554, 2554, 2547,
3975      2554, 2531, 2551, 2554, 1198, 2553, 2556, 2556, 2556, 2555,
3976      2557, 2557, 2557, 1192, 2557, 1191, 1190, 2557, 2565, 2565,
3977
3978      2565, 1187, 1186, 2556, 2567, 2567, 2567, 2569, 2569, 2569,
3979      2571, 2571, 2571, 1185, 1183, 2565, 2572, 2572, 2572, 1179,
3980      2572, 1176, 1171, 2572, 1162, 2569, 1161, 2571, 2573, 2573,
3981      2573, 2574, 2574, 2574, 1158, 2575, 2575, 2575, 2576, 2576,
3982      2576, 1157, 2576, 1156, 1155, 2576, 2573, 1154, 1140, 2574,
3983      2579, 2579, 2579, 2575, 2580, 2580, 2580, 1133, 2580, 1125,
3984      1124, 2580, 2581, 2581, 2581, 1123, 1120, 2579, 2582, 2582,
3985      2582, 2583, 2583, 2583, 2585, 2585, 2585, 1117, 1114, 2581,
3986      1109, 1106, 2586, 2586, 2586, 2582, 2587, 2587, 2587, 2583,
3987      2591, 2591, 2591, 2595, 2595, 2595, 1105, 1101, 2574, 2575,
3988
3989      2586, 2596, 2596, 2596, 2587, 2600, 2600, 2600, 2591, 2601,
3990      2601, 2601, 1099, 2601, 1085, 1084, 2601, 2615, 2615, 2615,
3991      1083, 1082, 2600, 2630, 2630, 2630, 2633, 2633, 2633, 2634,
3992      2634, 2634, 2635, 2635, 2635, 2615, 2635, 1081, 1080, 2635,
3993      2638, 2638, 2638, 1079, 2633, 1078, 1077, 2587, 2641, 2641,
3994      2641, 2644, 2644, 2644, 1076, 2645, 2645, 2645, 2638, 2645,
3995      1072, 1068, 2645, 1061, 1058, 2641, 1055, 1052, 2644, 2647,
3996      2647, 2647, 2651, 2651, 2651, 1051, 1050, 2615, 2653, 2653,
3997      2653, 1046, 2653, 1045, 1044, 2653, 1041, 2647, 1040, 2651,
3998      2657, 2657, 2657, 1039, 2658, 2658, 2658, 2633, 2658, 1036,
3999
4000      1035, 2658, 2665, 2665, 2665, 1032, 1031, 2657, 2666, 2666,
4001      2666, 2667, 2667, 2667, 1027, 2667, 1026, 1023, 2667, 2665,
4002      2668, 2668, 2668, 1022, 1021, 2666, 2669, 2669, 2669, 1020,
4003      2669, 1019, 1017, 2669, 2672, 2672, 2672, 2668, 2674, 2674,
4004      2674, 1016, 2674, 1015, 1014, 2674, 2682, 2682, 2682, 2683,
4005      2683, 2683, 2672, 2683, 1013, 1012, 2683, 2684, 2684, 2684,
4006      2685, 2685, 2685, 2682, 2686, 2686, 2686, 1011, 2686, 1010,
4007      1006, 2686, 1001, 1000, 2684,  999,  996, 2685, 2689, 2689,
4008      2689, 2691, 2691, 2691, 2692, 2692, 2692, 2693, 2693, 2693,
4009       995, 2693,  994,  992, 2693,  988, 2689,  984,  983, 2691,
4010
4011       980,  977, 2692, 2696, 2696, 2696, 2697, 2697, 2697,  976,
4012      2697,  975,  974, 2697, 2698, 2698, 2698, 2699, 2699, 2699,
4013      2696, 2699,  973,  972, 2699, 2700, 2700, 2700, 2702, 2702,
4014      2702, 2698, 2707, 2707, 2707, 2708, 2708, 2708, 2712, 2712,
4015      2712,  971,  969, 2700,  968, 2692, 2702, 2691,  967, 2713,
4016      2713, 2713,  966, 2713,  965, 2712, 2713, 2731, 2731, 2731,
4017      2745, 2745, 2745, 2747, 2747, 2747, 2748, 2748, 2748, 2749,
4018      2749, 2749, 2750, 2750, 2750, 2731, 2751, 2751, 2751,  964,
4019      2747, 2752, 2752, 2752, 2748, 2752,  963,  962, 2752, 2750,
4020      2702,  961,  960, 2751, 2753, 2753, 2753,  958, 2753,  957,
4021
4022       956, 2753, 2756, 2756, 2756, 2757, 2757, 2757, 2731, 2761,
4023      2761, 2761, 2762, 2762, 2762, 2764, 2764, 2764, 2750, 2756,
4024      2763, 2763, 2763, 2757, 2763,  955, 2761, 2763, 2748, 2762,
4025       954,  953, 2764, 2766, 2766, 2766,  952, 2766,  951,  950,
4026      2766, 2777, 2777, 2777, 2778, 2778, 2778,  949, 2778,  945,
4027       944, 2778, 2779, 2779, 2779,  942, 2779,  941, 2777, 2779,
4028      2782, 2782, 2782, 2783, 2783, 2783,  940, 2783,  939,  938,
4029      2783, 2785, 2785, 2785, 2787, 2787, 2787, 2782, 2787,  934,
4030       932, 2787, 2790, 2790, 2790, 2791, 2791, 2791, 2785, 2791,
4031       931,  930, 2791, 2792, 2792, 2792, 2793, 2793, 2793, 2790,
4032
4033      2793,  929,  925, 2793, 2800, 2800, 2800, 2801, 2801, 2801,
4034      2792, 2802, 2802, 2802,  924, 2802,  920,  916, 2802, 2805,
4035      2805, 2805, 2800, 2805,  915, 2801, 2805, 2808, 2808, 2808,
4036      2811, 2811, 2811, 2813, 2813, 2813, 2814, 2814, 2814, 2817,
4037      2817, 2817,  912, 2817,  911, 2808, 2817, 2811, 2811, 2828,
4038      2828, 2828, 2837, 2837, 2837, 2800, 2851, 2851, 2851, 2852,
4039      2852, 2852, 2853, 2853, 2853,  910, 2828, 2855, 2855, 2855,
4040      2837, 2854, 2854, 2854, 2801, 2854,  909,  908, 2854, 2853,
4041      2856, 2856, 2856,  907,  906, 2855, 2857, 2857, 2857,  903,
4042      2857,  902,  901, 2857, 2862, 2862, 2862, 2856, 2859, 2859,
4043
4044      2859, 2837, 2859,  900,  897, 2859, 2863, 2863, 2863,  896,
4045      2863, 2862,  895, 2863, 2866, 2866, 2866,  892, 2855, 2867,
4046      2867, 2867,  890, 2867,  887,  886, 2867,  885, 2868, 2868,
4047      2868, 2866, 2868,  884,  883, 2868, 2871, 2871, 2871, 2872,
4048      2872, 2872,  880, 2872,  879,  878, 2872, 2882, 2882, 2882,
4049       877, 2882,  876, 2871, 2882, 2885, 2885, 2885,  873, 2885,
4050       872,  871, 2885, 2889, 2889, 2889, 2890, 2890, 2890,  870,
4051      2890,  868,  865, 2890, 2892, 2892, 2892,  864, 2892,  862,
4052      2889, 2892, 2895, 2895, 2895,  859, 2895,  857,  854, 2895,
4053      2904, 2904, 2904, 2905, 2905, 2905, 2910, 2910, 2910, 2913,
4054
4055      2913, 2913, 2914, 2914, 2914, 2915, 2915, 2915, 2904, 2915,
4056       853, 2905, 2915,  852, 2910,  851, 2913, 2913,  849, 2914,
4057      2914,  848,  847, 2915, 2916, 2916, 2916, 2917, 2917, 2917,
4058      2918, 2918, 2918, 2919, 2919, 2919, 2928, 2928, 2928, 2929,
4059      2929, 2929,  844, 2929,  843,  842, 2929, 2938, 2938, 2938,
4060      2951, 2951, 2951, 2928, 2952, 2952, 2952,  841,  840, 2905,
4061      2953, 2953, 2953,  839, 2953, 2938,  834, 2953, 2956, 2956,
4062      2956, 2957, 2957, 2957,  833, 2957,  832,  831, 2957,  830,
4063      2961, 2961, 2961,  829, 2961,  828, 2956, 2961, 2966, 2966,
4064      2966,  827, 2966,  826,  825, 2966, 2969, 2969, 2969,  824,
4065
4066      2969,  823,  821, 2969, 2972, 2972, 2972, 2981, 2981, 2981,
4067      2982, 2982, 2982, 2938, 2982,  819,  818, 2982, 2985, 2985,
4068      2985, 2972,  815,  812, 2981, 3000, 3000, 3000, 3002, 3002,
4069      3002, 3008, 3008, 3008,  809, 2985,  808, 3009, 3009, 3009,
4070       805, 3009,  804, 3000, 3009,  802, 3002,  801, 3008, 3008,
4071      3010, 3010, 3010,  797, 3010, 3009,  796, 3010, 3013, 3013,
4072      3013, 3014, 3014, 3014, 3015, 3015, 3015,  795, 3010, 3024,
4073      3024, 3024,  794, 3024,  791,  788, 3024,  787,  786, 3002,
4074      3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011, 3011,  783,
4075       782, 3011, 3033, 3033, 3033,  781, 3011, 3011, 3011, 3011,
4076
4077      3011, 3042, 3042, 3042, 3043, 3043, 3043, 3048, 3048, 3048,
4078      3033, 3049, 3049, 3049,  777, 3049,  776,  775, 3049, 3050,
4079      3050, 3050, 3043,  773, 3048, 3011, 3011, 3012, 3012, 3012,
4080      3012, 3012, 3012, 3012, 3012, 3012, 3050,  762, 3012, 3058,
4081      3058, 3058,  760, 3012, 3012, 3012, 3012, 3012, 3059, 3059,
4082      3059,  757, 3059,  756,  755, 3059, 3058, 3060, 3060, 3060,
4083      3061, 3061, 3061,  753, 3061,  752,  751, 3061, 3074, 3074,
4084      3074,  747, 3012, 3012, 3060, 3080, 3080, 3080,  746, 3080,
4085       745,  744, 3080,  741,  740,  739, 3074,  738, 3099, 3099,
4086      3099,  737,  736, 3080, 3083, 3083, 3083, 3083, 3083, 3083,
4087
4088      3083, 3083, 3083,  735,  733, 3083, 3099, 3113, 3113, 3113,
4089      3083, 3083, 3083, 3083, 3083, 3110, 3110, 3110,  730, 3110,
4090       729,  727, 3110,  725, 3113, 3114, 3114, 3114,  722, 3114,
4091       721,  715, 3114, 3138, 3138, 3138, 3150, 3150, 3150, 3083,
4092      3083, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
4093       713, 3138, 3084,  711, 3150, 3150,  708, 3084, 3084, 3084,
4094      3084, 3084, 3120, 3120, 3120,  707, 3120,  703,  702, 3120,
4095      3123, 3123, 3123,  701, 3123,  700,  697, 3123, 3167, 3167,
4096      3167, 3168, 3168, 3168,  696,  695, 3084, 3084, 3169, 3169,
4097      3169,  694, 3174, 3174, 3174, 3167, 3174,  691, 3168, 3174,
4098
4099      3179, 3179, 3179,  690,  689, 3169, 3190, 3190, 3190, 3194,
4100      3194, 3194, 3207, 3207, 3207,  688,  687, 3179, 3208, 3208,
4101      3208,  681, 3208,  680, 3190, 3208,  678, 3194,  672, 3207,
4102      3209, 3209, 3209, 3210, 3210, 3210,  671, 3210,  667,  661,
4103      3210, 3211, 3211, 3211, 3212, 3212, 3212, 3209, 3212,  660,
4104       656, 3212, 3221, 3221, 3221, 3222, 3222, 3222, 3211, 3222,
4105      3194,  649, 3222, 3231, 3231, 3231, 3243, 3243, 3243, 3221,
4106      3243,  645,  639, 3243,  635, 3246, 3246, 3246,  627, 3246,
4107       626, 3231, 3246, 3249, 3249, 3249,  625, 3249,  624,  623,
4108      3249, 3260, 3260, 3260,  619, 3260,  612,  611, 3260,  610,
4109
4110      3231, 3385, 3385, 3385, 3396, 3396, 3396,  606, 3396,  599,
4111       598, 3396, 3499, 3499, 3499, 3500, 3500, 3500,  594, 3385,
4112       588,  587, 3396,  583,  575,  574,  570,  561,  557,  549,
4113      3499,  548,  547, 3500, 3503, 3503, 3503, 3503, 3503, 3503,
4114      3503, 3503, 3503, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
4115      3504, 3504, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505,
4116      3505, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506,
4117      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3508,
4118      3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3509, 3509,
4119      3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3510, 3510,
4120
4121      3510, 3510, 3510, 3510, 3510, 3510, 3511, 3511, 3511, 3511,
4122      3511, 3511, 3511, 3511, 3511, 3512, 3512, 3512, 3512, 3512,
4123      3512, 3512, 3512, 3512, 3513, 3513, 3513, 3513, 3513, 3513,
4124      3513, 3513, 3513, 3514, 3514, 3514, 3514, 3514, 3514, 3514,
4125      3514, 3514, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
4126      3515, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516,
4127      3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3518,
4128      3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3519, 3519,
4129      3519, 3519, 3519, 3519, 3519, 3519, 3519, 3520, 3520, 3520,
4130      3520, 3520, 3520, 3520, 3520, 3520, 3521, 3521, 3521, 3521,
4131
4132      3521, 3521, 3521, 3521, 3521, 3522, 3522, 3522, 3522, 3522,
4133      3522, 3522, 3522, 3522, 3523, 3523, 3523, 3523, 3523, 3523,
4134      3523, 3523, 3523, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
4135      3524, 3524, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525,
4136      3525, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526,
4137      3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3528,
4138      3528, 3528, 3528, 3528, 3528, 3528, 3528, 3528, 3529, 3529,
4139      3529, 3529, 3529, 3529, 3529, 3529, 3529, 3530, 3530, 3530,
4140      3530, 3530, 3530, 3530, 3530, 3530, 3531, 3531, 3531, 3531,
4141      3531, 3531, 3531, 3531, 3531, 3532, 3532, 3532, 3532, 3532,
4142
4143      3532, 3532, 3532, 3532, 3533, 3533, 3533, 3533, 3533, 3533,
4144      3533, 3533, 3533, 3534, 3534, 3534, 3534, 3534, 3534, 3534,
4145      3534, 3534, 3535, 3535, 3535, 3535, 3535, 3535, 3535, 3535,
4146      3535, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536,
4147      3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3538,
4148      3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3539, 3539,
4149      3539, 3539, 3539, 3539, 3539, 3539, 3539, 3540, 3540, 3540,
4150      3540, 3540, 3540, 3540, 3540, 3540, 3541, 3541, 3541, 3541,
4151      3541, 3541, 3541, 3541, 3541, 3542, 3542, 3542, 3542, 3542,
4152      3542, 3542, 3542, 3542, 3543, 3543, 3543, 3543, 3543, 3543,
4153
4154      3543, 3543, 3543, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
4155      3544, 3544, 3545, 3545, 3545, 3545, 3545, 3545, 3545, 3545,
4156      3545, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546,
4157      3547, 3547, 3547, 3547, 3547, 3547, 3547, 3547, 3547, 3548,
4158      3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3549, 3549,
4159      3549, 3549, 3549, 3549, 3549, 3549, 3549, 3550, 3550, 3550,
4160      3550, 3550, 3550, 3550, 3550, 3550, 3551, 3551, 3551, 3551,
4161      3551, 3551, 3551, 3551, 3551, 3552, 3552, 3552, 3552, 3552,
4162      3552, 3552, 3552, 3552, 3553, 3553, 3553, 3553, 3553, 3553,
4163      3553, 3553, 3553, 3554, 3554, 3554, 3554, 3554, 3554, 3554,
4164
4165      3554, 3554, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555,
4166      3555, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556,
4167      3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3558,
4168      3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3559, 3559,
4169      3559, 3559, 3559, 3559, 3559, 3559, 3559, 3560, 3560, 3560,
4170      3560, 3560, 3560, 3560, 3560, 3560, 3561, 3561, 3561, 3561,
4171      3561, 3561, 3561, 3561, 3561, 3562, 3562, 3562, 3562, 3562,
4172      3562, 3562, 3562, 3562, 3563, 3563, 3563, 3563, 3563, 3563,
4173      3563, 3563, 3563, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
4174      3564, 3564, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565,
4175
4176      3565, 3566, 3566, 3566,  543,  537,  536, 3566, 3567, 3567,
4177      3567,  535,  531,  525, 3567, 3568, 3568, 3568,  524,  520,
4178       514, 3568, 3569, 3569, 3569,  513,  512,  511, 3569, 3570,
4179      3570, 3570,  510,  509,  508, 3570, 3571, 3571, 3571,  504,
4180       498,  497, 3571, 3572, 3572, 3572,  495,  494,  493, 3572,
4181      3573, 3573, 3573,  489,  482,  477, 3573, 3574, 3574, 3574,
4182       476,  474,  470, 3574, 3575, 3575, 3575,  464,  463,  462,
4183      3575, 3576, 3576, 3576,  458,  452,  448, 3576, 3577, 3577,
4184      3577,  441,  440,  439, 3577, 3578, 3578, 3578,  438,  434,
4185       430, 3578, 3579, 3579, 3579,  426,  424,  423, 3579, 3580,
4186
4187      3580, 3580,  422,  418,  412, 3580, 3581, 3581, 3581,  411,
4188       407,  401, 3581, 3582, 3582, 3582,  400,  396,  388, 3582,
4189      3583, 3583, 3583,  387,  386,  385, 3583, 3584, 3584, 3584,
4190       381,  372,  366, 3584, 3585, 3585, 3585,  362,  361,  357,
4191      3585, 3586, 3586, 3586,  351,  350,  349, 3586, 3587, 3587,
4192      3587,  345,  338,  336, 3587, 3588, 3588, 3588,  335,  331,
4193       328, 3588, 3589, 3589, 3589,  326,  325,  324, 3589, 3590,
4194      3590, 3590,  320,  316,  313, 3590, 3591, 3591, 3591,  309,
4195       306,  305, 3591, 3592, 3592, 3592,  297,  293,  289, 3592,
4196      3593, 3593, 3593,  288,  287,  281, 3593, 3594, 3594, 3594,
4197
4198       280,  278,  275, 3594, 3595, 3595, 3595, 3595, 3595, 3595,
4199      3595,  263, 3595, 3596, 3596, 3596,    0,    0,    0, 3596,
4200      3597,    0,    0,    0, 3597, 3598, 3598, 3598,    0,    0,
4201         0, 3598, 3599,    0,    0,    0, 3599, 3600, 3600, 3600,
4202         0,    0,    0, 3600, 3601,    0,    0,    0, 3601, 3602,
4203      3602, 3602,    0,    0,    0, 3602, 3603,    0,    0,    0,
4204      3603, 3604, 3604, 3604,    0,    0,    0, 3604, 3605,    0,
4205         0,    0, 3605, 3606, 3606, 3606,    0,    0,    0, 3606,
4206      3607,    0,    0,    0, 3607, 3608, 3608, 3608,    0,    0,
4207         0, 3608, 3609,    0,    0,    0, 3609, 3610, 3610, 3610,
4208
4209         0,    0,    0, 3610, 3611,    0,    0,    0, 3611, 3612,
4210      3612, 3612,    0,    0,    0, 3612, 3613,    0,    0,    0,
4211      3613, 3614, 3614, 3614,    0,    0,    0, 3614, 3615,    0,
4212         0,    0, 3615, 3616, 3616, 3616,    0,    0,    0, 3616,
4213      3617,    0,    0,    0, 3617, 3618, 3618, 3618,    0,    0,
4214         0, 3618, 3619,    0,    0,    0, 3619, 3620, 3620, 3620,
4215         0,    0,    0, 3620, 3621,    0,    0,    0, 3621, 3622,
4216      3622, 3622,    0,    0,    0, 3622, 3623,    0,    0,    0,
4217      3623, 3624, 3624, 3624,    0,    0,    0, 3624, 3625,    0,
4218         0,    0, 3625, 3626, 3626, 3626,    0,    0,    0, 3626,
4219
4220      3627,    0,    0,    0, 3627, 3628, 3628, 3628,    0,    0,
4221         0, 3628, 3629,    0,    0,    0, 3629, 3630, 3630, 3630,
4222         0,    0,    0, 3630, 3631,    0,    0,    0, 3631, 3632,
4223      3632, 3632,    0,    0,    0, 3632, 3633,    0,    0,    0,
4224      3633, 3634, 3634, 3634,    0,    0,    0, 3634, 3635,    0,
4225         0,    0, 3635, 3636, 3636, 3636,    0,    0,    0, 3636,
4226      3637,    0,    0,    0, 3637, 3638, 3638, 3638,    0,    0,
4227         0, 3638, 3639,    0,    0,    0, 3639, 3640, 3640, 3640,
4228         0,    0,    0, 3640, 3641,    0,    0,    0, 3641, 3642,
4229      3642, 3642,    0,    0,    0, 3642, 3643,    0,    0,    0,
4230
4231      3643, 3644, 3644, 3644,    0,    0,    0, 3644, 3645,    0,
4232         0,    0, 3645, 3646, 3646, 3646,    0,    0,    0, 3646,
4233      3647,    0,    0,    0, 3647, 3648, 3648, 3648,    0,    0,
4234         0, 3648, 3649,    0,    0,    0, 3649, 3650, 3650, 3650,
4235         0,    0,    0, 3650, 3651,    0,    0,    0, 3651, 3652,
4236      3652, 3652,    0,    0,    0, 3652, 3653,    0,    0,    0,
4237      3653, 3654, 3654, 3654, 3654, 3654, 3654, 3654, 3654, 3654,
4238      3655,    0,    0,    0,    0, 3655, 3656, 3656, 3656,    0,
4239         0,    0, 3656, 3657, 3657, 3657, 3657,    0,    0, 3657,
4240      3657, 3658, 3658, 3658,    0,    0,    0, 3658, 3659, 3659,
4241
4242      3659, 3659,    0,    0, 3659, 3659, 3660, 3660, 3660,    0,
4243         0,    0, 3660, 3661, 3661, 3661, 3661,    0,    0, 3661,
4244      3661, 3662, 3662, 3662,    0,    0,    0, 3662, 3663, 3663,
4245      3663, 3663,    0,    0, 3663, 3663, 3664, 3664, 3664,    0,
4246         0,    0, 3664, 3665, 3665, 3665, 3665,    0,    0, 3665,
4247      3665, 3666, 3666, 3666,    0,    0,    0, 3666, 3667, 3667,
4248      3667, 3667,    0,    0, 3667, 3667, 3668, 3668, 3668,    0,
4249         0,    0, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4250      3669, 3670, 3670, 3670,    0,    0,    0, 3670, 3671, 3671,
4251      3671, 3671,    0,    0, 3671, 3671, 3672, 3672, 3672,    0,
4252
4253         0,    0, 3672, 3673, 3673, 3673, 3673,    0,    0, 3673,
4254      3673, 3674, 3674, 3674,    0,    0,    0, 3674, 3675, 3675,
4255      3675, 3675,    0,    0, 3675, 3675, 3676, 3676, 3676,    0,
4256         0,    0, 3676, 3677, 3677, 3677, 3677,    0,    0, 3677,
4257      3677, 3678, 3678, 3678,    0,    0,    0, 3678, 3679, 3679,
4258      3679, 3679,    0,    0, 3679, 3679, 3680, 3680, 3680,    0,
4259         0,    0, 3680, 3681, 3681, 3681, 3681,    0,    0, 3681,
4260      3681, 3682, 3682, 3682,    0,    0,    0, 3682, 3683, 3683,
4261      3683, 3683,    0,    0, 3683, 3683, 3684, 3684, 3684, 3684,
4262         0, 3684,    0, 3684, 3685, 3685, 3685, 3685,    0,    0,
4263
4264      3685, 3685, 3686, 3686, 3686,    0,    0,    0, 3686, 3687,
4265      3687, 3687, 3687,    0,    0, 3687, 3687, 3688, 3688, 3688,
4266         0,    0,    0, 3688, 3689, 3689, 3689, 3689,    0,    0,
4267      3689, 3689, 3690, 3690, 3690,    0,    0,    0, 3690, 3691,
4268      3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692, 3692,
4269         0,    0,    0, 3692, 3693, 3693, 3693, 3693,    0,    0,
4270      3693, 3693, 3694, 3694, 3694, 3694,    0, 3694,    0, 3694,
4271      3695, 3695, 3695, 3695,    0,    0, 3695, 3695, 3696, 3696,
4272      3696, 3696,    0, 3696,    0, 3696, 3697, 3697, 3697, 3697,
4273         0,    0, 3697, 3697, 3698, 3698, 3698,    0,    0,    0,
4274
4275      3698, 3699, 3699, 3699, 3699,    0,    0, 3699, 3699, 3700,
4276      3700, 3700, 3700,    0, 3700,    0, 3700, 3701, 3701, 3701,
4277      3701,    0,    0, 3701, 3701, 3702, 3702, 3702, 3702,    0,
4278      3702,    0, 3702, 3703, 3703, 3703, 3703,    0,    0, 3703,
4279      3703, 3704, 3704, 3704,    0,    0,    0, 3704, 3705, 3705,
4280      3705, 3705,    0,    0, 3705, 3705, 3706, 3706, 3706,    0,
4281         0,    0, 3706, 3707, 3707, 3707, 3707,    0,    0, 3707,
4282      3707, 3708, 3708, 3708, 3708,    0,    0, 3708, 3708, 3709,
4283      3709, 3709,    0,    0,    0, 3709, 3710, 3710, 3710, 3710,
4284         0,    0, 3710, 3710, 3711, 3711, 3711,    0,    0,    0,
4285
4286      3711, 3712, 3712, 3712, 3712,    0,    0, 3712, 3712, 3713,
4287      3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3714,    0,
4288      3714,    0,    0, 3714, 3715, 3715, 3715,    0,    0,    0,
4289      3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717,
4290      3717, 3717, 3717,    0, 3717,    0, 3717, 3718, 3718, 3718,
4291      3718,    0,    0, 3718, 3718, 3719, 3719, 3719, 3719,    0,
4292      3719,    0, 3719, 3720, 3720, 3720, 3720,    0,    0, 3720,
4293      3720, 3721, 3721, 3721,    0,    0,    0, 3721, 3722, 3722,
4294      3722, 3722,    0,    0, 3722, 3722, 3723, 3723, 3723,    0,
4295         0,    0, 3723, 3724, 3724, 3724, 3724,    0,    0, 3724,
4296
4297      3724, 3725, 3725, 3725,    0,    0,    0, 3725, 3726, 3726,
4298      3726, 3726,    0,    0, 3726, 3726, 3727, 3727, 3727,    0,
4299         0,    0, 3727, 3728, 3728, 3728, 3728,    0,    0, 3728,
4300      3728, 3729, 3729, 3729, 3729,    0, 3729,    0, 3729, 3730,
4301      3730, 3730, 3730,    0,    0, 3730, 3730, 3731, 3731, 3731,
4302      3731,    0, 3731,    0, 3731, 3732, 3732, 3732, 3732,    0,
4303         0, 3732, 3732, 3733, 3733, 3733,    0,    0,    0, 3733,
4304      3734, 3734, 3734, 3734,    0,    0, 3734, 3734, 3735, 3735,
4305      3735,    0,    0,    0, 3735, 3736, 3736, 3736, 3736,    0,
4306         0, 3736, 3736, 3737, 3737, 3737, 3737,    0, 3737,    0,
4307
4308      3737, 3738, 3738, 3738, 3738,    0,    0, 3738, 3738, 3739,
4309      3739, 3739, 3739,    0, 3739,    0, 3739, 3740, 3740, 3740,
4310      3740,    0,    0, 3740, 3740, 3741, 3741, 3741,    0,    0,
4311         0, 3741, 3742, 3742, 3742, 3742,    0,    0, 3742, 3742,
4312      3743, 3743, 3743,    0,    0,    0, 3743, 3744, 3744, 3744,
4313      3744,    0,    0, 3744, 3744, 3745, 3745, 3745,    0,    0,
4314         0, 3745, 3746, 3746, 3746, 3746,    0,    0, 3746, 3746,
4315      3747, 3747, 3747,    0,    0,    0, 3747, 3748, 3748, 3748,
4316      3748,    0,    0, 3748, 3748, 3749, 3749, 3749,    0,    0,
4317         0, 3749, 3750, 3750, 3750, 3750,    0,    0, 3750, 3750,
4318
4319      3751, 3751, 3751,    0,    0,    0, 3751, 3752, 3752, 3752,
4320      3752,    0,    0, 3752, 3752, 3753, 3753, 3753,    0,    0,
4321         0, 3753, 3754, 3754, 3754, 3754,    0,    0, 3754, 3754,
4322      3755, 3755, 3755,    0,    0,    0, 3755, 3756, 3756, 3756,
4323      3756,    0,    0, 3756, 3756, 3757, 3757, 3757,    0,    0,
4324         0, 3757, 3758, 3758, 3758, 3758,    0,    0, 3758, 3758,
4325      3759, 3759, 3759, 3759,    0,    0, 3759, 3759, 3760, 3760,
4326      3760,    0,    0,    0, 3760, 3761, 3761, 3761, 3761,    0,
4327         0, 3761, 3761, 3762, 3762, 3762,    0,    0,    0, 3762,
4328      3763, 3763, 3763, 3763,    0,    0, 3763, 3763, 3764, 3764,
4329
4330      3764,    0,    0,    0, 3764, 3765, 3765, 3765, 3765,    0,
4331         0, 3765, 3765, 3766, 3766, 3766, 3766,    0,    0, 3766,
4332      3766, 3767, 3767, 3767,    0,    0,    0, 3767, 3768, 3768,
4333      3768, 3768,    0,    0, 3768, 3768, 3769, 3769, 3769,    0,
4334         0,    0, 3769, 3770, 3770, 3770, 3770,    0,    0, 3770,
4335      3770, 3771, 3771, 3771, 3771, 3771, 3771, 3771, 3771, 3771,
4336      3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3773,
4337      3773, 3773,    0,    0,    0, 3773, 3774, 3774, 3774, 3774,
4338         0,    0, 3774, 3774, 3775, 3775, 3775, 3775,    0,    0,
4339      3775, 3775, 3776, 3776, 3776,    0,    0,    0, 3776, 3777,
4340
4341      3777, 3777, 3777,    0,    0, 3777, 3777, 3778, 3778, 3778,
4342         0,    0,    0, 3778, 3779, 3779, 3779, 3779,    0,    0,
4343      3779, 3779, 3780, 3780, 3780,    0,    0,    0, 3780, 3781,
4344      3781, 3781, 3781,    0,    0, 3781, 3781, 3782, 3782, 3782,
4345         0,    0,    0, 3782, 3783, 3783, 3783,    0,    0,    0,
4346      3783, 3784, 3784, 3784, 3784,    0,    0, 3784, 3784, 3785,
4347      3785, 3785,    0,    0,    0, 3785, 3786, 3786, 3786, 3786,
4348         0,    0, 3786, 3786, 3787, 3787, 3787,    0,    0,    0,
4349      3787, 3788, 3788, 3788, 3788,    0,    0, 3788, 3788, 3789,
4350      3789, 3789,    0,    0,    0, 3789, 3790, 3790, 3790, 3790,
4351
4352         0,    0, 3790, 3790, 3791, 3791, 3791,    0,    0,    0,
4353      3791, 3792, 3792, 3792, 3792,    0,    0, 3792, 3792, 3793,
4354      3793, 3793, 3793,    0,    0, 3793, 3793, 3794, 3794, 3794,
4355      3794,    0,    0, 3794, 3794, 3795, 3795, 3795,    0,    0,
4356         0, 3795, 3796, 3796, 3796, 3796,    0,    0, 3796, 3796,
4357      3797, 3797, 3797, 3797,    0, 3797,    0, 3797, 3798, 3798,
4358      3798, 3798,    0,    0, 3798, 3798, 3799, 3799, 3799,    0,
4359         0,    0, 3799, 3800, 3800, 3800, 3800,    0,    0, 3800,
4360      3800, 3801, 3801, 3801,    0,    0,    0, 3801, 3802, 3802,
4361      3802, 3802,    0,    0, 3802, 3802, 3803, 3803, 3803,    0,
4362
4363         0,    0, 3803, 3804, 3804, 3804, 3804,    0,    0, 3804,
4364      3804, 3805, 3805, 3805,    0,    0,    0, 3805, 3806, 3806,
4365      3806, 3806,    0,    0, 3806, 3806, 3807, 3807, 3807,    0,
4366         0,    0, 3807, 3808, 3808, 3808, 3808,    0,    0, 3808,
4367      3808, 3809, 3809, 3809,    0,    0,    0, 3809, 3810, 3810,
4368      3810, 3810,    0,    0, 3810, 3810, 3811, 3811, 3811,    0,
4369         0,    0, 3811, 3812, 3812, 3812, 3812,    0,    0, 3812,
4370      3812, 3813, 3813, 3813, 3813,    0,    0, 3813, 3813, 3814,
4371      3814, 3814,    0,    0,    0, 3814, 3815, 3815, 3815, 3815,
4372         0,    0, 3815, 3815, 3816, 3816, 3816,    0,    0,    0,
4373
4374      3816, 3817, 3817, 3817, 3817,    0,    0, 3817, 3817, 3818,
4375      3818, 3818, 3818,    0, 3818,    0, 3818, 3819, 3819, 3819,
4376      3819,    0,    0, 3819, 3819, 3820, 3820, 3820, 3820,    0,
4377         0, 3820, 3820, 3821, 3821, 3821, 3821,    0, 3821,    0,
4378      3821, 3822, 3822, 3822, 3822,    0,    0, 3822, 3822, 3823,
4379      3823, 3823, 3823,    0, 3823,    0, 3823, 3824, 3824, 3824,
4380      3824,    0,    0, 3824, 3824, 3825, 3825, 3825, 3825, 3825,
4381      3825, 3825, 3825, 3825, 3826, 3826, 3826, 3826, 3826, 3826,
4382      3826, 3826, 3826, 3827, 3827, 3827,    0,    0,    0, 3827,
4383      3828, 3828, 3828, 3828,    0,    0, 3828, 3828, 3829, 3829,
4384
4385      3829, 3829,    0,    0, 3829, 3829, 3830, 3830, 3830,    0,
4386         0,    0, 3830, 3831, 3831, 3831, 3831,    0,    0, 3831,
4387      3831, 3832, 3832, 3832,    0,    0,    0, 3832, 3833, 3833,
4388      3833, 3833,    0,    0, 3833, 3833, 3834, 3834, 3834,    0,
4389         0,    0, 3834, 3835, 3835, 3835, 3835,    0,    0, 3835,
4390      3835, 3836, 3836, 3836,    0,    0,    0, 3836, 3837, 3837,
4391      3837,    0,    0,    0, 3837, 3838, 3838, 3838, 3838,    0,
4392         0, 3838, 3838, 3839, 3839, 3839,    0,    0,    0, 3839,
4393      3840, 3840, 3840, 3840,    0,    0, 3840, 3840, 3841, 3841,
4394      3841, 3841,    0, 3841,    0, 3841, 3842, 3842, 3842, 3842,
4395
4396         0,    0, 3842, 3842, 3843, 3843, 3843,    0,    0,    0,
4397      3843, 3844, 3844, 3844, 3844,    0,    0, 3844, 3844, 3845,
4398      3845, 3845, 3845,    0, 3845,    0, 3845, 3846, 3846, 3846,
4399      3846,    0,    0, 3846, 3846, 3847, 3847, 3847, 3847,    0,
4400         0, 3847, 3847, 3848, 3848, 3848,    0,    0,    0, 3848,
4401      3849, 3849, 3849, 3849,    0,    0, 3849, 3849, 3850, 3850,
4402      3850, 3850,    0, 3850,    0, 3850, 3851, 3851, 3851, 3851,
4403         0,    0, 3851, 3851, 3852, 3852, 3852,    0,    0,    0,
4404      3852, 3853, 3853, 3853, 3853,    0,    0, 3853, 3853, 3854,
4405      3854, 3854,    0,    0,    0, 3854, 3855, 3855, 3855, 3855,
4406
4407         0,    0, 3855, 3855, 3856, 3856, 3856,    0,    0,    0,
4408      3856, 3857, 3857, 3857, 3857,    0,    0, 3857, 3857, 3858,
4409      3858, 3858,    0,    0,    0, 3858, 3859, 3859, 3859, 3859,
4410         0,    0, 3859, 3859, 3860, 3860, 3860,    0,    0,    0,
4411      3860, 3861, 3861, 3861, 3861,    0,    0, 3861, 3861, 3862,
4412      3862, 3862, 3862,    0, 3862,    0, 3862, 3863, 3863, 3863,
4413      3863,    0,    0, 3863, 3863, 3864, 3864, 3864,    0,    0,
4414         0, 3864, 3865, 3865, 3865, 3865,    0,    0, 3865, 3865,
4415      3866, 3866, 3866, 3866,    0,    0, 3866, 3866, 3867, 3867,
4416      3867, 3867,    0, 3867,    0, 3867, 3868, 3868, 3868, 3868,
4417
4418         0,    0, 3868, 3868, 3869, 3869, 3869,    0,    0,    0,
4419      3869, 3870, 3870, 3870, 3870,    0,    0, 3870, 3870, 3871,
4420      3871, 3871, 3871,    0,    0, 3871, 3871, 3872, 3872, 3872,
4421      3872,    0,    0, 3872, 3872, 3873, 3873, 3873, 3873,    0,
4422         0, 3873, 3873, 3874, 3874, 3874, 3874,    0,    0, 3874,
4423      3874, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875,
4424      3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3877,
4425      3877, 3877, 3877,    0, 3877,    0, 3877, 3878, 3878, 3878,
4426      3878,    0,    0, 3878, 3878, 3879, 3879, 3879, 3879,    0,
4427         0, 3879, 3879, 3880, 3880, 3880,    0,    0,    0, 3880,
4428
4429      3881, 3881, 3881, 3881,    0,    0, 3881, 3881, 3882, 3882,
4430      3882,    0,    0,    0, 3882, 3883, 3883, 3883, 3883,    0,
4431         0, 3883, 3883, 3884, 3884, 3884, 3884,    0, 3884,    0,
4432      3884, 3885, 3885, 3885, 3885,    0,    0, 3885, 3885, 3886,
4433      3886, 3886, 3886,    0, 3886,    0, 3886, 3887, 3887, 3887,
4434      3887,    0, 3887,    0, 3887, 3888, 3888, 3888, 3888,    0,
4435         0, 3888, 3888, 3889, 3889, 3889,    0,    0,    0, 3889,
4436      3890, 3890, 3890, 3890,    0,    0, 3890, 3890, 3891, 3891,
4437      3891, 3891,    0,    0, 3891, 3891, 3892, 3892, 3892,    0,
4438         0,    0, 3892, 3893, 3893, 3893, 3893,    0, 3893,    0,
4439
4440      3893, 3894, 3894, 3894, 3894,    0,    0, 3894, 3894, 3895,
4441      3895, 3895, 3895,    0,    0, 3895, 3895, 3896, 3896, 3896,
4442         0,    0,    0, 3896, 3897, 3897, 3897, 3897,    0,    0,
4443      3897, 3897, 3898, 3898, 3898, 3898,    0, 3898,    0, 3898,
4444      3899, 3899, 3899, 3899,    0,    0, 3899, 3899, 3900, 3900,
4445      3900,    0,    0,    0, 3900, 3901, 3901, 3901,    0,    0,
4446         0, 3901, 3902, 3902, 3902, 3902,    0,    0, 3902, 3902,
4447      3903, 3903, 3903,    0,    0,    0, 3903, 3904, 3904, 3904,
4448      3904,    0,    0, 3904, 3904, 3905, 3905, 3905,    0,    0,
4449         0, 3905, 3906, 3906, 3906,    0,    0,    0, 3906, 3907,
4450
4451      3907, 3907, 3907,    0,    0, 3907, 3907, 3908, 3908, 3908,
4452         0,    0,    0, 3908, 3909, 3909, 3909, 3909,    0,    0,
4453      3909, 3909, 3910, 3910, 3910,    0,    0,    0, 3910, 3911,
4454      3911, 3911, 3911,    0,    0, 3911, 3911, 3912, 3912, 3912,
4455      3912,    0,    0, 3912, 3912, 3913, 3913, 3913, 3913,    0,
4456         0, 3913, 3913, 3914, 3914, 3914,    0,    0,    0, 3914,
4457      3915, 3915, 3915, 3915,    0,    0, 3915, 3915, 3916, 3916,
4458      3916, 3916,    0,    0, 3916, 3916, 3917, 3917, 3917, 3917,
4459         0,    0, 3917, 3917, 3918, 3918, 3918, 3918,    0,    0,
4460      3918, 3918, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919,
4461
4462      3919, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
4463      3921, 3921, 3921, 3921,    0,    0, 3921, 3921, 3922, 3922,
4464      3922, 3922,    0,    0, 3922, 3922, 3923, 3923, 3923,    0,
4465         0,    0, 3923, 3924, 3924, 3924,    0,    0,    0, 3924,
4466      3925, 3925, 3925, 3925,    0,    0, 3925, 3925, 3926, 3926,
4467      3926, 3926,    0,    0, 3926, 3926, 3927, 3927, 3927,    0,
4468         0,    0, 3927, 3928, 3928, 3928, 3928,    0,    0, 3928,
4469      3928, 3929, 3929, 3929,    0,    0,    0, 3929, 3930, 3930,
4470      3930, 3930,    0,    0, 3930, 3930, 3931, 3931, 3931,    0,
4471         0,    0, 3931, 3932, 3932, 3932,    0,    0,    0, 3932,
4472
4473      3933, 3933, 3933, 3933,    0,    0, 3933, 3933, 3934, 3934,
4474      3934, 3934,    0,    0, 3934, 3934, 3935, 3935, 3935,    0,
4475         0,    0, 3935, 3936, 3936, 3936, 3936,    0,    0, 3936,
4476      3936, 3937, 3937, 3937, 3937,    0,    0, 3937, 3937, 3938,
4477      3938, 3938,    0,    0,    0, 3938, 3939, 3939, 3939,    0,
4478         0,    0, 3939, 3940, 3940, 3940, 3940,    0,    0, 3940,
4479      3940, 3941, 3941, 3941,    0,    0,    0, 3941, 3942, 3942,
4480      3942, 3942,    0,    0, 3942, 3942, 3943, 3943, 3943,    0,
4481         0,    0, 3943, 3944, 3944, 3944,    0,    0,    0, 3944,
4482      3945, 3945, 3945,    0,    0,    0, 3945, 3946, 3946, 3946,
4483
4484      3946,    0,    0, 3946, 3946, 3947, 3947, 3947,    0,    0,
4485         0, 3947, 3948, 3948, 3948, 3948,    0,    0, 3948, 3948,
4486      3949, 3949, 3949, 3949,    0,    0, 3949, 3949, 3950, 3950,
4487      3950, 3950,    0,    0, 3950, 3950, 3951, 3951, 3951, 3951,
4488         0, 3951,    0, 3951, 3952, 3952, 3952, 3952,    0,    0,
4489      3952, 3952, 3953, 3953, 3953, 3953,    0,    0, 3953, 3953,
4490      3954, 3954, 3954, 3954,    0,    0, 3954, 3954, 3955, 3955,
4491      3955, 3955,    0,    0, 3955, 3955, 3956, 3956, 3956, 3956,
4492      3956, 3956, 3956, 3956, 3956, 3957, 3957, 3957, 3957, 3957,
4493      3957, 3957, 3957, 3957, 3958, 3958, 3958, 3958,    0,    0,
4494
4495      3958, 3958, 3959, 3959, 3959, 3959,    0,    0, 3959, 3959,
4496      3960, 3960, 3960,    0,    0,    0, 3960, 3961, 3961, 3961,
4497      3961,    0, 3961,    0, 3961, 3962, 3962, 3962, 3962,    0,
4498         0, 3962, 3962, 3963, 3963, 3963,    0,    0,    0, 3963,
4499      3964, 3964, 3964, 3964,    0,    0, 3964, 3964, 3965, 3965,
4500      3965, 3965,    0, 3965,    0, 3965, 3966, 3966, 3966, 3966,
4501         0,    0, 3966, 3966, 3967, 3967, 3967,    0,    0,    0,
4502      3967, 3968, 3968, 3968,    0,    0,    0, 3968, 3969, 3969,
4503      3969, 3969,    0,    0, 3969, 3969, 3970, 3970, 3970, 3970,
4504         0,    0, 3970, 3970, 3971, 3971, 3971,    0,    0,    0,
4505
4506      3971, 3972, 3972, 3972, 3972,    0,    0, 3972, 3972, 3973,
4507      3973, 3973, 3973,    0,    0, 3973, 3973, 3974, 3974, 3974,
4508         0,    0,    0, 3974, 3975, 3975, 3975,    0,    0,    0,
4509      3975, 3976, 3976, 3976, 3976,    0, 3976,    0, 3976, 3977,
4510      3977, 3977, 3977,    0,    0, 3977, 3977, 3978, 3978, 3978,
4511      3978,    0, 3978,    0, 3978, 3979, 3979, 3979,    0,    0,
4512         0, 3979, 3980, 3980, 3980,    0,    0,    0, 3980, 3981,
4513      3981, 3981, 3981,    0,    0, 3981, 3981, 3982, 3982, 3982,
4514      3982,    0, 3982,    0, 3982, 3983, 3983, 3983, 3983,    0,
4515         0, 3983, 3983, 3984, 3984, 3984, 3984,    0,    0, 3984,
4516
4517      3984, 3985, 3985, 3985, 3985,    0,    0, 3985, 3985, 3986,
4518      3986, 3986, 3986,    0, 3986,    0, 3986, 3987, 3987, 3987,
4519      3987,    0,    0, 3987, 3987, 3988, 3988, 3988, 3988,    0,
4520         0, 3988, 3988, 3989, 3989, 3989, 3989,    0,    0, 3989,
4521      3989, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990,
4522      3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3992,
4523      3992, 3992, 3992,    0,    0, 3992, 3992, 3993, 3993, 3993,
4524         0,    0,    0, 3993, 3994, 3994, 3994,    0,    0,    0,
4525      3994, 3995, 3995, 3995, 3995,    0,    0, 3995, 3995, 3996,
4526      3996, 3996,    0,    0,    0, 3996, 3997, 3997, 3997, 3997,
4527
4528         0,    0, 3997, 3997, 3998, 3998, 3998, 3998,    0,    0,
4529      3998, 3998, 3999, 3999, 3999,    0,    0,    0, 3999, 4000,
4530      4000, 4000,    0,    0,    0, 4000, 4001, 4001, 4001, 4001,
4531         0,    0, 4001, 4001, 4002, 4002, 4002,    0,    0,    0,
4532      4002, 4003, 4003, 4003,    0,    0,    0, 4003, 4004, 4004,
4533      4004,    0,    0,    0, 4004, 4005, 4005, 4005, 4005,    0,
4534         0, 4005, 4005, 4006, 4006, 4006,    0,    0,    0, 4006,
4535      4007, 4007, 4007,    0,    0,    0, 4007, 4008, 4008, 4008,
4536         0,    0,    0, 4008, 4009, 4009, 4009, 4009, 4009, 4009,
4537      4009, 4009, 4009, 4010, 4010, 4010, 4010, 4010, 4010, 4010,
4538
4539      4010, 4010, 4011, 4011, 4011, 4011, 4011, 4011, 4011, 4011,
4540      4011, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012,
4541      4013, 4013, 4013, 4013, 4013, 4013, 4013, 4013, 4013, 4014,
4542      4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 3502, 3502,
4543      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4544      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4545      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4546      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4547      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4548      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4549
4550      3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4551      3502, 3502, 3502
4552     } ;
4553
4554 /* Table of booleans, true if rule could match eol. */
4555 static yyconst flex_int32_t yy_rule_can_match_eol[596] =
4556     {   0,
4557 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
4558     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
4559     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4560     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
4561     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
4562     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4563     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
4564     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
4565     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0,
4566     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4567     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4568     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
4569     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
4570     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4571     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4572     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
4573     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1,
4574     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
4575     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
4576     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4577     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0,
4578     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
4579     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
4580     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
4581     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
4582     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
4583     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
4584     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
4585     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,
4586     0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4587
4588 static yy_state_type yy_last_accepting_state;
4589 static char *yy_last_accepting_cpos;
4590
4591 extern int surf_parse__flex_debug;
4592 int surf_parse__flex_debug = 0;
4593
4594 /* The intent behind this definition is that it'll catch
4595  * any uses of REJECT which flex missed.
4596  */
4597 #define REJECT reject_used_but_not_detected
4598 #define yymore() yymore_used_but_not_detected
4599 #define YY_MORE_ADJ 0
4600 #define YY_RESTORE_YY_MORE_OFFSET
4601 char *surf_parse_text;
4602 /* Validating XML processor for src/surf/simgrid.dtd.
4603  *
4604  * This program was generated with the FleXML XML processor generator.
4605  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4606  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4607  * (1.9.6).
4608  *
4609  * There are two, intertwined parts to this program, part A and part B.
4610  *
4611  * Part A
4612  * ------
4613  *
4614  * Some parts, here collectively called "Part A", are found in the
4615  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4616  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4617  *
4618  * You can redistribute, use, perform, display and/or modify "Part A"
4619  * provided the following two conditions hold:
4620  *
4621  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4622  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4623  *    FITNESS FOR A PARTICULAR PURPOSE.
4624  *
4625  * 2. The program distribution conditions do not in any way affect the
4626  *    distribution conditions of the FleXML system used to generate this
4627  *    file or any version of FleXML derived from that system.
4628  *
4629  * Notice that these are explicit rights granted to you for files
4630  * generated by the FleXML system.  For your rights in connection with
4631  * the FleXML system itself please consult the GNU General Public License.
4632  *
4633  * Part B
4634  * ------
4635  *
4636  * The other parts, here collectively called "Part B", and which came
4637  * from the DTD used by FleXML to generate this program, can be
4638  * distributed (or not, as the case may be) under the terms of whoever
4639  * wrote them, provided these terms respect and obey the two conditions
4640  * above under the heading "Part A".
4641  *
4642  * The author of and contributors to FleXML specifically disclaim
4643  * any copyright interest in "Part B", unless "Part B" was written
4644  * by the author of or contributors to FleXML.
4645  *
4646  */
4647
4648 /* Version strings. */
4649 const char surfxml_flexml_version[] = "1.9.6";
4650
4651 /* ANSI headers. */
4652 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4653 #include <stdio.h>
4654 #include <string.h>
4655 #include <assert.h>
4656 #include <stdarg.h>
4657 #include <ctype.h>
4658
4659 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4660 # ifndef __STRICT_ANSI__
4661 #  include <io.h>
4662 #  include <process.h>
4663 # endif
4664 #else
4665 # include <unistd.h>
4666 #endif
4667
4668 #ifndef FLEXML_INDEXSTACKSIZE
4669 #define FLEXML_INDEXSTACKSIZE 1000
4670 #endif
4671
4672 /* Generated definitions. */
4673 #define FLEXML_yylineno
4674 #ifndef FLEXML_BUFFERSTACKSIZE
4675 #define FLEXML_BUFFERSTACKSIZE 1000000
4676 #endif
4677 #define FLEXML_NEED_BUFFERLIT
4678
4679 /* XML processor api. */
4680 /* FleXML-provided data. */
4681 int surfxml_pcdata_ix;
4682 extern char *surfxml_bufferstack;
4683 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4684 AT_surfxml_platform_version AX_surfxml_platform_version;
4685 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4686 short int surfxml_platform_version_isset;
4687 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4688 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4689 short int surfxml_link___ctn_id_isset;
4690 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4691 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4692 short int surfxml_peer_availability___file_isset;
4693 AT_surfxml_storage_content AX_surfxml_storage_content;
4694 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4695 short int surfxml_storage_content_isset;
4696 AT_surfxml_route_dst AX_surfxml_route_dst;
4697 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4698 short int surfxml_route_dst_isset;
4699 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4700 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4701 short int surfxml_mount_storageId_isset;
4702 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4703 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4704 short int surfxml_bypassASroute_src_isset;
4705 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4706 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4707 short int surfxml_cluster_router___id_isset;
4708 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4709 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4710 short int surfxml_cluster_topology_isset;
4711 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4712 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4713 short int surfxml_host___link_id_isset;
4714 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4715 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4716 short int surfxml_trace___connect_trace_isset;
4717 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4718 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4719 short int surfxml_host_pstate_isset;
4720 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4721 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4722 short int surfxml_storage___type_content___type_isset;
4723 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4724 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4725 short int surfxml_model___prop_value_isset;
4726 AT_surfxml_prop_id AX_surfxml_prop_id;
4727 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4728 short int surfxml_prop_id_isset;
4729 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4730 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4731 short int surfxml_ASroute_symmetrical_isset;
4732 AT_surfxml_link_id AX_surfxml_link_id;
4733 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4734 short int surfxml_link_id_isset;
4735 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4736 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4737 short int surfxml_ASroute_gw___src_isset;
4738 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4739 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4740 short int surfxml_cabinet_radical_isset;
4741 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4742 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4743 short int surfxml_cabinet_id_isset;
4744 AT_surfxml_argument_value AX_surfxml_argument_value;
4745 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4746 short int surfxml_argument_value_isset;
4747 AT_surfxml_random_seed AX_surfxml_random_seed;
4748 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4749 short int surfxml_random_seed_isset;
4750 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4751 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4752 short int surfxml_trace_periodicity_isset;
4753 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4754 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4755 short int surfxml_cluster_state___file_isset;
4756 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4757 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4758 short int surfxml_model___prop_id_isset;
4759 AT_surfxml_host_state AX_surfxml_host_state;
4760 #define A_surfxml_host_state AX_surfxml_host_state
4761 short int surfxml_host_state_isset;
4762 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4763 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4764 short int surfxml_link_bandwidth_isset;
4765 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4766 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4767 short int surfxml_backbone_bandwidth_isset;
4768 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4769 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4770 short int surfxml_host_availability___file_isset;
4771 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4772 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4773 short int surfxml_mstorage_name_isset;
4774 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4775 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4776 short int surfxml_cluster_core_isset;
4777 AT_surfxml_trace_id AX_surfxml_trace_id;
4778 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4779 short int surfxml_trace_id_isset;
4780 AT_surfxml_process_function AX_surfxml_process_function;
4781 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4782 short int surfxml_process_function_isset;
4783 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4784 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4785 short int surfxml_backbone_id_isset;
4786 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4787 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4788 short int surfxml_host_coordinates_isset;
4789 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4790 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4791 short int surfxml_storage___type_model_isset;
4792 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4793 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4794 short int surfxml_cluster_loopback___bw_isset;
4795 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4796 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4797 short int surfxml_ASroute_gw___dst_isset;
4798 AT_surfxml_mount_name AX_surfxml_mount_name;
4799 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4800 short int surfxml_mount_name_isset;
4801 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4802 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4803 short int surfxml_trace___connect_element_isset;
4804 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4805 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4806 short int surfxml_cluster_sharing___policy_isset;
4807 AT_surfxml_random_generator AX_surfxml_random_generator;
4808 #define A_surfxml_random_generator AX_surfxml_random_generator
4809 short int surfxml_random_generator_isset;
4810 AT_surfxml_config_id AX_surfxml_config_id;
4811 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4812 short int surfxml_config_id_isset;
4813 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4814 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4815 short int surfxml_storage_typeId_isset;
4816 AT_surfxml_host_power AX_surfxml_host_power;
4817 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4818 short int surfxml_host_power_isset;
4819 AT_surfxml_process_host AX_surfxml_process_host;
4820 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4821 short int surfxml_process_host_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_trace___connect_kind AX_surfxml_trace___connect_kind;
4826 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4827 short int surfxml_trace___connect_kind_isset;
4828 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4829 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4830 short int surfxml_cluster_suffix_isset;
4831 AT_surfxml_random_radical AX_surfxml_random_radical;
4832 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4833 short int surfxml_random_radical_isset;
4834 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4835 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4836 short int surfxml_link___ctn_direction_isset;
4837 AT_surfxml_random_max AX_surfxml_random_max;
4838 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4839 short int surfxml_random_max_isset;
4840 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4841 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4842 short int surfxml_mstorage_typeId_isset;
4843 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4844 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4845 short int surfxml_cluster_loopback___lat_isset;
4846 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4847 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4848 short int surfxml_storage_attach_isset;
4849 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4850 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4851 short int surfxml_backbone_latency_isset;
4852 AT_surfxml_trace_file AX_surfxml_trace_file;
4853 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4854 short int surfxml_trace_file_isset;
4855 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4856 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4857 short int surfxml_peer_coordinates_isset;
4858 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4859 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4860 short int surfxml_cluster_bb___bw_isset;
4861 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4862 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4863 short int surfxml_link_state___file_isset;
4864 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4865 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4866 short int surfxml_link_latency___file_isset;
4867 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4868 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4869 short int surfxml_cabinet_bw_isset;
4870 AT_surfxml_prop_value AX_surfxml_prop_value;
4871 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4872 short int surfxml_prop_value_isset;
4873 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4874 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4875 short int surfxml_ASroute_src_isset;
4876 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4877 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4878 short int surfxml_ASroute_dst_isset;
4879 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4880 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4881 short int surfxml_link_sharing___policy_isset;
4882 AT_surfxml_router_id AX_surfxml_router_id;
4883 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4884 short int surfxml_router_id_isset;
4885 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4886 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4887 short int surfxml_cluster_limiter___link_isset;
4888 AT_surfxml_route_src AX_surfxml_route_src;
4889 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4890 short int surfxml_route_src_isset;
4891 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4892 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4893 short int surfxml_peer_bw___in_isset;
4894 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4895 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4896 short int surfxml_AS_routing_isset;
4897 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4898 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4899 short int surfxml_cabinet_suffix_isset;
4900 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4901 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4902 short int surfxml_cluster_radical_isset;
4903 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4904 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4905 short int surfxml_storage___type_id_isset;
4906 AT_surfxml_peer_power AX_surfxml_peer_power;
4907 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4908 short int surfxml_peer_power_isset;
4909 AT_surfxml_include_file AX_surfxml_include_file;
4910 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4911 short int surfxml_include_file_isset;
4912 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4913 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4914 short int surfxml_bypassRoute_src_isset;
4915 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4916 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4917 short int surfxml_cluster_lat_isset;
4918 AT_surfxml_link_state AX_surfxml_link_state;
4919 #define A_surfxml_link_state AX_surfxml_link_state
4920 short int surfxml_link_state_isset;
4921 AT_surfxml_host_availability AX_surfxml_host_availability;
4922 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4923 short int surfxml_host_availability_isset;
4924 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4925 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4926 short int surfxml_cabinet_power_isset;
4927 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4928 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4929 short int surfxml_cluster_bb___sharing___policy_isset;
4930 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4931 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4932 short int surfxml_cluster_availability___file_isset;
4933 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4934 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4935 short int surfxml_host___link_up_isset;
4936 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4937 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4938 short int surfxml_process_on___failure_isset;
4939 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4940 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4941 short int surfxml_link_bandwidth___file_isset;
4942 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4943 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4944 short int surfxml_cluster_topo___parameters_isset;
4945 AT_surfxml_random_min AX_surfxml_random_min;
4946 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4947 short int surfxml_random_min_isset;
4948 AT_surfxml_peer_id AX_surfxml_peer_id;
4949 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4950 short int surfxml_peer_id_isset;
4951 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4952 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4953 short int surfxml_cluster_id_isset;
4954 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4955 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4956 short int surfxml_peer_bw___out_isset;
4957 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4958 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4959 short int surfxml_bypassASroute_gw___dst_isset;
4960 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4961 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4962 short int surfxml_cluster_bb___lat_isset;
4963 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4964 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4965 short int surfxml_storage___type_size_isset;
4966 AT_surfxml_AS_id AX_surfxml_AS_id;
4967 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4968 short int surfxml_AS_id_isset;
4969 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4970 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4971 short int surfxml_storage_content___type_isset;
4972 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4973 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4974 short int surfxml_process_start___time_isset;
4975 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4976 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4977 short int surfxml_bypassASroute_dst_isset;
4978 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4979 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4980 short int surfxml_bypassRoute_dst_isset;
4981 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4982 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4983 short int surfxml_gpu_name_isset;
4984 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4985 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4986 short int surfxml_cluster_prefix_isset;
4987 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4988 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4989 short int surfxml_peer_state___file_isset;
4990 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4991 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4992 short int surfxml_process_kill___time_isset;
4993 AT_surfxml_storage_id AX_surfxml_storage_id;
4994 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4995 short int surfxml_storage_id_isset;
4996 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4997 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4998 short int surfxml_cabinet_lat_isset;
4999 AT_surfxml_random_mean AX_surfxml_random_mean;
5000 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5001 short int surfxml_random_mean_isset;
5002 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5003 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5004 short int surfxml_random_std___deviation_isset;
5005 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5006 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5007 short int surfxml_cabinet_prefix_isset;
5008 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5009 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5010 short int surfxml_peer_lat_isset;
5011 AT_surfxml_link_latency AX_surfxml_link_latency;
5012 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5013 short int surfxml_link_latency_isset;
5014 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5015 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5016 short int surfxml_host_state___file_isset;
5017 AT_surfxml_cluster_power AX_surfxml_cluster_power;
5018 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
5019 short int surfxml_cluster_power_isset;
5020 AT_surfxml_random_id AX_surfxml_random_id;
5021 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5022 short int surfxml_random_id_isset;
5023 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5024 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5025 short int surfxml_router_coordinates_isset;
5026 AT_surfxml_host_core AX_surfxml_host_core;
5027 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5028 short int surfxml_host_core_isset;
5029 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5030 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5031 short int surfxml_bypassASroute_gw___src_isset;
5032 AT_surfxml_host_id AX_surfxml_host_id;
5033 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5034 short int surfxml_host_id_isset;
5035 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5036 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5037 short int surfxml_host___link_down_isset;
5038 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5039 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5040 short int surfxml_cluster_bw_isset;
5041 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5042 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5043 short int surfxml_storage___type_content_isset;
5044
5045 /* XML state. */
5046 #ifdef FLEX_DEBUG
5047 # define ENTER(state)   debug_enter(state,#state)
5048 # define LEAVE          debug_leave()
5049 # define SET(state)     debug_set(state,#state)
5050   static void debug_enter(int, const char*);
5051   static void debug_leave(void);
5052   static void debug_set(int, const char*);
5053 #else
5054 # define ENTER(state)   (yy_push_state(state))
5055 # define LEAVE          (yy_pop_state())
5056 # define SET(state)     BEGIN(state)
5057 #endif
5058
5059 /* Generic actions. */
5060 #define SKIP    /*skip*/
5061 #define SUCCEED        CLEANUP; return 0
5062
5063 #define FAIL    return fail
5064 static int fail(const char*, ...);
5065
5066 enum {flexml_max_err_msg_size = 512};
5067 static char flexml_err_msg[flexml_max_err_msg_size];
5068 const char * surfxml_parse_err_msg()
5069 {
5070     return flexml_err_msg;
5071 }
5072 static void reset_surfxml_parse_err_msg()
5073 {
5074     flexml_err_msg[0] = '\0';
5075 }
5076
5077 /* Cleanup */
5078 static void cleanup(void);
5079 #define CLEANUP  cleanup()
5080
5081 /* Text buffer stack handling. */
5082 char *surfxml_bufferstack = NULL;
5083 static int blimit = FLEXML_BUFFERSTACKSIZE;
5084 static int bnext = 1;
5085
5086 static int *indexstack = NULL;
5087 static int ilimit = FLEXML_INDEXSTACKSIZE;
5088 static int inext = 1;
5089
5090 #define BUFFERSET(P)  (P = bnext)
5091 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5092 #define BUFFERDONE    (BUFFERPUTC('\0'))
5093
5094 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5095
5096 /* after this is called, there are at least 2 slots left in the stack */
5097 static int ck_blimit()
5098 {
5099      if (bnext >= blimit) {
5100          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5101          {
5102              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5103              assert(temp);
5104              surfxml_bufferstack = temp;
5105          }
5106      }
5107      return 0;
5108 }
5109
5110 /* after this is called, there are at least 2 slots left in the stack */
5111 static int ck_ilimit()
5112 {
5113      if (inext >= ilimit) {
5114          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5115          {
5116              int *temp = (int *) realloc(indexstack, ilimit);
5117              assert(temp);
5118              indexstack = temp;
5119          }
5120      }
5121      return 0;
5122 }
5123
5124 #ifdef FLEXML_NEED_BUFFERLIT
5125 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5126 {
5127    BUFFERSET(*pp);
5128    if (c) {
5129       const char *s = strchr(text, c), *e = strrchr(text, c);
5130       assert(s && e && s <= e);
5131       ++s;
5132       while (s < e) {
5133          if (isspace(*s)) {
5134             BUFFERPUTC(' ');
5135             do ++s; while (s < e && isspace(*s));
5136          } else
5137            BUFFERPUTC(*s++);
5138       }
5139    } else {
5140       const char *s = text;
5141       while (*s)
5142         BUFFERPUTC(*s++);
5143    }
5144    BUFFERDONE;
5145 }
5146 #endif
5147
5148 static void pushbuffer(int p)
5149 {
5150     ck_ilimit();
5151     indexstack[inext++] = p;
5152     indexstack[inext++] = bnext;
5153 }
5154
5155 static int popbuffer(void)
5156 {
5157     assert(inext >= 2);
5158     bnext = indexstack[--inext];
5159     return indexstack[--inext];
5160 }
5161
5162 /* General internal entities are `unput' back onto the input stream... */
5163 #define ENTITYTEXT(T) \
5164   { char *s = (T), *e = s+strlen(s);\
5165     while (--e >= s) { unput(*e); }}
5166
5167 /* Flex standard options. */
5168 #define YY_NO_INPUT 1
5169 /* Flex user-requested options. */
5170 /* XML character classes (currently restricted to ASCII). */
5171 /* "Common syntactic structures." */
5172 /* "Names and Tokens." */
5173 /* Miscellaneous. */
5174 /* Parser states (flex `exclusive start conditions'):
5175  *
5176  * PROLOG       the XML prolog of the document before <?xml...>
5177  * DOCTYPE      the XML prolog of the document after <?xml...>
5178  * EPILOG       after the root element
5179  * INCOMMENT    inside an XML comment <!--....-->
5180  * INPI         inside an XML PI <?...?>
5181  * VALUE1       inside a '...'-delimited literal
5182  * VALUE2       inside a "..."-delimited literal
5183  * CDATA        inside a <![CDATA[...] ]> section.
5184  * ROOT_<tag>   expect root element <tag>
5185  * AL_<tag>     inside the attribute list for <tag>
5186  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5187  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5188  */
5189
5190 /* State names. */
5191 const char* *surfxml_statenames=NULL;
5192
5193 #define INITIAL 0
5194 #define PROLOG 1
5195 #define DOCTYPE 2
5196 #define EPILOG 3
5197 #define INCOMMENT 4
5198 #define INPI 5
5199 #define VALUE1 6
5200 #define VALUE2 7
5201 #define CDATA 8
5202 #define ROOT_surfxml_platform 9
5203 #define AL_surfxml_platform 10
5204 #define S_surfxml_platform 11
5205 #define S_surfxml_platform_1 12
5206 #define S_surfxml_platform_2 13
5207 #define S_surfxml_platform_3 14
5208 #define S_surfxml_platform_4 15
5209 #define S_surfxml_platform_5 16
5210 #define S_surfxml_platform_6 17
5211 #define S_surfxml_platform_7 18
5212 #define S_surfxml_platform_8 19
5213 #define E_surfxml_platform 20
5214 #define AL_surfxml_include 21
5215 #define S_surfxml_include 22
5216 #define S_surfxml_include_1 23
5217 #define S_surfxml_include_2 24
5218 #define E_surfxml_include 25
5219 #define AL_surfxml_trace 26
5220 #define IN_trace 27
5221 #define AL_surfxml_random 28
5222 #define E_surfxml_random 29
5223 #define AL_surfxml_trace___connect 30
5224 #define E_surfxml_trace___connect 31
5225 #define AL_surfxml_AS 32
5226 #define S_surfxml_AS 33
5227 #define S_surfxml_AS_1 34
5228 #define S_surfxml_AS_2 35
5229 #define S_surfxml_AS_3 36
5230 #define S_surfxml_AS_4 37
5231 #define S_surfxml_AS_5 38
5232 #define S_surfxml_AS_6 39
5233 #define S_surfxml_AS_7 40
5234 #define S_surfxml_AS_8 41
5235 #define S_surfxml_AS_9 42
5236 #define S_surfxml_AS_10 43
5237 #define S_surfxml_AS_11 44
5238 #define S_surfxml_AS_12 45
5239 #define S_surfxml_AS_13 46
5240 #define S_surfxml_AS_14 47
5241 #define S_surfxml_AS_15 48
5242 #define S_surfxml_AS_16 49
5243 #define E_surfxml_AS 50
5244 #define AL_surfxml_storage___type 51
5245 #define S_surfxml_storage___type 52
5246 #define S_surfxml_storage___type_1 53
5247 #define S_surfxml_storage___type_2 54
5248 #define E_surfxml_storage___type 55
5249 #define AL_surfxml_mount 56
5250 #define E_surfxml_mount 57
5251 #define AL_surfxml_mstorage 58
5252 #define E_surfxml_mstorage 59
5253 #define AL_surfxml_host 60
5254 #define S_surfxml_host 61
5255 #define S_surfxml_host_1 62
5256 #define S_surfxml_host_2 63
5257 #define E_surfxml_host 64
5258 #define AL_surfxml_storage 65
5259 #define S_surfxml_storage 66
5260 #define S_surfxml_storage_1 67
5261 #define S_surfxml_storage_2 68
5262 #define E_surfxml_storage 69
5263 #define AL_surfxml_gpu 70
5264 #define E_surfxml_gpu 71
5265 #define AL_surfxml_host___link 72
5266 #define E_surfxml_host___link 73
5267 #define AL_surfxml_cluster 74
5268 #define S_surfxml_cluster 75
5269 #define S_surfxml_cluster_1 76
5270 #define S_surfxml_cluster_2 77
5271 #define E_surfxml_cluster 78
5272 #define AL_surfxml_cabinet 79
5273 #define E_surfxml_cabinet 80
5274 #define AL_surfxml_peer 81
5275 #define E_surfxml_peer 82
5276 #define AL_surfxml_router 83
5277 #define E_surfxml_router 84
5278 #define AL_surfxml_backbone 85
5279 #define E_surfxml_backbone 86
5280 #define AL_surfxml_link 87
5281 #define S_surfxml_link 88
5282 #define S_surfxml_link_1 89
5283 #define S_surfxml_link_2 90
5284 #define E_surfxml_link 91
5285 #define AL_surfxml_route 92
5286 #define S_surfxml_route 93
5287 #define S_surfxml_route_1 94
5288 #define S_surfxml_route_2 95
5289 #define E_surfxml_route 96
5290 #define AL_surfxml_ASroute 97
5291 #define S_surfxml_ASroute 98
5292 #define S_surfxml_ASroute_1 99
5293 #define S_surfxml_ASroute_2 100
5294 #define E_surfxml_ASroute 101
5295 #define AL_surfxml_link___ctn 102
5296 #define E_surfxml_link___ctn 103
5297 #define AL_surfxml_bypassRoute 104
5298 #define S_surfxml_bypassRoute 105
5299 #define S_surfxml_bypassRoute_1 106
5300 #define S_surfxml_bypassRoute_2 107
5301 #define E_surfxml_bypassRoute 108
5302 #define AL_surfxml_bypassASroute 109
5303 #define S_surfxml_bypassASroute 110
5304 #define S_surfxml_bypassASroute_1 111
5305 #define S_surfxml_bypassASroute_2 112
5306 #define E_surfxml_bypassASroute 113
5307 #define AL_surfxml_process 114
5308 #define S_surfxml_process 115
5309 #define S_surfxml_process_1 116
5310 #define S_surfxml_process_2 117
5311 #define E_surfxml_process 118
5312 #define AL_surfxml_argument 119
5313 #define E_surfxml_argument 120
5314 #define AL_surfxml_config 121
5315 #define S_surfxml_config 122
5316 #define S_surfxml_config_1 123
5317 #define S_surfxml_config_2 124
5318 #define E_surfxml_config 125
5319 #define AL_surfxml_prop 126
5320 #define E_surfxml_prop 127
5321 #define AL_surfxml_model___prop 128
5322 #define E_surfxml_model___prop 129
5323 #define IMPOSSIBLE 130
5324
5325 #ifndef YY_NO_UNISTD_H
5326 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5327  * down here because we want the user's section 1 to have been scanned first.
5328  * The user has a chance to override it with an option.
5329  */
5330 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5331 #  ifndef __STRICT_ANSI__
5332 #    include <io.h>
5333 #    include <process.h>
5334 #  endif
5335 #else
5336 #  include <unistd.h>
5337 #endif
5338 #endif
5339
5340 #ifndef YY_EXTRA_TYPE
5341 #define YY_EXTRA_TYPE void *
5342 #endif
5343
5344 static int yy_init_globals (void );
5345
5346 /* Accessor methods to globals.
5347    These are made visible to non-reentrant scanners for convenience. */
5348
5349 int surf_parse_lex_destroy (void );
5350
5351 int surf_parse_get_debug (void );
5352
5353 void surf_parse_set_debug (int debug_flag  );
5354
5355 YY_EXTRA_TYPE surf_parse_get_extra (void );
5356
5357 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5358
5359 FILE *surf_parse_get_in (void );
5360
5361 void surf_parse_set_in  (FILE * in_str  );
5362
5363 FILE *surf_parse_get_out (void );
5364
5365 void surf_parse_set_out  (FILE * out_str  );
5366
5367 yy_size_t surf_parse_get_leng (void );
5368
5369 char *surf_parse_get_text (void );
5370
5371 int surf_parse_get_lineno (void );
5372
5373 void surf_parse_set_lineno (int line_number  );
5374
5375 /* Macros after this point can all be overridden by user definitions in
5376  * section 1.
5377  */
5378
5379 #ifndef YY_SKIP_YYWRAP
5380 #ifdef __cplusplus
5381 extern "C" int surf_parse_wrap (void );
5382 #else
5383 extern int surf_parse_wrap (void );
5384 #endif
5385 #endif
5386
5387 #ifndef yytext_ptr
5388 static void yy_flex_strncpy (char *,yyconst char *,int );
5389 #endif
5390
5391 #ifdef YY_NEED_STRLEN
5392 static int yy_flex_strlen (yyconst char * );
5393 #endif
5394
5395 #ifndef YY_NO_INPUT
5396
5397 #ifdef __cplusplus
5398 static int yyinput (void );
5399 #else
5400 static int input (void );
5401 #endif
5402
5403 #endif
5404
5405         static int yy_start_stack_ptr = 0;
5406         static int yy_start_stack_depth = 0;
5407         static int *yy_start_stack = NULL;
5408
5409     static void yy_push_state (int new_state );
5410
5411     static void yy_pop_state (void );
5412
5413 /* Amount of stuff to slurp up with each read. */
5414 #ifndef YY_READ_BUF_SIZE
5415 #ifdef __ia64__
5416 /* On IA-64, the buffer size is 16k, not 8k */
5417 #define YY_READ_BUF_SIZE 16384
5418 #else
5419 #define YY_READ_BUF_SIZE 8192
5420 #endif /* __ia64__ */
5421 #endif
5422
5423 /* Copy whatever the last rule matched to the standard output. */
5424 #ifndef ECHO
5425 /* This used to be an fputs(), but since the string might contain NUL's,
5426  * we now use fwrite().
5427  */
5428 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5429 #endif
5430
5431 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5432  * is returned in "result".
5433  */
5434 #ifndef YY_INPUT
5435 #define YY_INPUT(buf,result,max_size) \
5436         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5437                 { \
5438                 int c = '*'; \
5439                 size_t n; \
5440                 for ( n = 0; n < max_size && \
5441                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5442                         buf[n] = (char) c; \
5443                 if ( c == '\n' ) \
5444                         buf[n++] = (char) c; \
5445                 if ( c == EOF && ferror( surf_parse_in ) ) \
5446                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5447                 result = n; \
5448                 } \
5449         else \
5450                 { \
5451                 errno=0; \
5452                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5453                         { \
5454                         if( errno != EINTR) \
5455                                 { \
5456                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5457                                 break; \
5458                                 } \
5459                         errno=0; \
5460                         clearerr(surf_parse_in); \
5461                         } \
5462                 }\
5463 \
5464
5465 #endif
5466
5467 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5468  * we don't want an extra ';' after the "return" because that will cause
5469  * some compilers to complain about unreachable statements.
5470  */
5471 #ifndef yyterminate
5472 #define yyterminate() return YY_NULL
5473 #endif
5474
5475 /* Number of entries by which start-condition stack grows. */
5476 #ifndef YY_START_STACK_INCR
5477 #define YY_START_STACK_INCR 25
5478 #endif
5479
5480 /* Report a fatal error. */
5481 #ifndef YY_FATAL_ERROR
5482 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5483 #endif
5484
5485 /* end tables serialization structures and prototypes */
5486
5487 /* Default declaration of generated scanner - a define so the user can
5488  * easily add parameters.
5489  */
5490 #ifndef YY_DECL
5491 #define YY_DECL_IS_OURS 1
5492
5493 extern int surf_parse_lex (void);
5494
5495 #define YY_DECL int surf_parse_lex (void)
5496 #endif /* !YY_DECL */
5497
5498 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5499  * have been set up.
5500  */
5501 #ifndef YY_USER_ACTION
5502 #define YY_USER_ACTION
5503 #endif
5504
5505 /* Code executed at the end of each rule. */
5506 #ifndef YY_BREAK
5507 #define YY_BREAK break;
5508 #endif
5509
5510 #define YY_RULE_SETUP \
5511         YY_USER_ACTION
5512
5513 /** The main scanner function which does all the work.
5514  */
5515 YY_DECL
5516 {
5517         yy_state_type yy_current_state;
5518         char *yy_cp, *yy_bp;
5519         int yy_act;
5520
5521         if ( !(yy_init) )
5522                 {
5523                 (yy_init) = 1;
5524
5525 #ifdef YY_USER_INIT
5526                 YY_USER_INIT;
5527 #endif
5528
5529                 if ( ! (yy_start) )
5530                         (yy_start) = 1; /* first start state */
5531
5532                 if ( ! surf_parse_in )
5533                         surf_parse_in = stdin;
5534
5535                 if ( ! surf_parse_out )
5536                         surf_parse_out = stdout;
5537
5538                 if ( ! YY_CURRENT_BUFFER ) {
5539                         surf_parse_ensure_buffer_stack ();
5540                         YY_CURRENT_BUFFER_LVALUE =
5541                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5542                 }
5543
5544                 surf_parse__load_buffer_state( );
5545                 }
5546
5547         {
5548
5549  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5550  SET(PROLOG);
5551  reset_surfxml_parse_err_msg();
5552  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5553  assert(surfxml_bufferstack);
5554  #ifdef FLEX_DEBUG
5555  {
5556      int i;
5557      for (i = 0; i < blimit; i++) {
5558          surfxml_bufferstack[i] = '\377';
5559      }
5560  }
5561  #endif
5562  surfxml_bufferstack[0] = '\0';
5563  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5564  assert(indexstack);
5565  indexstack[0] = 0;
5566
5567   /* FleXML_init */
5568   bnext = inext = 1;
5569   surfxml_bufferliteral('\0', &bnext, "0.0");
5570   surfxml_bufferliteral('\0', &bnext, "2147483647");
5571   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5572   surfxml_bufferliteral('\0', &bnext, "1");
5573   surfxml_bufferliteral('\0', &bnext, "1.0");
5574   surfxml_bufferliteral('\0', &bnext, "0.0");
5575   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5576   surfxml_bufferliteral('\0', &bnext, "1");
5577   surfxml_bufferliteral('\0', &bnext, "0.0");
5578   surfxml_bufferliteral('\0', &bnext, "-1.0");
5579   surfxml_bufferliteral('\0', &bnext, "-1.0");
5580   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5581   surfxml_statenames[PROLOG] = NULL;
5582   surfxml_statenames[DOCTYPE] = NULL;
5583   surfxml_statenames[EPILOG] = NULL;
5584   surfxml_statenames[INCOMMENT] = NULL;
5585   surfxml_statenames[INPI] = NULL;
5586   surfxml_statenames[VALUE1] = NULL;
5587   surfxml_statenames[VALUE2] = NULL;
5588   surfxml_statenames[CDATA] = NULL;
5589   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5590   surfxml_statenames[AL_surfxml_platform] = NULL;
5591   surfxml_statenames[S_surfxml_platform] = "platform";
5592   surfxml_statenames[S_surfxml_platform_1] = "platform";
5593   surfxml_statenames[S_surfxml_platform_2] = "platform";
5594   surfxml_statenames[S_surfxml_platform_3] = "platform";
5595   surfxml_statenames[S_surfxml_platform_4] = "platform";
5596   surfxml_statenames[S_surfxml_platform_5] = "platform";
5597   surfxml_statenames[S_surfxml_platform_6] = "platform";
5598   surfxml_statenames[S_surfxml_platform_7] = "platform";
5599   surfxml_statenames[S_surfxml_platform_8] = "platform";
5600   surfxml_statenames[E_surfxml_platform] = "platform";
5601   surfxml_statenames[AL_surfxml_include] = NULL;
5602   surfxml_statenames[S_surfxml_include] = "include";
5603   surfxml_statenames[S_surfxml_include_1] = "include";
5604   surfxml_statenames[S_surfxml_include_2] = "include";
5605   surfxml_statenames[E_surfxml_include] = "include";
5606   surfxml_statenames[AL_surfxml_trace] = NULL;
5607   surfxml_statenames[IN_trace] = "trace";
5608   surfxml_statenames[AL_surfxml_random] = NULL;
5609   surfxml_statenames[E_surfxml_random] = "random";
5610   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5611   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5612   surfxml_statenames[AL_surfxml_AS] = NULL;
5613   surfxml_statenames[S_surfxml_AS] = "AS";
5614   surfxml_statenames[S_surfxml_AS_1] = "AS";
5615   surfxml_statenames[S_surfxml_AS_2] = "AS";
5616   surfxml_statenames[S_surfxml_AS_3] = "AS";
5617   surfxml_statenames[S_surfxml_AS_4] = "AS";
5618   surfxml_statenames[S_surfxml_AS_5] = "AS";
5619   surfxml_statenames[S_surfxml_AS_6] = "AS";
5620   surfxml_statenames[S_surfxml_AS_7] = "AS";
5621   surfxml_statenames[S_surfxml_AS_8] = "AS";
5622   surfxml_statenames[S_surfxml_AS_9] = "AS";
5623   surfxml_statenames[S_surfxml_AS_10] = "AS";
5624   surfxml_statenames[S_surfxml_AS_11] = "AS";
5625   surfxml_statenames[S_surfxml_AS_12] = "AS";
5626   surfxml_statenames[S_surfxml_AS_13] = "AS";
5627   surfxml_statenames[S_surfxml_AS_14] = "AS";
5628   surfxml_statenames[S_surfxml_AS_15] = "AS";
5629   surfxml_statenames[S_surfxml_AS_16] = "AS";
5630   surfxml_statenames[E_surfxml_AS] = "AS";
5631   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5632   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5633   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5634   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5635   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5636   surfxml_statenames[AL_surfxml_mount] = NULL;
5637   surfxml_statenames[E_surfxml_mount] = "mount";
5638   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5639   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5640   surfxml_statenames[AL_surfxml_host] = NULL;
5641   surfxml_statenames[S_surfxml_host] = "host";
5642   surfxml_statenames[S_surfxml_host_1] = "host";
5643   surfxml_statenames[S_surfxml_host_2] = "host";
5644   surfxml_statenames[E_surfxml_host] = "host";
5645   surfxml_statenames[AL_surfxml_storage] = NULL;
5646   surfxml_statenames[S_surfxml_storage] = "storage";
5647   surfxml_statenames[S_surfxml_storage_1] = "storage";
5648   surfxml_statenames[S_surfxml_storage_2] = "storage";
5649   surfxml_statenames[E_surfxml_storage] = "storage";
5650   surfxml_statenames[AL_surfxml_gpu] = NULL;
5651   surfxml_statenames[E_surfxml_gpu] = "gpu";
5652   surfxml_statenames[AL_surfxml_host___link] = NULL;
5653   surfxml_statenames[E_surfxml_host___link] = "host_link";
5654   surfxml_statenames[AL_surfxml_cluster] = NULL;
5655   surfxml_statenames[S_surfxml_cluster] = "cluster";
5656   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5657   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5658   surfxml_statenames[E_surfxml_cluster] = "cluster";
5659   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5660   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5661   surfxml_statenames[AL_surfxml_peer] = NULL;
5662   surfxml_statenames[E_surfxml_peer] = "peer";
5663   surfxml_statenames[AL_surfxml_router] = NULL;
5664   surfxml_statenames[E_surfxml_router] = "router";
5665   surfxml_statenames[AL_surfxml_backbone] = NULL;
5666   surfxml_statenames[E_surfxml_backbone] = "backbone";
5667   surfxml_statenames[AL_surfxml_link] = NULL;
5668   surfxml_statenames[S_surfxml_link] = "link";
5669   surfxml_statenames[S_surfxml_link_1] = "link";
5670   surfxml_statenames[S_surfxml_link_2] = "link";
5671   surfxml_statenames[E_surfxml_link] = "link";
5672   surfxml_statenames[AL_surfxml_route] = NULL;
5673   surfxml_statenames[S_surfxml_route] = "route";
5674   surfxml_statenames[S_surfxml_route_1] = "route";
5675   surfxml_statenames[S_surfxml_route_2] = "route";
5676   surfxml_statenames[E_surfxml_route] = "route";
5677   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5678   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5679   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5680   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5681   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5682   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5683   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5684   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5685   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5686   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5687   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5688   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5689   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5690   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5691   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5692   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5693   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5694   surfxml_statenames[AL_surfxml_process] = NULL;
5695   surfxml_statenames[S_surfxml_process] = "process";
5696   surfxml_statenames[S_surfxml_process_1] = "process";
5697   surfxml_statenames[S_surfxml_process_2] = "process";
5698   surfxml_statenames[E_surfxml_process] = "process";
5699   surfxml_statenames[AL_surfxml_argument] = NULL;
5700   surfxml_statenames[E_surfxml_argument] = "argument";
5701   surfxml_statenames[AL_surfxml_config] = NULL;
5702   surfxml_statenames[S_surfxml_config] = "config";
5703   surfxml_statenames[S_surfxml_config_1] = "config";
5704   surfxml_statenames[S_surfxml_config_2] = "config";
5705   surfxml_statenames[E_surfxml_config] = "config";
5706   surfxml_statenames[AL_surfxml_prop] = NULL;
5707   surfxml_statenames[E_surfxml_prop] = "prop";
5708   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5709   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5710   }
5711
5712  /* COMMENTS and PIs: handled uniformly for efficiency. */
5713
5714         while ( 1 )             /* loops until end-of-file is reached */
5715                 {
5716                 yy_cp = (yy_c_buf_p);
5717
5718                 /* Support of surf_parse_text. */
5719                 *yy_cp = (yy_hold_char);
5720
5721                 /* yy_bp points to the position in yy_ch_buf of the start of
5722                  * the current run.
5723                  */
5724                 yy_bp = yy_cp;
5725
5726                 yy_current_state = (yy_start);
5727 yy_match:
5728                 do
5729                         {
5730                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5731                         if ( yy_accept[yy_current_state] )
5732                                 {
5733                                 (yy_last_accepting_state) = yy_current_state;
5734                                 (yy_last_accepting_cpos) = yy_cp;
5735                                 }
5736                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5737                                 {
5738                                 yy_current_state = (int) yy_def[yy_current_state];
5739                                 if ( yy_current_state >= 3503 )
5740                                         yy_c = yy_meta[(unsigned int) yy_c];
5741                                 }
5742                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5743                         ++yy_cp;
5744                         }
5745                 while ( yy_base[yy_current_state] != 12639 );
5746
5747 yy_find_action:
5748                 yy_act = yy_accept[yy_current_state];
5749                 if ( yy_act == 0 )
5750                         { /* have to back up */
5751                         yy_cp = (yy_last_accepting_cpos);
5752                         yy_current_state = (yy_last_accepting_state);
5753                         yy_act = yy_accept[yy_current_state];
5754                         }
5755
5756                 YY_DO_BEFORE_ACTION;
5757
5758                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5759                         {
5760                         yy_size_t yyl;
5761                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5762                                 if ( surf_parse_text[yyl] == '\n' )
5763
5764     surf_parse_lineno++;
5765 ;
5766                         }
5767
5768 do_action:      /* This label is used only to access EOF actions. */
5769
5770                 switch ( yy_act )
5771         { /* beginning of action switch */
5772                         case 0: /* must back up */
5773                         /* undo the effects of YY_DO_BEFORE_ACTION */
5774                         *yy_cp = (yy_hold_char);
5775                         yy_cp = (yy_last_accepting_cpos);
5776                         yy_current_state = (yy_last_accepting_state);
5777                         goto yy_find_action;
5778
5779 case 1:
5780 YY_RULE_SETUP
5781 ENTER(INCOMMENT);
5782         YY_BREAK
5783 case 2:
5784 YY_RULE_SETUP
5785 ENTER(INPI);
5786         YY_BREAK
5787
5788 case 3:
5789 YY_RULE_SETUP
5790 LEAVE;
5791         YY_BREAK
5792 case 4:
5793 case 5:
5794 case 6:
5795 /* rule 6 can match eol */
5796 YY_RULE_SETUP
5797 SKIP;
5798         YY_BREAK
5799 case YY_STATE_EOF(INCOMMENT):
5800 FAIL("EOF in comment.");
5801         YY_BREAK
5802
5803 case 7:
5804 YY_RULE_SETUP
5805 LEAVE;
5806         YY_BREAK
5807 case 8:
5808 case 9:
5809 /* rule 9 can match eol */
5810 YY_RULE_SETUP
5811 SKIP;
5812         YY_BREAK
5813 case YY_STATE_EOF(INPI):
5814 FAIL("EOF in PI (processing instruction).");
5815         YY_BREAK
5816
5817 /* SPACES: skipped uniformly */
5818 case 10:
5819 /* rule 10 can match eol */
5820 YY_RULE_SETUP
5821 SKIP;
5822         YY_BREAK
5823 /* PROLOG: determine root element and process it. */
5824
5825 case 11:
5826 /* rule 11 can match eol */
5827 YY_RULE_SETUP
5828 SET(DOCTYPE);
5829         YY_BREAK
5830 case 12:
5831 /* rule 12 can match eol */
5832 YY_RULE_SETUP
5833 FAIL("Bad declaration %s.",surf_parse_text);
5834         YY_BREAK
5835
5836 case 13:
5837 /* rule 13 can match eol */
5838 YY_RULE_SETUP
5839 SET(ROOT_surfxml_platform);
5840         YY_BREAK
5841 case 14:
5842 /* rule 14 can match eol */
5843 YY_RULE_SETUP
5844 FAIL("Bad declaration %s.",surf_parse_text);
5845         YY_BREAK
5846 case 15:
5847 YY_RULE_SETUP
5848 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5849         YY_BREAK
5850 case YY_STATE_EOF(PROLOG):
5851 case YY_STATE_EOF(DOCTYPE):
5852 FAIL("EOF in prolog.");
5853         YY_BREAK
5854
5855 /* RULES DERIVED FROM DTD. */
5856 /* <!-- Small DTD for SURF based tools. -->  */
5857 case 16:
5858 /* rule 16 can match eol */
5859 YY_RULE_SETUP
5860 FAIL("Starting tag <platform> is not allowed here.");
5861         YY_BREAK
5862 case 17:
5863 /* rule 17 can match eol */
5864 YY_RULE_SETUP
5865 {
5866   AX_surfxml_platform_version = 1;
5867   surfxml_platform_version_isset = 0;
5868   ENTER(AL_surfxml_platform); pushbuffer(0);
5869   }
5870         YY_BREAK
5871
5872 case 18:
5873 /* rule 18 can match eol */
5874 YY_RULE_SETUP
5875 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);
5876         YY_BREAK
5877 case 19:
5878 /* rule 19 can match eol */
5879 YY_RULE_SETUP
5880 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);
5881         YY_BREAK
5882 case 20:
5883 YY_RULE_SETUP
5884 {
5885   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5886  }
5887         YY_BREAK
5888 case 21:
5889 YY_RULE_SETUP
5890 {
5891   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5892   switch (YY_START) {
5893    case ROOT_surfxml_platform: SET(EPILOG); break;
5894   }
5895  }
5896         YY_BREAK
5897 case 22:
5898 YY_RULE_SETUP
5899 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5900         YY_BREAK
5901 case 23:
5902 YY_RULE_SETUP
5903 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5904         YY_BREAK
5905 case YY_STATE_EOF(AL_surfxml_platform):
5906 FAIL("EOF in attribute list of `platform' element.");
5907         YY_BREAK
5908
5909 case 24:
5910 /* rule 24 can match eol */
5911 YY_RULE_SETUP
5912 {
5913   LEAVE;
5914   ETag_surfxml_platform();
5915   popbuffer(); /* attribute */
5916   switch (YY_START) {
5917    case ROOT_surfxml_platform: SET(EPILOG); break;
5918   }
5919  }
5920         YY_BREAK
5921 case 25:
5922 /* rule 25 can match eol */
5923 YY_RULE_SETUP
5924 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5925         YY_BREAK
5926 case 26:
5927 YY_RULE_SETUP
5928 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5929         YY_BREAK
5930 case YY_STATE_EOF(S_surfxml_platform_1):
5931 case YY_STATE_EOF(E_surfxml_platform):
5932 case YY_STATE_EOF(S_surfxml_platform_3):
5933 case YY_STATE_EOF(S_surfxml_platform_8):
5934 case YY_STATE_EOF(S_surfxml_platform_4):
5935 case YY_STATE_EOF(S_surfxml_platform_6):
5936 case YY_STATE_EOF(S_surfxml_platform):
5937 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5938         YY_BREAK
5939
5940 case 27:
5941 /* rule 27 can match eol */
5942 YY_RULE_SETUP
5943 FAIL("Starting tag <include> is not allowed here.");
5944         YY_BREAK
5945 case 28:
5946 /* rule 28 can match eol */
5947 YY_RULE_SETUP
5948 {
5949   AX_surfxml_include_file = 0;
5950   surfxml_include_file_isset = 0;
5951   ENTER(AL_surfxml_include); pushbuffer(0);
5952   }
5953         YY_BREAK
5954
5955 case 29:
5956 /* rule 29 can match eol */
5957 YY_RULE_SETUP
5958 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);
5959         YY_BREAK
5960 case 30:
5961 /* rule 30 can match eol */
5962 YY_RULE_SETUP
5963 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);
5964         YY_BREAK
5965 case 31:
5966 YY_RULE_SETUP
5967 {
5968   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5969   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5970  }
5971         YY_BREAK
5972 case 32:
5973 YY_RULE_SETUP
5974 {
5975   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5976   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5977   switch (YY_START) {
5978    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5979    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
5980    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
5981    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5982   }
5983  }
5984         YY_BREAK
5985 case 33:
5986 YY_RULE_SETUP
5987 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5988         YY_BREAK
5989 case 34:
5990 YY_RULE_SETUP
5991 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5992         YY_BREAK
5993 case YY_STATE_EOF(AL_surfxml_include):
5994 FAIL("EOF in attribute list of `include' element.");
5995         YY_BREAK
5996
5997 case 35:
5998 /* rule 35 can match eol */
5999 YY_RULE_SETUP
6000 {
6001   LEAVE;
6002   ETag_surfxml_include();
6003   popbuffer(); /* attribute */
6004   switch (YY_START) {
6005    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6006    case S_surfxml_platform_3: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6007    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
6008    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6009   }
6010  }
6011         YY_BREAK
6012 case 36:
6013 /* rule 36 can match eol */
6014 YY_RULE_SETUP
6015 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
6016         YY_BREAK
6017 case 37:
6018 YY_RULE_SETUP
6019 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
6020         YY_BREAK
6021 case YY_STATE_EOF(E_surfxml_include):
6022 case YY_STATE_EOF(S_surfxml_include_2):
6023 case YY_STATE_EOF(S_surfxml_include):
6024 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
6025         YY_BREAK
6026
6027 case 38:
6028 /* rule 38 can match eol */
6029 YY_RULE_SETUP
6030 FAIL("Starting tag <trace> is not allowed here.");
6031         YY_BREAK
6032 case 39:
6033 /* rule 39 can match eol */
6034 YY_RULE_SETUP
6035 {
6036   AX_surfxml_trace_id = 0;
6037   surfxml_trace_id_isset = 0;
6038   AX_surfxml_trace_file = 0;
6039   surfxml_trace_file_isset = 0;
6040   AX_surfxml_trace_periodicity = 0;
6041   surfxml_trace_periodicity_isset = 0;
6042   ENTER(AL_surfxml_trace); pushbuffer(0);
6043   }
6044         YY_BREAK
6045
6046 case 40:
6047 /* rule 40 can match eol */
6048 YY_RULE_SETUP
6049 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);
6050         YY_BREAK
6051 case 41:
6052 /* rule 41 can match eol */
6053 YY_RULE_SETUP
6054 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);
6055         YY_BREAK
6056 case 42:
6057 /* rule 42 can match eol */
6058 YY_RULE_SETUP
6059 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);
6060         YY_BREAK
6061 case 43:
6062 /* rule 43 can match eol */
6063 YY_RULE_SETUP
6064 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);
6065         YY_BREAK
6066 case 44:
6067 /* rule 44 can match eol */
6068 YY_RULE_SETUP
6069 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);
6070         YY_BREAK
6071 case 45:
6072 /* rule 45 can match eol */
6073 YY_RULE_SETUP
6074 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);
6075         YY_BREAK
6076 case 46:
6077 YY_RULE_SETUP
6078 {
6079   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6080   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6081   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
6082  }
6083         YY_BREAK
6084 case 47:
6085 YY_RULE_SETUP
6086 {
6087   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6088   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6089   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
6090   switch (YY_START) {
6091    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6092    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6093    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6094    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6095    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6096    case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6097    case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break;
6098   }
6099  }
6100         YY_BREAK
6101 case 48:
6102 YY_RULE_SETUP
6103 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
6104         YY_BREAK
6105 case 49:
6106 YY_RULE_SETUP
6107 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
6108         YY_BREAK
6109 case YY_STATE_EOF(AL_surfxml_trace):
6110 FAIL("EOF in attribute list of `trace' element.");
6111         YY_BREAK
6112
6113 case 50:
6114 /* rule 50 can match eol */
6115 YY_RULE_SETUP
6116 {
6117   LEAVE;
6118   BUFFERDONE;
6119   ETag_surfxml_trace();
6120   surfxml_pcdata_ix = popbuffer();
6121   popbuffer(); /* attribute */
6122   switch (YY_START) {
6123    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6124    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6125    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6126    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6127    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6128    case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6129    case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_10: case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break;
6130   }
6131  }
6132         YY_BREAK
6133 case 51:
6134 /* rule 51 can match eol */
6135 YY_RULE_SETUP
6136 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6137         YY_BREAK
6138 case YY_STATE_EOF(IN_trace):
6139 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6140         YY_BREAK
6141
6142 case 52:
6143 /* rule 52 can match eol */
6144 YY_RULE_SETUP
6145 FAIL("Starting tag <random> is not allowed here.");
6146         YY_BREAK
6147 case 53:
6148 /* rule 53 can match eol */
6149 YY_RULE_SETUP
6150 {
6151   AX_surfxml_random_id = 0;
6152   surfxml_random_id_isset = 0;
6153   AX_surfxml_random_min = 0;
6154   surfxml_random_min_isset = 0;
6155   AX_surfxml_random_max = 0;
6156   surfxml_random_max_isset = 0;
6157   AX_surfxml_random_mean = 0;
6158   surfxml_random_mean_isset = 0;
6159   AX_surfxml_random_std___deviation = 0;
6160   surfxml_random_std___deviation_isset = 0;
6161   AX_surfxml_random_seed = 5;
6162   surfxml_random_seed_isset = 0;
6163   AX_surfxml_random_radical = 0;
6164   surfxml_random_radical_isset = 0;
6165   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6166   surfxml_random_generator_isset = 0;
6167   ENTER(AL_surfxml_random); pushbuffer(0);
6168   }
6169         YY_BREAK
6170
6171 case 54:
6172 /* rule 54 can match eol */
6173 YY_RULE_SETUP
6174 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);
6175         YY_BREAK
6176 case 55:
6177 /* rule 55 can match eol */
6178 YY_RULE_SETUP
6179 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);
6180         YY_BREAK
6181 case 56:
6182 /* rule 56 can match eol */
6183 YY_RULE_SETUP
6184 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);
6185         YY_BREAK
6186 case 57:
6187 /* rule 57 can match eol */
6188 YY_RULE_SETUP
6189 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);
6190         YY_BREAK
6191 case 58:
6192 /* rule 58 can match eol */
6193 YY_RULE_SETUP
6194 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);
6195         YY_BREAK
6196 case 59:
6197 /* rule 59 can match eol */
6198 YY_RULE_SETUP
6199 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);
6200         YY_BREAK
6201 case 60:
6202 /* rule 60 can match eol */
6203 YY_RULE_SETUP
6204 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);
6205         YY_BREAK
6206 case 61:
6207 /* rule 61 can match eol */
6208 YY_RULE_SETUP
6209 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);
6210         YY_BREAK
6211 case 62:
6212 /* rule 62 can match eol */
6213 YY_RULE_SETUP
6214 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);
6215         YY_BREAK
6216 case 63:
6217 /* rule 63 can match eol */
6218 YY_RULE_SETUP
6219 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);
6220         YY_BREAK
6221 case 64:
6222 /* rule 64 can match eol */
6223 YY_RULE_SETUP
6224 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);
6225         YY_BREAK
6226 case 65:
6227 /* rule 65 can match eol */
6228 YY_RULE_SETUP
6229 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);
6230         YY_BREAK
6231 case 66:
6232 /* rule 66 can match eol */
6233 YY_RULE_SETUP
6234 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);
6235         YY_BREAK
6236 case 67:
6237 /* rule 67 can match eol */
6238 YY_RULE_SETUP
6239 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);
6240         YY_BREAK
6241 case 68:
6242 /* rule 68 can match eol */
6243 case 69:
6244 /* rule 69 can match eol */
6245 YY_RULE_SETUP
6246 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6247         YY_BREAK
6248 case 70:
6249 /* rule 70 can match eol */
6250 case 71:
6251 /* rule 71 can match eol */
6252 YY_RULE_SETUP
6253 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6254         YY_BREAK
6255 case 72:
6256 /* rule 72 can match eol */
6257 case 73:
6258 /* rule 73 can match eol */
6259 YY_RULE_SETUP
6260 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6261         YY_BREAK
6262 case 74:
6263 /* rule 74 can match eol */
6264 case 75:
6265 /* rule 75 can match eol */
6266 YY_RULE_SETUP
6267 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6268         YY_BREAK
6269 case 76:
6270 YY_RULE_SETUP
6271 {
6272   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6273   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6274   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6275   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6276   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6277   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6278  }
6279         YY_BREAK
6280 case 77:
6281 YY_RULE_SETUP
6282 {
6283   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6284   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6285   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6286   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6287   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6288   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6289   switch (YY_START) {
6290    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6291   }
6292  }
6293         YY_BREAK
6294 case 78:
6295 YY_RULE_SETUP
6296 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6297         YY_BREAK
6298 case 79:
6299 YY_RULE_SETUP
6300 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6301         YY_BREAK
6302 case YY_STATE_EOF(AL_surfxml_random):
6303 FAIL("EOF in attribute list of `random' element.");
6304         YY_BREAK
6305
6306 case 80:
6307 /* rule 80 can match eol */
6308 YY_RULE_SETUP
6309 {
6310   LEAVE;
6311   ETag_surfxml_random();
6312   popbuffer(); /* attribute */
6313   switch (YY_START) {
6314    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6315   }
6316  }
6317         YY_BREAK
6318 case 81:
6319 /* rule 81 can match eol */
6320 YY_RULE_SETUP
6321 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6322         YY_BREAK
6323 case 82:
6324 YY_RULE_SETUP
6325 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6326         YY_BREAK
6327 case YY_STATE_EOF(E_surfxml_random):
6328 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6329         YY_BREAK
6330
6331 case 83:
6332 /* rule 83 can match eol */
6333 YY_RULE_SETUP
6334 FAIL("Starting tag <trace_connect> is not allowed here.");
6335         YY_BREAK
6336 case 84:
6337 /* rule 84 can match eol */
6338 YY_RULE_SETUP
6339 {
6340   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6341   surfxml_trace___connect_kind_isset = 0;
6342   AX_surfxml_trace___connect_trace = 0;
6343   surfxml_trace___connect_trace_isset = 0;
6344   AX_surfxml_trace___connect_element = 0;
6345   surfxml_trace___connect_element_isset = 0;
6346   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6347   }
6348         YY_BREAK
6349
6350 case 85:
6351 /* rule 85 can match eol */
6352 case 86:
6353 /* rule 86 can match eol */
6354 YY_RULE_SETUP
6355 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6356         YY_BREAK
6357 case 87:
6358 /* rule 87 can match eol */
6359 case 88:
6360 /* rule 88 can match eol */
6361 YY_RULE_SETUP
6362 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6363         YY_BREAK
6364 case 89:
6365 /* rule 89 can match eol */
6366 case 90:
6367 /* rule 90 can match eol */
6368 YY_RULE_SETUP
6369 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6370         YY_BREAK
6371 case 91:
6372 /* rule 91 can match eol */
6373 case 92:
6374 /* rule 92 can match eol */
6375 YY_RULE_SETUP
6376 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6377         YY_BREAK
6378 case 93:
6379 /* rule 93 can match eol */
6380 case 94:
6381 /* rule 94 can match eol */
6382 YY_RULE_SETUP
6383 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6384         YY_BREAK
6385 case 95:
6386 /* rule 95 can match eol */
6387 YY_RULE_SETUP
6388 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);
6389         YY_BREAK
6390 case 96:
6391 /* rule 96 can match eol */
6392 YY_RULE_SETUP
6393 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);
6394         YY_BREAK
6395 case 97:
6396 /* rule 97 can match eol */
6397 YY_RULE_SETUP
6398 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);
6399         YY_BREAK
6400 case 98:
6401 /* rule 98 can match eol */
6402 YY_RULE_SETUP
6403 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);
6404         YY_BREAK
6405 case 99:
6406 YY_RULE_SETUP
6407 {
6408   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6409   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6410   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6411  }
6412         YY_BREAK
6413 case 100:
6414 YY_RULE_SETUP
6415 {
6416   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6417   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6418   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6419   switch (YY_START) {
6420    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6421    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6422    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6423    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6424    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6425    case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6426    case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS: case S_surfxml_AS_10: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break;
6427   }
6428  }
6429         YY_BREAK
6430 case 101:
6431 YY_RULE_SETUP
6432 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6433         YY_BREAK
6434 case 102:
6435 YY_RULE_SETUP
6436 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6437         YY_BREAK
6438 case YY_STATE_EOF(AL_surfxml_trace___connect):
6439 FAIL("EOF in attribute list of `trace_connect' element.");
6440         YY_BREAK
6441
6442 case 103:
6443 /* rule 103 can match eol */
6444 YY_RULE_SETUP
6445 {
6446   LEAVE;
6447   ETag_surfxml_trace___connect();
6448   popbuffer(); /* attribute */
6449   switch (YY_START) {
6450    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6451    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6452    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6453    case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6454    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6455    case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6456    case S_surfxml_AS_9: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS: case S_surfxml_AS_10: case S_surfxml_AS_4: case S_surfxml_AS_11: SET(S_surfxml_AS_11); break;
6457   }
6458  }
6459         YY_BREAK
6460 case 104:
6461 /* rule 104 can match eol */
6462 YY_RULE_SETUP
6463 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6464         YY_BREAK
6465 case 105:
6466 YY_RULE_SETUP
6467 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6468         YY_BREAK
6469 case YY_STATE_EOF(E_surfxml_trace___connect):
6470 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6471         YY_BREAK
6472
6473 case 106:
6474 /* rule 106 can match eol */
6475 YY_RULE_SETUP
6476 FAIL("Starting tag <AS> is not allowed here.");
6477         YY_BREAK
6478 case 107:
6479 /* rule 107 can match eol */
6480 YY_RULE_SETUP
6481 {
6482   AX_surfxml_AS_id = 0;
6483   surfxml_AS_id_isset = 0;
6484   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6485   surfxml_AS_routing_isset = 0;
6486   ENTER(AL_surfxml_AS); pushbuffer(0);
6487   }
6488         YY_BREAK
6489
6490 case 108:
6491 /* rule 108 can match eol */
6492 YY_RULE_SETUP
6493 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);
6494         YY_BREAK
6495 case 109:
6496 /* rule 109 can match eol */
6497 YY_RULE_SETUP
6498 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);
6499         YY_BREAK
6500 case 110:
6501 /* rule 110 can match eol */
6502 case 111:
6503 /* rule 111 can match eol */
6504 YY_RULE_SETUP
6505 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6506         YY_BREAK
6507 case 112:
6508 /* rule 112 can match eol */
6509 case 113:
6510 /* rule 113 can match eol */
6511 YY_RULE_SETUP
6512 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6513         YY_BREAK
6514 case 114:
6515 /* rule 114 can match eol */
6516 case 115:
6517 /* rule 115 can match eol */
6518 YY_RULE_SETUP
6519 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6520         YY_BREAK
6521 case 116:
6522 /* rule 116 can match eol */
6523 case 117:
6524 /* rule 117 can match eol */
6525 YY_RULE_SETUP
6526 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6527         YY_BREAK
6528 case 118:
6529 /* rule 118 can match eol */
6530 case 119:
6531 /* rule 119 can match eol */
6532 YY_RULE_SETUP
6533 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6534         YY_BREAK
6535 case 120:
6536 /* rule 120 can match eol */
6537 case 121:
6538 /* rule 121 can match eol */
6539 YY_RULE_SETUP
6540 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6541         YY_BREAK
6542 case 122:
6543 /* rule 122 can match eol */
6544 case 123:
6545 /* rule 123 can match eol */
6546 YY_RULE_SETUP
6547 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6548         YY_BREAK
6549 case 124:
6550 /* rule 124 can match eol */
6551 case 125:
6552 /* rule 125 can match eol */
6553 YY_RULE_SETUP
6554 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6555         YY_BREAK
6556 case 126:
6557 /* rule 126 can match eol */
6558 case 127:
6559 /* rule 127 can match eol */
6560 YY_RULE_SETUP
6561 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___fat___tree;
6562         YY_BREAK
6563 case 128:
6564 YY_RULE_SETUP
6565 {
6566   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6567   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6568   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6569  }
6570         YY_BREAK
6571 case 129:
6572 YY_RULE_SETUP
6573 {
6574   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6575   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6576   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6577   switch (YY_START) {
6578    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6579    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6580    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6581   }
6582  }
6583         YY_BREAK
6584 case 130:
6585 YY_RULE_SETUP
6586 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6587         YY_BREAK
6588 case 131:
6589 YY_RULE_SETUP
6590 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6591         YY_BREAK
6592 case YY_STATE_EOF(AL_surfxml_AS):
6593 FAIL("EOF in attribute list of `AS' element.");
6594         YY_BREAK
6595
6596 case 132:
6597 /* rule 132 can match eol */
6598 YY_RULE_SETUP
6599 {
6600   LEAVE;
6601   ETag_surfxml_AS();
6602   popbuffer(); /* attribute */
6603   switch (YY_START) {
6604    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6605    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6606    case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6607   }
6608  }
6609         YY_BREAK
6610 case 133:
6611 /* rule 133 can match eol */
6612 YY_RULE_SETUP
6613 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6614         YY_BREAK
6615 case 134:
6616 YY_RULE_SETUP
6617 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6618         YY_BREAK
6619 case YY_STATE_EOF(S_surfxml_AS):
6620 case YY_STATE_EOF(S_surfxml_AS_12):
6621 case YY_STATE_EOF(S_surfxml_AS_4):
6622 case YY_STATE_EOF(S_surfxml_AS_7):
6623 case YY_STATE_EOF(S_surfxml_AS_14):
6624 case YY_STATE_EOF(S_surfxml_AS_9):
6625 case YY_STATE_EOF(S_surfxml_AS_6):
6626 case YY_STATE_EOF(S_surfxml_AS_11):
6627 case YY_STATE_EOF(S_surfxml_AS_3):
6628 case YY_STATE_EOF(S_surfxml_AS_16):
6629 case YY_STATE_EOF(S_surfxml_AS_1):
6630 case YY_STATE_EOF(E_surfxml_AS):
6631 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6632         YY_BREAK
6633
6634 case 135:
6635 /* rule 135 can match eol */
6636 YY_RULE_SETUP
6637 FAIL("Starting tag <storage_type> is not allowed here.");
6638         YY_BREAK
6639 case 136:
6640 /* rule 136 can match eol */
6641 YY_RULE_SETUP
6642 {
6643   AX_surfxml_storage___type_id = 0;
6644   surfxml_storage___type_id_isset = 0;
6645   AX_surfxml_storage___type_model = 0;
6646   surfxml_storage___type_model_isset = 0;
6647   AX_surfxml_storage___type_size = 0;
6648   surfxml_storage___type_size_isset = 0;
6649   AX_surfxml_storage___type_content = 0;
6650   surfxml_storage___type_content_isset = 0;
6651   AX_surfxml_storage___type_content___type = 16;
6652   surfxml_storage___type_content___type_isset = 0;
6653   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6654   }
6655         YY_BREAK
6656
6657 case 137:
6658 /* rule 137 can match eol */
6659 YY_RULE_SETUP
6660 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);
6661         YY_BREAK
6662 case 138:
6663 /* rule 138 can match eol */
6664 YY_RULE_SETUP
6665 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);
6666         YY_BREAK
6667 case 139:
6668 /* rule 139 can match eol */
6669 YY_RULE_SETUP
6670 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);
6671         YY_BREAK
6672 case 140:
6673 /* rule 140 can match eol */
6674 YY_RULE_SETUP
6675 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);
6676         YY_BREAK
6677 case 141:
6678 /* rule 141 can match eol */
6679 YY_RULE_SETUP
6680 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);
6681         YY_BREAK
6682 case 142:
6683 /* rule 142 can match eol */
6684 YY_RULE_SETUP
6685 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);
6686         YY_BREAK
6687 case 143:
6688 /* rule 143 can match eol */
6689 YY_RULE_SETUP
6690 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);
6691         YY_BREAK
6692 case 144:
6693 /* rule 144 can match eol */
6694 YY_RULE_SETUP
6695 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);
6696         YY_BREAK
6697 case 145:
6698 /* rule 145 can match eol */
6699 YY_RULE_SETUP
6700 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);
6701         YY_BREAK
6702 case 146:
6703 /* rule 146 can match eol */
6704 YY_RULE_SETUP
6705 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);
6706         YY_BREAK
6707 case 147:
6708 YY_RULE_SETUP
6709 {
6710   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6711   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6712   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6713   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6714  }
6715         YY_BREAK
6716 case 148:
6717 YY_RULE_SETUP
6718 {
6719   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6720   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6721   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6722   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6723   switch (YY_START) {
6724    case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6725    case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
6726   }
6727  }
6728         YY_BREAK
6729 case 149:
6730 YY_RULE_SETUP
6731 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6732         YY_BREAK
6733 case 150:
6734 YY_RULE_SETUP
6735 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6736         YY_BREAK
6737 case YY_STATE_EOF(AL_surfxml_storage___type):
6738 FAIL("EOF in attribute list of `storage_type' element.");
6739         YY_BREAK
6740
6741 case 151:
6742 /* rule 151 can match eol */
6743 YY_RULE_SETUP
6744 {
6745   LEAVE;
6746   ETag_surfxml_storage___type();
6747   popbuffer(); /* attribute */
6748   switch (YY_START) {
6749    case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6750    case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
6751   }
6752  }
6753         YY_BREAK
6754 case 152:
6755 /* rule 152 can match eol */
6756 YY_RULE_SETUP
6757 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6758         YY_BREAK
6759 case 153:
6760 YY_RULE_SETUP
6761 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6762         YY_BREAK
6763 case YY_STATE_EOF(S_surfxml_storage___type_2):
6764 case YY_STATE_EOF(S_surfxml_storage___type):
6765 case YY_STATE_EOF(E_surfxml_storage___type):
6766 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6767         YY_BREAK
6768
6769 case 154:
6770 /* rule 154 can match eol */
6771 YY_RULE_SETUP
6772 FAIL("Starting tag <mount> is not allowed here.");
6773         YY_BREAK
6774 case 155:
6775 /* rule 155 can match eol */
6776 YY_RULE_SETUP
6777 {
6778   AX_surfxml_mount_storageId = 0;
6779   surfxml_mount_storageId_isset = 0;
6780   AX_surfxml_mount_name = 0;
6781   surfxml_mount_name_isset = 0;
6782   ENTER(AL_surfxml_mount); pushbuffer(0);
6783   }
6784         YY_BREAK
6785
6786 case 156:
6787 /* rule 156 can match eol */
6788 YY_RULE_SETUP
6789 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);
6790         YY_BREAK
6791 case 157:
6792 /* rule 157 can match eol */
6793 YY_RULE_SETUP
6794 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);
6795         YY_BREAK
6796 case 158:
6797 /* rule 158 can match eol */
6798 YY_RULE_SETUP
6799 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);
6800         YY_BREAK
6801 case 159:
6802 /* rule 159 can match eol */
6803 YY_RULE_SETUP
6804 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);
6805         YY_BREAK
6806 case 160:
6807 YY_RULE_SETUP
6808 {
6809   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6810   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6811   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6812  }
6813         YY_BREAK
6814 case 161:
6815 YY_RULE_SETUP
6816 {
6817   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6818   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6819   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6820   switch (YY_START) {
6821    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6822   }
6823  }
6824         YY_BREAK
6825 case 162:
6826 YY_RULE_SETUP
6827 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6828         YY_BREAK
6829 case 163:
6830 YY_RULE_SETUP
6831 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6832         YY_BREAK
6833 case YY_STATE_EOF(AL_surfxml_mount):
6834 FAIL("EOF in attribute list of `mount' element.");
6835         YY_BREAK
6836
6837 case 164:
6838 /* rule 164 can match eol */
6839 YY_RULE_SETUP
6840 {
6841   LEAVE;
6842   ETag_surfxml_mount();
6843   popbuffer(); /* attribute */
6844   switch (YY_START) {
6845    case S_surfxml_host: case S_surfxml_host_2: case S_surfxml_host_1: SET(S_surfxml_host_2); break;
6846   }
6847  }
6848         YY_BREAK
6849 case 165:
6850 /* rule 165 can match eol */
6851 YY_RULE_SETUP
6852 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6853         YY_BREAK
6854 case 166:
6855 YY_RULE_SETUP
6856 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6857         YY_BREAK
6858 case YY_STATE_EOF(E_surfxml_mount):
6859 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6860         YY_BREAK
6861
6862 case 167:
6863 /* rule 167 can match eol */
6864 YY_RULE_SETUP
6865 FAIL("Starting tag <mstorage> is not allowed here.");
6866         YY_BREAK
6867 case 168:
6868 /* rule 168 can match eol */
6869 YY_RULE_SETUP
6870 {
6871   AX_surfxml_mstorage_typeId = 0;
6872   surfxml_mstorage_typeId_isset = 0;
6873   AX_surfxml_mstorage_name = 0;
6874   surfxml_mstorage_name_isset = 0;
6875   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6876   }
6877         YY_BREAK
6878
6879 case 169:
6880 /* rule 169 can match eol */
6881 YY_RULE_SETUP
6882 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);
6883         YY_BREAK
6884 case 170:
6885 /* rule 170 can match eol */
6886 YY_RULE_SETUP
6887 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);
6888         YY_BREAK
6889 case 171:
6890 /* rule 171 can match eol */
6891 YY_RULE_SETUP
6892 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);
6893         YY_BREAK
6894 case 172:
6895 /* rule 172 can match eol */
6896 YY_RULE_SETUP
6897 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);
6898         YY_BREAK
6899 case 173:
6900 YY_RULE_SETUP
6901 {
6902   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6903   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6904   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6905  }
6906         YY_BREAK
6907 case 174:
6908 YY_RULE_SETUP
6909 {
6910   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6911   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6912   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6913   switch (YY_START) {
6914    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
6915   }
6916  }
6917         YY_BREAK
6918 case 175:
6919 YY_RULE_SETUP
6920 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6921         YY_BREAK
6922 case 176:
6923 YY_RULE_SETUP
6924 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6925         YY_BREAK
6926 case YY_STATE_EOF(AL_surfxml_mstorage):
6927 FAIL("EOF in attribute list of `mstorage' element.");
6928         YY_BREAK
6929
6930 case 177:
6931 /* rule 177 can match eol */
6932 YY_RULE_SETUP
6933 {
6934   LEAVE;
6935   ETag_surfxml_mstorage();
6936   popbuffer(); /* attribute */
6937   switch (YY_START) {
6938    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
6939   }
6940  }
6941         YY_BREAK
6942 case 178:
6943 /* rule 178 can match eol */
6944 YY_RULE_SETUP
6945 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6946         YY_BREAK
6947 case 179:
6948 YY_RULE_SETUP
6949 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6950         YY_BREAK
6951 case YY_STATE_EOF(E_surfxml_mstorage):
6952 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6953         YY_BREAK
6954
6955 case 180:
6956 /* rule 180 can match eol */
6957 YY_RULE_SETUP
6958 FAIL("Starting tag <host> is not allowed here.");
6959         YY_BREAK
6960 case 181:
6961 /* rule 181 can match eol */
6962 YY_RULE_SETUP
6963 {
6964   AX_surfxml_host_id = 0;
6965   surfxml_host_id_isset = 0;
6966   AX_surfxml_host_power = 0;
6967   surfxml_host_power_isset = 0;
6968   AX_surfxml_host_core = 25;
6969   surfxml_host_core_isset = 0;
6970   AX_surfxml_host_availability = 27;
6971   surfxml_host_availability_isset = 0;
6972   AX_surfxml_host_availability___file = 0;
6973   surfxml_host_availability___file_isset = 0;
6974   AX_surfxml_host_state = A_surfxml_host_state_ON;
6975   surfxml_host_state_isset = 0;
6976   AX_surfxml_host_state___file = 0;
6977   surfxml_host_state___file_isset = 0;
6978   AX_surfxml_host_coordinates = 0;
6979   surfxml_host_coordinates_isset = 0;
6980   AX_surfxml_host_pstate = 31;
6981   surfxml_host_pstate_isset = 0;
6982   ENTER(AL_surfxml_host); pushbuffer(0);
6983   }
6984         YY_BREAK
6985
6986 case 182:
6987 /* rule 182 can match eol */
6988 YY_RULE_SETUP
6989 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);
6990         YY_BREAK
6991 case 183:
6992 /* rule 183 can match eol */
6993 YY_RULE_SETUP
6994 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);
6995         YY_BREAK
6996 case 184:
6997 /* rule 184 can match eol */
6998 YY_RULE_SETUP
6999 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
7000         YY_BREAK
7001 case 185:
7002 /* rule 185 can match eol */
7003 YY_RULE_SETUP
7004 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
7005         YY_BREAK
7006 case 186:
7007 /* rule 186 can match eol */
7008 YY_RULE_SETUP
7009 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);
7010         YY_BREAK
7011 case 187:
7012 /* rule 187 can match eol */
7013 YY_RULE_SETUP
7014 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);
7015         YY_BREAK
7016 case 188:
7017 /* rule 188 can match eol */
7018 YY_RULE_SETUP
7019 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
7020         YY_BREAK
7021 case 189:
7022 /* rule 189 can match eol */
7023 YY_RULE_SETUP
7024 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
7025         YY_BREAK
7026 case 190:
7027 /* rule 190 can match eol */
7028 YY_RULE_SETUP
7029 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);
7030         YY_BREAK
7031 case 191:
7032 /* rule 191 can match eol */
7033 YY_RULE_SETUP
7034 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);
7035         YY_BREAK
7036 case 192:
7037 /* rule 192 can match eol */
7038 case 193:
7039 /* rule 193 can match eol */
7040 YY_RULE_SETUP
7041 A_surfxml_host_state = A_surfxml_host_state_ON;
7042         YY_BREAK
7043 case 194:
7044 /* rule 194 can match eol */
7045 case 195:
7046 /* rule 195 can match eol */
7047 YY_RULE_SETUP
7048 A_surfxml_host_state = A_surfxml_host_state_OFF;
7049         YY_BREAK
7050 case 196:
7051 /* rule 196 can match eol */
7052 YY_RULE_SETUP
7053 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);
7054         YY_BREAK
7055 case 197:
7056 /* rule 197 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(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
7059         YY_BREAK
7060 case 198:
7061 /* rule 198 can match eol */
7062 YY_RULE_SETUP
7063 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);
7064         YY_BREAK
7065 case 199:
7066 /* rule 199 can match eol */
7067 YY_RULE_SETUP
7068 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);
7069         YY_BREAK
7070 case 200:
7071 /* rule 200 can match eol */
7072 YY_RULE_SETUP
7073 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);
7074         YY_BREAK
7075 case 201:
7076 /* rule 201 can match eol */
7077 YY_RULE_SETUP
7078 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);
7079         YY_BREAK
7080 case 202:
7081 YY_RULE_SETUP
7082 {
7083   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7084   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7085   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7086  }
7087         YY_BREAK
7088 case 203:
7089 YY_RULE_SETUP
7090 {
7091   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7092   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7093   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7094   switch (YY_START) {
7095    case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7096   }
7097  }
7098         YY_BREAK
7099 case 204:
7100 YY_RULE_SETUP
7101 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7102         YY_BREAK
7103 case 205:
7104 YY_RULE_SETUP
7105 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7106         YY_BREAK
7107 case YY_STATE_EOF(AL_surfxml_host):
7108 FAIL("EOF in attribute list of `host' element.");
7109         YY_BREAK
7110
7111 case 206:
7112 /* rule 206 can match eol */
7113 YY_RULE_SETUP
7114 {
7115   LEAVE;
7116   ETag_surfxml_host();
7117   popbuffer(); /* attribute */
7118   switch (YY_START) {
7119    case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7120   }
7121  }
7122         YY_BREAK
7123 case 207:
7124 /* rule 207 can match eol */
7125 YY_RULE_SETUP
7126 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7127         YY_BREAK
7128 case 208:
7129 YY_RULE_SETUP
7130 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7131         YY_BREAK
7132 case YY_STATE_EOF(S_surfxml_host):
7133 case YY_STATE_EOF(E_surfxml_host):
7134 case YY_STATE_EOF(S_surfxml_host_2):
7135 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7136         YY_BREAK
7137
7138 case 209:
7139 /* rule 209 can match eol */
7140 YY_RULE_SETUP
7141 FAIL("Starting tag <storage> is not allowed here.");
7142         YY_BREAK
7143 case 210:
7144 /* rule 210 can match eol */
7145 YY_RULE_SETUP
7146 {
7147   AX_surfxml_storage_id = 0;
7148   surfxml_storage_id_isset = 0;
7149   AX_surfxml_storage_typeId = 0;
7150   surfxml_storage_typeId_isset = 0;
7151   AX_surfxml_storage_content = 0;
7152   surfxml_storage_content_isset = 0;
7153   AX_surfxml_storage_content___type = 35;
7154   surfxml_storage_content___type_isset = 0;
7155   AX_surfxml_storage_attach = 0;
7156   surfxml_storage_attach_isset = 0;
7157   ENTER(AL_surfxml_storage); pushbuffer(0);
7158   }
7159         YY_BREAK
7160
7161 case 211:
7162 /* rule 211 can match eol */
7163 YY_RULE_SETUP
7164 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);
7165         YY_BREAK
7166 case 212:
7167 /* rule 212 can match eol */
7168 YY_RULE_SETUP
7169 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);
7170         YY_BREAK
7171 case 213:
7172 /* rule 213 can match eol */
7173 YY_RULE_SETUP
7174 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);
7175         YY_BREAK
7176 case 214:
7177 /* rule 214 can match eol */
7178 YY_RULE_SETUP
7179 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);
7180         YY_BREAK
7181 case 215:
7182 /* rule 215 can match eol */
7183 YY_RULE_SETUP
7184 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);
7185         YY_BREAK
7186 case 216:
7187 /* rule 216 can match eol */
7188 YY_RULE_SETUP
7189 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);
7190         YY_BREAK
7191 case 217:
7192 /* rule 217 can match eol */
7193 YY_RULE_SETUP
7194 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);
7195         YY_BREAK
7196 case 218:
7197 /* rule 218 can match eol */
7198 YY_RULE_SETUP
7199 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);
7200         YY_BREAK
7201 case 219:
7202 /* rule 219 can match eol */
7203 YY_RULE_SETUP
7204 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);
7205         YY_BREAK
7206 case 220:
7207 /* rule 220 can match eol */
7208 YY_RULE_SETUP
7209 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);
7210         YY_BREAK
7211 case 221:
7212 YY_RULE_SETUP
7213 {
7214   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7215   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7216   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7217   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
7218  }
7219         YY_BREAK
7220 case 222:
7221 YY_RULE_SETUP
7222 {
7223   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7224   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7225   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7226   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
7227   switch (YY_START) {
7228    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7229    case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7230   }
7231  }
7232         YY_BREAK
7233 case 223:
7234 YY_RULE_SETUP
7235 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
7236         YY_BREAK
7237 case 224:
7238 YY_RULE_SETUP
7239 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
7240         YY_BREAK
7241 case YY_STATE_EOF(AL_surfxml_storage):
7242 FAIL("EOF in attribute list of `storage' element.");
7243         YY_BREAK
7244
7245 case 225:
7246 /* rule 225 can match eol */
7247 YY_RULE_SETUP
7248 {
7249   LEAVE;
7250   ETag_surfxml_storage();
7251   popbuffer(); /* attribute */
7252   switch (YY_START) {
7253    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7254    case S_surfxml_AS_1: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7255   }
7256  }
7257         YY_BREAK
7258 case 226:
7259 /* rule 226 can match eol */
7260 YY_RULE_SETUP
7261 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
7262         YY_BREAK
7263 case 227:
7264 YY_RULE_SETUP
7265 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
7266         YY_BREAK
7267 case YY_STATE_EOF(E_surfxml_storage):
7268 case YY_STATE_EOF(S_surfxml_storage_2):
7269 case YY_STATE_EOF(S_surfxml_storage):
7270 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
7271         YY_BREAK
7272
7273 case 228:
7274 /* rule 228 can match eol */
7275 YY_RULE_SETUP
7276 FAIL("Starting tag <gpu> is not allowed here.");
7277         YY_BREAK
7278 case 229:
7279 /* rule 229 can match eol */
7280 YY_RULE_SETUP
7281 {
7282   AX_surfxml_gpu_name = 0;
7283   surfxml_gpu_name_isset = 0;
7284   ENTER(AL_surfxml_gpu); pushbuffer(0);
7285   }
7286         YY_BREAK
7287
7288 case 230:
7289 /* rule 230 can match eol */
7290 YY_RULE_SETUP
7291 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
7292         YY_BREAK
7293 case 231:
7294 /* rule 231 can match eol */
7295 YY_RULE_SETUP
7296 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
7297         YY_BREAK
7298 case 232:
7299 YY_RULE_SETUP
7300 {
7301   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7302   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7303  }
7304         YY_BREAK
7305 case 233:
7306 YY_RULE_SETUP
7307 {
7308   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7309   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7310   switch (YY_START) {
7311    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7312   }
7313  }
7314         YY_BREAK
7315 case 234:
7316 YY_RULE_SETUP
7317 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7318         YY_BREAK
7319 case 235:
7320 YY_RULE_SETUP
7321 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7322         YY_BREAK
7323 case YY_STATE_EOF(AL_surfxml_gpu):
7324 FAIL("EOF in attribute list of `gpu' element.");
7325         YY_BREAK
7326
7327 case 236:
7328 /* rule 236 can match eol */
7329 YY_RULE_SETUP
7330 {
7331   LEAVE;
7332   ETag_surfxml_gpu();
7333   popbuffer(); /* attribute */
7334   switch (YY_START) {
7335    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7336   }
7337  }
7338         YY_BREAK
7339 case 237:
7340 /* rule 237 can match eol */
7341 YY_RULE_SETUP
7342 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7343         YY_BREAK
7344 case 238:
7345 YY_RULE_SETUP
7346 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7347         YY_BREAK
7348 case YY_STATE_EOF(E_surfxml_gpu):
7349 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7350         YY_BREAK
7351
7352 case 239:
7353 /* rule 239 can match eol */
7354 YY_RULE_SETUP
7355 FAIL("Starting tag <host_link> is not allowed here.");
7356         YY_BREAK
7357 case 240:
7358 /* rule 240 can match eol */
7359 YY_RULE_SETUP
7360 {
7361   AX_surfxml_host___link_id = 0;
7362   surfxml_host___link_id_isset = 0;
7363   AX_surfxml_host___link_up = 0;
7364   surfxml_host___link_up_isset = 0;
7365   AX_surfxml_host___link_down = 0;
7366   surfxml_host___link_down_isset = 0;
7367   ENTER(AL_surfxml_host___link); pushbuffer(0);
7368   }
7369         YY_BREAK
7370
7371 case 241:
7372 /* rule 241 can match eol */
7373 YY_RULE_SETUP
7374 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);
7375         YY_BREAK
7376 case 242:
7377 /* rule 242 can match eol */
7378 YY_RULE_SETUP
7379 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);
7380         YY_BREAK
7381 case 243:
7382 /* rule 243 can match eol */
7383 YY_RULE_SETUP
7384 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);
7385         YY_BREAK
7386 case 244:
7387 /* rule 244 can match eol */
7388 YY_RULE_SETUP
7389 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);
7390         YY_BREAK
7391 case 245:
7392 /* rule 245 can match eol */
7393 YY_RULE_SETUP
7394 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);
7395         YY_BREAK
7396 case 246:
7397 /* rule 246 can match eol */
7398 YY_RULE_SETUP
7399 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);
7400         YY_BREAK
7401 case 247:
7402 YY_RULE_SETUP
7403 {
7404   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7405   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7406   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7407   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7408  }
7409         YY_BREAK
7410 case 248:
7411 YY_RULE_SETUP
7412 {
7413   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7414   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7415   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7416   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7417   switch (YY_START) {
7418    case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7419   }
7420  }
7421         YY_BREAK
7422 case 249:
7423 YY_RULE_SETUP
7424 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7425         YY_BREAK
7426 case 250:
7427 YY_RULE_SETUP
7428 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7429         YY_BREAK
7430 case YY_STATE_EOF(AL_surfxml_host___link):
7431 FAIL("EOF in attribute list of `host_link' element.");
7432         YY_BREAK
7433
7434 case 251:
7435 /* rule 251 can match eol */
7436 YY_RULE_SETUP
7437 {
7438   LEAVE;
7439   ETag_surfxml_host___link();
7440   popbuffer(); /* attribute */
7441   switch (YY_START) {
7442    case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
7443   }
7444  }
7445         YY_BREAK
7446 case 252:
7447 /* rule 252 can match eol */
7448 YY_RULE_SETUP
7449 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7450         YY_BREAK
7451 case 253:
7452 YY_RULE_SETUP
7453 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7454         YY_BREAK
7455 case YY_STATE_EOF(E_surfxml_host___link):
7456 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7457         YY_BREAK
7458
7459 case 254:
7460 /* rule 254 can match eol */
7461 YY_RULE_SETUP
7462 FAIL("Starting tag <cluster> is not allowed here.");
7463         YY_BREAK
7464 case 255:
7465 /* rule 255 can match eol */
7466 YY_RULE_SETUP
7467 {
7468   AX_surfxml_cluster_id = 0;
7469   surfxml_cluster_id_isset = 0;
7470   AX_surfxml_cluster_prefix = 0;
7471   surfxml_cluster_prefix_isset = 0;
7472   AX_surfxml_cluster_suffix = 0;
7473   surfxml_cluster_suffix_isset = 0;
7474   AX_surfxml_cluster_radical = 0;
7475   surfxml_cluster_radical_isset = 0;
7476   AX_surfxml_cluster_power = 0;
7477   surfxml_cluster_power_isset = 0;
7478   AX_surfxml_cluster_core = 44;
7479   surfxml_cluster_core_isset = 0;
7480   AX_surfxml_cluster_bw = 0;
7481   surfxml_cluster_bw_isset = 0;
7482   AX_surfxml_cluster_lat = 0;
7483   surfxml_cluster_lat_isset = 0;
7484   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7485   surfxml_cluster_sharing___policy_isset = 0;
7486   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7487   surfxml_cluster_topology_isset = 0;
7488   AX_surfxml_cluster_topo___parameters = 0;
7489   surfxml_cluster_topo___parameters_isset = 0;
7490   AX_surfxml_cluster_bb___bw = 0;
7491   surfxml_cluster_bb___bw_isset = 0;
7492   AX_surfxml_cluster_bb___lat = 0;
7493   surfxml_cluster_bb___lat_isset = 0;
7494   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7495   surfxml_cluster_bb___sharing___policy_isset = 0;
7496   AX_surfxml_cluster_availability___file = 0;
7497   surfxml_cluster_availability___file_isset = 0;
7498   AX_surfxml_cluster_state___file = 0;
7499   surfxml_cluster_state___file_isset = 0;
7500   AX_surfxml_cluster_router___id = 0;
7501   surfxml_cluster_router___id_isset = 0;
7502   AX_surfxml_cluster_limiter___link = 0;
7503   surfxml_cluster_limiter___link_isset = 0;
7504   AX_surfxml_cluster_loopback___bw = 0;
7505   surfxml_cluster_loopback___bw_isset = 0;
7506   AX_surfxml_cluster_loopback___lat = 0;
7507   surfxml_cluster_loopback___lat_isset = 0;
7508   ENTER(AL_surfxml_cluster); pushbuffer(0);
7509   }
7510         YY_BREAK
7511
7512 case 256:
7513 /* rule 256 can match eol */
7514 YY_RULE_SETUP
7515 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);
7516         YY_BREAK
7517 case 257:
7518 /* rule 257 can match eol */
7519 YY_RULE_SETUP
7520 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);
7521         YY_BREAK
7522 case 258:
7523 /* rule 258 can match eol */
7524 YY_RULE_SETUP
7525 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);
7526         YY_BREAK
7527 case 259:
7528 /* rule 259 can match eol */
7529 YY_RULE_SETUP
7530 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);
7531         YY_BREAK
7532 case 260:
7533 /* rule 260 can match eol */
7534 YY_RULE_SETUP
7535 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);
7536         YY_BREAK
7537 case 261:
7538 /* rule 261 can match eol */
7539 YY_RULE_SETUP
7540 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);
7541         YY_BREAK
7542 case 262:
7543 /* rule 262 can match eol */
7544 YY_RULE_SETUP
7545 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);
7546         YY_BREAK
7547 case 263:
7548 /* rule 263 can match eol */
7549 YY_RULE_SETUP
7550 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);
7551         YY_BREAK
7552 case 264:
7553 /* rule 264 can match eol */
7554 YY_RULE_SETUP
7555 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7556         YY_BREAK
7557 case 265:
7558 /* rule 265 can match eol */
7559 YY_RULE_SETUP
7560 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7561         YY_BREAK
7562 case 266:
7563 /* rule 266 can match eol */
7564 YY_RULE_SETUP
7565 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);
7566         YY_BREAK
7567 case 267:
7568 /* rule 267 can match eol */
7569 YY_RULE_SETUP
7570 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);
7571         YY_BREAK
7572 case 268:
7573 /* rule 268 can match eol */
7574 YY_RULE_SETUP
7575 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);
7576         YY_BREAK
7577 case 269:
7578 /* rule 269 can match eol */
7579 YY_RULE_SETUP
7580 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);
7581         YY_BREAK
7582 case 270:
7583 /* rule 270 can match eol */
7584 YY_RULE_SETUP
7585 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);
7586         YY_BREAK
7587 case 271:
7588 /* rule 271 can match eol */
7589 YY_RULE_SETUP
7590 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);
7591         YY_BREAK
7592 case 272:
7593 /* rule 272 can match eol */
7594 case 273:
7595 /* rule 273 can match eol */
7596 YY_RULE_SETUP
7597 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7598         YY_BREAK
7599 case 274:
7600 /* rule 274 can match eol */
7601 case 275:
7602 /* rule 275 can match eol */
7603 YY_RULE_SETUP
7604 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7605         YY_BREAK
7606 case 276:
7607 /* rule 276 can match eol */
7608 case 277:
7609 /* rule 277 can match eol */
7610 YY_RULE_SETUP
7611 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7612         YY_BREAK
7613 case 278:
7614 /* rule 278 can match eol */
7615 case 279:
7616 /* rule 279 can match eol */
7617 YY_RULE_SETUP
7618 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7619         YY_BREAK
7620 case 280:
7621 /* rule 280 can match eol */
7622 case 281:
7623 /* rule 281 can match eol */
7624 YY_RULE_SETUP
7625 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7626         YY_BREAK
7627 case 282:
7628 /* rule 282 can match eol */
7629 case 283:
7630 /* rule 283 can match eol */
7631 YY_RULE_SETUP
7632 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
7633         YY_BREAK
7634 case 284:
7635 /* rule 284 can match eol */
7636 YY_RULE_SETUP
7637 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);
7638         YY_BREAK
7639 case 285:
7640 /* rule 285 can match eol */
7641 YY_RULE_SETUP
7642 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);
7643         YY_BREAK
7644 case 286:
7645 /* rule 286 can match eol */
7646 YY_RULE_SETUP
7647 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);
7648         YY_BREAK
7649 case 287:
7650 /* rule 287 can match eol */
7651 YY_RULE_SETUP
7652 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);
7653         YY_BREAK
7654 case 288:
7655 /* rule 288 can match eol */
7656 YY_RULE_SETUP
7657 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);
7658         YY_BREAK
7659 case 289:
7660 /* rule 289 can match eol */
7661 YY_RULE_SETUP
7662 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);
7663         YY_BREAK
7664 case 290:
7665 /* rule 290 can match eol */
7666 case 291:
7667 /* rule 291 can match eol */
7668 YY_RULE_SETUP
7669 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7670         YY_BREAK
7671 case 292:
7672 /* rule 292 can match eol */
7673 case 293:
7674 /* rule 293 can match eol */
7675 YY_RULE_SETUP
7676 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7677         YY_BREAK
7678 case 294:
7679 /* rule 294 can match eol */
7680 YY_RULE_SETUP
7681 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);
7682         YY_BREAK
7683 case 295:
7684 /* rule 295 can match eol */
7685 YY_RULE_SETUP
7686 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);
7687         YY_BREAK
7688 case 296:
7689 /* rule 296 can match eol */
7690 YY_RULE_SETUP
7691 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);
7692         YY_BREAK
7693 case 297:
7694 /* rule 297 can match eol */
7695 YY_RULE_SETUP
7696 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);
7697         YY_BREAK
7698 case 298:
7699 /* rule 298 can match eol */
7700 YY_RULE_SETUP
7701 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);
7702         YY_BREAK
7703 case 299:
7704 /* rule 299 can match eol */
7705 YY_RULE_SETUP
7706 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);
7707         YY_BREAK
7708 case 300:
7709 /* rule 300 can match eol */
7710 YY_RULE_SETUP
7711 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);
7712         YY_BREAK
7713 case 301:
7714 /* rule 301 can match eol */
7715 YY_RULE_SETUP
7716 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);
7717         YY_BREAK
7718 case 302:
7719 /* rule 302 can match eol */
7720 YY_RULE_SETUP
7721 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);
7722         YY_BREAK
7723 case 303:
7724 /* rule 303 can match eol */
7725 YY_RULE_SETUP
7726 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);
7727         YY_BREAK
7728 case 304:
7729 /* rule 304 can match eol */
7730 YY_RULE_SETUP
7731 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);
7732         YY_BREAK
7733 case 305:
7734 /* rule 305 can match eol */
7735 YY_RULE_SETUP
7736 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);
7737         YY_BREAK
7738 case 306:
7739 YY_RULE_SETUP
7740 {
7741   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7742   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7743   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7744   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7745   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7746   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7747   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7748   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7749  }
7750         YY_BREAK
7751 case 307:
7752 YY_RULE_SETUP
7753 {
7754   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7755   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7756   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7757   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7758   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7759   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7760   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7761   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7762   switch (YY_START) {
7763    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7764    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
7765    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7766   }
7767  }
7768         YY_BREAK
7769 case 308:
7770 YY_RULE_SETUP
7771 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7772         YY_BREAK
7773 case 309:
7774 YY_RULE_SETUP
7775 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7776         YY_BREAK
7777 case YY_STATE_EOF(AL_surfxml_cluster):
7778 FAIL("EOF in attribute list of `cluster' element.");
7779         YY_BREAK
7780
7781 case 310:
7782 /* rule 310 can match eol */
7783 YY_RULE_SETUP
7784 {
7785   LEAVE;
7786   ETag_surfxml_cluster();
7787   popbuffer(); /* attribute */
7788   switch (YY_START) {
7789    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
7790    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
7791    case S_surfxml_platform_6: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7792   }
7793  }
7794         YY_BREAK
7795 case 311:
7796 /* rule 311 can match eol */
7797 YY_RULE_SETUP
7798 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7799         YY_BREAK
7800 case 312:
7801 YY_RULE_SETUP
7802 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7803         YY_BREAK
7804 case YY_STATE_EOF(S_surfxml_cluster):
7805 case YY_STATE_EOF(E_surfxml_cluster):
7806 case YY_STATE_EOF(S_surfxml_cluster_2):
7807 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7808         YY_BREAK
7809
7810 case 313:
7811 /* rule 313 can match eol */
7812 YY_RULE_SETUP
7813 FAIL("Starting tag <cabinet> is not allowed here.");
7814         YY_BREAK
7815 case 314:
7816 /* rule 314 can match eol */
7817 YY_RULE_SETUP
7818 {
7819   AX_surfxml_cabinet_id = 0;
7820   surfxml_cabinet_id_isset = 0;
7821   AX_surfxml_cabinet_prefix = 0;
7822   surfxml_cabinet_prefix_isset = 0;
7823   AX_surfxml_cabinet_suffix = 0;
7824   surfxml_cabinet_suffix_isset = 0;
7825   AX_surfxml_cabinet_radical = 0;
7826   surfxml_cabinet_radical_isset = 0;
7827   AX_surfxml_cabinet_power = 0;
7828   surfxml_cabinet_power_isset = 0;
7829   AX_surfxml_cabinet_bw = 0;
7830   surfxml_cabinet_bw_isset = 0;
7831   AX_surfxml_cabinet_lat = 0;
7832   surfxml_cabinet_lat_isset = 0;
7833   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7834   }
7835         YY_BREAK
7836
7837 case 315:
7838 /* rule 315 can match eol */
7839 YY_RULE_SETUP
7840 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);
7841         YY_BREAK
7842 case 316:
7843 /* rule 316 can match eol */
7844 YY_RULE_SETUP
7845 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);
7846         YY_BREAK
7847 case 317:
7848 /* rule 317 can match eol */
7849 YY_RULE_SETUP
7850 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);
7851         YY_BREAK
7852 case 318:
7853 /* rule 318 can match eol */
7854 YY_RULE_SETUP
7855 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);
7856         YY_BREAK
7857 case 319:
7858 /* rule 319 can match eol */
7859 YY_RULE_SETUP
7860 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);
7861         YY_BREAK
7862 case 320:
7863 /* rule 320 can match eol */
7864 YY_RULE_SETUP
7865 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);
7866         YY_BREAK
7867 case 321:
7868 /* rule 321 can match eol */
7869 YY_RULE_SETUP
7870 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);
7871         YY_BREAK
7872 case 322:
7873 /* rule 322 can match eol */
7874 YY_RULE_SETUP
7875 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);
7876         YY_BREAK
7877 case 323:
7878 /* rule 323 can match eol */
7879 YY_RULE_SETUP
7880 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7881         YY_BREAK
7882 case 324:
7883 /* rule 324 can match eol */
7884 YY_RULE_SETUP
7885 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7886         YY_BREAK
7887 case 325:
7888 /* rule 325 can match eol */
7889 YY_RULE_SETUP
7890 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);
7891         YY_BREAK
7892 case 326:
7893 /* rule 326 can match eol */
7894 YY_RULE_SETUP
7895 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);
7896         YY_BREAK
7897 case 327:
7898 /* rule 327 can match eol */
7899 YY_RULE_SETUP
7900 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);
7901         YY_BREAK
7902 case 328:
7903 /* rule 328 can match eol */
7904 YY_RULE_SETUP
7905 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);
7906         YY_BREAK
7907 case 329:
7908 YY_RULE_SETUP
7909 {
7910   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7911   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7912   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7913   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7914   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7915   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7916   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7917   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7918  }
7919         YY_BREAK
7920 case 330:
7921 YY_RULE_SETUP
7922 {
7923   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7924   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7925   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7926   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7927   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7928   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7929   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7930   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7931   switch (YY_START) {
7932    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7933    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7934    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7935    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7936   }
7937  }
7938         YY_BREAK
7939 case 331:
7940 YY_RULE_SETUP
7941 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7942         YY_BREAK
7943 case 332:
7944 YY_RULE_SETUP
7945 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7946         YY_BREAK
7947 case YY_STATE_EOF(AL_surfxml_cabinet):
7948 FAIL("EOF in attribute list of `cabinet' element.");
7949         YY_BREAK
7950
7951 case 333:
7952 /* rule 333 can match eol */
7953 YY_RULE_SETUP
7954 {
7955   LEAVE;
7956   ETag_surfxml_cabinet();
7957   popbuffer(); /* attribute */
7958   switch (YY_START) {
7959    case S_surfxml_AS_13: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7960    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7961    case S_surfxml_AS_6: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7962    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7963   }
7964  }
7965         YY_BREAK
7966 case 334:
7967 /* rule 334 can match eol */
7968 YY_RULE_SETUP
7969 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7970         YY_BREAK
7971 case 335:
7972 YY_RULE_SETUP
7973 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7974         YY_BREAK
7975 case YY_STATE_EOF(E_surfxml_cabinet):
7976 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7977         YY_BREAK
7978
7979 case 336:
7980 /* rule 336 can match eol */
7981 YY_RULE_SETUP
7982 FAIL("Starting tag <peer> is not allowed here.");
7983         YY_BREAK
7984 case 337:
7985 /* rule 337 can match eol */
7986 YY_RULE_SETUP
7987 {
7988   AX_surfxml_peer_id = 0;
7989   surfxml_peer_id_isset = 0;
7990   AX_surfxml_peer_power = 0;
7991   surfxml_peer_power_isset = 0;
7992   AX_surfxml_peer_bw___in = 0;
7993   surfxml_peer_bw___in_isset = 0;
7994   AX_surfxml_peer_bw___out = 0;
7995   surfxml_peer_bw___out_isset = 0;
7996   AX_surfxml_peer_lat = 0;
7997   surfxml_peer_lat_isset = 0;
7998   AX_surfxml_peer_coordinates = 0;
7999   surfxml_peer_coordinates_isset = 0;
8000   AX_surfxml_peer_availability___file = 0;
8001   surfxml_peer_availability___file_isset = 0;
8002   AX_surfxml_peer_state___file = 0;
8003   surfxml_peer_state___file_isset = 0;
8004   ENTER(AL_surfxml_peer); pushbuffer(0);
8005   }
8006         YY_BREAK
8007
8008 case 338:
8009 /* rule 338 can match eol */
8010 YY_RULE_SETUP
8011 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);
8012         YY_BREAK
8013 case 339:
8014 /* rule 339 can match eol */
8015 YY_RULE_SETUP
8016 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);
8017         YY_BREAK
8018 case 340:
8019 /* rule 340 can match eol */
8020 YY_RULE_SETUP
8021 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
8022         YY_BREAK
8023 case 341:
8024 /* rule 341 can match eol */
8025 YY_RULE_SETUP
8026 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
8027         YY_BREAK
8028 case 342:
8029 /* rule 342 can match eol */
8030 YY_RULE_SETUP
8031 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);
8032         YY_BREAK
8033 case 343:
8034 /* rule 343 can match eol */
8035 YY_RULE_SETUP
8036 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);
8037         YY_BREAK
8038 case 344:
8039 /* rule 344 can match eol */
8040 YY_RULE_SETUP
8041 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);
8042         YY_BREAK
8043 case 345:
8044 /* rule 345 can match eol */
8045 YY_RULE_SETUP
8046 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);
8047         YY_BREAK
8048 case 346:
8049 /* rule 346 can match eol */
8050 YY_RULE_SETUP
8051 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);
8052         YY_BREAK
8053 case 347:
8054 /* rule 347 can match eol */
8055 YY_RULE_SETUP
8056 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);
8057         YY_BREAK
8058 case 348:
8059 /* rule 348 can match eol */
8060 YY_RULE_SETUP
8061 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);
8062         YY_BREAK
8063 case 349:
8064 /* rule 349 can match eol */
8065 YY_RULE_SETUP
8066 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);
8067         YY_BREAK
8068 case 350:
8069 /* rule 350 can match eol */
8070 YY_RULE_SETUP
8071 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);
8072         YY_BREAK
8073 case 351:
8074 /* rule 351 can match eol */
8075 YY_RULE_SETUP
8076 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);
8077         YY_BREAK
8078 case 352:
8079 /* rule 352 can match eol */
8080 YY_RULE_SETUP
8081 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);
8082         YY_BREAK
8083 case 353:
8084 /* rule 353 can match eol */
8085 YY_RULE_SETUP
8086 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);
8087         YY_BREAK
8088 case 354:
8089 YY_RULE_SETUP
8090 {
8091   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8092   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8093   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8094   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8095   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8096   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8097  }
8098         YY_BREAK
8099 case 355:
8100 YY_RULE_SETUP
8101 {
8102   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8103   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8104   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8105   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8106   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8107   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8108   switch (YY_START) {
8109    case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
8110    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8111    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
8112   }
8113  }
8114         YY_BREAK
8115 case 356:
8116 YY_RULE_SETUP
8117 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8118         YY_BREAK
8119 case 357:
8120 YY_RULE_SETUP
8121 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8122         YY_BREAK
8123 case YY_STATE_EOF(AL_surfxml_peer):
8124 FAIL("EOF in attribute list of `peer' element.");
8125         YY_BREAK
8126
8127 case 358:
8128 /* rule 358 can match eol */
8129 YY_RULE_SETUP
8130 {
8131   LEAVE;
8132   ETag_surfxml_peer();
8133   popbuffer(); /* attribute */
8134   switch (YY_START) {
8135    case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
8136    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8137    case S_surfxml_include_1: case S_surfxml_include_2: case S_surfxml_include: SET(S_surfxml_include_2); break;
8138   }
8139  }
8140         YY_BREAK
8141 case 359:
8142 /* rule 359 can match eol */
8143 YY_RULE_SETUP
8144 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8145         YY_BREAK
8146 case 360:
8147 YY_RULE_SETUP
8148 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8149         YY_BREAK
8150 case YY_STATE_EOF(E_surfxml_peer):
8151 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8152         YY_BREAK
8153
8154 case 361:
8155 /* rule 361 can match eol */
8156 YY_RULE_SETUP
8157 FAIL("Starting tag <router> is not allowed here.");
8158         YY_BREAK
8159 case 362:
8160 /* rule 362 can match eol */
8161 YY_RULE_SETUP
8162 {
8163   AX_surfxml_router_id = 0;
8164   surfxml_router_id_isset = 0;
8165   AX_surfxml_router_coordinates = 0;
8166   surfxml_router_coordinates_isset = 0;
8167   ENTER(AL_surfxml_router); pushbuffer(0);
8168   }
8169         YY_BREAK
8170
8171 case 363:
8172 /* rule 363 can match eol */
8173 YY_RULE_SETUP
8174 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);
8175         YY_BREAK
8176 case 364:
8177 /* rule 364 can match eol */
8178 YY_RULE_SETUP
8179 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);
8180         YY_BREAK
8181 case 365:
8182 /* rule 365 can match eol */
8183 YY_RULE_SETUP
8184 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);
8185         YY_BREAK
8186 case 366:
8187 /* rule 366 can match eol */
8188 YY_RULE_SETUP
8189 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);
8190         YY_BREAK
8191 case 367:
8192 YY_RULE_SETUP
8193 {
8194   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8195   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8196  }
8197         YY_BREAK
8198 case 368:
8199 YY_RULE_SETUP
8200 {
8201   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8202   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8203   switch (YY_START) {
8204    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8205   }
8206  }
8207         YY_BREAK
8208 case 369:
8209 YY_RULE_SETUP
8210 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8211         YY_BREAK
8212 case 370:
8213 YY_RULE_SETUP
8214 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8215         YY_BREAK
8216 case YY_STATE_EOF(AL_surfxml_router):
8217 FAIL("EOF in attribute list of `router' element.");
8218         YY_BREAK
8219
8220 case 371:
8221 /* rule 371 can match eol */
8222 YY_RULE_SETUP
8223 {
8224   LEAVE;
8225   ETag_surfxml_router();
8226   popbuffer(); /* attribute */
8227   switch (YY_START) {
8228    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8229   }
8230  }
8231         YY_BREAK
8232 case 372:
8233 /* rule 372 can match eol */
8234 YY_RULE_SETUP
8235 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8236         YY_BREAK
8237 case 373:
8238 YY_RULE_SETUP
8239 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8240         YY_BREAK
8241 case YY_STATE_EOF(E_surfxml_router):
8242 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8243         YY_BREAK
8244
8245 case 374:
8246 /* rule 374 can match eol */
8247 YY_RULE_SETUP
8248 FAIL("Starting tag <backbone> is not allowed here.");
8249         YY_BREAK
8250 case 375:
8251 /* rule 375 can match eol */
8252 YY_RULE_SETUP
8253 {
8254   AX_surfxml_backbone_id = 0;
8255   surfxml_backbone_id_isset = 0;
8256   AX_surfxml_backbone_bandwidth = 0;
8257   surfxml_backbone_bandwidth_isset = 0;
8258   AX_surfxml_backbone_latency = 0;
8259   surfxml_backbone_latency_isset = 0;
8260   ENTER(AL_surfxml_backbone); pushbuffer(0);
8261   }
8262         YY_BREAK
8263
8264 case 376:
8265 /* rule 376 can match eol */
8266 YY_RULE_SETUP
8267 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);
8268         YY_BREAK
8269 case 377:
8270 /* rule 377 can match eol */
8271 YY_RULE_SETUP
8272 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);
8273         YY_BREAK
8274 case 378:
8275 /* rule 378 can match eol */
8276 YY_RULE_SETUP
8277 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);
8278         YY_BREAK
8279 case 379:
8280 /* rule 379 can match eol */
8281 YY_RULE_SETUP
8282 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);
8283         YY_BREAK
8284 case 380:
8285 /* rule 380 can match eol */
8286 YY_RULE_SETUP
8287 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);
8288         YY_BREAK
8289 case 381:
8290 /* rule 381 can match eol */
8291 YY_RULE_SETUP
8292 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);
8293         YY_BREAK
8294 case 382:
8295 YY_RULE_SETUP
8296 {
8297   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8298   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8299   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8300   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8301  }
8302         YY_BREAK
8303 case 383:
8304 YY_RULE_SETUP
8305 {
8306   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8307   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8308   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8309   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8310   switch (YY_START) {
8311    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8312    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8313   }
8314  }
8315         YY_BREAK
8316 case 384:
8317 YY_RULE_SETUP
8318 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8319         YY_BREAK
8320 case 385:
8321 YY_RULE_SETUP
8322 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8323         YY_BREAK
8324 case YY_STATE_EOF(AL_surfxml_backbone):
8325 FAIL("EOF in attribute list of `backbone' element.");
8326         YY_BREAK
8327
8328 case 386:
8329 /* rule 386 can match eol */
8330 YY_RULE_SETUP
8331 {
8332   LEAVE;
8333   ETag_surfxml_backbone();
8334   popbuffer(); /* attribute */
8335   switch (YY_START) {
8336    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8337    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8338   }
8339  }
8340         YY_BREAK
8341 case 387:
8342 /* rule 387 can match eol */
8343 YY_RULE_SETUP
8344 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8345         YY_BREAK
8346 case 388:
8347 YY_RULE_SETUP
8348 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8349         YY_BREAK
8350 case YY_STATE_EOF(E_surfxml_backbone):
8351 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8352         YY_BREAK
8353
8354 case 389:
8355 /* rule 389 can match eol */
8356 YY_RULE_SETUP
8357 FAIL("Starting tag <link> is not allowed here.");
8358         YY_BREAK
8359 case 390:
8360 /* rule 390 can match eol */
8361 YY_RULE_SETUP
8362 {
8363   AX_surfxml_link_id = 0;
8364   surfxml_link_id_isset = 0;
8365   AX_surfxml_link_bandwidth = 0;
8366   surfxml_link_bandwidth_isset = 0;
8367   AX_surfxml_link_bandwidth___file = 0;
8368   surfxml_link_bandwidth___file_isset = 0;
8369   AX_surfxml_link_latency = 46;
8370   surfxml_link_latency_isset = 0;
8371   AX_surfxml_link_latency___file = 0;
8372   surfxml_link_latency___file_isset = 0;
8373   AX_surfxml_link_state = A_surfxml_link_state_ON;
8374   surfxml_link_state_isset = 0;
8375   AX_surfxml_link_state___file = 0;
8376   surfxml_link_state___file_isset = 0;
8377   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8378   surfxml_link_sharing___policy_isset = 0;
8379   ENTER(AL_surfxml_link); pushbuffer(0);
8380   }
8381         YY_BREAK
8382
8383 case 391:
8384 /* rule 391 can match eol */
8385 YY_RULE_SETUP
8386 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);
8387         YY_BREAK
8388 case 392:
8389 /* rule 392 can match eol */
8390 YY_RULE_SETUP
8391 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);
8392         YY_BREAK
8393 case 393:
8394 /* rule 393 can match eol */
8395 YY_RULE_SETUP
8396 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);
8397         YY_BREAK
8398 case 394:
8399 /* rule 394 can match eol */
8400 YY_RULE_SETUP
8401 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);
8402         YY_BREAK
8403 case 395:
8404 /* rule 395 can match eol */
8405 YY_RULE_SETUP
8406 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);
8407         YY_BREAK
8408 case 396:
8409 /* rule 396 can match eol */
8410 YY_RULE_SETUP
8411 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);
8412         YY_BREAK
8413 case 397:
8414 /* rule 397 can match eol */
8415 YY_RULE_SETUP
8416 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);
8417         YY_BREAK
8418 case 398:
8419 /* rule 398 can match eol */
8420 YY_RULE_SETUP
8421 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);
8422         YY_BREAK
8423 case 399:
8424 /* rule 399 can match eol */
8425 YY_RULE_SETUP
8426 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);
8427         YY_BREAK
8428 case 400:
8429 /* rule 400 can match eol */
8430 YY_RULE_SETUP
8431 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);
8432         YY_BREAK
8433 case 401:
8434 /* rule 401 can match eol */
8435 case 402:
8436 /* rule 402 can match eol */
8437 YY_RULE_SETUP
8438 A_surfxml_link_state = A_surfxml_link_state_ON;
8439         YY_BREAK
8440 case 403:
8441 /* rule 403 can match eol */
8442 case 404:
8443 /* rule 404 can match eol */
8444 YY_RULE_SETUP
8445 A_surfxml_link_state = A_surfxml_link_state_OFF;
8446         YY_BREAK
8447 case 405:
8448 /* rule 405 can match eol */
8449 YY_RULE_SETUP
8450 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);
8451         YY_BREAK
8452 case 406:
8453 /* rule 406 can match eol */
8454 YY_RULE_SETUP
8455 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);
8456         YY_BREAK
8457 case 407:
8458 /* rule 407 can match eol */
8459 case 408:
8460 /* rule 408 can match eol */
8461 YY_RULE_SETUP
8462 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8463         YY_BREAK
8464 case 409:
8465 /* rule 409 can match eol */
8466 case 410:
8467 /* rule 410 can match eol */
8468 YY_RULE_SETUP
8469 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8470         YY_BREAK
8471 case 411:
8472 /* rule 411 can match eol */
8473 case 412:
8474 /* rule 412 can match eol */
8475 YY_RULE_SETUP
8476 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8477         YY_BREAK
8478 case 413:
8479 YY_RULE_SETUP
8480 {
8481   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8482   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8483   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8484  }
8485         YY_BREAK
8486 case 414:
8487 YY_RULE_SETUP
8488 {
8489   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8490   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8491   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8492   switch (YY_START) {
8493    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8494    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8495   }
8496  }
8497         YY_BREAK
8498 case 415:
8499 YY_RULE_SETUP
8500 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8501         YY_BREAK
8502 case 416:
8503 YY_RULE_SETUP
8504 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8505         YY_BREAK
8506 case YY_STATE_EOF(AL_surfxml_link):
8507 FAIL("EOF in attribute list of `link' element.");
8508         YY_BREAK
8509
8510 case 417:
8511 /* rule 417 can match eol */
8512 YY_RULE_SETUP
8513 {
8514   LEAVE;
8515   ETag_surfxml_link();
8516   popbuffer(); /* attribute */
8517   switch (YY_START) {
8518    case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
8519    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8520   }
8521  }
8522         YY_BREAK
8523 case 418:
8524 /* rule 418 can match eol */
8525 YY_RULE_SETUP
8526 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8527         YY_BREAK
8528 case 419:
8529 YY_RULE_SETUP
8530 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8531         YY_BREAK
8532 case YY_STATE_EOF(S_surfxml_link_2):
8533 case YY_STATE_EOF(S_surfxml_link):
8534 case YY_STATE_EOF(E_surfxml_link):
8535 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8536         YY_BREAK
8537
8538 case 420:
8539 /* rule 420 can match eol */
8540 YY_RULE_SETUP
8541 FAIL("Starting tag <route> is not allowed here.");
8542         YY_BREAK
8543 case 421:
8544 /* rule 421 can match eol */
8545 YY_RULE_SETUP
8546 {
8547   AX_surfxml_route_src = 0;
8548   surfxml_route_src_isset = 0;
8549   AX_surfxml_route_dst = 0;
8550   surfxml_route_dst_isset = 0;
8551   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8552   surfxml_route_symmetrical_isset = 0;
8553   ENTER(AL_surfxml_route); pushbuffer(0);
8554   }
8555         YY_BREAK
8556
8557 case 422:
8558 /* rule 422 can match eol */
8559 YY_RULE_SETUP
8560 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);
8561         YY_BREAK
8562 case 423:
8563 /* rule 423 can match eol */
8564 YY_RULE_SETUP
8565 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);
8566         YY_BREAK
8567 case 424:
8568 /* rule 424 can match eol */
8569 YY_RULE_SETUP
8570 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);
8571         YY_BREAK
8572 case 425:
8573 /* rule 425 can match eol */
8574 YY_RULE_SETUP
8575 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);
8576         YY_BREAK
8577 case 426:
8578 /* rule 426 can match eol */
8579 case 427:
8580 /* rule 427 can match eol */
8581 YY_RULE_SETUP
8582 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8583         YY_BREAK
8584 case 428:
8585 /* rule 428 can match eol */
8586 case 429:
8587 /* rule 429 can match eol */
8588 YY_RULE_SETUP
8589 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8590         YY_BREAK
8591 case 430:
8592 YY_RULE_SETUP
8593 {
8594   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8595   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8596   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8597  }
8598         YY_BREAK
8599 case 431:
8600 YY_RULE_SETUP
8601 {
8602   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8603   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8604   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8605   switch (YY_START) {
8606    case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8607   }
8608  }
8609         YY_BREAK
8610 case 432:
8611 YY_RULE_SETUP
8612 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8613         YY_BREAK
8614 case 433:
8615 YY_RULE_SETUP
8616 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8617         YY_BREAK
8618 case YY_STATE_EOF(AL_surfxml_route):
8619 FAIL("EOF in attribute list of `route' element.");
8620         YY_BREAK
8621
8622 case 434:
8623 /* rule 434 can match eol */
8624 YY_RULE_SETUP
8625 {
8626   LEAVE;
8627   ETag_surfxml_route();
8628   popbuffer(); /* attribute */
8629   switch (YY_START) {
8630    case S_surfxml_AS_3: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_12: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8631   }
8632  }
8633         YY_BREAK
8634 case 435:
8635 /* rule 435 can match eol */
8636 YY_RULE_SETUP
8637 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8638         YY_BREAK
8639 case 436:
8640 YY_RULE_SETUP
8641 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8642         YY_BREAK
8643 case YY_STATE_EOF(S_surfxml_route):
8644 case YY_STATE_EOF(S_surfxml_route_2):
8645 case YY_STATE_EOF(E_surfxml_route):
8646 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8647         YY_BREAK
8648
8649 case 437:
8650 /* rule 437 can match eol */
8651 YY_RULE_SETUP
8652 FAIL("Starting tag <ASroute> is not allowed here.");
8653         YY_BREAK
8654 case 438:
8655 /* rule 438 can match eol */
8656 YY_RULE_SETUP
8657 {
8658   AX_surfxml_ASroute_src = 0;
8659   surfxml_ASroute_src_isset = 0;
8660   AX_surfxml_ASroute_dst = 0;
8661   surfxml_ASroute_dst_isset = 0;
8662   AX_surfxml_ASroute_gw___src = 0;
8663   surfxml_ASroute_gw___src_isset = 0;
8664   AX_surfxml_ASroute_gw___dst = 0;
8665   surfxml_ASroute_gw___dst_isset = 0;
8666   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8667   surfxml_ASroute_symmetrical_isset = 0;
8668   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8669   }
8670         YY_BREAK
8671
8672 case 439:
8673 /* rule 439 can match eol */
8674 YY_RULE_SETUP
8675 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);
8676         YY_BREAK
8677 case 440:
8678 /* rule 440 can match eol */
8679 YY_RULE_SETUP
8680 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);
8681         YY_BREAK
8682 case 441:
8683 /* rule 441 can match eol */
8684 YY_RULE_SETUP
8685 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);
8686         YY_BREAK
8687 case 442:
8688 /* rule 442 can match eol */
8689 YY_RULE_SETUP
8690 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);
8691         YY_BREAK
8692 case 443:
8693 /* rule 443 can match eol */
8694 YY_RULE_SETUP
8695 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);
8696         YY_BREAK
8697 case 444:
8698 /* rule 444 can match eol */
8699 YY_RULE_SETUP
8700 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);
8701         YY_BREAK
8702 case 445:
8703 /* rule 445 can match eol */
8704 YY_RULE_SETUP
8705 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);
8706         YY_BREAK
8707 case 446:
8708 /* rule 446 can match eol */
8709 YY_RULE_SETUP
8710 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);
8711         YY_BREAK
8712 case 447:
8713 /* rule 447 can match eol */
8714 case 448:
8715 /* rule 448 can match eol */
8716 YY_RULE_SETUP
8717 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8718         YY_BREAK
8719 case 449:
8720 /* rule 449 can match eol */
8721 case 450:
8722 /* rule 450 can match eol */
8723 YY_RULE_SETUP
8724 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8725         YY_BREAK
8726 case 451:
8727 YY_RULE_SETUP
8728 {
8729   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8730   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8731   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8732   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8733   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8734  }
8735         YY_BREAK
8736 case 452:
8737 YY_RULE_SETUP
8738 {
8739   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8740   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8741   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8742   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8743   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8744   switch (YY_START) {
8745    case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
8746   }
8747  }
8748         YY_BREAK
8749 case 453:
8750 YY_RULE_SETUP
8751 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8752         YY_BREAK
8753 case 454:
8754 YY_RULE_SETUP
8755 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8756         YY_BREAK
8757 case YY_STATE_EOF(AL_surfxml_ASroute):
8758 FAIL("EOF in attribute list of `ASroute' element.");
8759         YY_BREAK
8760
8761 case 455:
8762 /* rule 455 can match eol */
8763 YY_RULE_SETUP
8764 {
8765   LEAVE;
8766   ETag_surfxml_ASroute();
8767   popbuffer(); /* attribute */
8768   switch (YY_START) {
8769    case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_1: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
8770   }
8771  }
8772         YY_BREAK
8773 case 456:
8774 /* rule 456 can match eol */
8775 YY_RULE_SETUP
8776 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8777         YY_BREAK
8778 case 457:
8779 YY_RULE_SETUP
8780 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8781         YY_BREAK
8782 case YY_STATE_EOF(E_surfxml_ASroute):
8783 case YY_STATE_EOF(S_surfxml_ASroute):
8784 case YY_STATE_EOF(S_surfxml_ASroute_2):
8785 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8786         YY_BREAK
8787
8788 case 458:
8789 /* rule 458 can match eol */
8790 YY_RULE_SETUP
8791 FAIL("Starting tag <link_ctn> is not allowed here.");
8792         YY_BREAK
8793 case 459:
8794 /* rule 459 can match eol */
8795 YY_RULE_SETUP
8796 {
8797   AX_surfxml_link___ctn_id = 0;
8798   surfxml_link___ctn_id_isset = 0;
8799   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8800   surfxml_link___ctn_direction_isset = 0;
8801   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8802   }
8803         YY_BREAK
8804
8805 case 460:
8806 /* rule 460 can match eol */
8807 YY_RULE_SETUP
8808 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);
8809         YY_BREAK
8810 case 461:
8811 /* rule 461 can match eol */
8812 YY_RULE_SETUP
8813 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);
8814         YY_BREAK
8815 case 462:
8816 /* rule 462 can match eol */
8817 case 463:
8818 /* rule 463 can match eol */
8819 YY_RULE_SETUP
8820 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8821         YY_BREAK
8822 case 464:
8823 /* rule 464 can match eol */
8824 case 465:
8825 /* rule 465 can match eol */
8826 YY_RULE_SETUP
8827 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8828         YY_BREAK
8829 case 466:
8830 /* rule 466 can match eol */
8831 case 467:
8832 /* rule 467 can match eol */
8833 YY_RULE_SETUP
8834 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8835         YY_BREAK
8836 case 468:
8837 YY_RULE_SETUP
8838 {
8839   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8840   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8841  }
8842         YY_BREAK
8843 case 469:
8844 YY_RULE_SETUP
8845 {
8846   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8847   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8848   switch (YY_START) {
8849    case S_surfxml_route_2: case S_surfxml_route: case S_surfxml_route_1: SET(S_surfxml_route_2); break;
8850    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: SET(S_surfxml_bypassRoute_2); break;
8851    case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: case S_surfxml_ASroute: SET(S_surfxml_ASroute_2); break;
8852    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8853   }
8854  }
8855         YY_BREAK
8856 case 470:
8857 YY_RULE_SETUP
8858 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8859         YY_BREAK
8860 case 471:
8861 YY_RULE_SETUP
8862 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8863         YY_BREAK
8864 case YY_STATE_EOF(AL_surfxml_link___ctn):
8865 FAIL("EOF in attribute list of `link_ctn' element.");
8866         YY_BREAK
8867
8868 case 472:
8869 /* rule 472 can match eol */
8870 YY_RULE_SETUP
8871 {
8872   LEAVE;
8873   ETag_surfxml_link___ctn();
8874   popbuffer(); /* attribute */
8875   switch (YY_START) {
8876    case S_surfxml_route_2: case S_surfxml_route: case S_surfxml_route_1: SET(S_surfxml_route_2); break;
8877    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute: SET(S_surfxml_bypassRoute_2); break;
8878    case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: case S_surfxml_ASroute: SET(S_surfxml_ASroute_2); break;
8879    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8880   }
8881  }
8882         YY_BREAK
8883 case 473:
8884 /* rule 473 can match eol */
8885 YY_RULE_SETUP
8886 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8887         YY_BREAK
8888 case 474:
8889 YY_RULE_SETUP
8890 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8891         YY_BREAK
8892 case YY_STATE_EOF(E_surfxml_link___ctn):
8893 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8894         YY_BREAK
8895
8896 case 475:
8897 /* rule 475 can match eol */
8898 YY_RULE_SETUP
8899 FAIL("Starting tag <bypassRoute> is not allowed here.");
8900         YY_BREAK
8901 case 476:
8902 /* rule 476 can match eol */
8903 YY_RULE_SETUP
8904 {
8905   AX_surfxml_bypassRoute_src = 0;
8906   surfxml_bypassRoute_src_isset = 0;
8907   AX_surfxml_bypassRoute_dst = 0;
8908   surfxml_bypassRoute_dst_isset = 0;
8909   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8910   }
8911         YY_BREAK
8912
8913 case 477:
8914 /* rule 477 can match eol */
8915 YY_RULE_SETUP
8916 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);
8917         YY_BREAK
8918 case 478:
8919 /* rule 478 can match eol */
8920 YY_RULE_SETUP
8921 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);
8922         YY_BREAK
8923 case 479:
8924 /* rule 479 can match eol */
8925 YY_RULE_SETUP
8926 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);
8927         YY_BREAK
8928 case 480:
8929 /* rule 480 can match eol */
8930 YY_RULE_SETUP
8931 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);
8932         YY_BREAK
8933 case 481:
8934 YY_RULE_SETUP
8935 {
8936   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8937   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8938   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8939  }
8940         YY_BREAK
8941 case 482:
8942 YY_RULE_SETUP
8943 {
8944   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8945   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8946   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8947   switch (YY_START) {
8948    case S_surfxml_AS_1: case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8949   }
8950  }
8951         YY_BREAK
8952 case 483:
8953 YY_RULE_SETUP
8954 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8955         YY_BREAK
8956 case 484:
8957 YY_RULE_SETUP
8958 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8959         YY_BREAK
8960 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8961 FAIL("EOF in attribute list of `bypassRoute' element.");
8962         YY_BREAK
8963
8964 case 485:
8965 /* rule 485 can match eol */
8966 YY_RULE_SETUP
8967 {
8968   LEAVE;
8969   ETag_surfxml_bypassRoute();
8970   popbuffer(); /* attribute */
8971   switch (YY_START) {
8972    case S_surfxml_AS_1: case S_surfxml_AS_15: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_3: case S_surfxml_AS_14: case S_surfxml_AS: SET(S_surfxml_AS_16); break;
8973   }
8974  }
8975         YY_BREAK
8976 case 486:
8977 /* rule 486 can match eol */
8978 YY_RULE_SETUP
8979 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8980         YY_BREAK
8981 case 487:
8982 YY_RULE_SETUP
8983 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8984         YY_BREAK
8985 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8986 case YY_STATE_EOF(E_surfxml_bypassRoute):
8987 case YY_STATE_EOF(S_surfxml_bypassRoute):
8988 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8989         YY_BREAK
8990
8991 case 488:
8992 /* rule 488 can match eol */
8993 YY_RULE_SETUP
8994 FAIL("Starting tag <bypassASroute> is not allowed here.");
8995         YY_BREAK
8996 case 489:
8997 /* rule 489 can match eol */
8998 YY_RULE_SETUP
8999 {
9000   AX_surfxml_bypassASroute_src = 0;
9001   surfxml_bypassASroute_src_isset = 0;
9002   AX_surfxml_bypassASroute_dst = 0;
9003   surfxml_bypassASroute_dst_isset = 0;
9004   AX_surfxml_bypassASroute_gw___src = 0;
9005   surfxml_bypassASroute_gw___src_isset = 0;
9006   AX_surfxml_bypassASroute_gw___dst = 0;
9007   surfxml_bypassASroute_gw___dst_isset = 0;
9008   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
9009   }
9010         YY_BREAK
9011
9012 case 490:
9013 /* rule 490 can match eol */
9014 YY_RULE_SETUP
9015 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);
9016         YY_BREAK
9017 case 491:
9018 /* rule 491 can match eol */
9019 YY_RULE_SETUP
9020 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);
9021         YY_BREAK
9022 case 492:
9023 /* rule 492 can match eol */
9024 YY_RULE_SETUP
9025 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);
9026         YY_BREAK
9027 case 493:
9028 /* rule 493 can match eol */
9029 YY_RULE_SETUP
9030 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);
9031         YY_BREAK
9032 case 494:
9033 /* rule 494 can match eol */
9034 YY_RULE_SETUP
9035 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);
9036         YY_BREAK
9037 case 495:
9038 /* rule 495 can match eol */
9039 YY_RULE_SETUP
9040 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);
9041         YY_BREAK
9042 case 496:
9043 /* rule 496 can match eol */
9044 YY_RULE_SETUP
9045 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);
9046         YY_BREAK
9047 case 497:
9048 /* rule 497 can match eol */
9049 YY_RULE_SETUP
9050 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);
9051         YY_BREAK
9052 case 498:
9053 YY_RULE_SETUP
9054 {
9055   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9056   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9057   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9058   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9059   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
9060  }
9061         YY_BREAK
9062 case 499:
9063 YY_RULE_SETUP
9064 {
9065   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9066   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9067   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9068   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9069   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
9070   switch (YY_START) {
9071    case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
9072   }
9073  }
9074         YY_BREAK
9075 case 500:
9076 YY_RULE_SETUP
9077 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
9078         YY_BREAK
9079 case 501:
9080 YY_RULE_SETUP
9081 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
9082         YY_BREAK
9083 case YY_STATE_EOF(AL_surfxml_bypassASroute):
9084 FAIL("EOF in attribute list of `bypassASroute' element.");
9085         YY_BREAK
9086
9087 case 502:
9088 /* rule 502 can match eol */
9089 YY_RULE_SETUP
9090 {
9091   LEAVE;
9092   ETag_surfxml_bypassASroute();
9093   popbuffer(); /* attribute */
9094   switch (YY_START) {
9095    case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_6: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_4: SET(S_surfxml_AS_9); break;
9096   }
9097  }
9098         YY_BREAK
9099 case 503:
9100 /* rule 503 can match eol */
9101 YY_RULE_SETUP
9102 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
9103         YY_BREAK
9104 case 504:
9105 YY_RULE_SETUP
9106 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
9107         YY_BREAK
9108 case YY_STATE_EOF(E_surfxml_bypassASroute):
9109 case YY_STATE_EOF(S_surfxml_bypassASroute):
9110 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
9111 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
9112         YY_BREAK
9113
9114 case 505:
9115 /* rule 505 can match eol */
9116 YY_RULE_SETUP
9117 FAIL("Starting tag <process> is not allowed here.");
9118         YY_BREAK
9119 case 506:
9120 /* rule 506 can match eol */
9121 YY_RULE_SETUP
9122 {
9123   AX_surfxml_process_host = 0;
9124   surfxml_process_host_isset = 0;
9125   AX_surfxml_process_function = 0;
9126   surfxml_process_function_isset = 0;
9127   AX_surfxml_process_start___time = 50;
9128   surfxml_process_start___time_isset = 0;
9129   AX_surfxml_process_kill___time = 55;
9130   surfxml_process_kill___time_isset = 0;
9131   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9132   surfxml_process_on___failure_isset = 0;
9133   ENTER(AL_surfxml_process); pushbuffer(0);
9134   }
9135         YY_BREAK
9136
9137 case 507:
9138 /* rule 507 can match eol */
9139 YY_RULE_SETUP
9140 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);
9141         YY_BREAK
9142 case 508:
9143 /* rule 508 can match eol */
9144 YY_RULE_SETUP
9145 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);
9146         YY_BREAK
9147 case 509:
9148 /* rule 509 can match eol */
9149 YY_RULE_SETUP
9150 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);
9151         YY_BREAK
9152 case 510:
9153 /* rule 510 can match eol */
9154 YY_RULE_SETUP
9155 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);
9156         YY_BREAK
9157 case 511:
9158 /* rule 511 can match eol */
9159 YY_RULE_SETUP
9160 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);
9161         YY_BREAK
9162 case 512:
9163 /* rule 512 can match eol */
9164 YY_RULE_SETUP
9165 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);
9166         YY_BREAK
9167 case 513:
9168 /* rule 513 can match eol */
9169 YY_RULE_SETUP
9170 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);
9171         YY_BREAK
9172 case 514:
9173 /* rule 514 can match eol */
9174 YY_RULE_SETUP
9175 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);
9176         YY_BREAK
9177 case 515:
9178 /* rule 515 can match eol */
9179 case 516:
9180 /* rule 516 can match eol */
9181 YY_RULE_SETUP
9182 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9183         YY_BREAK
9184 case 517:
9185 /* rule 517 can match eol */
9186 case 518:
9187 /* rule 518 can match eol */
9188 YY_RULE_SETUP
9189 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9190         YY_BREAK
9191 case 519:
9192 YY_RULE_SETUP
9193 {
9194   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9195   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9196   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9197  }
9198         YY_BREAK
9199 case 520:
9200 YY_RULE_SETUP
9201 {
9202   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9203   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9204   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9205   switch (YY_START) {
9206    case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_8: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_8); break;
9207   }
9208  }
9209         YY_BREAK
9210 case 521:
9211 YY_RULE_SETUP
9212 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9213         YY_BREAK
9214 case 522:
9215 YY_RULE_SETUP
9216 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9217         YY_BREAK
9218 case YY_STATE_EOF(AL_surfxml_process):
9219 FAIL("EOF in attribute list of `process' element.");
9220         YY_BREAK
9221
9222 case 523:
9223 /* rule 523 can match eol */
9224 YY_RULE_SETUP
9225 {
9226   LEAVE;
9227   ETag_surfxml_process();
9228   popbuffer(); /* attribute */
9229   switch (YY_START) {
9230    case S_surfxml_platform_7: case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_8: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_8); break;
9231   }
9232  }
9233         YY_BREAK
9234 case 524:
9235 /* rule 524 can match eol */
9236 YY_RULE_SETUP
9237 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9238         YY_BREAK
9239 case 525:
9240 YY_RULE_SETUP
9241 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9242         YY_BREAK
9243 case YY_STATE_EOF(S_surfxml_process):
9244 case YY_STATE_EOF(E_surfxml_process):
9245 case YY_STATE_EOF(S_surfxml_process_2):
9246 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9247         YY_BREAK
9248
9249 case 526:
9250 /* rule 526 can match eol */
9251 YY_RULE_SETUP
9252 FAIL("Starting tag <argument> is not allowed here.");
9253         YY_BREAK
9254 case 527:
9255 /* rule 527 can match eol */
9256 YY_RULE_SETUP
9257 {
9258   AX_surfxml_argument_value = 0;
9259   surfxml_argument_value_isset = 0;
9260   ENTER(AL_surfxml_argument); pushbuffer(0);
9261   }
9262         YY_BREAK
9263
9264 case 528:
9265 /* rule 528 can match eol */
9266 YY_RULE_SETUP
9267 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);
9268         YY_BREAK
9269 case 529:
9270 /* rule 529 can match eol */
9271 YY_RULE_SETUP
9272 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);
9273         YY_BREAK
9274 case 530:
9275 YY_RULE_SETUP
9276 {
9277   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9278   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9279  }
9280         YY_BREAK
9281 case 531:
9282 YY_RULE_SETUP
9283 {
9284   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9285   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9286   switch (YY_START) {
9287    case S_surfxml_process_2: case S_surfxml_process: case S_surfxml_process_1: SET(S_surfxml_process_2); break;
9288   }
9289  }
9290         YY_BREAK
9291 case 532:
9292 YY_RULE_SETUP
9293 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9294         YY_BREAK
9295 case 533:
9296 YY_RULE_SETUP
9297 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9298         YY_BREAK
9299 case YY_STATE_EOF(AL_surfxml_argument):
9300 FAIL("EOF in attribute list of `argument' element.");
9301         YY_BREAK
9302
9303 case 534:
9304 /* rule 534 can match eol */
9305 YY_RULE_SETUP
9306 {
9307   LEAVE;
9308   ETag_surfxml_argument();
9309   popbuffer(); /* attribute */
9310   switch (YY_START) {
9311    case S_surfxml_process_2: case S_surfxml_process: case S_surfxml_process_1: SET(S_surfxml_process_2); break;
9312   }
9313  }
9314         YY_BREAK
9315 case 535:
9316 /* rule 535 can match eol */
9317 YY_RULE_SETUP
9318 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9319         YY_BREAK
9320 case 536:
9321 YY_RULE_SETUP
9322 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9323         YY_BREAK
9324 case YY_STATE_EOF(E_surfxml_argument):
9325 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9326         YY_BREAK
9327
9328 case 537:
9329 /* rule 537 can match eol */
9330 YY_RULE_SETUP
9331 FAIL("Starting tag <config> is not allowed here.");
9332         YY_BREAK
9333 case 538:
9334 /* rule 538 can match eol */
9335 YY_RULE_SETUP
9336 {
9337   AX_surfxml_config_id = 0;
9338   surfxml_config_id_isset = 0;
9339   ENTER(AL_surfxml_config); pushbuffer(0);
9340   }
9341         YY_BREAK
9342
9343 case 539:
9344 /* rule 539 can match eol */
9345 YY_RULE_SETUP
9346 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);
9347         YY_BREAK
9348 case 540:
9349 /* rule 540 can match eol */
9350 YY_RULE_SETUP
9351 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);
9352         YY_BREAK
9353 case 541:
9354 YY_RULE_SETUP
9355 {
9356   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9357  }
9358         YY_BREAK
9359 case 542:
9360 YY_RULE_SETUP
9361 {
9362   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9363   switch (YY_START) {
9364    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
9365   }
9366  }
9367         YY_BREAK
9368 case 543:
9369 YY_RULE_SETUP
9370 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9371         YY_BREAK
9372 case 544:
9373 YY_RULE_SETUP
9374 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9375         YY_BREAK
9376 case YY_STATE_EOF(AL_surfxml_config):
9377 FAIL("EOF in attribute list of `config' element.");
9378         YY_BREAK
9379
9380 case 545:
9381 /* rule 545 can match eol */
9382 YY_RULE_SETUP
9383 {
9384   LEAVE;
9385   ETag_surfxml_config();
9386   popbuffer(); /* attribute */
9387   switch (YY_START) {
9388    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
9389   }
9390  }
9391         YY_BREAK
9392 case 546:
9393 /* rule 546 can match eol */
9394 YY_RULE_SETUP
9395 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9396         YY_BREAK
9397 case 547:
9398 YY_RULE_SETUP
9399 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9400         YY_BREAK
9401 case YY_STATE_EOF(E_surfxml_config):
9402 case YY_STATE_EOF(S_surfxml_config_2):
9403 case YY_STATE_EOF(S_surfxml_config):
9404 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9405         YY_BREAK
9406
9407 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9408   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9409 case 548:
9410 /* rule 548 can match eol */
9411 YY_RULE_SETUP
9412 FAIL("Starting tag <prop> is not allowed here.");
9413         YY_BREAK
9414 case 549:
9415 /* rule 549 can match eol */
9416 YY_RULE_SETUP
9417 {
9418   AX_surfxml_prop_id = 0;
9419   surfxml_prop_id_isset = 0;
9420   AX_surfxml_prop_value = 0;
9421   surfxml_prop_value_isset = 0;
9422   ENTER(AL_surfxml_prop); pushbuffer(0);
9423   }
9424         YY_BREAK
9425
9426 case 550:
9427 /* rule 550 can match eol */
9428 YY_RULE_SETUP
9429 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);
9430         YY_BREAK
9431 case 551:
9432 /* rule 551 can match eol */
9433 YY_RULE_SETUP
9434 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);
9435         YY_BREAK
9436 case 552:
9437 /* rule 552 can match eol */
9438 YY_RULE_SETUP
9439 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);
9440         YY_BREAK
9441 case 553:
9442 /* rule 553 can match eol */
9443 YY_RULE_SETUP
9444 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);
9445         YY_BREAK
9446 case 554:
9447 YY_RULE_SETUP
9448 {
9449   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9450   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9451   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9452  }
9453         YY_BREAK
9454 case 555:
9455 YY_RULE_SETUP
9456 {
9457   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9458   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9459   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9460   switch (YY_START) {
9461    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9462    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
9463    case S_surfxml_config_2: case S_surfxml_config: case S_surfxml_config_1: SET(S_surfxml_config_2); break;
9464    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9465    case S_surfxml_link_2: case S_surfxml_link: case S_surfxml_link_1: SET(S_surfxml_link_2); break;
9466    case S_surfxml_cluster_1: case S_surfxml_cluster_2: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9467    case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9468    case S_surfxml_storage_2: case S_surfxml_storage: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9469   }
9470  }
9471         YY_BREAK
9472 case 556:
9473 YY_RULE_SETUP
9474 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9475         YY_BREAK
9476 case 557:
9477 YY_RULE_SETUP
9478 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9479         YY_BREAK
9480 case YY_STATE_EOF(AL_surfxml_prop):
9481 FAIL("EOF in attribute list of `prop' element.");
9482         YY_BREAK
9483
9484 case 558:
9485 /* rule 558 can match eol */
9486 YY_RULE_SETUP
9487 {
9488   LEAVE;
9489   ETag_surfxml_prop();
9490   popbuffer(); /* attribute */
9491   switch (YY_START) {
9492    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9493    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
9494    case S_surfxml_config_2: case S_surfxml_config: case S_surfxml_config_1: SET(S_surfxml_config_2); break;
9495    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9496    case S_surfxml_link_2: case S_surfxml_link: case S_surfxml_link_1: SET(S_surfxml_link_2); break;
9497    case S_surfxml_cluster_1: case S_surfxml_cluster_2: case S_surfxml_cluster: SET(S_surfxml_cluster_2); break;
9498    case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: case S_surfxml_storage___type: SET(S_surfxml_storage___type_2); break;
9499    case S_surfxml_storage_2: case S_surfxml_storage: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9500   }
9501  }
9502         YY_BREAK
9503 case 559:
9504 /* rule 559 can match eol */
9505 YY_RULE_SETUP
9506 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9507         YY_BREAK
9508 case 560:
9509 YY_RULE_SETUP
9510 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9511         YY_BREAK
9512 case YY_STATE_EOF(E_surfxml_prop):
9513 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9514         YY_BREAK
9515
9516 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
9517   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
9518 case 561:
9519 /* rule 561 can match eol */
9520 YY_RULE_SETUP
9521 FAIL("Starting tag <model_prop> is not allowed here.");
9522         YY_BREAK
9523 case 562:
9524 /* rule 562 can match eol */
9525 YY_RULE_SETUP
9526 {
9527   AX_surfxml_model___prop_id = 0;
9528   surfxml_model___prop_id_isset = 0;
9529   AX_surfxml_model___prop_value = 0;
9530   surfxml_model___prop_value_isset = 0;
9531   ENTER(AL_surfxml_model___prop); pushbuffer(0);
9532   }
9533         YY_BREAK
9534
9535 case 563:
9536 /* rule 563 can match eol */
9537 YY_RULE_SETUP
9538 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);
9539         YY_BREAK
9540 case 564:
9541 /* rule 564 can match eol */
9542 YY_RULE_SETUP
9543 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);
9544         YY_BREAK
9545 case 565:
9546 /* rule 565 can match eol */
9547 YY_RULE_SETUP
9548 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);
9549         YY_BREAK
9550 case 566:
9551 /* rule 566 can match eol */
9552 YY_RULE_SETUP
9553 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);
9554         YY_BREAK
9555 case 567:
9556 YY_RULE_SETUP
9557 {
9558   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9559   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9560   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
9561  }
9562         YY_BREAK
9563 case 568:
9564 YY_RULE_SETUP
9565 {
9566   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9567   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9568   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
9569   switch (YY_START) {
9570    case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9571   }
9572  }
9573         YY_BREAK
9574 case 569:
9575 YY_RULE_SETUP
9576 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
9577         YY_BREAK
9578 case 570:
9579 YY_RULE_SETUP
9580 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
9581         YY_BREAK
9582 case YY_STATE_EOF(AL_surfxml_model___prop):
9583 FAIL("EOF in attribute list of `model_prop' element.");
9584         YY_BREAK
9585
9586 case 571:
9587 /* rule 571 can match eol */
9588 YY_RULE_SETUP
9589 {
9590   LEAVE;
9591   ETag_surfxml_model___prop();
9592   popbuffer(); /* attribute */
9593   switch (YY_START) {
9594    case S_surfxml_storage___type: case S_surfxml_storage___type_2: case S_surfxml_storage___type_1: SET(S_surfxml_storage___type_2); break;
9595   }
9596  }
9597         YY_BREAK
9598 case 572:
9599 /* rule 572 can match eol */
9600 YY_RULE_SETUP
9601 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
9602         YY_BREAK
9603 case 573:
9604 YY_RULE_SETUP
9605 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
9606         YY_BREAK
9607 case YY_STATE_EOF(E_surfxml_model___prop):
9608 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
9609         YY_BREAK
9610
9611 /* EPILOG: after the root element. */
9612
9613 case 574:
9614 YY_RULE_SETUP
9615 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9616         YY_BREAK
9617 case YY_STATE_EOF(EPILOG):
9618 SUCCEED;
9619         YY_BREAK
9620
9621 /* CHARACTER DATA. */
9622
9623 /* Non-defined standard entities... */
9624 case 575:
9625 YY_RULE_SETUP
9626 BUFFERPUTC('&');
9627         YY_BREAK
9628 case 576:
9629 YY_RULE_SETUP
9630 BUFFERPUTC('<');
9631         YY_BREAK
9632 case 577:
9633 YY_RULE_SETUP
9634 BUFFERPUTC('>');
9635         YY_BREAK
9636 case 578:
9637 YY_RULE_SETUP
9638 BUFFERPUTC('\'');
9639         YY_BREAK
9640 case 579:
9641 YY_RULE_SETUP
9642 BUFFERPUTC('"');
9643         YY_BREAK
9644 /* Character entities. */
9645 case 580:
9646 YY_RULE_SETUP
9647 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9648         YY_BREAK
9649 case 581:
9650 YY_RULE_SETUP
9651 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9652         YY_BREAK
9653
9654 case 582:
9655 /* rule 582 can match eol */
9656 case 583:
9657 /* rule 583 can match eol */
9658 case 584:
9659 /* rule 584 can match eol */
9660 case 585:
9661 /* rule 585 can match eol */
9662 YY_RULE_SETUP
9663 BUFFERPUTC('\n');
9664         YY_BREAK
9665
9666 case 586:
9667 YY_RULE_SETUP
9668 ENTER(CDATA);
9669         YY_BREAK
9670 case 587:
9671 YY_RULE_SETUP
9672 FAIL("Unexpected `]""]>' in character data.");
9673         YY_BREAK
9674
9675 case 588:
9676 YY_RULE_SETUP
9677 BUFFERDONE; LEAVE;
9678         YY_BREAK
9679 case YY_STATE_EOF(VALUE1):
9680 FAIL("EOF in literal (\"'\" expected).");
9681         YY_BREAK
9682
9683 case 589:
9684 YY_RULE_SETUP
9685 BUFFERDONE; LEAVE;
9686         YY_BREAK
9687 case YY_STATE_EOF(VALUE2):
9688 FAIL("EOF in literal (`\"' expected).");
9689         YY_BREAK
9690
9691 case 590:
9692 /* rule 590 can match eol */
9693 YY_RULE_SETUP
9694 BUFFERPUTC(surf_parse_text[0]);
9695         YY_BREAK
9696 case 591:
9697 YY_RULE_SETUP
9698 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9699         YY_BREAK
9700
9701 case 592:
9702 YY_RULE_SETUP
9703 LEAVE;
9704         YY_BREAK
9705 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9706 case 593:
9707 YY_RULE_SETUP
9708 BUFFERPUTC(surf_parse_text[0]);
9709         YY_BREAK
9710 case YY_STATE_EOF(CDATA):
9711 FAIL("EOF in CDATA section.");
9712         YY_BREAK
9713
9714 /* Impossible rules to avoid warnings from flex(1). */
9715 /* Ideally, this should be replaced by code in flexml.pl that
9716     generates just the states not covered by other rules. */
9717
9718 case 594:
9719 /* rule 594 can match eol */
9720 YY_RULE_SETUP
9721 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9722         YY_BREAK
9723
9724 case 595:
9725 YY_RULE_SETUP
9726 ECHO;
9727         YY_BREAK
9728 case YY_STATE_EOF(INITIAL):
9729 case YY_STATE_EOF(ROOT_surfxml_platform):
9730 case YY_STATE_EOF(S_surfxml_platform_2):
9731 case YY_STATE_EOF(S_surfxml_platform_5):
9732 case YY_STATE_EOF(S_surfxml_platform_7):
9733 case YY_STATE_EOF(S_surfxml_include_1):
9734 case YY_STATE_EOF(S_surfxml_AS_2):
9735 case YY_STATE_EOF(S_surfxml_AS_5):
9736 case YY_STATE_EOF(S_surfxml_AS_8):
9737 case YY_STATE_EOF(S_surfxml_AS_10):
9738 case YY_STATE_EOF(S_surfxml_AS_13):
9739 case YY_STATE_EOF(S_surfxml_AS_15):
9740 case YY_STATE_EOF(S_surfxml_storage___type_1):
9741 case YY_STATE_EOF(S_surfxml_host_1):
9742 case YY_STATE_EOF(S_surfxml_storage_1):
9743 case YY_STATE_EOF(S_surfxml_cluster_1):
9744 case YY_STATE_EOF(S_surfxml_link_1):
9745 case YY_STATE_EOF(S_surfxml_route_1):
9746 case YY_STATE_EOF(S_surfxml_ASroute_1):
9747 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9748 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9749 case YY_STATE_EOF(S_surfxml_process_1):
9750 case YY_STATE_EOF(S_surfxml_config_1):
9751 case YY_STATE_EOF(IMPOSSIBLE):
9752         yyterminate();
9753
9754         case YY_END_OF_BUFFER:
9755                 {
9756                 /* Amount of text matched not including the EOB char. */
9757                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9758
9759                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9760                 *yy_cp = (yy_hold_char);
9761                 YY_RESTORE_YY_MORE_OFFSET
9762
9763                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9764                         {
9765                         /* We're scanning a new file or input source.  It's
9766                          * possible that this happened because the user
9767                          * just pointed surf_parse_in at a new source and called
9768                          * surf_parse_lex().  If so, then we have to assure
9769                          * consistency between YY_CURRENT_BUFFER and our
9770                          * globals.  Here is the right place to do so, because
9771                          * this is the first action (other than possibly a
9772                          * back-up) that will match for the new input source.
9773                          */
9774                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9775                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9776                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9777                         }
9778
9779                 /* Note that here we test for yy_c_buf_p "<=" to the position
9780                  * of the first EOB in the buffer, since yy_c_buf_p will
9781                  * already have been incremented past the NUL character
9782                  * (since all states make transitions on EOB to the
9783                  * end-of-buffer state).  Contrast this with the test
9784                  * in input().
9785                  */
9786                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9787                         { /* This was really a NUL. */
9788                         yy_state_type yy_next_state;
9789
9790                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9791
9792                         yy_current_state = yy_get_previous_state(  );
9793
9794                         /* Okay, we're now positioned to make the NUL
9795                          * transition.  We couldn't have
9796                          * yy_get_previous_state() go ahead and do it
9797                          * for us because it doesn't know how to deal
9798                          * with the possibility of jamming (and we don't
9799                          * want to build jamming into it because then it
9800                          * will run more slowly).
9801                          */
9802
9803                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9804
9805                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9806
9807                         if ( yy_next_state )
9808                                 {
9809                                 /* Consume the NUL. */
9810                                 yy_cp = ++(yy_c_buf_p);
9811                                 yy_current_state = yy_next_state;
9812                                 goto yy_match;
9813                                 }
9814
9815                         else
9816                                 {
9817                                 yy_cp = (yy_c_buf_p);
9818                                 goto yy_find_action;
9819                                 }
9820                         }
9821
9822                 else switch ( yy_get_next_buffer(  ) )
9823                         {
9824                         case EOB_ACT_END_OF_FILE:
9825                                 {
9826                                 (yy_did_buffer_switch_on_eof) = 0;
9827
9828                                 if ( surf_parse_wrap( ) )
9829                                         {
9830                                         /* Note: because we've taken care in
9831                                          * yy_get_next_buffer() to have set up
9832                                          * surf_parse_text, we can now set up
9833                                          * yy_c_buf_p so that if some total
9834                                          * hoser (like flex itself) wants to
9835                                          * call the scanner after we return the
9836                                          * YY_NULL, it'll still work - another
9837                                          * YY_NULL will get returned.
9838                                          */
9839                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9840
9841                                         yy_act = YY_STATE_EOF(YY_START);
9842                                         goto do_action;
9843                                         }
9844
9845                                 else
9846                                         {
9847                                         if ( ! (yy_did_buffer_switch_on_eof) )
9848                                                 YY_NEW_FILE;
9849                                         }
9850                                 break;
9851                                 }
9852
9853                         case EOB_ACT_CONTINUE_SCAN:
9854                                 (yy_c_buf_p) =
9855                                         (yytext_ptr) + yy_amount_of_matched_text;
9856
9857                                 yy_current_state = yy_get_previous_state(  );
9858
9859                                 yy_cp = (yy_c_buf_p);
9860                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9861                                 goto yy_match;
9862
9863                         case EOB_ACT_LAST_MATCH:
9864                                 (yy_c_buf_p) =
9865                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9866
9867                                 yy_current_state = yy_get_previous_state(  );
9868
9869                                 yy_cp = (yy_c_buf_p);
9870                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9871                                 goto yy_find_action;
9872                         }
9873                 break;
9874                 }
9875
9876         default:
9877                 YY_FATAL_ERROR(
9878                         "fatal flex scanner internal error--no action found" );
9879         } /* end of action switch */
9880                 } /* end of scanning one token */
9881         } /* end of user's declarations */
9882 } /* end of surf_parse_lex */
9883
9884 /* yy_get_next_buffer - try to read in a new buffer
9885  *
9886  * Returns a code representing an action:
9887  *      EOB_ACT_LAST_MATCH -
9888  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9889  *      EOB_ACT_END_OF_FILE - end of file
9890  */
9891 static int yy_get_next_buffer (void)
9892 {
9893         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9894         char *source = (yytext_ptr);
9895         int number_to_move, i;
9896         int ret_val;
9897
9898         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9899                 YY_FATAL_ERROR(
9900                 "fatal flex scanner internal error--end of buffer missed" );
9901
9902         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9903                 { /* Don't try to fill the buffer, so this is an EOF. */
9904                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9905                         {
9906                         /* We matched a single character, the EOB, so
9907                          * treat this as a final EOF.
9908                          */
9909                         return EOB_ACT_END_OF_FILE;
9910                         }
9911
9912                 else
9913                         {
9914                         /* We matched some text prior to the EOB, first
9915                          * process it.
9916                          */
9917                         return EOB_ACT_LAST_MATCH;
9918                         }
9919                 }
9920
9921         /* Try to read more data. */
9922
9923         /* First move last chars to start of buffer. */
9924         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9925
9926         for ( i = 0; i < number_to_move; ++i )
9927                 *(dest++) = *(source++);
9928
9929         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9930                 /* don't do the read, it's not guaranteed to return an EOF,
9931                  * just force an EOF
9932                  */
9933                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9934
9935         else
9936                 {
9937                         yy_size_t num_to_read =
9938                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9939
9940                 while ( num_to_read <= 0 )
9941                         { /* Not enough room in the buffer - grow it. */
9942
9943                         /* just a shorter name for the current buffer */
9944                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9945
9946                         int yy_c_buf_p_offset =
9947                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9948
9949                         if ( b->yy_is_our_buffer )
9950                                 {
9951                                 yy_size_t new_size = b->yy_buf_size * 2;
9952
9953                                 if ( new_size <= 0 )
9954                                         b->yy_buf_size += b->yy_buf_size / 8;
9955                                 else
9956                                         b->yy_buf_size *= 2;
9957
9958                                 b->yy_ch_buf = (char *)
9959                                         /* Include room in for 2 EOB chars. */
9960                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9961                                 }
9962                         else
9963                                 /* Can't grow it, we don't own it. */
9964                                 b->yy_ch_buf = 0;
9965
9966                         if ( ! b->yy_ch_buf )
9967                                 YY_FATAL_ERROR(
9968                                 "fatal error - scanner input buffer overflow" );
9969
9970                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9971
9972                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9973                                                 number_to_move - 1;
9974
9975                         }
9976
9977                 if ( num_to_read > YY_READ_BUF_SIZE )
9978                         num_to_read = YY_READ_BUF_SIZE;
9979
9980                 /* Read in more data. */
9981                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9982                         (yy_n_chars), num_to_read );
9983
9984                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9985                 }
9986
9987         if ( (yy_n_chars) == 0 )
9988                 {
9989                 if ( number_to_move == YY_MORE_ADJ )
9990                         {
9991                         ret_val = EOB_ACT_END_OF_FILE;
9992                         surf_parse_restart(surf_parse_in  );
9993                         }
9994
9995                 else
9996                         {
9997                         ret_val = EOB_ACT_LAST_MATCH;
9998                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9999                                 YY_BUFFER_EOF_PENDING;
10000                         }
10001                 }
10002
10003         else
10004                 ret_val = EOB_ACT_CONTINUE_SCAN;
10005
10006         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
10007                 /* Extend the array by 50%, plus the number we really need. */
10008                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
10009                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
10010                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
10011                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
10012         }
10013
10014         (yy_n_chars) += number_to_move;
10015         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
10016         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
10017
10018         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
10019
10020         return ret_val;
10021 }
10022
10023 /* yy_get_previous_state - get the state just before the EOB char was reached */
10024
10025     static yy_state_type yy_get_previous_state (void)
10026 {
10027         yy_state_type yy_current_state;
10028         char *yy_cp;
10029
10030         yy_current_state = (yy_start);
10031
10032         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
10033                 {
10034                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
10035                 if ( yy_accept[yy_current_state] )
10036                         {
10037                         (yy_last_accepting_state) = yy_current_state;
10038                         (yy_last_accepting_cpos) = yy_cp;
10039                         }
10040                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10041                         {
10042                         yy_current_state = (int) yy_def[yy_current_state];
10043                         if ( yy_current_state >= 3503 )
10044                                 yy_c = yy_meta[(unsigned int) yy_c];
10045                         }
10046                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10047                 }
10048
10049         return yy_current_state;
10050 }
10051
10052 /* yy_try_NUL_trans - try to make a transition on the NUL character
10053  *
10054  * synopsis
10055  *      next_state = yy_try_NUL_trans( current_state );
10056  */
10057     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10058 {
10059         int yy_is_jam;
10060         char *yy_cp = (yy_c_buf_p);
10061
10062         YY_CHAR yy_c = 1;
10063         if ( yy_accept[yy_current_state] )
10064                 {
10065                 (yy_last_accepting_state) = yy_current_state;
10066                 (yy_last_accepting_cpos) = yy_cp;
10067                 }
10068         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10069                 {
10070                 yy_current_state = (int) yy_def[yy_current_state];
10071                 if ( yy_current_state >= 3503 )
10072                         yy_c = yy_meta[(unsigned int) yy_c];
10073                 }
10074         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10075         yy_is_jam = (yy_current_state == 3502);
10076
10077                 return yy_is_jam ? 0 : yy_current_state;
10078 }
10079
10080 #ifndef YY_NO_INPUT
10081 #ifdef __cplusplus
10082     static int yyinput (void)
10083 #else
10084     static int input  (void)
10085 #endif
10086
10087 {
10088         int c;
10089
10090         *(yy_c_buf_p) = (yy_hold_char);
10091
10092         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10093                 {
10094                 /* yy_c_buf_p now points to the character we want to return.
10095                  * If this occurs *before* the EOB characters, then it's a
10096                  * valid NUL; if not, then we've hit the end of the buffer.
10097                  */
10098                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10099                         /* This was really a NUL. */
10100                         *(yy_c_buf_p) = '\0';
10101
10102                 else
10103                         { /* need more input */
10104                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
10105                         ++(yy_c_buf_p);
10106
10107                         switch ( yy_get_next_buffer(  ) )
10108                                 {
10109                                 case EOB_ACT_LAST_MATCH:
10110                                         /* This happens because yy_g_n_b()
10111                                          * sees that we've accumulated a
10112                                          * token and flags that we need to
10113                                          * try matching the token before
10114                                          * proceeding.  But for input(),
10115                                          * there's no matching to consider.
10116                                          * So convert the EOB_ACT_LAST_MATCH
10117                                          * to EOB_ACT_END_OF_FILE.
10118                                          */
10119
10120                                         /* Reset buffer status. */
10121                                         surf_parse_restart(surf_parse_in );
10122
10123                                         /*FALLTHROUGH*/
10124
10125                                 case EOB_ACT_END_OF_FILE:
10126                                         {
10127                                         if ( surf_parse_wrap( ) )
10128                                                 return EOF;
10129
10130                                         if ( ! (yy_did_buffer_switch_on_eof) )
10131                                                 YY_NEW_FILE;
10132 #ifdef __cplusplus
10133                                         return yyinput();
10134 #else
10135                                         return input();
10136 #endif
10137                                         }
10138
10139                                 case EOB_ACT_CONTINUE_SCAN:
10140                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10141                                         break;
10142                                 }
10143                         }
10144                 }
10145
10146         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10147         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10148         (yy_hold_char) = *++(yy_c_buf_p);
10149
10150         if ( c == '\n' )
10151
10152     surf_parse_lineno++;
10153 ;
10154
10155         return c;
10156 }
10157 #endif  /* ifndef YY_NO_INPUT */
10158
10159 /** Immediately switch to a different input stream.
10160  * @param input_file A readable stream.
10161  *
10162  * @note This function does not reset the start condition to @c INITIAL .
10163  */
10164     void surf_parse_restart  (FILE * input_file )
10165 {
10166
10167         if ( ! YY_CURRENT_BUFFER ){
10168         surf_parse_ensure_buffer_stack ();
10169                 YY_CURRENT_BUFFER_LVALUE =
10170             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10171         }
10172
10173         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10174         surf_parse__load_buffer_state( );
10175 }
10176
10177 /** Switch to a different input buffer.
10178  * @param new_buffer The new input buffer.
10179  *
10180  */
10181     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10182 {
10183
10184         /* TODO. We should be able to replace this entire function body
10185          * with
10186          *              surf_parse_pop_buffer_state();
10187          *              surf_parse_push_buffer_state(new_buffer);
10188      */
10189         surf_parse_ensure_buffer_stack ();
10190         if ( YY_CURRENT_BUFFER == new_buffer )
10191                 return;
10192
10193         if ( YY_CURRENT_BUFFER )
10194                 {
10195                 /* Flush out information for old buffer. */
10196                 *(yy_c_buf_p) = (yy_hold_char);
10197                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10198                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10199                 }
10200
10201         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10202         surf_parse__load_buffer_state( );
10203
10204         /* We don't actually know whether we did this switch during
10205          * EOF (surf_parse_wrap()) processing, but the only time this flag
10206          * is looked at is after surf_parse_wrap() is called, so it's safe
10207          * to go ahead and always set it.
10208          */
10209         (yy_did_buffer_switch_on_eof) = 1;
10210 }
10211
10212 static void surf_parse__load_buffer_state  (void)
10213 {
10214         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10215         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10216         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10217         (yy_hold_char) = *(yy_c_buf_p);
10218 }
10219
10220 /** Allocate and initialize an input buffer state.
10221  * @param file A readable stream.
10222  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10223  *
10224  * @return the allocated buffer state.
10225  */
10226     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10227 {
10228         YY_BUFFER_STATE b;
10229
10230         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10231         if ( ! b )
10232                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10233
10234         b->yy_buf_size = size;
10235
10236         /* yy_ch_buf has to be 2 characters longer than the size given because
10237          * we need to put in 2 end-of-buffer characters.
10238          */
10239         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10240         if ( ! b->yy_ch_buf )
10241                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10242
10243         b->yy_is_our_buffer = 1;
10244
10245         surf_parse__init_buffer(b,file );
10246
10247         return b;
10248 }
10249
10250 /** Destroy the buffer.
10251  * @param b a buffer created with surf_parse__create_buffer()
10252  *
10253  */
10254     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10255 {
10256
10257         if ( ! b )
10258                 return;
10259
10260         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10261                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10262
10263         if ( b->yy_is_our_buffer )
10264                 surf_parse_free((void *) b->yy_ch_buf  );
10265
10266         surf_parse_free((void *) b  );
10267 }
10268
10269 /* Initializes or reinitializes a buffer.
10270  * This function is sometimes called more than once on the same buffer,
10271  * such as during a surf_parse_restart() or at EOF.
10272  */
10273     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10274
10275 {
10276         int oerrno = errno;
10277
10278         surf_parse__flush_buffer(b );
10279
10280         b->yy_input_file = file;
10281         b->yy_fill_buffer = 1;
10282
10283     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10284      * called from surf_parse_restart() or through yy_get_next_buffer.
10285      * In that case, we don't want to reset the lineno or column.
10286      */
10287     if (b != YY_CURRENT_BUFFER){
10288         b->yy_bs_lineno = 1;
10289         b->yy_bs_column = 0;
10290     }
10291
10292         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10293
10294         errno = oerrno;
10295 }
10296
10297 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10298  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10299  *
10300  */
10301     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10302 {
10303         if ( ! b )
10304                 return;
10305
10306         b->yy_n_chars = 0;
10307
10308         /* We always need two end-of-buffer characters.  The first causes
10309          * a transition to the end-of-buffer state.  The second causes
10310          * a jam in that state.
10311          */
10312         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10313         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10314
10315         b->yy_buf_pos = &b->yy_ch_buf[0];
10316
10317         b->yy_at_bol = 1;
10318         b->yy_buffer_status = YY_BUFFER_NEW;
10319
10320         if ( b == YY_CURRENT_BUFFER )
10321                 surf_parse__load_buffer_state( );
10322 }
10323
10324 /** Pushes the new state onto the stack. The new state becomes
10325  *  the current state. This function will allocate the stack
10326  *  if necessary.
10327  *  @param new_buffer The new state.
10328  *
10329  */
10330 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10331 {
10332         if (new_buffer == NULL)
10333                 return;
10334
10335         surf_parse_ensure_buffer_stack();
10336
10337         /* This block is copied from surf_parse__switch_to_buffer. */
10338         if ( YY_CURRENT_BUFFER )
10339                 {
10340                 /* Flush out information for old buffer. */
10341                 *(yy_c_buf_p) = (yy_hold_char);
10342                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10343                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10344                 }
10345
10346         /* Only push if top exists. Otherwise, replace top. */
10347         if (YY_CURRENT_BUFFER)
10348                 (yy_buffer_stack_top)++;
10349         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10350
10351         /* copied from surf_parse__switch_to_buffer. */
10352         surf_parse__load_buffer_state( );
10353         (yy_did_buffer_switch_on_eof) = 1;
10354 }
10355
10356 /** Removes and deletes the top of the stack, if present.
10357  *  The next element becomes the new top.
10358  *
10359  */
10360 void surf_parse_pop_buffer_state (void)
10361 {
10362         if (!YY_CURRENT_BUFFER)
10363                 return;
10364
10365         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10366         YY_CURRENT_BUFFER_LVALUE = NULL;
10367         if ((yy_buffer_stack_top) > 0)
10368                 --(yy_buffer_stack_top);
10369
10370         if (YY_CURRENT_BUFFER) {
10371                 surf_parse__load_buffer_state( );
10372                 (yy_did_buffer_switch_on_eof) = 1;
10373         }
10374 }
10375
10376 /* Allocates the stack if it does not exist.
10377  *  Guarantees space for at least one push.
10378  */
10379 static void surf_parse_ensure_buffer_stack (void)
10380 {
10381         yy_size_t num_to_alloc;
10382
10383         if (!(yy_buffer_stack)) {
10384
10385                 /* First allocation is just for 2 elements, since we don't know if this
10386                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10387                  * immediate realloc on the next call.
10388          */
10389                 num_to_alloc = 1;
10390                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10391                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10392                                                                 );
10393                 if ( ! (yy_buffer_stack) )
10394                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10395
10396                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10397
10398                 (yy_buffer_stack_max) = num_to_alloc;
10399                 (yy_buffer_stack_top) = 0;
10400                 return;
10401         }
10402
10403         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10404
10405                 /* Increase the buffer to prepare for a possible push. */
10406                 int grow_size = 8 /* arbitrary grow size */;
10407
10408                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10409                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10410                                                                 ((yy_buffer_stack),
10411                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10412                                                                 );
10413                 if ( ! (yy_buffer_stack) )
10414                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10415
10416                 /* zero only the new slots.*/
10417                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10418                 (yy_buffer_stack_max) = num_to_alloc;
10419         }
10420 }
10421
10422 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10423  * @param base the character buffer
10424  * @param size the size in bytes of the character buffer
10425  *
10426  * @return the newly allocated buffer state object.
10427  */
10428 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10429 {
10430         YY_BUFFER_STATE b;
10431
10432         if ( size < 2 ||
10433              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10434              base[size-1] != YY_END_OF_BUFFER_CHAR )
10435                 /* They forgot to leave room for the EOB's. */
10436                 return 0;
10437
10438         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10439         if ( ! b )
10440                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10441
10442         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10443         b->yy_buf_pos = b->yy_ch_buf = base;
10444         b->yy_is_our_buffer = 0;
10445         b->yy_input_file = 0;
10446         b->yy_n_chars = b->yy_buf_size;
10447         b->yy_is_interactive = 0;
10448         b->yy_at_bol = 1;
10449         b->yy_fill_buffer = 0;
10450         b->yy_buffer_status = YY_BUFFER_NEW;
10451
10452         surf_parse__switch_to_buffer(b  );
10453
10454         return b;
10455 }
10456
10457 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10458  * scan from a @e copy of @a str.
10459  * @param yystr a NUL-terminated string to scan
10460  *
10461  * @return the newly allocated buffer state object.
10462  * @note If you want to scan bytes that may contain NUL values, then use
10463  *       surf_parse__scan_bytes() instead.
10464  */
10465 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10466 {
10467
10468         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10469 }
10470
10471 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10472  * scan from a @e copy of @a bytes.
10473  * @param yybytes the byte buffer to scan
10474  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10475  *
10476  * @return the newly allocated buffer state object.
10477  */
10478 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10479 {
10480         YY_BUFFER_STATE b;
10481         char *buf;
10482         yy_size_t n;
10483         yy_size_t i;
10484
10485         /* Get memory for full buffer, including space for trailing EOB's. */
10486         n = _yybytes_len + 2;
10487         buf = (char *) surf_parse_alloc(n  );
10488         if ( ! buf )
10489                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10490
10491         for ( i = 0; i < _yybytes_len; ++i )
10492                 buf[i] = yybytes[i];
10493
10494         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10495
10496         b = surf_parse__scan_buffer(buf,n );
10497         if ( ! b )
10498                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10499
10500         /* It's okay to grow etc. this buffer, and we should throw it
10501          * away when we're done.
10502          */
10503         b->yy_is_our_buffer = 1;
10504
10505         return b;
10506 }
10507
10508     static void yy_push_state (int  new_state )
10509 {
10510         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10511                 {
10512                 yy_size_t new_size;
10513
10514                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10515                 new_size = (yy_start_stack_depth) * sizeof( int );
10516
10517                 if ( ! (yy_start_stack) )
10518                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10519
10520                 else
10521                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10522
10523                 if ( ! (yy_start_stack) )
10524                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10525                 }
10526
10527         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10528
10529         BEGIN(new_state);
10530 }
10531
10532     static void yy_pop_state  (void)
10533 {
10534         if ( --(yy_start_stack_ptr) < 0 )
10535                 YY_FATAL_ERROR( "start-condition stack underflow" );
10536
10537         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10538 }
10539
10540 #ifndef YY_EXIT_FAILURE
10541 #define YY_EXIT_FAILURE 2
10542 #endif
10543
10544 static void yy_fatal_error (yyconst char* msg )
10545 {
10546         (void) fprintf( stderr, "%s\n", msg );
10547         exit( YY_EXIT_FAILURE );
10548 }
10549
10550 /* Redefine yyless() so it works in section 3 code. */
10551
10552 #undef yyless
10553 #define yyless(n) \
10554         do \
10555                 { \
10556                 /* Undo effects of setting up surf_parse_text. */ \
10557         int yyless_macro_arg = (n); \
10558         YY_LESS_LINENO(yyless_macro_arg);\
10559                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10560                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10561                 (yy_hold_char) = *(yy_c_buf_p); \
10562                 *(yy_c_buf_p) = '\0'; \
10563                 surf_parse_leng = yyless_macro_arg; \
10564                 } \
10565         while ( 0 )
10566
10567 /* Accessor  methods (get/set functions) to struct members. */
10568
10569 /** Get the current line number.
10570  *
10571  */
10572 int surf_parse_get_lineno  (void)
10573 {
10574
10575     return surf_parse_lineno;
10576 }
10577
10578 /** Get the input stream.
10579  *
10580  */
10581 FILE *surf_parse_get_in  (void)
10582 {
10583         return surf_parse_in;
10584 }
10585
10586 /** Get the output stream.
10587  *
10588  */
10589 FILE *surf_parse_get_out  (void)
10590 {
10591         return surf_parse_out;
10592 }
10593
10594 /** Get the length of the current token.
10595  *
10596  */
10597 yy_size_t surf_parse_get_leng  (void)
10598 {
10599         return surf_parse_leng;
10600 }
10601
10602 /** Get the current token.
10603  *
10604  */
10605
10606 char *surf_parse_get_text  (void)
10607 {
10608         return surf_parse_text;
10609 }
10610
10611 /** Set the current line number.
10612  * @param line_number
10613  *
10614  */
10615 void surf_parse_set_lineno (int  line_number )
10616 {
10617
10618     surf_parse_lineno = line_number;
10619 }
10620
10621 /** Set the input stream. This does not discard the current
10622  * input buffer.
10623  * @param in_str A readable stream.
10624  *
10625  * @see surf_parse__switch_to_buffer
10626  */
10627 void surf_parse_set_in (FILE *  in_str )
10628 {
10629         surf_parse_in = in_str ;
10630 }
10631
10632 void surf_parse_set_out (FILE *  out_str )
10633 {
10634         surf_parse_out = out_str ;
10635 }
10636
10637 int surf_parse_get_debug  (void)
10638 {
10639         return surf_parse__flex_debug;
10640 }
10641
10642 void surf_parse_set_debug (int  bdebug )
10643 {
10644         surf_parse__flex_debug = bdebug ;
10645 }
10646
10647 static int yy_init_globals (void)
10648 {
10649         /* Initialization is the same as for the non-reentrant scanner.
10650      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10651      */
10652
10653     /* We do not touch surf_parse_lineno unless the option is enabled. */
10654     surf_parse_lineno =  1;
10655
10656     (yy_buffer_stack) = 0;
10657     (yy_buffer_stack_top) = 0;
10658     (yy_buffer_stack_max) = 0;
10659     (yy_c_buf_p) = (char *) 0;
10660     (yy_init) = 0;
10661     (yy_start) = 0;
10662
10663     (yy_start_stack_ptr) = 0;
10664     (yy_start_stack_depth) = 0;
10665     (yy_start_stack) =  NULL;
10666
10667 /* Defined in main.c */
10668 #ifdef YY_STDINIT
10669     surf_parse_in = stdin;
10670     surf_parse_out = stdout;
10671 #else
10672     surf_parse_in = (FILE *) 0;
10673     surf_parse_out = (FILE *) 0;
10674 #endif
10675
10676     /* For future reference: Set errno on error, since we are called by
10677      * surf_parse_lex_init()
10678      */
10679     return 0;
10680 }
10681
10682 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10683 int surf_parse_lex_destroy  (void)
10684 {
10685
10686     /* Pop the buffer stack, destroying each element. */
10687         while(YY_CURRENT_BUFFER){
10688                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10689                 YY_CURRENT_BUFFER_LVALUE = NULL;
10690                 surf_parse_pop_buffer_state();
10691         }
10692
10693         /* Destroy the stack itself. */
10694         surf_parse_free((yy_buffer_stack) );
10695         (yy_buffer_stack) = NULL;
10696
10697     /* Destroy the start condition stack. */
10698         surf_parse_free((yy_start_stack)  );
10699         (yy_start_stack) = NULL;
10700
10701     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10702      * surf_parse_lex() is called, initialization will occur. */
10703     yy_init_globals( );
10704
10705     return 0;
10706 }
10707
10708 /*
10709  * Internal utility routines.
10710  */
10711
10712 #ifndef yytext_ptr
10713 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10714 {
10715         int i;
10716         for ( i = 0; i < n; ++i )
10717                 s1[i] = s2[i];
10718 }
10719 #endif
10720
10721 #ifdef YY_NEED_STRLEN
10722 static int yy_flex_strlen (yyconst char * s )
10723 {
10724         int n;
10725         for ( n = 0; s[n]; ++n )
10726                 ;
10727
10728         return n;
10729 }
10730 #endif
10731
10732 void *surf_parse_alloc (yy_size_t  size )
10733 {
10734         return (void *) malloc( size );
10735 }
10736
10737 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10738 {
10739         /* The cast to (char *) in the following accommodates both
10740          * implementations that use char* generic pointers, and those
10741          * that use void* generic pointers.  It works with the latter
10742          * because both ANSI C and C++ allow castless assignment from
10743          * any pointer type to void*, and deal with argument conversions
10744          * as though doing an assignment.
10745          */
10746         return (void *) realloc( (char *) ptr, size );
10747 }
10748
10749 void surf_parse_free (void * ptr )
10750 {
10751         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10752 }
10753
10754 #define YYTABLES_NAME "yytables"
10755
10756 /* Element context stack lookup. */
10757 int surfxml_element_context(int i)
10758 {
10759   return (0<i && i<yy_start_stack_depth
10760           ? yy_start_stack[yy_start_stack_ptr - i]
10761           : 0);
10762 }
10763
10764 #ifdef FLEX_DEBUG
10765 void print_yy_stack(char* fmt, ...)
10766 {
10767   int i = 0; va_list ap; va_start(ap, fmt);
10768   vfprintf(stderr, fmt, ap);
10769   if (surfxml_statenames) {
10770       for (i=1; i<yy_start_stack_ptr; i++) {
10771           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10772       }
10773       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10774   }
10775   va_end(ap);
10776 }
10777
10778 void print_surfxml_bufferstack()
10779 {
10780     int i;
10781     fputs("Buffer: ", stderr);
10782     for (i = 0; i < blimit; i++) {
10783        if ( surfxml_bufferstack[i] == '\377' ) break;
10784          putc(surfxml_bufferstack[i], stderr);
10785     }
10786     putc('\n', stderr);
10787 }
10788
10789 static void debug_enter(int state, const char* statename) {
10790   yy_push_state(state);
10791   if (surf_parse__flex_debug) {
10792        print_yy_stack("--ENTER(%s) : ",statename);
10793        print_surfxml_bufferstack();
10794   }
10795 }
10796
10797 static void debug_leave(void) {
10798     if (surf_parse__flex_debug) {
10799         print_yy_stack("--LEAVE : ");
10800         print_surfxml_bufferstack();
10801     }
10802   yy_pop_state();
10803 }
10804
10805 static void debug_set(int state, const char* statename) {
10806   BEGIN(state);
10807   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10808 }
10809 #endif
10810
10811 static void cleanup(void)
10812 {
10813     if (surfxml_statenames) {
10814         free(surfxml_statenames);
10815         surfxml_statenames = NULL;
10816     }
10817     free(surfxml_bufferstack);
10818     surfxml_bufferstack = NULL;
10819
10820     free(indexstack);
10821     indexstack = NULL;
10822 }
10823
10824 static int fail(const char* fmt, ...)
10825 {
10826     int chars_left, used;
10827     va_list ap; va_start(ap, fmt);
10828 #ifdef FLEXML_yylineno
10829     used = sprintf(flexml_err_msg,
10830                    "Invalid XML (XML input line %d, state %d): ",
10831                    surf_parse_lineno, YY_START);
10832 #else
10833     used = sprintf(flexml_err_msg,
10834                    "Invalid XML (state %d): ",
10835                    YY_START);
10836 #endif
10837     chars_left = flexml_max_err_msg_size - used - 1;
10838     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10839     va_end(ap);
10840
10841 #ifndef FLEXML_quiet_parser
10842     /* print directly to sdterr */
10843     fprintf(stderr, "%s\n", flexml_err_msg);
10844     flexml_err_msg[0] = '\0';
10845 #endif
10846
10847     cleanup();
10848
10849     return 1;
10850 }
10851